diff --git a/CODEOWNERS b/CODEOWNERS
index ca2ba48baa68fb4990cc3e34fcf9ee5537ef1c28..a98eba13b7b574232201efd76d84579561a42ccd 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -23,11 +23,17 @@ zh-cn/device-dev/quick-start/ @li-yan339
 zh-cn/device-dev/driver/ @li-yan339
 zh-cn/device-dev/get-code/ @li-yan339
 zh-cn/device-dev/hpm-part/ @duangavin123_admin
-zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @Austin23
-zh-cn/device-dev/subsystems/subsys-build-standard-large.md @Austin23
-zh-cn/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md @Austin23
-zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md @Austin23
-zh-cn/device-dev/subsystems/subsys-build-gn-hap-compilation-guide.md @Austin23
+zh-cn/device-dev/reference/hdi-apis/ @li-yan339
+zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md @li-yan339 @chenmudan
+zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md @li-yan339 @chenmudan
+zh-cn/device-dev/porting/porting-thirdparty-overview.md @Austin23 @chenmudan
+zh-cn/device-dev/porting/porting-thirdparty-makefile.md @Austin23 @chenmudan
+zh-cn/device-dev/porting/porting-thirdparty-cmake.md @Austin23 @chenmudan
+zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @Austin23 @chenmudan
+zh-cn/device-dev/subsystems/subsys-build-standard-large.md @Austin23 @chenmudan
+zh-cn/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md @Austin23 @chenmudan
+zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md @Austin23 @chenmudan
+zh-cn/device-dev/subsystems/subsys-build-gn-hap-compilation-guide.md @Austin23 @chenmudan
 zh-cn/device-dev/subsystems/subsys-remote-start.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-graphics-overview.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-graphics-container-guide.md @duangavin123_admin
@@ -45,7 +51,7 @@ zh-cn/device-dev/subsystems/subsys-utils-overview.md @Austin23
 zh-cn/device-dev/subsystems/subsys-utils-guide.md @Austin23
 zh-cn/device-dev/subsystems/subsys-utils-faqs.md @Austin23
 zh-cn/device-dev/subsystems/subsys-aiframework-guide.md @Austin23
-zh-cn/device-dev/subsystems/subsys-aiframework-envbuild.md @Austin23
+zh-cn/device-dev/subsystems/subsys-aiframework-envbuild.md @Austin23 
 zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md @Austin23
 zh-cn/device-dev/subsystems/subsys-aiframework-tech-name.md @Austin23
 zh-cn/device-dev/subsystems/subsys-aiframework-tech-interface.md @Austin23
@@ -79,14 +85,19 @@ zh-cn/device-dev/subsystems/subsys-security-sigverify.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-security-rightmanagement.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-security-communicationverify.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-security-devicesecuritylevel.md @duangavin123_admin
-zh-cn/device-dev/subsystems/subsys-boot-overview.md @Austin23
-zh-cn/device-dev/subsystems/subsys-boot-init.md @Austin23
 zh-cn/device-dev/subsystems/subsys-boot-appspawn.md @Austin23
-zh-cn/device-dev/subsystems/subsys-boot-appspawn-standard.md @Austin23
 zh-cn/device-dev/subsystems/subsys-boot-bootstrap.md @Austin23
-zh-cn/device-dev/subsystems/subsys-boot-syspara.md @Austin23
 zh-cn/device-dev/subsystems/subsys-boot-faqs.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-cfg.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-plugin.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-sandbox.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-service.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-init.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot-overview.md @Austin23
 zh-cn/device-dev/subsystems/subsys-boot-ref.md @Austin23
+zh-cn/device-dev/subsystems/subsys-boot.md @Austin23
 zh-cn/device-dev/subsystems/subsys-testguide-test.md @Austin23
 zh-cn/device-dev/subsystems/subsys-dfx-overview.md @duangavin123_admin
 zh-cn/device-dev/subsystems/subsys-dfx-hilog-rich.md @duangavin123_admin
@@ -200,7 +211,7 @@ zh-cn/application-dev/reference/apis/js-apis-screenshot.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-window.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-screen.md @ge-yafang
-zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md @ge-yafang
+zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-webgl.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-webgl2.md @ge-yafang
 zh-cn/application-dev/reference/apis/js-apis-audio.md @zengyawen
diff --git a/README_zh.md b/README_zh.md
index 3c65434aac3acaee899db2e1eba85e61c03de5a5..ebf1bc8d7557d35f99eaacf8fd1427972d61d3b0 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -18,7 +18,7 @@
 
  - master:最新开发版本。  
 
- - OpenHarmony 3.2 Beta1版本:点击[此处](zh-cn/release-notes/OpenHarmony-v3.2-beta1.md)了解版本详情。
+ - OpenHarmony 3.2 Beta2版本:点击[此处](zh-cn/release-notes/OpenHarmony-v3.2-beta2.md)了解版本详情。
 
  - OpenHarmony 3.1 Release版本:点击[此处](zh-cn/release-notes/OpenHarmony-v3.1-release.md)了解版本详情。
 
diff --git a/en/OpenHarmony-Overview.md b/en/OpenHarmony-Overview.md
index c9eff6c8fe752a73cc4b8a2837ffe2a8ee7c0f0f..1331ac52206cf1980ce59a7def62bfd32c27e406 100644
--- a/en/OpenHarmony-Overview.md
+++ b/en/OpenHarmony-Overview.md
@@ -1,202 +1,205 @@
 # OpenHarmony Project
 
-## Introduction<a name="section1270210396435"></a>
+## Introduction
 
-OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation. It is an open-source operating system with a framework and platform applicable to smart devices in all scenarios of a fully-connected world. It aims to promote the development of the Internet of Everything (IoE).
+OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation. The purpose of this project is to build an open-source, distributed operating system (OS) framework for smart devices in all scenarios of a fully-connected world.
 
-## Technical Architecture<a name="section2502124574318"></a>
+## Technical Architecture
 
-OpenHarmony is designed with a layered architecture, which from bottom to top, consists of the kernel layer, system service layer, framework layer, and application layer. System functions are expanded by levels, from system to subsystem, and further to module. In a multi-device deployment scenario, unnecessary modules can be excluded from the system as required. The following figure shows the technical architecture of OpenHarmony.
+OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from the bottom up. System functions are expanded by levels, from system to subsystem, and further to component. In a multi-device deployment scenario, unnecessary components can be excluded from the system as required. The following figure shows the technical architecture of OpenHarmony.
 
 ![](figures/1.png)
 
 **Kernel layer**
 
-- Kernel subsystem: OpenHarmony uses a multi-kernel design \(Linux or LiteOS\) so that different kernels can be selected for devices with different resource limitations. The kernel abstraction layer \(KAL\) hides differences in kernel implementations and provides the upper layer with basic kernel capabilities, including process and thread management, memory management, file system, network management, and peripheral management.
+-   Kernel subsystem: OpenHarmony uses a multi-kernel design (Linux or LiteOS) so that different kernels can be selected for devices with different resource limitations. The kernel abstraction layer (KAL) hides differences in kernel implementations and provides the upper layer with basic kernel capabilities, including process and thread management, memory management, file system, network management, and peripheral management.
 
-- Driver subsystem: Hardware Driver Foundation \(HDF\) lays the foundation for an open OpenHarmony hardware ecosystem. It allows for unified access from peripheral devices and provides foundation for driver development and management.
+-   Driver subsystem: Hardware Driver Foundation (HDF) lays the foundation for an open OpenHarmony hardware ecosystem. It allows for unified access from peripheral devices and provides foundation for driver development and management.
 
 
 **System service layer**
 
-The system service layer provides a complete set of capabilities essential for OpenHarmony to offer services for apps through the framework layer. This layer consists of the following parts:
+The system service layer provides a complete set of capabilities essential for OpenHarmony to offer services for applications through the framework layer. This layer consists of the following parts:
 
-- Basic system capability subsystem set: Implements distributed app running, scheduling, and migration across OpenHarmony devices. This subsystem set provides the following basic capabilities: Distributed Soft Bus (DSoftBus), distributed data management, Distributed Scheduler, Utils, multimodal input, graphics, security, and AI.
+-   Basic system capability subsystem set: Implements distributed application running, scheduling, and migration across OpenHarmony devices. This subsystem set provides the following basic capabilities: Distributed Soft Bus (DSoftBus), distributed data management, Distributed Scheduler, Utils, multimodal input, graphics, security, and AI.
 
-- Basic software service subsystem set: Provides OpenHarmony with common universal software services, including common event and notification, telephony, multimedia, and Design For X \(DFX\).
+-   Basic software service subsystem set: Provides OpenHarmony with common universal software services, including common event and notification, telephony, multimedia, and Design For X (DFX).
 
-- Enhanced software service subsystem set: Provides OpenHarmony with differentiated enhanced software services, including those dedicated to smart TVs, wearables, IoT devices, and more.
+-   Enhanced software service subsystem set: Provides OpenHarmony with differentiated enhanced software services, including those dedicated to smart TVs, wearables, IoT devices, and more.
 
-- Hardware service subsystem set: Provides OpenHarmony with hardware services, including location, IAM, as well as those dedicated to wearables and IoT devices.
+-   Hardware service subsystem set: Provides OpenHarmony with hardware services, including location, user IAM, as well as those dedicated to wearables and IoT devices.
 
 
-The basic software service, enhanced software service, and hardware service subsystem sets can be modified by the subsystems, and each subsystem can be modified by various functions, depending on the deployment scenario for a particular device form.
+The basic software service, enhanced software service, and hardware service subsystem sets can be tailored by subsystems, and each subsystem can be tailored by functions, depending on the deployment scenario for a particular device form.
 
 **Framework layer**
 
-This layer provides with what you need to develop OpenHarmony apps: application framework and ability framework, specific to multiple languages \(like C, C++, and JS\), ArkUI framework, as well as multi-language APIs for hardware and software services. The APIs designed for different OpenHarmony devices can be modified based on various system components.
+This layer provides with what you need to develop OpenHarmony applications: application framework and ability framework specific to multiple languages (like C, C++, and JS), JS-specific ArkUI framework, as well as multi-language APIs for hardware and software services. The APIs designed for different OpenHarmony devices vary according to the components in use.
 
 **Application layer**
 
-This layer consists of system apps and third-party apps. Each OpenHarmony app is powered by one or more Feature Abilities \(FAs\) or Particle Abilities \(PAs\). An FA provides a UI for user interaction. A PA has no UI and provides background task processing as well as data access. Apps developed based on FAs and PAs provide specific service characteristics and enable cross-device scheduling and distribution, delighting users with consistent and efficient experience.
+This layer consists of system applications and third-party applications. Each OpenHarmony application is powered by one or more Feature Abilities (FAs) or Particle Abilities (PAs). An FA provides a UI for user interaction. A PA has no UI and provides background task processing as well as data access. Applications developed based on FAs and PAs provide specific service characteristics and enable cross-device scheduling and distribution, delighting users with consistent and efficient experience.
 
-## Technical Features<a name="section12212842173518"></a>
+## Technical Features
 
 **Hardware collaboration and resource sharing**
 
 This feature is implemented through the following modules:
 
-- DSoftBus
+-   DSoftBus
 
-  DSoftBus is a unified base for seamless interconnection among devices. It powers OpenHarmony with distributed communication capabilities to quickly discover and connect devices, and efficiently transmit data.
+    DSoftBus is a unified base for seamless interconnection among devices. It powers OpenHarmony with distributed communication capabilities to quickly discover and connect devices, and efficiently transmit data.
 
-- Distributed data management
-  
-  DSoftBus manages apps and user data distributed across different devices. Under such management, user data is no longer bound to a single physical device, and service logic is decoupled from storage. As your apps are running across devices, their data is seamlessly transmitted from one device to another, creating a foundation for a user experience that is smooth and consistent.
 
-- Distributed Scheduler
-  
-  The Distributed Scheduler is designed based on technical features such as DSoftBus, distributed data management, and distributed profile. It builds a unified distributed service management mechanism \(including service discovery, synchronization, registration, and invocation\), and supports remote startup, remote invocation, binding/unbinding, and migration of apps across devices. This way, your app can select the most suitable device to perform distributed tasks based on the capabilities, locations, running status, and resource usage of different devices, as well as user habits and intentions.
+-   Distributed data management
+    
+    Distributed data management leverages DSoftBus to manage application data and user data distributed on different devices. Under such management, user data is no longer bound to a single physical device, and service logic is decoupled from storage. As your applications are running across devices, their data is seamlessly transmitted from one device to another, creating a foundation for a user experience that is smooth and consistent.
 
-- Device virtualization
-  
-  A distributed device virtualization platform enables cross-device resource convergence, device management, and data processing so that virtual peripherals can function as capability extensions of smartphones to form a super virtual terminal.
+
+-   Distributed Scheduler
+    
+    Distributed Scheduler is designed based on technical features such as DSoftBus, distributed data management, and distributed profile. It builds a unified distributed service management mechanism (including service discovery, synchronization, registration, and invocation), and supports remote startup, remote invocation, binding/unbinding, and migration of applications across devices. This way, your application can select the most suitable device to perform distributed tasks based on the capabilities, locations, running status, and resource usage of different devices, as well as user habits and intentions.
+
+
+-   Device virtualization
+    
+    A distributed device virtualization platform enables cross-device resource convergence, device management, and data processing so that virtual peripherals can function as capability extensions of smartphones to form a Super Device.
 
 
 **One-time development for multi-device deployment**
 
-OpenHarmony provides you with the user application, ability, and UI frameworks. With these frameworks, you can develop your apps once, and then flexibly deploy them across a broad range of different devices.
+OpenHarmony provides you with the application, ability, and UI frameworks. With these frameworks, you can develop your applications once, and then flexibly deploy them across a broad range of different devices. One-time development for multi-device deployment
 
-Consistent APIs ensure the operational compatibility of apps across devices.
+Consistent APIs ensure the operational compatibility of applications across devices.
 
-- Adaptation of device capabilities \(including CPU, memory, peripheral, and software resources\) can be previewed.
-- Resources can be scheduled based on the compatibility between user apps and the software platform.
+-   Adaptation of device capabilities (including CPU, memory, peripheral, and software resources) can be previewed.
+-   Resources can be scheduled based on the compatibility between applications and the software platform.
 
 **A unified OS for flexible deployment**
 
 OpenHarmony enables hardware resources to be scaled with its component-based and small-scale designs. It can be deployed on demand for a diverse range of devices, including ARM, RISC-V, and x86 architectures, and providing RAM volumes ranging from hundreds of KiB to GiB.
 
 
-## OS Types<a name="section145241459142416"></a>
+## System Types
 
-OpenHarmony supports the following types:
+OpenHarmony supports the following system types:
 
-- Mini system
+-   Mini system
 
-  A mini system runs on the devices whose memory is greater than or equal to 128 KiB and that are equipped with MCU processors such as Arm Cortex-M and 32-bit RISC-V. This system provides multiple lightweight network protocols and graphics frameworks, and a wide range of read/write components for the IoT bus. Typical products include connection modules, sensors, and wearables for smart home.
+    A mini system fits into devices that come with Micro Controller Units (MCUs), such as Arm Cortex-M and 32-bit RISC-V processors, and memory greater than or equal to 128 KiB. This system provides multiple lightweight network protocols, a lightweight graphics framework, and a wide range of read/write components with the IoT bus. Typical products include connection modules, sensors, and wearables for smart home.
 
-- Small system
+-   Small system
 
-  A small system runs on the devices whose memory is greater than or equal to 1 MiB and that are equipped with application processors such as Arm Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. Typical products include smart home IP cameras, electronic cat eyes, routers, and event data recorders \(EDRs\) for smart travel.
+    A small system runs on devices whose memory is greater than or equal to 1 MiB and that are equipped with application processors such as Arm Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. Typical products include smart home IP cameras, electronic cat eyes, and routers, and event data recorders (EDRs) for easy travel.
 
-- Standard system
+-   Standard system
 
-  A standard system runs on the devices whose memory is greater than or equal to 128 MiB and that are equipped with application processors such as Arm Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays.
+    A standard system runs on devices whose memory is greater than or equal to 128 MiB and that are equipped with application processors such as Arm Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays.
 
 
-## Subsystems<a name="section25831825174419"></a>
+## Subsystems
 
 You need to understand the following basic concepts related to OpenHarmony:
 
-- Subsystem
+-   Subsystem
 
-  OpenHarmony is designed with a layered architecture, which from bottom to top consists of the kernel layer, system service layer, framework layer, and application layer. System functions are expanded by levels, from system to subsystem, and further to module. In a multi-device deployment scenario, unnecessary modules can be excluded from the system as required. A subsystem is a logical concept and is a flexible combination of functions.
+    OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from the bottom up. System functions are expanded by levels, from system to subsystem, and further to component. In a multi-device deployment scenario, unnecessary components can be excluded from the system as required. A subsystem, as a logical concept, consists of the least required components.
 
-- Module
+-   Components
 
-  A module is a reusable software binary unit that contains source code, configuration files, resource files, and build scripts. A module can be built independently, integrated in binary mode, and then tested independently.
+    A component is a reusable software binary unit that contains source code, configuration files, resource files, and build scripts. A component can be built independently, integrated in binary mode, and then tested independently.
 
-The following table describes the subsystems of OpenHarmony. For details about the readme files of these subsystems, see  [https://gitee.com/openharmony/docs/tree/master/en/readme](https://gitee.com/openharmony/docs/tree/master/en/readme).
+The following table describes the subsystems of OpenHarmony. For details about the readme files of these subsystems, see [https://gitee.com/openharmony/docs/tree/master/en/readme](https://gitee.com/openharmony/docs/tree/master/en/readme).
 
-| Subsystem| Description| Applicable To|
+
+| Subsystem       | Description                                                       | Application Scope        |
 | -------- | -------- | -------- |
-| Kernel| Supports small-sized LiteOS kernels that provide high performance and low power consumption for embedded devices and devices with limited resources, and supports Linux kernels that are applicable to the standard system.| Small system<br>Standard system |
-| Distributed File System | Provides APIs for synchronizing local JS files. | Standard system |
-| Graphics | Consists of user interface (UI) components, layout, animator, font, input event, window management, and rendering and drawing modules. It is an application framework that can be built on the LiteOS to develop OpenHarmony applications for Internet of Things (IoT) devices with limited hardware resources or on the standard OS to develop OpenHarmony applications for standard- and large-system devices (for example, tablet and lite smart devices). | All systems |
-| Driver | Constructed using the C object-oriented programming (OOP) language. It provides a unified driver platform and is compatible with different kernels by means of platform decoupling and kernel decoupling. This unified driver platform is designed to provide a more precise and efficient development environment, where you develop a driver that can be deployed on different systems supporting HDF. | All systems |
-| Power Management | Provides the following functions: restarting the system, managing running locks, managing and querying the system power status, querying and reporting the charging and battery status, and turning on/off the device screen, including adjusting the screen brightness. | Standard system                   |
-| Pan-sensor | Contains sensors and misc devices. A sensor is a device to detect events or changes in an environment and send messages about the events or changes to another electronic device. Misc devices, including vibrators and LED lights, are used to send signals externally. You can call APIs to control the vibration of vibrators and lighting-on and lighting-off of LED lights. | Small system |
-| Multimodal Input | OpenHarmony provides a Natural User Interface (NUI) for you to interact with your users. Unlike conventional categorization of input methods, OpenHarmony combines input methods of different dimensions into multimodal inputs, so you can easily arm your app with multi-dimensional, natural interaction features by using the application framework and system built-in UI components or APIs. Specifically, OpenHarmony currently supports traditional input methods such as key and touch inputs. | Standard system |
-| Startup | Starts the OS middle layer between the time the kernel is started and the time apps are started. In addition, you can query and modify system attributes and restore factory settings. | All systems |
-| Update | Supports over the air (OTA) update of OpenHarmony devices. | Standard system |
-| Account | Provides interconnection with vendors' cloud account apps on the device side, and query and update of the cloud account login status. | Standard system |
-| Compilation and Building | Provides a compilation and building framework based on Generate Ninja (GN) and Ninja. | All systems |
-| Test | The test-driven development mode is used during the development process. You can develop new cases or modify existing cases to test new or enhanced system features. The test helps you develop high-quality code in the development phase. | All systems |
-| Data Management | Provides local data management and distributed data management:<br/>- Local app data management for lightweight preference databases and relational databases<br>- Distributed data service to provide apps with the capability to store data in the databases of different devices | Standard system |
-| Programming Language Runtime | Provides the compilation and execution environment for programs developed with JavaScript or C/C++, basic libraries that support the runtime, and the runtime-associated APIs, compilers, and auxiliary tools. | All systems |
-| Distributed Scheduler | Starts, registers, queries, and manages system services. | All systems |
-| JS UI framework              | OpenHarmony UI development framework that supports web-development-like paradigm. | All systems |
-| Multimedia | Provides easy-to-use APIs for developing multimedia components such as audio, video, and camera, and enables apps to use multimedia resources of the system. | All systems |
-| Common Event and Notification | Provides the common event management capabilities that allow apps to subscribe to, unsubscribe from, publish, and receive common events (such as screen-on/off events and USB device attachment/detachment events). | Standard system |
-| Misc Services | Provides the function of setting the time. | Standard system |
-| Bundle management | Provides bundle installation, uninstall, update, and query capabilities. | All systems |
-| Telephony | Provides basic communication capabilities of the cellular network, such as SIM cards, network search, cellular data, cellular calls, SMS, and MMS, as well as easy-to-use APIs for you to manage multiple types of calls and data network connections. | Standard system |
-| Utils | Stores basic OpenHarmony components, which can be used by OpenHarmony subsystems and upper-layer apps. | All systems |
-| Development Tools | Provides a performance profiler platform for you to analyze system issues such as memory and performance, including hdc used for device debugging, APIs for performance tracing, and a performance profiler framework. | Standard system |
-| DSoftBus | Provides cross-process or cross-device communication capabilities for the OpenHarmony system and consists of the DSoftBus and IPC modules. The DSoftBus module enables distributed communication between near-field devices and provides device discovery, connection, networking, and data transmission functions, regardless of the communication mode. The IPC module enables communication between processes on a device or across devices. | All systems |
-| XTS | Provides a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite (ACTS) and the device compatibility test suite (DCTS) that will be supported in the future. | All systems |
-| System Apps | Provides system apps that are applicable to the OpenHarmony standard system, such as Launcher, SystemUI, and Settings. It also provides specific examples for you to build standard-system apps, which can be installed on all devices running the standard system. | Standard system |
-| DFX | Provides non-functional capabilities of OpenHarmony. It provides a logging system, app and system event logging APIs, the event log subscription service, and fault information generation and collection capabilities. | All systems |
-| Globalization | If OpenHarmony devices and apps need to be used globally, they must meet the requirements of users in different regions on languages and cultures. The Globalization subsystem provides multi-language and multi-cultural capabilities for global use, including resource management and internationalization (i18n). | All systems |
-| Security | Provides system, data, and app security capabilities to protect system and user data of OpenHarmony. Its functions include app integrity verification, app permission management, device authentication, and key management. | All systems |
-
-## Supported Development Boards<a name="section25831825174123"></a>
-
-Currently, OpenHarmony supports the development boards listed in the following table.
-
-| System Type| Board Model| Chip Model| Function Description| Application Scenario| Code Repository and Daily Build|
+| Kernel          | Supports small-sized LiteOS kernels that provide high performance and low power consumption for embedded devices and devices with limited resources, and supports Linux kernels that are applicable to the standard system.| Small System<br>Standard System|
+| Distributed File System    | Provides APIs for synchronizing local JS files.                                    | Standard system        |
+| Graphics          | Consists of user interface (UI) components, layout, animator, font, input event, window management, and rendering modules. It is an application framework that can be built on the LiteOS to develop OpenHarmony applications for IoT devices with limited hardware resources or on the standard OS to develop OpenHarmony applications for standard- and large-system devices (for example, tablet and lite smart devices).| All systems        |
+| Driver          | Constructed using the C object-oriented programming (OOP) language. It provides a unified driver platform and is compatible with different kernels by means of platform decoupling and kernel decoupling. This unified driver platform is designed to provide a more precise and efficient development environment, where you develop a driver that can be deployed on different systems supporting HDF.| All systems        |
+| Power Management  | Provides the following functions: restarting the system, managing running locks, managing and querying the system power status, querying and reporting the charging and battery status, and turning on/off the device screen, including adjusting the screen brightness.| Standard system        |
+| Pan-sensor  | Contains sensors and misc devices. A sensor is a device to detect events or changes in an environment and send messages about the events or changes to another electronic device. Misc devices, including vibrators and LED lights, are used to send signals externally. You can call APIs to control the vibration of vibrators and lighting-on and lighting-off of LED lights.| Small system        |
+| Multimodal Input      | OpenHarmony provides a Natural User Interface (NUI) for you to interact with your users. Unlike conventional categorization of input methods, OpenHarmony combines input methods of different dimensions into multimodal inputs, so you can easily arm your application with multi-dimensional, natural interaction features by using the application framework and system built-in UI components or APIs. Specifically, OpenHarmony currently supports traditional input methods such as key and touch inputs.| Standard system        |
+| Startup      | Starts the OS middle layer between the time the kernel is started and the time applications are started. In addition, you can query and modify system attributes and restore factory settings.| All systems        |
+| Update      | Supports over the air (OTA) update of OpenHarmony devices.            | Standard system        |
+| Account          | Provides interconnection with vendors' cloud account applications on the device side, and query and update of the cloud account login status.| Standard system        |
+| Build      | Provides a compilation and building framework based on Generate Ninja (GN) and Ninja.       | All systems        |
+| Test          | The test-driven development mode is used during the development process. You can develop new cases or modify existing cases to test new or enhanced system features. The test helps you develop high-quality code in the development phase.| All systems        |
+| Data Management      | Provides local data management and distributed data management:<br>- Local application data management for lightweight preference databases and relational databases<br>- Distributed data service to provide applications with the capability to store data in the databases of different devices| Standard system        |
+| Programming Language Runtime| Provides the compilation and execution environment for programs developed with JavaScript or C/C++, basic libraries that support the runtime, and the runtime-associated APIs, compilers, and auxiliary tools.| All systems        |
+| Distributed Scheduler| Starts, registers, queries, and manages system services.                  | All systems        |
+| JS UI Framework     | OpenHarmony JS UI framework supports web-development-like paradigm.      | All systems        |
+| Multimedia          | Provides easy-to-use APIs for developing multimedia components such as audio, video, and camera, and enables applications to use multimedia resources of the system.| All systems        |
+| Common Event and Notification      | Provides the common event management capabilities that allow applications to subscribe to, unsubscribe from, publish, and receive common events (such as screen-on/off events and USB device attachment/detachment events).| Standard system        |
+| Misc Services  | Provides the function of setting the time.                                        | Standard system        |
+| Bundle Management  | Provides bundle installation, uninstall, update, and query capabilities.                        | All systems        |
+| Telephony      | Provides basic communication capabilities of the cellular network, such as SIM cards, network search, cellular data, cellular calls, SMS, and MMS, as well as easy-to-use APIs for you to manage multiple types of calls and data network connections.| Standard system        |
+| Utils  | Stores basic components of OpenHarmony, which can be used by OpenHarmony subsystems and upper-layer applications.| All systems        |
+| Development Tools    | Provides a performance profiler platform for you to analyze system issues such as memory and performance, including hdc used for device debugging, APIs for performance tracing, and a performance profiler framework.| Standard system        |
+| DSoftBus  | Provides cross-process or cross-device communication capabilities for the OpenHarmony system and consists of the DSoftBus and IPC modules. The DSoftBus module enables distributed communication between near-field devices and provides device discovery, connection, networking, and data transmission functions, regardless of the communication mode. The IPC module enables communication between processes on a device or across devices.| All systems        |
+| XTS            | Provides a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite (ACTS) and the device compatibility test suite (DCTS) that will be supported in the future.| All systems        |
+| System Apps      | Provides system apps that are applicable to the OpenHarmony standard system, such as Home Screen, SystemUI, and Settings. It also provides specific examples for you to build standard-system applications, which can be installed on all devices running the standard system.| Standard system        |
+| DFX            | Provides non-functional capabilities of OpenHarmony. It provides a logging system, application and system event logging APIs, the event log subscription service, and fault information generation and collection capabilities.| All systems        |
+| Globalization        | If OpenHarmony devices and applications need to be used globally, they must meet the requirements of users in different regions on languages and cultures. The Globalization subsystem provides multi-language and multi-cultural capabilities for global use, including resource management and internationalization (i18n).| All systems        |
+| Security          | Provides system, data, and application security capabilities to protect system and user data of OpenHarmony. Its functions include application integrity verification, application permission management, device authentication, and key management.| All systems        |
+
+## Supported Development Boards
+
+Currently, the OpenHarmony community supports 17 types of development boards, which are listed in [Development Boards Supported](device-dev/dev-board-on-the-master.md). The following table describes three of them, which are the first three integrated into the OpenHarmony master.  You can visit http://ci.openharmony.cn/dailys/dailybuilds to obtain daily builds. 
+
+| System Type| Board Model| Chip Model| <div style="width:200pt">Function Description and Use Case</div> | Application Scenario| Code Repository |
 | -------- | -------- | -------- | -------- | -------- | -------- |
-| Standard system| Hi3516DV300 | Hi3516DV300 | Hi3516D V300 is a the next-generation system on chip (SoC) for smart HD IP cameras. It integrates the next-generation image signal processor (ISP), H.265 video compression encoder, and high-performance NNIE engine, and delivers exceptional performance in terms of low bit rate, high image quality, intelligent processing and analysis, and low power consumption.| Devices with screens, such as refrigerators and head units.| Code repositories:<br>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon) <br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
-| Standard system| Runhe HH-SCDAYU200| RK3568 | Bolstered by the Rockchip RK3568, the HH-SCDAYU200 development board integrates a dual-core GPU and high-efficiency NPU. Its quad-core 64-bit Cortex-A55 processor uses the advanced 22 nm fabrication process and is clocked at up to 2.0 GHz. The board is packed with Bluetooth, WiFi, audio, video, and camera features, with a wide range of expansion ports as well as video input and output ports. It comes with dual GE auto-sensing RJ45 ports, so it can be used in multi-connectivity products, such as network video recorders (NVRs) and industrial gateways.| Video and audio entertainment, smart travel, and smart home, such as kitchen hoods, ovens, and treadmills.| Code repositories:<br>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope) <br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
-| Lightweight| Goodix GR5515-STARTER-KIT| GR5515 | The GR5515-STARTER-KIT development board is a Bluetooth 5.1-capable single-mode Bluetooth low energy (BLE) SoC and comes with multifunctional keys and LED indicators.| Smart hardware, such as watches, wristbands, and price tags.| Code repositories:<br>[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)<br>[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)<br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
-| Lightweight| Langguo LANGO200| ASR582X | The LANGO200 IoT development board integrates the high-performance WiFi-BLE dual-mode chip ASR5822, external storage chip, voice playing chip, and analog-to-digital converter. It supports common peripheral interfaces like SPI, and can be connected to an external OLED display and infrared remote control.| Connection modules for smart home products.| Code repositories:<br>[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)<br>[device_board_lango](https://gitee.com/openharmony/device_board_lango)<br>[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro) <br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
-| Lightweight| Fn-Link multi-modal V200ZR| BES2600 | The multi-modal V200Z-R development board is a high-performance, multi-functional, and cost-effective AIoT SoC powered by the BES2600WM chip of Bestechnic. It integrates a quad-core Arm processor with a frequency of up to 1 GHz as well as dual-mode WiFi and dual-mode Bluetooth. The board supports the 802.11 a/b/g/n/ and BT/BLE 5.2 standards. It is able to accommodate RAM of up to 42 MB and flash memory of up to 32 MB, and supports the MIPI display serial interface (DSI) and camera serial interface (CSI). It is applicable to various AIoT multi-modal VUI and GUI interaction scenarios.| Smart hardware with screens, such as speakers and watches.| Code repositories:<br>[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic) <br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
-| Lightweight| BearPi-HM_Nano| Hi3861 | The BearPi-HM_Nano development board is specially designed for OpenHarmony. It is equipped with the highly integrated 2.4 GHz WiFi SoC chip Hi3861, near field communication (NFC) circuits, and standard E53 interfaces, which can be used to connect to smart humidifiers, smart desk lamps, smart security facilities, and intelligent smoke detectors.| Connection devices like smart street lamps, smart logistics sensors, and human body infrared sensors.| Code repositories:<br>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br>[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)<br>[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)<br> Daily build:<br>http://ci.openharmony.cn/dailys/dailybuilds |
+| Standard system| Runhe HH-SCDAYU200| RK3568 | <div style="width:200pt">Function description:<br>Bolstered by the Rockchip RK3568, the HH-SCDAYU200 development board integrates the dual-core GPU and efficient NPU. Its quad-core 64-bit Cortex-A55 processor uses the advanced 22 nm fabrication process and is clocked at up to 2.0 GHz. The board is packed with Bluetooth, Wi-Fi, audio, video, and camera features, with a wide range of expansion ports to accommodate various video input and outputs. It comes with dual GE auto-sensing RJ45 ports, so it can be used in multi-connectivity products, such as network video recorders (NVRs) and industrial gateways.<br>Use case:<br>[DAYU200 Use Case](device-dev/porting/porting-dayu200-on_standard-demo.md)</div> | Entertainment, easy travel, and smart home, such as kitchen hoods, ovens, and treadmills.| [device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope) <br> |
+| Small system| Hispark_Taurus | Hi3516DV300 | <div style="width:200pt">Function Description:<br>Hi3516D V300 is the next-generation system on chip (SoC) for smart HD IP cameras. It integrates the next-generation image signal processor (ISP), H.265 video compression encoder, and high-performance NNIE engine, and delivers high performance in terms of low bit rate, high image quality, intelligent processing and analysis, and low power consumption.</div> | Smart device with screens, such as refrigerators with screens and head units.| [device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon) <br> |
+| Mini system| Multi-modal V200Z-R | BES2600 | <div style="width:200pt">Function description:<br>The multi-modal V200Z-R development board is a high-performance, multi-functional, and cost-effective AIoT SoC powered by the BES2600WM chip of Bestechnic. It integrates a quad-core ARM processor with a frequency of up to 1 GHz as well as dual-mode Wi-Fi and dual-mode Bluetooth. The board supports the 802.11 a/b/g/n/ and BT/BLE 5.2 standards. It is able to accommodate RAM of up to 42 MB and flash memory of up to 32 MB, and supports the MIPI display serial interface (DSI) and camera serial interface (CSI). It is applicable to various AIoT multi-modal VUI and GUI interaction scenarios.<br>Use case:<br>[Multi-modal V200Z-R Use Case](device-dev/porting/porting-bes2600w-on-minisystem-display-demo.md)</div> | Smart hardware, and smart devices with screens, such as speakers and watches.| [device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic) <br> |
 
-## Getting Started<a name="section44681652104210"></a>
+## Getting Started
 
 - [Getting Started for Device Development](device-dev/quick-start/quickstart-ide-lite-overview.md)
 - [Getting Started for Application Development](application-dev/quick-start/start-overview.md)
 
-## Code Repository Addresses<a name="section107651249181914"></a>
 
-OpenHarmony project:  [https://gitee.com/openharmony](https://gitee.com/openharmony)
 
-OpenHarmony SIG:  [https://gitee.com/openharmony-sig](https://gitee.com/openharmony-sig)
+## Code Repository Addresses
+
+OpenHarmony project: [https://gitee.com/openharmony](https://gitee.com/openharmony)
+
+OpenHarmony SIGs: [https://gitee.com/openharmony-sig](https://gitee.com/openharmony-sig)
 
-OpenHarmony third-party components:  [https://gitee.com/openharmony-tpc](https://gitee.com/openharmony-tpc)
+OpenHarmony third-party components: [https://gitee.com/openharmony-tpc](https://gitee.com/openharmony-tpc)
 
-OpenHarmony archived projects:  [https://gitee.com/openharmony-retired](https://gitee.com/openharmony-retired)
+OpenHarmony archived projects: [https://gitee.com/openharmony-retired](https://gitee.com/openharmony-retired)
 
-## OpenHarmony Documentation<a name="section21031470109"></a>
+## OpenHarmony Documentation
 
-[Chinese version](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme.md)
+[Chinese version](https://gitee.com/openharmony/docs/tree/master/zh-cn)
 
-[English version](https://gitee.com/openharmony/docs/blob/master/en/readme.md)
+[English version](https://gitee.com/openharmony/docs/tree/master/en)
 
-## Source Code Downloading<a name="section39011923144212"></a>
+## Source Code Downloading
 
-For details about how to obtain the source code of OpenHarmony, see  [Source Code Acquisition](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md).
+For details about how to obtain the source code of OpenHarmony, see [Source Code Acquisition](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md)
 
-## Hands-On Tutorials<a name="sectionsamples"></a>
+## Hands-On Tutorials
 
 [Samples](https://gitee.com/openharmony/app_samples)
 
 [Codelabs](https://gitee.com/openharmony/codelabs)
 
-## How to Participate<a name="section19611528174215"></a>
+## How to Participate
 
-For details about how to join in the OpenHarmony community, see  [OpenHarmony Community](https://gitee.com/openharmony/community/blob/master/README-EN.md).
+For details about how to join in the OpenHarmony community, see [OpenHarmony Community](https://gitee.com/openharmony/community/blob/master/README-EN.md)
 
-For details about how to contribute, see  [How to Contribute](contribute/how-to-contribute.md).
+For details about how to contribute, see [How to contribute](contribute/how-to-contribute.md).
 
-## License Agreement<a name="section1245517472115"></a>
+## License Agreement
 
 OpenHarmony complies with Apache License Version 2.0. For details, see the LICENSE in each repository.
 
-OpenHarmony uses third-party open-source software and licenses. For details, see  [Third-Party Open-Source Software](https://gitee.com/openharmony/docs/blob/master/en/contribute/third-party-open-source-software-and-license-notice.md).
+OpenHarmony uses third-party open-source software and licenses. For details, see [Third-Party Open-Source Software](https://gitee.com/openharmony/docs/blob/master/en/contribute/third-party-open-source-software-and-license-notice.md).
 
-## Contact Info<a name="section61728335424"></a>
+## Contact Info
 
 Website:
 
diff --git a/en/application-dev/Readme-EN.md b/en/application-dev/Readme-EN.md
index fdc79edbcb58a00729b62b5e9f7d239b52cdbf59..8e42633391269303e5e8d888561281f57d1718ae 100644
--- a/en/application-dev/Readme-EN.md
+++ b/en/application-dev/Readme-EN.md
@@ -15,7 +15,6 @@
     - Development Fundamentals
         - [Application Package Structure Configuration File (FA Model)](quick-start/package-structure.md)
         - [Application Package Structure Configuration File (Stage Model)](quick-start/stage-structure.md)
-        - [Resource File Categories](quick-start/basic-resource-file-categories.md)
         - [SysCap](quick-start/syscap.md)
 - Development
     - [Ability Development](ability/Readme-EN.md)
@@ -45,8 +44,5 @@
     - [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md)
     - APIs
       -   [JS and TS APIs](reference/apis/Readme-EN.md)
-      -   Native APIs
-          -   [Standard Library](reference/native-lib/third_party_libc/musl.md)
-          -   [Node_API](reference/native-lib/third_party_napi/napi.md)
 - Contribution
     - [How to Contribute](../contribute/documentation-contribution.md)
diff --git a/en/application-dev/ability/ability-brief.md b/en/application-dev/ability/ability-brief.md
index 187064a1c67d7bd21c823a945cca79366428d3f8..9943d4d697fa787db084fc14848d37abdad90fe9 100644
--- a/en/application-dev/ability/ability-brief.md
+++ b/en/application-dev/ability/ability-brief.md
@@ -4,8 +4,8 @@ An ability is the abstraction of a functionality that an application can provide
 
 The ability framework model has two forms.
 
-- FA model, which applies to application development using API version 8 and earlier versions. In the FA model, there are Feature Ability (FA) and Particle Ability (PA). The FA supports Page abilities, and the PA supports Service, Data, and Form abilities. 
-- Stage model, which is introduced since API version 9. In the stage model, there are Ability and ExtensionAbility. The ExtensionAbility is further extended to ServiceExtensionAbility, FormExtensionAbility, DataShareExtensionAbility, and more.
+- FA model, which applies to application development using API version 8 and earlier versions. In the FA model, there is Feature Ability (FA) and Particle Ability (PA). The FA supports Page abilities, and the PA supports Service, Data, and Form abilities. 
+- Stage model, which is introduced since API version 9. In the stage model, there is `Ability` and `ExtensionAbility`. `ExtensionAbility` is further extended to `ServiceExtensionAbility`, `FormExtensionAbility`, `DataShareExtensionAbility`, and more.
 
 The stage model is designed to make it easier to develop complex applications in the distributed environment. The table below lists the design differences between the two models.
 
diff --git a/en/application-dev/ability/figures/fa-package-info.png b/en/application-dev/ability/figures/fa-package-info.png
deleted file mode 100644
index 86da707408da8fdb149ea62d92298fed605132ca..0000000000000000000000000000000000000000
Binary files a/en/application-dev/ability/figures/fa-package-info.png and /dev/null differ
diff --git a/en/application-dev/ability/stage-ability.md b/en/application-dev/ability/stage-ability.md
index 5b61bcec4b25312f994ed94362339e601df5cd55..e1d67a295b673453d7340fb20a40c81d8c7a7855 100644
--- a/en/application-dev/ability/stage-ability.md
+++ b/en/application-dev/ability/stage-ability.md
@@ -78,29 +78,29 @@ To create Page abilities for an application in the stage model, you must impleme
     onCreate(want, launchParam) {
         console.log("MainAbility onCreate")
     }
-   
+
     onDestroy() {
         console.log("MainAbility onDestroy")
     }
-   
+
     onWindowStageCreate(windowStage) {
         console.log("MainAbility onWindowStageCreate")
-   
+
         windowStage.loadContent("pages/index").then((data) => {
             console.log("MainAbility load content succeed with data: " + JSON.stringify(data))
         }).catch((error) => {
             console.error("MainAbility load content failed with error: " + JSON.stringify(error))
         })
     }
-   
+
     onWindowStageDestroy() {
         console.log("MainAbility onWindowStageDestroy")
     }
-   
+
     onForeground() {
         console.log("MainAbility onForeground")
     }
-   
+
     onBackground() {
         console.log("MainAbility onBackground")
     }
@@ -300,7 +300,7 @@ export default class MainAbility extends Ability {
 
 Obtain the `want` parameter that contains the page information from the custom component and process the route based on the URI.
 ```ts
-import router from '@system.router'
+import router from '@ohos.router'
 
 @Entry
 @Component
diff --git a/en/application-dev/application-dev-guide-for-gitee.md b/en/application-dev/application-dev-guide-for-gitee.md
index 753b706605487dbe2cf5ebe0ce961b19d94e7ee0..e60f2c01333c1bef7324b3ef6cfe2c83821a95cd 100644
--- a/en/application-dev/application-dev-guide-for-gitee.md
+++ b/en/application-dev/application-dev-guide-for-gitee.md
@@ -54,8 +54,10 @@ To make you better understand how functions work together and jumpstart your app
 API references encompass all components and APIs available in OpenHarmony, helping you use and integrate APIs more effectively.
 
 They are organized as follows:
+
+- [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md)
+
 -   [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md)
--   [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md)
 -   APIs
     -   [JS and TS APIs](reference/apis/Readme-EN.md)
     -   Native APIs
diff --git a/en/application-dev/application-dev-guide.md b/en/application-dev/application-dev-guide.md
index c07f787d38091637215907537e54812c397a417e..7065480d1c4a12bd0984f4916d678c1bed7a4997 100644
--- a/en/application-dev/application-dev-guide.md
+++ b/en/application-dev/application-dev-guide.md
@@ -54,8 +54,14 @@ To make you better understand how functions work together and jumpstart your app
 API references encompass all components and APIs available in OpenHarmony, helping you use and integrate APIs more effectively.
 
 They are organized as follows:
--   [JS and TS APIs](reference/apis/js-apis-DataUriUtils.md)
--   Native APIs
-    -   [Standard Library](reference/native-lib/third_party_libc/musl.md)
-    -   [Node_API](reference/native-lib/third_party_napi/napi.md)
+
+- [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md)
+
+- [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md)
+
+- [JS and TS APIs](reference/apis/js-apis-DataUriUtils.md)
+
+- Native APIs
+  - [Standard Library](reference/native-lib/third_party_libc/musl.md)
+  - [Node_API](reference/native-lib/third_party_napi/napi.md) 
 
diff --git a/en/application-dev/connectivity/ipc-rpc-overview.md b/en/application-dev/connectivity/ipc-rpc-overview.md
index 19bbe8dc26871bec8b2f6f48273d90dacc148d70..e75536863b1ae1b5c5371f51b0d7e26e4db97ed6 100755
--- a/en/application-dev/connectivity/ipc-rpc-overview.md
+++ b/en/application-dev/connectivity/ipc-rpc-overview.md
@@ -19,4 +19,4 @@ In OpenHarmony documents, proxy represents the service requester, and stub repre
 
 ## Related Modules
 
-[Distributed Scheduler](https://gitee.com/openharmony/distributedschedule_dms_fwk)
+[Distributed Scheduler](https://gitee.com/openharmony/ability_dmsfwk)
diff --git a/en/application-dev/connectivity/subscribe-remote-state.md b/en/application-dev/connectivity/subscribe-remote-state.md
index fa70738556ec7992c33fd8bcf3e74fbd6145fcb6..8d9365d6bbba940bb85d9ac7493b7069c48845eb 100755
--- a/en/application-dev/connectivity/subscribe-remote-state.md
+++ b/en/application-dev/connectivity/subscribe-remote-state.md
@@ -1,25 +1,30 @@
-# Subscribing to State Changes of a Remote Object<a name="EN-US_TOPIC_0000001104030756"></a>
+# Subscribing to State Changes of a Remote Object
 
-IPC/RPC allows you to subscribe to the state changes of a remote stub object. When the remote stub object dies, a death notification will be sent to your local proxy object. You can also unsubscribe from the state changes if they are no longer needed. Such subscription and unsubscription are controlled by APIs. To be specific, you need to implement the  **IRemoteObject.DeathRecipient**  interface and the  **onRemoteDied**  method to clear resources. This callback is invoked when the process accommodating the remote stub object dies, or the device accommodating the remote stub object leaves the network. It is worth noting that these APIs should be called in the following order: The proxy object must first subscribe to death notifications of the stub object. If the stub object is in the normal state, the proxy object can cancel the subscription as required. If the process of the stub object exits or the device hosting the stub object goes offline, subsequent operations customized by the proxy object will be automatically triggered.
+IPC/RPC allows you to subscribe to the state changes of a remote stub object. When the remote stub object dies, a death notification will be sent to your local proxy object. Such subscription and unsubscription are controlled by APIs. To be specific, you need to implement the **DeathRecipient** callback and the **onRemoteDied** method to clear resources. This callback is invoked when the process accommodating the remote stub object dies, or the device accommodating the remote stub object leaves the network. 
 
-**Development Using Native APIs**
+Note that the proxy object must first subscribe to death notifications of the stub object. If the stub object is in the normal state, the proxy object can cancel the subscription as required. If the process of the stub object exits or the device hosting the stub object goes offline, subsequent operations customized by the proxy object will be automatically triggered.
 
-The following APIs are used to add a recipient for death notifications of a remote stub object, remove such a recipient, and perform subsequent operations upon receiving a death notification of the remote stub object:
 
-```
-bool AddDeathRecipient(const sptr<DeathRecipient> &recipient);
-bool RemoveDeathRecipient(const sptr<DeathRecipient> &recipient);
-void OnRemoteDied(const wptr<IRemoteObject> &object);
-```
 
-The sample code is as follows:
+
+## **Development Using Native APIs**
+
+| API| Description|
+| -------- | -------- |
+| AddDeathRecipient(const sptr\<DeathRecipient> &recipient); | Adds a recipient for death notifications of a remote stub object.|
+| RemoveDeathRecipient(const sptr\<DeathRecipient> &recipient); | Removes the recipient for death notifications of a remote stub object.|
+| OnRemoteDied(const wptr\<IRemoteObject> &object); | Called when the remote stub object dies.|
+
+
+## Sample Code
+
 
 ```
 class TestDeathRecipient : public IRemoteObject::DeathRecipient {
 public:
     virtual void OnRemoteDied(const wptr<IRemoteObject>& remoteObject);
 }
-sptr<IRemoteObject::DeathRecipient> deathRecipient (new TestDeathRecipient()); // Construct a death notification recipient.
-bool result = proxy->AddDeathRecipient(deathRecipient); // Add the recipient to the proxy.
-result = proxy->RemoveDeathRecipient(deathRecipient); // Remove the recipient.
+sptr<IRemoteObject::DeathRecipient> deathRecipient (new TestDeathRecipient());// Construct a death notification recipient.
+bool result = proxy->AddDeathRecipient(deathRecipient); // Add a recipient for death notifications.
+result = proxy->RemoveDeathRecipient(deathRecipient); // Remove the recipient for death notifications.
 ```
diff --git a/en/application-dev/connectivity/websocket-connection.md b/en/application-dev/connectivity/websocket-connection.md
index 01f5f38fad74e234c8a9fb483ee4a11ae2a8c7a7..b68d537fc5ad96f3ab60b53e2e75a96d7b555f76 100644
--- a/en/application-dev/connectivity/websocket-connection.md
+++ b/en/application-dev/connectivity/websocket-connection.md
@@ -3,7 +3,7 @@
 
 ## Use Cases
 
-You can use WebSocket to establish a bidirectional connection between a server and a client. Before doing this, you need to use the **createWebSocket** API to create a **WebSocket** object and then use the **connect** API to connect to the server. If the connection is successful, the client will receive a callback of the **open** event. Then, the client can communicate with the server using the **send** API. When the server sends a message to the client, the client will receive a callback of the **message** event. If the client no longer needs this connection, it can call the **close** API to disconnect from the server. Then, the client will receive a callback of the **close** event.
+You can use WebSocket to establish a bidirectional connection between a server and a client. Before doing this, you need to use the **createWebSocket()** API to create a **WebSocket** object and then use the **connect()** API to connect to the server. If the connection is successful, the client will receive a callback of the **open** event. Then, the client can communicate with the server using the **send()** API. When the server sends a message to the client, the client will receive a callback of the **message** event. If the client no longer needs this connection, it can call the **close()** API to disconnect from the server. Then, the client will receive a callback of the **close** event.
 
 If an error occurs in any of the preceding processes, the client will receive a callback of the **error** event.
 
@@ -18,14 +18,14 @@ The WebSocket connection function is mainly implemented by the WebSocket module.
 | connect() | Establishes a WebSocket connection to a given URL. |
 | send() | Sends data through the WebSocket connection. |
 | close() | Closes a WebSocket connection. |
-| on(type:&nbsp;'open') | Enables listening for **open** events of a WebSocket connection. |
-| off(type:&nbsp;'open') | Disables listening for **open** events of a WebSocket connection. |
-| on(type:&nbsp;'message') | Enables listening for **message** events of a WebSocket connection. |
-| off(type:&nbsp;'message') | Disables listening for **message** events of a WebSocket connection. |
-| on(type:&nbsp;'close') | Enables listening for **close** events of a WebSocket connection. |
-| off(type:&nbsp;'close') | Disables listening for **close** events of a WebSocket connection. |
-| on(type:&nbsp;'error') | Enables listening for **error** events of a WebSocket connection. |
-| off(type:&nbsp;'error') | Disables listening for **error** events of a WebSocket connection. |
+| on(type: 'open') | Enables listening for **open** events of a WebSocket connection. |
+| off(type: 'open') | Disables listening for **open** events of a WebSocket connection. |
+| on(type: 'message') | Enables listening for **message** events of a WebSocket connection. |
+| off(type: 'message') | Disables listening for **message** events of a WebSocket connection. |
+| on(type: 'close') | Enables listening for **close** events of a WebSocket connection. |
+| off(type: 'close') | Disables listening for **close** events of a WebSocket connection. |
+| on(type: 'error') | Enables listening for **error** events of a WebSocket connection. |
+| off(type: 'error') | Disables listening for **error** events of a WebSocket connection. |
 
 
 ## How to Develop
@@ -50,9 +50,9 @@ The WebSocket connection function is mainly implemented by the WebSocket module.
        // When receiving the on('open') event, the client can use the send() API to communicate with the server.
        ws.send("Hello, server!", (err, value) => {
            if (!err) {
-               console.log("send success");
+               console.log("Message sent successfully");
            } else {
-               console.log("send fail, err:" + JSON.stringify(err));
+               console.log("Failed to send the message. Err:" + JSON.stringify(err));
            }
        });
    });
@@ -62,9 +62,9 @@ The WebSocket connection function is mainly implemented by the WebSocket module.
        if (value === 'bye') {
            ws.close((err, value) => {
                if (!err) {
-                   console.log("close success");
+                   console.log("Connection closed successfully");
                } else {
-                   console.log("close fail, err is " + JSON.stringify(err));
+                   console.log("Failed to close the connection. Err: " + JSON.stringify(err));
                }
            });
        }
@@ -77,9 +77,9 @@ The WebSocket connection function is mainly implemented by the WebSocket module.
    });
    ws.connect(defaultIpAddress, (err, value) => {
        if (!err) {
-           console.log("connect success");
+           console.log("Connected successfully");
        } else {
-           console.log("connect fail, err:" + JSON.stringify(err));
+           console.log("Connection failed. Err:" + JSON.stringify(err));
        }
    });
    ```
diff --git a/en/application-dev/database/database-distributedobject-guidelines.md b/en/application-dev/database/database-distributedobject-guidelines.md
index baf12a5741e2186ab57aeb5feb1acb534fa4651a..dde1feb495e9827ab1f0fd1fad903f71acb9cbb3 100644
--- a/en/application-dev/database/database-distributedobject-guidelines.md
+++ b/en/application-dev/database/database-distributedobject-guidelines.md
@@ -7,6 +7,8 @@ The distributed data objects allow data across devices to be processed like loca
 
 ## Available APIs
 
+For details about the APIs related to the distributed data object, see [Distributed Data Object](../reference/apis/js-apis-data-distributedobject.md).
+
 ### Creating a Distributed Data Object Instance
 
 Call **createDistributedObject()** to create a distributed data object instance. You can specify the attributes of the instance in **source**.
@@ -15,7 +17,7 @@ Call **createDistributedObject()** to create a distributed data object instance.
 **Table 1** API for creating a distributed data object instance
 | Package| API| Description|
 | -------- | -------- | -------- |
-| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations.<br>-&nbsp;**source**: attributes of the **distributedObject** set.<br>-&nbsp;**DistributedObject**: returns the distributed object created.|
+| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations.<br>- **source**: attributes of the **distributedObject** set.<br>- **DistributedObject**: returns the distributed object created.| 
 
 ### Generating a Session ID
 
@@ -33,16 +35,16 @@ Call **setSessionId()** to set a session ID for a distributed data object. The s
 **Table 3** API for setting a session ID
 | Class| API| Description|
 | -------- | -------- | -------- |
-| DistributedDataObject | setSessionId(sessionId?: string): boolean | Sets a session ID for distributed data objects.<br>&nbsp;**sessionId**: session ID of a distributed object in a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.|
+| DistributedDataObject | setSessionId(sessionId?: string): boolean | Sets a session ID for distributed data objects.<br> **sessionId**: session ID of a distributed object in a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.|
 
 ### Observing Data Changes
 
 Call **on()** to subscribe to data changes of a distributed data object. When the data changes, a callback will be invoked to return the data changes. You can use **off()** to unsubscribe from the data changes.
 
 **Table 4** APIs for observing data changes of a distributed data object
-| Class| API| Description|
+| Class| API| Description| 
 | -------- | -------- | -------- |
-| DistributedDataObject| on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;string&gt; }>): void | Subscribes to data changes.|
+| DistributedDataObject| on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;string&gt; }>): void | Subscribes to data changes.| 
 | DistributedDataObject| off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;string&gt; }>): void | Unsubscribes from data changes. **Callback**: specifies callback used to return changes of the distributed data object. If this parameter is not specified, all callbacks related to data changes will be unregistered.|
 
 ### Observing Online or Offline Status
@@ -67,13 +69,13 @@ The saved data will be released in the following cases:
 - The application has been uninstalled.
 - Data is successfully restored.
 
-**Table 6** APIs for saving a distributed data object and revoking the saving
+**Table 6** APIs for saving a distributed data object and revoking the saving operation
 | Class| API| Description|
 | -------- | -------- | -------- |
 | DistributedDataObject | save(deviceId: string): Promise&lt;SaveSuccessResponse&gt; | Saves a distributed data object. This API uses a promise to return the result.|
 | DistributedDataObject| save(deviceId: string, callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void | Saves a distributed data object. This API uses an asynchronous callback to return the result.|
-| DistributedDataObject | revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void | Revokes the data saving operation. This API uses an asynchronous callback to return the result. |
-| DistributedDataObject| revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt; | Revokes the data saving operation. This API uses a promise to return the result. |
+| DistributedDataObject | revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void | Revokes the data saving operation. This API uses an asynchronous callback to return the result.|
+| DistributedDataObject| revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt; | Revokes the data saving operation. This API uses a promise to return the result.|
 
 ## How to Develop
 
@@ -157,7 +159,7 @@ The following example shows how to implement a distributed data object synchroni
     local_object.on("change", this.changeCallback.bind(this));
    ```
    
-6. Modify object attributes. <br>The object attributes support basic data types (such as number, Boolean, and string) and complex data types (array and nested basic types). 
+6. Modify object attributes. <br>The object attributes support basic data types (such as number, Boolean, and string) and complex data types (array and nested basic types).
    
    The sample code is as follows:
    ```js
@@ -205,41 +207,39 @@ The following example shows how to implement a distributed data object synchroni
 10. Save a distributed data object and revoke the data saving operation.
 
     - Callback
-
-
-    ```js
-     // Save a distributed data object.
-     local_object.save("local", (result, data)=>{
-         console.log("save callback");
-         console.info("save sessionId " + data.sessionId);
-         console.info("save version " + data.version);
-         console.info("save deviceId " + data.deviceId);
-     });
-     // Revoke the data saving operation.
-     local_object.revokeSave((result, data) =>{
-     console.log("revokeSave callback");
-     console.info("revokeSave sessionId " + data.sessionId);
-     });
-    ```
-    - Promise
-
-    ```js
-     // Save a distributed data object.
-     g_object.save("local").then((result)=>{
-         console.info("save sessionId " + result.sessionId);
-         console.info("save version " + result.version);
-         console.info("save deviceId " + result.deviceId);
-     }, (result)=>{
-         console.info("save local failed.");
-     });
-     // Revoke the data saving operation.
-     g_object.revokeSave().then((result)=>{
-         console.info("revokeSave success.");
-     }, (result)=>{
-         console.info("revokeSave failed.");
-     });
-    ```
-11. Unsubscribe from the status changes of the distributed data object. <br>You can specify the callback to unregister. If you do not specify the callback, this API unregister all callbacks of this distributed data object.
+    
+       ```js
+        // Save a distributed data object.
+        local_object.save("local", (result, data)=>{
+            console.log("save callback");
+            console.info("save sessionId " + data.sessionId);
+            console.info("save version " + data.version);
+            console.info("save deviceId " + data.deviceId);
+        });
+        // Revoke the data saving operation.
+        local_object.revokeSave((result, data) =>{
+        console.log("revokeSave callback");
+        console.info("revokeSave sessionId " + data.sessionId);
+        });
+       ```
+       - Promise
+       ```js
+        // Save a distributed data object.
+        g_object.save("local").then((result)=>{
+            console.info("save sessionId " + result.sessionId);
+            console.info("save version " + result.version);
+            console.info("save deviceId " + result.deviceId);
+        }, (result)=>{
+            console.info("save local failed.");
+        });
+        // Revoke the data saving operation.
+        g_object.revokeSave().then((result)=>{
+            console.info("revokeSave success.");
+        }, (result)=>{
+            console.info("revokeSave failed.");
+        });
+       ```
+11. Unsubscribe from the status changes of the distributed data object. <br>You can specify the callback to unregister. If you do not specify the callback, this API unregisters all callbacks of this distributed data object.
 
     The sample code is as follows:
        ```js
diff --git a/en/application-dev/database/database-mdds-guidelines.md b/en/application-dev/database/database-mdds-guidelines.md
index 309d2a38e4cbcab79a102b809bb9444cf9a8e1ee..c5608c6eabd526c38a87bd3907fba89fb1a11629 100644
--- a/en/application-dev/database/database-mdds-guidelines.md
+++ b/en/application-dev/database/database-mdds-guidelines.md
@@ -7,19 +7,21 @@ The Distributed Data Service (DDS) implements synchronization of application dat
 
 ## Available APIs
 
+For details about the APIs related to distributed data, see [Distributed Data Management](../reference/apis/js-apis-distributed-data.md).
+
 The table below describes the APIs provided by the OpenHarmony DDS module.
 
 **Table 1** APIs provided by the DDS
 
-| Category | API | Description |
-| -------- | --- | ----------- |
-| Creating a distributed database | createKVManager(config: KVManagerConfig, callback: AsyncCallback&lt;KVManager&gt;): void<br>createKVManager(config: KVManagerConfig): Promise&lt;KVManager> | Creates a **KVManager** object for database management.|
-| Obtaining a distributed KV store | getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void<br>getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options): Promise&lt;T&gt; | Obtains the KV store with the specified **Options** and **storeId**. |
-| Managing data in a distributed KV store | put(key: string, value: Uint8Array \| string \| number \| boolean, callback: AsyncCallback&lt;void&gt;): void<br>put(key: string, value: Uint8Array \| string \| number \| boolean): Promise&lt;void> | Inserts and updates data. |
+| Category | API | Description  |
+| ------------ | ------------- | ------------- |
+| Creating a distributed database| createKVManager(config: KVManagerConfig, callback: AsyncCallback&lt;KVManager&gt;): void<br>createKVManager(config: KVManagerConfig): Promise&lt;KVManager> | Creates a **KVManager** object for database management.|
+| Obtaining a distributed KV store| getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void<br>getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options): Promise&lt;T&gt; | Obtains the KV store with the specified **Options** and **storeId**.|
+| Managing data in a distributed KV store| put(key: string, value: Uint8Array \| string \| number \| boolean, callback: AsyncCallback&lt;void&gt;): void<br>put(key: string, value: Uint8Array \| string \| number \| boolean): Promise&lt;void> | Inserts and updates data.|
 | Managing data in a distributed KV store| delete(key: string, callback: AsyncCallback&lt;void&gt;): void<br>delete(key: string): Promise&lt;void> | Deletes data. |
-| Managing data in a distributed KV store | get(key: string, callback: AsyncCallback&lt;Uint8Array \| string \| boolean \| number&gt;): void<br>get(key: string): Promise&lt;Uint8Array \| string \| boolean \| number> | Queries data. |
-| Subscribing to changes in the distributed data | on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;ChangeNotification&gt;): void<br>on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void | Subscribes to data changes in the KV store. |
-| Synchronizing data across devices | sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | Triggers database synchronization in manual mode. |
+| Managing data in a distributed KV store| get(key: string, callback: AsyncCallback&lt;Uint8Array \| string \| boolean \| number&gt;): void<br>get(key: string): Promise&lt;Uint8Array \| string \| boolean \| number> | Queries data.                                     |
+| Subscribing to changes in the distributed data| on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;ChangeNotification&gt;): void<br>on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void | Subscribes to data changes in the KV store.|
+| Synchronizing data across devices| sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | Triggers database synchronization in manual mode. |
 
 
 
@@ -29,14 +31,13 @@ The table below describes the APIs provided by the OpenHarmony DDS module.
 The following uses a single KV store as an example to describe the development procedure.
 
 1. Import the distributed data module.
-
    ```js
    import distributedData from '@ohos.data.distributedData';
    ```
 
 2. Create a **KvManager** instance based on the specified **KvManagerConfig** object.
-   1. Create a **KvManagerConfig** object based on the application context.
-   2. Create a **KvManager** instance.
+   (1) Create a **KvManagerConfig** object based on the application context.
+   (2) Create a **KvManager** instance.
 
    The sample code is as follows:
    ```js
@@ -63,8 +64,8 @@ The following uses a single KV store as an example to describe the development p
    ```
 
 3. Create and obtain a single KV store.
-   1. Declare the ID of the single KV store to create.
-   2. Create a single KV store. You are advised to disable automatic synchronization (**autoSync:false**) and call **sync** when a synchronization is required.
+   (1) Declare the ID of the single KV store to create.
+   (2) Create a single KV store. You are advised to disable automatic synchronization (**autoSync:false**) and call **sync** when a synchronization is required.
 
    The sample code is as follows:
    ```js
@@ -91,12 +92,11 @@ The following uses a single KV store as an example to describe the development p
    }
    ```
 
-   > ![icon-note.gif](../public_sys-resources/icon-note.gif) **NOTE**<br/>
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>
    > For data synchronization between networked devices, you are advised to open the distributed KV store during application startup to obtain the database handle. With this database handle (**kvStore** in this example), you can perform operations, such as inserting data into the KV store, without creating the KV store repeatedly during the lifecycle of the handle.
 
-4.  Subscribe to changes in the distributed data.<br/>
+4. Subscribe to changes in the distributed data.<br/>
    The following is the sample code for subscribing to the data changes of a single KV store:
-
    ```js
    kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
        console.log("dataChange callback call data: " + JSON.stringify(data));
@@ -104,8 +104,8 @@ The following uses a single KV store as an example to describe the development p
    ```
 
 5. Write data to the single KV store.
-   1. Construct the key and value to be written into the single KV store.
-   2. Write key-value pairs into the single KV store.
+   (1) Construct the key and value to be written into the single KV store.
+   (2) Write key-value pairs into the single KV store.
 
    The following is the sample code for writing key-value pairs of the string type into the single KV store:
 
@@ -126,11 +126,10 @@ The following uses a single KV store as an example to describe the development p
    ```
 
 6. Query data in the single KV store.
-   1. Construct the key to be queried from the single KV store.
-   2. Query data from the single KV store.
+   (1) Construct the key to be queried from the single KV store.
+   (2) Query data from the single KV store.
 
    The following is the sample code for querying data of the string type from the single KV store:
-
    ```js
    const KEY_TEST_STRING_ELEMENT = 'key_test_string';
    const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
@@ -178,3 +177,7 @@ The following uses a single KV store as an example to describe the development p
        }
    });
    ```
+## Samples
+The following samples are provided to help you better understand the distributed data development:
+- [`KvStore`: Distributed Database (eTS) (API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Kvstore)
+- [Distributed Database](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)
diff --git a/en/application-dev/database/database-relational-guidelines.md b/en/application-dev/database/database-relational-guidelines.md
index 50d34b56ce3309b953285083d9ce97405e0721d2..53bba062801ec1b8bcf1f65cdc4119fa53757f10 100644
--- a/en/application-dev/database/database-relational-guidelines.md
+++ b/en/application-dev/database/database-relational-guidelines.md
@@ -34,7 +34,7 @@ The RDB provides APIs for inserting, deleting, updating, and querying data in th
   
   | Class| API| Description|
   | -------- | -------- | -------- |
-  | RdbStore | insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void | Inserts a row of data into a table. This API uses a callback to return the result.<br>- **table**: name of the target table.<br>- **values**: data to be inserted into the table.<br>- **callback**: callback invoked to return the result. If the operation is successful, the row ID will be returned. Otherwise, **-1** will be returned.|
+  | RdbStore | insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void | Inserts a row of data into a table. This API uses a callback to return the result.<br>- **table**: name of the target table.<br>- **values**: data to be inserted into the table.<br>- **callback**: callback invoked to return the result. If the operation is successful, the row ID will be returned; otherwise, **-1** will be returned.|
   | RdbStore | insert(table: string, values: ValuesBucket): Promise&lt;number&gt; | Inserts a row of data into a table. This API uses a promise to return the result.<br>- **table**: name of the target table.<br>- **values**: data to be inserted into the table.|
   
 - **Updating data**
@@ -190,7 +190,7 @@ You can obtain the distributed table name for a remote device based on the local
 | -------- | -------- | -------- |
 | RdbStore |off(event:'dataChange', type: SubscribeType, observer: Callback\<Array\<string>>): void;| Unregisters the observer of the specified type for the RDB store. This API uses a callback to return the result.<br>- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE** means to subscribe to remote data changes.<br>- **observer**: observer to unregister.|
 
-### Backing Up and Restore an RDB Store
+### Backing Up and Restoring an RDB Store
 
 **Backing Up an RDB Store**
 
@@ -198,8 +198,8 @@ You can obtain the distributed table name for a remote device based on the local
 
 | Class| API| Description|
 | -------- | -------- | -------- |
-| RdbStore |backup(destName:string, callback: AsyncCallback&lt;void&gt;):void| Backs up the RDB store with the specified name. This API uses an asynchronous callback to return the result.<br>- **destName**: name of the RDB backup file.<br>- **callback**: callback invoked to return the result.|
-| RdbStore |backup(destName:string): Promise&lt;void&gt;| Backs up the RDB store with the specified name. This API uses a promise to return the result.<br>- **destName**: name of the RDB backup file.|
+| RdbStore |backup(destName:string, callback: AsyncCallback&lt;void&gt;):void| Backs up an RDB store. This API uses an asynchronous callback to return the result.<br>- **destName**: name of the RDB backup file.<br>- **callback**: callback invoked to return the result.|
+| RdbStore |backup(destName:string): Promise&lt;void&gt;| Backs up an RDB store. This API uses a promise to return the result.<br>- **destName**: name of the RDB backup file.|
 
 **Restoring an RDB Store**
 
@@ -207,8 +207,8 @@ You can obtain the distributed table name for a remote device based on the local
 
 | Class| API| Description|
 | -------- | -------- | -------- |
-| RdbStore |restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void| Restores an RDB store using the specified backup file. This API uses an asynchronous callback to return the result.<br>- **srcName**: name of the RDB backup file.<br>- **callback**: callback invoked to return the result.|
-| RdbStore |restore(srcName:string): Promise&lt;void&gt;| Restores an RDB store using the specified backup file. This API uses a promise to return the result.<br>- **srcName**: name of the RDB backup file.|
+| RdbStore |restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void| Restores an RDB store using a backup file. This API uses an asynchronous callback to return the result.<br>- **srcName**: name of the RDB backup file.<br>- **callback**: callback invoked to return the result.|
+| RdbStore |restore(srcName:string): Promise&lt;void&gt;| Restores an RDB store using a backup file. This API uses a promise to return the result.<br>- **srcName**: name of the RDB backup file.|
 
 ## How to Develop
 
@@ -270,7 +270,7 @@ You can obtain the distributed table name for a remote device based on the local
         const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType"))
         resultSet.close()
     })
-    ```
+   ```
 
 4. Set the distributed tables to be synchronized.
 
diff --git a/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md b/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
index c4e4fdf3850f4bd3b1b8f6902133835764414cb3..fb107049c515d0ff1961313a9f0bebb39c4e4c9d 100644
--- a/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
+++ b/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
@@ -3,7 +3,6 @@
 ## When to Use
 
 With device usage statistics APIs, you can have a better understanding of the application, notification, and system usage. For example, in application usage statistics, you can query the application usage, event log, and bundle group.
-
 The application records (usage history statistics and event records) cached by components are updated to the database for persistent storage within 30 minutes after an event is reported.
 
 ## Available APIs
@@ -23,7 +22,7 @@ import stats from '@ohos.bundleState';
 | function queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void | Queries the priority group of this application. This API uses an asynchronous callback to return the result.|
 | function queryAppUsagePriorityGroup(): Promise&lt;number&gt;; | Queries the priority group of this application. This API uses a promise to return the result.|
 | function isIdleState(bundleName: string, callback: AsyncCallback&lt;boolean&gt;): void | Checks whether the application specified by **bundleName** is in the idle state. |
-| function getRecentlyUsedModules(maxNum: number, callback: AsyncCallback&lt;BundleActiveModuleInfo&gt;): void | Obtains the number of FA usage records specified by **maxNum**.|
+| function getRecentlyUsedModules(maxNum? : number, callback: AsyncCallback&lt;BundleActiveModuleInfo&gt;): void | Obtains the number of FA usage records specified by **maxNum**. If **maxNum** is not specified, the default value **1000** is used.|
 | function queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveEventState&gt;&gt;): void | Queries the number of notifications from all applications based on the specified start time and end time.|
 | function queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveEventState&gt;&gt;): void | Queries statistics about system events (hibernation, wakeup, unlocking, and screen locking) that occur between the specified start time and end time.|
 | function queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback&lt;number&gt;): void | Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses an asynchronous callback to return the result.|
@@ -45,7 +44,7 @@ import stats from '@ohos.bundleState';
         ...,
         "reqPermissions": [
             {
-            "name": "ohos.permission.BUNDLE_ACTIVE_INFO"
+                "name": "ohos.permission.BUNDLE_ACTIVE_INFO"
             }
         ]
     }
@@ -57,13 +56,13 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.queryBundleActiveStates(0, 20000000000000).then( res => {
+    stats.queryBundleActiveStates(0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
         for (let i = 0; i < res.length; i++) {
             console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
             console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
         }
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
     });
 
@@ -87,7 +86,7 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.queryBundleStateInfos(0, 20000000000000).then( res => {
+    stats.queryBundleStateInfos(0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
         let i = 1;
         for (let key in res){
@@ -95,7 +94,7 @@ import stats from '@ohos.bundleState';
             console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key]));
             i++;
         }
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
     });
 
@@ -121,13 +120,13 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.queryCurrentBundleActiveStates(0, 20000000000000).then( res => {
+    stats.queryCurrentBundleActiveStates(0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
         for (let i = 0; i < res.length; i++) {
             console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1));
             console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i]));
         }
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
     });
 
@@ -151,13 +150,13 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => {
+    stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
         for (let i = 0; i < res.length; i++) {
             console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
             console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
         }
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
     });
 
@@ -179,14 +178,14 @@ import stats from '@ohos.bundleState';
 
     ```js
     import stats from '@ohos.bundleState'
-    
+
     // Promise mode
-    stats.queryAppUsagePriorityGroup().then( res => {
+    stats.queryAppUsagePriorityGroup().then(res => {
         console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res));
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code);
     });
-    
+
     // Callback mode
     stats.queryAppUsagePriorityGroup((err, res) => {
         if (err) {
@@ -196,16 +195,16 @@ import stats from '@ohos.bundleState';
         }
     });
     ```
-    
+
 7. Check whether the application specified by **bundleName** is in the idle state. This requires no permission to be configured in the **config.json** file. A third-party application can only check the idle status of itself.
 
     ```js
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.isIdleState("com.ohos.camera").then( res => {
+    stats.isIdleState("com.ohos.camera").then(res => {
         console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res));
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code);
     });
 
@@ -225,18 +224,18 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.getRecentlyUsedModules(1000).then( res => {
+    stats.getRecentlyUsedModules(1000).then(res => {
         console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
         for (let i = 0; i < res.length; i++) {
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
         }
-    }).catch( err=> {
+    }).catch(err=> {
         console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
     });
 
     // Promise mode when maxNum is not specified
-    stats.getRecentlyUsedModules().then( res => {
+    stats.getRecentlyUsedModules().then(res => {
         console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
         for (let i = 0; i < res.length; i++) {
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
@@ -247,7 +246,7 @@ import stats from '@ohos.bundleState';
     });
 
     // Asynchronous callback mode
-    stats.getRecentlyUsedModules(1000,(err, res) => {
+    stats.getRecentlyUsedModules(1000, (err, res) => {
         if(err) {
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
         } else {
@@ -261,7 +260,7 @@ import stats from '@ohos.bundleState';
 
     // Asynchronous callback mode when maxNum is not specified
     stats.getRecentlyUsedModules((err, res) => {
-        if(err) {
+        if (err) {
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
         } else {
             console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
@@ -279,10 +278,10 @@ import stats from '@ohos.bundleState';
     import stats from '@ohos.bundleState'
 
     // Promise mode
-    stats.queryAppNotificationNumber(0, 20000000000000).then( res => {
+    stats.queryAppNotificationNumber(0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise success.');
         console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise result ' + JSON.stringify(res));
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise failed, because: ' + err.code);
     });
 
@@ -301,15 +300,15 @@ import stats from '@ohos.bundleState';
 
     ```js
     import stats from '@ohos.bundleState'
-    
+
     // Promise mode
-    stats.queryBundleActiveEventStates(0, 20000000000000).then( res => {
+    stats.queryBundleActiveEventStates(0, 20000000000000).then(res => {
         console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise success.');
         console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise result ' + JSON.stringify(res));
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise failed, because: ' + err.code);
     });
-    
+
     // Asynchronous callback mode
     stats.queryBundleActiveEventStates(0, 20000000000000, (err, res) => {
         if (err) {
@@ -325,14 +324,14 @@ import stats from '@ohos.bundleState';
 
      ```js
      import stats from '@ohos.bundleState'
-     
+
      // Promise mode without parameters
-     stats.queryAppUsagePriorityGroup().then( res => {
+     stats.queryAppUsagePriorityGroup().then(res => {
          console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res));
-     }).catch( err => {
+     }).catch(err => {
          console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code);
      });
-     
+
      // Asynchronous callback mode without parameters
      stats.queryAppUsagePriorityGroup((err, res) => {
          if (err) {
@@ -341,17 +340,17 @@ import stats from '@ohos.bundleState';
              console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback succeeded. result: ' + JSON.stringify(res));
          }
      });
-     
+
      // Promise mode with parameters
-     stats.queryAppUsagePriorityGroup(this.bundleName).then( res => {
+     stats.queryAppUsagePriorityGroup(this.bundleName).then(res => {
          console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res));
-     }).catch( err => {
+     }).catch(err => {
          console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code);
      });
-     
+
      // Asynchronous callback mode with parameters
      stats.queryAppUsagePriorityGroup(this.bundleName, (err, res) => {
-         if(err) {
+         if (err) {
              console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
          } else {
              console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res));
@@ -363,16 +362,16 @@ import stats from '@ohos.bundleState';
 
     ```javascript
     import stats from '@ohos.bundleState'
-    
+
     // Promise mode
-    stats.setBundleGroup(this.bundleName, this.newGroup).then( () => {
+    stats.setBundleGroup(this.bundleName, this.newGroup).then(() => {
         console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.');
     }).catch( err => {
         console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code);
     });
     // Asynchronous callback mode
     stats.setBundleGroup(this.bundleName, this.newGroup, (err) => {
-        if(err) {
+        if (err) {
             console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code);
         } else {
             console.log('BUNDLE_ACTIVE SetBundleGroup callback succeeded.');
@@ -384,9 +383,9 @@ import stats from '@ohos.bundleState';
 
     ```javascript
     import stats from '@ohos.bundleState'
-    
+
     // Promise mode
-    let onBundleGroupChanged = (err,res) =>{
+    let onBundleGroupChanged = (err,res) => {
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup);
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup);
@@ -394,13 +393,13 @@ import stats from '@ohos.bundleState';
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId);
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName);
     };
-    stats.registerGroupCallBack(onBundleGroupChanged).then( () => {
+    stats.registerGroupCallBack(onBundleGroupChanged).then(() => {
         console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.');
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise failed. because: ' + err.code);
     });
     // Asynchronous callback mode
-    let onBundleGroupChanged = (err,res) =>{
+    let onBundleGroupChanged = (err,res) => {
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's oldGroup is : ' + res.oldGroup);
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's newGroup is : ' + res.newGroup);
@@ -408,29 +407,29 @@ import stats from '@ohos.bundleState';
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's userId is : ' + res.userId);
         console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's bundleName is : ' + res.bundleName);
     };
-    stats.registerGroupCallBack(onBundleGroupChanged, (err)=>{
-        if(err) {
+    stats.registerGroupCallBack(onBundleGroupChanged, (err) => {
+        if (err) {
             console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback failed, because: ' + err.code);
         } else {
             console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.');
         }
     });
     ```
-    
+
 13. Deregister the callback for application group changes.
 
     ```javascript
     import stats from '@ohos.bundleState'
-    
+
     //promise
-    stats.unRegisterGroupCallBack().then( () => {
+    stats.unRegisterGroupCallBack().then(() => {
         console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise succeeded.');
-    }).catch( err => {
+    }).catch(err => {
         console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise failed. because: ' + err.code);
     });
     //callback
-    stats.unRegisterGroupCallBack((err)=>{
-        if(err) {
+    stats.unRegisterGroupCallBack((err) => {
+        if (err) {
             console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback failed, because: ' + err.code);
         } else {
             console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback success.');
diff --git a/en/application-dev/device/device-location-geocoding.md b/en/application-dev/device/device-location-geocoding.md
index 30f647d98a368168ba945e11f11bb59f65a5b455..f95df63eebe64eedb6063ae193f4b141bfd946c6 100644
--- a/en/application-dev/device/device-location-geocoding.md
+++ b/en/application-dev/device/device-location-geocoding.md
@@ -3,9 +3,9 @@
 
 ## When to Use
 
-Describing a location using coordinates is accurate, but neither intuitive nor user-friendly.
+Describing a location using coordinates is accurate, but neither intuitive nor user-friendly. With the geocoding and reverse geocoding capabilities, you will be able to convert geographic description into specific coordinates and vice versa.
 
-With the geocoding and reverse geocoding capabilities, you will be able to convert geographic description into specific coordinates and vice versa. The geocoding information describes a location using several attributes, including the country, administrative region, street, house number, and address, etc.
+The geographic description helps users understand a location easily by providing several key attributes, for example, country, administrative region, street, house number, and address.
 
 
 ## Available APIs
@@ -36,13 +36,29 @@ The following table describes APIs available for mutual conversion between coord
    import geolocation from '@ohos.geolocation';
    ```
 
-2. Obtain the conversion result.
+2. Query whether geocoder service is available.
+   - Call **isGeoServiceAvailable** to query whether the geocoder service is available. If the service is available, continue with step 3.
+      ```
+      geolocation.isGeoServiceAvailable((err, data) => {
+          if (err) {
+              console.log('isGeoServiceAvailable err: ' + JSON.stringify(err));
+          } else {
+              console.log('isGeoServiceAvailable data: ' + JSON.stringify(data));
+          }
+      });
+      ```
+
+3. Obtain the conversion result.
    - Call **getAddressesFromLocation** to convert coordinates into geographical location information.
      
       ```
       var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
-      geolocation.getAddressesFromLocation(reverseGeocodeRequest, (data) => {
-          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
+      geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
+          if (err) {
+              console.log('getAddressesFromLocation err: ' + JSON.stringify(err));
+          } else {
+              console.log('getAddressesFromLocation data: ' + JSON.stringify(data));
+          }
       });
       ```
 
@@ -51,8 +67,12 @@ The following table describes APIs available for mutual conversion between coord
      
       ```
       var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1};
-      geolocation.getAddressesFromLocationName(geocodeRequest, (data) => {
-          console.log('getAddressesFromLocationName: ' + JSON.stringify(data));
+      geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => {
+          if (err) {
+              console.log('getAddressesFromLocationName err: ' + JSON.stringify(err));
+          } else {
+              console.log('getAddressesFromLocationName data: ' + JSON.stringify(data));
+          }
       });
       ```
 
diff --git a/en/application-dev/device/device-location-info.md b/en/application-dev/device/device-location-info.md
index 84f189d7f247bd9516204c7dd0d76aafb6438dbb..a32decd05ac0ba0d6db06749c18dcd31d3a7645b 100644
--- a/en/application-dev/device/device-location-info.md
+++ b/en/application-dev/device/device-location-info.md
@@ -14,49 +14,49 @@ The following table describes APIs available for obtaining device location infor
 
   **Table 1** APIs for obtaining device location information
 
-| API | Description |
-| -------- | -------- |
-| on(type:&nbsp;'locationChange',&nbsp;request:&nbsp;LocationRequest,&nbsp;callback:&nbsp;Callback&lt;Location&gt;)&nbsp;:&nbsp;void | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;location&nbsp;changes&nbsp;with&nbsp;a&nbsp;location&nbsp;request&nbsp;initiated. |
-| off(type:&nbsp;'locationChange',&nbsp;callback?:&nbsp;Callback&lt;Location&gt;)&nbsp;:&nbsp;void | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;location&nbsp;changes&nbsp;with&nbsp;the&nbsp;corresponding&nbsp;location&nbsp;request&nbsp;deleted. |
-| on(type:&nbsp;'locationServiceState',&nbsp;callback:&nbsp;Callback&lt;boolean&gt;)&nbsp;:&nbsp;void | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;location&nbsp;service&nbsp;status&nbsp;change&nbsp;events. |
-| off(type:&nbsp;'locationServiceState',&nbsp;callback:&nbsp;Callback&lt;boolean&gt;)&nbsp;:&nbsp;void | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;location&nbsp;service&nbsp;status&nbsp;change&nbsp;events. |
-| on(type:&nbsp;'cachedGnssLocationsReporting',&nbsp;request:&nbsp;CachedGnssLoactionsRequest,&nbsp;callback:&nbsp;Callback&lt;Array&lt;Location&gt;&gt;)&nbsp;:&nbsp;void; | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;cached&nbsp;GNSS&nbsp;location&nbsp;reports. |
-| off(type:&nbsp;'cachedGnssLocationsReporting',&nbsp;callback?:&nbsp;Callback&lt;Array&lt;Location&gt;&gt;)&nbsp;:&nbsp;void; | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;cached&nbsp;GNSS&nbsp;location&nbsp;reports. |
-| on(type:&nbsp;'gnssStatusChange',&nbsp;callback:&nbsp;Callback&lt;SatelliteStatusInfo&gt;)&nbsp;:&nbsp;void; | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;satellite&nbsp;status&nbsp;change&nbsp;events. |
-| off(type:&nbsp;'gnssStatusChange',&nbsp;callback?:&nbsp;Callback&lt;SatelliteStatusInfo&gt;)&nbsp;:&nbsp;void; | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;satellite&nbsp;status&nbsp;change&nbsp;events. |
-| on(type:&nbsp;'nmeaMessageChange',&nbsp;callback:&nbsp;Callback&lt;string&gt;)&nbsp;:&nbsp;void; | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;GNSS&nbsp;NMEA&nbsp;message&nbsp;change&nbsp;events. |
-| off(type:&nbsp;'nmeaMessageChange',&nbsp;callback?:&nbsp;Callback&lt;string&gt;)&nbsp;:&nbsp;void; | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;GNSS&nbsp;NMEA&nbsp;message&nbsp;change&nbsp;events. |
-| on(type:&nbsp;'fenceStatusChange',&nbsp;request:&nbsp;GeofenceRequest,&nbsp;want:&nbsp;WantAgent)&nbsp;:&nbsp;void; | Registers&nbsp;a&nbsp;listener&nbsp;for&nbsp;status&nbsp;change&nbsp;events&nbsp;of&nbsp;the&nbsp;specified&nbsp;geofence. |
-| off(type:&nbsp;'fenceStatusChange',&nbsp;request:&nbsp;GeofenceRequest,&nbsp;want:&nbsp;WantAgent)&nbsp;:&nbsp;void; | Unregisters&nbsp;the&nbsp;listener&nbsp;for&nbsp;status&nbsp;change&nbsp;events&nbsp;of&nbsp;the&nbsp;specified&nbsp;geofence. |
-| getCurrentLocation(request:&nbsp;CurrentLocationRequest,&nbsp;callback:&nbsp;AsyncCallback&lt;Location&gt;)&nbsp;:&nbsp;void | Obtains&nbsp;the&nbsp;current&nbsp;location.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| getCurrentLocation(request?:&nbsp;CurrentLocationRequest)&nbsp;:&nbsp;Promise&lt;Location&gt; | Obtains&nbsp;the&nbsp;current&nbsp;location.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| getLastLocation(callback:&nbsp;AsyncCallback&lt;Location&gt;)&nbsp;:&nbsp;void | Obtains&nbsp;the&nbsp;previous&nbsp;location.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| getLastLocation()&nbsp;:&nbsp;Promise&lt;Location&gt; | Obtains&nbsp;the&nbsp;previous&nbsp;location.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| isLocationEnabled(callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void | Checks&nbsp;whether&nbsp;the&nbsp;location&nbsp;service&nbsp;is&nbsp;enabled.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| isLocationEnabled()&nbsp;:&nbsp;Promise&lt;boolean&gt; | Checks&nbsp;whether&nbsp;the&nbsp;location&nbsp;service&nbsp;is&nbsp;enabled.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| requestEnableLocation(callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void | Requests&nbsp;to&nbsp;enable&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| requestEnableLocation()&nbsp;:&nbsp;Promise&lt;boolean&gt; | Requests&nbsp;to&nbsp;enable&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| enableLocation(callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void | Enables&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| enableLocation()&nbsp;:&nbsp;Promise&lt;boolean&gt; | Enables&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| disableLocation(callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void | Disables&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| disableLocation()&nbsp;:&nbsp;Promise&lt;boolean&gt; | Disables&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| getCachedGnssLocationsSize(callback:&nbsp;AsyncCallback&lt;number&gt;)&nbsp;:&nbsp;void; | Obtains&nbsp;the&nbsp;number&nbsp;of&nbsp;cached&nbsp;GNSS&nbsp;locations.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| getCachedGnssLocationsSize()&nbsp;:&nbsp;Promise&lt;number&gt;; | Obtains&nbsp;the&nbsp;number&nbsp;of&nbsp;cached&nbsp;GNSS&nbsp;locations.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| flushCachedGnssLocations(callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void; | Obtains&nbsp;all&nbsp;cached&nbsp;GNSS&nbsp;locations&nbsp;and&nbsp;clears&nbsp;the&nbsp;GNSS&nbsp;cache&nbsp;queue.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| flushCachedGnssLocations()&nbsp;:&nbsp;Promise&lt;boolean&gt;; | Obtains&nbsp;all&nbsp;cached&nbsp;GNSS&nbsp;locations&nbsp;and&nbsp;clears&nbsp;the&nbsp;GNSS&nbsp;cache&nbsp;queue.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| sendCommand(command:&nbsp;LocationCommand,&nbsp;callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void; | Sends&nbsp;extended&nbsp;commands&nbsp;to&nbsp;the&nbsp;location&nbsp;subsystem.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| sendCommand(command:&nbsp;LocationCommand)&nbsp;:&nbsp;Promise&lt;boolean&gt;; | Sends&nbsp;extended&nbsp;commands&nbsp;to&nbsp;the&nbsp;location&nbsp;subsystem.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| isLocationPrivacyConfirmed(type&nbsp;:&nbsp;LocationPrivacyType,&nbsp;callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void; | Checks&nbsp;whether&nbsp;a&nbsp;user&nbsp;agrees&nbsp;with&nbsp;the&nbsp;privacy&nbsp;statement&nbsp;of&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| isLocationPrivacyConfirmed(type&nbsp;:&nbsp;LocationPrivacyType,)&nbsp;:&nbsp;Promise&lt;boolean&gt;; | Checks&nbsp;whether&nbsp;a&nbsp;user&nbsp;agrees&nbsp;with&nbsp;the&nbsp;privacy&nbsp;statement&nbsp;of&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| setLocationPrivacyConfirmStatus(type&nbsp;:&nbsp;LocationPrivacyType,&nbsp;isConfirmed&nbsp;:&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;boolean&gt;)&nbsp;:&nbsp;void; | Sets&nbsp;the&nbsp;user&nbsp;confirmation&nbsp;status&nbsp;for&nbsp;the&nbsp;privacy&nbsp;statement&nbsp;of&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;an&nbsp;asynchronous&nbsp;callback&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
-| setLocationPrivacyConfirmStatus(type&nbsp;:&nbsp;LocationPrivacyType,&nbsp;isConfirmed&nbsp;:&nbsp;boolean)&nbsp;:&nbsp;Promise&lt;boolean&gt;; | Sets&nbsp;the&nbsp;user&nbsp;confirmation&nbsp;status&nbsp;for&nbsp;the&nbsp;privacy&nbsp;statement&nbsp;of&nbsp;the&nbsp;location&nbsp;service.&nbsp;This&nbsp;function&nbsp;uses&nbsp;a&nbsp;promise&nbsp;to&nbsp;return&nbsp;the&nbsp;result. |
+| API                                                      | Description                                                    |
+| ------------------------------------------------------------ | ------------------------------------------------------------ |
+| on(type: 'locationChange', request: LocationRequest, callback: Callback&lt;Location&gt;) : void | Registers a listener for location changes with a location request initiated.                          |
+| off(type: 'locationChange', callback?: Callback&lt;Location&gt;) : void | Unregisters the listener for location changes with the corresponding location request deleted.                    |
+| on(type: 'locationServiceState', callback: Callback&lt;boolean&gt;) : void | Registers a listener for location service status change events.                                      |
+| off(type: 'locationServiceState', callback: Callback&lt;boolean&gt;) : void | Unregisters the listener for location service status change events.                                  |
+| on(type: 'cachedGnssLocationsReporting', request: CachedGnssLoactionsRequest, callback: Callback&lt;Array&lt;Location&gt;&gt;) : void; | Registers a listener for cached GNSS location reports.                                      |
+| off(type: 'cachedGnssLocationsReporting', callback?: Callback&lt;Array&lt;Location&gt;&gt;) : void; | Unregisters the listener for cached GNSS location reports.                                  |
+| on(type: 'gnssStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;) : void; | Registers a listener for satellite status change events.                                  |
+| off(type: 'gnssStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;) : void; | Unregisters the listener for satellite status change events.                              |
+| on(type: 'nmeaMessageChange', callback: Callback&lt;string&gt;) : void; | Registers a listener for GNSS NMEA message change events.                                     |
+| off(type: 'nmeaMessageChange', callback?: Callback&lt;string&gt;) : void; | Unregisters the listener for GNSS NMEA message change events.                                 |
+| on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; | Registers a listener for status change events of the specified geofence.                            |
+| off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; | Unregisters the listener for status change events of the specified geofence.                            |
+| getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;Location&gt;) : void | Obtains the current location. This API uses an asynchronous callback to return the result.                 |
+| getCurrentLocation(request?: CurrentLocationRequest) : Promise&lt;Location&gt; | Obtains the current location. This API uses a promise to return the result.                  |
+| getLastLocation(callback: AsyncCallback&lt;Location&gt;) : void | Obtains the previous location. This API uses an asynchronous callback to return the result.              |
+| getLastLocation() : Promise&lt;Location&gt;                  | Obtains the previous location. This API uses a promise to return the result.                |
+| isLocationEnabled(callback: AsyncCallback&lt;boolean&gt;) : void | Checks whether the location service is enabled. This API uses an asynchronous callback to return the result.    |
+| isLocationEnabled() : Promise&lt;boolean&gt;                 | Checks whether the location service is enabled. This API uses a promise to return the result.     |
+| requestEnableLocation(callback: AsyncCallback&lt;boolean&gt;) : void | Requests to enable the location service. This API uses an asynchronous callback to return the result.            |
+| requestEnableLocation() : Promise&lt;boolean&gt;             | Requests to enable the location service. This API uses a promise to return the result.             |
+| enableLocation(callback: AsyncCallback&lt;boolean&gt;) : void | Enables the location service. This API uses an asynchronous callback to return the result.                |
+| enableLocation() : Promise&lt;boolean&gt;                    | Enables the location service. This API uses a promise to return the result.                 |
+| disableLocation(callback: AsyncCallback&lt;boolean&gt;) : void | Disables the location service. This API uses an asynchronous callback to return the result.                |
+| disableLocation() : Promise&lt;boolean&gt;                   | Disables the location service. This API uses a promise to return the result.                 |
+| getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;) : void; | Obtains the number of cached GNSS locations. This API uses an asynchronous callback to return the result.      |
+| getCachedGnssLocationsSize() : Promise&lt;number&gt;;        | Obtains the number of cached GNSS locations. This API uses a promise to return the result.       |
+| flushCachedGnssLocations(callback: AsyncCallback&lt;boolean&gt;) : void; | Obtains all cached GNSS locations and clears the GNSS cache queue. This API uses an asynchronous callback to return the result.|
+| flushCachedGnssLocations() : Promise&lt;boolean&gt;;         | Obtains all cached GNSS locations and clears the GNSS cache queue. This API uses a promise to return the result.|
+| sendCommand(command: LocationCommand, callback: AsyncCallback&lt;boolean&gt;) : void; | Sends extended commands to the location subsystem. This API uses an asynchronous callback to return the result.|
+| sendCommand(command: LocationCommand) : Promise&lt;boolean&gt;; | Sends extended commands to the location subsystem. This API uses a promise to return the result. |
+| isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&lt;boolean&gt;) : void; | Checks whether a user agrees with the privacy statement of the location service. This API uses an asynchronous callback to return the result.|
+| isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise&lt;boolean&gt;; | Checks whether a user agrees with the privacy statement of the location service. This API uses a promise to return the result.|
+| setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolean, callback: AsyncCallback&lt;boolean&gt;) : void; | Sets the user confirmation status for the privacy statement of the location service. This API uses an asynchronous callback to return the result.|
+| setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolean) : Promise&lt;boolean&gt;; | Sets the user confirmation status for the privacy statement of the location service. This API uses a promise to return the result.|
 
 
 ## How to Develop
 
 To learn more about the APIs for obtaining device location information, see [Geolocation](../reference/apis/js-apis-geolocation.md).
 
-1. Before using basic location capabilities, check whether your application has been granted the permission to access the device location information. If not, your application needs to obtain the permission from the user. For details, see the following section.
+1. Before using basic location capabilities, check whether your application has been granted the permission to access the device location information. If not, your application needs to obtain the permission from the user as described below.
      The system provides the following location permissions:
    - ohos.permission.LOCATION
    
@@ -64,9 +64,9 @@ To learn more about the APIs for obtaining device location information, see [Geo
 
    The **ohos.permission.LOCATION** permission is a must if your application needs to access the device location information.
 
-   If your application needs to access the device location information when running on the background, it must be allowed to run on the background in the configuration file and also granted the **ohos.permission.LOCATION_IN_BACKGROUND** permission. In this way, the system continues to report device location information even when your application moves to the background.
+   If your application needs to access the device location information when running on the background, it must be configured to be able to run on the background and be granted the **ohos.permission.LOCATION_IN_BACKGROUND** permission. In this way, the system continues to report device location information after your application moves to the background.
 
-   To allow your application to access device location information, you can declare the required permissions in the **config.json** file of your application. The sample code is as follows:
+   To allow your application to access device location information, declare the required permissions in the **module.json** file of your application. The sample code is as follows:
 
    
    ```
@@ -83,8 +83,8 @@ To learn more about the APIs for obtaining device location information, see [Geo
        }
    }
    ```
-   
-   For details about the fields, see .
+
+   For details about the fields, see [Application Package Structure Configuration File](../quick-start/stage-structure.md).
 
 2. Import the **geolocation** module by which you can implement all APIs related to the basic location capabilities.
    
@@ -92,7 +92,7 @@ To learn more about the APIs for obtaining device location information, see [Geo
    import geolocation from '@ohos.geolocation';
    ```
 
-3. Instantiate the **LocationRequest** object. This object provides APIs to notify the system of the location service type and the interval of reporting location information.
+3. Instantiate the **LocationRequest** object. This object provides APIs to notify the system of the location service type and the interval of reporting location information.<br>
    **Method 1:**
 
    To better serve your needs for using APIs, the system has categorized APIs into different packages to match your common use cases of the location function. In this way, you can directly use the APIs specific to a certain use case, making application development much easier. The following table lists the use cases currently supported.
@@ -112,18 +112,18 @@ To learn more about the APIs for obtaining device location information, see [Geo
    
      **Table 2** Common use cases of the location function
    
-   | Use&nbsp;Case | Constant | Description |
-   | -------- | -------- | -------- |
-   | Navigation | NAVIGATION | Applicable&nbsp;when&nbsp;your&nbsp;application&nbsp;needs&nbsp;to&nbsp;obtain&nbsp;the&nbsp;real-time&nbsp;location&nbsp;of&nbsp;a&nbsp;mobile&nbsp;device&nbsp;outdoors,&nbsp;such&nbsp;as&nbsp;navigation&nbsp;for&nbsp;driving&nbsp;or&nbsp;walking.&nbsp;In&nbsp;this&nbsp;scenario,&nbsp;the&nbsp;GNSS&nbsp;positioning&nbsp;technology&nbsp;is&nbsp;mainly&nbsp;used&nbsp;to&nbsp;ensure&nbsp;the&nbsp;location&nbsp;accuracy.&nbsp;However,&nbsp;due&nbsp;to&nbsp;its&nbsp;limitations,&nbsp;the&nbsp;technology&nbsp;may&nbsp;be&nbsp;unable&nbsp;to&nbsp;provide&nbsp;the&nbsp;location&nbsp;service&nbsp;when&nbsp;navigation&nbsp;is&nbsp;just&nbsp;started&nbsp;or&nbsp;when&nbsp;the&nbsp;user&nbsp;moves&nbsp;into&nbsp;a&nbsp;shielded&nbsp;environment&nbsp;such&nbsp;as&nbsp;indoors&nbsp;or&nbsp;a&nbsp;garage.&nbsp;To&nbsp;resolve&nbsp;this&nbsp;issue,&nbsp;the&nbsp;system&nbsp;uses&nbsp;the&nbsp;network&nbsp;positioning&nbsp;technology&nbsp;as&nbsp;an&nbsp;alternative&nbsp;to&nbsp;provide&nbsp;the&nbsp;location&nbsp;service&nbsp;for&nbsp;your&nbsp;application&nbsp;until&nbsp;the&nbsp;GNSS&nbsp;can&nbsp;provide&nbsp;stable&nbsp;location&nbsp;results.&nbsp;This&nbsp;helps&nbsp;achieve&nbsp;a&nbsp;smooth&nbsp;navigation&nbsp;experience&nbsp;for&nbsp;users.<br/>By&nbsp;default,&nbsp;the&nbsp;system&nbsp;reports&nbsp;location&nbsp;results&nbsp;at&nbsp;a&nbsp;minimal&nbsp;interval&nbsp;of&nbsp;1s.&nbsp;To&nbsp;adopt&nbsp;this&nbsp;use&nbsp;case,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Trajectory&nbsp;tracking | TRAJECTORY_TRACKING | Applicable&nbsp;when&nbsp;your&nbsp;application&nbsp;needs&nbsp;to&nbsp;record&nbsp;user&nbsp;trajectories,&nbsp;for&nbsp;example,&nbsp;the&nbsp;track&nbsp;recording&nbsp;function&nbsp;of&nbsp;sports&nbsp;applications.&nbsp;In&nbsp;this&nbsp;scenario,&nbsp;the&nbsp;GNSS&nbsp;positioning&nbsp;technology&nbsp;is&nbsp;mainly&nbsp;used&nbsp;to&nbsp;ensure&nbsp;the&nbsp;location&nbsp;accuracy.<br/>By&nbsp;default,&nbsp;the&nbsp;system&nbsp;reports&nbsp;location&nbsp;results&nbsp;at&nbsp;a&nbsp;minimal&nbsp;interval&nbsp;of&nbsp;1s.&nbsp;To&nbsp;adopt&nbsp;this&nbsp;use&nbsp;case,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Ride&nbsp;hailing | CAR_HAILING | Applicable&nbsp;when&nbsp;your&nbsp;application&nbsp;needs&nbsp;to&nbsp;obtain&nbsp;the&nbsp;current&nbsp;location&nbsp;of&nbsp;a&nbsp;user&nbsp;who&nbsp;is&nbsp;hailing&nbsp;a&nbsp;taxi.<br/>By&nbsp;default,&nbsp;the&nbsp;system&nbsp;reports&nbsp;location&nbsp;results&nbsp;at&nbsp;a&nbsp;minimal&nbsp;interval&nbsp;of&nbsp;1s.&nbsp;To&nbsp;adopt&nbsp;this&nbsp;use&nbsp;case,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Life&nbsp;service | DAILY_LIFE_SERVICE | Applicable&nbsp;when&nbsp;your&nbsp;application&nbsp;only&nbsp;needs&nbsp;the&nbsp;approximate&nbsp;user&nbsp;location&nbsp;for&nbsp;recommendations&nbsp;and&nbsp;push&nbsp;notifications&nbsp;in&nbsp;scenarios&nbsp;such&nbsp;as&nbsp;when&nbsp;the&nbsp;user&nbsp;is&nbsp;browsing&nbsp;news,&nbsp;shopping&nbsp;online,&nbsp;and&nbsp;ordering&nbsp;food.<br/>By&nbsp;default,&nbsp;the&nbsp;system&nbsp;reports&nbsp;location&nbsp;results&nbsp;at&nbsp;a&nbsp;minimal&nbsp;interval&nbsp;of&nbsp;1s.&nbsp;To&nbsp;adopt&nbsp;this&nbsp;use&nbsp;case,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Power&nbsp;efficiency | NO_POWER | Applicable&nbsp;when&nbsp;your&nbsp;application&nbsp;does&nbsp;not&nbsp;proactively&nbsp;start&nbsp;the&nbsp;location&nbsp;service&nbsp;for&nbsp;a&nbsp;higher&nbsp;battery&nbsp;efficiency.&nbsp;When&nbsp;responding&nbsp;to&nbsp;another&nbsp;application&nbsp;requesting&nbsp;the&nbsp;same&nbsp;location&nbsp;service,&nbsp;the&nbsp;system&nbsp;marks&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;location&nbsp;result&nbsp;to&nbsp;your&nbsp;application.&nbsp;In&nbsp;this&nbsp;way,&nbsp;your&nbsp;application&nbsp;will&nbsp;not&nbsp;consume&nbsp;extra&nbsp;power&nbsp;for&nbsp;obtaining&nbsp;the&nbsp;user&nbsp;location.<br/>By&nbsp;default,&nbsp;the&nbsp;system&nbsp;reports&nbsp;location&nbsp;results&nbsp;at&nbsp;a&nbsp;minimal&nbsp;interval&nbsp;of&nbsp;1s.&nbsp;To&nbsp;adopt&nbsp;this&nbsp;use&nbsp;case,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-
-     The following example instantiates the **RequestParam** object for navigation:
+   | Use Case    | Constant           | Description                                                        |
+   | ------------ | ------------------- | ------------------------------------------------------------ |
+   | Navigation    | NAVIGATION          | Applicable when your application needs to obtain the real-time location of a mobile device outdoors, such as navigation for driving or walking. In this scenario, the GNSS positioning technology is mainly used to ensure the location accuracy. However, due to its limitations, the technology may be unable to provide the location service when navigation is just started or when the user moves into a shielded environment such as indoors or a garage. To resolve this issue, the system uses the network positioning technology as an alternative to provide the location service for your application until the GNSS can provide stable location results. This helps achieve a smooth navigation experience for users.<br>By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Trajectory tracking| TRAJECTORY_TRACKING | Applicable when your application needs to record user trajectories, for example, the track recording function of sports applications. In this scenario, the GNSS positioning technology is mainly used to ensure the location accuracy.<br>By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Ride hailing| CAR_HAILING         | Applicable when your application needs to obtain the current location of a user who is hailing a taxi.<br>By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Life service| DAILY_LIFE_SERVICE  | Applicable when your application only needs the approximate user location for recommendations and push notifications in scenarios such as when the user is browsing news, shopping online, and ordering food.<br>By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Power efficiency  | NO_POWER            | Applicable when your application does not proactively start the location service for a higher battery efficiency. When responding to another application requesting the same location service, the system marks a copy of the location result to your application. In this way, your application will not consume extra power for obtaining the user location.<br>By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+
+     Sample code for initializing **requestInfo** for navigation:
    
    ```
-   var requestInfo = {'scenario': 0x301, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
+   var requestInfo = {'scenario': geolocation.LocationRequestScenario.NAVIGATION, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
 
    **Method 2:**
@@ -143,20 +143,20 @@ To learn more about the APIs for obtaining device location information, see [Geo
    
      **Table 3** Location priority policies
    
-   | Policy | Constant | Description |
-   | -------- | -------- | -------- |
-   | Location&nbsp;accuracy&nbsp;priority | ACCURACY | This&nbsp;policy&nbsp;mainly&nbsp;uses&nbsp;the&nbsp;GNSS&nbsp;positioning&nbsp;technology.&nbsp;In&nbsp;an&nbsp;open&nbsp;area,&nbsp;the&nbsp;technology&nbsp;can&nbsp;achieve&nbsp;the&nbsp;meter-level&nbsp;location&nbsp;accuracy,&nbsp;depending&nbsp;on&nbsp;the&nbsp;hardware&nbsp;performance&nbsp;of&nbsp;the&nbsp;device.&nbsp;However,&nbsp;in&nbsp;a&nbsp;shielded&nbsp;environment,&nbsp;the&nbsp;location&nbsp;accuracy&nbsp;may&nbsp;significantly&nbsp;decrease.<br/>To&nbsp;use&nbsp;this&nbsp;policy,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Fast&nbsp;location&nbsp;priority | FAST_FIRST_FIX | This&nbsp;policy&nbsp;uses&nbsp;the&nbsp;GNSS&nbsp;positioning,&nbsp;base&nbsp;station&nbsp;positioning,&nbsp;WLAN&nbsp;positioning,&nbsp;and&nbsp;Bluetooth&nbsp;positioning&nbsp;technologies&nbsp;simultaneously&nbsp;to&nbsp;obtain&nbsp;the&nbsp;device&nbsp;location&nbsp;in&nbsp;both&nbsp;the&nbsp;indoor&nbsp;and&nbsp;outdoor&nbsp;scenarios.&nbsp;When&nbsp;all&nbsp;positioning&nbsp;technologies&nbsp;provide&nbsp;a&nbsp;location&nbsp;result,&nbsp;the&nbsp;system&nbsp;provides&nbsp;the&nbsp;most&nbsp;accurate&nbsp;location&nbsp;result&nbsp;for&nbsp;your&nbsp;application.&nbsp;This&nbsp;policy&nbsp;can&nbsp;lead&nbsp;to&nbsp;significant&nbsp;hardware&nbsp;resource&nbsp;consumption&nbsp;and&nbsp;power&nbsp;consumption.<br/>To&nbsp;use&nbsp;this&nbsp;policy,&nbsp;you&nbsp;must&nbsp;declare&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
-   | Power&nbsp;efficiency&nbsp;priority | LOW_POWER | This&nbsp;policy&nbsp;mainly&nbsp;uses&nbsp;the&nbsp;base&nbsp;station&nbsp;positioning,&nbsp;WLAN&nbsp;positioning,&nbsp;and&nbsp;Bluetooth&nbsp;positioning&nbsp;technologies&nbsp;to&nbsp;obtain&nbsp;device&nbsp;location&nbsp;in&nbsp;both&nbsp;indoor&nbsp;and&nbsp;outdoor&nbsp;scenarios.&nbsp;The&nbsp;location&nbsp;accuracy&nbsp;depends&nbsp;on&nbsp;the&nbsp;distribution&nbsp;of&nbsp;surrounding&nbsp;base&nbsp;stations,&nbsp;visible&nbsp;WLANs,&nbsp;and&nbsp;Bluetooth&nbsp;devices&nbsp;and&nbsp;therefore&nbsp;may&nbsp;fluctuate&nbsp;greatly.&nbsp;This&nbsp;policy&nbsp;is&nbsp;recommended&nbsp;and&nbsp;can&nbsp;reduce&nbsp;power&nbsp;consumption&nbsp;when&nbsp;your&nbsp;application&nbsp;does&nbsp;not&nbsp;require&nbsp;high&nbsp;location&nbsp;accuracy&nbsp;or&nbsp;when&nbsp;base&nbsp;stations,&nbsp;visible&nbsp;WLANs,&nbsp;and&nbsp;Bluetooth&nbsp;devices&nbsp;are&nbsp;densely&nbsp;distributed.<br/>To&nbsp;use&nbsp;this&nbsp;policy,&nbsp;you&nbsp;must&nbsp;declare&nbsp;at&nbsp;least&nbsp;the&nbsp;**ohos.permission.LOCATION**&nbsp;permission&nbsp;and&nbsp;obtain&nbsp;users'&nbsp;authorization. |
+   | Policy          | Constant      | Description                                                        |
+   | ------------------ | -------------- | ------------------------------------------------------------ |
+   | Location accuracy priority  | ACCURACY       | This policy mainly uses the GNSS positioning technology. In an open area, the technology can achieve the meter-level location accuracy, depending on the hardware performance of the device. However, in a shielded environment, the location accuracy may significantly decrease.<br>To use this policy, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Fast location priority  | FAST_FIRST_FIX | This policy uses the GNSS positioning, base station positioning, WLAN positioning, and Bluetooth positioning technologies simultaneously to obtain the device location in both the indoor and outdoor scenarios. When all positioning technologies provide a location result, the system provides the most accurate location result for your application. This policy can lead to significant hardware resource consumption and power consumption.<br>To use this policy, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.|
+   | Power efficiency priority| LOW_POWER      | This policy mainly uses the base station positioning, WLAN positioning, and Bluetooth positioning technologies to obtain device location in both indoor and outdoor scenarios. The location accuracy depends on the distribution of surrounding base stations, visible WLANs, and Bluetooth devices and therefore may fluctuate greatly. This policy is recommended and can reduce power consumption when your application does not require high location accuracy or when base stations, visible WLANs, and Bluetooth devices are densely distributed.<br>To use this policy, you must declare at least the **ohos.permission.LOCATION** permission and obtain users' authorization.|
 
-     The following example instantiates the **RequestParam** object for the location accuracy priority policy:
+     Sample code for initializing **requestInfo** for the location accuracy priority policy:
    
    ```
-   var requestInfo = {'priority': 0x201, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
+   var requestInfo = {'priority': geolocation.LocationRequestPriority.ACCURACY, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
 
 4. Instantiate the **Callback** object for the system to report location results.
-     Your application needs to implement the callback interface defined by the system. When the system successfully obtains the real-time location of a device, it will report the location result to your application through the callback interface. Your application can implement the callback interface in such a way to complete your own service logic.
+     Your application needs to implement the callback defined by the system. When the system successfully obtains the real-time location of a device, it will report the location result to your application through the callback interface. Your application can implement the callback interface in such a way to complete your own service logic.
      
    ```
    var locationChange = (location) => {
@@ -176,11 +176,15 @@ To learn more about the APIs for obtaining device location information, see [Geo
    geolocation.off('locationChange', locationChange);
    ```
 
-   If your application does not need the real-time device location, it can use the last known device location cached in the system instead.
-   
+If your application does not need the real-time device location, it can use the last known device location cached in the system instead.
+     
    ```
-   geolocation.getLastLocation((data) => {
-       console.log('getLastLocation: data: ' + JSON.stringify(data));
+   geolocation.getLastLocation((err, data) => {
+       if (err) {
+           console.log('getLastLocation: err: ' + JSON.stringify(err));
+       } else {
+           console.log('getLastLocation: data: ' + JSON.stringify(data));
+       }
    });
    ```
 
diff --git a/en/application-dev/dfx/hiappevent-guidelines.md b/en/application-dev/dfx/hiappevent-guidelines.md
index e1d4cddeb2ff96c8a07a6df84382ad0b8d22464c..54199719cd93a523d8f2b0af14c12578997a02a2 100644
--- a/en/application-dev/dfx/hiappevent-guidelines.md
+++ b/en/application-dev/dfx/hiappevent-guidelines.md
@@ -2,13 +2,13 @@
 
 ## When to Use
 
-The event logging function helps applications log various information generated during running.
+The event logging function helps applications to log various information generated during running.
 
 ## Available APIs
 
 JS application event logging APIs are provided by the **hiAppEvent** module.
 
-**APIs for Event Logging**
+**Table 1** APIs for event logging
 
 | API                                                          | Return Value   | Description                                                  |
 | ------------------------------------------------------------ | -------------- | ------------------------------------------------------------ |
@@ -17,7 +17,7 @@ JS application event logging APIs are provided by the **hiAppEvent** module.
 
 When an asynchronous callback is used, the return value can be processed directly in the callback. When a promise is used, the return value can also be processed in the promise in a similar way. For details about the result codes, see [Event Verification Result Codes](#event-verification-result-codes).
 
-**APIs for Event Logging Configuration**
+**Table 2** APIs for event logging configuration
 
 | API                            | Return Value | Description                                                  |
 | ------------------------------ | ------------ | ------------------------------------------------------------ |
diff --git a/en/application-dev/dfx/hiappevent-overview.md b/en/application-dev/dfx/hiappevent-overview.md
index 403aec02035c965da4633e8667be6803031ddf60..2a5e36f879a922f3d6bf845e700068c2a299b337 100644
--- a/en/application-dev/dfx/hiappevent-overview.md
+++ b/en/application-dev/dfx/hiappevent-overview.md
@@ -2,8 +2,10 @@
 
 HiAppEvent provides event logging APIs for applications to log the fault, statistical, security, and user behavior events reported during running. Based on event information, you will be able to analyze the running status of your application.
 
+The HiAppEvent module of OpenHarmony can be used to develop application event services and provide functions related to application events, including flushing application events to a disk and querying historical application event data.
+
 ## Basic Concepts
 
-The HiAppEvent module of OpenHarmony can be used to develop application event services and provide functions related to application events, including flushing application events to a disk and querying historical application event data.
+- **Logging**
 
-**Logging**: Logs changes caused by user operations to provide service data for development, product, and O&M analysis.
+  Logs changes caused by user operations to provide service data for development, product, and O&M analysis.
diff --git a/en/application-dev/dfx/hitracemeter-guidelines.md b/en/application-dev/dfx/hitracemeter-guidelines.md
index e7e97631c240bb42358d3b0b630a92094f34bcfc..316ee1b07898a24721b81625c2e9193ae08aa85f 100644
--- a/en/application-dev/dfx/hitracemeter-guidelines.md
+++ b/en/application-dev/dfx/hitracemeter-guidelines.md
@@ -6,9 +6,9 @@ HiTraceMeter provides APIs for system performance tracing. You can call the APIs
 
 ## Available APIs
  
-The performance tracing APIs are provided by the **hiTraceMeter** module. For details, see [API Reference]( ../reference/apis/js-apis-hitracemeter.md).
+The performance tracing APIs are provided by the **hiTraceMeter** module. For details, see [API Reference](../reference/apis/js-apis-hitracemeter.md).
 
-**APIs for performance tracing**
+**Table 1** APIs for performance tracing
 
 | API| Return Value| Description|
 | ---------------------------------------------------------------------------- | --------- | ------------ |
diff --git a/en/application-dev/dfx/hitracemeter-overview.md b/en/application-dev/dfx/hitracemeter-overview.md
index 3683092b34fcd23a65245303406934b3fb8acad5..649fa7704dd566ab8bc02776de6f62756d7f26a6 100644
--- a/en/application-dev/dfx/hitracemeter-overview.md
+++ b/en/application-dev/dfx/hitracemeter-overview.md
@@ -15,4 +15,4 @@ hiTraceMeter is a tool for you to trace service processes and monitor system per
 
 ## Constraints
 
-- Due to the asynchronous I/O feature of JS, the hiTraceMeter module provides only asynchronous APIs.
+Due to the asynchronous I/O feature of JS, the hiTraceMeter module provides only asynchronous APIs.
diff --git a/en/application-dev/internationalization/i18n-guidelines.md b/en/application-dev/internationalization/i18n-guidelines.md
index 66b002200fc1c1965f1d3e741739685ae97236e6..0e34d66d523abea51e259bbcea5d7be08e755e3e 100644
--- a/en/application-dev/internationalization/i18n-guidelines.md
+++ b/en/application-dev/internationalization/i18n-guidelines.md
@@ -23,57 +23,64 @@ You can use APIs provided in the following table to obtain the system language a
 
 ### How to Develop
 
-1. Obtain the system language.<br>
+1. Obtain the system language.
+
     Call the **getSystemLanguage** method to obtain the system language (**i18n** is the name of the imported module).
 
    
-   ```
+    ```js
    var language = i18n.getSystemLanguage();
    ```
 
-2. Obtain the system region.<br>
+2. Obtain the system region.
+
     Call the **getSystemRegion** method to obtain the system region.
      
-   ```
+    ```js
    var region = i18n.getSystemRegion();
    ```
 
-3. Obtain the system locale.<br>
+3. Obtain the system locale.
+
     Call the **getSystemLocale** method to obtain the system locale.
      
-   ```
+    ```js
    var locale = i18n.getSystemLocale();
    ```
 
-4. Check whether the locale's language is RTL.<br>
+4. Check whether the locale's language is RTL.
+
     Call the **isRTL** method to check whether the locale's language is RTL.
 
    
-   ```
+    ```js
    var rtl = i18n.isRTL("zh-CN");
    ```
 
-5. Check whether the system uses a 24-hour clock.<br>
+5. Check whether the system uses a 24-hour clock.
+
     Call the **is24HourClock** method to check whether the system uses a 24-hour clock.
      
-   ```
+    ```js
    var hourClock = i18n.is24HourClock();
    ```
 
-6. Obtain the localized display of a language.<br>
+6. Obtain the localized display of a language.
+
     Call the **getDisplayLanguage** method to obtain the localized display of a language. **language** indicates the language to be localized, **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized.
      
-   ```
+    ```js
    var language = "en";
    var locale = "zh-CN";
    var sentenceCase = false;
    var localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase);
    ```
 
-7. Obtain the localized display of a country.<br>
+7. Obtain the localized display of a country.
+
     Call the **getDisplayCountry** method to obtain the localized display of a country name. **country** indicates the country code (a two-letter code in compliance with ISO-3166, for example, CN), **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized.
      
-   ```
+    ```js
    var country = "US";
    var locale = "zh-CN";
    var sentenceCase = false;
@@ -106,70 +113,78 @@ You can use APIs provided in the following table to obtain the system language a
 
 ### How to Develop
 
-1. Instantiate a **Calendar** object.<br>
+1. Instantiate a **Calendar** object.
+
     Call the **getCalendar** method to obtain the time zone object of a specific locale and type (**i18n** is the name of the imported module). **type** indicates the valid calendar type, for example, **buddhist**, **chinese**, **coptic**, **ethiopic**, **hebrew**, **gregory**, **indian**, **islamic_civil**, **islamic_tbla**, **islamic_umalqura**, **japanese**, and **persian**. If **type** is left unspecified, the default calendar type of the locale is used.
 
    
-   ```
+    ```js
    var calendar = i18n.getCalendar("zh-CN", "gregory);
    ```
 
-2. Set the time for the **Calendar** object.<br>
+2. Set the time for the **Calendar** object.
+
     Call the **setTime** method to set the time of the **Calendar** object. This method receives two types of parameters. One is a **Date** object, and the other is a value indicating the number of milliseconds elapsed since January 1, 1970, 00:00:00 GMT.
      
-   ```
+    ```js
    var date1 = new Date();
    calendar.setTime(date1);
    var date2 = 1000;
    calendar.setTime(date2);
    ```
 
-3. Set the year, month, day, hour, minute, and second for the **Calendar** object.<br>
+3. Set the year, month, day, hour, minute, and second for the **Calendar** object.
+
     Call the **set** method to set the year, month, day, hour, minute, and second for the **Calendar** object.
      
-   ```
+    ```js
    calendar.set(2021, 12, 21, 6, 0, 0)
    ```
 
-4. Set and obtain the time zone for the **Calendar** object.<br>
+4. Set and obtain the time zone for the **Calendar** object.
+
     Call the **setTimeZone** and **getTimeZone** methods to set and obtain the time zone for the **Calendar** object. The **setTimeZone** method requires an input string to indicate the time zone to be set.
 
    
-   ```
+    ```js
    calendar.setTimeZone("Asia/Shanghai");
    var timezone = calendar.getTimeZone();
    ```
 
-5. Set and obtain the first day of a week for the **Calendar** object.<br>
+5. Set and obtain the first day of a week for the **Calendar** object.
+
     Call the **setFirstDayOfWeek** and **getFirstDayOfWeek** methods to set and obtain the first day of a week for the **Calendar** object. **setFirstDayOfWeek** must be set to a value indicating the first day of a week. The value **1** indicates Sunday, and the value **7** indicates Saturday.
 
    
-   ```
+    ```js
    calendar.setFirstDayOfWeek(1);
    var firstDayOfWeek = calendar.getFirstDayOfWeek();
    ```
 
-6. Set and obtain the minimum count of days in the first week for the **Calendar** object.<br>
+6. Set and obtain the minimum count of days in the first week for the **Calendar** object.
+
     Call the **setMinimalDaysInFirstWeek** and **getMinimalDaysInFirstWeek** methods to set and obtain the minimum count of days in the first week for the **Calendar** object.
      
-   ```
+    ```js
    calendar.setMinimalDaysInFirstWeek(3);
    var minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek();
    ```
 
-7. Obtain the localized display of the **Calendar** object.<br>
+7. Obtain the localized display of the **Calendar** object.
+
     Call the **getDisplayName** method to obtain the localized display of the **Calendar** object.
 
    
-   ```
+    ```js
    var localizedName = calendar.getDisplayName("zh-CN");
    ```
 
-8. Check whether a date is a weekend.<br>
+8. Check whether a date is a weekend.
+
     Call the **isWeekend** method to determine whether the input date is a weekend.
 
    
-   ```
+    ```js
    var date = new Date();
    var weekend = calendar.isWeekend(date);
    ```
@@ -191,25 +206,26 @@ You can use APIs provided in the following table to obtain the system language a
 
 ### How to Develop
 
-1. Instantiate a **PhoneNumberFormat** object.<br>
+1. Instantiate a **PhoneNumberFormat** object.
+
     Call the **PhoneNumberFormat** constructor to instantiate a **PhoneNumberFormat** object. The country code and formatting options of the phone number need to be passed into this constructor. The formatting options are optional, including a style option. Values of this option include: **E164**, **INTERNATIONAL**, **NATIONAL**, and **RFC3966**.
 
    
-   ```
+    ```js
    var phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"});
    ```
 
 2. Check whether the phone number format is correct.
     Call the **isValidNumber** method to check whether the format of the input phone number is correct.
      
-   ```
+    ```js
    var validNumber = phoneNumberFormat.isValidNumber("15812341234");
    ```
 
 3. Format a phone number.
     Call the **format** method of **PhoneNumberFormat** to format the input phone number.
      
-   ```
+    ```js
    var formattedNumber = phoneNumberFormat.format("15812341234");
    ```
 
@@ -232,7 +248,7 @@ The **unitConvert** API is provided to help you implement measurement conversion
    Call the [unitConvert](../reference/apis/js-apis-intl.md) method to convert a measurement unit and format the display result.
 
    
-   ```
+    ```js
    var fromUnit = {unit: "cup", measureSystem: "US"};
    var toUnit = {unit: "liter", measureSystem: "SI"};
    var number = 1000;
@@ -259,32 +275,36 @@ The **unitConvert** API is provided to help you implement measurement conversion
 
 ### How to Develop
 
-1. Instantiate an **IndexUtil** object.<br>
+1. Instantiate an **IndexUtil** object.
+
     Call the **getInstance** method to instantiate an **IndexUtil** object for a specific locale. When the **locale** parameter is empty, instantiate an **IndexUtil** object of the default locale.
 
    
-   ```
+    ```js
    var indexUtil = getInstance("zh-CN");
    ```
 
-2. Obtain the index list.<br>
+2. Obtain the index list.
+
     Call the **getIndexList** method to obtain the alphabet index list of the current locale.
      
-   ```
+    ```js
    var indexList = indexUtil.getIndexList();
    ```
 
-3. Add an index.<br>
+3. Add an index.
+
     Call the **addLocale** method to add the alphabet index of a new locale to the current index list.
      
-   ```
+    ```js
    indexUtil.addLocale("ar")
    ```
 
-4. Obtain the index of a string.<br>
+4. Obtain the index of a string.
+
     Call the **getIndex** method to obtain the alphabet index of a string.
      
-   ```
+    ```js
    var text = "access index";
    indexUtil.getIndex(text);
    ```
@@ -313,38 +333,42 @@ When a text is displayed in more than one line, [BreakIterator](../reference/api
 
 ### How to Develop
 
-1. Instantiate a **BreakIterator** object.<br>
+1. Instantiate a **BreakIterator** object.
+
     Call the **getLineInstance** method to instantiate a **BreakIterator** object.
 
    
-   ```
+    ```js
    var locale = "en-US"
    var breakIterator = i18n.getLineInstance(locale);
    ```
 
-2. Set and access the text that requires line breaking.<br>
+2. Set and access the text that requires line breaking.
+
     Call the **setLineBreakText** and **getLineBreakText** methods to set and access the text that requires line breaking.
 
    
-   ```
+    ```js
    var text = "Apple is my favorite fruit";
    breakIterator.setLineBreakText(text);
    var breakText = breakIterator.getLineBreakText();
    ```
 
-3. Obtain the current position of the **BreakIterator** object.<br>
+3. Obtain the current position of the **BreakIterator** object.
+
     Call the **current** method to obtain the current position of the **BreakIterator** object in the text being processed.
 
    
-   ```
+    ```js
    var pos = breakIterator.current();
    ```
 
-4. Set the position of a **BreakIterator** object.<br>
+4. Set the position of a **BreakIterator** object.
+
     The following APIs are provided to adjust the **first**, **last**, **next**, **previous**, or **following** position of the **BreakIterator** object in the text to be processed.
 
    
-   ```
+    ```js
    var firstPos = breakIterator.first(); // Set a BreakIterator object to the first break point, that is, the start position of the text.
    var lastPos = breakIterator.last(); // Set a BreakIterator object to the last break point, that is, the position after the text end.
    // Move a BreakIterator object forward or backward by a certain number of break points.
@@ -356,10 +380,11 @@ When a text is displayed in more than one line, [BreakIterator](../reference/api
    var followingPos = breakIterator.following(10); 
    ```
 
-5. Determine whether a position is a break point.<br>
+5. Determine whether a position is a break point.
+
     Call the **isBoundary** method to determine whether a position is a break point. If yes, **true** is returned and the **BreakIterator** object is moved to this position. If no, **false** is returned and the **BreakIterator** object is moved to a break point after this position.
 
    
-   ```
+    ```js
    var isboundary = breakIterator.isBoundary(5);
    ```
diff --git a/en/application-dev/internationalization/intl-guidelines.md b/en/application-dev/internationalization/intl-guidelines.md
index 09bc3b733346db921cd04b76aff04b41d60af0b9..44748056f7886d4817cda2d9d0504f6966c32700 100644
--- a/en/application-dev/internationalization/intl-guidelines.md
+++ b/en/application-dev/internationalization/intl-guidelines.md
@@ -3,7 +3,8 @@
 This module provides basic I18N capabilities, such as time and date formatting, number formatting, and string sorting, through the standard I18N interfaces defined in ECMA 402.
 The [I18N](i18n-guidelines.md) module provides enhanced I18N capabilities through supplementary interfaces that are not defined in ECMA 402. It works with the Intl module to provide a complete suite of I18N capabilities.
 
-> **NOTE**<br>
+> **NOTE**
+> 
 > In the code snippets in this document, **intl** refers to the name of the imported module.
 
 ## Setting Locale Information
@@ -24,7 +25,8 @@ Use [Locale](../reference/apis/js-apis-intl.md) APIs to maximize or minimize loc
 
 ### How to Develop
 
-1. Instantiate a **Locale** object.<br>
+1. Instantiate a **Locale** object.
+
    Create a **Locale** object by using the **Locale** constructor. This method receives a string representing the locale and an optional [Attributes](../reference/apis/js-apis-intl.md) list. 
 
    A **Locale** object consists of four parts: language, script, region, and extension, which are separated by using a hyphen (-).
@@ -42,30 +44,33 @@ Use [Locale](../reference/apis/js-apis-intl.md) APIs to maximize or minimize loc
       | kf | Whether upper case or lower case is considered when sorting or comparing strings.|
 
    
-   ```
+   ```js
    var locale = "zh-CN";
    var options = {caseFirst: false, calendar: "chinese", collation: pinyin};
    var localeObj = new intl.Locale(locale, options);
    ```
 
-2. Obtain the string representing a **Locale** object.<br>
+2. Obtain the string representing a **Locale** object.
+
    Call the **toString** method to obtain the string representing a **Locale** object, which includes the language, region, and other options.
    
-   ```
+   ```js
    var localeStr = localeObj.toString();
    ```
 
-3. Maximize locale information.<br>
+3. Maximize locale information.
+
    Call the **maximize** method to maximize locale information; that is, supplement the missing script and region information.
    
-   ```
+   ```js
    var maximizedLocale = localeObj.maximize();
    ```
 
-4. Minimize locale information.<br>
+4. Minimize locale information.
+
    Call the **minimize** method to minimize locale information; that is, delete the unnecessary script and region information.
    
-   ```
+   ```js
    var minimizedLocale = localeObj.minimize();
    ```
 
@@ -88,42 +93,46 @@ Use [DateTimeFormat](../reference/apis/js-apis-intl.md) APIs to format the date
 
 ### How to Develop
 
-1. Instantiate a **DateTimeFormat** object.<br>
+1. Instantiate a **DateTimeFormat** object.
+
    Use the default constructor of **DateTimeFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **DateTimeFormat** object.
 
    
-   ```
+   ```js
    var dateTimeFormat = new intl.DateTimeFormat();
    ```
 
    Alternatively, use your own locale and formatting parameters to create a **DateTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [DateTimeOptions](../reference/apis/js-apis-intl.md).
    
-   ```
+   ```js
    var options = {dateStyle: "full", timeStyle: "full"};
    var dateTimeFormat = new intl.DateTimeFormat("zh-CN", options);
    ```
 
-2. Format the date and time.<br>
+2. Format the date and time.
+
    Call the **format** method to format the date and time in the **DateTimeFormat** object. This method returns a string representing the formatting result.
    
-   ```
+   ```js
    Date date = new Date();
    var formatResult = dateTimeFormat.format(date);
    ```
 
-3. Format a period.<br>
+3. Format a period.
+
    Call the **formatRange** method to format the period in the **DateTimeFormat** object. This method requires input of two **Date** objects, which respectively indicate the start date and end date of a period. This method returns a string representing the formatting result.
    
-   ```
+   ```js
    Date startDate = new Date();
    Date endDate = new Date();
    var formatResult = dateTimeFormat.formatRange(startDate, endDate);
    ```
 
-4. Obtain attributes of the **DateTimeFormat** object.<br>
+4. Obtain attributes of the **DateTimeFormat** object.
+
    Call the **resolvedOptions** method to obtain attributes of the **DateTimeFormat** object. This method will return an array that contains all attributes and values of the object.
    
-   ```
+   ```js
    var options = dateTimeFormat.resolvedOptions();
    ```
 
@@ -145,33 +154,36 @@ Use [NumberFormat](../reference/apis/js-apis-intl.md) APIs to format numbers for
 
 ### How to Develop
 
-1. Instantiate a **NumberFormat** object.<br>
+1. Instantiate a **NumberFormat** object.
+
    Use the default constructor of **NumberFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **NumberFormat** object.
 
    
-   ```
+   ```js
    var numberFormat = new intl.NumberFormat();
    ```
 
    Alternatively, use your own locale and formatting parameters to create a **NumberFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [NumberOptions](../reference/apis/js-apis-intl.md).
    
-   ```
+   ```js
    var options = {compactDisplay: "short", notation: "compact"};
    var numberFormat = new intl.NumberFormat("zh-CN", options);
    ```
 
-2. Format a number.<br>
+2. Format a number.
+
    Call the **format** method to format a number. A string is returned as the formatting result.
    
-   ```
+   ```js
    var number = 1234.5678
    var formatResult = numberFormat.format(number);
    ```
 
-3. Obtain attributes of the **NumberFormat** object.<br>
+3. Obtain attributes of the **NumberFormat** object.
+
    Call the **resolvedOptions** method to obtain attributes of the **NumberFormat** object. This method will return an array that contains all attributes and values of the object.
    
-   ```
+   ```js
    var options = numberFormat.resolvedOptions();
    ```
 
@@ -193,33 +205,36 @@ Use [Collator](../reference/apis/js-apis-intl.md) APIs to sort strings based on
 
 ### How to Develop
 
-1. Instantiate a **Collator** object.<br>
+1. Instantiate a **Collator** object.
+
    Use the default constructor of **Collator** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **Collator** object.
 
    
-   ```
+   ```js
    var collator = new intl.Collator();
    ```
 
    Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md).
    
+   ```js
+   var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"});
    ```
-   var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"};
-   ```
 
-2. Compare two strings.<br>
+2. Compare two strings.
+
    Call the **compare** method to compare two input strings. This method returns a value as the comparison result. The return value **-1** indicates that the first string is shorter than the second string, the return value **1** indicates that the first string is longer than the second string, and the return value **0** indicates that the two strings are of equal lengths.
    
-   ```
+   ```js
    var str1 = "first string";
    var str2 = "second string";
    var compareResult = collator.compare(str1, str2);
    ```
 
-3. Obtain attributes of the **Collator** object.<br>
+3. Obtain attributes of the **Collator** object.
+
    Call the **resolvedOptions** method to obtain attributes of the **Collator** object. This method will return an array that contains all attributes and values of the object.
    
-   ```
+   ```js
    var options = collator.resolvedOptions();
    ```
 
@@ -240,24 +255,26 @@ Use [PluralRules](../reference/apis/js-apis-intl.md) APIs to determine the singu
 
 ### How to Develop
 
-1. Instantiate a **PluralRules** object.<br>
+1. Instantiate a **PluralRules** object.
+
    Use the default constructor of **PluralRules** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **PluralRules** object.
 
    
-   ```
+   ```js
    var pluralRules = new intl.PluralRules();
    ```
 
    Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md).
    
-   ```
-   var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"};
+   ```js
+   var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"});
    ```
 
-2. Determine the singular-plural type.<br>
+2. Determine the singular-plural type.
+
    Call the **select** method to determine the singular-plural type of an input number. This method will return a string representing the singular-plural type, which can be any of the following: **zero**, **one**, **two**, **few**, **many**, and **other**.
    
-   ```
+   ```js
    var number = 1234.5678
    var categoryResult = plurals.select(number);
    ```
@@ -281,41 +298,45 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md) APIs to format the r
 
 ### How to Develop
 
-1. Instantiate a **RelativeTimeFormat** object.<br>
+1. Instantiate a **RelativeTimeFormat** object.
+
    Use the default constructor of **RelativeTimeFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **RelativeTimeFormat** object.
 
    
-   ```
+   ```js
    var relativeTimeFormat = new intl.RelativeTimeFormat();
    ```
 
    Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md).
    
+   ```js
+   var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"});
    ```
-   var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"};
-   ```
 
-2. Format the relative time.<br>
+2. Format the relative time.
+
    Call the **format** method to format the relative time. This method receives a numeric value representing the time length and a string-form unit, like **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, and **second**. This method returns a string representing the formatting result.
    
-   ```
+   ```js
    var number = 2;
    var unit = "year"
    var formatResult = relativeTimeFormat.format(number, unit);
    ```
 
-3. Obtain each part of the relative time format.<br>
+3. Obtain each part of the relative time format.
+
    Upon obtaining each part of the relative time format, customize the relative time formatting result.
    
-   ```
+   ```js
    var number = 2;
    var unit = "year"
    var formatResult = relativeTimeFormat.formatToParts(number, unit);
    ```
 
-4. Obtain attributes of the **RelativeTimeFormat** object.<br>
+4. Obtain attributes of the **RelativeTimeFormat** object.
+
    Call the **resolvedOptions** method to obtain attributes of the **RelativeTimeFormat** object. This method will return an array that contains all attributes and values of the object. For a full list of attributes, see [ RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md).
    
-   ```
+   ```js
    var options = numberFormat.resolvedOptions();
    ```
diff --git a/en/application-dev/media/Readme-EN.md b/en/application-dev/media/Readme-EN.md
index b9f7b63d5b451da5213a8c282d52865d48c4e3eb..677e70f6e3b7eee215530cd15e7ab1b42676866c 100755
--- a/en/application-dev/media/Readme-EN.md
+++ b/en/application-dev/media/Readme-EN.md
@@ -1,7 +1,6 @@
 # Media
 
 -   Audio
-
     -   [Audio Overview](audio-overview.md)
     -   [Audio Playback Development](audio-playback.md) 
     -   [Audio Recording Development](audio-recorder.md) 
@@ -15,9 +14,9 @@
     - [Video Playback Development](video-playback.md)
     - [Video Recording Development](video-recorder.md)
     
-- Image
+-   Image
   - [Image Development](image.md)
   
-- Camera
+-   Camera
    - [Camera Development](camera.md)
 
diff --git a/en/application-dev/media/audio-interruptmode.md b/en/application-dev/media/audio-interruptmode.md
index 9f9355f68c326ec9b6ae8140a6579114bfaefcc3..8be8a00cedd10ff4ecd08ee46d746d9803b3c71a 100644
--- a/en/application-dev/media/audio-interruptmode.md
+++ b/en/application-dev/media/audio-interruptmode.md
@@ -48,7 +48,7 @@ For details about the APIs, see [AudioRenderer in Audio Management](../reference
 
    ```js
     var mode_ = audio.InterruptMode.SHARE_MODE;
-    await this.audioRenderer.setInterruptMode(mode_).then(()=>{
+    await this.audioRenderer.setInterruptMode(mode_).then(() => {
       console.log('[JSAR] [SetInterruptMode] Setting: '+ (mode_ == 0? " share mode":"independent mode") + "success");
     });
    ```
diff --git a/en/application-dev/media/audio-playback.md b/en/application-dev/media/audio-playback.md
index 2b0f260908c9e2986269601e588659ce6ce119fc..d65d0abfc4d4649f7f1847abdbe6fb0a832e194e 100644
--- a/en/application-dev/media/audio-playback.md
+++ b/en/application-dev/media/audio-playback.md
@@ -39,38 +39,38 @@ function printfDescription(obj) {
 
 // Set the player callbacks.
 function setCallBack(audioPlayer) {
-    audioPlayer.on('dataLoad', () => {              // Set the 'dataLoad' event callback, which is triggered when the src attribute is set successfully.
+    audioPlayer.on('dataLoad', () => { // Set the `dataLoad` event callback, which is triggered when the src attribute is set successfully.
         console.info('audio set source success');
-        audioPlayer.play();                         // The play() API can be invoked only after the 'dataLoad' event callback is complete. The 'play' event callback is then triggered.
+        audioPlayer.play(); // The play() API can be invoked only after the 'dataLoad' event callback is complete. The 'play' event callback is then triggered.
     });
-    audioPlayer.on('play', () => {                  // Set the 'play' event callback.
+    audioPlayer.on('play', () => { // Set the `play` event callback.
         console.info('audio play success');
-        audioPlayer.pause();                        // Trigger the 'pause' event callback and pause the playback.
+        audioPlayer.pause(); // Trigger the 'pause' event callback and pause the playback.
     });
-    audioPlayer.on('pause', () => {                 // Set the 'pause' event callback.
+    audioPlayer.on('pause', () => { // Set the `pause` event callback.
         console.info('audio pause success');
-        audioPlayer.seek(5000);                     // Trigger the 'timeUpdate' event callback, and seek to 5000 ms for playback.
+        audioPlayer.seek(5000); // Trigger the 'timeUpdate' event callback, and seek to 5000 ms for playback.
     });
-    audioPlayer.on('stop', () => {                  // Set the 'stop' event callback.
+    audioPlayer.on('stop', () => { // Set the `stop` event callback.
         console.info('audio stop success');
-        audioPlayer.reset();                        // Trigger the 'reset' event callback, and reconfigure the src attribute to switch to the next song.
+        audioPlayer.reset(); // Trigger the 'reset' event callback, and reconfigure the src attribute to switch to the next song.
     });
-    audioPlayer.on('reset', () => {                 // Set the 'reset' event callback.
+    audioPlayer.on('reset', () => { // Set the `reset` event callback.
         console.info('audio reset success');
-        audioPlayer.release();                      // Release the AudioPlayer instance.
+        audioPlayer.release(); // Release the AudioPlayer instance.
         audioPlayer = undefined;
     });
-    audioPlayer.on('timeUpdate', (seekDoneTime) => {// Set the 'timeUpdate' event callback.
+    audioPlayer.on('timeUpdate', (seekDoneTime) => { // Set the `timeUpdate` event callback.
         if (typeof(seekDoneTime) == 'undefined') {
             console.info('audio seek fail');
             return;
         }
         console.info('audio seek success, and seek time is ' + seekDoneTime);
-        audioPlayer.setVolume(0.5);                 // Trigger the 'volumeChange' event callback.
+        audioPlayer.setVolume(0.5); // Trigger the 'volumeChange' event callback.
     });
-    audioPlayer.on('volumeChange', () => {          // Set the 'volumeChange' event callback.
+    audioPlayer.on('volumeChange', () => { // Set the `volumeChange` event callback.
         console.info('audio volumeChange success');
-        audioPlayer.getTrackDescription((error, arrlist) => {  // Obtain the audio track information in callback mode.
+        audioPlayer.getTrackDescription((error, arrlist) => { // Obtain the audio track information in callback mode.
             if (typeof (arrlist) != 'undefined') {
                 for (let i = 0; i < arrlist.length; i++) {
                     printfDescription(arrlist[i]);
@@ -78,13 +78,13 @@ function setCallBack(audioPlayer) {
             } else {
                 console.log(`audio getTrackDescription fail, error:${error.message}`);
             }
-            audioPlayer.stop();                      // Trigger the 'stop' event callback to stop the playback.
+            audioPlayer.stop(); // Trigger the 'stop' event callback to stop the playback.
         });
     });
-    audioPlayer.on('finish', () => {                 // Set the 'finish' event callback, which is triggered when the playback is complete.
+    audioPlayer.on('finish', () => { // Set the 'finish' event callback, which is triggered when the playback is complete.
         console.info('audio play finish');
     });
-    audioPlayer.on('error', (error) => {             // Set the 'error' event callback.
+    audioPlayer.on('error', (error) => { // Set the 'error' event callback.
         console.info(`audio error called, errName is ${error.name}`);
         console.info(`audio error called, errCode is ${error.code}`);
         console.info(`audio error called, errMessage is ${error.message}`);
@@ -94,7 +94,7 @@ function setCallBack(audioPlayer) {
 async function audioPlayerDemo() {
     // 1. Create an AudioPlayer instance.
     let audioPlayer = media.createAudioPlayer();
-    setCallBack(audioPlayer);                          // Set the event callbacks.
+    setCallBack(audioPlayer); // Set the event callbacks.
     // 2. Set the URI of the audio file.
     let fdPath = 'fd://'
     // The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" command.
@@ -107,7 +107,7 @@ async function audioPlayerDemo() {
     }).catch((err) => {
         console.info('open fd failed err is' + err);
     });
-    audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
+    audioPlayer.src = fdPath; // Set the src attribute and trigger the `dataLoad` event callback.
 }
 ```
 
@@ -119,23 +119,23 @@ import fileIO from '@ohos.fileio'
 export class AudioDemo {
   // Set the player callbacks.
   setCallBack(audioPlayer) {
-    audioPlayer.on('dataLoad', () => {              // Set the 'dataLoad' event callback, which is triggered when the src attribute is set successfully.
+    audioPlayer.on('dataLoad', () => { // Set the `dataLoad` event callback, which is triggered when the src attribute is set successfully.
       console.info('audio set source success');
-      audioPlayer.play();                           // Call the play() API to start the playback and trigger the 'play' event callback.
+      audioPlayer.play(); // Call the play() API to start the playback and trigger the 'play' event callback.
     });
-    audioPlayer.on('play', () => {                  // Set the 'play' event callback.
+    audioPlayer.on('play', () => { // Set the `play` event callback.
       console.info('audio play success');
     });
-    audioPlayer.on('finish', () => {                // Set the 'finish' event callback, which is triggered when the playback is complete.
+    audioPlayer.on('finish', () => { // Set the 'finish' event callback, which is triggered when the playback is complete.
       console.info('audio play finish');
-      audioPlayer.release();                        // Release the AudioPlayer instance.
+      audioPlayer.release(); // Release the AudioPlayer instance.
       audioPlayer = undefined;
     });
   }
 
   async audioPlayerDemo() {
-    let audioPlayer = media.createAudioPlayer();     // Create an AudioPlayer instance.
-    this.setCallBack(audioPlayer);                   // Set the event callbacks.
+    let audioPlayer = media.createAudioPlayer(); // Create an AudioPlayer instance.
+    this.setCallBack(audioPlayer); // Set the event callbacks.
     let fdPath = 'fd://'
     // The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" command.
     let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
@@ -147,7 +147,7 @@ export class AudioDemo {
     }).catch((err) => {
       console.info('open fd failed err is' + err);
     });
-    audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
+    audioPlayer.src = fdPath; // Set the src attribute and trigger the `dataLoad` event callback.
   }
 }
 ```
@@ -161,20 +161,20 @@ export class AudioDemo {
 // Set the player callbacks.
   private isNextMusic = false;
   setCallBack(audioPlayer) {
-    audioPlayer.on('dataLoad', () => {              // Set the 'dataLoad' event callback, which is triggered when the src attribute is set successfully.
+    audioPlayer.on('dataLoad', () => { // Set the `dataLoad` event callback, which is triggered when the src attribute is set successfully.
       console.info('audio set source success');
-      audioPlayer.play();                           // Call the play() API to start the playback and trigger the 'play' event callback.
+      audioPlayer.play(); // Call the play() API to start the playback and trigger the 'play' event callback.
     });
-    audioPlayer.on('play', () => {                  // Set the 'play' event callback.
+    audioPlayer.on('play', () => { // Set the `play` event callback.
       console.info('audio play success');
-      audioPlayer.reset();                          // Call the reset() API and trigger the 'reset' event callback.
+      audioPlayer.reset(); // Call the reset() API and trigger the 'reset' event callback.
     });
-    audioPlayer.on('reset', () => {                 // Set the 'reset' event callback.
+    audioPlayer.on('reset', () => { // Set the `reset` event callback.
       console.info('audio play success');
-      if (!this.isNextMusic) {                      // When isNextMusic is false, changing songs is implemented.
-        this.nextMusic(audioPlayer);                // Changing songs is implemented.
+      if (!this.isNextMusic) { // When isNextMusic is false, changing songs is implemented.
+        this.nextMusic(audioPlayer); // Changing songs is implemented.
       } else {
-        audioPlayer.release();                      // Release the AudioPlayer instance.
+        audioPlayer.release(); // Release the AudioPlayer instance.
         audioPlayer = undefined;
       }
     });
@@ -197,8 +197,8 @@ export class AudioDemo {
   }
 
   async audioPlayerDemo() {
-    let audioPlayer = media.createAudioPlayer();       // Create an AudioPlayer instance.
-    this.setCallBack(audioPlayer);                     // Set the event callbacks.
+    let audioPlayer = media.createAudioPlayer(); // Create an AudioPlayer instance.
+    this.setCallBack(audioPlayer); // Set the event callbacks.
     let fdPath = 'fd://'
     // The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" command.
     let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
@@ -223,19 +223,19 @@ import fileIO from '@ohos.fileio'
 export class AudioDemo {
   // Set the player callbacks.
   setCallBack(audioPlayer) {
-    audioPlayer.on('dataLoad', () => {              // Set the 'dataLoad' event callback, which is triggered when the src attribute is set successfully.
+    audioPlayer.on('dataLoad', () => { // Set the `dataLoad` event callback, which is triggered when the src attribute is set successfully.
       console.info('audio set source success');
-      audioPlayer.loop = true;                      // Set the loop playback attribute.
-      audioPlayer.play();                           // Call the play() API to start the playback and trigger the 'play' event callback.
+      audioPlayer.loop = true; // Set the loop playback attribute.
+      audioPlayer.play(); // Call the play() API to start the playback and trigger the 'play' event callback.
     });
-    audioPlayer.on('play', () => {                  // Set the 'play' event callback to start loop playback.
+    audioPlayer.on('play', () => { // Set the 'play' event callback to start loop playback.
       console.info('audio play success');
     });
   }
 
   async audioPlayerDemo() {
-    let audioPlayer = media.createAudioPlayer();      // Create an AudioPlayer instance.
-    this.setCallBack(audioPlayer);                    // Set the event callbacks.
+    let audioPlayer = media.createAudioPlayer(); // Create an AudioPlayer instance.
+    this.setCallBack(audioPlayer); // Set the event callbacks.
     let fdPath = 'fd://'
     // The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" command.
     let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
@@ -247,7 +247,7 @@ export class AudioDemo {
     }).catch((err) => {
       console.info('open fd failed err is' + err);
     });
-    audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
+    audioPlayer.src = fdPath; // Set the src attribute and trigger the `dataLoad` event callback.
   }
 }
 ```
diff --git a/en/application-dev/napi/napi-guidelines.md b/en/application-dev/napi/napi-guidelines.md
index f2b6fe0e20564626d7a37d03832fae69f7f7866a..e58eed34cccb7dd820e1144a616dfb93a10f4d34 100644
--- a/en/application-dev/napi/napi-guidelines.md
+++ b/en/application-dev/napi/napi-guidelines.md
@@ -1,10 +1,10 @@
 # Using Native APIs in Application Projects
 
-OpenHarmony applications use JavaScript (JS) when calling native APIs. The native APIs (NAPIs) provided by the **arkui_napi** repository are used to implement the interaction with JS. Currently, the **arkui_napi** repository supports some third-party **Node.js** interfaces. The names of the NAPIs are the same as those in the third-party **Node.js**. For details about the interfaces supported, see `libnapi.ndk.json` in this repository.
+OpenHarmony applications use JavaScript (JS) when calling native APIs. The native APIs (NAPIs) provided by the [ace_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository are used to implement interaction with JS. Currently, the **ace_napi** repository supports some third-party **Node.js** interfaces. The names of the NAPIs are the same as those in the third-party **Node.js**. For details about the interfaces supported, see `libnapi.ndk.json` in this repository.
 
 ## How to Develop
 
-The IDE has a default project that uses NAPIs. You can choose `File` > `New` > `Create Project` to create a `Native C++` project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **arkui_napi** repository for development.
+The IDE has a default project that uses NAPIs. You can choose `File` > `New` > `Create Project` to create a `Native C++` project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **ace_napi** repository for development.
 
 You can `import` the native .so that contains the JS processing logic. For example, `import hello from 'libhello.so'` to use the **libhello.so** capability. Then, the JS object created using the NAPI can be passed to the `hello` object of the application to call the native capability.
 
@@ -74,7 +74,7 @@ export default storage;
 
 ### Implementation
 
-You can obtain the complete code from `sample/native_module_storage/` in the **arkui_napi** repository.
+You can obtain the complete code from `sample/native_module_storage/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository.
 
 #### Registering the Module
 
@@ -212,7 +212,7 @@ static napi_value JSStorageGet(napi_env env, napi_callback_info info)
 
     napi_create_async_work(
         env, nullptr, resource,
-        // Callback 1: This callback contains the service logic to be asynchronously executed and is asynchronously executed by the NAPI. Do not operate JS objects using theNAPI because the execution is asynchronous.
+        // Callback 1: This callback contains the service logic to be asynchronously executed and is asynchronously executed by the NAPI. Do not operate JS objects using the NAPI because the execution is asynchronous.
         [](napi_env env, void* data) {
             StorageAsyncContext* asyncContext = (StorageAsyncContext*)data;
             auto itr = gKeyValueStorage.find(asyncContext->key);
@@ -307,7 +307,7 @@ export class NetServer {
 
 ### Implementation
 
-You can obtain the complete code from `sample/native_module_netserver/` in the **arkui_napi** repository.
+You can obtain the complete code from `sample/native_module_netserver/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository.
 
 #### Registering the Module
 
@@ -494,7 +494,7 @@ This example describes how to invoke a JS callback in a non-JS thread. For examp
 
 ### Implementation
 
-You can obtain the complete code from `sample/native_module_callback/` in the **arkui_napi** repository.
+You can obtain the complete code from `sample/native_module_callback/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository.
 
 #### Registering the Module
 
@@ -562,7 +562,7 @@ void callbackTest(CallbackContext* context)
     uv_queue_work(
         loop,
         work,
-        // This callback is executed in another common thread to process tasks asynchronously. After the callback is complete, execute the next callback. In this scenario, the callback does not need to execute any task.
+        // This callback is executed in another common thread to process tasks asynchronously. After the callback is complete, execute the next callback. In this scenario, this callback does not need to execute any task.
         [](uv_work_t* work) {},
         // This callback is executed in the JS thread bound to env.
         [](uv_work_t* work, int status) {
diff --git a/en/application-dev/quick-start/Readme-EN.md b/en/application-dev/quick-start/Readme-EN.md
index f44905cb2c2d33a8efb52f80d01e199e674e2c5b..77038cc101186059e9377c85d8e5b880784c2b9e 100644
--- a/en/application-dev/quick-start/Readme-EN.md
+++ b/en/application-dev/quick-start/Readme-EN.md
@@ -9,6 +9,5 @@
 - Development Fundamentals
   - [Application Package Structure Configuration File (FA Model)](package-structure.md)
   - [Application Package Structure Configuration File (Stage Model)](stage-structure.md)
-  - [Resource File Categories](basic-resource-file-categories.md)
   - [SysCap](syscap.md)
   - [HarmonyAppProvision Configuration File](app-provision-structure.md)
diff --git a/en/application-dev/quick-start/basic-resource-file-categories.md b/en/application-dev/quick-start/basic-resource-file-categories.md
deleted file mode 100644
index e37a24074d5396103b9204f3c6ab20a745de2616..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/basic-resource-file-categories.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# Resource File Categories
-
-
-## resources Directory
-
-All the application resource files, such as strings, images, and audio files, are stored in the **resources** directory, allowing you to easily access, use, and maintain them. The **resources** directory consists of two types of sub-directories: the **base** sub-directory and qualifiers sub-directories, and the **rawfile** sub-directory. For details, see Categories of the **resources** directory.
-
-Example of the **resources** directory:
-
-```
-resources
-|---base  // Default sub-directory
-|   |---element
-|   |   |---string.json
-|   |---media
-|   |   |---icon.png
-|---en_GB-vertical-car-mdpi // Example of a qualifiers sub-directory, which needs to be created on your own
-|   |---element
-|   |   |---string.json
-|   |---media
-|   |   |---icon.png
-|---rawfile  // Default sub-directory
-```
-
-**Table 1** Categories of the **resources** directory
-
-| Category    | base and Qualifiers Sub-directories      | rawfile Sub-directory                    |
-| ----------- | ---------------------------------------- | ---------------------------------------- |
-| Structure   | Sub-directories are structured in two levels. The directory name must comply with specified naming conventions so that its target resource file in the correct directory can be matched based on the device status.<br/>  The **base** sub-directory and qualifiers sub-directories are the first level of sub-directories under **resources**.<br/>- The **base** sub-directory is generated by default. If no qualifiers sub-directories in the **resources** directory of the application match the device status, the resource file in the **base** sub-directory will be automatically referenced.<br/>- You need to create qualifiers sub-directories on your own. Each directory name consists of one or more qualifiers that represent the application scenarios or device characteristics. For details, see [Qualifiers Sub-directories](#qualifiers-sub-directories).<br/>Resource group sub-directories are located at the second level of sub-directories to store basic elements such as strings, colors, and boolean values, as well as resource files such as media, animations, and layouts. For details, see [Resource Group Sub-directories](#resource-group-sub-directories). | You can create multiple levels of sub-directories with custom directory names. They can be used to store various resource files.<br/>However, resource files in the **rawfile** sub-directory will not be matched based on the device status. |
-| Compilation | Resource files in the sub-directories are compiled into binary files, and each resource file is assigned an ID. | Resource files in the sub-directory are directly packed into the application without being compiled, and no IDs will be assigned to the resource files. |
-| Reference   | Resource files in the sub-directories are referenced based on the resource type and resource name. | Resource files in the sub-directories are referenced based on the specified file path and file name. |
-
-
-## Qualifiers Sub-directories
-
-The name of a qualifiers sub-directory consists of one or more qualifiers that represent the application scenarios or device characteristics, covering the mobile country code (MCC), mobile network code (MNC), language, script, country or region, screen orientation, device type, color mode, and screen density. The qualifiers are separated using underscores (_) or hyphens (-). When creating a qualifiers sub-directory, you need to understand the directory naming conventions and the rules for matching qualifiers sub-directories and the device status.
-
-**Naming Conventions for Qualifiers Sub-directories**
-
-- Qualifiers are ordered in the following sequence: _MCC_MNC-language_script_country/region-screen orientation-device type-color mode-screen density_. You can select one or multiple qualifiers to name your sub-directory based on your application scenarios and device characteristics.
-
-- Separation between qualifiers: The language, script, and country/region qualifiers are separated using underscores (\_); the MNC and MCC qualifiers are also separated using underscores (\_); other qualifiers are separated using hyphens (-). For example, **zh_Hant_CN** and **zh_CN-car-ldpi**.
-
-- Value range of qualifiers: The value of each qualifier must meet the requirements. Otherwise, the resource files in the sub-directory cannot be matched.
-
-  **Table 2** Requirements for qualifier values
-
-  | Qualifier Type     | Description and Value Range              |
-  | ------------------ | ---------------------------------------- |
-  | MCC&amp;MNC        | Indicates the MCC and MNC, which are obtained from the network where the device is registered. The MCC can be either followed by the MNC with an underscore (_) in between or be used independently. For example, **mcc460** represents China, and **mcc460_mnc00** represents China Mobile.<br/>For details about the value range, refer to **ITU-T E.212** (the international identification plan for public networks and subscriptions). |
-  | Language           | Indicates the language used by the device. The value consists of two or three lowercase letters, for example, **zh** indicates Chinese, **en** indicates English, and **mai** indicates Maithili.<br/>For details about the value range, refer to **ISO 639** (codes for the representation of names of languages). |
-  | Script             | Indicates the script type used by the device. The value starts with one uppercase letter followed by three lowercase letters, for example, **Hans** indicates simplified Chinese and **Hant** indicates traditional Chinese.<br/>For details about the value range, refer to **ISO 15924** (codes for the representation of names of scripts). |
-  | Country/Region     | Indicates the country or region where a user is located. The value consists of two or three uppercase letters or three digits, for example, **CN** indicates China and **GB** indicates the United Kingdom.<br/>For details about the value range, refer to **ISO 3166-1** (codes for the representation of names of countries and their subdivisions). |
-  | Screen orientation | Indicates the screen orientation of the device. The value can be:<br/>- **vertical**: portrait orientation<br/>- **horizontal**: landscape orientation |
-  | Device type        | Indicates the device type. The value can be:<br/>- **car**: head units<br/>- **tv**: smart TVs<br/>- **wearable**: wearables |
-  | Color mode         | Indicates the color mode of the device. The value can be:<br/>- **dark**: dark mode<br/>- **light**: light mode |
-  | Screen density     | Indicates the screen density of the device, in dpi. The value can be:<br/>- **sdpi**: screen density with small-scale dots per inch (SDPI). This value is applicable for devices with a DPI range of (0, 120].<br/>- **mdpi**: screen density with medium-scale dots per inch (MDPI). This value is applicable for devices with a DPI range of (120, 160].<br/>- **ldpi**: screen density with large-scale dots per inch (LDPI). This value is applicable for devices with a DPI range of (160, 240].<br/>- **xldpi**: screen density with extra-large-scale dots per inch (XLDPI). This value is applicable for devices with a DPI range of (240, 320].<br/>- **xxldpi**: screen density with extra-extra-large-scale dots per inch (XXLDPI). This value is applicable for devices with a DPI range of (320, 480].<br/>- **xxxldpi**: screen density with extra-extra-extra-large-scale dots per inch (XXXLDPI). This value is applicable for devices with a DPI range of (480, 640]. |
-
-**Rules for Matching Qualifiers Sub-directories and Device Resources**
-
-- Qualifiers are matched with the device resources in the following priorities: MCC&amp;MNC &gt; locale (options: language, language_script, language_country/region, and language_script_country/region) &gt; screen orientation &gt; device type &gt; color mode &gt; screen density
-
-- If the qualifiers sub-directories contain the **MCC, MNC, language, script, screen orientation, device type, and color mode** qualifiers, their values must be consistent with the current device status so that the sub-directories can be used for matching the device resources. For example, the qualifiers sub-directory **zh_CN-car-ldpi** cannot be used for matching the resource files labeled **en_US**.
-
-
-## Resource Group Sub-directories
-
-You can create resource group sub-directories (including element, media, animation, layout, graphic, and profile) in the **base** and qualifiers sub-directories to store resource files of specific types. For details, see Resource group sub-directories.
-
-**Table 3** Resource group sub-directories
-
-| Resource Group Sub-directory | Description                              | Resource File                            |
-| ---------------------------- | ---------------------------------------- | ---------------------------------------- |
-| element                      | Indicates element resources. Each type of data is represented by a JSON file. The options are as follows:<br/>- **boolean**: boolean data<br/>- **color**: color data<br/>- **float**: floating-point data<br/>- **intarray**: array of integer<br/>- **integer**: integer data<br/>- **pattern**: pattern data<br/>- **plural**: plural form data<br/>- **strarray**: array of strings<br/>- **string**: string data | It is recommended that files in the **element** sub-directory be named the same as the following files, each of which can contain only data of the same type:<br/>- boolean.json<br/>- color.json<br/>- float.json<br/>- intarray.json<br/>- integer.json<br/>- pattern.json<br/>- plural.json<br/>- strarray.json<br/>- string.json |
-| media                        | Indicates media resources, including non-text files such as images, audios, and videos. | The file name can be customized, for example, **icon.png**. |
-| animation                    | Indicates animation resources, in XML format. | The file name can be customized, for example, **zoom_in.xml**. |
-| layout                       | Indicates layout resources, in XML format. | The file name can be customized, for example, **home_layout.xml**. |
-| graphic                      | Indicates graphic resources, in XML format. | The file name can be customized, for example, **notifications_dark.xml**. |
-| profile                      | Indicates other types of files, which are stored in their raw formats. | The file name can be customized.         |
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655128646.png b/en/application-dev/quick-start/figures/en-us_image_0000001655128646.png
new file mode 100644
index 0000000000000000000000000000000000000000..048b8e07817272b759781df104c1dd4526685d61
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655128646.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655128939.png b/en/application-dev/quick-start/figures/en-us_image_0000001655128939.png
new file mode 100644
index 0000000000000000000000000000000000000000..606ce3a0eab0a39f166029182bcc2f70291740d6
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655128939.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655128998.png b/en/application-dev/quick-start/figures/en-us_image_0000001655128998.png
new file mode 100644
index 0000000000000000000000000000000000000000..d044d5d829ab1ad805f4ffcda19837f867b976fc
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655128998.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129041.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129041.png
new file mode 100644
index 0000000000000000000000000000000000000000..2dd664a2b25751cc32bd81927b30036d5cc4f351
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129041.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129232.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129232.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d3222667d7bffe89a148dc3b08861a86c43713e
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129232.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129264.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129264.png
new file mode 100644
index 0000000000000000000000000000000000000000..c188c864c051f68984ecc0c4c64be83f0dd6e1e9
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129264.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129333.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129333.png
new file mode 100644
index 0000000000000000000000000000000000000000..b42f2e3896d334d86e89b867cf3428782f88d600
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129333.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129372.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129372.png
new file mode 100644
index 0000000000000000000000000000000000000000..8541c80810d3f3dfb7180fede34a51221dc56106
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129372.png differ
diff --git a/en/application-dev/quick-start/figures/en-us_image_0000001655129398.png b/en/application-dev/quick-start/figures/en-us_image_0000001655129398.png
new file mode 100644
index 0000000000000000000000000000000000000000..2dda1a5cfca8d75d70e40b8bc0d555faade04583
Binary files /dev/null and b/en/application-dev/quick-start/figures/en-us_image_0000001655129398.png differ
diff --git a/en/application-dev/quick-start/full-sdk-switch-guide.md b/en/application-dev/quick-start/full-sdk-switch-guide.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c20e429bdef97ab0503614d01f1807e56eedb13
--- /dev/null
+++ b/en/application-dev/quick-start/full-sdk-switch-guide.md
@@ -0,0 +1,98 @@
+# Guide to Switching to Full SDK
+
+Both the public SDK and full SDK are toolkits for application development. 
+
+The public SDK is intended for application developers and provided as standard in DevEco Studio. It does not contain system APIs – APIs required by system applications.
+
+The full SDK is intended for original equipment manufacturers (OEMs) and provided separately. It contains system APIs.
+
+The SDK of API version 8 provided in DevEco Studio is a public SDK. If your project depends on any system API, such as the **animator** component, **xcomponent** component, or APIs in **@ohos.application.abilityManager.d.ts**, **@ohos.application.formInfo.d.ts**, or **@ohos.bluetooth.d.ts**, switch to the full SDK by performing the following steps.
+
+## Downloading the Full SDK (of 3.1.1 Release in this example)
+
+Manually download the full SDK. For details, see the source code acquisition section in [OpenHarmony 3.1.1 Release](https://gitee.com/openharmony/docs/blob/master/en/release-notes/OpenHarmony-v3.1.1-release.md).
+
+![image-20220613161049897](figures/en-us_image_0000001655128646.png)
+
+
+
+
+## Checking the Local SDK Location<br>In this example, an eTS project is used. For a JS project, replace **ets** with **js**.
+
+In DevEco Studio, choose **Tools** > **OpenHarmony SDK Manager** to check the location of the local SDK.
+
+![](figures/en-us_image_0000001655128939.png)
+
+![image-20220613160524053](figures/en-us_image_0000001655128998.png)
+
+
+## Replacing the SDK
+
+1. Make sure the downloaded SDK is a full SDK.
+
+   a. Verify that the name of the downloaded file contains **sdk-full**.
+
+   ![image-20220613220702504](figures/en-us_image_0000001655129232.png)
+
+   b. Verify that the SDK contains system APIs (such as APIs defined in **@ohos.application.abilityManager.d.ts**, **@ohos.application.formInfo.d.ts**, and **@ohos.bluetooth.d.ts**).
+
+   Note: The criteria for identifying system APIs are subject to the released API documentation.
+
+   
+
+2. Replace the SDK. The following uses full SDK 3.1.6.6 for Windows as an example.
+
+    
+
+   a. Decompress the downloaded full SDK file: `ets-windows-3.1.6.5-Release.zip`
+
+   ![image-20220613165018184](figures/en-us_image_0000001655129264.png)
+
+   b. Replace the SDK files.
+
+   Back up the local SDK files. (Copy and rename the version number directory in the **ets** directory, or copy the entire **ets** directory to another local path.)
+
+   Go to the obtained location of the local installed SDK and back up the files therein.
+
+   ![image-20220613161352157](figures/en-us_image_0000001655129041.png)
+
+   Note: The name of the backup version number directory must be different from the value of **version** field in the **oh-uni-package.json** file. In the example below, the name of the backup version number directory is **3.1.6.6_backup**.
+
+   ![image-20220613165018184](figures/en-us_image_0000001655129398.png)
+
+   The configuration in the **oh-uni-package.json** file is as follows:
+
+   ```
+   {
+     "apiVersion": "8",
+     "displayName": "Ets",
+     "meta": {
+       "metaVersion": "3.0.0"
+     },
+     "path": "ets",
+     "releaseType": "Release",
+     "version": "3.1.6.6"
+   }
+   ```
+
+   **Delete all files in the original SDK (3.1.6.6) directory.** Failure to do so may result in some files being unable to be overwritten.
+
+   
+
+   Copy the full SDK to the location of the local SDK.
+
+   Copy all files in the **ets** directory in the full SDK to the **ets\3.1.6.6** directory in the location of the local SDK.
+
+   Change the value of **version** in the **oh-uni-package.json** file to the current SDK version number.
+
+   
+
+   In the **3.1.6.6\build-tools\ets-loader** directory, open the **cmd/powerShell** window and run the **npm install** command to download the **node_modules** dependency package.
+
+   ![image-20220613171111405](figures/en-us_image_0000001655129333.png)
+
+   
+
+   c. Check for system APIs.
+
+   ![image-20220613213038104](figures/en-us_image_0000001655129372.png)
diff --git a/en/application-dev/reference/Readme-EN.md b/en/application-dev/reference/Readme-EN.md
index 30bb3aacd85d9e11012fb66dc276a88476139126..f2ee2ee4ab190bcd3487aaca974a153c0aed914e 100644
--- a/en/application-dev/reference/Readme-EN.md
+++ b/en/application-dev/reference/Readme-EN.md
@@ -1,9 +1,9 @@
 # Development References
 
--   [JavaScript-based Web-like Development Paradigm](arkui-js/Readme-EN.md)
--   [TypeScript-based Declarative Development Paradigm](arkui-ts/Readme-EN.md)
+-   [Component Reference(TypeScript-based Declarative Development Paradigm)](arkui-ts/Readme-EN.md)
+-   [Component Reference(JavaScript-based Web-like Development Paradigm)](arkui-js/Readme-EN.md)
 -   [APIs](apis/Readme-EN.md)
-    
+
     -   [JS (eTS Included) APIs](apis/Readme-EN.md)
     -   Native APIs
         -   [Standard Library](native-lib/third_party_libc/musl.md)
diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md
index 4646544abd6e22a632a35faeba6184819d601097..6b5bbc8aa3d671c4cf0b01316db441d33c0f189f 100644
--- a/en/application-dev/reference/apis/Readme-EN.md
+++ b/en/application-dev/reference/apis/Readme-EN.md
@@ -1,53 +1,61 @@
 # APIs
 
+- [API Reference Document Description](development-intro.md)
+
 - Ability Framework
 
-  - [@ohos.ability.dataUriUtils](js-apis-DataUriUtils.md)
-  - [@ohos.ability.errorCode](js-apis-ability-errorCode.md)
-  - [@ohos.ability.wantConstant](js-apis-ability-wantConstant.md)
-  - [@ohos.application.Ability](js-apis-application-ability.md)
-  - [@ohos.application.AbilityConstant](js-apis-application-abilityConstant.md)
-  - [@ohos.application.abilityDelegatorRegistry](js-apis-abilityDelegatorRegistry.md)
-  - [@ohos.application.AbilityStage ](js-apis-application-abilitystage.md)
-  - [@ohos.application.abilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md)
-  - [@ohos.application.appManager](js-apis-appmanager.md)
-  - [@ohos.application.Configuration](js-apis-configuration.md)
-  - [@ohos.application.ConfigurationConstant](js-apis-configurationconstant.md)
-  - [@ohos.ability.featureAbility](js-apis-featureAbility.md)
-  - [@ohos.application.formBindingData](js-apis-formbindingdata.md)
-  - [@ohos.application.FormExtension](js-apis-formextension.md)
-  - [@ohos.application.formError](js-apis-formerror.md)
-  - [@ohos.application.formHost](js-apis-formhost.md)
-  - [@ohos.application.formInfo](js-apis-formInfo.md)
-  - [@ohos.application.missionManager](js-apis-missionManager.md)
-  - [@ohos.application.formProvider](js-apis-formprovider.md)
-  - [@ohos.ability.particleAbility](js-apis-particleAbility.md)
-  - [@ohos.application.ServiceExtensionAbility](js-apis-service-extension-ability.md)
-  - [@ohos.application.StartOptions](js-apis-application-StartOptions.md)
-  - [@ohos.application.StaticSubscriberExtensionAbility](js-apis-application-staticSubscriberExtensionAbility.md)
-  - [@ohos.application.uriPermissionManager](js-apis-uripermissionmanager.md)
-  - [@ohos.application.Want](js-apis-application-Want.md)
-  - [@ohos.wantAgent](js-apis-wantAgent.md)
-  - ability/[dataAbilityHelper](js-apis-dataAbilityHelper.md)
-  - app/[context](js-apis-Context.md)
-  - application/[AbilityContext](js-apis-ability-context.md)
-  - application/[ApplicationContext](js-apis-application-applicationContext.md)
-  - application/[abilityDelegator](js-apis-application-abilityDelegator.md)
-  - application/[abilityDelegatorArgs](js-apis-application-abilityDelegatorArgs.md)
-  - application/[abilityMonitor](js-apis-application-abilityMonitor.md)
-  - application/[AbilityRunningInfo](js-apis-abilityrunninginfo.md)
-  - application/[AbilityStageContext](js-apis-abilitystagecontext.md)
-  - application/[Context](js-apis-application-context.md)
-  - application/[ExtensionContext](js-apis-extension-context.md)
-  - application/[ExtensionRunningInfo](js-apis-extensionrunninginfo.md)
-  - application/[FormExtensionContext](js-apis-formextensioncontext.md)
-  - application/[MissionSnapshot](js-apis-application-MissionSnapshot.md)
-  - application/[PermissionRequestResult](js-apis-permissionrequestresult.md)
-  - application/[ProcessRunningInfo](js-apis-processrunninginfo.md)
-  - application/[ServiceExtensionContext](js-apis-service-extension-context.md)
-  - application/[shellCmdResult](js-apis-application-shellCmdResult.md)
-  - application/[MissionInfo](js-apis-application-missionInfo.md)
-  
+  - FA Model
+    - [@ohos.ability.featureAbility](js-apis-featureAbility.md)
+    - [@ohos.ability.particleAbility](js-apis-particleAbility.md)
+    - ability/[dataAbilityHelper](js-apis-dataAbilityHelper.md)
+    - app/[context](js-apis-Context.md)
+  - Stage Model
+    - [@ohos.application.Ability](js-apis-application-ability.md)
+    - [@ohos.application.AbilityConstant](js-apis-application-abilityConstant.md)
+    - [@ohos.application.AbilityStage](js-apis-application-abilitystage.md)
+    - [@ohos.application.abilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md)
+    - [@ohos.application.DataShareExtensionAbility](js-apis-application-DataShareExtensionAbility.md)
+    - [@ohos.application.FormExtension](js-apis-formextension.md)
+    - [@ohos.application.ServiceExtensionAbility](js-apis-service-extension-ability.md)
+    - [@ohos.application.StartOptions](js-apis-application-StartOptions.md)
+    - [@ohos.application.StaticSubscriberExtensionAbility](js-apis-application-staticSubscriberExtensionAbility.md)
+    - application/[AbilityContext](js-apis-ability-context.md)
+    - application/[ApplicationContext](js-apis-application-applicationContext.md)
+    - application/[AbilityStageContext](js-apis-abilitystagecontext.md)
+    - application/[Context](js-apis-application-context.md)
+    - application/[ExtensionContext](js-apis-extension-context.md)
+    - application/[FormExtensionContext](js-apis-formextensioncontext.md)
+    - application/[PermissionRequestResult](js-apis-permissionrequestresult.md)
+    - application/[ServiceExtensionContext](js-apis-service-extension-context.md)
+  - FA and Stage Models
+    - [@ohos.ability.dataUriUtils](js-apis-DataUriUtils.md)
+    - [@ohos.ability.errorCode](js-apis-ability-errorCode.md)
+    - [@ohos.ability.wantConstant](js-apis-ability-wantConstant.md)
+    - [@ohos.application.abilityDelegatorRegistry](js-apis-abilityDelegatorRegistry.md)
+    - [@ohos.application.abilityManager](js-apis-application-abilityManager.md)
+    - [@ohos.application.appManager](js-apis-appmanager.md)
+    - [@ohos.application.Configuration](js-apis-configuration.md)
+    - [@ohos.application.ConfigurationConstant](js-apis-configurationconstant.md)
+    - [@ohos.application.EnvironmentCallback](js-apis-application-EnvironmentCallback.md)
+    - [@ohos.application.formBindingData](js-apis-formbindingdata.md)
+    - [@ohos.application.formError](js-apis-formerror.md)
+    - [@ohos.application.formHost](js-apis-formhost.md)
+    - [@ohos.application.formInfo](js-apis-formInfo.md)
+    - [@ohos.application.formProvider](js-apis-formprovider.md)
+    - [@ohos.application.missionManager](js-apis-missionManager.md)
+    - [@ohos.application.Want](js-apis-application-Want.md)
+    - [@ohos.continuation.continuationManager](js-apis-continuation-continuationExtraParams.md)
+    - [@ohos.continuation.continuationManager](js-apis-continuation-continuationManager.md)
+    - [@ohos.wantAgent](js-apis-wantAgent.md)
+    - application/[abilityDelegator](js-apis-application-abilityDelegator.md)
+    - application/[abilityDelegatorArgs](js-apis-application-abilityDelegatorArgs.md)
+    - application/[abilityMonitor](js-apis-application-abilityMonitor.md)
+    - application/[AbilityRunningInfo](js-apis-abilityrunninginfo.md)
+    - application/[ExtensionRunningInfo](js-apis-extensionrunninginfo.md)
+    - application/[MissionSnapshot](js-apis-application-MissionSnapshot.md)
+    - application/[ProcessRunningInfo](js-apis-processrunninginfo.md)
+    - application/[shellCmdResult](js-apis-application-shellCmdResult.md)
+    - continuation/[ContinuationResult](js-apis-continuation-continuationResult.md)
 - Common Event and Notification
 
   - [@ohos.commonEvent](js-apis-commonEvent.md)
@@ -55,7 +63,7 @@
   - [@ohos.notification](js-apis-notification.md)
   - [@ohos.reminderAgent](js-apis-reminderAgent.md)
   - application/[EventHub](js-apis-eventhub.md)
-
+  
 - Bundle Management
 
   - [@ohos.bundle](js-apis-Bundle.md)
@@ -66,26 +74,30 @@
   - bundle/[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)
   - bundle/[BundleInfo](js-apis-bundle-BundleInfo.md)
   - bundle/[CustomizeData](js-apis-bundle-CustomizeData.md)
+  - bundle/[ElementName](js-apis-bundle-ElementName.md)
   - bundle/[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)
   - bundle/[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)
   - bundle/[Metadata](js-apis-bundle-Metadata.md)
   - bundle/[ModuleInfo](js-apis-bundle-ModuleInfo.md)
-
+  
 - UI Page
 
   - [@ohos.animator](js-apis-animator.md)
   - [@ohos.mediaquery](js-apis-mediaquery.md)
   - [@ohos.prompt](js-apis-prompt.md)
   - [@ohos.router](js-apis-router.md)
-
+  - [@ohos.uiAppearance](js-apis-uiappearance.md)
+  
 - Graphics
 
   - [@ohos.display ](js-apis-display.md)
+  - [@ohos.effectKit](js-apis-effectKit.md)
+  - [@ohos.screen](js-apis-screen.md)
   - [@ohos.screenshot](js-apis-screenshot.md)
   - [@ohos.window](js-apis-window.md)
   - [webgl](js-apis-webgl.md)
   - [webgl2](js-apis-webgl2.md)
-
+  
 - Media
 
   - [@ohos.multimedia.audio](js-apis-audio.md)
@@ -93,41 +105,46 @@
   - [@ohos.multimedia.image](js-apis-image.md)
   - [@ohos.multimedia.media](js-apis-media.md)
   - [@ohos.multimedia.medialibrary](js-apis-medialibrary.md)
-
+  
 - Resource Management
+
   - [@ohos.i18n](js-apis-i18n.md)
   - [@ohos.intl](js-apis-intl.md)
   - [@ohos.resourceManager](js-apis-resource-manager.md)
-
+  
 - Resource Scheduling
 
   - [@ohos.backgroundTaskManager](js-apis-backgroundTaskManager.md)
   - [@ohos.workScheduler ](js-apis-workScheduler.md)
   - [@ohos.WorkSchedulerExtensionAbility](js-apis-WorkSchedulerExtensionAbility.md)
-
+  
 - Custom Management
 
   - [@ohos.configPolicy](js-apis-config-policy.md)
   - [@ohos.enterpriseDeviceManager](js-apis-enterprise-device-manager.md)
   - [@ohos.EnterpriseAdminExtensionAbility](js-apis-EnterpriseAdminExtensionAbility.md)
-
+  
 - Security
 
   - [@ohos.abilityAccessCtrl](js-apis-abilityAccessCtrl.md)
+  - [@ohos.privacyManager](js-apis-privacyManager.md)
   - [@ohos.security.huks ](js-apis-huks.md)
   - [@ohos.userIAM.userAuth ](js-apis-useriam-userauth.md)
   - [@system.cipher](js-apis-system-cipher.md)
-
+  
 - Data Management
 
   - [@ohos.data.dataAbility ](js-apis-data-ability.md)
+  - [@ohos.data.dataShare](js-apis-data-dataShare.md)
+  - [@ohos.data.dataSharePredicates](js-apis-data-dataSharePredicates.md)
+  - [@ohos.data.dataShareResultSet](js-apis-data-DataShareResultSet.md)
   - [@ohos.data.distributedData](js-apis-distributed-data.md)
   - [@ohos.data.distributedDataObject](js-apis-data-distributedobject.md)
   - [@ohos.data.preferences](js-apis-data-preferences.md)
   - [@ohos.data.rdb](js-apis-data-rdb.md)
-  - [@ohos.settings](js-apis-settings.md)
+  - [@ohos.data.ValuesBucket](js-apis-data-ValuesBucket.md)
   - data/rdb/[resultSet](js-apis-data-resultset.md)
-
+  
 - File Management
 
   - [@ohos.document](js-apis-document.md)
@@ -138,7 +155,7 @@
   - [@ohos.storageStatistics](js-apis-storage-statistics.md)
   - [@ohos.volumeManager](js-apis-volumemanager.md)
   - [@ohos.securityLabel](js-apis-securityLabel.md)
-
+  
 - Telephony Service
 
   - [@ohos.contact](js-apis-contact.md)
@@ -148,14 +165,15 @@
   - [@ohos.telephony.sim](js-apis-sim.md)
   - [@ohos.telephony.sms](js-apis-sms.md)
   - [@ohos.telephony.data](js-apis-telephony-data.md)
-
+  
 - Network Management
+
   - [@ohos.net.connection](js-apis-net-connection.md)
   - [@ohos.net.http](js-apis-http.md)
   - [@ohos.request](js-apis-request.md)
   - [@ohos.net.socket](js-apis-socket.md)
   - [@ohos.net.webSocket](js-apis-webSocket.md)
-
+  
 - Connectivity
 
   - [@ohos.bluetooth](js-apis-bluetooth.md)
@@ -166,7 +184,7 @@
   - [@ohos.rpc](js-apis-rpc.md)
   - [@ohos.wifi](js-apis-wifi.md)
   - [@ohos.wifiext](js-apis-wifiext.md)
-
+  
 - Basic Features
 
   - [@ohos.accessibility](js-apis-accessibility.md)
@@ -185,7 +203,7 @@
   - [@ohos.systemTime](js-apis-system-time.md)
   - [@ohos.wallpaper](js-apis-wallpaper.md)
   - [Timer](js-apis-timer.md)
-
+  
 - Device Management
 
   - [@ohos.batteryInfo ](js-apis-battery-info.md)
@@ -205,18 +223,19 @@
   - [@ohos.power](js-apis-power.md)
   - [@ohos.runningLock](js-apis-runninglock.md)
   - [@ohos.sensor](js-apis-sensor.md)
+  - [@ohos.settings](js-apis-settings.md)
   - [@ohos.systemParameter](js-apis-system-parameter.md)
   - [@ohos.thermal](js-apis-thermal.md)
   - [@ohos.update](js-apis-update.md)
   - [@ohos.usb](js-apis-usb.md)
   - [@ohos.vibrator](js-apis-vibrator.md)
-
+  
 - Account Management
 
   - [@ohos.account.appAccount](js-apis-appAccount.md)
   - [@ohos.account.distributedAccount](js-apis-distributed-account.md)
   - [@ohos.account.osAccount](js-apis-osAccount.md)
-
+  
 - Language Base Class Library
 
   - [@ohos.convertxml](js-apis-convertxml.md)
@@ -240,11 +259,12 @@
   - [@ohos.util.Vector](js-apis-vector.md)
   - [@ohos.worker](js-apis-worker.md)
   - [@ohos.xml](js-apis-xml.md)
-
+  
 - Test
+
   - [@ohos.application.testRunner](js-apis-testRunner.md)
   - [@ohos.uitest](js-apis-uitest.md)
-
+  
 - APIs No Longer Maintained
 
   - [@ohos.bytrace](js-apis-bytrace.md)
diff --git a/en/application-dev/reference/apis/development-intro.md b/en/application-dev/reference/apis/development-intro.md
new file mode 100644
index 0000000000000000000000000000000000000000..8528a10ab6f4ba3dd14186079357ce28e650ee6a
--- /dev/null
+++ b/en/application-dev/reference/apis/development-intro.md
@@ -0,0 +1,51 @@
+# API Reference Document Description
+
+API references provide the description of APIs used for application development. This topic describes common fields in the API references to help you better use the reference document.
+
+## Version Description
+
+In API references, the earliest versions of APIs and components are specified in the following ways:
+
+- For a new API or component, the version information is provided at the beginning of the reference document. Example: "The initial APIs of this module are supported since API version 7."
+- For a new feature of an existing API or component, a superscript is added following the feature. For example, "uid<sup>8+</sup>" indicates that the **uid** attribute is supported since API version 8.
+
+## Ability Framework Model Description
+
+Ability is the minimum unit for the system to schedule applications. An application can contain one or more `Ability` instances. Ability framework models are classified into the FA model and stage model. For details, see [Ability Framework Overview](../../ability/ability-brief.md).
+
+- If all the APIs of a module support only one model, the following description is provided at the beginning of the reference document: "The APIs of this module can be used only in the FA model." or "The APIs of this module can be used only in the stage model."
+- If certain APIs of a module support only one model, the following description is provided individually for these APIs: "This API can be used only in the FA model." or "This API can be used only in the stage model."
+- If both models are supported, no special description is provided.
+
+## Available APIs
+
+Certain APIs provided by OpenHarmony are system APIs, which can be used only by original equipment manufacturers (OEMs) and cannot be used by non-system applications.
+
+A description regarding system APIs will be provided in the document.
+
+- If all the APIs of a module are system APIs, the following description is provided at the beginning of the reference document: "All the APIs of this module are system APIs."
+- If a specific API of a module is a system API, the following description is provided individually for the API: "This is a system API."
+
+## Permission Description
+
+By default, applications can access limited system resources. However, in some cases, an application needs to access excess data (including personal data) and functions of the system or another application to implement extended functions. For details, see [Access Control Overview](../../security/accesstoken-overview.md).
+
+To call APIs to access these resources, you must apply for the corresponding permissions by following the instructions provided in [Access Control Development](../../security/accesstoken-guidelines.md).
+
+- If an application can call an API only after it has obtained a specific permission, the following description is provided for the API: "**Required permissions**: ohos.permission.xxxx"
+- If an application can call an API without any permission, no special description is provided.
+
+To determine whether an application can apply for a specific permission, see [Permission List](../../security/permission-list.md).
+
+## System Capability Description
+
+System capability refers to a relatively independent feature in the operating system. Different devices provide different system capabilities, and multiple APIs implement a system capability. You can determine whether an API can be used based on system capabilities. For details, see [SysCap](../../quick-start/syscap.md).
+
+The following description is provided for each API in the reference document to describe the system capability of the API: "**System capability**: SystemCapability.xxx.xxx"
+
+## Sample Code Language Description
+
+OpenHarmony supports two development languages: JS and TS.
+
+- When a code block is labeled with `js`, the sample code can be used in the JS and eTS projects.
+- When a code block is labeled with `ts`, the sample code can be used only in the eTS project.
diff --git a/en/application-dev/reference/apis/js-apis-Bundle.md b/en/application-dev/reference/apis/js-apis-Bundle.md
index 20e8f1573b48402b5561e69c1a67ac0c6a1dd9ea..409cb84c143a04dc46ec010fe9323f009b66c7ab 100644
--- a/en/application-dev/reference/apis/js-apis-Bundle.md
+++ b/en/application-dev/reference/apis/js-apis-Bundle.md
@@ -1,14 +1,14 @@
 # Bundle
 
-The **Bundle** module provides APIs for querying bundle information, application information, abilities, Extension abilities, and application states.
+The **Bundle** module provides APIs for querying the information about bundles, applications, abilities, Extension abilities, and application states.
 
 > **NOTE**
->
+> 
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 > API version 9 is a canary version for trial use. The APIs of this version may be unstable.
 ## Modules to Import
 
-```
+```js
 import bundle from '@ohos.bundle';
 ```
 
@@ -23,8 +23,9 @@ SystemCapability.BundleManager.BundleFramework
 | ohos.permission.GET_BUNDLE_INFO            | normal       | Permission to query information about a specified application.  |
 | ohos.permission.GET_BUNDLE_INFO_PRIVILEGED| system_basic | Permission to query information about all applications.|
 | ohos.permission.INSTALL_BUNDLE             | system_core  | Permission to install or uninstall applications.  |
+| ohos.permission.MANAGE_DISPOSED_APP_STATUS | system_core  | Permission to set and query the application disposal status.  |
 
-For details, see “Permission Levels” in [Access Control Overview](../../security/accesstoken-overview.md).
+For details, see "Permission Levels" in [Access Control Overview](../../security/accesstoken-overview.md).
 
 ## bundle.getApplicationInfo
 
@@ -44,7 +45,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type    | Mandatory  | Description                                     |
 | ----------- | ------ | ---- | --------------------------------------- |
-| bundleName  | string | Yes   | Bundle name of the application.                           |
+| bundleName  | string | Yes   | Bundle name of an application.                           |
 | bundleFlags | number | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | userId      | number | No   | User ID. The default value is the user ID of the caller. The value must be greater than or equal to 0.           |
 
@@ -68,8 +69,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, userId)
 })
 ```
 
-
-
 ## bundle.getApplicationInfo
 
 getApplicationInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback\<ApplicationInfo>): void
@@ -88,7 +87,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                             | Mandatory  | Description                                     |
 | ----------- | ------------------------------- | ---- | --------------------------------------- |
-| bundleName  | string                          | Yes   | Bundle name of the application.                           |
+| bundleName  | string                          | Yes   | Bundle name of an application.                           |
 | bundleFlags | number                          | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | userId      | number                          | Yes   | User ID. The default value is the user ID of the caller. The value must be greater than or equal to 0.           |
 | callback    | AsyncCallback\<[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)> | Yes   | Callback used to return the application information.                |
@@ -108,7 +107,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, userId, (err, data) => {
  })
 ```
 
-
 ## bundle.getApplicationInfo
 
 getApplicationInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\<ApplicationInfo>): void
@@ -127,7 +125,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                             | Mandatory  | Description                                     |
 | ----------- | ------------------------------- | ---- | --------------------------------------- |
-| bundleName  | string                          | Yes   | Bundle name of the application.                           |
+| bundleName  | string                          | Yes   | Bundle name of an application.                           |
 | bundleFlags | number                          | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | callback    | AsyncCallback\<[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)> | Yes   | Callback used to return the application information.                |
 
@@ -145,7 +143,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, (err, data) => {
  })
 ```
 
-
 ## bundle.getAllBundleInfo
 
 getAllBundleInfo(bundleFlag: BundleFlag, userId?: number): Promise<Array\<BundleInfo>>
@@ -186,8 +183,6 @@ bundle.getAllBundleInfo(bundleFlag, userId)
 })
 ```
 
-
-
 ## bundle.getAllBundleInfo
 
 getAllBundleInfo(bundleFlag: BundleFlag, callback: AsyncCallback<Array\<BundleInfo>>): void
@@ -222,7 +217,6 @@ bundle.getAllBundleInfo(bundleFlag, (err, data) => {
  })
 ```
 
-
 ## bundle.getAllBundleInfo
 
 getAllBundleInfo(bundleFlag: BundleFlag, userId: number, callback: AsyncCallback<Array\<BundleInfo>>): void
@@ -259,8 +253,6 @@ bundle.getAllBundleInfo(bundleFlag, userId, (err, data) => {
  })
 ```
 
-
-
 ## bundle.getBundleInfo
 
 getBundleInfo(bundleName: string, bundleFlags: number, options?: BundleOptions): Promise\<BundleInfo>
@@ -279,7 +271,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type           | Mandatory  | Description                                     |
 | ----------- | ------------- | ---- | --------------------------------------- |
-| bundleName  | string        | Yes   | Bundle name of the application.                                     |
+| bundleName  | string        | Yes   | Bundle name of an application.                                     |
 | bundleFlags | number        | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | options     | [BundleOptions](#bundleoptions) | No   | Includes **userId**.                              |
 
@@ -305,8 +297,6 @@ bundle.getBundleInfo(bundleName, bundleFlags, options)
 })
 ```
 
-
-
 ## bundle.getBundleInfo
 
 getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\<BundleInfo>): void
@@ -325,7 +315,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                        | Mandatory  | Description                                     |
 | ----------- | -------------------------- | ---- | --------------------------------------- |
-| bundleName  | string                     | Yes   | Bundle name of the application.                                     |
+| bundleName  | string                     | Yes   | Bundle name of an application.                                     |
 | bundleFlags | number                     | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes   | Callback used to return the bundle information.                   |
 
@@ -362,7 +352,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                        | Mandatory  | Description                                     |
 | ----------- | -------------------------- | ---- | --------------------------------------- |
-| bundleName  | string                     | Yes   | Bundle name of the application.                                     |
+| bundleName  | string                     | Yes   | Bundle name of an application.                                     |
 | bundleFlags | number                     | Yes   | Type of information that will be returned. The default value is **0**. The value must be greater than or equal to 0.|
 | options     | [BundleOptions](#bundleoptions)              | Yes   | Includes **userId**.                              |
 | callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes   | Callback used to return the bundle information.                   |
@@ -384,6 +374,466 @@ bundle.getBundleInfo(bundleName, bundleFlags, options, (err, data) => {
 })
 ```
 
+## bundle.getBundleInstaller
+
+getBundleInstaller(): Promise&lt;BundleInstaller&gt;;
+
+Obtains the installation package information. This API uses a promise to return the result.
+
+**Required permissions**
+
+ohos.permission.INSTALL_BUNDLE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Return value**
+
+| Type                                                        | Description                                        |
+| ------------------------------------------------------------ | -------------------------------------------- |
+| Promise<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | Promise used to return the installation package information.|
+
+## bundle.getBundleInstaller
+
+getBundleInstaller(callback: AsyncCallback&lt;BundleInstaller&gt;): void;
+
+Obtains the installation package information. This API uses an asynchronous callback to return the result.
+
+**Required permissions**
+
+ohos.permission.INSTALL_BUNDLE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name    | Type                                                        | Mandatory| Description            |
+| -------- | ------------------------------------------------------------ | ---- | ---------------- |
+| callback | AsyncCallback<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | Yes  | Callback used to return the installation package information.|
+
+## bundle.cleanBundleCacheFiles<sup>8+</sup>
+
+cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback&lt;void&gt;): void;
+
+Clears the cache data of an application. This API uses an asynchronous callback to return the result.
+
+**Required permissions**
+
+ohos.permission.REMOVE_CACHE_FILES
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type               | Mandatory| Description                                 |
+| ---------- | ------------------- | ---- | ------------------------------------- |
+| bundleName | string              | Yes  | Bundle name of an application.|
+| callback   | AsyncCallback\<void> | Yes  | Callback used to return the result.         |
+
+## bundle.cleanBundleCacheFiles<sup>8+</sup>
+
+cleanBundleCacheFiles(bundleName: string): Promise&lt;void&gt;
+
+Clears the cache data of an application. This API uses a promise to return the result.
+
+**Required permissions**
+
+ohos.permission.REMOVE_CACHE_FILES
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type  | Mandatory| Description                                 |
+| ---------- | ------ | ---- | ------------------------------------- |
+| bundleName | string | Yes  | Bundle name of an application.|
+
+**Return value**
+
+| Type         | Description                                |
+| ------------- | ------------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+## bundle.setApplicationEnabled<sup>8+</sup>
+
+setApplicationEnabled(bundleName: string, isEnable: boolean, callback: AsyncCallback&lt;void&gt;): void;
+
+Sets whether to enable an application. This API uses an asynchronous callback to return the result.
+
+**Required permissions**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type               | Mandatory| Description                                           |
+| ---------- | ------------------- | ---- | ----------------------------------------------- |
+| bundleName | string              | Yes  | Bundle name of an application.                               |
+| isEnable   | boolean             | Yes  | Whether to enable the application. The value **true** means to enable the application, and **false** means the opposite.|
+| callback   | AsyncCallback\<void> | Yes  | Callback used to return the result.                   |
+
+## bundle.setApplicationEnabled<sup>8+</sup>
+
+setApplicationEnabled(bundleName: string, isEnable: boolean): Promise&lt;void&gt;
+
+Sets whether to enable an application. This API uses a promise to return the result.
+
+**Required permissions**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type   | Mandatory| Description                                           |
+| ---------- | ------- | ---- | ----------------------------------------------- |
+| bundleName | string  | Yes  | Bundle name of an application.                               |
+| isEnable   | boolean | Yes  | Whether to enable the application. The value **true** means to enable the application, and **false** means the opposite.|
+
+**Return value**
+
+| Type         | Description                                |
+| ------------- | ------------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+## bundle.setAbilityEnabled<sup>8+</sup>
+
+setAbilityEnabled(info: AbilityInfo, isEnable: boolean, callback: AsyncCallback&lt;void&gt;): void;
+
+Sets whether to enable an ability. This API uses an asynchronous callback to return the result.
+
+**Required permissions**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name    | Type                                        | Mandatory| Description                                           |
+| -------- | -------------------------------------------- | ---- | ----------------------------------------------- |
+| info     | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | Yes  | Ability information.                                  |
+| isEnable | boolean                                      | Yes  | Whether to enable the ability. The value **true** means to enable the ability, and **false** means the opposite.|
+| callback | AsyncCallback\<void>                          | Yes  | Callback used to return the result.                   |
+
+## bundle.setAbilityEnabled<sup>8+</sup>
+
+setAbilityEnabled(info: AbilityInfo, isEnable: boolean): Promise&lt;void&gt;
+
+Sets whether to enable an ability. This API uses a promise to return the result.
+
+**Required permissions**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name    | Type                                        | Mandatory| Description                                           |
+| -------- | -------------------------------------------- | ---- | ----------------------------------------------- |
+| info     | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | Yes  | Ability information.                                  |
+| isEnable | boolean                                      | Yes  | Whether to enable the ability. The value **true** means to enable the ability, and **false** means the opposite.|
+
+**Return value**
+
+| Type         | Description                                |
+| ------------- | ------------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+## bundle.getPermissionDef<sup>8+</sup>
+
+getPermissionDef(permissionName: string, callback: AsyncCallback&lt;PermissionDef&gt;): void;
+
+Obtains the permission details by permission name. This API uses an asynchronous callback to return the result.
+
+**Required permissions**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name          | Type                                                        | Mandatory| Description                                            |
+| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------ |
+| permissionName | string                                                       | Yes  | Name of the permission.                                |
+| callback       | AsyncCallback<[PermissionDef](js-apis-bundle-PermissionDef)> | Yes  | Callback used to return the permission details.|
+
+## bundle.getPermissionDef<sup>8+</sup>
+
+getPermissionDef(permissionName: string): Promise&lt;PermissionDef&gt;
+
+Obtains the permission details by permission name. This API uses a promise to return the result.
+
+**Required permissions**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name          | Type  | Mandatory| Description            |
+| -------------- | ------ | ---- | ---------------- |
+| permissionName | string | Yes  | Name of the permission.|
+
+**Return value**
+
+| Type                                                  | Description                                                  |
+| ------------------------------------------------------ | ------------------------------------------------------ |
+| Promise<[PermissionDef](js-apis-bundle-PermissionDef)> | Promise used to return the permission details.|
+
+## bundle.setModuleUpgradeFlag<sup>9+</sup>
+
+setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag, callback: AsyncCallback&lt;void&gt;):void;
+
+Sets whether the module needs an upgrade. This API uses an asynchronous callback to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name       | Type                       | Mandatory| Description                        |
+| ----------- | --------------------------- | ---- | ---------------------------- |
+| bundleName  | string                      | Yes  | Bundle name of an application.            |
+| moduleName  | string                      | Yes  | Module name of the application.          |
+| upgradeFlag | [UpgradeFlag](#upgradeflag) | Yes  | Upgrade flag, which is used only by the internal system.      |
+| callback    | AsyncCallback\<void>         | Yes  | Callback used to return the result.|
+
+## bundle.setModuleUpgradeFlag<sup>9+</sup>
+
+setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag): Promise&lt;void&gt;
+
+Sets whether the module needs an upgrade. This API uses a promise to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name       | Type                       | Mandatory| Description                  |
+| ----------- | --------------------------- | ---- | ---------------------- |
+| bundleName  | string                      | Yes  | Bundle name of an application.      |
+| moduleName  | string                      | Yes  | Module name of the application.    |
+| upgradeFlag | [UpgradeFlag](#upgradeflag) | Yes  | Upgrade flag, which is used only by the internal system.|
+
+**Return value**
+
+| Type         | Description                                |
+| ------------- | ------------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+## bundle.isModuleRemovable<sup>9+</sup>
+
+isModuleRemovable(bundleName: string, moduleName: string, callback: AsyncCallback&lt;boolean&gt;): void;
+
+Checks whether a module is removable. This API uses an asynchronous callback to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type                  | Mandatory| Description                                         |
+| ---------- | ---------------------- | ---- | --------------------------------------------- |
+| bundleName | string                 | Yes  | Bundle name of an application.                             |
+| moduleName | string                 | Yes  | Module name of the application.                           |
+| callback   | AsyncCallback<boolean> | Yes  | Callback used to return the result. If the module is removable, **true** is returned. Otherwise, **false** is returned.|
+
+## bundle.isModuleRemovable<sup>9+</sup>
+
+isModuleRemovable(bundleName: string, moduleName: string): Promise&lt;boolean&gt;
+
+Checks whether a module is removable. This API uses a promise to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name      | Type  | Mandatory| Description              |
+| ---------- | ------ | ---- | ------------------ |
+| bundleName | string | Yes  | Bundle name of an application.  |
+| moduleName | string | Yes  | Module name of the application.|
+
+**Return value**
+
+| Type            | Description                        |
+| ---------------- | ---------------------------- |
+| Promise<boolean> | Promise used to return the result. If the module is removable, **true** is returned. Otherwise, **false** is returned.|
+
+## bundle.getBundlePackInfo<sup>9+</sup>
+
+getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag, callback: AsyncCallback&lt;pack.BundlePackInfo&gt;): void;
+
+Obtains the bundle package information based on a given bundle name and bundle flags. This API uses an asynchronous callback to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name          | Type                              | Mandatory| Description                                                |
+| -------------- | ---------------------------------- | ---- | ---------------------------------------------------- |
+| bundleName     | string                             | Yes  | Bundle name of an application.                                    |
+| bundlePackFlag | pack.BundlePackFlag                | Yes  | Flags of the bundle package.                              |
+| callback       | AsyncCallback<pack.BundlePackInfo> | Yes  | Callback used to return the bundle package information.|
+
+## bundle.getBundlePackInfo<sup>9+</sup>
+
+getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag): Promise&lt;pack.BundlePackInfo&gt;;
+
+Obtains the bundle package information based on a given bundle name and bundle flags. This API uses a promise to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name          | Type               | Mandatory| Description                  |
+| -------------- | ------------------- | ---- | ---------------------- |
+| bundleName     | string              | Yes  | Bundle name of an application.      |
+| bundlePackFlag | pack.BundlePackFlag | Yes  | Flags of the bundle package.|
+
+**Return value**
+
+| Type                        | Description                               |
+| ---------------------------- | ----------------------------------- |
+| Promise<pack.BundlePackInfo> | Promise used to return the bundle package information.|
+
+## bundle.getDispatcherVersion<sup>9+</sup>
+
+getDispatcherVersion(callback: AsyncCallback&lt;DispatchInfo&gt;): void;
+
+Obtains the dispatcher version. This API uses an asynchronous callback to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name    | Type                                                  | Mandatory| Description                                                        |
+| -------- | ------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| callback | AsyncCallback<[DispatchInfo](js-apis-dispatchInfo.md)> | Yes  | Callback used to return the [DispatchInfo](js-apis-dispatchInfo.md).|
+
+## bundle.getDispatcherVersion<sup>9+</sup>
+
+getDispatcherVersion(): Promise&lt;DispatchInfo&gt;;
+
+Obtains the dispatcher version. This API uses a promise to return the result.
+
+**System capability**
+
+SystemCapability.BundleManager.BundleFramework
+
+**System API**
+
+This is a system API and cannot be called by third-party applications.
+
+**Return value**
+
+| Type                                            | Description                                                        |
+| ------------------------------------------------ | ------------------------------------------------------------ |
+| Promise<[DispatchInfo](js-apis-dispatchInfo.md)> | Promise used to return the [DispatchInfo](js-apis-dispatchInfo.md).|
 
 ## bundle.getAllApplicationInfo
 
@@ -584,7 +1034,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type    | Mandatory  | Description              |
 | ----------- | ------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | abilityName | string | Yes   | Ability name.|
 
 **Return value**
@@ -624,7 +1074,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type    | Mandatory  | Description           |
 | ----------- | ------------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | abilityName | string | Yes   | Ability name.|
 | callback    | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Yes   | Callback used to return the ability information.|
 
@@ -659,7 +1109,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type    | Mandatory  | Description              |
 | ----------- | ------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | moduleName  | string | Yes   | Module name of the application.    |
 | abilityName | string | Yes   | Ability name.|
 
@@ -701,7 +1151,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type    | Mandatory  | Description           |
 | ----------- | ------------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | moduleName  | string | Yes   | Module name of the application.    |
 | abilityName | string | Yes   | Ability name.|
 | callback    | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Yes   | Callback used to return the ability information.|
@@ -739,7 +1189,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type    | Mandatory  | Description              |
 | ----------- | ------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | abilityName | string | Yes   | Ability name.|
 
 **Return value**
@@ -779,7 +1229,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                    | Mandatory  | Description              |
 | ----------- | ---------------------- | ---- | ---------------- |
-| bundleName  | string                 | Yes   | Bundle name of the application.    |
+| bundleName  | string                 | Yes   | Bundle name of an application.    |
 | abilityName | string                 | Yes   | Ability name.|
 | callback    | AsyncCallback\<string> | Yes   | Callback used to return the application name.       |
 
@@ -814,7 +1264,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type    | Mandatory  | Description              |
 | ----------- | ------ | ---- | ---------------- |
-| bundleName  | string | Yes   | Bundle name of the application.    |
+| bundleName  | string | Yes   | Bundle name of an application.    |
 | moduleName  | string | Yes   | Module name of the application.    |
 | abilityName | string | Yes   | Ability name.|
 
@@ -856,7 +1306,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name         | Type                    | Mandatory  | Description              |
 | ----------- | ---------------------- | ---- | ---------------- |
-| bundleName  | string                 | Yes   | Bundle name of the application.    |
+| bundleName  | string                 | Yes   | Bundle name of an application.    |
 | moduleName  | string | Yes   | Module name of the application.    |
 | abilityName | string                 | Yes   | Ability name.|
 | callback    | AsyncCallback\<string> | Yes   | Callback used to return the application name.       |
@@ -959,7 +1409,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type    | Mandatory  | Description          |
 | ---------- | ------ | ---- | ------------ |
-| bundleName | string | Yes   | Bundle name of the application.|
+| bundleName | string | Yes   | Bundle name of an application.|
 
 **Return value**
 
@@ -993,7 +1443,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type                     | Mandatory  | Description             |
 | ---------- | ----------------------- | ---- | --------------- |
-| bundleName | string                  | Yes   | Bundle name of the application.   |
+| bundleName | string                  | Yes   | Bundle name of an application.   |
 | callback   | AsyncCallback\<boolean> | Yes   | Callback used to return whether the ability is enabled. If the ability is enabled, **true** will be returned; otherwise, **false** will be returned.|
 
 **Example**
@@ -1156,7 +1606,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type    | Mandatory  | Description          |
 | ---------- | ------ | ---- | ------------ |
-| bundleName | string | Yes   | Bundle name of the application.|
+| bundleName | string | Yes   | Bundle name of an application.|
 
 **Return value**
 | Type            | Description                                    |
@@ -1193,7 +1643,7 @@ SystemCapability.BundleManager.BundleFramework
 
 | Name        | Type                  | Mandatory  | Description                            |
 | ---------- | -------------------- | ---- | ------------------------------ |
-| bundleName | string               | Yes   | Bundle name of the application.                  |
+| bundleName | string               | Yes   | Bundle name of an application.                  |
 | callback   | AsyncCallback\<[Want](js-apis-application-Want.md)> | Yes   | Callback used to return the **Want** object.|
 
 **Example**
@@ -1278,7 +1728,7 @@ bundle.getNameForUid(uid, (err, data) => {
 
 getAbilityIcon(bundleName: string, abilityName: string): Promise\<image.PixelMap>;
 
-Obtains the [PixelMap](js-apis-image.md) of the icon corresponding to a given bundle name and ability name. This API uses a promise to return the result.
+Obtains the [pixel map](js-apis-image.md) of the icon corresponding to a given bundle name and ability name. This API uses a promise to return the result.
 
 **Required permissions**
 
@@ -1298,7 +1748,7 @@ SystemCapability.BundleManager.BundleFramework
 **Return value**
 | Type                 | Description                                                        |
 | --------------------- | ------------------------------------------------------------ |
-| Promise\<image.PixelMap> | Promise used to return the [PixelMap](js-apis-image.md).|
+| Promise\<image.PixelMap> | Promise used to return the [pixel map](js-apis-image.md).|
 
 **Example**
 
@@ -1317,7 +1767,7 @@ bundle.getAbilityIcon(bundleName, abilityName)
 
 getAbilityIcon(bundleName: string, abilityName: string, callback: AsyncCallback\<image.PixelMap>): void;
 
-Obtains the [PixelMap](js-apis-image.md) of the icon corresponding to a given bundle name and ability name. This API uses an asynchronous callback to return the result.
+Obtains the [pixel map](js-apis-image.md) of the icon corresponding to a given bundle name and ability name. This API uses an asynchronous callback to return the result.
 
 **Required permissions**
 
@@ -1333,7 +1783,7 @@ SystemCapability.BundleManager.BundleFramework
 | ----------- | ---------------------------------------- | ---- | ---------------------------------------- |
 | bundleName  | string                                   | Yes   | Bundle name based on which the pixel map is to obtain.                         |
 | abilityName | string                                   | Yes   | Ability name based on which the pixel map is to obtain.                        |
-| callback   | AsyncCallback\<image.PixelMap> | Yes  | Callback used to return the [PixelMap](js-apis-image.md).|
+| callback   | AsyncCallback\<image.PixelMap> | Yes  | Callback used to return the [pixel map](js-apis-image.md).|
 
 **Example**
 
@@ -1353,11 +1803,11 @@ bundle.getAbilityIcon(bundleName, abilityName, (err, data) => {
 
 getAbilityIcon(bundleName: string, moduleName: string, abilityName: string): Promise\<image.PixelMap>;
 
-Obtains the [PixelMap](js-apis-image.md) of the icon corresponding to a given bundle name, module name, and ability name. This API uses a promise to return the result.
+Obtains the [pixel map](js-apis-image.md) of the icon corresponding to a given bundle name, module name, and ability name. This API uses a promise to return the result.
 
 **Required permissions**
 
-ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
 
 **System capability**
 
@@ -1374,7 +1824,7 @@ SystemCapability.BundleManager.BundleFramework
 **Return value**
 | Type                 | Description                                                        |
 | --------------------- | ------------------------------------------------------------ |
-| Promise\<image.PixelMap> | Promise used to return the [PixelMap](js-apis-image.md).|
+| Promise\<image.PixelMap> | Promise used to return the [pixel map](js-apis-image.md).|
 
 **Example**
 
@@ -1394,11 +1844,11 @@ bundle.getAbilityIcon(bundleName, moduleName, abilityName)
 
 getAbilityIcon(bundleName: string, moduleName: string, abilityName: string, callback: AsyncCallback\<image.PixelMap>): void;
 
-Obtains the [PixelMap](js-apis-image.md) of the icon corresponding to a given bundle name, module name, and ability name. This API uses an asynchronous callback to return the result.
+Obtains the [pixel map](js-apis-image.md) of the icon corresponding to a given bundle name, module name, and ability name. This API uses an asynchronous callback to return the result.
 
 **Required permissions**
 
-ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
 
 **System capability**
 
@@ -1411,7 +1861,7 @@ SystemCapability.BundleManager.BundleFramework
 | bundleName  | string                                   | Yes   | Bundle name based on which the pixel map is to obtain.                         |
 | moduleName  | string                                   | Yes   | Module name based on which the pixel map is to obtain.                         |
 | abilityName | string                                   | Yes   | Ability name based on which the pixel map is to obtain.                        |
-| callback   | AsyncCallback\<image.PixelMap> | Yes  | Callback used to return the [PixelMap](js-apis-image.md).|
+| callback   | AsyncCallback\<image.PixelMap> | Yes  | Callback used to return the [pixel map](js-apis-image.md).|
 
 **Example**
 
@@ -1528,7 +1978,7 @@ Obtains the Extension ability information based on a given want. This API uses a
 
 **Required permissions**
 
-ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
 
 **System capability**
 
@@ -1693,6 +2143,142 @@ bundle.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataNa
 })
 ```
 
+## bundle.setDisposedStatus<sup>9+</sup>
+
+setDisposedStatus(bundleName: string, status: number, callback: AsyncCallback\<void>): void;
+
+Sets the disposal status for an application based on a given bundle name. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.MANAGE_DISPOSED_APP_STATUS
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name            | Type                               | Mandatory  | Description                                      |
+| ---------------- | ---------------------------------- | ---- | ---------------------------------------- |
+| bundleName     | string                               | Yes   | Bundle name of an application.             |
+| status    | number                               | Yes   | Disposal status to set. This parameter is reserved for the application market. The default value is **0**, indicating that no disposal is performed.            |
+| callback       | AsyncCallback\<void>        | Yes   | Callback that returns no value.  |
+
+**Example**
+
+```js
+let bundleName = 'com.ohos.camera';
+let status = 1;
+const caller = function callback(err, data) {
+    console.error('Operation err is: ' + err);
+    console.error('Operation result is: ' + data);
+}
+bundle.setDisposedStatus(bundleName, status, caller)
+```
+
+## bundle.setDisposedStatus<sup>9+</sup>
+
+setDisposedStatus(bundleName: string, status: number): Promise\<void>;
+
+Sets the disposal status for an application based on a given bundle name. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.MANAGE_DISPOSED_APP_STATUS
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name            | Type                               | Mandatory  | Description                                      |
+| ---------------- | ---------------------------------- | ---- | ---------------------------------------- |
+| bundleName     | string                               | Yes   | Bundle name of an application.             |
+| status    | number                               | Yes   | Disposal status to set. This parameter is reserved for the application market. The default value is **0**, indicating that no disposal is performed.            |
+
+**Return value**
+
+| Type                                   | Description                            |
+| ------------------------------------- | ------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```js
+let bundleName = 'com.ohos.camera';
+let status = 1;
+
+bundle.setDisposedStatus(bundleName, status).then(data=>{
+    console.error('Operation result is: ' + data);
+}).catch(err=>{
+    console.error('Operation err is: ' + err);
+})
+```
+
+## bundle.getDisposedStatus<sup>9+</sup>
+
+getDisposedStatus(bundleName: string, callback: AsyncCallback\<number>): void;
+
+Obtains the disposal status of an application based on a given bundle name. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.MANAGE_DISPOSED_APP_STATUS
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name            | Type                               | Mandatory  | Description                                      |
+| ---------------- | ---------------------------------- | ---- | ---------------------------------------- |
+| bundleName     | string                               | Yes   | Bundle name of an application.             |
+| callback       | AsyncCallback\<number>        | Yes   | Callback used to return the disposal status.  |
+
+**Example**
+
+```js
+let bundleName = 'com.ohos.camera';
+const caller = function callback(err, data) {
+    console.error('Operation err is: ' + err);
+    console.error('Operation result is: ' + data);
+}
+bundle.getDisposedStatus(bundleName, caller)
+```
+
+## bundle.getDisposedStatus<sup>9+</sup>
+
+getDisposedStatus(bundleName: string): Promise\<number>;
+
+Obtains the disposal status of an application based on a given bundle name. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.MANAGE_DISPOSED_APP_STATUS
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name            | Type                               | Mandatory  | Description                                      |
+| ---------------- | ---------------------------------- | ---- | ---------------------------------------- |
+| bundleName     | string                               | Yes   | Bundle name of an application.             |
+
+**Return value**
+
+| Type                                   | Description                            |
+| ------------------------------------- | ------------------------------ |
+| Promise\<number> | Promise used to return the disposal status.|
+
+**Example**
+
+```js
+let bundleName = 'com.ohos.camera';
+
+bundle.getDisposedStatus(bundleName).then(data=>{
+    console.error('Operation result is: ' + data);
+}).catch(err=>{
+    console.error('Operation err is: ' + err);
+})
+```
+
 ## InstallErrorCode
 
  **System capability**: SystemCapability.BundleManager.BundleFramework
@@ -1779,15 +2365,15 @@ Enumerates display orientations.
 | LANDSCAPE     | None   | Landscape orientation.     |
 | PORTRAIT      | None   | Portrait orientation.     |
 | FOLLOW_RECENT | None   | Orientation same as that of the nearest ability in the stack.|
-| LANDSCAPE_INVERTED |None   | Reverse landscape orientation.    |
-| PORTRAIT_INVERTED |None   | Reverse portrait orientation.    |
-| AUTO_ROTATION |None   | Orientation determined by the sensor.    |
-| AUTO_ROTATION_LANDSCAPE |None   | Orientation determined by the sensor in the horizontal direction, including landscape and reverse landscape.    |
-| AUTO_ROTATION_PORTRAIT |None   | Orientation determined by the sensor in the vertical direction, including portrait and reverse portrait.    |
-| AUTO_ROTATION_RESTRICTED |None   | Orientation determined by the sensor when the sensor switch is enabled.    |
-| AUTO_ROTATION_LANDSCAPE_RESTRICTED |None   | Orientation determined by the sensor in the horizontal direction, including landscape and reverse landscape, when the sensor switch is enabled.    |
-| AUTO_ROTATION_PORTRAIT_RESTRICTED |None   | Orientation determined by the sensor in the vertical direction, including portrait and reverse portrait, when the sensor switch is enabled.    |
-| LOCKED |None   | Auto rotate locked.    |
+| LANDSCAPE_INVERTED<sup>9+</sup> |None   | Reverse landscape orientation.    |
+| PORTRAIT_INVERTED<sup>9+</sup> |None   | Reverse portrait orientation.    |
+| AUTO_ROTATION<sup>9+</sup> |None   | Orientation determined by the sensor.    |
+| AUTO_ROTATION_LANDSCAPE<sup>9+</sup> |None   | Orientation determined by the sensor in the horizontal direction, including landscape and reverse landscape.    |
+| AUTO_ROTATION_PORTRAIT<sup>9+</sup> |None   | Orientation determined by the sensor in the vertical direction, including portrait and reverse portrait.    |
+| AUTO_ROTATION_RESTRICTED<sup>9+</sup> |None   | Orientation determined by the sensor when the sensor switch is enabled.    |
+| AUTO_ROTATION_LANDSCAPE_RESTRICTED<sup>9+</sup> |None   | Orientation determined by the sensor in the horizontal direction, including landscape and reverse landscape, when the sensor switch is enabled.    |
+| AUTO_ROTATION_PORTRAIT_RESTRICTED<sup>9+</sup> |None   | Orientation determined by the sensor in the vertical direction, including portrait and reverse portrait, when the sensor switch is enabled.    |
+| LOCKED<sup>9+</sup> |None   | Auto rotate disabled.    |
 ## LaunchMode
 
 Enumerates launch modes.
@@ -1827,9 +2413,12 @@ Enumerates Extension ability types.
 | FILE_SHARE<sup>9+</sup>        | 6    | File sharing included.|
 | STATIC_SUBSCRIBER<sup>9+</sup> | 7    | Subscribers included. |
 | WALLPAPER<sup>9+</sup>         | 8    | Wallpaper included.  |
-| BACKUP<sup>9+</sup>            | 9    | Data backup and restore included.|
+| BACKUP<sup>9+</sup> | 9    | Data backup and restore included.|
+| WINDOW<sup>9+</sup> | 10 | Window type extension information included.|
 | ENTERPRISE_ADMIN<sup>9+</sup>  | 11   | Enterprise administrators included.  |
-| UNSPECIFIED<sup>9+</sup>       | 20    | Unspecified type.    |
+| THUMBNAIL<sup>9+</sup> | 13 | Thumbnails included.|
+| PREVIEW<sup>9+</sup> | 14 | Preview included.|
+| UNSPECIFIED<sup>9+</sup>       | 255   | Unspecified type.    |
 
 ## ExtensionFlag<sup>9+</sup>
 
@@ -1876,6 +2465,20 @@ Enumerates window modes.
 
 | Name                | Type  | Description  |
 | ------------------ | ---- | ---- |
-| FULLSCREEN  | None  | Full screen.|
-| SPLIT | None   | Split-screen.  |
-| FLOATING | None   | Floating.  |
+| FULL_SCREEN<sup>9+</sup> | 0   | Full screen.|
+| SPLIT<sup>9+</sup> | 1    | Split-screen.  |
+| FLOATING<sup>9+</sup> | 2    | Floating.  |
+
+## UpgradeFlag
+
+Enumerates the upgrade flags, which are for internal use only.
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+| Name                         | Value  | Description            |
+| ----------------------------- | ---- | ---------------- |
+| NOT_UPGRADE<sup>9+</sup>      | 0    | No module needs an upgrade.    |
+| SINGLE_UPGRADE<sup>9+</sup>   | 1    | A single module needs an upgrade.|
+| RELATION_UPGRADE<sup>9+</sup> | 2    | The module that has a relationship with the current one needs an upgrade.|
diff --git a/en/application-dev/reference/apis/js-apis-Context.md b/en/application-dev/reference/apis/js-apis-Context.md
index 7e947ddbe0194fabeb31d1c10c44eab0dcfe1550..ce415ad942510c481755380bdd90adb7eb1c75ae 100644
--- a/en/application-dev/reference/apis/js-apis-Context.md
+++ b/en/application-dev/reference/apis/js-apis-Context.md
@@ -1,19 +1,16 @@
 # Context
 
+The **Context** module provides context for abilities or applications. It allows access to application-specific resources, as well as permission requests and verification.
+
 > **NOTE**
-> 
-> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.  
+>
+> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
+>
 > The APIs of this module can be used only in the FA model.
 
-## Modules to Import
-
-```js
-import featureAbility from '@ohos.ability.featureAbility'
-```
-
 ## Usage
 
-The **Context** object is created in a **featureAbility** and returned through its **getContext()** API. Therefore, you must import the **@ohos.ability.featureAbility** package before using the Context module. An example is as follows:
+The **Context** object is created in a **featureAbility** and returned through its **getContext()** API. Therefore, you must import the **@ohos.ability.featureAbility** package before using the **Context** module. An example is as follows:
 
 ```js
 import featureAbility from '@ohos.ability.featureAbility'
@@ -91,7 +88,7 @@ Verifies whether a specific PID and UID have the given permission. This API uses
 | ---------- | --------------------------------------- | ---- | ------------------------------------- |
 | permission | string                                  | Yes  | Name of the permission to verify.                     |
 | options    | [PermissionOptions](#permissionoptions) | Yes  | Permission options.                           |
-| callback   | AsyncCallback\<number>                  | Yes  | Callback used to return the permission verification result. The value **0** indicates that the PID and UID have the given permission, and the value **-1** indicates that the PID and UID do not have the given permission.|
+| callback   | AsyncCallback\<number>                  | Yes  | Callback used to return the permission verification result. The value **0** means that the PID and UID have the given permission, and the value **-1** means the opposite.|
 
 **Example**
 
@@ -119,7 +116,7 @@ Verifies whether the current PID and UID have the given permission. This API use
 | Name      | Type                  | Mandatory| Description                                 |
 | ---------- | ---------------------- | ---- | ------------------------------------- |
 | permission | string                 | Yes  | Name of the permission to verify.                     |
-| callback   | AsyncCallback\<number> | Yes  | Callback used to return the permission verification result. The value **0** indicates that the PID and UID have the given permission, and the value **-1** indicates that the PID and UID do not have the given permission.|
+| callback   | AsyncCallback\<number> | Yes  | Callback used to return the permission verification result. The value **0** means that the PID and UID have the given permission, and the value **-1** means the opposite.|
 
 **Example**
 
@@ -148,7 +145,7 @@ Verifies whether a specific PID and UID have the given permission. This API uses
 
 | Type            | Description                                                       |
 | ---------------- | ----------------------------------------------------------- |
-| Promise\<number> | Promise used to return the permission verification result. The value **0** indicates that the PID and UID have the given permission, and the value **-1** indicates that the PID and UID do not have the given permission.|
+| Promise\<number> | Promise used to return the permission verification result. The value **0** means that the PID and UID have the given permission, and the value **-1** means the opposite.|
 
 **Example**
 
@@ -255,7 +252,7 @@ context.getApplicationInfo().then((data) => {
 
 getBundleName(callback: AsyncCallback\<string>): void
 
-Obtains the bundle name of the current ability. This API uses an asynchronous callback to return the result.
+Obtains the bundle name of this ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -279,7 +276,7 @@ context.getBundleName()
 
 getBundleName(): Promise\<string>
 
-Obtains the bundle name of the current ability. This API uses a promise to return the result.
+Obtains the bundle name of this ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -300,6 +297,225 @@ context.getBundleName().then((data) => {
 });
 ```
 
+## Context.getDisplayOrientation<sup>7+</sup>
+
+getDisplayOrientation(callback: AsyncCallback\<bundle.DisplayOrientation>): void
+
+Obtains the display orientation of this ability. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | Yes  | Callback used to return the display orientation.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.getDisplayOrientation()
+```
+
+## Context.getDisplayOrientation<sup>7+</sup>
+
+getDisplayOrientation(): Promise\<bundle.DisplayOrientation>;
+
+Obtains the display orientation of this ability. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Return value**
+
+| Type            | Description                     |
+| ---------------- | ------------------------- |
+| Promise\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | Promise used to return the display orientation.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.getDisplayOrientation().then((data) => {
+    console.info("=======================>getDisplayOrientationCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setDisplayOrientation<sup>7+</sup>
+
+setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCallback\<void>): void
+
+Obtains the display orientation for this ability. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| orientation |  [bundle.DisplayOrientation](js-apis-bundle.md#displayorientation) | Yes  | Display orientation to set.|
+| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | Yes  | Callback used to return the display orientation.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+import bundle from '@ohos.bundle'
+var context = featureAbility.getContext();
+var orientation=bundle.DisplayOrientation.UNSPECIFIED
+context.setDisplayOrientation(orientation, (err) => {
+    console.log('---------- setDisplayOrientation fail, err: -----------', err);
+});
+```
+
+## Context.setDisplayOrientation<sup>7+</sup>
+
+setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\<void>;
+
+Obtains the display orientation for this ability. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Return value**
+
+| Type            | Description                     |
+| ---------------- | ------------------------- |
+| orientation |  [bundle.DisplayOrientation](js-apis-bundle.md#displayorientation) | Yes  | Display orientation to set.|
+| Promise\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | Promise used to return the display orientation.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+import bundle from '@ohos.bundle'
+var context = featureAbility.getContext();
+var orientation=bundle.DisplayOrientation.UNSPECIFIED
+context.setDisplayOrientation(orientation).then((data) => {
+    console.info("=======================>setDisplayOrientationCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setShowOnLockScreen<sup>7+</sup>
+
+setShowOnLockScreen(show: boolean, callback: AsyncCallback\<void>): void
+
+Sets whether to show this feature at the top of the lock screen each time the lock screen is displayed so that the feature remains activated. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| show |  boolean | Yes  | Whether to show this feature at the top of the lock screen. The value **true** means to show this feature at the top of the lock screen, and **false** means the opposite.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var show=true
+context.setShowOnLockScreen(show, (err) => {
+       console.log('---------- setShowOnLockScreen fail, err: -----------', err);
+});
+```
+
+## Context.setShowOnLockScreen<sup>7+</sup>
+
+setShowOnLockScreen(show: boolean): Promise\<void>;
+
+Sets whether to show this feature at the top of the lock screen each time the lock screen is displayed so that the feature remains activated. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| show |  boolean | Yes  | Whether to show this feature at the top of the lock screen. The value **true** means to show this feature at the top of the lock screen, and **false** means the opposite.|
+
+**Return value**
+
+| Type            | Description                     |
+| ---------------- | ------------------------- |
+|  Promise\<void>| Promise used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var show=true
+context.setShowOnLockScreen(show).then((data) => {
+    console.info("=======================>setShowOnLockScreenCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setWakeUpScreen<sup>7+</sup>
+
+setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\<void>): void
+
+Sets whether to wake up the screen when this feature is restored. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| wakeUp |  boolean | Yes  | Whether to wake up the screen. The value **true** means to wake up the screen, and **false** means the opposite.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var wakeUp=true
+context.setWakeUpScreen(wakeUp, (err) => {
+       console.log('---------- setWakeUpScreen fail, err: -----------', err);
+});
+```
+
+## Context.setWakeUpScreen<sup>7+</sup>
+
+setWakeUpScreen(wakeUp: boolean): Promise\<void>; 
+
+Sets whether to wake up the screen when this feature is restored. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                         |
+| -------- | ---------------------- | ---- | ----------------------------- |
+| wakeUp |  boolean | Yes  | Whether to wake up the screen. The value **true** means to wake up the screen, and **false** means the opposite.|
+
+**Return value**
+
+| Type            | Description                     |
+| ---------------- | ------------------------- |
+|  Promise\<void>| Promise used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var wakeUp=true
+context.setWakeUpScreen(wakeUp).then((data) => {
+    console.info("=======================>setWakeUpScreenCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+
 
 
 ## Context.getProcessInfo<sup>7+</sup>
@@ -357,7 +573,7 @@ context.getProcessInfo().then((data) => {
 
 getElementName(callback: AsyncCallback\<ElementName>): void
 
-Obtains the **ohos.bundle.ElementName** object of the current ability. This API uses an asynchronous callback to return the result.
+Obtains the **ohos.bundle.ElementName** object of this ability. This API uses an asynchronous callback to return the result.
 
 This API is available only to Page abilities.
 
@@ -383,7 +599,7 @@ context.getElementName()
 
 getElementName(): Promise\<ElementName>
 
-Obtains the **ohos.bundle.ElementName** object of the current ability. This API uses a promise to return the result.
+Obtains the **ohos.bundle.ElementName** object of this ability. This API uses a promise to return the result.
 
 This API is available only to Page abilities.
 
@@ -510,7 +726,7 @@ context.getCallingBundle().then((data) => {
 
 getCacheDir(callback: AsyncCallback\<string>): void
 
-Obtains the cache directory of the application on the internal storage. This API uses an asynchronous callback to return the result.
+Obtains the cache directory of the application in the internal storage. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -538,7 +754,7 @@ context.getCacheDir((err, data) => {
 
 getCacheDir(): Promise\<string>
 
-Obtains the cache directory of the application on the internal storage. This API uses a promise to return the result.
+Obtains the cache directory of the application in the internal storage. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -563,7 +779,7 @@ context.getCacheDir().then((data) => {
 
 getFilesDir(callback: AsyncCallback\<string>): void
 
-Obtains the file directory of the application on the internal storage. This API uses an asynchronous callback to return the result.
+Obtains the file directory of the application in the internal storage. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -591,7 +807,7 @@ context.getFilesDir((err, data) => {
 
 getFilesDir(): Promise\<string>
 
-Obtains the file directory of the application on the internal storage. This API uses a promise to return the result.
+Obtains the file directory of the application in the internal storage. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -732,7 +948,7 @@ Obtains the **ModuleInfo** object of the application. This API uses an asynchron
 
 | Name    | Type                  | Mandatory| Description                     |
 | -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<[HapModuleInfo](#hapmoduleinfo)> | Yes  | Callback used to return the **ModuleInfo** object.|
+| callback | AsyncCallback\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | Yes  | Callback used to return the **ModuleInfo** object.|
 
 **Example**
 
@@ -760,7 +976,7 @@ Obtains the **ModuleInfo** object of the application. This API uses a promise to
 
 | Type           | Description                     |
 | --------------- | ------------------------- |
-| Promise\<[HapModuleInfo](#hapmoduleinfo)> | Promise used to return the **ModuleInfo** object.|
+| Promise\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | Promise used to return the **ModuleInfo** object.|
 
 **Example**
 
@@ -774,9 +990,9 @@ context.getHapModuleInfo().then((data) => {
 
 ## Context.getAppVersionInfo<sup>7+</sup>
 
-getAppVersionInfo(callback: AsyncCallback\<HapModuleInfo>): void
+getAppVersionInfo(callback: AsyncCallback\<AppVersionInfo>): void
 
-Obtains the version information of the application. This API uses an asynchronous callback to return the result.
+Obtains the version information of this application. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -804,7 +1020,7 @@ context.getAppVersionInfo((err, data) => {
 
 getAppVersionInfo(): Promise\<AppVersionInfo>
 
-Obtains the version information of the application. This API uses a promise to return the result.
+Obtains the version information of this application. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -828,7 +1044,7 @@ context.getAppVersionInfo().then((data) => {
 
 getAbilityInfo(callback: AsyncCallback\<AbilityInfo>): void
 
-Obtains information of the current ability. This API uses an asynchronous callback to return the result.
+Obtains information about this ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -856,7 +1072,7 @@ context.getAbilityInfo((err, data) => {
 
 getAbilityInfo(): Promise\<AbilityInfo>
 
-Obtains information of the current ability. This API uses a promise to return the result.
+Obtains information about this ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -897,6 +1113,111 @@ import featureAbility from '@ohos.ability.featureAbility'
 var context = featureAbility.getContext().getApplicationContext();
 ```
 
+## Context.isUpdatingConfigurations<sup>7+</sup>
+
+isUpdatingConfigurations(callback: AsyncCallback\<boolean>): void;
+
+Checks whether the configuration of this ability is being changed. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                     |
+| -------- | ---------------------- | ---- | ------------------------- |
+| callback | AsyncCallback\<boolean> | Yes  | Returns **true** if the configuration of the capability is being changed; returns **false** otherwise.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.isUpdatingConfigurations((err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. Data:' + JSON.stringify(data));
+});
+```
+
+## Context.isUpdatingConfigurations<sup>7+</sup>
+
+isUpdatingConfigurations(): Promise\<boolean>;
+
+Checks whether the configuration of this ability is being changed. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Return value**
+
+| Type           | Description                     |
+| --------------- | ------------------------- |
+|Promise\<boolean> | Returns **true** if the configuration of the capability is being changed; returns **false** otherwise.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.isUpdatingConfigurations().then((data) => {
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.printDrawnCompleted<sup>7+</sup>
+
+printDrawnCompleted(callback: AsyncCallback\<void>): void;
+
+Notifies the system of the time required to draw this page function. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                     |
+| -------- | ---------------------- | ---- | ------------------------- |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.printDrawnCompleted((err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. Data:' + JSON.stringify(data));
+});
+```
+
+## Context.printDrawnCompleted<sup>7+</sup>
+
+printDrawnCompleted(): Promise\<void>;
+
+Notifies the system of the time required to draw this page function. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Return value**
+
+| Type           | Description                     |
+| --------------- | ------------------------- |
+|Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.printDrawnCompleted().then((data) => {
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+
 ## PermissionOptions<sup>7+</sup>
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
@@ -916,31 +1237,10 @@ var context = featureAbility.getContext().getApplicationContext();
 | permissions | Read-only    | Array\<string> | Yes  | Permissions requested.    |
 | authResults | Read-only    | Array\<number> | Yes  | Permission request result.   |
 
-## HapModuleInfo<sup>7+</sup>
-
-Describes the HAP module information.
-
-| Name              | Type| Readable| Writable| Description|
-| ------ | ------ | ------ | ------ | ------ |
-| name             | string        | Yes  | No  | Module name.          |
-| description      | string        | Yes  | No  | Module description.      |
-| descriptionId    | number        | Yes  | No  | Module description ID.        |
-| icon             | string        | Yes  | No  | Module icon.          |
-| label            | string        | Yes  | No  | Module label.          |
-| labelId          | number        | Yes  | No  | Module label ID.        |
-| iconId           | number        | Yes  | No  | Module icon ID.        |
-| backgroundImg    | string        | Yes  | No  | Module background image.      |
-| supportedModes   | number        | Yes  | No  | Running modes supported by the module.    |
-| reqCapabilities  | Array\<string> | Yes  | No  | Capabilities required for module running.|
-| deviceTypes      | Array\<string> | Yes  | No  | Device types supported by the module.|
-| abilityInfo      | Array\<AbilityInfo> | Yes  | No  | Ability information. |
-| moduleName       | string        | Yes  | No  | Module name.            |
-| mainAbilityName  | string        | Yes  | No  | Name of the main ability.   |
-| installationFree | boolean       | Yes  | No  | Whether installation-free is supported.    |
-| mainElementName | string | Yes| No| Information about the main ability.|
-
 ## AppVersionInfo<sup>7+</sup>
 
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
 | Name            | Type| Readable   | Writable  | Description|
 | ------          | ------ | ------| ------ | ------    |
 | appName         | string | Yes   | No    | Module name.     |
diff --git a/en/application-dev/reference/apis/js-apis-DataUriUtils.md b/en/application-dev/reference/apis/js-apis-DataUriUtils.md
index 584b7e1285c0087bc1109bd32d50eb1143360df1..18cfa0cdc0c54ea8e8aa85fc43fcf61b3d63fc7a 100644
--- a/en/application-dev/reference/apis/js-apis-DataUriUtils.md
+++ b/en/application-dev/reference/apis/js-apis-DataUriUtils.md
@@ -1,4 +1,6 @@
-# DataUriUtils Module
+# DataUriUtils
+
+The **DataUriUtils** module provides APIs to handle utility classes for objects using the **DataAbilityHelper** schema. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI.
 
 > **NOTE**
 > 
diff --git a/en/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md b/en/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md
index 5b7866478f7f527ceb806b2aec083bd21835800a..06cac3878b46d62fdc09e6a342bdcc9340714c4f 100644
--- a/en/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md
+++ b/en/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md
@@ -1,18 +1,22 @@
-# EnterpriseAdminExtentionAbility
+# EnterpriseAdminExtensionAbility
 
-The **EnterpriseAdminExtentionAbility** module provides APIs for Extension abilities of enterprise administrators.
+The **EnterpriseAdminExtensionAbility** module provides Extension abilities for enterprise administrators.
+
+To have the capabilities provided by the module, for example, receiving the application activation or deactivation notification sent by the system, an enterprise administrator application must have an **EnterpriseAdminExtensionAbility** instance and override the APIs in it.
 
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> 
 > The APIs of this module can be used only in the stage model.
+
 ## Modules to Import
 
 ```ts
-import EnterpriseAdminExtentionAbility from '@ohos.EnterpriseAdminExtentionAbility'
+import EnterpriseAdminExtensionAbility from '@ohos.EnterpriseAdminExtensionAbility'
 ```
 
-## EnterpriseAdminExtentionAbility.onAdminEnabled
+## EnterpriseAdminExtensionAbility.onAdminEnabled
 
 onAdminEnabled(): void
 
@@ -22,14 +26,14 @@ Called when an enterprise administrator is enabled.
 
 **Example**
 
-  ```ts
+```ts
 export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
-    onAdminEnabled() {
-    }
+  onAdminEnabled() {
+  }
 };
-  ```
+```
 
-## EnterpriseAdminExtentionAbility.onAdminDisabled
+## EnterpriseAdminExtensionAbility.onAdminDisabled
 
 onAdminDisabled(): void
 
@@ -38,11 +42,10 @@ Called when an enterprise administrator is disabled.
 **System capability**: SystemCapability.Customization.EnterpriseDeviceManager
 
 **Example**
-    
 
-  ```ts
+```ts
 export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
-    onAdminDisabled() {
-    }
+  onAdminDisabled() {
+  }
 };
-  ```
+```
diff --git a/en/application-dev/reference/apis/js-apis-ability-context.md b/en/application-dev/reference/apis/js-apis-ability-context.md
index b858d93cbd061d4f1df583ac9d4045e152105b7a..e2333a523a918e229c6a35c4e341df9383bfb26a 100644
--- a/en/application-dev/reference/apis/js-apis-ability-context.md
+++ b/en/application-dev/reference/apis/js-apis-ability-context.md
@@ -1,17 +1,14 @@
 # AbilityContext
 
+The **AbilityContext** module, inherited from **Context**, implements the context for abilities.
+
+This module provides APIs for accessing ability-specific resources. You can use the APIs to start and terminate an ability, obtain the caller interface, and request permissions from users by displaying a pop-up window.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.  
 > The APIs of this module can be used only in the stage model.
 
-Implements the ability context. This module is inherited from **Context**.
-
-## Modules to Import
-
-```js
-import Ability from '@ohos.application.Ability'
-```
 ## Usage
 
 Before using the **AbilityContext** module, you must define a child class that inherits from **Ability**.
@@ -25,7 +22,6 @@ class MainAbility extends Ability {
 }
 ```
 
-
 ## Attributes
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
@@ -34,16 +30,18 @@ class MainAbility extends Ability {
 | -------- | -------- | -------- | -------- | -------- |
 | abilityInfo | AbilityInfo | Yes| No| Ability information.|
 | currentHapModuleInfo | HapModuleInfo | Yes| No| Information about the current HAP.|
-
+| config | [Configuration](js-apis-configuration.md) | Yes| No| Configuration information.|
 
 ## AbilityContext.startAbility
 
 startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
 
-Starts an ability. This API uses a callback to return the result.
+Starts an ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name| Type| Mandatory| Description|
@@ -69,10 +67,12 @@ Starts an ability. This API uses a callback to return the result.
 
 startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&gt;): void
 
-Starts an ability. This API uses a callback to return the result.
+Starts an ability with start options specified. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name| Type| Mandatory| Description|
@@ -106,6 +106,8 @@ Starts an ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name| Type| Mandatory| Description|
@@ -143,7 +145,7 @@ Starts an ability. This API uses a promise to return the result.
 
 startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;): void;
 
-Starts an ability. This API uses a callback to return the result when the ability is terminated.
+Starts an ability. This API uses an asynchronous callback to return the result when the ability is terminated.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -171,7 +173,7 @@ Starts an ability. This API uses a callback to return the result when the abilit
 
 startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback&lt;AbilityResult&gt;): void;
 
-Starts an ability. This API uses a callback to return the result when the ability is terminated.
+Starts an ability with start options specified. This API uses an asynchronous callback to return the result when the ability is terminated.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -235,12 +237,134 @@ Starts an ability. This API uses a promise to return the result when the ability
   })
   ```
 
+## AbilityContext.startAbilityForResultWithAccount
+
+startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback<AbilityResult>): void;
+
+Starts an ability. This API uses an asynchronous callback to return the result when the account of the ability is destroyed.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| callback | AsyncCallback\<AbilityResult\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startAbilityWithAccount(want, accountId, (err, data) => {
+    console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+    console.log('---------- startAbilityWithAccount success, data:  -----------', data);
+  });
+  ```
+
+
+## AbilityContext.startAbilityForResultWithAccount
+
+startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void\>): void;
+
+Starts an ability with start options specified. This API uses an asynchronous callback to return the result when the account of the ability is destroyed.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | Yes| Parameters used for starting the ability.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityForResultWithAccount(want, accountId, options, (err) => {
+    console.log('---------- startAbilityForResultWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+
+  ## AbilityContext.startAbilityForResultWithAccount
+
+startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<AbilityResult\>;
+
+Starts an ability with start options specified. This API uses a promise to return the result when the account of the ability is destroyed.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | No| Parameters used for starting the ability.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;AbilityResult&gt; | Promise used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityForResultWithAccount(want, accountId, options)
+    .then((data) => {
+        console.log('---------- startAbilityForResultWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startAbilityForResultWithAccount fail, err:  -----------', err);
+    })
+  ```
+
 
 ## AbilityContext.terminateSelf
 
 terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
 
-Terminates this ability. This API uses a callback to return the result.
+Terminates this ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -248,7 +372,7 @@ Terminates this ability. This API uses a callback to return the result.
 
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result indicating whether the API is successfully called.|
+| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
 
 **Example**
 
@@ -271,12 +395,12 @@ Terminates this ability. This API uses a promise to return the result.
 
 | Type| Description|
 | -------- | -------- |
-| Promise&lt;void&gt; | Promise used to return the result indicating whether the API is successfully called.|
+| Promise&lt;void&gt; | Promise used to return the result.|
 
 **Example**
 
   ```js
-  this.context.terminateSelf(want).then((data) => {
+  this.context.terminateSelf().then((data) => {
       console.log('success:' + JSON.stringify(data));
   }).catch((error) => {
       console.log('failed:' + JSON.stringify(error));
@@ -288,7 +412,7 @@ Terminates this ability. This API uses a promise to return the result.
 
 terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;void&gt;): void;
 
-Terminates this ability. This API uses a callback to return the information to the caller of **startAbilityForResult**.
+Terminates this ability. This API uses an asynchronous callback to return the information to the caller of **startAbilityForResult**.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -346,6 +470,149 @@ Terminates this ability. This API uses a promise to return information to the ca
   )
   ```
 
+## AbilityContext.connectAbility
+
+connectAbility(want: Want, options: ConnectOptions): number;
+
+Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to another ability.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| options | [ConnectOptions](js-apis-featureAbility.md#connectoptions) | No| Remote object instance.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| number | Result code of the ability connection.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var options = {
+    onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
+    onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
+    onFailed(code) { console.log('----------- onFailed -----------') }
+  }
+  const result = this.context.connectAbility(want, options);
+  console.log('----------- connectAbilityResult: ------------', result);
+  ```
+
+
+## AbilityContext.connectAbilityWithAccount
+
+connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
+
+Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect this ability to another ability.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [ConnectOptions](js-apis-featureAbility.md#connectoptions) | No| Parameters for the connection.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| number | Result code of the ability connection.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
+    onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
+    onFailed(code) { console.log('----------- onFailed -----------') }
+  }
+  const result = this.context.connectAbilityWithAccount(want, accountId, options);
+  console.log('----------- connectAbilityResult: ------------', result);
+  ```
+
+## AbilityContext.disconnectAbility
+
+disconnectAbility(connection: number): Promise\<void>;
+
+Disconnects a connection. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| connection | number | Yes| Result code of the ability connection.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+    
+  ```js
+  var connectionNumber = 0;
+  this.context.disconnectAbility(connectionNumber).then((data) => {
+       console.log('disconnectAbility success, data: ', data);
+  }).catch((err) => {
+       console.log('disconnectAbility fail, err: ', err);
+  });
+  ```
+
+## AbilityContext.disconnectAbility
+
+disconnectAbility(connection: number, callback:AsyncCallback\<void>): void;
+
+Disconnects a connection. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| connection | number | Yes| Result code of the ability connection.|
+| callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+    var connectionNumber = 0;
+    this.context.disconnectAbility(connectionNumber, (err) => {
+       console.log('---------- disconnectAbility fail, err: -----------', err);
+    });
+  ```
 
 ## AbilityContext.startAbilityByCall
 
@@ -388,12 +655,126 @@ Obtains the caller interface of the specified ability, and if the specified abil
   }
   ```
 
+## AbilityContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void\>): void;
+
+Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startAbilityWithAccount(want, accountId, (err) => {
+    console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+
+## AbilityContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void\>): void;
+
+Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | No| Parameters used for starting the ability.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityWithAccount(want, accountId, options, (err) => {
+    console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+
+## AbilityContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void\>;
+
+Starts an ability with the account ID specified. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | No| Parameters used for starting the ability.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityWithAccount(want, accountId, options)
+    .then((data) => {
+        console.log('---------- startAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
 
 ## AbilityContext.requestPermissionsFromUser
 
 requestPermissionsFromUser(permissions: Array&lt;string&gt;, requestCallback: AsyncCallback&lt;PermissionRequestResult&gt;) : void;
 
-Requests permissions from the user by displaying a pop-up window. This API uses a callback to return the result.
+Requests permissions from the user by displaying a pop-up window. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -402,7 +783,7 @@ Requests permissions from the user by displaying a pop-up window. This API uses
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | permissions | Array&lt;string&gt; | Yes| Permissions to request.|
-| callback | AsyncCallback&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | Yes| Callback used to return the result indicating whether the API is successfully called.|
+| callback | AsyncCallback&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | Yes| Callback used to return the permission request result.|
 
 **Example**
     
@@ -433,7 +814,7 @@ Requests permissions from the user by displaying a pop-up window. This API uses
 
 | Type| Description|
 | -------- | -------- |
-| Promise&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | Promise used to return the result indicating whether the API is successfully called.|
+| Promise&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | Promise used to return the permission request result.|
 
 **Example**
     
@@ -452,7 +833,7 @@ Requests permissions from the user by displaying a pop-up window. This API uses
 
 setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void;
 
-Sets the label of the ability in the mission. This API uses an asynchronous callback to return the result.
+Sets a label for this ability in the mission. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -461,7 +842,7 @@ Sets the label of the ability in the mission. This API uses an asynchronous call
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | label | string | Yes| Label of the ability to set.|
-| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result indicating whether the API is successfully called.|
+| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
 
 **Example**
     
@@ -476,7 +857,7 @@ Sets the label of the ability in the mission. This API uses an asynchronous call
 
 setMissionLabel(label: string): Promise&lt;void&gt;
 
-Sets the label of the ability in the mission. This API uses a promise to return the result.
+Sets a label for this ability in the mission. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -490,7 +871,7 @@ Sets the label of the ability in the mission. This API uses a promise to return
 
 | Type| Description|
 | -------- | -------- |
-| Promise&lt;void&gt; | Promise used to return the result indicating whether the API is successfully called.|
+| Promise&lt;void&gt; | Promise used to return the result.|
 
 **Example**
     
@@ -501,6 +882,117 @@ Sets the label of the ability in the mission. This API uses a promise to return
       console.log('failed:' + JSON.stringify(error));
   });
   ```
+## AbilityContext.setMissionIcon
+
+setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\<void>): void;
+
+Sets an icon for this ability in the mission. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| icon | image.PixelMap | Yes| Icon of the ability to set.|
+| callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+    
+  ```js
+    import image from '@ohos.multimedia.image'
+    var imagePixelMap;
+    var color = new ArrayBuffer(0);
+    var initializationOptions = {
+       size: {
+           height: 100,
+           width: 100
+       }
+    };
+    image.createPixelMap(color, initializationOptions)
+       .then((data) => {
+           imagePixelMap = data;
+       })
+       .catch((err) => {
+           console.log('--------- createPixelMap fail, err: ---------', err)
+       });
+    this.context.setMissionIcon(imagePixelMap, (err) => {
+       console.log('---------- setMissionIcon fail, err: -----------', err);
+    })
+  ```
+
+
+## AbilityContext.setMissionIcon
+
+setMissionIcon(icon: image.PixelMap): Promise\<void>;
+
+Sets an icon for this ability in the mission. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| icon | image.PixelMap | Yes| Icon of the ability to set.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;void&gt; | Promise used to return the result.|
+
+**Example**
+    
+  ```js
+    import image from '@ohos.multimedia.image'
+    var imagePixelMap;
+    var color = new ArrayBuffer(0);
+    var initializationOptions = {
+      size: {
+          height: 100,
+          width: 100
+      }
+    };
+    image.createPixelMap(color, initializationOptions)
+      .then((data) => {
+          imagePixelMap = data;
+      })
+      .catch((err) => {
+          console.log('--------- createPixelMap fail, err: ---------', err)
+      });
+    this.context.setMissionIcon(imagePixelMap)
+      .then((data) => {
+          console.log('-------------- setMissionIcon success, data: -------------', data);
+      })
+      .catch((err) => {
+          console.log('-------------- setMissionIcon fail, err: -------------', err);
+      });
+  ```
+## AbilityContext.restoreWindowStage
+
+restoreWindowStage(localStorage: LocalStorage) : void;
+
+Restores the window stage data for this ability.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| localStorage | image.LocalStorage | Yes| Storage used to store the restored window stage.|
+
+**Example**
+
+  ```js
+    var storage = new LocalStorage();
+    this.context.restoreWindowStage(storage);
+  ```
 
 ## AbilityContext.isTerminating
 
diff --git a/en/application-dev/reference/apis/js-apis-ability-errorCode.md b/en/application-dev/reference/apis/js-apis-ability-errorCode.md
index cc0197f022957aadb0dd784c1d4ae8c6e0c50005..6a131521d3c447cfb2df65b53a592c5be89678be 100644
--- a/en/application-dev/reference/apis/js-apis-ability-errorCode.md
+++ b/en/application-dev/reference/apis/js-apis-ability-errorCode.md
@@ -1,8 +1,10 @@
 # ErrorCode
 
+The **ErrorCode** module defines the error codes that can be used when the ability is started. 
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Modules to Import
 
@@ -12,7 +14,7 @@ import errorCode from '@ohos.ability.errorCode'
 
 ## ErrorCode
 
-Defines the error code used when the ability is started.
+Defines the error codes used when the ability is started.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
diff --git a/en/application-dev/reference/apis/js-apis-ability-wantConstant.md b/en/application-dev/reference/apis/js-apis-ability-wantConstant.md
index e1d57d47b1b77f1695f8ec79ac49bfbb22422d05..c2bb08c5314a44dcf6f4ad9246e6ee08a313ecd8 100644
--- a/en/application-dev/reference/apis/js-apis-ability-wantConstant.md
+++ b/en/application-dev/reference/apis/js-apis-ability-wantConstant.md
@@ -1,8 +1,10 @@
 # wantConstant
 
+The **wantConstant** module provides the action, entity, and flags used in **Want** objects.
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The initial APIs of this module are supported since API 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Modules to Import
 
@@ -12,73 +14,75 @@ import wantConstant from '@ohos.ability.wantConstant'
 
 ## wantConstant.Action
 
-**System capability**: SystemCapability.Ability.AbilityBase
+Enumerates the action constants of the **Want** object.
 
-Lists the permissions.
+**System capability**: SystemCapability.Ability.AbilityBase
 
-| Common Event Macro     | Common Event Name         | Subscriber Permission    |
+| Name     | Value         | Description    |
 | ------------ | ------------------ | ---------------------- |
-| ACTION_HOME                                 | ohos.want.action.home                    | None                                                          |
-| ACTION_DIAL                                 | ohos.want.action.dial                    | None                                                          |
-| ACTION_SEARCH                               | ohos.want.action.search                  | None                                                          |
-| ACTION_WIRELESS_SETTINGS                    | ohos.settings.wireless                   | None                                                          |
-| ACTION_MANAGE_APPLICATIONS_SETTINGS         | ohos.settings.manage.applications        | None                                                          |
-| ACTION_APPLICATION_DETAILS_SETTINGS         | ohos.settings.application.details        | None                                                          |
-| ACTION_SET_ALARM                            | ohos.want.action.setAlarm                | None                                                          |
-| ACTION_SHOW_ALARMS                          | ohos.want.action.showAlarms              | None                                                          |
-| ACTION_SNOOZE_ALARM                         | ohos.want.action.snoozeAlarm             | None                                                          |
-| ACTION_DISMISS_ALARM                        | ohos.want.action.dismissAlarm            | None                                                          |
-| ACTION_DISMISS_TIMER                        | ohos.want.action.dismissTimer            | None                                                          |
-|  ACTION_SEND_SMS                            | ohos.want.action.sendSms                 | None                                                          |
-| ACTION_CHOOSE                               | ohos.want.action.choose                  | None                                                          |
-| ACTION_IMAGE_CAPTURE<sup>8+</sup>           | ohos.want.action.imageCapture            | None                                                          |
-| ACTION_VIDEO_CAPTUR<sup>8+</sup>            | ohos.want.action.videoCapture            | None                                                          |
-| ACTION_SELECT                               | ohos.want.action.select                  | None                                                          |
-| ACTION_SEND_DATA                            | ohos.want.action.sendData                | None                                                          |
-| ACTION_SEND_MULTIPLE_DATA                   | ohos.want.action.sendMultipleData        | None                                                          |
-| ACTION_SCAN_MEDIA_FILE                      | ohos.want.action.scanMediaFile           | None                                                          |
-| ACTION_VIEW_DATA                            | ohos.want.action.viewData                | None                                                          |
-|  ACTION_EDIT_DATA                           | ohos.want.action.editData                | None                                                          |
-|  INTENT_PARAMS_INTENT                       | ability.want.params.INTENT               | None                                                          |
-|  INTENT_PARAMS_TITLE                        | ability.want.params.TITLE                | None                                                          |
-|  ACTION_FILE_SELECT<sup>7+</sup>            | ohos.action.fileSelect                   | None                                                          |
-|  PARAMS_STREAM<sup>7+</sup>                 | ability.params.stream                    | None                                                          |
-|  ACTION_APP_ACCOUNT_OAUTH <sup>8+</sup>     | ohos.account.appAccount.action.oauth     | None                                                          |
+| ACTION_HOME                                 | ohos.want.action.home                    | Action of returning to the home page.                                       |
+| ACTION_DIAL                                 | ohos.want.action.dial                    | Action of launching the numeric keypad.                          |
+| ACTION_SEARCH                               | ohos.want.action.search                  | Action of launching the search function.                                |
+| ACTION_WIRELESS_SETTINGS                    | ohos.settings.wireless                   | Action of launching the UI that provides radio network settings, for example, Wi-Fi option.   |
+| ACTION_MANAGE_APPLICATIONS_SETTINGS         | ohos.settings.manage.applications        | Action of launching the UI for managing installed applications.                 |
+| ACTION_APPLICATION_DETAILS_SETTINGS         | ohos.settings.application.details        | Action of launching the UI that displays the details of an application.            |
+| ACTION_SET_ALARM                            | ohos.want.action.setAlarm                | Action of launching the UI for setting the alarm clock.                         |
+| ACTION_SHOW_ALARMS                          | ohos.want.action.showAlarms              | Action of launching the UI that displays all clock alarms.                    |
+| ACTION_SNOOZE_ALARM                         | ohos.want.action.snoozeAlarm             | Action of launching the UI for snoozing an alarm.                      |
+| ACTION_DISMISS_ALARM                        | ohos.want.action.dismissAlarm            | Action of launching the UI for deleting an alarm.                            |
+| ACTION_DISMISS_TIMER                        | ohos.want.action.dismissTimer            | Action of launching the UI for dismissing a timer.                          |
+|  ACTION_SEND_SMS                            | ohos.want.action.sendSms                 | Action of launching the UI for sending an SMS.                             |
+| ACTION_CHOOSE                               | ohos.want.action.choose                  | Action of launching the UI for openning a contact or picture.                     |
+| ACTION_IMAGE_CAPTURE<sup>8+</sup>           | ohos.want.action.imageCapture            | Action of launching the UI for photographing.                                  |
+| ACTION_VIDEO_CAPTURE<sup>8+</sup>           | ohos.want.action.videoCapture            | Action of launching the UI for shooting a video.                            |
+| ACTION_SELECT                               | ohos.want.action.select                  | Action of launching the UI for application selection.                            |
+| ACTION_SEND_DATA                            | ohos.want.action.sendData                | Action of launching the UI for sending a single data record.                                 |
+| ACTION_SEND_MULTIPLE_DATA                   | ohos.want.action.sendMultipleData        | Action of launching the UI for sending multiple data records.                                 |
+| ACTION_SCAN_MEDIA_FILE                      | ohos.want.action.scanMediaFile           | Action of requesting a media scanner to scan a file and add the file to the media library.         |
+| ACTION_VIEW_DATA                            | ohos.want.action.viewData                | Action of viewing data.                                         |
+|  ACTION_EDIT_DATA                           | ohos.want.action.editData                | Action of editing data.                                          |
+|  INTENT_PARAMS_INTENT                       | ability.want.params.INTENT               | Action of displaying selection options with an action selector.                            |
+|  INTENT_PARAMS_TITLE                        | ability.want.params.TITLE                | Title of the character sequence dialog box used with the action selector.               |
+|  ACTION_FILE_SELECT<sup>7+</sup>            | ohos.action.fileSelect                   | Action of selecting a file.                                         |
+|  PARAMS_STREAM<sup>7+</sup>                 | ability.params.stream                    | URI of the data stream associated with the target when the data is sent.                         |
+|  ACTION_APP_ACCOUNT_OAUTH <sup>8+</sup>     | ohos.account.appAccount.action.oauth     | Action of providing the OAuth service.                                    |
+|  ACTION_MARKER_DOWNLOAD <sup>9+</sup>    | ohos.want.action.marketDownload     | Action of downloading an application from the application market.<br>**System API**: This is a system API and cannot be called by third-party applications. |
 
 
 ## wantConstant.Entity
 
-**System capability**: SystemCapability.Ability.AbilityBase
+Enumerates the entity constants of the **Want** object.
 
-Lists the permissions.
+**System capability**: SystemCapability.Ability.AbilityBase
 
-| Common Event Macro     | Common Event Name         | Subscriber Permission    |
+| Name     | Value         | Description    |
 | ------------ | ------------------ | ---------------------- |
-| ENTITY_DEFAULT                             | entity.system.default                    | None                                                          |
-| ENTITY_HOME                                | entity.system.homel                      | None                                                          |
-| ENTITY_VOICE                               | ENTITY_VOICE                             | None                                                          |
-| ENTITY_BROWSABLE                           | entity.system.browsable                  | None                                                          |
-| ENTITY_VIDEO                               | entity.system.video                      | None                                                          |
-| ACTION_APPLICATION_DETAILS_SETTINGS        | ohos.settings.application.details        | None                                                          |
+| ENTITY_DEFAULT                             | entity.system.default                    | Default entity. The default entity is used if no entity is specified.       |
+| ENTITY_HOME                                | entity.system.home                       | Home screen entity.                                   |
+| ENTITY_VOICE                               | entity.system.voice                      | Voice interaction entity.                                 |
+| ENTITY_BROWSABLE                           | entity.system.browsable                  | Browser type entity.                                   |
+| ENTITY_VIDEO                               | entity.system.video                      | Video type entity.                                     |
+
 
+## wantConstant.Flags
 
-## flags
+Describes flags.
 
 **System capability**: SystemCapability.Ability.AbilityBase
 
 | Name                                | Value      | Description                                                        |
 | ------------------------------------ | ---------- | ------------------------------------------------------------ |
 | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | Indicates the permission to read the URI.                                 |
-| FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | Indicates the permission to write the URI.                                 |
+| FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | Indicates the permission to write data to the URI.                                 |
 | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | Returns the result to the ability.                                          |
 | FLAG_ABILITY_CONTINUATION            | 0x00000008 | Indicates whether the ability on the local device can be continued on a remote device.                  |
 | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | Indicates that a component does not belong to OHOS.                                        |
 | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | Indicates that an ability is enabled.                                         |
-| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.                                    |
-| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | Indicates the permission to verify URIs by prefix matching.                                |
+| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.<br>**System API**: This is a system API and cannot be called by third-party applications. |
+| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | Indicates the permission to verify URIs by prefix matching.<br>**System API**: This is a system API and cannot be called by third-party applications.|
 | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | Supports cross-device startup in a distributed scheduler.                              |
 | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started.        |
-| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that ability continuation is reversible.                                            |
+| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that ability continuation is reversible.<br>**System API**: This is a system API and cannot be called by third-party applications.     |
 | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | Indicates that the specific ability will be installed if it has not been installed.                             |
 | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | Indicates that the specific ability will be installed in the background if it has not been installed.                             |
 | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | Clears other operation missions. This flag can be set for the **Want** object in the **startAbility** API passed to [ohos.app.Context](js-apis-ability-context.md) and must be used together with **flag_ABILITY_NEW_MISSION**.|
diff --git a/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
index 5a21d564110cdf922e344c52ded3bd8d44604b2f..2b17d252af9d09d5519f36ece4306834e8085c5a 100644
--- a/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
+++ b/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
@@ -1,6 +1,6 @@
 # Ability Access Control
 
-Provides program permission management capabilities, including authentication, authorization, and revocation.
+The **AbilityAccessCtrl** module provides APIs for application permission management, including authentication, authorization, and revocation.
 
 > **NOTE**
 >
@@ -69,6 +69,36 @@ promise.then(data => {
 });
 ```
 
+### verifyAccessTokenSync<sup>9+</sup>
+
+verifyAccessTokenSync(tokenID: number, permissionName: string): GrantStatus
+
+Checks whether an application has been granted the specified permission. This API synchronously returns the result.
+
+**System capability**: SystemCapability.Security.AccessToken
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                                      |
+| -------- | -------------------  | ---- | ------------------------------------------ |
+| tokenID   |  number   | Yes  | ID of the application.             |
+| permissionName | string | Yes  | Name of the permission to verify.|
+
+**Return value**
+
+| Type         | Description                               |
+| :------------ | :---------------------------------- |
+| [GrantStatus](#grantstatus) | Permission grant state.|
+
+**Example**
+
+```js
+var AtManager = abilityAccessCtrl.createAtManager();
+let tokenID = 0;
+let data = verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
+console.log(`data->${JSON.stringify(data)}`);
+```
+
 ### grantUserGrantedPermission
 
 grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;number&gt;
diff --git a/en/application-dev/reference/apis/js-apis-abilityDelegatorRegistry.md b/en/application-dev/reference/apis/js-apis-abilityDelegatorRegistry.md
index a609e0df688e7a9cc5b32ea25907eda95ab14c47..d30dce2a75e700019c9f44ce1c918a9574f3cea7 100644
--- a/en/application-dev/reference/apis/js-apis-abilityDelegatorRegistry.md
+++ b/en/application-dev/reference/apis/js-apis-abilityDelegatorRegistry.md
@@ -1,5 +1,7 @@
 # AbilityDelegatorRegistry
 
+The **AbilityDelegatorRegistry** module provides APIs for storing the global registers of the registered **AbilityDelegator** and **AbilityDelegatorArgs** objects. You can use the APIs to obtain the **AbilityDelegator** and **AbilityDelegatorArgs** objects of an application.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -24,8 +26,6 @@ Enumerates the ability lifecycle states.
 | BACKGROUND    | 3    | The ability is running in the background.  |
 | DESTROY       | 4    | The ability is destroyed.|
 
-
-
 ## AbilityDelegatorRegistry.getAbilityDelegator
 
 getAbilityDelegator(): AbilityDelegator
diff --git a/en/application-dev/reference/apis/js-apis-abilityrunninginfo.md b/en/application-dev/reference/apis/js-apis-abilityrunninginfo.md
index 508463e3a428fffe336de4ae2c986623fb54d3b1..098f4ebba840a13d1f37d6e14256fcc9695f2a8d 100644
--- a/en/application-dev/reference/apis/js-apis-abilityrunninginfo.md
+++ b/en/application-dev/reference/apis/js-apis-abilityrunninginfo.md
@@ -1,17 +1,11 @@
 # AbilityRunningInfo
 
+The **AbilityRunningInfo** module implements ability running information and ability states.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides ability running information.
-
-## Modules to Import
-
-```js
-import abilitymanager from '@ohos.application.abilityManager';
-```
-
 ## Usage
 
 The ability running information is obtained by using the **getAbilityRunningInfos** API in **abilityManager**.
@@ -27,26 +21,13 @@ abilitymanager.getAbilityRunningInfos((err,data) => {
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 | Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| ability | ElementName | Yes| No| Information that matches an ability. | 
-| pid | number | Yes| No| Process ID.| 
-| uid | number | Yes| No| User ID. | 
-| processName | string | Yes| No| Process name. | 
-| startTime | number | Yes| No| Ability start time. | 
-| abilityState | [abilityManager.AbilityState](#abilitymanagerabilitystate) | Yes| No| Ability state. | 
-
-
-## abilityManager.AbilityState
-
-Enumerates the ability states.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-| Name| Value| Description| 
-| -------- | -------- | -------- |
-| INITIAL | 0 | The ability is in the initial state.| 
-| FOREGROUND | 9 | The ability is in the foreground state. | 
-| BACKGROUND | 10 | The ability is in the background state. | 
-| FOREGROUNDING | 11 | The ability is in the foregrounding state. | 
-| BACKGROUNDING | 12 | The ability is in the backgrounding state. | 
+| ability | ElementName | Yes| No| Information that matches an ability. |
+| pid | number | Yes| No| Process ID.|
+| uid | number | Yes| No| User ID. |
+| processName | string | Yes| No| Process name. |
+| startTime | number | Yes| No| Ability start time. |
+| abilityState | [abilityManager.AbilityState](js-apis-application-abilityManager.md#abilitystate) | Yes| No| Ability state. |
diff --git a/en/application-dev/reference/apis/js-apis-abilitystagecontext.md b/en/application-dev/reference/apis/js-apis-abilitystagecontext.md
index 65705aae3936cc2c9e9643f6142be6de6564124b..5475dc51466d01d8eadef472248cce237f1b6241 100644
--- a/en/application-dev/reference/apis/js-apis-abilitystagecontext.md
+++ b/en/application-dev/reference/apis/js-apis-abilitystagecontext.md
@@ -1,18 +1,14 @@
 # AbilityStageContext
 
+The **AbilityStageContext** module, inherited from [Context](js-apis-application-context.md), implements the context of an ability stage.
+
+This module provides APIs for accessing a specific ability stage. You can use the APIs to obtain the **ModuleInfo** object and environment configuration of an ability stage.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Implements the context of an ability stage. This module is inherited from [Context](js-apis-application-context.md).
-
-## Modules to Import
-
-```js
-import AbilityStage from '@ohos.application.AbilityStage';
-```
-
 ## Usage
 
 The ability stage context is obtained through an **AbilityStage** instance.
diff --git a/en/application-dev/reference/apis/js-apis-accessibility.md b/en/application-dev/reference/apis/js-apis-accessibility.md
index 17ef631d0f7207b676177a59d0903cc77dcd1045..f9d286cbd34296fa43596032fe89f2ecdd6e5d93 100644
--- a/en/application-dev/reference/apis/js-apis-accessibility.md
+++ b/en/application-dev/reference/apis/js-apis-accessibility.md
@@ -1,6 +1,9 @@
 # Accessibility
 
-> **NOTE**<br>
+The **Accessibility** module implements the accessibility functions, including obtaining the accessibility application list, accessibility application enabled status, and captions configuration.
+
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Modules to Import
@@ -13,162 +16,162 @@ import accessibility from '@ohos.accessibility';
 
 Enumerates the states of an accessibility application.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
- | Name | Description |
- | -------- | -------- |
- | enable | The accessibility application is enabled. |
- | disable | The accessibility application is disabled. |
- | install | The accessibility application has been installed. |
+| Name| Description|
+| -------- | -------- |
+| enable | The accessibility application is enabled.|
+| disable | The accessibility application is disabled.|
+| install | The accessibility application has been installed.|
 
 ## AbilityType
 
 Enumerates the types of accessibility applications.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
- | Name | Description |
- | -------- | -------- |
- | audible | The accessibility application provides audible feedback. |
- | generic | The accessibility application provides generic feedback. |
- | haptic | The accessibility application provides haptic feedback. |
- | spoken | The accessibility application provides spoken feedback. |
- | visual | The accessibility application provides visual feedback. |
+| Name| Description|
+| -------- | -------- |
+| audible | The accessibility application provides audible feedback.|
+| generic | The accessibility application provides generic feedback.|
+| haptic | The accessibility application provides haptic feedback.|
+| spoken  | The accessibility application provides spoken feedback.|
+| visual | The accessibility application provides visual feedback.|
+| all<sup>9+</sup> | All the preceding types.|
 
 ## AccessibilityAbilityInfo
 
 Provides information about an accessibility application.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 ### Attributes
 
- | Name | Type | Readable | Writable | Description |
- | -------- | -------- | -------- | -------- | -------- |
- | id | number | Yes | No | Ability ID. |
- | name | string | Yes | No | Ability name. |
- | bundleName | string | Yes | No | Bundle name. |
- | abilityTypes | Array&lt;[AbilityType](#abilitytype)&gt; | Yes | No | Accessibility application type. |
- | capabilities | Array&lt;[Capability](#capability)&gt; | Yes | No | Capabilities list of the accessibility application. |
- | description | string | Yes | No | Description of the accessibility application. |
- | eventTypes | Array&lt;[EventType](#eventtype)&gt; | Yes | No | List of events that the accessibility application focuses on. |
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| id | number | Yes| No| Ability ID.|
+| name | string | Yes| No| Ability name.|
+| bundleName | string | Yes| No| Bundle name.|
+| targetBundleNames<sup>9+</sup> | Array&lt;string&gt; | Yes| No| Name of the target bundle.|
+| abilityTypes | Array&lt;[AbilityType](#abilitytype)&gt; | Yes| No| Accessibility application type.|
+| capabilities | Array&lt;[Capability](#capability)&gt; | Yes| No| Capabilities list of the accessibility application.|
+| description | string | Yes| No| Description of the accessibility application.|
+| eventTypes | Array&lt;[EventType](#eventtype)&gt; | Yes| No| List of events that the accessibility application focuses on.|
 
 ## Action
 
 Describes the target action supported by an accessibility application.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
-
- | Name | Description |
- | -------- | -------- |
- | click | Clicking. |
- | longClick | Long pressing. |
- | scrollForward | Scrolling forward. |
- | scrollBackward | Scrolling backward. |
- | focus | Obtaining focus. |
- | clearFocus | Clearing focus. |
- | clearSelection | Clearing selection. |
- | accessibilityFocus | Obtaining the accessibility focus. |
- | clearAccessibilityFocus | Clearing the accessibility focus. |
- | cut | Cut. |
- | copy | Copy. |
- | paste | Paste. |
- | select | Select. |
- | setText | Setting the text. |
- | delete | Delete. |
- | setSelection | Setting the selection. |
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
+
+| Name| Description|
+| -------- | -------- |
+| click | Clicking.|
+| longClick | Long pressing.|
+| scrollForward | Scrolling forward.|
+| scrollBackward | Scrolling backward.|
+| focus | Obtaining focus.|
+| clearFocus | Clearing focus.|
+| clearSelection | Clearing selection.|
+| accessibilityFocus | Obtaining the accessibility focus.|
+| clearAccessibilityFocus | Clearing the accessibility focus.|
+| cut | Cut.|
+| copy | Copy.|
+| paste | Paste.|
+| select | Select.|
+| setText | Setting the text.|
+| delete | Delete.|
+| setSelection | Setting the selection.|
 
 ## Capability
 
 Enumerates the capabilities of an auxiliary application.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
- | Name | Description |
- | -------- | -------- |
- | retrieve | Capability to retrieve the window content. |
- | touchGuide | Capability of touch guide mode. |
- | keyEventObserver | Capability to filter key events. |
- | zoom | Capability to control the display zoom level. |
- | gesture | Capability to perform gesture actions. |
+| Name| Description|
+| -------- | -------- |
+| retrieve | Capability to retrieve the window content.|
+| touchGuide | Capability of touch guide mode.|
+| keyEventObserver | Capability to filter key events.|
+| zoom | Capability to control the display zoom level.|
+| gesture | Capability to perform gesture actions.|
 
 ## CaptionsFontEdgeType<sup>8+</sup>
 
-Enumerates the caption font edge type.
+Enumerates the font edge types of captions.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
 
- | Name | Description |
- | -------- | -------- |
- | none | No effect. |
- | raised | Raised effect. |
- | depressed | Depressed effect. |
- | uniform | Uniform effect. |
- | dropShadow | Drop shadow effect. |
+| Name| Description|
+| -------- | -------- |
+| none | No effect.|
+| raised | Raised effect.|
+| depressed | Depressed effect.|
+| uniform | Uniform effect.|
+| dropShadow | Drop shadow effect.|
 
 ## CaptionsFontFamily<sup>8+</sup>
 
-Enumerates the caption font families.
+Enumerates the font families of captions.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
 
- | Name | Description |
- | -------- | -------- |
- | default | Default font family. |
- | monospacedSerif | Monospaced Serif fonts, which use the same width for each character. |
- | serif | Serif fonts. |
- | monospacedSansSerif | Monospaced Sans Serif fonts, which use the same width for each character. |
- | sansSerif | Sans Serif fonts. |
- | casual | Casual fonts. |
- | cursive | Cursive fonts. |
- | smallCapitals | Small caps fonts. |
+| Name| Description|
+| -------- | -------- |
+| default | Default font family.|
+| monospacedSerif | Monospaced Serif fonts, which use the same width for each character.|
+| serif | Serif fonts.|
+| monospacedSansSerif | Monospaced Sans Serif fonts, which use the same width for each character.|
+| sansSerif | Sans Serif fonts.|
+| casual | Casual fonts.|
+| cursive | Cursive fonts.|
+| smallCapitals | Small caps fonts.|
 
 ## CaptionsStyle<sup>8+</sup>
 
-Describes the caption style.
+Describes the style of captions.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
 
- | Name | Type | Readable | Writable | Description |
- | -------- | -------- | -------- | -------- | -------- |
- | fontFamily | [CaptionsFontFamily](#captionsfontfamily8) | Yes | No | Font family of the captions. |
- | fontScale | number | Yes | No | Font scale of the captions. |
- | fontColor | number \ | string | Yes | No | Font color of the captions. |
- | fontEdgeType | [CaptionsFontEdgeType](#captionsfontedgetype8) | Yes | No | Font edge type of the captions. |
- | backgroundColor | number \ | string | Yes | No | Background color of the captions. |
- | windowColor | number \ | string | Yes | No | Window color of the captions. |
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| fontFamily | [CaptionsFontFamily](#captionsfontfamily8) | Yes| No| Font family of captions.|
+| fontScale | number | Yes| No| Font scale of captions.|
+| fontColor | number \| string | Yes| No| Font color of captions.|
+| fontEdgeType | [CaptionsFontEdgeType](#captionsfontedgetype8) | Yes| No| Font edge type of captions.|
+| backgroundColor | number \| string | Yes| No| Background color of captions.|
+| windowColor | number \| string | Yes| No| Window color of captions.|
 
 ## CaptionsManager<sup>8+</sup>
 
-Implements caption configuration management.
+Implements configuration management for captions.
 
-### Attributes
+**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
 
- | Name | Type | Readable | Writable | Description |
- | -------- | -------- | -------- | -------- | -------- |
- | enabled | boolean | Yes | No | Whether to enable caption configuration. |
- | style | [CaptionsStyle](#captionsstyle8) | Yes | No | Caption style. |
+### Attributes
 
-### Methods
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| enabled | boolean | Yes| No| Whether to enable captions configuration.|
+| style | [CaptionsStyle](#captionsstyle8) | Yes| No| Style of captions.|
 
-In the following API examples, you must first use the [accessibility.getCaptionsManager()](#accessibilitygetcaptionsmanager8) method to obtain a **captionsManager** instance, and then call the methods using the obtained instance.
+In the following API examples, you must first use the [accessibility.getCaptionsManager()](#accessibilitygetcaptionsmanager8) API to obtain a **captionsManager** instance, and then call the methods using the obtained instance.
 
-#### on('enableChange')
+### on('enableChange')
 
 on(type: 'enableChange', callback: Callback&lt;boolean&gt;): void;
 
-Enables listening for enable status changes of caption configuration.
-
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+Enables listening for enabled status changes of captions configuration.
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type | string | Yes | Type of the event to listen for, which is set to **enableChange** in this API. |
- | callback | Callback&lt;boolean&gt; | Yes | Callback invoked when the enable status of caption configuration changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Type of the event to listen for, which is set to **enableChange** in this API.|
+  | callback | Callback&lt;boolean&gt; | Yes| Callback invoked when the enabled status of captions configuration changes.|
 
-- Example
+- **Example**
 
   ```typescript
   captionsManager.on('enableChange',(data) => {
@@ -176,22 +179,20 @@ Enables listening for enable status changes of caption configuration.
   })
   ```
 
-#### on('styleChange')
+### on('styleChange')
 
 on(type: 'styleChange', callback: Callback&lt;CaptionsStyle&gt;): void;
 
-Enables listening for caption style changes.
-
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+Enables listening for captions style changes.
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type | string | Yes | Type of the event to listen for, which is set to **styleChange** in this API. |
- | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | Yes | Callback invoked when the caption style changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Type of the event to listen for, which is set to **styleChange** in this API.|
+  | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | Yes| Callback invoked when the style of captions changes.|
 
-- Example
+- **Example**
 
   ```typescript
   captionsManager.on('styleChange',(data) => {
@@ -199,43 +200,39 @@ Enables listening for caption style changes.
   })
   ```
   
-#### off('enableChange')
+### off('enableChange')
 
 off(type: 'enableChange', callback?: Callback&lt;boolean&gt;): void;
 
-Disables listening for enable status changes of caption configuration.
-
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+Disables listening for enabled status changes of captions configuration.
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type | string | Yes | Type of the event to listen for, which is set to **enableChange** in this API. |
- | callback | Callback&lt;boolean&gt; | No | Callback invoked when the enable status of caption configuration changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Type of the event to listen for, which is set to **enableChange** in this API.|
+  | callback | Callback&lt;boolean&gt; | No| Callback invoked when the enabled status of captions configuration changes.|
 
-- Example
+- **Example**
 
   ```typescript
   captionsManager.off('enableChange')
   ```
 
-#### off('styleChange')
+### off('styleChange')
 
 off(type: 'styleChange', callback?: Callback&lt;CaptionsStyle&gt;): void;
 
-Disables listening for caption style changes.s is removed.
-
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+Disables listening for captions style changes.
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type | string | Yes | Type of the event to listen for, which is set to **styleChange** in this API. |
- | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | No | Callback invoked when the caption style changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Type of the event to listen for, which is set to **styleChange** in this API.|
+  | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | No| Callback invoked when the style of captions changes.|
 
-- Example
+- **Example**
 
   ```typescript
   captionsManager.off('styleChange')
@@ -245,80 +242,92 @@ Disables listening for caption style changes.s is removed.
 
 Describes a GUI change event.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 ### Attributes
 
- | Name | Type | Readable | Writable | Description |
- | -------- | -------- | -------- | -------- | -------- |
- | type | [EventType](#eventtype) | Yes | Yes | Accessibility event type. |
- | windowUpdateType | [WindowUpdateType](#windowupdatetype) | Yes | Yes | Window update type. |
- | bundleName | string | Yes | Yes | Target application name. |
- | componentType | string | Yes | Yes | Type of the event source component, for example, button or chart. |
- | pageId | number | Yes | Yes | Page ID of the event source. |
- | description | string | Yes | Yes | Event description. |
- | triggerAction | [Action](#action) | Yes | Yes | Action that triggers the event. |
- | textMoveUnit | [TextMoveUnit](#textmoveunit) | Yes | Yes | Text movement unit. |
- | contents | Array&lt;string&gt; | Yes | Yes | Array of contents. |
- | lastContent | string | Yes | Yes | Latest content. |
- | beginIndex | number | Yes | Yes | Sequence number of the first item displayed on the page. |
- | currentIndex | number | Yes | Yes | Sequence number of the current item. |
- | endIndex | number | Yes | Yes | Sequence number of the last item displayed on the page. |
- | itemCount | number | Yes | Yes | Total number of items. |
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| type | [EventType](#eventtype) | Yes| Yes| Accessibility event type.|
+| windowUpdateType | [WindowUpdateType](#windowupdatetype) | Yes| Yes| Window update type.|
+| bundleName | string | Yes| Yes| Target application name.|
+| componentType | string | Yes| Yes| Type of the event source component, for example, button or chart.|
+| pageId | number | Yes| Yes| Page ID of the event source.|
+| description | string | Yes| Yes| Event description.|
+| triggerAction | [Action](#action) | Yes| Yes| Action that triggers the event.|
+| textMoveUnit | [TextMoveUnit](#textmoveunit) | Yes| Yes| Text movement unit.|
+| contents | Array&lt;string&gt; | Yes| Yes| Array of contents.|
+| lastContent | string | Yes| Yes| Latest content.|
+| beginIndex | number | Yes| Yes| Sequence number of the first item displayed on the page.|
+| currentIndex | number | Yes| Yes| Sequence number of the current item.|
+| endIndex | number | Yes| Yes| Sequence number of the last item displayed on the page.|
+| itemCount | number | Yes| Yes| Total number of items.|
+
+### constructor
+
+constructor(jsonObject)
+
+Implements a constructor.
+
+- **Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | jsonObject | string | Yes| JSON string required for creating an object.|
+
+- **Example**
+
+  ```typescript
+  let eventInfo = new accessibility.EventInfo({"type":"click","bundleName":"com.example.MyApplication","triggerAction":"click"})
+  ```
 
 ## EventType
 
 Enumerates accessibility event types.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
-
- | Name | Description |
- | -------- | -------- |
- | click | Event of clicking a component. |
- | longClick | Event of long-pressing a component. |
- | select | Event of selecting a component. |
- | focus | Event indicating that the component obtains the focus. |
- | textUpdate | Event indicating that the component text has been updated. |
- | hoverEnter | Event indicating that the hover enters a component. |
- | hoverExit | Event indicating that the hover exits a component. |
- | scroll | Event of the scroll view. |
- | textSelectionUpdate | Event indicating that the selected text has been updated. |
- | accessibilityFocus | Event indicating that the accessibility focus has been obtained. |
- | accessibilityFocusClear | Event indicating that the accessibility focus has been cleared. |
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
+
+| Name| Description|
+| -------- | -------- |
+| click | Event of clicking a component.|
+| longClick | Event of long-pressing a component.|
+| select | Event of selecting a component.|
+| focus | Event indicating that the component obtains the focus.|
+| textUpdate | Event indicating that the component text has been updated.|
+| hoverEnter | Event indicating that the hover enters a component.|
+| hoverExit | Event indicating that the hover exits a component.|
+| scroll | Event of the scroll view.|
+| textSelectionUpdate | Event indicating that the selected text has been updated.|
+| accessibilityFocus | Event indicating that the accessibility focus has been obtained.|
+| accessibilityFocusClear | Event indicating that the accessibility focus has been cleared.|
 
 ## TextMoveUnit
 
 Enumerates the movement units for traversing the node text.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
- | Name | Description |
- | -------- | -------- |
- | char | The movement unit for traversing the node text is by character. |
- | word | The movement unit for traversing the node text is by word. |
- | line | The movement unit for traversing the node text is by line. |
- | page | The movement unit for traversing the node text is by page. |
- | paragraph | The movement unit for traversing the node text is by paragraph. |
+| Name| Description|
+| -------- | -------- |
+| char | The movement unit for traversing the node text is by character.|
+| word | The movement unit for traversing the node text is by word.|
+| line | The movement unit for traversing the node text is by line.|
+| page | The movement unit for traversing the node text is by page.|
+| paragraph | The movement unit for traversing the node text is by paragraph.|
 
 ## WindowUpdateType
 
 Enumerates window update types.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
-
- | Name | Description |
- | -------- | -------- |
- | add | Window adding. |
- | remove | Window deletion. |
- | title | Window title change. |
- | bounds | Window boundary change. |
- | layer | Window layer change. |
- | active | Window activity change. |
- | focus | Window focus change. |
- | accessibilityFocus | Window accessibility focus change. |
- | parent | Parent window change. |
- | children | Child window change. |
- | pip | Picture-in-picture (PIP) mode change. |
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
+
+| Name| Description|
+| -------- | -------- |
+| add | Window adding.|
+| remove | Window deletion.|
+| bounds | Window boundary change.|
+| active | Window activity change.|
+| focus | Window focus change.|
 
 ## accessibility.getAbilityLists
 
@@ -326,22 +335,22 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState): Promise&lt;A
 
 Obtains the accessibility application list. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | abilityType | [AbilityType](#abilitytype) | Yes | Accessibility application type. |
- | stateType | [AbilityState](#abilitystate) | Yes | Accessibility application status. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | abilityType | [AbilityType](#abilitytype) | Yes| Accessibility application type.|
+  | stateType | [AbilityState](#abilitystate) | Yes| Accessibility application status.|
 
-- Return value
+- **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | Promise&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | Promise used to return the accessibility application list. |
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | Promise used to return the accessibility application list.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.getAbilityLists("spoken", "enable")
@@ -369,17 +378,17 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: Asyn
 
 Obtains the accessibility application list. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | abilityType | [AbilityType](#abilitytype) | Yes | Accessibility application type. |
- | stateType | [AbilityState](#abilitystate) | Yes | Accessibility application status. |
- | callback | AsyncCallback&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | Yes | Callback used to return the accessibility application list. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | abilityType | [AbilityType](#abilitytype) | Yes| Accessibility application type.|
+  | stateType | [AbilityState](#abilitystate) | Yes| Accessibility application status.|
+  | callback | AsyncCallback&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | Yes| Callback used to return the accessibility application list.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.getAbilityLists("visual", "enable", (err, data) => {
@@ -406,17 +415,17 @@ Obtains the accessibility application list. This API uses an asynchronous callba
 
 getCaptionsManager(): CaptionsManager
 
-Obtains the accessibility caption configuration.
+Obtains the captions configuration.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Hearing
+**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
 
-- Return value
+- **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | [CaptionsManager](#captionsmanager8) | Accessibility caption configuration. |
+  | Type| Description|
+  | -------- | -------- |
+  | [CaptionsManager](#captionsmanager8) | Captions configuration.|
 
-- Example
+- **Example**
 
   ```typescript
   captionsManager = accessibility.getCaptionsManager()
@@ -430,12 +439,12 @@ Enables listening for the accessibility application or touch guide mode status c
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type | string | Yes | Type of the event to listen for.<br>-&nbsp;**accessibilityStateChange** means to listen for enable status changes of the accessibility application.<br>**System capability**: SystemCapability.Barrierfree.Accessibility.Core<br>-&nbsp;**touchGuideStateChange** means to listen for enable status changes of the touch guide mode.<br>**System capability**: SystemCapability.Barrierfree.Accessibility.Vision |
- | callback | Callback&lt;boolean&gt; | Yes | Callback invoked when the enable status changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Type of the event to listen for.<br>- **'accessibilityStateChange'** means to listen for enabled status changes of the accessibility application.<br>**System capability**: SystemCapability.BarrierFree.Accessibility.Core<br>- **'touchGuideStateChange'** means to listen for enabled status changes of the touch guide mode.<br>**System capability**: SystemCapability.BarrierFree.Accessibility.Vision|
+  | callback | Callback&lt;boolean&gt; | Yes| Callback invoked when the enabled status of captions configuration changes.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.on('accessibilityStateChange',(data) => { 
@@ -447,18 +456,16 @@ Enables listening for the accessibility application or touch guide mode status c
 
 off(type: 'accessibilityStateChange ' | 'touchGuideStateChange', callback?: Callback&lt;boolean&gt;): void
 
-Disables listening for the accessibility application or touch guide mode status changes.
-
- 
+Disables listening for the accessibility application or touch guide mode status changes. 
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | type |  string | No | Type of the event to listen for.<br>-&nbsp;**accessibilityStateChange** means to listen for enable status changes of the accessibility application.<br>**System capability**: SystemCapability.Barrierfree.Accessibility.Core<br>-&nbsp;**touchGuideStateChange** means to listen for enable status changes of the touch guide mode.<br>**System capability**: SystemCapability.Barrierfree.Accessibility.Vision |
- | callback | Callback&lt;boolean&gt; | No | Callback invoked when the enable status changes. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type |  string | No| Type of the event to listen for.<br>- **'accessibilityStateChange'** means to listen for enabled status changes of the accessibility application.<br>**System capability**: SystemCapability.BarrierFree.Accessibility.Core<br>- **'touchGuideStateChange'** means to listen for enabled status changes of the touch guide mode.<br>**System capability**: SystemCapability.BarrierFree.Accessibility.Vision|
+  | callback | Callback&lt;boolean&gt; | No| Callback invoked when the enabled status changes.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.off('accessibilityStateChange',(data) => {
@@ -472,15 +479,15 @@ isOpenAccessibility(): Promise&lt;boolean&gt;
 
 Checks whether accessibility is enabled. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
-- Return value
+- **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | Promise&lt;boolean&gt; | Returns **true** if accessibility is enabled; returns **false** otherwise. |
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;boolean&gt; | Returns **true** if accessibility is enabled; returns **false** otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.isOpenAccessibility()
@@ -497,15 +504,15 @@ isOpenAccessibility(callback: AsyncCallback&lt;boolean&gt;): void
 
 Checks whether accessibility is enabled. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
-- Parameters
+- **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback&lt;boolean&gt; | Yes | Callback used to return the result. Returns **true** if accessibility is enabled; returns **false** otherwise. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result. Returns **true** if accessibility is enabled; returns **false** otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.isOpenAccessibility((err, data) => {
@@ -523,15 +530,15 @@ isOpenTouchGuide(): Promise&lt;boolean&gt;
 
 Checks whether touch guide mode is enabled. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Vision
 
-- Return value
+- **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | Promise&lt;boolean&gt; | Returns **true** if touch guide mode is enabled; returns **false** otherwise. |
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;boolean&gt; | Returns **true** if touch guide mode is enabled; returns **false** otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.isOpenTouchGuide()
@@ -548,15 +555,15 @@ isOpenTouchGuide(callback: AsyncCallback&lt;boolean&gt;): void
 
 Checks whether touch guide mode is enabled. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Vision
 
-- Parameters
+- **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback&lt;boolean&gt; | Yes | Callback used to return the result. Returns **true** if touch guide mode is enabled; returns **false** otherwise. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result. Returns **true** if touch guide mode is enabled; returns **false** otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.isOpenTouchGuide((err, data) => {
@@ -574,21 +581,21 @@ sendEvent(event: EventInfo): Promise&lt;void&gt;
 
 Sends an accessibility event. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | event | [EventInfo](#eventinfo) | Yes | Accessibility event. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | event | [EventInfo](#eventinfo) | Yes| Accessibility event.|
 
-- Return value
+- **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | Promise&lt;void&gt; | Promise used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise. |
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; | Promise used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.sendEvent(this.eventInfo)
@@ -605,16 +612,16 @@ sendEvent(event: EventInfo, callback: AsyncCallback&lt;void&gt;): void
 
 Sends an accessibility event. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Barrierfree.Accessibility.Core
+**System capability**: SystemCapability.BarrierFree.Accessibility.Core
 
 - **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | event | [EventInfo](#eventinfo) | Yes | Accessibility event. |
- | callback | AsyncCallback&lt;void&gt; | Yes | Callback used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | event | [EventInfo](#eventinfo) | Yes| Accessibility event.|
+  | callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise.|
 
-- Example
+- **Example**
 
   ```typescript
   accessibility.sendEvent(this.eventInfo,(err, data) => {
diff --git a/en/application-dev/reference/apis/js-apis-appAccount.md b/en/application-dev/reference/apis/js-apis-appAccount.md
index 60f404c4b0510809a4c1d515c3cc99c184796ab9..2a3dc0d9e34fd7ba2dd3e37c018292bec6da8be9 100644
--- a/en/application-dev/reference/apis/js-apis-appAccount.md
+++ b/en/application-dev/reference/apis/js-apis-appAccount.md
@@ -21,7 +21,7 @@ Creates an **AppAccountManager** instance.
 
 **System capability**: SystemCapability.Account.AppAccount
 
-**Return Value**
+**Return value**
 
 | Type               | Description          |
 | ----------------- | ------------ |
@@ -102,7 +102,7 @@ Adds an app account name and additional information (information that can be con
 | name      | string | Yes   | Name of the app account to add.                             |
 | extraInfo | string | Yes   | Additional information to add. The additional information cannot contain sensitive information, such as the app account password.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | ------------------- | --------------------- |
@@ -198,7 +198,7 @@ Deletes an app account from the **AppAccountManager** service. This API uses a p
 | ---- | ------ | ---- | ----------- |
 | name | string | Yes   | Name of the app account to delete.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -255,7 +255,7 @@ Disables an app account from accessing an app with the given bundle name. This A
 | name       | string | Yes   | Name of the target app account.|
 | bundleName | string | Yes   | Bundle name of the app.       |
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -312,7 +312,7 @@ Enables an app account to access an app with the given bundle name. This API use
 | name       | string | Yes   | Name of the target app account.  |
 | bundleName | string | Yes   | Bundle name of the app.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -371,7 +371,7 @@ Checks whether an app account allows app data synchronization. This API uses a p
 | ---- | ------ | ---- | ------- |
 | name | string | Yes   | Name of the target app account.|
 
-**Return Value**
+**Return value**
 
 | Type                    | Description                   |
 | :--------------------- | :-------------------- |
@@ -430,7 +430,7 @@ Sets a credential for an app account. This API uses a promise to return the resu
 | credentialType | string | Yes   | Type of the credential to set.|
 | credential     | string | Yes   | Credential to set.   |
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -487,7 +487,7 @@ Sets additional information for an app account. This API uses a promise to retur
 | name      | string | Yes   | Name of the target app account.  |
 | extraInfo | string | Yes   | Additional information to set.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -548,7 +548,7 @@ Sets whether to enable app data synchronization for an app account. This API use
 | name     | string  | Yes   | Name of the target app account.    |
 | isEnable | boolean | Yes   | Whether to enable app data synchronization.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -606,7 +606,7 @@ Sets data to be associated with an app account. This API uses a promise to retur
 | key   | string | Yes   | Key of the data to set. The private key can be customized.|
 | value | string | Yes   | Value of the data to be set.        |
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                   |
 | :------------------ | :-------------------- |
@@ -664,7 +664,7 @@ Obtains the credential of an app account. This API uses a promise to return the
 | name           | string | Yes   | Name of the target app account.   |
 | credentialType | string | Yes   | Type of the credential to obtain.|
 
-**Return Value**
+**Return value**
 
 | Type                   | Description                   |
 | :-------------------- | :-------------------- |
@@ -720,7 +720,7 @@ Obtains additional information of an app account. This API uses a promise to ret
 | ---- | ------ | ---- | ------- |
 | name | string | Yes   | Name of the target app account.|
 
-**Return Value**
+**Return value**
 
 | Type                   | Description                   |
 | :-------------------- | :-------------------- |
@@ -778,7 +778,7 @@ Obtains data associated with an app account. This API uses a promise to return t
 | name | string | Yes   | Name of the target app account.  |
 | key  | string | Yes   | Key of the data to obtain.|
 
-**Return Value**
+**Return value**
 
 | Type                   | Description                   |
 | :-------------------- | :-------------------- |
diff --git a/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md
new file mode 100644
index 0000000000000000000000000000000000000000..3289f1d2efc43a5af0a8fa3266f41b1ff3139aaa
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md
@@ -0,0 +1,429 @@
+# Data Share Extension Ability
+
+The **DataShareExtensionAbility** module provides Extension abilities for data share services.
+
+>**NOTE**
+>
+>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+>
+>The APIs provided by this module are system APIs.
+>
+>The APIs of this module can be used only in the stage model.
+
+
+## Modules to Import
+
+```ts
+import DataShareExtensionAbility from '@ohos.application.DataShareExtensionAbility'
+```
+
+## Attributes
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+| Name| Type| Readable| Writable| Description| 
+| -------- | -------- | -------- | -------- | -------- |
+| context | [ExtensionContext](js-apis-extension-context.md)  | Yes| No|Context of the DataShare Extension ability.| 
+
+## onCreate
+
+onCreate?(want: Want, callback: AsyncCallback&lt;void&gt;): void
+
+Called by the server to initialize service logic when the DataShare client connects to the DataShareExtensionAbility server. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| want | [Want](js-apis-application-Want.md#want) | Yes | **Want** information, including the ability name and bundle name.|
+| callback | AsyncCallback&lt;void&gt; | Yes| Callback that returns no value.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    onCreate(want, callback) {
+        rdb.getRdbStore(this.context, {
+            name: DB_NAME
+        }, 1, function (err, data) {
+            console.log('getRdbStore done, data : ' + data);
+            rdbStore = data;
+            rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) {
+                console.log('executeSql done, error message : ' + err);
+            });
+            if (callback) {
+                callback();
+            }
+        });
+    }
+};
+```
+
+## getFileTypes
+
+getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
+
+Obtains the Multipurpose Internet Mail Extensions (MIME) types supported by a file. This API is called by the server and can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name          | Type                                    | Mandatory| Description                              |
+| -------------- | ---------------------------------------- | ---- | ---------------------------------- |
+| uri            | string                                   | Yes  | URI of the file.          |
+| mimeTypeFilter | string                                   | Yes  | MIME types to match.      |
+| callback       | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes  | Callback invoked to return the MIME types obtained.|
+
+**Example**
+
+```ts
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    getFileTypes(uri, mimeTypeFilter, callback) {
+        let err = {"code":0};
+        let ret = new Array("type01", "type02", "type03");
+        callback(err, ret);
+    }
+};
+```
+
+## openFile
+
+openFile?(uri: string, mode: string, callback: AsyncCallback&lt;number&gt;): void
+
+Opens a file. This API is called by the server and can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name    | Type                 | Mandatory| Description                                      |
+| -------- | --------------------- | ---- | ------------------------------------------ |
+| uri      | string                | Yes  | URI of the file to open.       |
+| mode     | string                | Yes  | File open mode, which can be read-only or read/write.|
+| callback | AsyncCallback&lt;number&gt; | Yes  | Callback invoked to return the file descriptor.       |
+
+**Example**
+
+```ts
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    openFile(uri, mode, callback) {
+        let err = {"code":0};
+        let fd = 0;
+        callback(err,fd);
+    }
+};
+```
+
+## insert
+
+insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback&lt;number&gt;): void
+
+Inserts data into the database. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| uri |string | Yes | URI of the data to insert.|
+| valueBucket |[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes| Data to insert.|
+| callback |AsyncCallback&lt;number&gt; | Yes| Callback invoked to return the index of the data inserted.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    insert(uri, valueBucket, callback) {
+        if (valueBucket == null) {
+            console.info('invalid valueBuckets');
+            return;
+        }
+        rdbStore.insert(TBL_NAME, valueBucket, function (err, ret) {
+            console.info('callback ret:' + ret);
+            if (callback != undefined) {
+                callback(err, ret);
+            }
+        });
+    }
+};
+```
+
+## update
+
+update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback&lt;number&gt;): void
+
+Updates data in the database. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| uri | string | Yes | URI of the data to update.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | Filter criteria for updating data.|
+| valueBucket | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes| New data.|
+| callback | AsyncCallback&lt;number&gt; | Yes| Callback invoked to return the number of updated data records.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    update(uri, predicates, valueBucket, callback) {
+        if (predicates == null || predicates == undefined) {
+            return;
+        }
+        rdbStore.update(TBL_NAME, valueBucket, predicates, function (err, ret) {
+            if (callback != undefined) {
+                callback(err, ret);
+            }
+        });
+    }
+};
+```
+
+## delete
+
+delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;): void
+
+Deletes data from the database. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name      | Type                                                    | Mandatory| Description                              |
+| ---------- | ------------------------------------------------------------ | ---- | ---------------------------------- |
+| uri        | string                                                       | Yes  | URI of the data to delete.          |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria for deleting data.                    |
+| callback   | AsyncCallback&lt;number&gt;                                  | Yes  | Callback invoked to return the number of data records deleted.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    delete(uri, predicates, callback) {
+        if (predicates == null || predicates == undefined) {
+            return;
+        }
+        rdbStore.delete(TBL_NAME, predicates, function (err, ret) {
+            if (callback != undefined) {
+                callback(err, ret);
+            }
+        });
+    }
+};
+```
+
+## query
+
+query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;Object&gt;): void
+
+Queries data from the database. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| uri | string | Yes | URI of the data to query.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | Filter criteria for querying data.|
+| columns | Array&lt;string&gt; | Yes| Columns to query. If this parameter is empty, all columns will be queried.|
+| callback | AsyncCallback&lt;Object&gt; | Yes| Callback invoked to return the result set.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    query(uri, predicates, columns, callback) {
+        if (predicates == null || predicates == undefined) {
+            return;
+        }
+        rdbStore.query(TBL_NAME, predicates, columns, function (err, resultSet) {
+            if (resultSet != undefined) {
+                console.info('resultSet.rowCount: ' + resultSet.rowCount);
+            }
+            if (callback != undefined) {
+                callback(err, resultSet);
+            }
+        });
+    }
+};
+```
+
+## getType
+
+getType?(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Obtains the MIME type corresponding to the given URI. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| uri | string | Yes | URI of the target data.|
+| callback | AsyncCallback&lt;string&gt; | Yes| Callback invoked to return the MIME type obtained.|
+
+**Example**
+
+```ts
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    getType(uri, callback) {
+        let err = {"code":0};
+        let ret = "image";
+        callback(err, ret);
+    }
+};
+```
+
+## batchInsert
+
+batchInsert?(uri: string, valueBuckets: Array&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;): void
+
+Batch inserts data into the database. This API is called by the server and can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name        | Type                                                    | Mandatory| Description                            |
+| ------------ | ------------------------------------------------------------ | ---- | -------------------------------- |
+| uri          | string                                                       | Yes  | URI of the data to insert.    |
+| valueBuckets | Array&lt;[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)&gt; | Yes  | Data to insert.          |
+| callback     | AsyncCallback&lt;number&gt;                                  | Yes  | Callback invoked to return the number of inserted data records.|
+
+**Example**
+
+```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    batchInsert(uri, valueBuckets, callback) {
+        if (valueBuckets == null || valueBuckets.length == undefined) {
+            console.info('invalid valueBuckets');
+            return;
+        }
+        let resultNum = valueBuckets.length
+        valueBuckets.forEach(vb => {
+            rdbStore.insert(TBL_NAME, vb, function (err, ret) {
+                if (callback != undefined) {
+                    callback(err, resultNum);
+                }
+            });
+        });
+    }
+};
+```
+
+## normalizeUri
+
+normalizeUri?(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Normalizes a URI. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name    | Type                 | Mandatory| Description                   |
+| -------- | --------------------- | ---- | ----------------------- |
+| uri      | string                | Yes  | [URI](js-apis-uri.md#uri) to normalize.|
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. If the operation is successful, the normalized URI is returned. Otherwise, **null** is returned.|
+
+**Example**
+
+```ts
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    normalizeUri(uri, callback) {
+        let err = {"code":0};
+        let ret = "normalize+" + uri;
+        callback(err, ret);
+    }
+};
+```
+
+## denormalizeUri
+
+denormalizeUri?(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Denormalizes a URI. This API can be overridden as required.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider
+
+**Parameters**
+
+| Name    | Type                 | Mandatory| Description                   |
+| -------- | --------------------- | ---- | ----------------------- |
+| uri      | string                | Yes  | [URI](js-apis-uri.md#uri) to denormalize.|
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. If the operation is successful, the denormalized URI is returned. If the URI passed in is returned, denormalization is not required. If denormalization is not supported, **null** is returned.|
+
+**Example**
+
+```ts
+export default class DataShareExtAbility extends DataShareExtensionAbility {
+    denormalizeUri(uri, callback) {
+        let err = {"code":0};
+        let ret = "denormalize+" + uri;
+        callback(err, ret);
+    }
+};
+```
diff --git a/en/application-dev/reference/apis/js-apis-application-EnvironmentCallback.md b/en/application-dev/reference/apis/js-apis-application-EnvironmentCallback.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0d75fc57deed25160bbb080ef1565a45a94679d
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-application-EnvironmentCallback.md
@@ -0,0 +1,62 @@
+# EnvironmentCallback
+
+The **EnvironmentCallback** module provides the **onConfigurationUpdated** API for the application context to listen for system environment changes.
+
+> **NOTE**
+> 
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
+> The APIs of this module can be used only in the stage model.
+
+
+## Modules to Import
+
+```js
+import EnvironmentCallback from "@ohos.application.EnvironmentCallback";
+```
+
+
+## EnvironmentCallback.onConfigurationUpdated
+
+onConfigurationUpdated(config: Configuration): void;
+
+Called when the system environment changes.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description| 
+  | -------- | -------- | -------- | -------- |
+  | config | [Configuration](js-apis-configuration.md) | Yes| **Configuration** object after the change.|
+
+**Example**
+    
+
+  ```js
+import AbilityStage from "@ohos.application.AbilityStage";
+
+var callbackId;
+
+export default class MyAbilityStage extends AbilityStage {
+    onCreate() {
+        console.log("MyAbilityStage onCreate")
+        globalThis.applicationContext = this.context.getApplicationContext();
+        let EnvironmentCallback  =  {
+            onConfigurationUpdated(config){
+                console.log("onConfigurationUpdated config:" + JSON.stringify(config));
+            },
+        }
+        // 1. Obtain an applicationContext object.
+        let applicationContext = globalThis.applicationContext;
+        // 2. Register a listener for the environment changes through the applicationContext object.
+        callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback);
+        console.log("registerEnvironmentCallback number: " + JSON.stringify(callbackId));
+    }
+    onDestroy() {
+        let applicationContext = globalThis.applicationContext;
+        applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
+            console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
+        });
+    }
+}
+  ```
diff --git a/en/application-dev/reference/apis/js-apis-application-MissionSnapshot.md b/en/application-dev/reference/apis/js-apis-application-MissionSnapshot.md
index c850915c4d2743d7ee8f03ce0b96d6a4f7739525..c97515fa2bd988b91c4fd5c27a8e27ed285f141c 100644
--- a/en/application-dev/reference/apis/js-apis-application-MissionSnapshot.md
+++ b/en/application-dev/reference/apis/js-apis-application-MissionSnapshot.md
@@ -1,23 +1,39 @@
 # MissionSnapshot
 
+The **MissionSnapshot** module provides the mission snapshot information of an ability.
+
 > **NOTE**
->
+> 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The APIs of this module are system APIs and cannot be called by third-party applications.
 
-Provides the snapshot of a mission.
+## Usage
 
-## Modules to Import
+The mission snapshot information can be obtained by using **getMissionSnapShot** in **missionManager**.
 
-```
-import missionManager from '@ohos.application.missionManager'
+```js
 import ElementName from '@ohos.bundle';
 import image from '@ohos.multimedia.image';
-```
+import missionManager from '@ohos.application.missionManager'
+
+  missionManager.getMissionInfos("", 10, (error, missions) => {
+    console.log("getMissionInfos is called, error.code = " + error.code);
+    console.log("size = " + missions.length);
+    console.log("missions = " + JSON.stringify(missions));
+    var id = missions[0].missionId;
 
+    missionManager.getMissionSnapShot("", id, (error, snapshot) => {
+  	console.log("getMissionSnapShot is called, error.code = " + error.code);
+  	console.log("bundleName = " + snapshot.ability.bundleName);
+  })
+  })
+```
 ## MissionSnapshot
 
 Describes the mission snapshot.
 
+**System capability**: SystemCapability.Ability.AbilityRuntime.Mission
+
 | Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
 | ability | ElementName | Yes| Yes| Information that matches an ability.|
diff --git a/en/application-dev/reference/apis/js-apis-application-StartOptions.md b/en/application-dev/reference/apis/js-apis-application-StartOptions.md
index e221f4506244b56ea43e24ef916085ef1f3fac63..d1d7416500d37ab61523633f3880670ad8b98779 100644
--- a/en/application-dev/reference/apis/js-apis-application-StartOptions.md
+++ b/en/application-dev/reference/apis/js-apis-application-StartOptions.md
@@ -1,12 +1,12 @@
 # StartOptions
 
+The **StartOptions** module implements ability startup options.
+
 > **NOTE**
-> 
-> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 > The APIs of this module can be used only in the stage model.
 
-**StartOptions** is the basic communication component of the system.
-
 ## Modules to Import
 
 ```
@@ -15,10 +15,9 @@ import StartOptions from '@ohos.application.StartOptions';
 
 ## Attributes
 
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 | Name| Readable| Writable| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- | -------- | -------- |
-| [windowMode](js-apis-window.md#windowmode) | Yes| No| number | No| Window mode.|
+| [windowMode](js-apis-application-abilityConstant.md#AbilityConstant.WindowMode) | Yes| No| number | No| Window mode.|
 | displayId | Yes| No| number | No| Display ID.|
-
diff --git a/en/application-dev/reference/apis/js-apis-application-Want.md b/en/application-dev/reference/apis/js-apis-application-Want.md
index 26c0cd030bcdf36cee488cba5066b2beba38a3d3..f51fee8402c98f9c36e81f355df105a3154e0105 100644
--- a/en/application-dev/reference/apis/js-apis-application-Want.md
+++ b/en/application-dev/reference/apis/js-apis-application-Want.md
@@ -1,11 +1,11 @@
 # Want
 
+The **Want** module provides the basic communication component of the system.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-**Want** is the basic communication component of the system.
-
 ## Modules to Import
 
 ```
@@ -20,11 +20,26 @@ import Want from '@ohos.application.Want';
 | ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
 | deviceId    | Read only    | string               | No  | ID of the device running the ability.                               |
 | bundleName   | Read only    | string               | No  | Bundle name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability.|
-| abilityName  | Read only    | string               | No  | Name of the ability. If both **package** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability.|
+| abilityName  | Read only    | string               | No  | Name of the ability. If both **package** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability. The value of **abilityName** must be unique in an application.|
 | uri          | Read only    | string               | No  | URI information to match. If **uri** is specified in a **Want** object, the **Want** object will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.|
 | type         | Read only    | string               | No  | MIME type, for example, **text/plain** or **image/***.  |
 | flags        | Read only    | number               | No  | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-featureAbility.md#flags).|
 | action      | Read only    | string               | No  | Action option.                          |
-| parameters   | Read only    | {[key: string]: any} | No  | List of parameters in the **Want** object.                                      |
+| parameters   | Read only    | {[key: string]: any} | No  | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried:<br>**ohos.aafwk.callerPid**: PID of the caller.<br>**ohos.aafwk.param.callerToken**: token of the caller.<br>**ohos.aafwk.param.callerUid**: UID of the caller. The **userId** parameter in the [Bundle](js-apis-Bundle.js) module can be used to obtain application and bundle information.                                      |
 | entities    | Read only    | Array\<string>       | No  | List of entities.                                   |
-| moduleName<sup>9+</sup> | Read only  | string | No   | Module to which the ability belongs. Different abilities among HAP files in an application may use the same name. If the abilities cannot be distinguished by the combination of **bundleName** and **abilityName**, you can set **moduleName** for better distinguishing.|                              |
+| moduleName<sup>9+</sup> | Read only  | string | No   | Module to which the ability belongs.|
+
+**Example**
+
+```  js
+  var want = {
+      "deviceId": "", // An empty deviceId indicates the local device.
+      "bundleName": "com.extreme.test",
+      "abilityName": "MainAbility",
+      "moduleName": "entry" // moduleName is optional.
+  };
+  this.context.startAbility(want, (error) => {
+      // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters uniquely identify an ability.
+      console.log("error.code = " + error.code)
+  })
+```
diff --git a/en/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md
new file mode 100644
index 0000000000000000000000000000000000000000..8a366b1e21bb988c608ba0a5e57251f2bd237d75
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md
@@ -0,0 +1,137 @@
+# Window Extension Ability
+**WindowExtensionAbility** inherits from **ExtensionAbility**. The content in a **WindowExtensionAbility** object can be displayed as an ability component in other application windows.
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> 
+> The APIs provided by this module are system APIs.
+>
+> The APIs of this module can be used only in the stage model.
+
+## Modules to Import
+
+```ts
+import WindowExtensionAbility from '@ohos.application.WindowExtensionAbility';
+```
+
+## Attributes
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name     | Type| Readable| Writable| Description                     |
+| --------- | -------- | ---- | ---- | ------------------------- |
+| context      | [ExtensionContext](js-apis-extension-context.md)   | Yes  | No  | Context of an Extension ability.     |
+
+## WindowExtensionAbility.onConnect
+
+onConnect(want: Want): rpc.RemoteObject
+
+Called when this Window Extension ability is connected to an ability for the first time.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information related to this Window Extension ability, including the ability name and bundle name. |
+
+**Return value**
+| Type                                           | Description                |
+| ----------------------------------------------- | -------------------- |
+| [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | Proxy of this Window Extension ability.|
+
+**Example**
+
+```ts
+import rpc from '@ohos.rpc';
+
+class StubTest extends rpc.RemoteObject {
+    constructor(des) {
+        super(des);
+    }
+    onRemoteRequest(code, data, reply, option) {
+        return true;
+    }
+    queryLocalInterface(descriptor) {
+        return null;
+    }
+    getInterfaceDescriptor() {
+        return "";
+    }
+    sendRequest(code, data, reply, options) {
+        return null;
+    }
+    getCallingPid() {
+        return 1;
+    }
+    getCallingUid() {
+        return 1;
+    }
+    attachLocalInterface(localInterface, descriptor){}
+}
+
+export default class MyWindowExtensionAbility extends WindowExtensionAbility {
+
+  onConnect(want): rpc.RemoteObject {
+    console.info('WindowExtAbility onConnect ' + want.abilityName);
+    return new StubTest("test");
+  }
+
+}
+```
+
+## WindowExtensionAbility.onDisconnect
+
+onDisconnect(want: Want): void
+
+Called when this Window Extension ability is disconnected from all connected abilities.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information related to this Window Extension ability, including the ability name and bundle name. |
+
+
+**Example**
+
+```ts
+export default class MyWindowExtensionAbility extends WindowExtensionAbility {
+
+  onDisconnect(want) {
+    console.info('WindowExtAbility onDisconnect ' + want.abilityName);
+  }
+
+}
+```
+
+
+## WindowExtensionAbility.onWindowReady
+
+onWindowReady(window: Window): void
+
+Called when a window is ready.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| window | [Window](js-apis-window.md) | Yes| Current **Window** instance.|
+
+
+**Example**
+
+```ts
+export default class MyWindowExtensionAbility extends WindowExtensionAbility {
+
+  onWindowReady(window) {
+    window.loadContent('WindowExtAbility/pages/index1').then(() => {
+      window.getProperties().then((pro) => {
+        console.log("WindowExtension " + JSON.stringify(pro));
+      })
+      window.show();
+    })
+  }
+
+}
+```
diff --git a/en/application-dev/reference/apis/js-apis-application-ability.md b/en/application-dev/reference/apis/js-apis-application-ability.md
index bdf719b34ed6e7ba0dcc227ff5866c8ae7b87a87..565210637c6e83f83ec734c0905e11596baaf0db 100644
--- a/en/application-dev/reference/apis/js-apis-application-ability.md
+++ b/en/application-dev/reference/apis/js-apis-application-ability.md
@@ -1,12 +1,17 @@
 # Ability
 
+The **Ability** module manages the ability lifecycle and context, such as creating and destroying an ability, and dumping client information.
+
+This module provides the following common ability-related functions:
+
+- [Caller](#caller): implements sending of sequenceable data to the target ability when an ability (caller) invokes the target ability (callee).
+- [Callee](#callee): implements callbacks for registration and deregistration of caller notifications.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Manages the ability lifecycle and context.
-
 ## Modules to Import
 
 ```
@@ -17,14 +22,12 @@ import Ability from '@ohos.application.Ability';
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-| Name| Type| Readable| Writable| Description| 
+| Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| context | [AbilityContext](js-apis-ability-context.md) | Yes| No| Context of an ability.| 
-| launchWant | [Want](js-apis-application-Want.md) | Yes| No| Parameters for starting the ability.| 
-| lastRequestWant | [Want](js-apis-application-Want.md) | Yes| No| Parameters used when the ability was started last time.| 
-| callee | [Callee](#callee) | Yes| No| Object that invokes the stub service.| 
-
-
+| context | [AbilityContext](js-apis-ability-context.md) | Yes| No| Context of an ability.|
+| launchWant | [Want](js-apis-application-Want.md) | Yes| No| Parameters for starting the ability.|
+| lastRequestWant | [Want](js-apis-application-Want.md) | Yes| No| Parameters used when the ability was started last time.|
+| callee | [Callee](#callee) | Yes| No| Object that invokes the stub service.|
 
 ## Ability.onCreate
 
@@ -36,13 +39,13 @@ Called to initialize the service logic when an ability is created.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want | [Want](js-apis-application-Want.md) | Yes| Information related to this ability, including the ability name and bundle name.| 
-  | param | AbilityConstant.LaunchParam | Yes| Parameters for starting the ability, and the reason for the last abnormal exit.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information related to this ability, including the ability name and bundle name.|
+| param | AbilityConstant.LaunchParam | Yes| Parameters for starting the ability, and the reason for the last abnormal exit.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       onCreate(want, param) {
@@ -62,12 +65,12 @@ Called when a **WindowStage** is created for this ability.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | windowStage | window.WindowStage | Yes| **WindowStage** information.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| windowStage | window.WindowStage | Yes| **WindowStage** information.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       onWindowStageCreate(windowStage) {
@@ -85,8 +88,8 @@ Called when the **WindowStage** is destroyed for this ability.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-**Example**
-    
+**Example**    
+
   ```js
   class myAbility extends Ability {
       onWindowStageDestroy() {
@@ -106,12 +109,12 @@ Called when the **WindowStage** is restored during the migration of this ability
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | windowStage | window.WindowStage | Yes| **WindowStage** information.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| windowStage | window.WindowStage | Yes| **WindowStage** information.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       onWindowStageRestore(windowStage) {
@@ -129,8 +132,8 @@ Called when this ability is destroyed to clear resources.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-**Example**
-    
+**Example**    
+
   ```js
   class myAbility extends Ability {
       onDestroy() {
@@ -148,8 +151,8 @@ Called when this ability is switched from the background to the foreground.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-**Example**
-    
+**Example**    
+
   ```js
   class myAbility extends Ability {
       onForeground() {
@@ -167,8 +170,8 @@ Called when this ability is switched from the foreground to the background.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-**Example**
-    
+**Example**   
+
   ```js
   class myAbility extends Ability {
       onBackground() {
@@ -188,18 +191,18 @@ Called to save data during the ability migration preparation process.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | wantParam | {[key:&nbsp;string]:&nbsp;any} | Yes| **want** parameter.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| wantParam | {[key:&nbsp;string]:&nbsp;any} | Yes| **want** parameter.|
 
 **Return value**
 
-  | Type| Description| 
-  | -------- | -------- |
-  | AbilityConstant.OnContinueResult | Continuation result.| 
+| Type| Description|
+| -------- | -------- |
+| AbilityConstant.OnContinueResult | Continuation result.|
+
+**Example**    
 
-**Example**
-    
   ```js
   import AbilityConstant from "@ohos.application.AbilityConstant"
   class myAbility extends Ability {
@@ -222,13 +225,13 @@ Called when the ability startup mode is set to singleton.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want | [Want](js-apis-application-Want.md) | Yes| Want parameters, such as the ability name and bundle name.| 
-  | launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Want parameters, such as the ability name and bundle name.|
+| launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       onNewWant(want, launchParams) {
@@ -251,12 +254,12 @@ Called when the configuration of the environment where the ability is running is
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | config | [Configuration](js-apis-configuration.md) | Yes| New configuration.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| config | [Configuration](js-apis-configuration.md) | Yes| New configuration.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       onConfigurationUpdated(config) {
@@ -269,18 +272,18 @@ Called when the configuration of the environment where the ability is running is
 
 dump(params: Array\<string>): Array\<string>;
 
-Called when the client information is dumped.
+Dumps client information.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | params | Array\<string> | Yes| Parameters in the form of a command.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| params | Array\<string> | Yes| Parameters in the form of a command.|
+
+**Example**    
 
-**Example**
-    
   ```js
   class myAbility extends Ability {
       dump(params) {
@@ -307,19 +310,19 @@ Sends sequenceable data to the target ability.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| 
-  | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.|
+| data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.|
 
 **Return value**
 
-  | Type| Description| 
-  | -------- | -------- |
-  | Promise&lt;void&gt; | Promise used to return a response.| 
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;void&gt; | Promise used to return a response.|
+
+**Example**    
 
-**Example**
-    
   ```js
   import Ability from '@ohos.application.Ability';
   class MyMessageAble{ // Custom sequenceable data structure
@@ -380,19 +383,19 @@ Sends sequenceable data to the target ability and obtains the sequenceable data
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| 
-  | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.|
+| data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.|
 
 **Return value**
 
-  | Type| Description| 
-  | -------- | -------- |
-  | Promise&lt;rpc.MessageParcel&gt; | Promise used to return the sequenceable data from the target ability.| 
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;rpc.MessageParcel&gt; | Promise used to return the sequenceable data from the target ability.|
+
+**Example**    
 
-**Example**
-    
   ```js
   import Ability from '@ohos.application.Ability';
   class MyMessageAble{
@@ -452,8 +455,8 @@ Releases the caller interface of the target ability.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-**Example**
-    
+**Example**    
+
   ```js
   import Ability from '@ohos.application.Ability';
   var caller;
@@ -489,12 +492,12 @@ Registers a callback that is invoked when the stub on the target ability is disc
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | callback | OnReleaseCallBack | Yes| Callback used for the **onRelease** API.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | OnReleaseCallBack | Yes| Callback used for the **onRelease** API.|
+
+**Example**    
 
-**Example**
-    
   ```js
   import Ability from '@ohos.application.Ability';
   var caller;
@@ -529,7 +532,7 @@ Implements callbacks for caller notification registration and deregistration.
 
 ## Callee.on
 
-on(method: string, callback: CaleeCallBack): void;
+on(method: string, callback: CalleeCallBack): void;
 
 Registers a caller notification callback, which is invoked when the target ability registers a function.
 
@@ -537,13 +540,12 @@ Registers a caller notification callback, which is invoked when the target abili
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | method | string | Yes| Notification message string negotiated between the two abilities.| 
-  | callback | CaleeCallBack | Yes| JS notification synchronization callback of the **rpc.MessageParcel** type. The callback must return at least one empty **rpc.Sequenceable** object. Otherwise, the function execution fails.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| method | string | Yes| Notification message string negotiated between the two abilities.|
+| callback | CalleeCallBack | Yes| JS notification synchronization callback of the **rpc.MessageParcel** type. The callback must return at least one empty **rpc.Sequenceable** object. Otherwise, the function execution fails.|
 
-**Example**
-    
+**Example**    
   ```js
   import Ability from '@ohos.application.Ability';
   class MyMessageAble{
@@ -593,9 +595,9 @@ Deregisters a caller notification callback, which is invoked when the target abi
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | method | string | Yes| Registered notification message string.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| method | string | Yes| Registered notification message string.|
 
 **Example**
     
@@ -616,17 +618,17 @@ Deregisters a caller notification callback, which is invoked when the target abi
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-| Name| Type| Readable| Writable| Description| 
+| Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| (msg: string) | function | Yes| No| Prototype of the listener function interface registered by the caller.| 
- 
+| (msg: string) | function | Yes| No| Prototype of the listener function registered by the caller.|
+
 
- ## CaleeCallBack
+ ## CalleeCallBack
 
 (indata: rpc.MessageParcel): rpc.Sequenceable;
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
 
-| Name| Type| Readable| Writable| Description| 
+| Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| (indata: rpc.MessageParcel) | rpc.Sequenceable | Yes| No| Prototype of the message listener function interface registered by the callee.| 
+| (indata: rpc.MessageParcel) | rpc.Sequenceable | Yes| No| Prototype of the listener function registered by the callee.|
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityConstant.md b/en/application-dev/reference/apis/js-apis-application-abilityConstant.md
index 3b2a958f7f403cade73487d61ff3695e5935d1bb..ca3269353344ca06935afaf6b390ae0c906f1a1a 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilityConstant.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityConstant.md
@@ -1,12 +1,14 @@
 # AbilityConstant
 
+The **AbilityConstant** module provides ability launch parameters.
+
+The parameters include the initial launch reasons, reasons for the last exit, and ability continuation results.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides parameters related to ability launch.
-
 ## Modules to Import
 
 ```js
@@ -17,10 +19,10 @@ import AbilityConstant from '@ohos.application.AbilityConstant';
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
-| Name| Type| Readable| Writable| Description|
+| Name| Type| Readable| Writable| Description| 
 | -------- | -------- | -------- | -------- | -------- |
-| launchReason | LaunchReason| Yes| Yes| Ability launch reason.|
-| lastExitReason | LastExitReason | Yes| Yes| Reason for the last exit.|
+| launchReason | LaunchReason| Yes| Yes| Ability launch reason.| 
+| lastExitReason | LastExitReason | Yes| Yes| Reason for the last exit.| 
 
 ## AbilityConstant.LaunchReason
 
@@ -60,3 +62,17 @@ Enumerates ability continuation results.
 | AGREE           | 0    | Continuation agreed.|
 | REJECT           | 1    | Continuation denied.|
 | MISMATCH  | 2    | Mismatch.|
+
+## AbilityConstant.WindowMode
+
+Enumerates the window modes when an ability is started.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+| Name                       | Value| Description                |
+| ---                         | --- | ---                  |
+| WINDOW_MODE_UNDEFINED       | 0   | Undefined window mode.      |
+| WINDOW_MODE_FULLSCREEN      | 1   | The ability is displayed in full screen.           |
+| WINDOW_MODE_SPLIT_PRIMARY   | 100 | The ability is displayed in the primary window in split-screen mode.  |
+| WINDOW_MODE_SPLIT_SECONDARY | 101 | The ability is displayed in the secondary window in split-screen mode.  |
+| WINDOW_MODE_FLOATING        | 102 | The ability is displayed in a floating window.|
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityDelegator.md b/en/application-dev/reference/apis/js-apis-application-abilityDelegator.md
index ec8655be70c9037622328066aa63d2cc643421d1..542214482f3e5bc8a74dad3d9990e1817b3f02e8 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilityDelegator.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityDelegator.md
@@ -1,13 +1,21 @@
 # AbilityDelegator
 
+The **AbilityDelegator** module provides APIs for managing **AbilityMonitor** instances that are used to monitor the lifecycle state changes of a specified ability. You can use the APIs to add and remove **AbilityMonitor** instances, wait for an ability to reach the **OnCreate** lifecycle state, set the waiting time, obtain the lifecycle state of an ability, obtain the top ability of the current application, and start an ability.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-## Modules to Import
+## Usage
 
+The ability delegator can be obtained by calling **getAbilityDelegator** in **AbilityDelegatorRegistry**.
 ```js
 import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+
+var abilityDelegator;
+
+abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
+
 ```
 
 ## AbilityDelegator
@@ -174,7 +182,7 @@ abilityDelegator.removeAbilityMonitor(monitor).then(() => {
 
 waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<Ability>): void
 
-Waits for the ability that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle and returns the **Ability** instance. This API uses an asynchronous callback to return the result.
+Waits for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -211,7 +219,7 @@ abilityDelegator.waitAbilityMonitor(monitor, (err : any, data : any) => {
 
 waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback\<Ability>): void
 
-Waits a period of time for the ability that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle and returns the **Ability** instance. This API uses an asynchronous callback to return the result.
+Waits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -250,7 +258,7 @@ abilityDelegator.waitAbilityMonitor(monitor, timeout, (err : any, data : any) =>
 
 waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<Ability>
 
-Waits a period of time for the ability that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle and returns the **Ability** instance. This API uses a promise to return the result.
+Waits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **OnCreate** lifecycle state and returns the **Ability** instance. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -355,7 +363,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
 
 getCurrentTopAbility(callback: AsyncCallback\<Ability>): void
 
-Obtains the top ability of the application. This API uses an asynchronous callback to return the result.
+Obtains the top ability of this application. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -384,7 +392,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
 
 getCurrentTopAbility(): Promise\<Ability>
 
-Obtains the top ability of the application. This API uses a promise to return the result.
+Obtains the top ability of this application. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
@@ -491,7 +499,7 @@ Schedules the lifecycle state of an ability to **Foreground**. This API uses an
 | Name  | Type                   | Mandatory| Description                                                   |
 | -------- | ----------------------- | ---- | ------------------------------------------------------- |
 | ability  | Ability                 | Yes  | Target ability.                                        |
-| callback | AsyncCallback\<boolean> | Yes  | Callback used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation fails.|
+| callback | AsyncCallback\<boolean> | Yes  | Callback used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation failed.|
 
 **Example**
 
@@ -529,7 +537,7 @@ Schedules the lifecycle state of an ability to **Foreground**. This API uses a p
 
 | Type             | Description                                                        |
 | ----------------- | ------------------------------------------------------------ |
-| Promise\<boolean> | Promise used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation fails.|
+| Promise\<boolean> | Promise used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation failed.|
 
 **Example**
 
@@ -562,7 +570,7 @@ Schedules the lifecycle state of an ability to **Background**. This API uses an
 | Name  | Type                   | Mandatory| Description                                                   |
 | -------- | ----------------------- | ---- | ------------------------------------------------------- |
 | ability  | Ability                 | Yes  | Target ability.                                        |
-| callback | AsyncCallback\<boolean> | Yes  | Callback used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation fails.|
+| callback | AsyncCallback\<boolean> | Yes  | Callback used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation failed.|
 
 **Example**
 
@@ -600,7 +608,7 @@ Schedules the lifecycle state of an ability to **Background**. This API uses a p
 
 | Type             | Description                                                        |
 | ----------------- | ------------------------------------------------------------ |
-| Promise\<boolean> | Promise used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation fails.|
+| Promise\<boolean> | Promise used to return the result.<br>\- **true**: The operation is successful.<br>\- **false**: The operation failed.|
 
 **Example**
 
@@ -620,6 +628,32 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
 
 
 
+### printSync<sup>9+</sup>
+
+printSync(msg: string): void
+
+Prints log information to the unit test console.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description      |
+| ------ | ------ | ---- | ---------- |
+| msg    | string | Yes  | Log string.|
+
+**Example**
+
+```js
+var abilityDelegator;
+var msg = "msg";
+
+abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
+abilityDelegator.printSync(msg);
+```
+
+
+
 ### print
 
 print(msg: string, callback: AsyncCallback\<void>): void
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md b/en/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
index ad43acc77bd9e7ff82b9d5bb7e01467e6b36c656..dffe0e39e69e38123bf7e89338b3d4efb14ad82a 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
@@ -1,22 +1,30 @@
 # AbilityDelegatorArgs
 
+The **AbilityDelegatorArgs** module provides a global register to store the registered **AbilityDelegator** and **AbilityDelegatorArgs** instances during application startup.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-## Modules to Import
+## Usage
+
+The ability delegator arguments are obtained by calling **getArguments** in **AbilityDelegatorRegistry**.
 
 ```js
 import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+
+var args = AbilityDelegatorRegistry.getArguments();
 ```
 
 ## AbilityDelegatorArgs
 
-Describes the test parameters.
+Describes the ability delegator arguments.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 | Name               | Type                  | Readable| Writable| Description                                                        |
 | ------------------- | ---------------------- | ---- | ---- | ------------------------------------------------------------ |
-| bundleName          | string                 | Yes  | Yes  | Bundle name of the application to test.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| parameters          | {[key:string]: string} | Yes  | Yes  | Parameters of the unit test that is started currently.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| testCaseNames       | string                 | Yes  | Yes  | Test case names.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| testRunnerClassName | string                 | Yes  | Yes  | Names of the test executors that execute the test cases.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
+| bundleName          | string                 | Yes  | Yes  | Bundle name of the application to test. |
+| parameters          | {[key:string]: string} | Yes  | Yes  | Parameters of the unit test that is started currently. |
+| testCaseNames       | string                 | Yes  | Yes  | Test case names. |
+| testRunnerClassName | string                 | Yes  | Yes  | Names of the test case executors. |
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md b/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
index 02803ad07bcde72288958a9be4981a15b8b4b555..42974b5fd683af842146b53fec22022edca84de6 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
@@ -1,17 +1,17 @@
 # AbilityLifecycleCallback
 
+The **AbilityLifecycleCallback** module provides callbacks, such as **onAbilityCreate**, **onAbilityWindowStageCreate**, and **onAbilityWindowStageDestroy**, to receive lifecycle state changes in the application context.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
 
-A callback class that provides APIs, such as **onAbilityCreate**, **onAbilityWindowStageCreate**, and **onAbilityWindowStageDestroy**, to listen for the lifecycle of the application context.
-
 ## Modules to Import
 
 ```js
-import AbilityLifecycleCallback from "@ohos.application.abilityLifecycleCallback";
+import AbilityLifecycleCallback from "@ohos.application.AbilityLifecycleCallback";
 ```
 
 
diff --git a/en/application-dev/reference/apis/js-apis-abilityManager.md b/en/application-dev/reference/apis/js-apis-application-abilityManager.md
similarity index 94%
rename from en/application-dev/reference/apis/js-apis-abilityManager.md
rename to en/application-dev/reference/apis/js-apis-application-abilityManager.md
index 28c5cd31b0350ca0e8b24c8bfbda21fb039adcd7..e1bf96bae511de4e1fb83d92df6ee05bdddbf990 100644
--- a/en/application-dev/reference/apis/js-apis-abilityManager.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityManager.md
@@ -7,7 +7,7 @@ The **AbilityManager** module provides APIs for obtaining, adding, and modifying
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module are system APIs and cannot be called by third-party applications.
 
-# Modules to Import
+## Modules to Import
 
 ```js
 import AbilityManager from '@ohos.application.abilityManager'
@@ -21,24 +21,24 @@ Enumerates the ability states.
 
 **System API**: This is a system API and cannot be called by third-party applications.
 
-| Name| Value| Description|
+| Name| Value| Description| 
 | -------- | -------- | -------- |
-| INITIAL | 0 | The ability is in the initial state.|
-| FOREGROUND | 9 | The ability is in the foreground state. |
-| BACKGROUND | 10 | The ability is in the background state. |
-| FOREGROUNDING | 11 | The ability is in the foregrounding state. |
-| BACKGROUNDING | 12 | The ability is in the backgrounding state. |
+| INITIAL | 0 | The ability is in the initial state.| 
+| FOREGROUND | 9 | The ability is in the foreground state. | 
+| BACKGROUND | 10 | The ability is in the background state. | 
+| FOREGROUNDING | 11 | The ability is in the foregrounding state. | 
+| BACKGROUNDING | 12 | The ability is in the backgrounding state. | 
 
 ## updateConfiguration
 
 updateConfiguration(config: Configuration, callback: AsyncCallback\<void>): void
 
-Obtains the ability running information. This API uses an asynchronous callback to return the result.
+Updates the configuration. This API uses an asynchronous callback to return the result.
 
 **Permission required**: ohos.permission.UPDATE_CONFIGURATION
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
+ 
 **Parameters**
 
 | Name       | Type                                      | Mandatory  | Description            |
@@ -80,7 +80,7 @@ Updates the configuration. This API uses a promise to return the result.
 
 | Type                                      | Description     |
 | ---------------------------------------- | ------- |
-| Promise\<void> | Promise used to return the result. |
+| Promise\<void> | Promise used to return the result.|
 
 **Example**
 
@@ -138,7 +138,7 @@ Obtains the ability running information. This API uses a promise to return the r
 
 | Type                                      | Description     |
 | ---------------------------------------- | ------- |
-| Promise\<Array\<AbilityRunningInfo>> | Promise used to return the result. |
+| Promise\<Array\<AbilityRunningInfo>> | Promise used to return the result.|
 
 **Example**
 
@@ -186,7 +186,7 @@ abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => {
 getExtensionRunningInfos(upperLimit: number): Promise\<Array\<ExtensionRunningInfo>>
 
 Obtains the extension running information. This API uses a promise to return the result.
-
+ 
 **Required permissions**: ohos.permission.GET_RUNNING_INFO
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
@@ -201,7 +201,7 @@ Obtains the extension running information. This API uses a promise to return the
 
 | Type                                      | Description     |
 | ---------------------------------------- | ------- |
-| Promise\<Array\<AbilityRunningInfo>> | Promise used to return the result. |
+| Promise\<Array\<AbilityRunningInfo>> | Promise used to return the result.|
 
 **Example**
 
@@ -246,14 +246,14 @@ abilitymanager.getTopAbility((err,data) => {
 getTopAbility(): Promise\<ElementName>;
 
 Obtains the top ability, which is the ability that has the window focus. This API uses a promise to return the result.
-
+ 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 **Return value**
 
 | Type                                      | Description     |
 | ---------------------------------------- | ------- |
-| Promise\<ElementName>| Promise used to return the result. |
+| Promise\<ElementName>| Promise used to return the result.|
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityMonitor.md b/en/application-dev/reference/apis/js-apis-application-abilityMonitor.md
index e7f017b48ebb0f440b021386e7a427e2d0a59852..33feda3afdd757e91ed7b7f682dca1ef597a7847 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilityMonitor.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilityMonitor.md
@@ -1,26 +1,47 @@
 # AbilityMonitor
 
+The **AbilityMonitor** module provides monitors for abilities that meet specified conditions. The latest matched abilities are stored in an **AbilityMonitor** object.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 
-## Modules to Import
+## Usage
+
+The ability monitor is set by calling **addAbilityMonitor** in **abilityDelegator**.
 
 ```js
 import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+var abilityDelegator;
+
+function onAbilityCreateCallback(data) {
+    console.info("onAbilityCreateCallback");
+}
+
+var monitor = {
+    abilityName: "abilityname",
+    onAbilityCreate: onAbilityCreateCallback
+}
+
+abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
+abilityDelegator.addAbilityMonitor(monitor, (err : any) => {
+    console.info("addAbilityMonitor callback");
+});
 ```
 
 ## AbilityMonitor
 
 Describes an ability monitor.
 
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
 | Name                                                        | Type    | Readable| Writable| Description                                                        |
 | ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ |
-| abilityName                                                  | string   | Yes  | Yes  | Name of the ability bound to the ability monitor.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onAbilityCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability is created.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onAbilityForeground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability starts to run in the foreground.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onAbilityBackground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability starts to run in the background.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onAbilityDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability is destroyed.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onWindowStageCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is created.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onWindowStageRestore?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is restored.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| onWindowStageDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is destroyed.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
+| abilityName                                                  | string   | Yes  | Yes  | Name of the ability bound to the ability monitor. |
+| onAbilityCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability is created.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onAbilityForeground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability starts to run in the foreground.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onAbilityBackground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability starts to run in the background.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onAbilityDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the ability is destroyed.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onWindowStageCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is created.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onWindowStageRestore?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is restored.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
+| onWindowStageDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | Yes  | Yes  | Called when the window stage is destroyed.<br>If this attribute is not set, the corresponding lifecycle callback cannot be received. |
diff --git a/en/application-dev/reference/apis/js-apis-application-abilitystage.md b/en/application-dev/reference/apis/js-apis-application-abilitystage.md
index 731d21305f151cd0318b14813e270bc14a27a3d2..c4f5da0e2989b5565d6405198a8c83ad7f20ee65 100644
--- a/en/application-dev/reference/apis/js-apis-application-abilitystage.md
+++ b/en/application-dev/reference/apis/js-apis-application-abilitystage.md
@@ -1,12 +1,14 @@
 # AbilityStage
 
+**AbilityStage** is a runtime class for HAP files.
+
+The **AbilityStage** module notifies you of when you can perform HAP initialization such as resource pre-loading and thread creation during the HAP loading.
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Runtime class for HAP files. It provides APIs to notify you when a HAP file starts loading. You can then initialize the HAP file, for example, pre-load resources and create threads.
-
 ## Modules to Import
 
 ```js
diff --git a/en/application-dev/reference/apis/js-apis-application-applicationContext.md b/en/application-dev/reference/apis/js-apis-application-applicationContext.md
index 517d9fb529fce872c5972a1aada50ce9f9b54ec9..88eccc98c39c5373930f35465ca48da1df19c40d 100644
--- a/en/application-dev/reference/apis/js-apis-application-applicationContext.md
+++ b/en/application-dev/reference/apis/js-apis-application-applicationContext.md
@@ -1,19 +1,13 @@
 # ApplicationContext
 
+The **ApplicationContext** module provides application-level context. You can use the APIs of this module to register and deregister the ability lifecycle listener in an application.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides application-level context and APIs for registering and deregistering the ability lifecycle listener in an application.
-
-## Modules to Import
-
-```
-import Ability from '@ohos.application.Ability';
-```
-
-## How to Use
+## Usage
 
 Before calling any APIs in **ApplicationContext**, obtain an **ApplicationContext** instance through the **context** instance.
 
@@ -34,7 +28,7 @@ Registers a listener to monitor the ability lifecycle of the application.
 
 | Name                  | Type    | Mandatory| Description                          |
 | ------------------------ | -------- | ---- | ------------------------------ |
-| [AbilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md) | callback | Yes  | Callback used to return the ID of the registered listener.|
+| callback | [AbilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md) | Yes  | Callback used to return the ID of the registered listener.|
 
 **Return value**
 
@@ -42,6 +36,54 @@ Registers a listener to monitor the ability lifecycle of the application.
 | ------ | ------------------------------ |
 | number | ID of the registered listener. The ID is incremented by 1 each time the listener is registered. When the ID exceeds 2^63-1, **-1** is returned.|
 
+**Example**
+
+  ```js
+import AbilityStage from "@ohos.application.AbilityStage";
+
+var lifecycleId;
+
+export default class MyAbilityStage extends AbilityStage {
+    onCreate() {
+        console.log("MyAbilityStage onCreate")
+        let AbilityLifecycleCallback  =  {
+            onAbilityCreate(ability){
+                console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability));        
+            },
+            onAbilityWindowStageCreate(ability){
+                console.log("AbilityLifecycleCallback onAbilityWindowStageCreate ability:" + JSON.stringify(ability));           
+            },
+            onAbilityWindowStageDestroy(ability){
+                console.log("AbilityLifecycleCallback onAbilityWindowStageDestroy ability:" + JSON.stringify(ability));
+            },
+            onAbilityDestroy(ability){
+                console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability));             
+            },
+            onAbilityForeground(ability){
+                console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability));             
+            },
+            onAbilityBackground(ability){
+                console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability));              
+            },
+            onAbilityContinue(ability){
+                console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability));
+            }
+        }
+        // 1. Obtain applicationContext through the context attribute.
+        let applicationContext = this.context.getApplicationContext();
+        // 2. Use applicationContext to register a listener for the ability lifecycle in the application.
+        lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
+        console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId));
+    }
+    onDestroy() {
+        let applicationContext = this.context.getApplicationContext();
+        applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
+            console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
+        });
+    }
+}
+  ```
+
 
 ## ApplicationContext.unregisterAbilityLifecycleCallback
 
@@ -56,52 +98,91 @@ Deregisters the listener that monitors the ability lifecycle of the application.
 | Name       | Type    | Mandatory| Description                      |
 | ------------- | -------- | ---- | -------------------------- |
 | callbackId    | number   | Yes  | ID of the listener to deregister.|
-| AsyncCallback | callback | Yes  | Callback used to return the result.                  |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.                  |
+
+**Example**
+
+  ```js
+  let applicationContext = this.context.getApplicationContext();
+  let lifecycleId = 1;
+  console.log("stage applicationContext: " + JSON.stringify(applicationContext));
+  applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
+      console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
+  });
+  ```
+
+## ApplicationContext.registerEnvironmentCallback
+
+registerEnvironmentCallback(callback: EnvironmentCallback): **number**;
+
+Registers a listener for system environment changes. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name                  | Type    | Mandatory| Description                          |
+| ------------------------ | -------- | ---- | ------------------------------ |
+| callback | [EnvironmentCallback](js-apis-application-EnvironmentCallback.md) | Yes  | Callback used to return the ID of the registered listener.|
+
+**Return value**
+
+| Type  | Description                          |
+| ------ | ------------------------------ |
+| number | ID of the registered listener. The ID is incremented by 1 each time the listener is registered. When the ID exceeds 2^63-1, **-1** is returned.|
+
+**Example**
+
+  ```js
+import AbilityStage from "@ohos.application.AbilityStage";
+
+var callbackId;
+
+export default class MyAbilityStage extends AbilityStage {
+    onCreate() {
+        console.log("MyAbilityStage onCreate")
+        globalThis.applicationContext = this.context.getApplicationContext();
+        let EnvironmentCallback = {
+            onConfigurationUpdated(config){
+                console.log("onConfigurationUpdated config:" + JSON.stringify(config));
+            },
+        }
+        // 1. Obtain an applicationContext object.
+        let applicationContext = globalThis.applicationContext;
+        // 2. Use applicationContext to register a listener for the ability lifecycle in the application.
+        callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback);
+        console.log("registerEnvironmentCallback number: " + JSON.stringify(callbackId));
+    }
+    onDestroy() {
+        let applicationContext = globalThis.applicationContext;
+        applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
+            console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
+        });
+    }
+}
+  ```
+
+## ApplicationContext.unregisterEnvironmentCallback
+
+unregisterEnvironmentCallback(callbackId: **number**,  callback: AsyncCallback<**void**>): **void**;
+
+Deregisters the listener for system environment changes. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**Parameters**
+
+| Name        | Type    | Mandatory| Description                      |
+| ------------- | -------- | ---- | -------------------------- |
+| callbackId    | number   | Yes  | ID of the listener to deregister.  |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.                 |
 
 **Example**
 
   ```js
-  import AbilityStage from "@ohos.application.AbilityStage";
-
-  var lifecycleid;
-
-  export default class MyAbilityStage extends AbilityStage {
-      onCreate() {
-          console.log("MyAbilityStage onCreate")
-          let AbilityLifecycleCallback  =  {
-              onAbilityCreate(ability){
-                  console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability));        
-              },
-              onAbilityWindowStageCreate(ability){
-                  console.log("AbilityLifecycleCallback onAbilityWindowStageCreate ability:" + JSON.stringify(ability));           
-              },
-              onAbilityWindowStageDestroy(ability){
-                  console.log("AbilityLifecycleCallback onAbilityWindowStageDestroy ability:" + JSON.stringify(ability));
-              },
-              onAbilityDestroy(ability){
-                  console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability));             
-              },
-              onAbilityForeground(ability){
-                  console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability));             
-              },
-              onAbilityBackground(ability){
-                  console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability));              
-              },
-              onAbilityContinue(ability){
-                  console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability));
-              }
-          }
-          // 1. Obtain applicationContext through the context attribute.
-          let applicationContext = this.context.getApplicationContext();
-          // 2. Use applicationContext to register a listener for the ability lifecycle in the application.
-          lifecycleid = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
-          console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleid));       
-      }
-      onDestroy() {
-          let applicationContext = this.context.getApplicationContext();
-          applicationContext.unregisterAbilityLifecycleCallback(lifecycleid, (error, data) => {
-          console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
-          });
-      }
-  }
+  let applicationContext = this.context.getApplicationContext();
+  let callbackId = 1;
+  applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
+      console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
+  });
   ```
diff --git a/en/application-dev/reference/apis/js-apis-application-context.md b/en/application-dev/reference/apis/js-apis-application-context.md
index 66cd6b7150041bdbf45d4d0e0adf105e0ade044b..cf5291224477451554ea36e823ecedc0629cbfe0 100644
--- a/en/application-dev/reference/apis/js-apis-application-context.md
+++ b/en/application-dev/reference/apis/js-apis-application-context.md
@@ -1,39 +1,43 @@
 # Context
 
+The **Context** module provides the context for running code. You can use the APIs to query and set the application information and resource manager.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides the context for running code, including **applicationInfo** and **resourceManager**.
-
-## Modules to Import
-```
-import AbilityContext from '@ohos.application.Ability';
-```
-
 ## Usage
 
 You must extend **AbilityContext** to implement this module.
 
+ ```js
+import AbilityContext from '@ohos.application.Ability'
+  class MainAbility extends AbilityContext {
+    onWindowStageCreate(windowStage) {
+      let test = "com.example.test";
+      let context = this.context.createBundleContext(test);
+    }
+  }
+ ```
+
 ## Attributes
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
-  | Name| Type| Readable| Writable| Description|
+| Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| resourceManager | ResourceManager | Yes| No| **ResourceManager** object.|
+| resourceManager | resmgr.ResourceManager; | Yes| No| **ResourceManager** object.|
 | applicationInfo | ApplicationInfo | Yes| No| Information about the application.|
 | cacheDir | string | Yes| No| Cache directory of the application on the internal storage.|
 | tempDir | string | Yes| No| Temporary file directory of the application.|
 | filesDir | string | Yes| No| File directory of the application on the internal storage.|
 | databaseDir | string | Yes| No| Storage directory of local data.|
-| storageDir | string | Yes| No| Storage directory of lightweight data.|
 | bundleCodeDir | string | Yes| No| Application installation path.|
 | distributedFilesDir | string | Yes| No| Storage directory of distributed application data files.|
 | eventHub | [EventHub](js-apis-eventhub.md) | Yes| No| Event hub information.|
 | area | [AreaMode](#areamode) | Yes| Yes| Area in which the file to be access is located.|
-
+| preferencesDir | string | Yes| Yes| Preferences directory of the application.|
 
 ## Context.createBundleContext
 
@@ -41,19 +45,23 @@ createBundleContext(bundleName: string): Context;
 
 Creates a context for a given application.
 
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | bundleName | string | Yes| Application bundle name.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | Yes| Application bundle name.|
 
 **Return value**
 
-  | Type| Description|
-  | -------- | -------- |
-  | Context | Context created.|
+| Type| Description|
+| -------- | -------- |
+| Context | Context created.|
 
 **Example**
 
@@ -79,15 +87,15 @@ Creates a context for a given HAP.
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | moduleName | string | Yes| HAP name in the application.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| moduleName | string | Yes| HAP name in the application.|
 
 **Return value**
 
-  | Type| Description|
-  | -------- | -------- |
-  | Context | Context created.|
+| Type| Description|
+| -------- | -------- |
+| Context | Context created.|
 
 **Example**
 
@@ -111,18 +119,20 @@ Creates a context for a given HAP in an application.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | bundleName | string | Yes| Application bundle name.|
-  | moduleName | string | Yes| HAP name in the application.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | Yes| Application bundle name.|
+| moduleName | string | Yes| HAP name in the application.|
 
 **Return value**
 
-  | Type| Description|
-  | -------- | -------- |
-  | Context | Context created.|
+| Type| Description|
+| -------- | -------- |
+| Context | Context created.|
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-application-missionInfo.md b/en/application-dev/reference/apis/js-apis-application-missionInfo.md
deleted file mode 100644
index 05938521e10970192409f856e68b816c18d3f3f0..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-application-missionInfo.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# MissionInfo
-
-> **NOTE**
-> 
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
-## Modules to Import
-
-```js
-import MissionInfo from '@ohos.application.missionInfo'
-```
-
-## MissionInfo
-
-Provides the mission information.
-
-**System capability**: SystemCapability.Ability.AbilityBase
-
-| Name| Type| Readable| Writable| Description| 
-| -------- | -------- | -------- | -------- | -------- |
-| missionId | number | Yes| Yes| Mission ID.| 
-| runningState | number | Yes| Yes| Running state of the mission.| 
-| lockedState | boolean | Yes| Yes| Locked state of the mission.| 
-| timestamp | string | Yes| Yes| Latest time when the mission was created or updated.| 
-| want | [Want](js-apis-application-Want.md) | Yes| Yes| **Want** information of the mission.| 
-| label | string | Yes| Yes| Label of the mission.| 
-| iconPath | string | Yes| Yes| Path of the mission icon.| 
-| continuable | boolean | Yes| Yes| Whether the mission is continuable.| 
diff --git a/en/application-dev/reference/apis/js-apis-application-shellCmdResult.md b/en/application-dev/reference/apis/js-apis-application-shellCmdResult.md
index e0cddeee652418cdd714507cee826971fce73e28..9c47b27f1173eba688942f542cf8eef6e9c90666 100644
--- a/en/application-dev/reference/apis/js-apis-application-shellCmdResult.md
+++ b/en/application-dev/reference/apis/js-apis-application-shellCmdResult.md
@@ -1,20 +1,34 @@
 # ShellCmdResult
 
+The **ShellCmdResult** module provides the shell command execution result.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-## Modules to Import
+## Usage
+
+The result is obtained by calling **executeShellCommand** in **abilityDelegator**.
 
 ```js
 import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+var abilityDelegator;
+var cmd = "cmd";
+var timeout = 100;
+
+abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
+abilityDelegator.executeShellCommand(cmd, timeout).then((data : any) => {
+    console.info("executeShellCommand promise");
+});
 ```
 
 ## ShellCmdResult
 
 Describes the shell command execution result.
 
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
 | Name     | Type  | Readable| Writable| Description                                                        |
 | --------- | ------ | ---- | ---- | ------------------------------------------------------------ |
-| stdResult | string | Yes  | Yes  | Standard output content.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
-| exitCode  | number | Yes  | Yes  | Result code.<br>**System capability**: SystemCapability.Ability.AbilityRuntime.Core|
+| stdResult | string | Yes  | Yes  | Standard output content. |
+| exitCode  | number | Yes  | Yes  | Result code. |
diff --git a/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md
index abd004e82d684fc3b038aebf8fb1153602137476..7c5ba607718d5d14317a55645627022b78976461 100644
--- a/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md
+++ b/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md
@@ -1,5 +1,7 @@
 # StaticSubscriberExtensionAbility
 
+The **StaticSubscriberExtensionAbility** module provides Extension abilities for static subscribers.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
@@ -16,13 +18,15 @@ onReceiveEvent(event: CommonEventData): void;
 
 Callback of the common event of a static subscriber.
 
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
   | -------- | -------- | -------- | -------- |
-  | event | CommonEventData | Yes| Callback of the common event of a static subscriber.| 
+  | event | CommonEventData | Yes| Common event of a static subscriber.| 
 
 **Example**
     
diff --git a/en/application-dev/reference/apis/js-apis-appmanager.md b/en/application-dev/reference/apis/js-apis-appmanager.md
index 236ed9c1af1231ebb1ddc8c63356a20f57cb3010..05ff78e77e6d6d54527148782b18d0dbca007cd6 100644
--- a/en/application-dev/reference/apis/js-apis-appmanager.md
+++ b/en/application-dev/reference/apis/js-apis-appmanager.md
@@ -1,21 +1,17 @@
 # appManager
 
+The **appManager** module implements application management. You can use the APIs of this module to query whether the application is undergoing a stability test, whether the application is running on a RAM constrained device, the memory size of the application, and information about the running process.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-
-Implements application management.
-
-
 ## Modules to Import
 
-
 ```js
 import app from '@ohos.application.appManager';
 ```
 
-
 ## appManager.isRunningInStabilityTest<sup>8+</sup>
 
 static isRunningInStabilityTest(callback: AsyncCallback&lt;boolean&gt;): void
@@ -165,6 +161,8 @@ getProcessRunningInfos(): Promise\<Array\<ProcessRunningInfo>>;
 
 Obtains information about the running processes. This API uses a promise to return the result.
 
+**Required permissions**: ohos.permission.GET_RUNNING_INFO
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 **Return value**
@@ -189,6 +187,8 @@ getProcessRunningInfos(callback: AsyncCallback\<Array\<ProcessRunningInfo>>): vo
 
 Obtains information about the running processes. This API uses an asynchronous callback to return the result.
 
+**Required permissions**: ohos.permission.GET_RUNNING_INFO
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 **Parameters**
@@ -206,13 +206,533 @@ Obtains information about the running processes. This API uses an asynchronous c
         })
   ```
 
-## ProcessRunningInfo
+## appManager.registerApplicationStateObserver<sup>8+</sup>
+
+registerApplicationStateObserver(observer: ApplicationStateObserver): number;
+
+Registers the application state observer.
+
+**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| observer | ApplicationStateObserver | No| Numeric code of the observer.|
+
+**Example**
+    
+  ```js
+  var applicationStateObserver = {
+    onForegroundApplicationChanged(appStateData) {
+        console.log('------------ onForegroundApplicationChanged -----------', appStateData);
+    },
+    onAbilityStateChanged(abilityStateData) {
+        console.log('------------ onAbilityStateChanged -----------', abilityStateData);
+    },
+    onProcessCreated(processData) {
+        console.log('------------ onProcessCreated -----------', processData);
+    },
+    onProcessDied(processData) {
+        console.log('------------ onProcessDied -----------', processData);
+    }
+  }
+  const observerCode = app.registerApplicationStateObserver(applicationStateObserver);
+  console.log('-------- observerCode: ---------', observerCode);
+
+  ```
+## appManager.unregisterApplicationStateObserver<sup>8+</sup>
+
+unregisterApplicationStateObserver(observerId: number,  callback: AsyncCallback\<void>): void;
+
+Deregisters the application state observer. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+ 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| observerId | number | No| Numeric code of the observer.|
+| callback | AsyncCallback\<void> | No| Callback used to return the result.|
+
+**Example**
+    
+  ```js
+    var observerId = 100;
+
+    function unregisterApplicationStateObserverCallback(err) {
+      if (err) {
+          console.log('------------ unregisterApplicationStateObserverCallback ------------', err);
+      }
+    }
+    app.unregisterApplicationStateObserver(observerId, unregisterApplicationStateObserverCallback);
+  ```
+
+## appManager.unregisterApplicationStateObserver<sup>8+</sup>
+
+unregisterApplicationStateObserver(observerId: number): Promise\<void>;
+
+Deregisters the application state observer. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| observerId | number | No| Numeric code of the observer.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+    
+  ```js
+    var observerId = 100;
+
+    app.unregisterApplicationStateObserver(observerId)
+   .then((data) => {
+       console.log('----------- unregisterApplicationStateObserver success ----------', data);
+   })
+   .catch((err) => {
+       console.log('----------- unregisterApplicationStateObserver fail ----------', err);
+   })
+  ```
+
+## appManager.getForegroundApplications<sup>8+</sup>
+
+getForegroundApplications(callback: AsyncCallback\<Array\<AppStateData>>): void;
+
+Obtains applications that run in the foreground. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.GET_RUNNING_INFO
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback\<Array\<AppStateData>> | No| Callback used to return the application state data.|
+
+**Example**
+    
+  ```js
+    function getForegroundApplicationsCallback(err, data) {
+      if (err) {
+          console.log('--------- getForegroundApplicationsCallback fail ---------', err);
+      } else {
+          console.log('--------- getForegroundApplicationsCallback success ---------', data)
+      }
+    }
+    app.getForegroundApplications(getForegroundApplicationsCallback);
+  ```
+
+## appManager.getForegroundApplications<sup>8+</sup>
+
+getForegroundApplications(): Promise\<Array\<AppStateData>>;
+
+Obtains applications that run in the foreground. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.GET_RUNNING_INFO
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise\<Array\<ProcessRunningInfo>> | Promise used to return the application state data.|
+
+**Example**
+    
+  ```js
+    app.getForegroundApplications()
+    .then((data) => {
+        console.log('--------- getForegroundApplications success -------', data);
+    })
+    .catch((err) => {
+        console.log('--------- getForegroundApplications fail -------', err);
+    })
+  ```
+
+## appManager.killProcessWithAccount<sup>8+</sup>
+
+killProcessWithAccount(bundleName: string, accountId: number): Promise\<void\>
+
+Kills the process by bundle name and account ID. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description| 
+  | -------- | -------- | -------- | -------- |
+  | bundleName | string | Yes| Bundle name of an application.| 
+  | accountId | number | Yes| Account ID.| 
+
+**Example**
+
+```js
+var bundleName = 'bundleName';
+var accountId = 0;
+app.killProcessWithAccount(bundleName, accountId)
+   .then((data) => {
+       console.log('------------ killProcessWithAccount success ------------', data);
+   })
+   .catch((err) => {
+       console.log('------------ killProcessWithAccount fail ------------', err);
+   })
+```
+
+
+## appManager.killProcessWithAccount<sup>8+</sup>
+
+killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\<void\>): void
+
+Kills the process by bundle name and account ID. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description| 
+  | -------- | -------- | -------- | -------- |
+  | bundleName | string | Yes| Bundle name of an application.| 
+  | accountId | number | Yes| Account ID.| 
+  | callback | AsyncCallback\<void\> | Yes| Callback used to return the result.| 
+
+**Example**
+
+```js
+var bundleName = 'bundleName';
+var accountId = 0;
+function killProcessWithAccountCallback(err, data) {
+   if (err) {
+       console.log('------------- killProcessWithAccountCallback fail, err: --------------', err);
+   } else {
+       console.log('------------- killProcessWithAccountCallback success, data: --------------', data);
+   }
+}
+app.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
+```
+
+## appManager.killProcessesByBundleName<sup>8+</sup>
+
+killProcessesByBundleName(bundleName: string, callback: AsyncCallback\<void>);
+
+Kills a process by bundle name. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CLEAN_BACKGROUND_PROCESSES
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | No| Bundle name of an application.|
+| callback | AsyncCallback\<void> | No| Callback used to return the result.|
+
+**Example**
+    
+  ```js
+    var bundleName = 'bundleName';
+    function killProcessesByBundleNameCallback(err, data) {
+      if (err) {
+          console.log('------------- killProcessesByBundleNameCallback fail, err: --------------', err);
+      } else {
+          console.log('------------- killProcessesByBundleNameCallback success, data: --------------', data);
+      }
+    }
+    app.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
+  ```
+
+## appManager.killProcessesByBundleName<sup>8+</sup>
+
+killProcessesByBundleName(bundleName: string): Promise\<void>;
+
+Kills a process by bundle name. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CLEAN_BACKGROUND_PROCESSES
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | No| Bundle name of an application.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+    
+  ```js
+var bundleName = 'bundleName';
+app.killProcessesByBundleName(bundleName)
+   .then((data) => {
+       console.log('------------ killProcessesByBundleName success ------------', data);
+   })
+   .catch((err) => {
+       console.log('------------ killProcessesByBundleName fail ------------', err);
+   })
+
+  ```
+
+## appManager.clearUpApplicationData<sup>8+</sup>
+
+clearUpApplicationData(bundleName: string, callback: AsyncCallback\<void>);
+
+Clears application data by bundle name. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CLEAN_APPLICATION_DATA
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | No| Bundle name of an application.|
+| callback | AsyncCallback\<void> | No| Callback used to return the result.|
+
+**Example**
+    
+  ```js
+    var bundleName = 'bundleName';
+    function clearUpApplicationDataCallback(err, data) {
+      if (err) {
+          console.log('------------- clearUpApplicationDataCallback fail, err: --------------', err);
+      } else {
+          console.log('------------- clearUpApplicationDataCallback success, data: --------------', data);
+      }
+    }
+    app.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
+
+  ```
+
+## appManager.clearUpApplicationData<sup>8+</sup>
+
+clearUpApplicationData(bundleName: string): Promise\<void>;
+
+Clears application data by bundle name. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CLEAN_APPLICATION_DATA
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| bundleName | string | No| Bundle name of an application.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+    
+  ```js
+  var bundleName = 'bundleName';
+  app.clearUpApplicationData(bundleName)
+    .then((data) => {
+        console.log('------------ clearUpApplicationData success ------------', data);
+    })
+    .catch((err) => {
+        console.log('------------ clearUpApplicationData fail ------------', err);
+    })
+
+  ```
+
+## ApplicationStateObserver.onForegroundApplicationChanged<sup>8+</sup>
+
+onForegroundApplicationChanged(appStateData: AppStateData): void;
+
+Called when the application state changes.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| appStateData | [AppStateData](#appstatedata) | No| Information about the application whose state is changed.|
+
+**Example**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const foregroundApplicationInfo = ApplicationStateObserver.onForegroundApplicationChanged();
+console.log('-------- foregroundApplicationInfo: ---------', foregroundApplicationInfo);
+```
+
+## ApplicationStateObserver.onAbilityStateChanged<sup>8+</sup>
+
+onAbilityStateChanged(abilityStateData: AbilityStateData): void;
+
+Called when the ability state changes.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| abilityStateData | [AbilityStateData](#abilitystatedata) | No| Information about the ability whose state is changed.|
+
+**Example**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const abilityStateChangedInfo = ApplicationStateObserver.onAbilityStateChanged();
+console.log('-------- abilityStateChangedInfo: ---------', abilityStateChangedInfo);
+```
+
+## ApplicationStateObserver.onProcessCreated<sup>8+</sup>
+
+onProcessCreated(processData: ProcessData): void;
+
+Called when a process is created.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| processData | [ProcessData](#processdata) | No| Process information.|
+
+**Example**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const processCreatedInfo = ApplicationStateObserver.onProcessCreated();
+console.log('-------- processCreatedInfo: ---------', processCreatedInfo);
+```
+
+## ApplicationStateObserver.onProcessDied<sup>8+</sup>
+
+onProcessDied(processData: ProcessData): void;
+
+Called when a process is terminated.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| processData | ProcessData | No| Process information.|
+
+**Example**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const processDiedInfo = ApplicationStateObserver.onProcessDied();
+console.log('-------- processDiedInfo: ---------', processDiedInfo);
+```
+
+## AppStateData
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
 | Name       | Readable/Writable| Type                | Mandatory| Description                                                        |
 | ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
-| pid<sup>8+</sup>     | Read only    | number               | No  | Process ID.                               |
+| bundleName<sup>8+</sup>     | Read only    | string               | No  | Bundle name of an application.                               |
 | uid<sup>8+</sup>   | Read only    | number               | No  | User ID.|
-| processName<sup>8+</sup>  | Read only    | string               | No  | Process name.|
-| bundleNames<sup>8+</sup>          | Read only    | Array\<string>              | No  | **bundleName** array in the running processes.|
+| state<sup>8+</sup>  | Read only    | number               | No  | Application state.|
+
+## AbilityStateData
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+| Name                    | Type    | Readable| Writable| Description                      |
+| ----------------------- | ---------| ---- | ---- | ------------------------- |
+| pid<sup>8+</sup>                     | number   | Yes  | No  | Process ID.                   |
+| bundleName<sup>8+</sup>              | string   | Yes  | No | Bundle name of an application.                 |
+| abilityName<sup>8+</sup>             | string   | Yes  | No  | Ability name.              |
+| uid<sup>8+</sup>                     | number   | Yes  | No  | User ID.                 |
+| state<sup>8+</sup>                   | number   | Yes  | No  | Application information.               |
+| moduleName<sup>9+</sup> | string   | Yes  | No  | Name of the HAP file to which the ability belongs.   |
+| abilityType<sup>8+</sup> | string   | Yes  | No  | Ability type.   |
+
+## ProcessData
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Mission
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+| Name                    | Type    | Readable| Writable| Description                      |
+| ----------------------- | ---------| ---- | ---- | ------------------------- |
+| pid<sup>8+</sup>         | number   | Yes  | No  | Process ID.                   |
+| bundleName<sup>8+</sup>  | string   | Yes  | No | Bundle name of an application.                 |
+| uid<sup>8+</sup>         | number   | Yes  | No  | User ID.                 |
+
+
+
+## ProcessRunningInfo
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+| Name       | Readable/Writable| Type                | Mandatory| Description                                                        |
+| ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
+| pid<sup>9+</sup>     | Read only    | number               | No  | Process ID.                               |
+| uid<sup>9+</sup>   | Read only    | number               | No  | User ID.|
+| processName<sup>9+</sup>  | Read only    | string               | No  | Process name.|
+| bundleNames<sup>9+</sup>          | Read only    | Array\<string>              | No  | **bundleName** array in the running processes.|
diff --git a/en/application-dev/reference/apis/js-apis-audio.md b/en/application-dev/reference/apis/js-apis-audio.md
index 894370d603afe13fef35c965beb2adaec6f1ef8b..68d01ed3f45885cf6b53fb3de35fc9b3e6c45da5 100644
--- a/en/application-dev/reference/apis/js-apis-audio.md
+++ b/en/application-dev/reference/apis/js-apis-audio.md
@@ -2273,7 +2273,43 @@ Writes the buffer. This API uses an asynchronous callback to return the result.
 ```
 import audio from '@ohos.multimedia.audio';
 import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
 
+var audioStreamInfo = {
+    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+    channels: audio.AudioChannel.CHANNEL_2,
+    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+    content: audio.ContentType.CONTENT_TYPE_SPEECH,
+    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION
+    rendererFlags: 1
+}
+
+var audioRendererOptions = {
+    streamInfo: audioStreamInfo,
+    rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data)=> {
+    audioRenderer = data;
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+    }).catch((err) => {
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
+    });
+var bufferSize;
+audioRenderer.getBufferSize().then((data)=> {
+    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
+    bufferSize = data;
+    }).catch((err) => {
+    console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
+    });
+console.info('Buffer size:'+bufferSize);
+var context = featureAbility.getContext();
+var path = await context.getCacheDir();
+var filePath = path+"/StarWars10s-2C-48000-4SW.wav"
 let ss = fileio.createStreamSync(filePath, 'r');
 let buf = new ArrayBuffer(bufferSize);
 ss.readSync(buf);
@@ -2305,7 +2341,42 @@ Writes the buffer. This API uses a promise to return the result.
 ```
 import audio from '@ohos.multimedia.audio';
 import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
+
+var audioStreamInfo = {
+    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
+    channels:audio.AudioChannel.CHANNEL_2,
+    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+    content: audio.ContentType.CONTENT_TYPE_SPEECH,
+    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+    rendererFlags: 1
+}
 
+var audioRendererOptions = {
+    streamInfo: audioStreamInfo,
+    rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data) => {
+    audioRenderer = data;
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+    }).catch((err) => {
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
+    });
+var bufferSize;
+audioRenderer.getBufferSize().then((data) => {
+    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
+    bufferSize = data;
+    }).catch((err) => {
+    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
+    });
+console.info('BufferSize: ' + bufferSize);
+var context = featureAbility.getContext();
+var path = await context.getCacheDir();
 var filePath = 'data/StarWars10s-2C-48000-4SW.wav';
 let ss = fileio.createStreamSync(filePath, 'r');
 let buf = new ArrayBuffer(bufferSize);
@@ -2408,12 +2479,39 @@ Obtains a reasonable minimum buffer size in bytes for rendering. This API uses a
 **Example**
 
 ```
+import audio from '@ohos.multimedia.audio';
+import fileio from '@ohos.fileio';
+
+var audioStreamInfo = {
+    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
+    channels:audio.AudioChannel.CHANNEL_2,
+    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+    content: audio.ContentType.CONTENT_TYPE_SPEECH,
+    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+    rendererFlags: 1
+}
+
+var audioRendererOptions = {
+    streamInfo: audioStreamInfo,
+    rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data) => {
+    audioRenderer = data;
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+    }).catch((err) => {
+    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
+    });
 var bufferSize;
-await audioRenderer.getBufferSize().then(async function (data) => {
-    console.info('AudioFrameworkRenderLog: getBufferSize :SUCCESS '+data);
+audioRenderer.getBufferSize().then((data) => {
+    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
     bufferSize=data;
 }).catch((err) => {
-    console.info('AudioFrameworkRenderLog: getBufferSize :ERROR : '+err.message);
+    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
 });
 ```
 
@@ -2542,7 +2640,8 @@ Sets the audio interruption mode for the application. This API uses a promise to
 **Example**
 
 ```
-audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE).then(() => {
+const audioManager = audio.getAudioManager();
+audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => {
     console.log('Promise returned to indicate a successful volume setting.');
 });
 ```
@@ -2564,7 +2663,8 @@ Sets the audio interruption mode for the application. This API uses a callback t
 **Example**
 
 ```
-audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE,()=>{
+const audioManager = audio.getAudioManager();
+audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE,()=>{
     console.log('Callback returned to indicate a successful volume setting.');
 });
 ```
@@ -2654,7 +2754,7 @@ Subscribes to mark reached events. When the number of frames rendered reaches th
 
 ```
 audioRenderer.on('markReach', 1000, (position) => {
-    if (position == "1000") {
+    if (position == 1000) {
         console.log('ON Triggered successfully');
     }
 });
@@ -2701,7 +2801,7 @@ Subscribes to period reached events. When the period of frame rendering reaches
 
 ```
 audioRenderer.on('periodReach', 1000, (position) => {
-    if (position == "1000") {
+    if (position == 1000) {
         console.log('ON Triggered successfully');
     }
 });
@@ -2935,13 +3035,35 @@ Starts capturing. This API uses a promise to return the result.
 **Example**
 
 ```
+import audio from '@ohos.multimedia.audio';
+import fileio from '@ohos.fileio';
+
+var audioStreamInfo = {
+    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+    channels: audio.AudioChannel.CHANNEL_2,
+    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioCapturerInfo = {
+    source: audio.SourceType.SOURCE_TYPE_MIC,
+    capturerFlags = 1
+}
+
+var audioCapturer;
+audio.createAudioCapturer(audioCapturerOptions).then((data) => {
+    audioCapturer = data;
+    console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
+    }).catch((err) => {
+    console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message);
+    });
 audioCapturer.start().then(() => {
     console.info('AudioFrameworkRecLog: ---------START---------');
-    console.info('AudioFrameworkRecLog: Capturer started :SUCCESS ');
-    console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state);
-    console.info('AudioFrameworkRecLog: Capturer started :SUCCESS ');
+    console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
+    console.info('AudioFrameworkRecLog: AudioCapturer: STATE: '+audioCapturer.state);
+    console.info('AudioFrameworkRecLog: Capturer started: SUCCESS ');
     if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
-        stateFlag = true;
+        console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
     }
 }).catch((err) => {
     console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message);
@@ -2994,15 +3116,13 @@ Stops capturing. This API uses a promise to return the result.
 
 ```
 audioCapturer.stop().then(() => {
-    console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
-    console.info('AudioFrameworkRecLog: Capturer stopped : SUCCESS');
+    console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
+    console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
     if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
-        stateFlag=true;
-        console.info('AudioFrameworkRecLog: resultFlag : '+stateFlag);
+        console.info('AudioFrameworkRecLog: State is Stopped': ');
     }
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message);
-    stateFlag=false;
+    console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message);
 });
 ```
 
@@ -3054,11 +3174,9 @@ audioCapturer.release().then(() => {
     console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
     console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
     console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state);
-    stateFlag=true;
     console.info('AudioFrameworkRecLog: stateFlag : '+stateFlag);
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message);
-    stateFlag=false
+    console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message);
 });
 ```
 
@@ -3082,6 +3200,13 @@ Reads the buffer. This API uses an asynchronous callback to return the result.
 **Example**
 
 ```
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
+    bufferSize = data;
+    }).catch((err) => {
+    console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message);
+    });
 audioCapturer.read(bufferSize, true, async(err, buffer) => {
     if (!err) {
         console.log("Success in reading the buffer data");
@@ -3114,6 +3239,14 @@ Reads the buffer. This API uses a promise to return the result.
 **Example**
 
 ```
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
+    bufferSize = data;
+    }).catch((err) => {
+    console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message);
+    });
+console.info('Buffer size: ' + bufferSize);
 audioCapturer.read(bufferSize, true).then((buffer) => {
     console.info('buffer read successfully');
 }).catch((err) => {
@@ -3217,12 +3350,12 @@ Obtains a reasonable minimum buffer size in bytes for capturing. This API uses a
 **Example**
 
 ```
-await audioCapturer.getBufferSize().then(async function (bufferSize) {
-    console.info('AudioFrameworkRecordLog: getBufferSize :SUCCESS '+ bufferSize);
-    var buffer = await audioCapturer.read(bufferSize, true);
-    console.info('Buffer read is ' + buffer );
-    }).catch((err) => {
-    console.info('AudioFrameworkRecordLog: getBufferSize :ERROR : '+err.message);
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+    console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data);
+    bufferSize = data;
+}).catch((err) => {
+    console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message);
 });
 ```
 
@@ -3247,7 +3380,7 @@ Subscribes to mark reached events. When the number of frames captured reaches th
 
 ```
 audioCapturer.on('markReach', 1000, (position) => {
-    if (position == "1000") {
+    if (position == 1000) {
         console.log('ON Triggered successfully');
     }
 });
@@ -3293,7 +3426,7 @@ Subscribes to mark reached events. When the period of frame capturing reaches th
 
 ```
 audioCapturer.on('periodReach', 1000, (position) => {
-    if (position == "1000") {
+    if (position == 1000) {
         console.log('ON Triggered successfully');
     }
 });
diff --git a/en/application-dev/reference/apis/js-apis-bluetooth.md b/en/application-dev/reference/apis/js-apis-bluetooth.md
index 5eacfc8a69610d57abec3afdd0fba6f7addaa30b..32dc8d6c6ebea54129c103a2323dacdc34a442c1 100644
--- a/en/application-dev/reference/apis/js-apis-bluetooth.md
+++ b/en/application-dev/reference/apis/js-apis-bluetooth.md
@@ -1011,7 +1011,7 @@ bluetooth.off('sppRead', clientNumber);
 ```
 
 
-## bluetooth.getProfile<sup>8+</sup><a name="getProfile"></a>
+## bluetooth.getProfile<sup>8+</sup><a name="bt-getProfile"></a>
 
 getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile
 
@@ -1037,9 +1037,9 @@ Obtains a profile object.
 let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
 ```
 
-## bluetooth.getProfile<sup>9+</sup><a name="getProfile"></a>
+## bluetooth.getProfileInst<sup>9+</sup><a name="getProfileInst"></a>
 
-getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile
+getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile
 
 Obtains a profile instance. API version 9 is added with **HidHostProfile** and **PanProfile**.
 
@@ -1060,7 +1060,7 @@ Obtains a profile instance. API version 9 is added with **HidHostProfile** and *
 **Example**
 
 ```js
-let hidHost = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
+let hidHost = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST);
 ```
 
 
@@ -1451,14 +1451,12 @@ a2dpSrc.off('connectionStateChange', onReceiveEvent);
 ```
 
 
-### getPlayingState<sup>9+</sup>
+### getPlayingState<sup>8+</sup>
 
 getPlayingState(device: string): PlayingState
 
 Obtains the playing state of a device.
 
-**Required permissions**: ohos.permission.USE_BLUETOOTH
-
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
 **Parameters**
@@ -1559,7 +1557,7 @@ Subscribes to the HFP connection state change events.
 | Name     | Type                                      | Mandatory  | Description                                      |
 | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
 | type     | string                                   | Yes   | Event type. The value **connectionStateChange** indicates an HFP connection state change event.|
-| callback | Callback&lt;[StateChangeParam](#StateChangeParam)&gt; | Yes   | Callback invoked to return the HFP connection state change event.                              |
+| callback | Callback&lt;[StateChangeParam](#StateChangeParam)&gt; | Yes   | Callback used to return the HFP connection state change event.                              |
 
 **Return value**
 
@@ -1612,7 +1610,7 @@ hfpAg.off('connectionStateChange', onReceiveEvent);
 Before using a method of **HidHostProfile**, you need to create an instance of this class by using the **getProfile()** method.
 
 
-### connect<sup>9+</sup><a name="connect"></a>
+### connect<sup>9+</sup><a name="HidHost-connect"></a>
 
 connect(device: string): boolean
 
@@ -1644,7 +1642,7 @@ let ret = hidHostProfile.connect('XX:XX:XX:XX:XX:XX');
 ```
 
 
-### disconnect<sup>9+</sup><a name="disconnect"></a>
+### disconnect<sup>9+</sup><a name="HidHost-disconnect"></a>
 
 disconnect(device: string): boolean
 
@@ -1742,7 +1740,7 @@ hidHost.off('connectionStateChange', onReceiveEvent);
 Before using a method of **PanProfile**, you need to create an instance of this class by using the **getProfile()** method.
 
 
-### disconnect<sup>9+</sup><a name="disconnect"></a>
+### disconnect<sup>9+</sup><a name="PanP-disconnect"></a>
 
 disconnect(device: string): boolean
 
@@ -1837,7 +1835,7 @@ panProfile.off('connectionStateChange', onReceiveEvent);
 
 ### setTethering<sup>9+</sup><a name="setTethering"></a>
 
-setTethering(value: boolean): boolean
+setTethering(enable: boolean): void
 
 Sets tethering.
 
@@ -1871,12 +1869,10 @@ let ret = panProfile.setTethering(true);
 
 isTetheringOn(): boolean
 
-Obtains the tethering status.
+Obtains the tethering state.
 
 This is a system API.
 
-**Required permissions**: ohos.permission.DISCOVER_BLUETOOTH
-
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
 **Return value**
@@ -2019,7 +2015,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 
 // Create characteristics.
@@ -2129,7 +2125,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 let arrayBufferC = new ArrayBuffer(8);
 let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
@@ -2502,7 +2498,6 @@ let gattServer = bluetooth.BLE.createGattServer();
 gattServer.off("descriptorWrite");
 ```
 
-
 ### on('connectStateChange')
 
 on(type: "connectStateChange", callback: Callback&lt;BLEConnectChangedState&gt;): void
@@ -2709,8 +2704,10 @@ Obtains all services of the remote BLE device. This API uses a promise to return
 
 ```js
 // Promise
-gattClientDevice.getServices().then(result => {
-    console.info("Got services successfully:" + JSON.stringify(result));
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
+device.connect();
+device.getServices().then(result => {
+    console.info("getServices successfully:" + JSON.stringify(result));
 });
 ```
 
@@ -3051,7 +3048,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 let arrayBufferC = new ArrayBuffer(8);
 let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
@@ -3311,7 +3308,7 @@ Enumerates the scan modes.
 
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
-| Name                                      | Default Value  | Description             |
+| Name                                      | Default Value | Description             |
 | ---------------------------------------- | ---- | --------------- |
 | SCAN_MODE_NONE                           | 0    | No scan mode.        |
 | SCAN_MODE_CONNECTABLE                    | 1    | Connectable mode.       |
@@ -3326,7 +3323,7 @@ Enumerates the pairing states.
 
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
-| Name                | Default Value  | Description    |
+| Name                | Default Value | Description    |
 | ------------------ | ---- | ------ |
 | BOND_STATE_INVALID | 0    | Invalid pairing.|
 | BOND_STATE_BONDING | 1    | Pairing. |
@@ -3352,7 +3349,7 @@ Enumerates the SPP link types.
 
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
-| Name        | Default Value  | Description           |
+| Name        | Default Value | Description           |
 | ---------- | ---- | ------------- |
 | SPP_RFCOMM | 0    | Radio frequency communication (RFCOMM) link type.|
 
@@ -3536,7 +3533,7 @@ Defines the scan filter parameters.
 | serviceSolicitationUuidMask<sup>9+</sup> | string      | Yes  | Yes  | Service solicitation UUID mask of the device to filter, for example, **FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF**.|
 | serviceData<sup>9+</sup>                 | ArrayBuffer | Yes  | Yes  | Service data of the device to filter, for example, **[0x90, 0x00, 0xF1, 0xF2]**.|
 | serviceDataMask<sup>9+</sup>             | ArrayBuffer | Yes  | Yes  | Service data mask of the device to filter, for example, **[0xFF,0xFF,0xFF,0xFF]**.|
-| manufacturerId<sup>9+</sup>              | number      | Yes  | Yes  | Manufacturer ID of the device to filter, for example, **0x0006**.                |
+| manufactureId<sup>9+</sup>               | number      | Yes  | Yes  | Manufacturer ID of the device to filter, for example, **0x0006**.                |
 | manufactureData<sup>9+</sup>             | ArrayBuffer | Yes  | Yes  | Manufacturer data of the device to filter, for example, **[0x1F,0x2F,0x3F]**.|
 | manufactureDataMask<sup>9+</sup>         | ArrayBuffer | Yes  | Yes  | Manufacturer data mask of the device to filter, for example, **[0xFF, 0xFF, 0xFF]**.|
 
@@ -3617,7 +3614,7 @@ Defines the BLE advertising parameters.
 
 | Name         | Type   | Readable  | Writable  | Description                                      |
 | ----------- | ------- | ---- | ---- | ---------------------------------------- |
-| interval    | number  | Yes   | Yes   | Interval for BLE advertising. The minimum value is **32** slots (20 ms). The maximum value is **16777215** slots. The default value is **1600** slots (1s).|
+| interval    | number  | Yes   | Yes   | Interval for BLE advertising. The minimum value is **32** slots (20 ms). The maximum value is **16384** slots. The default value is **1600** slots (1s).|
 | txPower     | number  | Yes   | Yes   | Transmit power, in dBm. The value range is -127 to 1. The default value is **-7**.  |
 | connectable | boolean | Yes   | Yes   | Whether the advertisement is connectable. The default value is **true**.                  |
 
@@ -3828,7 +3825,7 @@ Enumerates the A2DP playing states.
 
 ## ProfileId<sup>8+</sup><a name="ProfileId"></a>
 
-Enumerates the Bluetooth profiles. API version 9 is added with **PROFILE_HID_HOST**.
+Enumerates the Bluetooth profiles. API version 9 is added with **PROFILE_HID_HOST** and **PROFILE_PAN_NETWORK**.
 
 **System capability**: SystemCapability.Communication.Bluetooth.Core
 
@@ -3837,3 +3834,4 @@ Enumerates the Bluetooth profiles. API version 9 is added with **PROFILE_HID_HOS
 | PROFILE_A2DP_SOURCE              | 0x0001 | A2DP profile.|
 | PROFILE_HANDS_FREE_AUDIO_GATEWAY | 0x0004 | HFP profile. |
 | PROFILE_HID_HOST<sup>9+</sup> | 0x0006 | Human Interface Device (HID) profile. |
+| PROFILE_PAN_NETWORK<sup>9+</sup> | 0x0007 | PAN profile. |
diff --git a/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md b/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
index 185338803c92789aea72fa0fca2ab7791ab89ea1..94182ce2915f60bd6998f512d17288920549d3f8 100644
--- a/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
@@ -1,17 +1,15 @@
 # ApplicationInfo
 
+The **ApplicationInfo** module provides application information. Unless otherwise specified, all attributes are obtained through **GET_BUNDLE_DEFAULT**.
+
 > **NOTE**
 >
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides the application information.
-
 ## ApplicationInfo
 
 **System capability**: SystemCapability.BundleManager.BundleFramework
 
-
-
 | Name                      | Type                                                        | Readable| Writable| Description                                                        |
 | -------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
 | name                       | string                                                       | Yes  | No  | Application name.                                              |
@@ -26,16 +24,19 @@ Provides the application information.
 | process                    | string                                                       | Yes  | No  | Process in which the application runs. If this parameter is not set, the bundle name is used.                  |
 | supportedModes             | number                                                       | Yes  | No  | Running modes supported by the application.                                      |
 | moduleSourceDirs           | Array\<string>                                               | Yes  | No  | Relative paths for storing application resources.                                |
-| permissions                | Array\<string>                                               | Yes  | No  | Permissions required for accessing the application.                                      |
+| permissions                | Array\<string>                                               | Yes  | No  | Permissions required for accessing the application.<br>The value is obtained by passing **GET_APPLICATION_INFO_WITH_PERMISSION**.|
 | moduleInfos                | Array\<[ModuleInfo](js-apis-bundle-ModuleInfo.md)>           | Yes  | No  | Application module information.                                          |
 | entryDir                   | string                                                       | Yes  | No  | Path for storing application files.                                      |
 | codePath<sup>8+</sup>      | string                                                       | Yes  | No  | Installation directory of the application.                                          |
-| metaData<sup>8+</sup>      | Map\<string, Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)>> | Yes  | No  | Custom metadata of the application.                                      |
-| metadata<sup>9+</sup>      | Map\<string, Array\<[Metadata](js-apis-bundle-Metadata.md)>> | Yes  | No  | Metadata of the application.                                            |
+| metaData<sup>8+</sup>      | Map\<string, Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)>> | Yes  | No  | Custom metadata of the application.<br>The value is obtained by passing **GET_APPLICATION_INFO_WITH_METADATA**.|
+| metadata<sup>9+</sup>      | Map\<string, Array\<[Metadata](js-apis-bundle-Metadata.md)>> | Yes  | No  | Metadata of the application.<br>The value is obtained by passing **GET_APPLICATION_INFO_WITH_METADATA**.|
 | removable<sup>8+</sup>     | boolean                                                      | Yes  | No  | Whether the application is removable.                                      |
 | accessTokenId<sup>8+</sup> | number                                                       | Yes  | No  | Access token ID of the application.                                     |
 | uid<sup>8+</sup>           | number                                                       | Yes  | No  | UID of the application.                                               |
 | entityType<sup>8+</sup>    | string                                                       | Yes  | No  | Entity type of the application.                                          |
-| fingerprint<sup>9+</sup>   | string                                                       | Yes  | No  | Signing certificate fingerprint of the application, that is, the SHA-256 checksum of the signing certificate that you request for the application.|
+| fingerprint<sup>9+</sup>   | string                                                       | Yes  | No  | Signing certificate fingerprint of the application, that is, the SHA-256 checksum of the signing certificate that you request for the application.<br>The value is obtained by passing **GET_APPLICATION_INFO_WITH_CERTIFICATE_FINGERPRINT**.|
+| iconResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Icon resource of the application.|
+| labelResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Label resource of the application.|
+| descriptionResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Description resource of the application.|
 | appDistributionType<sup>9+</sup>   | string                                                       | Yes  | No  | Distribution type of the application signing certificate. The options are **app_gallery**, **enterprise**, **os_integration**, and **crowdtesting**.   |
 | appProvisionType<sup>9+</sup>   | string                                                       | Yes  | No  | Type of the application signing certificate file. The options are **debug** and **release**.|
diff --git a/en/application-dev/reference/apis/js-apis-bundle-BundleInfo.md b/en/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
index f9e8ea3be2d7ccfff71426848d2dbc2f0e349201..eb85e5d52d50068b8147c1a4789389b2cf5506e1 100644
--- a/en/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
@@ -1,45 +1,41 @@
 # BundleInfo
 
-
-
 > **NOTE**
 >
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-
-
-Provides the application bundle information.
+The **BundleInfo** module provides bundle information. Unless otherwise specified, all attributes are obtained through **GET_BUNDLE_DEFAULT**.
 
 ## BundleInfo
 
  **System capability**: SystemCapability.BundleManager.BundleFramework
 
-| Name                             | Type                                                        | Readable| Writable| Description                                      |
-| --------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------ |
-| name                              | string                                                       | Yes  | No  | Bundle name.                              |
-| type                              | string                                                       | Yes  | No  | Bundle type.                                |
-| appId                             | string                                                       | Yes  | No  | ID of the application to which the bundle belongs.                      |
-| uid                               | number                                                       | Yes  | No  | UID of the application to which the bundle belongs.                     |
-| installTime                       | number                                                       | Yes  | No  | Time when the HAP file was installed.                             |
-| updateTime                        | number                                                       | Yes  | No  | Time when the HAP file was updated.                             |
-| appInfo                           | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)         | Yes  | No  | Application configuration information.                        |
-| abilityInfos                      | Array\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)>         | Yes  | No  | Ability configuration information.                         |
-| reqPermissions                    | Array\<string>                                               | Yes  | No  | Permissions to request from the system for running the application.          |
-| reqPermissionDetails              | Array\<[ReqPermissionDetail](#ReqPermissionDetail)>          | Yes  | No  | Detailed information of the permissions to request from the system.|
-| vendor                            | string                                                       | Yes  | No  | Vendor of the bundle.                            |
-| versionCode                       | number                                                       | Yes  | No  | Version number of the bundle.                            |
-| versionName                       | string                                                       | Yes  | No  | Version description of the bundle.                  |
-| compatibleVersion                 | number                                                       | Yes  | No  | Earliest SDK version required for running the bundle.           |
-| targetVersion                     | number                                                       | Yes  | No  | Latest SDK version required for running the bundle.             |
-| isCompressNativeLibs              | boolean                                                      | Yes  | No  | Whether to compress the native library of the bundle. The default value is **true**.        |
-| hapModuleInfos                    | Array\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)>     | Yes  | No  | Module configuration information.                            |
-| entryModuleName                   | string                                                       | Yes  | No  | Name of the entry module.                           |
-| cpuAbi                            | string                                                       | Yes  | No  | cpuAbi information of the bundle.                        |
-| isSilentInstallation              | string                                                       | Yes  | No  | Whether the application can be installed in silent mode.                          |
-| minCompatibleVersionCode          | number                                                       | Yes  | No  | Earliest version compatible with the bundle in the distributed scenario.        |
-| entryInstallationFree             | boolean                                                      | Yes  | No  | Whether installation-free is supported for the entry module.                       |
-| reqPermissionStates<sup>8+</sup>  | Array\<number>                                               | Yes  | No  | Permission grant state.                        |
-| extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | Yes  | No  | Extension ability information.                       |
+| Name                             | Type                                                        | Readable| Writable| Description                                                        |
+| --------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
+| name                              | string                                                       | Yes  | No  | Bundle name.                                                |
+| type                              | string                                                       | Yes  | No  | Bundle type.                                                  |
+| appId                             | string                                                       | Yes  | No  | ID of the application to which the bundle belongs.                                        |
+| uid                               | number                                                       | Yes  | No  | UID of the application to which the bundle belongs.                                       |
+| installTime                       | number                                                       | Yes  | No  | Time when the HAP file was installed.                                               |
+| updateTime                        | number                                                       | Yes  | No  | Time when the HAP file was updated.                                               |
+| appInfo                           | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)         | Yes  | No  | Application configuration information.                                          |
+| abilityInfos                      | Array\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)>         | Yes  | No  | Ability configuration information.<br>The value is obtained by passing **GET_BUNDLE_WITH_ABILITIES**.|
+| reqPermissions                    | Array\<string>                                               | Yes  | No  | Permissions to request from the system for running the application.<br>The value is obtained by passing **GET_BUNDLE_WITH_REQUESTED_PERMISSION**.|
+| reqPermissionDetails              | Array\<[ReqPermissionDetail](#reqpermissiondetail)>          | Yes  | No  | Detailed information of the permissions to request from the system.<br>The value is obtained by passing **GET_BUNDLE_WITH_REQUESTED_PERMISSION**.|
+| vendor                            | string                                                       | Yes  | No  | Vendor of the bundle.                                              |
+| versionCode                       | number                                                       | Yes  | No  | Version number of the bundle.                                              |
+| versionName                       | string                                                       | Yes  | No  | Version description of the bundle.                                    |
+| compatibleVersion                 | number                                                       | Yes  | No  | Earliest SDK version required for running the bundle.                             |
+| targetVersion                     | number                                                       | Yes  | No  | Latest SDK version required for running the bundle.                               |
+| isCompressNativeLibs              | boolean                                                      | Yes  | No  | Whether to compress the native library of the bundle. The default value is **true**.                          |
+| hapModuleInfos                    | Array\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)>     | Yes  | No  | Module configuration information.                                              |
+| entryModuleName                   | string                                                       | Yes  | No  | Name of the entry module.                                             |
+| cpuAbi                            | string                                                       | Yes  | No  | CPU and ABI information of the bundle.                                          |
+| isSilentInstallation              | string                                                       | Yes  | No  | Whether the application can be installed in silent mode.                                            |
+| minCompatibleVersionCode          | number                                                       | Yes  | No  | Earliest version compatible with the bundle in the distributed scenario.                          |
+| entryInstallationFree             | boolean                                                      | Yes  | No  | Whether installation-free is supported for the entry module.                                         |
+| reqPermissionStates<sup>8+</sup>  | Array\<number>                                               | Yes  | No  | Permission grant state.                                          |
+| extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | Yes  | No  | Extension ability information.<br>The value is obtained by passing **GET_BUNDLE_WITH_EXTENSION_ABILITY**.|
 
 
 
diff --git a/en/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md b/en/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
index 3c98a25b721a8f3cce41f927d7a35456761db366..9b11bb2f18da535af770b96cda13981cef95c62a 100644
--- a/en/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
@@ -6,9 +6,7 @@
 >
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-
-
-Provides the Extension ability information.
+The **ExtensionAbilityInfo** module provides Extension ability information. Unless otherwise specified, all attributes are obtained through **GET_BUNDLE_DEFAULT**.
 
 ## ExtensionAbilityInfo
 
@@ -28,5 +26,5 @@ Provides the Extension ability information.
 | applicationInfo      | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md) | Yes  | No  | Application information of the Extension ability.                                |
 | metadata             | Array\<[Metadata](js-apis-bundle-Metadata.md)>       | Yes  | No  | Metadata of the Extension ability.                          |
 | enabled              | boolean                                              | Yes  | No  | Whether the Extension ability is enabled.                          |
-| readPermission       | string                                               | Yes  | No  | Permission required for reading the Extension ability data.                |
+| readPermission       | string                                               | Yes  | No  | Permission required for reading data from the Extension ability.                |
 | writePermission      | string                                               | Yes  | No  | Permission required for writing data to the Extension ability.                |
diff --git a/en/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md b/en/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
index 2f6dbbef26e41ec1f78fe5768c2389d1a8ee0578..5a11609281eebb7464b1e627ec432b4ffad72700 100644
--- a/en/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
@@ -6,16 +6,12 @@
 >
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-
-
-Provides the HAP module information.
+The **HapModuleInfo** module provides module information. Unless otherwise specified, all attributes are obtained through **GET_BUNDLE_DEFAULT**.
 
 ## HapModuleInfo
 
 **System capability**: SystemCapability.BundleManager.BundleFramework
 
-
-
 | Name                             | Type                                                        | Readable| Writable| Description                |
 | --------------------------------- | ------------------------------------------------------------ | ---- | ---- | -------------------- |
 | name                              | string                                                       | Yes  | No  | Module name.            |
@@ -36,4 +32,4 @@ Provides the HAP module information.
 | mainElementName<sup>9+</sup>      | string                                                       | Yes  | No  | Information about the main ability.     |
 | extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | Yes  | No  | Information about the Extension ability.|
 | metadata<sup>9+</sup>             | Array\<[Metadata](js-apis-bundle-Metadata.md)>               | Yes  | No  | Metadata of the ability.     |
-| hashValue<sup>9+</sup>            | string                                                       | Yes  | No  | Hash value of the module.     |
+| hashValue<sup>9+</sup>            | string                                                       | Yes  | No  | Hash value of the module.<br>The value is obtained by passing **GET_BUNDLE_WITH_HASH_VALUE**.|
diff --git a/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md b/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..e80cf7f78b02192642a29794feaf794052bd4dc4
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md
@@ -0,0 +1,474 @@
+# DefaultAppManager
+
+The **DefaultAppManager** module provides APIs to query whether the current application is the default application of a specific type.
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+## Modules to Import
+
+```
+import defaultAppMgr from '@ohos.bundle.defaultAppManager'
+```
+## defaultAppMgr.ApplicationType
+
+Enumerates the application types.
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+| Name     | Type    | Description                                  |
+| -------- | -------- | -------------------------------------- |
+| BROWSER  | string   | Default browser.                           |
+| IMAGE    | string   | Default image viewer.                        |
+| AUDIO    | string   | Default audio player.                        |
+| VIDEO    | string   | Default video player.                        |
+| PDF      | string   | Default PDF reader.                     |
+| WORD     | string   | Default Word viewer.                    |
+| EXCEL    | string   | Default Excel viewer.                   |
+| PPT      | string   | Default PowerPoint viewer.                     |
+
+## defaultAppMgr.isDefaultApplication
+
+isDefaultApplication(type: string): Promise\<boolean>
+
+Checks whether this application is the default application of a system-defined application type. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype).                          |
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<boolean> | Promise used to return the result. If the application is the default application, `true` is returned; otherwise, `false` is returned.|
+
+**Example**
+
+```js
+defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
+.then((data) => {
+    console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
+}).catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+```
+
+## defaultAppMgr.isDefaultApplication
+
+isDefaultApplication(type: string, callback: AsyncCallback\<boolean>): void
+
+Checks whether this application is the default application of a system-defined application type. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**Parameters**
+
+| Name         | Type                             | Mandatory  | Description                                     |
+| ----------- | ------------------------------- | ---- | --------------------------------------- |
+| type  | string                          | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype).                           |
+| callback    | AsyncCallback\<boolean> | Yes   | Callback used to return the result. If the application is the default application, `true` is returned; otherwise, `false` is returned.|
+
+**Example**
+
+```js
+defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
+ });
+```
+
+## defaultAppMgr.getDefaultApplication
+
+getDefaultApplication(type: string, userId?: number): Promise\<BundleInfo>
+
+Obtains the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| userId  | number | No   | User ID. The default value is the user ID of the caller.                        |
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Promise used to return the default application.|
+
+**Example**
+
+```js
+defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
+.then((data) => {
+    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+
+defaultAppMgr.getDefaultApplication("image/png")
+.then((data) => {
+    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+```
+
+## defaultAppMgr.getDefaultApplication
+
+getDefaultApplication(type: string, userId: number, callback: AsyncCallback\<BundleInfo>) : void
+
+Obtains the default application of a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| userId  | number | Yes   | User ID.                          |
+| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes   | Callback used to return the default application.                   |
+
+**Example**
+
+```js
+defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
+});
+
+defaultAppMgr.getDefaultApplication("image/png", 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
+});
+```
+
+## defaultAppMgr.getDefaultApplication
+
+getDefaultApplication(type: string, callback: AsyncCallback\<BundleInfo>) : void
+
+Obtains the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes   | Callback used to return the default application.                   |
+
+**Example**
+
+```js
+defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
+});
+
+defaultAppMgr.getDefaultApplication("image/png", (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
+});
+```
+
+## defaultAppMgr.setDefaultApplication
+
+setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise\<void>
+
+Sets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| elementName  | [ElementName](js-apis-bundle-ElementName.md) | Yes   | Information about the element to be set as the default application.                          |
+| userId  | number | No   | User ID. The default value is the user ID of the caller.                          |
+
+**Example**
+
+```js
+defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+})
+.then((data) => {
+    console.info('Operation successful.');
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+
+defaultAppMgr.setDefaultApplication("image/png", {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+})
+.then((data) => {
+    console.info('Operation successful.');
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+```
+
+## defaultAppMgr.setDefaultApplication
+
+setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\<void>) : void;
+
+Sets the default application for a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| elementName  | [ElementName](js-apis-bundle-ElementName.md) | Yes   | Information about the element to be set as the default application.                          |
+| userId  | number | Yes   | User ID.                          |
+| callback    | AsyncCallback\<void> | Yes   | Callback used to return the result.                   |
+
+**Example**
+
+```js
+defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+}, 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+ });
+
+defaultAppMgr.setDefaultApplication("image/png", {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+}, 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+ });
+```
+
+## defaultAppMgr.setDefaultApplication
+
+setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\<void>) : void;
+
+Sets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| elementName  | [ElementName](js-apis-bundle-ElementName.md) | Yes   | Information about the element to be set as the default application.                          |
+| callback    | AsyncCallback\<void> | Yes   | Callback used to return the result.                   |
+
+**Example**
+
+```js
+defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+}, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+ });
+
+defaultAppMgr.setDefaultApplication("image/png", {
+    bundleName: "com.test.app",
+    moduleName: "module01",
+    abilityName: "MainAbility"
+}, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+ });
+```
+
+## defaultAppMgr.resetDefaultApplication
+
+resetDefaultApplication(type: string, userId?: number): Promise\<void>
+
+Resets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| userId  | number | No   | User ID. The default value is the user ID of the caller.                          |
+
+**Example**
+
+```js
+defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
+.then((data) => {
+    console.info('Operation successful.');
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+
+defaultAppMgr.resetDefaultApplication("image/png")
+.then((data) => {
+    console.info('Operation successful.');
+})
+.catch((error) => {
+    console.error('Operation failed. Cause: ' + JSON.stringify(error));
+});
+```
+
+## defaultAppMgr.resetDefaultApplication
+
+resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<void>) : void;
+
+Resets the default application for a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| userId  | number | Yes   | User ID.                         |
+| callback    | AsyncCallback\<void> | Yes   | Callback used to return the result.                   |
+
+**Example**
+
+```js
+defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+});
+
+defaultAppMgr.resetDefaultApplication("image/png", 100, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+});
+```
+
+## defaultAppMgr.resetDefaultApplication
+
+resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void;
+
+Resets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION
+
+**System capability**: SystemCapability.BundleManager.BundleFramework
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name         | Type    | Mandatory  | Description                                     |
+| ----------- | ------ | ---- | --------------------------------------- |
+| type  | string | Yes   | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format.      |
+| callback    | AsyncCallback\<void> | Yes   | Callback used to return the result.                   |
+
+**Example**
+
+```js
+defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+});
+
+defaultAppMgr.resetDefaultApplication("image/png", (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful.');
+});
+```
diff --git a/en/application-dev/reference/apis/js-apis-bytrace.md b/en/application-dev/reference/apis/js-apis-bytrace.md
index 3d532293b18ca1b262feabe80615dc1807ac30dc..72fcfaca8fb39e4345c2392e761b19b364922499 100644
--- a/en/application-dev/reference/apis/js-apis-bytrace.md
+++ b/en/application-dev/reference/apis/js-apis-bytrace.md
@@ -7,7 +7,7 @@
 
 ## Modules to Import
 
-```
+ ```js
 import bytrace from '@ohos.bytrace';
 ```
 
@@ -35,7 +35,7 @@ Marks the start of a timeslice trace task.
 
 **Example**
 
-```
+ ```js
 bytrace.startTrace("myTestFunc", 1);
 bytrace.startTrace("myTestFunc", 1, 5); // The expected duration of the trace is 5 ms.
 ```
@@ -62,7 +62,7 @@ Marks the end of a timeslice trace task.
 
 **Example**
 
-```
+ ```js
 bytrace.finishTrace("myTestFunc", 1);
 ```
 
@@ -105,7 +105,7 @@ Defines the variable that indicates the number of timeslice trace tasks.
 
 **Example**
 
-```
+ ```js
 let traceCount = 3;
 bytrace.traceByValue("myTestCount", traceCount);
 traceCount = 4;
diff --git a/en/application-dev/reference/apis/js-apis-camera.md b/en/application-dev/reference/apis/js-apis-camera.md
index 43f15f6c7b3666fc53f69deadb0043e6adacca46..1298f29856048924fd2a7e8397724aa9fc0df8ee 100644
--- a/en/application-dev/reference/apis/js-apis-camera.md
+++ b/en/application-dev/reference/apis/js-apis-camera.md
@@ -347,7 +347,7 @@ After **[camera.getCameraManager](#cameragetcameramanager)** is called, a camera
 
 ```js
 async function getCameraInfo("cameraId") {
-    var cameraManager = await camera.getCameraManager();
+    var cameraManager = await camera.getCameraManager(context);
     var cameras = await cameraManager.getCameras();
     var cameraObj = cameras[0];
     var cameraId = cameraObj.cameraId;
@@ -2231,6 +2231,10 @@ Captures a photo with the specified capture settings. This API uses an asynchron
 **Example**
 
 ```js
+let settings:PhotoCaptureSetting = {
+    quality = 1,
+    rotation = 0
+}
 photoOutput.capture(settings, (err) => {
     if (err) {
         console.error('Failed to capture the photo ${err.message}');
@@ -2359,7 +2363,7 @@ Listens for frame shutter events. This API uses an asynchronous callback to retu
 **Example**
 
 ```js
-photoOutput.on('frameShutter', (frameShutterInfo) => {
+photoOutput.on('frameShutter', (err, frameShutterInfo) => {
     console.log('photo capture end, captureId : ' + frameShutterInfo.captureId);
     console.log('Timestamp for frame : ' + frameShutterInfo.timestamp);
 })
@@ -2383,7 +2387,7 @@ Listens for photo capture end events. This API uses an asynchronous callback to
 **Example**
 
 ```js
-photoOutput.on('captureEnd', (captureEndInfo) => {
+photoOutput.on('captureEnd', (err, captureEndInfo) => {
     console.log('photo capture end, captureId : ' + captureEndInfo.captureId);
     console.log('frameCount : ' + captureEndInfo.frameCount);
 })
@@ -2407,7 +2411,7 @@ Listens for **PhotoOutput** errors. This API uses a callback to return the error
 **Example**
 
 ```js
-photoOutput.on('error', (photoOutputError) => {
+photoOutput.on('error', (err, photoOutputError) => {
     console.log('Photo output error code: ' + photoOutputError.code);
 })
 ```
diff --git a/en/application-dev/reference/apis/js-apis-configuration.md b/en/application-dev/reference/apis/js-apis-configuration.md
index 507b8a42448dd4ae892424feaae061c47d814138..14abee7e2d9cca63278e11b16486643d89e56bd0 100644
--- a/en/application-dev/reference/apis/js-apis-configuration.md
+++ b/en/application-dev/reference/apis/js-apis-configuration.md
@@ -1,11 +1,11 @@
 # Configuration
 
+The **Configuration** module provides environment configuration information.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides the configuration for the environment where the ability is running.
-
 ## Modules to Import
 
 ```js
@@ -23,3 +23,4 @@ import Configuration from '@ohos.application.Configuration';
 | direction<sup>9+</sup> | Direction | Yes| No| Screen orientation, which can be **DIRECTION_HORIZONTAL** or **DIRECTION_VERTICAL**.| 
 | screenDensity<sup>9+</sup>  | ScreenDensity | Yes| No| Screen resolution, which can be **SCREEN_DENSITY_SDPI** (120), **SCREEN_DENSITY_MDPI** (160), **SCREEN_DENSITY_LDPI** (240), **SCREEN_DENSITY_XLDPI** (320), **SCREEN_DENSITY_XXLDPI** (480), or **SCREEN_DENSITY_XXXLDPI** (640).| 
 | displayId<sup>9+</sup>  | number | Yes| No| ID of the display where the application is located.| 
+| hasPointerDevice<sup>9+</sup>  | boolean | Yes| No| Whether the pointer device is connected.| 
diff --git a/en/application-dev/reference/apis/js-apis-configurationconstant.md b/en/application-dev/reference/apis/js-apis-configurationconstant.md
index ebb78bc00e5ece7a6e04e64db6135f9d2f7ed7fd..70d527483a15d7f676402ad406964740a5686a6b 100644
--- a/en/application-dev/reference/apis/js-apis-configurationconstant.md
+++ b/en/application-dev/reference/apis/js-apis-configurationconstant.md
@@ -1,13 +1,11 @@
 # ConfigurationConstant
 
+The **ConfigurationConstant** module provides the enumerated values of the environment configuration information.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-
-Defines enumerated values of the configuration for the environment where the ability is running.
-
-
 ## Modules to Import
 
   
@@ -15,7 +13,6 @@ Defines enumerated values of the configuration for the environment where the abi
 import ConfigurationConstant from '@ohos.application.ConfigurationConstant';
 ```
 
-
 ## ConfigurationConstant.ColorMode
 
 You can obtain the value of this constant by calling the **ConfigurationConstant.ColorMode** API.
diff --git a/en/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md b/en/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md
new file mode 100644
index 0000000000000000000000000000000000000000..cfbfb83e3359a4b7d41cf6ab039d0c1f0552c9eb
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md
@@ -0,0 +1,22 @@
+# ContinuationExtraParams
+
+The **ContinuationExtraParams** module provides the extra parameters required by the device selection module in the continuation management entry.
+
+> **NOTE**
+> 
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+## ContinuationExtraParams
+
+Describes the extra parameters required by the device selection module in the continuation management entry.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| deviceType | Array\<string> | Yes| Yes| Device type.|
+| targetBundle | string | Yes| Yes| Target bundle name.|
+| description | string | Yes| Yes| Device filtering description.|
+| filter | any | Yes| Yes| Device filtering parameter.|
+| continuationMode | [ContinuationMode](js-apis-continuation-continuationManager.md#continuationmode) | Yes| Yes| Continuation mode.|
+| authInfo | { [key: string]: any } | Yes| Yes| Authentication information.|
diff --git a/en/application-dev/reference/apis/js-apis-continuation-continuationManager.md b/en/application-dev/reference/apis/js-apis-continuation-continuationManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..007d35d1408e2381aca841dd64cb9ce6a078b16a
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-continuation-continuationManager.md
@@ -0,0 +1,496 @@
+# continuationManager
+
+The **continuationManager** module provides the continuation management entry. You can use the APIs of this module to connect to and cancel the continuation management service, subscribe to and unsubscribe from device connection events, start the device selection module, and update the device connection state.
+
+Currently, this module provides incomplete functions, and its APIs are mainly used to start the device selection module. **The continuation capability is not available for application development.**
+
+> **NOTE**
+> 
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+## Modules to Import
+
+```js
+import continuationManager from '@ohos.continuation.continuationManager'
+```
+
+## continuationManager.register
+
+register(callback: AsyncCallback\<number>): void;
+
+Registers the continuation management service and obtains a token. This API does not involve any filter parameters and uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback\<number> | Yes| Callback used to return the token generated after the continuation management service is connected.|
+
+**Example**
+
+  ```js
+  let token = -1;
+  continuationManager.register((err, data) => {
+    if (err.code != 0) {
+      console.error('register failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('register finished, ' + JSON.stringify(data));
+    token = data;
+  });
+  ```
+
+## continuationManager.register
+
+register(options: ContinuationExtraParams, callback: AsyncCallback\<number>): void;
+
+Registers the continuation management service and obtains a token. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | Yes| Extra parameters used to filter the list of available devices.|
+  | callback | AsyncCallback\<number> | Yes| Callback used to return the token generated after the continuation management service is connected.|
+
+**Example**
+
+  ```js
+  let token = -1;
+  let continuationExtraParams = {
+    deviceType: ["00E"]
+  };
+  continuationManager.register(continuationExtraParams, (err, data) => {
+    if (err.code != 0) {
+      console.error('register failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('register finished, ' + JSON.stringify(data));
+    token = data;
+  });
+  ```
+
+## continuationManager.register
+
+register(options?: ContinuationExtraParams): Promise\<number>;
+
+Registers the continuation management service and obtains a token. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | No| Extra parameters used to filter the list of available devices. This parameter can be null.|
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<number> | Promise used to return the token generated after the continuation management service is connected.|
+
+**Example**
+
+  ```js
+  let token = -1;
+  let continuationExtraParams = {
+    deviceType: ["00E"]
+  };
+  continuationManager.register(continuationExtraParams)
+    .then((data) => {
+      console.info('register finished, ' + JSON.stringify(data));
+      token = data;
+    })
+    .catch((err) => {
+      console.error('register failed, cause: ' + JSON.stringify(err));
+    });
+  ```
+
+## continuationManager.on("deviceConnect")<sup>(deprecated)</sup>
+> This API is deprecated since API version 9. You are advised to use [on](#continuationmanagerondeviceconnect) instead.
+
+on(type: "deviceConnect", callback: Callback\<ContinuationResult>): void;
+
+Subscribes to device connection events. This API uses an asynchronous callback to return the result.
+
+## continuationManager.on("deviceDisconnect")<sup>(deprecated)</sup>
+> This API is deprecated since API version 9. You are advised to use [on](#continuationmanagerondevicedisconnect) instead.
+
+on(type: "deviceDisconnect", callback: Callback\<string>): void;
+
+Subscribes to device disconnection events. This API uses an asynchronous callback to return the result.
+
+## continuationManager.off("deviceConnect")<sup>(deprecated)</sup>
+> This API is deprecated since API version 9. You are advised to use [off](#continuationmanageroffdeviceconnect) instead.
+
+off(type: "deviceConnect", callback?: Callback\<ContinuationResult>): void;
+
+Unsubscribes from device connection events. This API uses an asynchronous callback to return the result.
+
+## continuationManager.off("deviceDisconnect")<sup>(deprecated)</sup>
+> This API is deprecated since API version 9. You are advised to use [off](#continuationmanageroffdevicedisconnect) instead.
+
+off(type: "deviceDisconnect", callback?: Callback\<string>): void;
+
+Unsubscribes from device disconnection events. This API uses an asynchronous callback to return the result.
+
+## continuationManager.on("deviceConnect")<sup>9+</sup>
+
+on(type: "deviceConnect", token: number, callback: Callback\<Array\<ContinuationResult>>): void;
+
+Subscribes to device connection events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is fixed at **deviceConnect**.|
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | callback | Callback\<Array\<[ContinuationResult](js-apis-continuation-continuationResult.md)>> | Yes| Callback invoked when a device is selected from the device list provided by the device selection module. This callback returns the device ID, type, and name.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.on("deviceConnect", token, (data) => {
+    console.info('onDeviceConnect len: ' + data.length);
+    for (let i = 0; i < data.length; i++) {
+      console.info('onDeviceConnect deviceId: ' + JSON.stringify(data[i].id));
+      console.info('onDeviceConnect deviceType: ' + JSON.stringify(data[i].type));
+      console.info('onDeviceConnect deviceName: ' + JSON.stringify(data[i].name));
+    }
+  });
+  ```
+
+## continuationManager.on("deviceDisconnect")<sup>9+</sup>
+
+on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>): void;
+
+Subscribes to device disconnection events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is fixed at **deviceDisconnect**.|
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | callback | Callback\<Array\<string>> | Yes| Callback invoked when a device is disconnected in the device selection module. This callback returns the device ID.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.on("deviceDisconnect", token, (data) => {
+    console.info('onDeviceDisconnect len: ' + data.length);
+    for (let i = 0; i < data.length; i++) {
+      console.info('onDeviceDisconnect deviceId: ' + JSON.stringify(data[i]));
+    }
+    console.info('onDeviceDisconnect finished.');
+  });
+  ```
+
+## continuationManager.off("deviceConnect")<sup>9+</sup>
+
+off(type: "deviceConnect", token: number): void;
+
+Unsubscribes from device connection events.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is fixed at **deviceConnect**.|
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.off("deviceConnect", token);
+  ```
+
+## continuationManager.off("deviceDisconnect")<sup>9+</sup>
+
+off(type: "deviceDisconnect", token: number): void;
+
+Unsubscribes from device disconnection events.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is fixed at **deviceDisconnect**.|
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.off("deviceDisconnect", token);
+  ```
+
+## continuationManager.startDeviceManager
+
+startDeviceManager(token: number, callback: AsyncCallback\<void>): void;
+
+Starts the device selection module to show the list of available devices on the network. This API does not involve any filter parameters and uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.startDeviceManager(token, (err, data) => {
+    if (err.code != 0) {
+      console.error('startDeviceManager failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('startDeviceManager finished, ' + JSON.stringify(data));
+  });
+  ```
+
+## continuationManager.startDeviceManager
+
+startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\<void>): void;
+
+Starts the device selection module to show the list of available devices on the network. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | Yes| Extra parameters used to filter the list of available devices.|
+  | callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  let continuationExtraParams = {
+    deviceType: ["00E"]
+  };
+  continuationManager.startDeviceManager(token, continuationExtraParams, (err, data) => {
+    if (err.code != 0) {
+      console.error('startDeviceManager failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('startDeviceManager finished, ' + JSON.stringify(data));
+  });
+  ```
+
+## continuationManager.startDeviceManager
+
+startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<void>;
+
+Starts the device selection module to show the list of available devices on the network. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | No| Extra parameters used to filter the list of available devices. This parameter can be null.|
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  let continuationExtraParams = {
+    deviceType: ["00E"]
+  };
+  continuationManager.startDeviceManager(token, continuationExtraParams)
+    .then((data) => {
+      console.info('startDeviceManager finished, ' + JSON.stringify(data));
+    })
+    .catch((err) => {
+      console.error('startDeviceManager failed, cause: ' + JSON.stringify(err));
+    });
+  ```
+
+## continuationManager.updateConnectStatus
+
+updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState, callback: AsyncCallback\<void>): void;
+
+Instructs the device selection module to update the device connection state. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | deviceId | string | Yes| Device ID.|
+  | status | [DeviceConnectState](#deviceconnectstate) | Yes| Device connection state.|
+  | callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  let deviceId: string = "test deviceId";
+  continuationManager.updateConnectStatus(token, deviceId, continuationManager.DeviceConnectState.CONNECTED, (err, data) => {
+    if (err.code != 0) {
+      console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('updateConnectStatus finished, ' + JSON.stringify(data));
+  });
+  ```
+
+## continuationManager.updateConnectStatus
+
+updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\<void>;
+
+Instructs the device selection module to update the device connection state. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | deviceId | string | Yes| Device ID.|
+  | status | [DeviceConnectState](#deviceconnectstate) | Yes| Device connection state.|
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  let deviceId: string = "test deviceId";
+  continuationManager.updateConnectStatus(token, deviceId, continuationManager.DeviceConnectState.CONNECTED)
+    .then((data) => {
+      console.info('updateConnectStatus finished, ' + JSON.stringify(data));
+    })
+    .catch((err) => {
+      console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err));
+    });
+  ```
+
+## continuationManager.unregister
+
+unregister(token: number, callback: AsyncCallback\<void>): void;
+
+Deregisters the continuation management service. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+  | callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.unregister(token, (err, data) => {
+    if (err.code != 0) {
+      console.error('unregister failed, cause: ' + JSON.stringify(err));
+      return;
+    }
+    console.info('unregister finished, ' + JSON.stringify(data));
+  });
+  ```
+
+## continuationManager.unregister
+
+unregister(token: number): Promise\<void>;
+
+Deregisters the continuation management service. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | token | number | Yes| Token obtained after the registration of the continuation management service.|
+
+**Return value**
+
+| Type                       | Description                |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+  ```js
+  let token = 1;
+  continuationManager.unregister(token)
+    .then((data) => {
+      console.info('unregister finished, ' + JSON.stringify(data));
+    })
+    .catch((err) => {
+      console.error('unregister failed, cause: ' + JSON.stringify(err));
+    });
+  ```
+
+## DeviceConnectState
+
+Enumerates the device connection states.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Value| Description|
+  | -------- | -------- | -------- | -------- |
+  | IDLE | number | 0 | The device is in the initial state.|
+  | CONNECTING | number | 1 | The device is being connected.|
+  | CONNECTED | number | 2 | The device is connected.|
+  | DISCONNECTING | number | 3 | The device is being disconnected.|
+
+## ContinuationMode
+
+Enumerates the continuation modes provided by the device selection module.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+**Parameters**
+
+  | Name| Type| Value| Description|
+  | -------- | -------- | -------- | -------- |
+  | COLLABORATION_SINGLE | number | 0 | Single-choice mode.|
+  | COLLABORATION_MULTIPLE | number | 1 | Multi-choice mode.|
diff --git a/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md b/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md
new file mode 100644
index 0000000000000000000000000000000000000000..bdebb727ff7b5c6b41868f37bf5ecdb0ea333d10
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md
@@ -0,0 +1,17 @@
+# ContinuationResult
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+## ContinuationResult
+
+Describes the device information returned by the continuation management entry.
+
+**System capability**: SystemCapability.Ability.DistributedAbilityManager
+
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| id | string | Yes| Yes| Device ID.|
+| type | string | Yes| Yes| Device type.|
+| name | string | Yes| Yes| Device name.|
diff --git a/en/application-dev/reference/apis/js-apis-convertxml.md b/en/application-dev/reference/apis/js-apis-convertxml.md
index 3fd4e4e52ca7a82b33dd6a13aa7f425ab2aea9be..43e096b951e7ea4d97ed9e0d40dc0481f34a0290 100644
--- a/en/application-dev/reference/apis/js-apis-convertxml.md
+++ b/en/application-dev/reference/apis/js-apis-convertxml.md
@@ -1,6 +1,9 @@
 # XML-to-JavaScript Conversion
 
-> **NOTE**<br/>
+The **convertxml** module provides APIs for converting XML text into JavaScript objects.
+
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -47,10 +50,10 @@ let xml =
     '</note>';
 let conv = new convertxml.ConvertXML();
 let options = {trim : false, declarationKey:"_declaration",
-               instructionKey : "_instruction", attributesKey : "_attributes",
-               textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
-               commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
-               nameKey : "_name", elementsKey : "_elements"}
+    instructionKey : "_instruction", attributesKey : "_attributes",
+    textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
+    commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
+    nameKey : "_name", elementsKey : "_elements"}
 let result = JSON.stringify(conv.convert(xml, options));
 console.log(result)
 ```
diff --git a/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md
new file mode 100644
index 0000000000000000000000000000000000000000..6adaa00f48cfb7f2e685841e013e3d719bc58548
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md
@@ -0,0 +1,424 @@
+# Data Share Result Set
+
+The **DataShareResultSet** module provides methods for accessing the result set obtained from the database. You can access the values in the specified rows or the value of the specified data type.
+
+>**NOTE**
+>
+>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+```ts
+import DataShareResultSet from '@ohos.data.DataShareResultSet';
+```
+
+## How to Use
+
+You can call [query()](js-apis-data-dataShare.md#query) to obtain the **DataShareResultSet** object.
+
+```ts
+import dataShare from '@ohos.data.dataShare';
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let dataShareHelper;
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+await dataShare.createDataShareHelper(this.context, uri, (err, data) => {
+	if (err != undefined) {
+        console.info("createDataShareHelper fail, error message : " + err);
+    } else {
+        console.info("createDataShareHelper end, data : " + data);
+        dataShareHelper = data;
+    }
+});
+
+let columns = ["*"];
+let da = new dataSharePredicates.DataSharePredicates();
+let resultSet;
+da.equalTo("name", "ZhangSan");
+dataShareHelper.query(uri, da, columns).then((data) => {
+    console.log("query end, data : " + data);
+    resultSet = data;
+}).catch((err) => {
+	console.log("query fail, error message : " + err);
+});
+```
+
+## Attributes
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+| Name       | Type     | Mandatory| Description                    |
+| ----------- | ------------- | ---- | ------------------------ |
+| columnNames | Array&lt;string&gt; | Yes  | Names of all columns in the result set.  |
+| columnCount | number        | Yes  | Number of columns in the result set.        |
+| rowCount    | number        | Yes  | Number of rows in the result set.        |
+| isClosed    | boolean       | Yes  | Whether the result set is closed.|
+
+## goToFirstRow
+
+goToFirstRow(): boolean
+
+Moves to the first row of the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type   | Description                                         |
+| :------ | --------------------------------------------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let isGoTOFirstRow = resultSet.goToFirstRow();
+console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
+```
+
+## goToLastRow
+
+goToLastRow(): boolean
+
+Moves to the last row of the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let isGoToLastRow = resultSet.goToLastRow();
+console.info('resultSet.goToLastRow: ' + isGoToLastRow);
+```
+
+## goToNextRow
+
+goToNextRow(): boolean
+
+Moves to the next row in the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type   | Description                                         |
+| ------- | --------------------------------------------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let isGoToNextRow = resultSet.goToNextRow();
+console.info('resultSet.goToNextRow: ' + isGoToNextRow);
+```
+
+## goToPreviousRow
+
+goToPreviousRow(): boolean
+
+Moves to the previous row in the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type   | Description                                         |
+| ------- | --------------------------------------------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let isGoToPreviousRow = resultSet.goToPreviousRow();
+console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
+```
+
+## goTo
+
+goTo(offset:number): boolean
+
+Moves based on the specified offset.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name**| **Type**| **Mandatory**| Description                                                        |
+| ---------- | -------- | -------- | ------------------------------------------------------------ |
+| offset     | number   | Yes      | Offset relative to the current position. A negative value means to move backward, and a positive value means to move forward.|
+
+**Return value**
+
+| Type   | Description                                         |
+| ------- | --------------------------------------------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let goToNum = 1;
+let isGoTo = resultSet.goTo(goToNum);
+console.info('resultSet.goTo: ' + isGoTo);
+```
+
+## goToRow
+
+goToRow(position: number): boolean
+
+Moves to the specified row in the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name**| **Type**| **Mandatory**| Description                    |
+| ---------- | -------- | -------- | ------------------------ |
+| position   | number   | Yes      | Destination position to move.|
+
+**Return value**
+
+| Type   | Description                                         |
+| ------- | --------------------------------------------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```ts
+let goToRowNum = 2
+let isGoToRow = resultSet.goToRow(goToRowNum);
+console.info('resultSet.goToRow: ' + isGoToRow);
+```
+
+## getBlob
+
+getBlob(columnIndex: number): Uint8Array
+
+Obtains the value in the specified column in the current row as a byte array.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                   |
+| ----------- | -------- | -------- | ----------------------- |
+| columnIndex | number   | Yes      | Index of the target column, starting from 0.|
+
+**Return value**
+
+| Type      | Description                            |
+| ---------- | -------------------------------- |
+| Uint8Array | Value obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1
+let goToFirstRow = resultSet.goToFirstRow();
+let getBlob = resultSet.getBlob(columnIndex);
+console.info('resultSet.getBlob: ' + getBlob);
+```
+
+## getString
+
+getString(columnIndex: number): *string*
+
+Obtains the value in the specified column in the current row as a string.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                   |
+| ----------- | -------- | -------- | ----------------------- |
+| columnIndex | number   | Yes      | Index of the target column, starting from 0.|
+
+**Return value**
+
+| Type  | Description                        |
+| ------ | ---------------------------- |
+| string | Value obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1
+let goToFirstRow = resultSet.goToFirstRow();
+let getString = resultSet.getString(columnIndex);
+console.info('resultSet.getString: ' + getString);
+```
+
+## getLong
+
+getLong(columnIndex: number): number
+
+Obtains the value in the specified column in the current row as a long integer.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                   |
+| ----------- | -------- | -------- | ----------------------- |
+| columnIndex | number   | Yes      | Index of the target column, starting from 0.|
+
+**Return value**
+
+| Type  | Description                      |
+| ------ | -------------------------- |
+| number | Value obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1
+let goToFirstRow = resultSet.goToFirstRow();
+let getLong = resultSet.getLong(columnIndex);
+console.info('resultSet.getLong: ' + getLong);
+```
+
+## getDouble
+
+getDouble(columnIndex: number): number
+
+Obtains the value in the specified column in the current row as a double-precision floating-point number.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                   |
+| ----------- | -------- | -------- | ----------------------- |
+| columnIndex | number   | Yes      | Index of the target column, starting from 0.|
+
+**Return value**
+
+| Type  | Description                        |
+| ------ | ---------------------------- |
+| number | Value obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1
+let goToFirstRow = resultSet.goToFirstRow();
+let getDouble = resultSet.getDouble(columnIndex);
+console.info('resultSet.getDouble: ' + getDouble);
+```
+
+## close
+
+close(): void
+
+Closes this result set.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Example**
+
+```ts
+resultSet.close();
+```
+
+## getColumnIndex
+
+getColumnIndex(columnName: string): number
+
+Obtains the column index based on the column name.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name**| **Type**| **Mandatory**| Description                      |
+| ---------- | -------- | -------- | -------------------------- |
+| columnName | string   | Yes      | Column name.|
+
+**Return value**
+
+| Type  | Description              |
+| ------ | ------------------ |
+| number | Column index obtained.|
+
+**Example**
+
+```ts
+let ColumnName = "name"
+let getColumnIndex = resultSet.getColumnIndex(ColumnName)
+console.info('resultSet.getColumnIndex: ' + getColumnIndex);
+```
+
+## getColumnName
+
+getColumnName(columnIndex: number): *string*
+
+Obtains the column name based on the column index.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                      |
+| ----------- | -------- | -------- | -------------------------- |
+| columnIndex | number   | Yes      | Column index.|
+
+**Return value**
+
+| Type  | Description              |
+| ------ | ------------------ |
+| string | Column name obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1
+let getColumnName = resultSet.getColumnName(columnIndex)
+console.info('resultSet.getColumnName: ' + getColumnName);
+```
+
+## getDataType
+
+getDataType(columnIndex: number): DataType
+
+Obtains the data type based on the specified column index.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| **Name** | **Type**| **Mandatory**| Description                      |
+| ----------- | -------- | -------- | -------------------------- |
+| columnIndex | number   | Yes      | Column index.|
+
+**Return value**
+
+| Type                 | Description              |
+| --------------------- | ------------------ |
+| [DataType](#datatype) | Data type obtained.|
+
+**Example**
+
+```ts
+let columnIndex = 1;
+let getDataType = resultSet.getDataType(columnIndex);
+console.info('resultSet.getDataType: ' + getDataType);
+```
+
+## DataType
+
+Enumerates the data types.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+| Name       | Value| Description                |
+| ----------- | ------ | -------------------- |
+| TYPE_NULL   | 0      | Null.    |
+| TYPE_LONG   | 1      | Long integer.  |
+| TYPE_DOUBLE | 2      | Double-precision floating-point number.|
+| TYPE_STRING | 3      | String.|
+| TYPE_BLOB   | 4      | Byte array.|
diff --git a/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md b/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md
new file mode 100644
index 0000000000000000000000000000000000000000..dc239c35cbe017f7c5edc0a9fd8ff1bd74b3c366
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md
@@ -0,0 +1,37 @@
+# Value Bucket
+
+The **ValueBucket** module holds data in key-value (KV) pairs. You can use it to insert data into a database.
+
+>**NOTE**
+>
+>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+```ts
+import { ValueType } from '@ohos.data.ValuesBucket';
+import { ValuesBucket } from '@ohos.data.ValuesBucket';
+```
+
+## ValueType
+
+Enumerates the value types allowed by the database.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+| Type   | Description                |
+| ------- | -------------------- |
+| number  | The value is a number.  |
+| string  | The value is a string.|
+| boolean | The value is of Boolean type.|
+
+## ValuesBucket
+
+Defines the types of the key and value in a KV pair.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+| Key Type         | Value Type                                     | 
+| ------------- | --------------------------------------------- | 
+|  string | [ValueType](#valuetype)\| Uint8Array \| null | 
diff --git a/en/application-dev/reference/apis/js-apis-data-ability.md b/en/application-dev/reference/apis/js-apis-data-ability.md
index a1c0aba0f59aa5831cfa2e54cbad92302b8724c8..3860be1f4cd4fae2b432c7286ae5aca1c2b44868 100644
--- a/en/application-dev/reference/apis/js-apis-data-ability.md
+++ b/en/application-dev/reference/apis/js-apis-data-ability.md
@@ -789,7 +789,7 @@ Enumerates the value types.
 
 **System capability**: SystemCapability.DistributedDataManager.DataShare.Core
 
-| Name   | Description                |
+| Type   | Description                |
 | ------- | -------------------- |
 | number  | The value is a number.  |
 | string  | The value is a string.  |
diff --git a/en/application-dev/reference/apis/js-apis-data-dataShare.md b/en/application-dev/reference/apis/js-apis-data-dataShare.md
new file mode 100644
index 0000000000000000000000000000000000000000..c3b59a85ab9e2945a8375a61b44c7e45c5d1c385
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-data-dataShare.md
@@ -0,0 +1,932 @@
+# Data Sharing
+
+The **DataShare** module allows an application to manage its own data and share data with other applications on the same device.
+
+>**NOTE**
+>
+>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+```ts
+import dataShare from '@ohos.data.dataShare'
+```
+
+
+## dataShare.createDataShareHelper
+
+createDataShareHelper(context: Context, uri: string, callback: AsyncCallback&lt;DataShareHelper&gt;): void
+
+Creates a **DataShareHelper** instance. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name  | Type                                                | Mandatory| Description                                                        |
+| -------- | -------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| context  | [Context](js-apis-application-context.md#context)        | Yes  | Context of an application.                                          |
+| uri      | string                                                   | Yes  | Uniform Resource Identifier (URI) of the server application to connect.                              |
+| callback | AsyncCallback&lt;[DataShareHelper](#datasharehelper)&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the **DataShareHelper** instance created. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let dataShareHelper;
+dataShare.createDataShareHelper(this.context, uri, (err, data) => {
+    if (err != undefined) {
+        console.info("createDataShareHelper failed, error message : " + err);
+    } else {
+        console.info("createDataShareHelper succeed, data : " + data);
+        dataShareHelper = data;
+    }
+});
+```
+
+## dataShare.createDataShareHelper
+
+createDataShareHelper(context: Context, uri: string): Promise&lt;DataShareHelper&gt;
+
+Creates a **DataShareHelper** instance. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name | Type                                         | Mandatory| Description                          |
+| ------- | ------------------------------------------------- | ---- | ------------------------------ |
+| context | [Context](js-apis-application-context.md#context) | Yes  | Context of an application.            |
+| uri     | string                                            | Yes  | URI of the server application to connect.|
+
+**Return value**
+
+| Type                                              | Description                                  |
+| -------------------------------------------------- | -------------------------------------- |
+| Promise&lt;[DataShareHelper](#datasharehelper)&gt; | Promise used to return the **DataShareHelper** instance created.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let dataShareHelper;
+dataShare.createDataShareHelper(this.context, uri).then((data) => {
+    console.info("createDataShareHelper succeed, data : " + data);
+    dataShareHelper = data;
+}).catch((err) => {
+	console.info("createDataShareHelper failed, error message : " + err); 
+})
+```
+
+## DataShareHelper
+
+Provides a **DataShareHelper** instance to access or manage data on the server. Before calling an API provided by **DataShareHelper**, you must create a **DataShareHelper** instance using [createDataShareHelper](#datasharecreatedatasharehelper).
+
+This API can be used only in the stage model.
+
+### openFile
+
+openFile(uri: string, mode: string, callback: AsyncCallback&lt;number&gt;): void
+
+Opens a file. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                 | Mandatory| Description                              |
+| -------- | --------------------- | ---- | ---------------------------------- |
+| uri      | string                | Yes  | URI of the file to open.          |
+| mode     | string                | Yes  | File open mode.<br>**r** means to open a file for reading; **w** means to open a file for writing (erasing any data in the file); **wa** means to open a file in append mode for writing at the end of the file; **rw** means to open a file for both reading and writing.|
+| callback | AsyncCallback&lt;number&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the file descriptor. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.openFile(uri, "rwt", (err, data) => {
+    if (err != undefined) {
+        console.info("openFile failed, error message : " + err);
+    }else {
+        console.info("openFile succeed, data : " + data);
+        let fd = data;
+    }
+});
+```
+
+### openFile
+
+openFile(uri: string, mode: string): Promise&lt;number&gt;
+
+Opens a file. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                                                        |
+| ---- | ------ | ---- | ------------------------------------------------------------ |
+| uri  | string | Yes  | URI of the file to open.                                      |
+| mode | string | Yes  | File open mode.<br>**r** means to open a file for reading; **w** means to open a file for writing (erasing any data in the file); **wa** means to open a file in append mode for writing at the end of the file; **rw** means to open a file for both reading and writing.|
+
+**Return value**
+
+| Type           | Description            |
+| --------------- | ---------------- |
+| Promise&lt;number&gt; | Promise used to return the file descriptor.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.openFile(uri, "rwt").then((data) => {
+    console.info("openFile succeed, data : " + data);
+    let fd = data;
+}).catch((err) => {
+	console.info("openFile failed, error message : " + err); 
+})
+```
+
+### on('dataChange')
+
+on(type: 'dataChange', uri: string, callback: AsyncCallback&lt;void&gt;): void
+
+Subscribes to changes of the specified data. After an observer is registered, the subscriber will receive a notification when the change notification is triggered (the **notifyChange()** method is called). This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                | Mandatory| Description                    |
+| -------- | -------------------- | ---- | ------------------------ |
+| type     | string               | Yes  | Event type to subscribe to. The value is **dataChange**, which indicates data change events.|
+| uri      | string               | Yes  | URI of the data.|
+| callback | AsyncCallback&lt;void&gt; | Yes  | Called when the change notification is triggered. In this case, **err** is **undefined**. Otherwise, it is not called or **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+function onCallback() {
+    console.info("**** Observer on callback ****");
+}
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.on("dataChange", uri, onCallback);
+```
+
+### off('dataChange')
+
+off(type: 'dataChange', uri: string, callback?: AsyncCallback&lt;void&gt;): void
+
+Unsubscribes from the changes of the specified data. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                | Mandatory| Description                    |
+| -------- | -------------------- | ---- | ------------------------ |
+| type     | string               | Yes  | Event type to unsubscribe from. The value is **dataChange**, which indicates data change events.|
+| uri      | string               | Yes  | URI of the data.|
+| callback | AsyncCallback&lt;void&gt; | No  | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+function offCallback() {
+    console.info("**** Observer off callback ****");
+}
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.off("dataChange", uri, offCallback);
+```
+
+### insert
+
+insert(uri: string, value: ValuesBucket, callback: AsyncCallback&lt;number&gt;): void
+
+Inserts a single data record into the database. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                                                     | Mandatory| Description                                                        |
+| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| uri      | string                                                    | Yes  | URI of the data to insert.                                    |
+| value    | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes  | Data to insert. If this parameter is empty, a blank row will be inserted.          |
+| callback | AsyncCallback&lt;number&gt;                               | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the index of the inserted data record. Otherwise, **err** is an error object.<br>The data index is not returned if the APIs of the database in use, for example, the key-value database (KVDB), do not support the return of indexes.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+const valueBucket = {
+    "name": "rose",
+    "age": 22,
+    "salary": 200.5,
+}
+dataShareHelper.insert(uri, valueBucket, (err, data) => {
+    if (err != undefined) {
+        console.log("insert failed, error message : " + err);
+    }else{
+        console.log("insert succeed, data : " + data);
+    }
+});
+```
+
+### insert
+
+insert(uri: string, value: ValuesBucket): Promise&lt;number&gt;
+
+Inserts a single data record into the database. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name | Type                                                     | Mandatory| Description                                              |
+| ----- | --------------------------------------------------------- | ---- | -------------------------------------------------- |
+| uri   | string                                                    | Yes  | URI of the data to insert.                          |
+| value | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes  | Data to insert. If this parameter is empty, a blank row will be inserted.|
+
+**Return value**
+
+| Type            | Description                                                        |
+| ---------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | Promise used to return the index of the inserted data record.<br>The data index is not returned if the APIs of the database in use (for example, KVDB) do not support the return of indexes.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+const valueBucket = {
+    "name": "rose1",
+    "age": 221,
+    "salary": 20.5,
+}
+dataShareHelper.insert(uri, valueBucket).then((data) => {
+    console.log("insert succeed, data : " + data);
+}).catch((err) => {
+    console.log("insert failed, error message : " + err);
+});
+```
+
+### delete
+
+delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;): void
+
+Deletes one or more data records from the database. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to delete.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **delete()** vary depending on the database in use. For example, the KVDB supports only **inKeys**.|
+| callback   | AsyncCallback&lt;number&gt;                                  | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of deleted data records. Otherwise, **err** is an error object.<br>The number of deleted data records is not returned if the APIs of the database in use (for example, KVDB) do not support this return.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+dataShareHelper.delete(uri, da, (err, data) => {
+    if (err != undefined) {
+        console.log("delete failed, error message : " + err);
+    }else{
+        console.log("delete succeed, data : " + data);
+    }
+});
+```
+
+### delete
+
+delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promise&lt;number&gt;
+
+Deletes one or more data records from the database. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to delete.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **delete()** vary depending on the database in use. For example, the KVDB supports only **inKeys**.|
+
+**Return value**
+
+| Type            | Description                                                        |
+| ---------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | Promise used to return the number of deleted data records.<br>The number of deleted data records is not returned if the APIs of the database in use (for example, KVDB) do not support this return.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+dataShareHelper.delete(uri, da).then((data) => {
+    console.log("delete succeed, data : " + data);
+}).catch((err) => {
+    console.log("delete failed, error message : " + err);
+});
+```
+
+### query
+
+query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;DataShareResultSet&gt;): void
+
+Queries data in the database. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to query.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **query()** vary depending on the database used. For example, the KVDB supports only **inKeys** and **prefixKey**.|
+| columns    | Array&lt;string&gt;                                          | Yes  | Columns to query. If this parameter is empty, all columns will be queried.              |
+| callback   | AsyncCallback&lt;[DataShareResultSet](js-apis-data-DataShareResultSet.md#datashareresultset)&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the result set obtained. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let columns = ["*"];
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+dataShareHelper.query(uri, da, columns, (err, data) => {
+    if (err != undefined) {
+        console.log("query failed, error message : " + err);
+    }else{
+        console.log("query succeed, rowCount : " + data.rowCount);
+    }
+});
+```
+
+### query
+
+query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;): Promise&lt;DataShareResultSet&gt;
+
+Queries data in the database. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to query.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **query()** vary depending on the database used. For example, the KVDB supports only **inKeys** and **prefixKey**.|
+| columns    | Array&lt;string&gt;                                          | Yes  | Columns to query. If this parameter is empty, all columns will be queried.              |
+
+**Return value**
+
+| Type                                                        | Description                             |
+| ------------------------------------------------------------ | --------------------------------- |
+| Promise&lt;[DataShareResultSet](js-apis-data-DataShareResultSet.md#datashareresultset)&gt; | Promise used to return the result set obtained.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let columns = ["*"];
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+dataShareHelper.query(uri, da, columns).then((data) => {
+    console.log("query succeed, rowCount : " + data.rowCount);
+}).catch((err) => {
+    console.log("query failed, error message : " + err);
+});
+```
+
+### update
+
+update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback&lt;number&gt;): void
+
+Updates data in the database. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to update.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **update()** vary depending on the database in use. For example, only the relational database (RDB) supports predicates.|
+| value      | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)    | Yes  | New data.                                          |
+| callback   | AsyncCallback&lt;number&gt;                                  | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of updated data records. Otherwise, **err** is an error object.<br>The number of updated data records is not returned if the APIs of the database in use (for example, KVDB) do not support this return.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+const va = {
+    "name": "roe1",
+    "age": 21,
+    "salary": 20.5,
+   
+}
+dataShareHelper.update(uri, da, va, (err, data) => {
+    if (err != undefined) {
+        console.log("update failed, error message : " + err);
+    }else{
+        console.log("update succeed, data : " + data);
+    }
+});
+```
+
+### update
+
+update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket): Promise&lt;number&gt;
+
+Updates data in the database. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name      | Type                                                        | Mandatory| Description                                                        |
+| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri        | string                                                       | Yes  | URI of the data to update.                                    |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes  | Filter criteria.<br>The predicate methods supported by **update()** vary depending on the database in use. For example, only the relational database (RDB) supports predicates.|
+| value      | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)    | Yes  | New data.                                          |
+
+**Return value**
+
+| Type            | Description                                                        |
+| ---------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | Promise used to return the number of data records updated.<br>The number of updated data records is not returned if the APIs of the database in use (for example, KVDB) do not support this return.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+import dataSharePredicates from '@ohos.data.dataSharePredicates'
+
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let da = new dataSharePredicates.DataSharePredicates();
+da.equalTo("name", "ZhangSan");
+const va = {
+    "name": "roe1",
+    "age": 21,
+    "salary": 20.5,
+   
+}
+dataShareHelper.update(uri, da, va).then((data) => {
+    console.log("update succeed, data : " + data);
+}).catch((err) => {
+    console.log("update failed, error message : " + err);
+});
+```
+
+### batchInsert
+
+batchInsert(uri: string, values: Array&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;): void
+
+Batch inserts data into the database. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                                                        | Mandatory| Description                                                        |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri      | string                                                       | Yes  | URI of the data to insert.                                    |
+| values   | Array&lt;[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)&gt; | Yes  | Data to insert.                                          |
+| callback | AsyncCallback&lt;number&gt;                                  | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of data records inserted. Otherwise, **err** is an error object.<br>The number of inserted data records is not returned if the APIs of the database in use (for example, KVDB) do not support this return.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,},
+                     {"name": "roe12", "age": 21, "salary": 20.5,},
+                     {"name": "roe13", "age": 21, "salary": 20.5,})
+dataShareHelper.batchInsert(uri, vbs, (err, data) => {
+    if (err != undefined) {
+        console.log("batchInsert failed, error message : " + err);
+    }else{
+        console.log("batchInsert succeed, data : " + data);
+    }
+});
+```
+
+### batchInsert
+
+batchInsert(uri: string, values: Array&lt;ValuesBucket&gt;): Promise&lt;number&gt;
+
+Batch inserts data into the database. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name  | Type                                                        | Mandatory| Description                    |
+| ------ | ------------------------------------------------------------ | ---- | ------------------------ |
+| uri    | string                                                       | Yes  | URI of the data to insert.|
+| values | Array&lt;[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)&gt; | Yes  | Data to insert.      |
+
+**Return value**
+
+| Type            | Description                                                        |
+| ---------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | Promise used to return the number of data records inserted.<br>The number of inserted data records is not returned if the APIs of the database (for example, KVDB) in use do not the return of the number of data records.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,},
+                     {"name": "roe12", "age": 21, "salary": 20.5,},
+                     {"name": "roe13", "age": 21, "salary": 20.5,})
+dataShareHelper.batchInsert(uri, vbs).then((data) => {
+    console.log("batchInsert succeed, data : " + data);
+}).catch((err) => {
+    console.log("batchInsert failed, error message : " + err);
+});
+```
+
+### getType
+
+getType(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Obtains the Multipurpose Internet Mail Extensions (MIME) type of the specified data. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                                         |
+| -------- | ---------------------- | ---- | --------------------------------------------- |
+| uri      | string                 | Yes  | URI of the data.                     |
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the MIME type obtained. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.getType(uri, (err, data)=>{
+    if (err != undefined) {
+        console.log("getType failed, error message : " + err);
+    }else{
+        console.log("getType succeed, data : " + data);
+        let result = data;
+    }
+});
+```
+
+### getType
+
+getType(uri: string): Promise&lt;string&gt;
+
+Obtains the MIME type of the specified data. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                |
+| ---- | ------ | ---- | -------------------- |
+| uri  | string | Yes  | URI of the data.|
+
+**Return value**
+
+| Type            | Description                               |
+| ---------------- | ----------------------------------- |
+| Promise&lt;string&gt; | Promise used to return the MIME type obtained.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.getType(uri).then((data) => {
+    console.log("getType succeed, data : " + data);
+}).catch((err) => {
+    console.log("getType failed, error message : " + err);
+});
+```
+
+### getFileTypes
+
+getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
+
+Obtains the supported MIME types. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name          | Type                                                        | Mandatory| Description                                                        |
+| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| uri            | string                                                       | Yes  | URI of the file.                                    |
+| mimeTypeFilter | string                                                       | Yes  | MIME types to match. Example:<br>**\*/\***: Obtain all supported types.<br>**image/\***: Obtain the MIMEs with the main type of **image**.<br>**\*/jpg**: Obtain the MIMEs with the subtype of **jpg**.|
+| callback       |  AsyncCallback<Array\<string>> | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the MIME types obtained. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let mimeTypeFilter = "image/*";
+dataShareHelper.getFileTypes(uri, mimeTypeFilter, (err,data) => {
+    if (err != undefined) {
+        console.log("getFileTypes failed, error message : " + err);
+    }else{
+        console.log("getFileTypes succeed, data : " + data);
+    }
+});
+```
+
+### getFileTypes
+
+getFileTypes(uri: string, mimeTypeFilter: string): Promise&lt;Array&lt;string&gt;&gt;
+
+Obtains the supported MIME types. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name          | Type  | Mandatory| Description                                                        |
+| -------------- | ------ | ---- | ------------------------------------------------------------ |
+| uri            | string | Yes  | URI of the file.                                    |
+| mimeTypeFilter | string | Yes  | MIME types to match. Example:<br>**\*/\***: Obtain all supported types.<br>**image/\***: Obtain the MIMEs with the main type of **image**.<br>**\*/jpg**: Obtain the MIMEs with the subtype of **jpg**.|
+
+**Return value**
+
+| Type                    | Description                    |
+| ------------------------ | ------------------------ |
+| Promise&lt;Array&lt;string&gt;&gt; | Promise used to return the MIME types obtained.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+let mimeTypeFilter = "image/*";
+dataShareHelper.getFileTypes(uri, mimeTypeFilter).then((data) => {
+	console.log("getFileTypes succeed, data : " + data);
+}).catch((err) => {
+	console.log("getFileTypes failed, error message : " + err);
+});
+```
+
+### normalizeUri
+
+normalizeUri(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Normalizes a **DataShare** URI. The **DataShare** URI can be used only by the local device, but the normalized URI can be used across devices. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                                                    |
+| -------- | ---------------------- | ---- | -------------------------------------------------------- |
+| uri      | string                 | Yes  | [URI](js-apis-uri.md#uri) to normalize.     |
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the normalized URI (if **null** is returned, URI normalization is not supported). Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.normalizeUri(uri, (err, data) => {
+    if (err != undefined) {
+        console.log("normalizeUri failed, error message : " + err);
+    }else{
+        console.log("normalizeUri = " + data);
+    }
+});
+```
+
+### normalizeUri
+
+normalizeUri(uri: string): Promise&lt;string&gt;
+
+Normalizes a **DataShare** URI. The **DataShare** URI can be used only by the local device, but the normalized URI can be used across devices. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                                     |
+| ---- | ------ | ---- | ----------------------------------------- |
+| uri  | string | Yes  | [URI](js-apis-uri.md#uri) to normalize.|
+
+**Return value**
+
+| Type            | Description                                          |
+| ---------------- | ---------------------------------------------- |
+| Promise&lt;string&gt; | Promise used to return the result. If URI normalization is supported, the normalized URI is returned. Otherwise, **null** is returned.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.normalizeUri(uri).then((data) => {
+    console.log("normalizeUri = " + data);
+}).catch((err) => {
+    console.log("normalizeUri failed, error message : " + err);
+});
+```
+
+### denormalizeUri
+
+denormalizeUri(uri: string, callback: AsyncCallback&lt;string&gt;): void
+
+Denormalizes a URI. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                  | Mandatory| Description                                               |
+| -------- | ---------------------- | ---- | --------------------------------------------------- |
+| uri      | string                 | Yes  | [URI](js-apis-uri.md#uri) to denormalize.|
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the URI obtained. If the original URI is returned, denormalization is not required. If **null** is returned, denormalization is not supported. If the operation fails, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.denormalizeUri(uri, (err, data) => {
+    if (err != undefined) {
+        console.log("denormalizeUri failed, error message : " + err);
+    }else{
+        console.log("denormalizeUri = " + data);
+    }
+});
+```
+
+### denormalizeUri
+
+denormalizeUri(uri: string): Promise&lt;string&gt;
+
+Denormalizes a URI. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                                       |
+| ---- | ------ | ---- | ------------------------------------------- |
+| uri  | string | Yes  | [URI](js-apis-uri.md#uri) to denormalize.|
+
+**Return value**
+
+| Type            | Description                                     |
+| ---------------- | ----------------------------------------- |
+| Promise&lt;string&gt; | Promise used to return the result. If the denormalization is successful, the URI obtained is returned. If no operation is required, the original URI is returned. If denormalization is not supported, **null** is returned.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.denormalizeUri(uri).then((data) => {
+    console.log("denormalizeUri = " + data);
+}).catch((err) => {
+    console.log("denormalizeUri failed, error message : " + err);
+});
+```
+
+### notifyChange
+
+notifyChange(uri: string, callback: AsyncCallback&lt;void&gt;): void
+
+Notifies the registered observer of data changes. This API uses an asynchronous callback to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name    | Type                | Mandatory| Description                    |
+| -------- | -------------------- | ---- | ------------------------ |
+| uri      | string               | Yes  | URI of the data.|
+| callback | AsyncCallback&lt;void&gt; | Yes  | Callback invoked to return the result. If the observer is notified of the data changes, **err** is **undefined**. Otherwise, **err** is an error object.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.notifyChange(uri, () => {
+    console.log("***** notifyChange *****");
+});
+```
+
+### notifyChange
+
+notifyChange(uri: string): Promise&lt;void&gt;
+
+Notifies the registered observer of data changes. This API uses a promise to return the result.
+
+This API can be used only in the stage model.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                |
+| ---- | ------ | ---- | -------------------- |
+| uri  | string | Yes  | URI of the data.|
+
+**Return value**
+
+| Type          | Description                 |
+| -------------- | --------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+
+```ts
+import Ability from '@ohos.application.Ability'
+let uri = ("datashare:///com.samples.datasharetest.DataShare");
+dataShareHelper.notifyChange(uri);
+```
diff --git a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md
new file mode 100644
index 0000000000000000000000000000000000000000..16c1c1c7b622782a577719bae992d10b1f4634a0
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md
@@ -0,0 +1,861 @@
+# Data Share Predicates
+
+You can use **DataSharePredicates** to specify conditions for [updating](js-apis-data-dataShare.md#update), [deleting](js-apis-data-dataShare.md#delete), and [querying](js-apis-data-dataShare.md#query) data with **DataShare**.
+
+>**NOTE**
+>
+>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+```ts
+import dataSharePredicates from '@ohos.data.dataSharePredicates';
+```
+
+## equalTo
+
+equalTo(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value equal to the specified value.
+
+Currently, only the relational database (RDB) and key-value database (KVDB, schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type                                               | Mandatory| Description                  |
+| ------ | --------------------------------------------------- | ---- | ---------------------- |
+| field  | string                                              | Yes  | Column name in the database table.    |
+| value  | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "Rose")
+```
+
+## notEqualTo
+
+notEqualTo(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value not equal to the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type                                               | Mandatory| Description                  |
+| ------ | --------------------------------------------------- | ---- | ---------------------- |
+| field  | string                                              | Yes  | Column name in the database table.    |
+| value  | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.notEqualTo("NAME", "Rose")
+```
+
+## beginWrap
+
+beginWrap(): DataSharePredicates
+
+Adds a left parenthesis to this **DataSharePredicates**. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type                                       | Description                  |
+| ------------------------------------------- | ---------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a left parenthesis.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "lisi")
+    .beginWrap()
+    .equalTo("AGE", 18)
+    .or()
+    .equalTo("SALARY", 200.5)
+    .endWrap()
+```
+
+## endWrap
+
+endWrap(): DataSharePredicates
+
+Adds a right parenthesis to this **DataSharePredicates** object. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type                                       | Description                  |
+| ------------------------------------------- | ---------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a right parenthesis.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "lisi")
+    .beginWrap()
+    .equalTo("AGE", 18)
+    .or()
+    .equalTo("SALARY", 200.5)
+    .endWrap()
+```
+
+## or
+
+or(): DataSharePredicates
+
+Adds the OR condition to this **DataSharePredicates** object.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type                                       | Description                  |
+| ------------------------------------------- | ---------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the OR condition.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "lisi")
+    .or()
+    .equalTo("NAME", "Rose")
+```
+
+## and
+
+and(): DataSharePredicates
+
+Adds the AND condition to this **DataSharePredicates** object.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type                                       | Description                  |
+| ------------------------------------------- | ---------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the AND condition.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "lisi")
+    .and()
+    .equalTo("SALARY", 200.5)
+```
+
+## contains
+
+contains(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the string that contains the specified value. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                |
+| ------ | ------ | ---- | -------------------- |
+| field  | string | Yes  | Column name in the database table.  |
+| value  | string | Yes  | Value contained in the string.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.contains("NAME", "os")
+```
+
+## beginsWith
+
+beginsWith(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match a string that starts with the specified value. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                  |
+| ------ | ------ | ---- | ---------------------- |
+| field  | string | Yes  | Column name in the database table.    |
+| value  | string | Yes  | Start value of the string.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.beginsWith("NAME", "os")
+```
+
+## endsWith
+
+endsWith(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match a string that ends with the specified value. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                  |
+| ------ | ------ | ---- | ---------------------- |
+| field  | string | Yes  | Column name in the database table.    |
+| value  | string | Yes  | End value of the string.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.endsWith("NAME", "os")
+```
+
+## isNull
+
+isNull(field: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field whose value is null.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| field  | string | Yes  | Column name in the database table.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.isNull("NAME")
+```
+
+## isNotNull
+
+isNotNull(field: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field whose value is not null.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| field  | string | Yes  | Column name in the database table.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.isNotNull("NAME")
+```
+
+## like
+
+like(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match a string that is similar to the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                  |
+| ------ | ------ | ---- | ---------------------- |
+| field  | string | Yes  | Column name in the database table.    |
+| value  | string | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.like("NAME", "%os%")
+```
+
+## unlike
+
+unlike(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match a string that is not similar to the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                  |
+| ------ | ------ | ---- | ---------------------- |
+| field  | string | Yes  | Column name in the database table.    |
+| value  | string | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.unlike("NAME", "%os%")
+```
+
+## glob
+
+glob(field: string, value: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the specified string. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                  |
+| ------ | ------ | ---- | ---------------------- |
+| field  | string | Yes  | Column name in the database table.    |
+| value  | string | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified string.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.glob("NAME", "?h*g")
+```
+
+## between
+
+between(field: string, low: ValueType, high: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value within the specified range. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type                                               | Mandatory| Description                    |
+| ------ | --------------------------------------------------- | ---- | ------------------------ |
+| field  | string                                              | Yes  | Column name in the database table.      |
+| low    | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | The lowest value of the range.|
+| high   | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | The highest value of the range.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.between("AGE", 10, 50)
+```
+
+## notBetween
+
+notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value out of the specified range. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type                                               | Mandatory| Description                    |
+| ------ | --------------------------------------------------- | ---- | ------------------------ |
+| field  | string                                              | Yes  | Column name in the database table.      |
+| low    | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | The lowest value of the range.|
+| high   | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | The highest value of the range.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.notBetween("AGE", 10, 50)
+```
+
+## greaterThan
+
+greaterThan(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value greater than the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name | Type     | Mandatory| Description                  |
+| ------- | --------- | ---- | ---------------------- |
+| field   | string    | Yes  | Column name in the database table.    |
+| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.greaterThan("AGE", 10)
+```
+
+## lessThan
+
+lessThan(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value less than the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type                                               | Mandatory| Description                  |
+| ------ | --------------------------------------------------- | ---- | ---------------------- |
+| field  | string                                              | Yes  | Column name in the database table.    |
+| value  | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.lessThan("AGE", 50)
+```
+
+## greaterThanOrEqualTo
+
+greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value greater than or equal to the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name | Type     | Mandatory| Description                  |
+| ------- | --------- | ---- | ---------------------- |
+| field   | string    | Yes  | Column name in the database table.    |
+| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.greaterThanOrEqualTo("AGE", 10)
+```
+
+## lessThanOrEqualTo
+
+lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value less than or equal to the specified value.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name | Type     | Mandatory| Description                  |
+| ------- | --------- | ---- | ---------------------- |
+| field   | string    | Yes  | Column name in the database table.    |
+| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes  | Value to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.lessThanOrEqualTo("AGE", 50)
+```
+
+## orderByAsc
+
+orderByAsc(field: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object that sorts the values in a column in ascending order.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| field  | string | Yes  | Column name in the database table.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.orderByAsc("AGE")
+```
+
+## orderByDesc
+
+orderByDesc(field: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object that sorts the values in a column in descending order.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| field  | string | Yes  | Column name in the database table.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.orderByDesc("AGE")
+```
+
+## distinct
+
+distinct(): DataSharePredicates
+
+Sets a **DataSharePredicates** object to filter out duplicate records. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "Rose").distinct()
+```
+
+## limit
+
+limit(total: number, offset: number): DataSharePredicates
+
+Sets a **DataSharePredicates** object to specify the number of results and the start position.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Description          |
+| -------- | ------ | ---- | -------------- |
+| total    | number | Yes  | Number of results.  |
+| offset | number | Yes  | Start position.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.equalTo("NAME", "Rose").limit(10, 3)
+```
+
+## groupBy
+
+groupBy(fields: Array&lt;string&gt;): DataSharePredicates
+
+Sets a **DataSharePredicates** object to group the records according to the specified parameters. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type         | Mandatory| Description                |
+| ------ | ------------- | ---- | -------------------- |
+| fields | Array&lt;string&gt; | Yes  | Names of the columns to group.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.groupBy(["AGE", "NAME"])
+```
+
+## indexedBy
+
+indexedBy(field: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to specify the index column. Currently, only the RDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description          |
+| ------ | ------ | ---- | -------------- |
+| field  | string | Yes  | Name of the index column.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.indexedBy("SALARY_INDEX")
+```
+
+## in
+
+in(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **Array<ValueType>** and value within the specified range.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name | Type            | Mandatory| Description                                   |
+| ------- | ---------------- | ---- | --------------------------------------- |
+| field   | string           | Yes| Column name in the database table.                     |
+| value | Array&lt;[ValueType](js-apis-data-ValuesBucket.md#valuetype)&gt; | Yes  | Array of **ValueType**s to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.in("AGE", [18, 20])
+```
+
+## notIn
+
+notIn(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the field with data type **Array<ValueType>** and value out of the specified range.
+
+Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name | Type            | Mandatory| Description                                   |
+| ------- | ---------------- | ---- | --------------------------------------- |
+| field   | string           | Yes  | Column name in the database table.                     |
+| value | Array&lt;[ValueType](js-apis-data-ValuesBucket.md#valuetype)&gt; | Yes  | Array of **ValueType**s to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.notIn("NAME", ["Lisa", "Rose"])
+```
+
+## prefixKey
+
+prefixKey(prefix: string): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match a field with the specified key prefix. Currently, only the KVDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description          |
+| ------ | ------ | ---- | -------------- |
+| prefix | string | Yes  | Key prefix to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.prefixKey("NAME")
+```
+
+## inKeys
+
+inKeys(keys: Array&lt;string&gt;): DataSharePredicates
+
+Sets a **DataSharePredicates** object to match the fields whose keys are within the given range. Currently, only the KVDB supports this **DataSharePredicates** object.
+
+**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
+
+**Parameters**
+
+| Name| Type         | Mandatory| Description              |
+| ------ | ------------- | ---- | ------------------ |
+| inKeys | Array&lt;string&gt; | Yes  | Array of the keys to match.|
+
+**Return value**
+
+| Type                                       | Description                      |
+| ------------------------------------------- | -------------------------- |
+| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.|
+
+**Example**
+
+```ts
+let predicates = new dataSharePredicates.DataSharePredicates()
+predicates.inKeys(["Lisa", "Rose"])
+```
diff --git a/en/application-dev/reference/apis/js-apis-data-distributedobject.md b/en/application-dev/reference/apis/js-apis-data-distributedobject.md
index a58a4583a1db69548342f0c63b8a13aec0dfb623..83875a6edb8aa2395b8750e70fb86b7fa596b03d 100644
--- a/en/application-dev/reference/apis/js-apis-data-distributedobject.md
+++ b/en/application-dev/reference/apis/js-apis-data-distributedobject.md
@@ -1,6 +1,6 @@
 # Distributed Data Object
 
-Provides basic data object management, including creating, querying, deleting, modifying, and subscribing to data objects, and distributed data object collaboration for the same application among multiple devices.
+The distributedDataObject module provides basic data object management, including creating, querying, deleting, modifying, and subscribing to data objects, and distributed data object collaboration for the same application among multiple devices.
 
 > **NOTE**<br/>
 >
@@ -23,9 +23,9 @@ Creates a distributed data object.
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| source | object | Yes| Attribute of the distributed data object to create.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | source | object | Yes| Attribute of the distributed data object to create.|
 
 **Return value**
 | Type| Description|
@@ -33,12 +33,11 @@ Creates a distributed data object.
 | [DistributedObject](#distributedobject) | Distributed data object created.|
 
 **Example**
-  ```js
-  import distributedObject from '@ohos.data.distributedDataObject';
-  // Create a distributed data object, which contains attributes of four types, namely, string, number, boolean, and object.
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, 
-                 parent:{mother:"jack mom",father:"jack Dad"}});
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+// Create a distributed data object, which contains attributes of four types, namely, string, number, boolean, and object.
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
+```
 
 
 ## distributedObject.genSessionId
@@ -50,15 +49,15 @@ Creates a random session ID.
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Return value**
-| Type| Description|
-| -------- | -------- |
-| string | Session ID created.|
+  | Type| Description|
+  | -------- | -------- |
+  | string | Session ID created.|
 
 **Example**
-  ```js
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var sessionId = distributedObject.genSessionId();
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var sessionId = distributedObject.genSessionId();
+```
 
 ## SaveSuccessResponse<sup>9+</sup>
 
@@ -98,27 +97,26 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo
 
 **Parameters**
 
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.|
 
 **Return value**
 
-| Type| Description|
-| -------- | -------- |
-| boolean | Returns **true** if the session ID is set successfully;<br>returns **false** otherwise. |
+  | Type| Description|
+  | -------- | -------- |
+  | boolean | Returns **true** if the session ID is set successfully;<br>returns **false** otherwise. |
 
 **Example**
 
-  ```js
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, 
-                 parent:{mother:"jack mom",father:"jack Dad"}});
-  // Add g_object to the distributed network.
-  g_object.setSessionId(distributedObject.genSessionId());
-  // Remove g_object from the distributed network.
-  g_object.setSessionId("");
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});;
+// Add g_object to the distributed network.
+g_object.setSessionId(distributedObject.genSessionId());
+// Remove g_object from the distributed network.
+g_object.setSessionId("");
+```
 
 
 ### on('change')
@@ -130,15 +128,15 @@ Subscribes to the changes of this distributed data object.
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.|
-| callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | Yes| Callback used to return the changes of the distributed data object.<br>**sessionId** indicates the session ID of the distributed data object.<br>**fields** indicates the changed attributes of the distributed data object.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.|
+  | callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | Yes| Callback used to return the changes of the distributed data object.<br>**sessionId** indicates the session ID of the distributed data object.<br>**fields** indicates the changed attributes of the distributed data object.|
 
 **Example**
 ```js
 import distributedObject from '@ohos.data.distributedDataObject';  
-var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
 globalThis.changeCallback = (sessionId, changeData) => {
     console.info("change" + sessionId);
     if (changeData != null && changeData != undefined) {
@@ -159,16 +157,16 @@ Unsubscribes from the changes of this distributed data object.
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.|
-| callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.<br>**sessionId** indicates the session ID of the distributed data object.<br>**fields** indicates the changed attributes of the distributed data object.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.|
+  | callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.<br>**sessionId** indicates the session ID of the distributed data object.<br>**fields** indicates the changed attributes of the distributed data object.|
 
 
 **Example**
 ```js
 import distributedObject from '@ohos.data.distributedDataObject';  
-var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
 // Unregister the specified data change callback.
 g_object.off("change", globalThis.changeCallback);
 // Unregister all data change callbacks.
@@ -184,10 +182,10 @@ Subscribes to the status change (online or offline) of this distributed data obj
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.|
-| callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.<br>**sessionId**: session ID of the distributed data object.<br>**networkId**: object device ID, that is, **deviceId**.<br>**status** indicates the object status, which can be online or offline. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.|
+  | callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.<br>**sessionId**: session ID of the distributed data object.<br>**networkId**: object device ID, that is, **deviceId**.<br>**status** indicates the object status, which can be online or offline.|
 
 **Example**
 ```js
@@ -195,7 +193,7 @@ import distributedObject from '@ohos.data.distributedDataObject';
 globalThis.statusCallback = (sessionId, networkId, status) => {
     globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
 }
-var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
 g_object.on("status", globalThis.statusCallback);
 ```
 
@@ -209,16 +207,16 @@ Unsubscribes from the status change (online or offline) of this distributed data
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.|
-| callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.<br>**sessionId**: session ID of the distributed data object.<br>**deviceId** indicates the device ID of the distributed data object.<br>**status** indicates the status, which can be online or offline.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.|
+  | callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.<br>**sessionId**: session ID of the distributed data object.<br>**deviceId** indicates the device ID of the distributed data object.<br>**status** indicates the status, which can be online or offline.|
 
 
 **Example**
 ```js
 import distributedObject from '@ohos.data.distributedDataObject'; 
-var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
 globalThis.statusCallback = (sessionId, networkId, status) => {
     globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
 }
@@ -245,24 +243,24 @@ The saved data will be released in the following cases:
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.|
-| callback | AsyncCallback&lt;[SaveSuccessResponse](#savesuccessresponse)&gt; | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.|
+  | callback | AsyncCallback&lt;[SaveSuccessResponse](#savesuccessresponse9)&gt; | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.|
 
 **Example**
-
-  ```ts
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
-  g_object.setSessionId("123456");
-  g_object.save("local", (result)=>{
-      console.log("save callback");
-      console.info("save sessionId " + result.sessionId);
-      console.info("save version " + result.version);
-      console.info("save deviceId " + result.deviceId);
-  });
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
+g_object.setSessionId("123456");
+g_object.save("local", (status, result)=>{
+    console.log("save status = " + status);
+    console.log("save callback");
+    console.info("save sessionId: " + result.sessionId);
+    console.info("save version: " + result.version);
+    console.info("save deviceId:  " + result.deviceId);
+});
+```
 
 ### save<sup>9+</sup>
 
@@ -281,31 +279,31 @@ The saved data will be released in the following cases:
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. |
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. |
 
-  **Return value**
+**Return value**
 
-| Type| Description|
-| -------- | -------- |
-| Promise&lt;[SaveSuccessResponse](#savesuccessresponse)&gt; | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.|
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;[SaveSuccessResponse](#savesuccessresponse9)&gt; | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.|
 
 **Example**
 
-  ```ts
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
-  g_object.setSessionId("123456");
-  g_object.save("local").then((result)=>{
-      console.log("save callback");
-      console.info("save sessionId " + result.sessionId);
-      console.info("save version " + result.version);
-      console.info("save deviceId " + result.deviceId);
-  }, ()=>{
-      console.error("save failed");
-  });
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
+g_object.setSessionId("123456");
+g_object.save("local").then((result)=>{
+    console.log("save callback");
+    console.info("save sessionId " + result.sessionId);
+    console.info("save version " + result.version);
+    console.info("save deviceId " + result.deviceId);
+}, ()=>{
+    console.error("save failed");
+});
+```
 
 ### revokeSave<sup>9+</sup>
 
@@ -319,20 +317,20 @@ If the object is stored on another device, the data on the local device will be
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| callback | AsyncCallback&lt;[RevokeSaveSuccessResponse](#revokesavesuccessresponse)&gt; | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.|
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)&gt; | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.|
 
 **Example**
 
-  ```ts
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
-  g_object.setSessionId("123456");
-  g_object.revokeSave((result, data) =>{
-    console.log("revokeSave callback");
-  });
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
+g_object.setSessionId("123456");
+g_object.revokeSave((result, data) =>{
+  console.log("revokeSave callback");
+});
+```
 
 ### revokeSave<sup>9+</sup>
 
@@ -345,22 +343,22 @@ If the object is stored on another device, the data on the local device will be
 
 **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
 
-  **Return value**
+**Return value**
 
-| Type| Description|
-| -------- | -------- |
-| Promise&lt;[RevokeSaveSuccessResponse](#revokesavesuccessresponse)&gt; | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.|
+  | Type| Description|
+  | -------- | -------- |
+  | Promise&lt;[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)&gt; | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.|
 
 **Example**
 
-  ```ts
-  import distributedObject from '@ohos.data.distributedDataObject';
-  var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
-  g_object.setSessionId("123456");
-  g_object.revokeSave("local").then((result)=>{
-      console.log("revokeSave callback");
-      console.log("sessionId" + result.sessionId);
-  }, ()=>{
-      console.error("revokeSave failed");
-  });
-  ```
+```js
+import distributedObject from '@ohos.data.distributedDataObject';
+var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
+g_object.setSessionId("123456");
+g_object.revokeSave().then((result)=>{
+    console.log("revokeSave callback");
+    console.log("sessionId" + result.sessionId);
+}, ()=>{
+    console.error("revokeSave failed");
+});
+```
diff --git a/en/application-dev/reference/apis/js-apis-data-preferences.md b/en/application-dev/reference/apis/js-apis-data-preferences.md
index 63371ed42b8eb940caa8072ffda6aa17d78658c5..560696c1ca48cb404aa0a29e95f8c3c1a1841198 100644
--- a/en/application-dev/reference/apis/js-apis-data-preferences.md
+++ b/en/application-dev/reference/apis/js-apis-data-preferences.md
@@ -681,7 +681,7 @@ Enumerates the value types.
 
 **System capability**: SystemCapability.DistributedDataManager.Preferences.Core
 
-| Name          | Description                          |
+| Type          | Description                          |
 | -------------- | ------------------------------ |
 | number         | The value is a number.            |
 | string         | The value is a string.          |
diff --git a/en/application-dev/reference/apis/js-apis-data-rdb.md b/en/application-dev/reference/apis/js-apis-data-rdb.md
index 71b5d2bec230d88f378b1fa122319e8ba983c6e7..38c07d6247487e037e9158a00e5c2f752621b44e 100644
--- a/en/application-dev/reference/apis/js-apis-data-rdb.md
+++ b/en/application-dev/reference/apis/js-apis-data-rdb.md
@@ -781,13 +781,6 @@ Sets the **RdbPredicates** to filter out duplicate records.
 ```js
 let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
 predicates.equalTo("NAME", "Rose").distinct("NAME")
-let promise = rdbStore.query(predicates, ["NAME"])
-promise.then((resultSet) => {
-    console.log("ResultSet column names: " + resultSet.columnNames)
-    console.log("ResultSet column count: " + resultSet.columnCount)
-}).catch((err) => {
-    console.log("Query err.")
-})
 ```
 
 
@@ -1109,7 +1102,7 @@ Updates data in the RDB store based on the specified **DataSharePredicates** obj
 | -------- | -------- | -------- | -------- |
 | table | string | Yes| Name of the target table.|
 | values | [ValuesBucket](#valuesbucket) | Yes| Rows of data to update in the RDB store. The key-value pair is associated with the column name in the target table.|
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)| Yes|  Update conditions specified by the **DataSharePredicates** object.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)| Yes|  Update conditions specified by the **DataSharePredicates** object.|
 | callback | AsyncCallback&lt;number&gt; | Yes| Callback invoked to return the number of rows updated.|
 
 **Example**
@@ -1133,7 +1126,7 @@ rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, ret) {
 ```
 ### update<sup>9+</sup>
 
-update(table: string, values: ValuesBucket, predicates: DataSharePredicates):Promise&lt;number&gt;
+update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
 
 Updates data in the RDB store based on the specified **DataSharePredicates** object. This API uses a promise to return the result.
 
@@ -1144,7 +1137,7 @@ Updates data in the RDB store based on the specified **DataSharePredicates** obj
 | -------- | -------- | -------- | -------- |
 | table | string | Yes| Name of the target table.|
 | values | [ValuesBucket](#valuesbucket) | Yes| Rows of data to update in the RDB store. The key-value pair is associated with the column name in the target table.|
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes| Update conditions specified by the **DataSharePredicates** object.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes| Update conditions specified by the **DataSharePredicates** object.|
 
 **Return value**
 | Type| Description|
@@ -1215,7 +1208,7 @@ Deletes data from the RDB store based on the specified **RdbPredicates** object.
 **Return value**
 | Type| Description|
 | -------- | -------- |
-| Promise&lt;number&gt; |  Promise used to return the number of rows updated.|
+| Promise&lt;number&gt; | Promise used to return the number of rows updated.|
 
 **Example**
 ```js
@@ -1231,7 +1224,7 @@ promise.then((rows) => {
 
 ### delete<sup>9+</sup>
 
-delete(table: string, predicates: DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
+delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
 
 
 Deletes data from the RDB store based on the specified **DataSharePredicates** object. This API uses an asynchronous callback to return the result.
@@ -1242,7 +1235,7 @@ Deletes data from the RDB store based on the specified **DataSharePredicates** o
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | table | string | Yes| Name of the target table.|
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes|  Conditions specified by the **DataSharePredicates** object for deleting data.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes|  Conditions specified by the **DataSharePredicates** object for deleting data.|
 | callback | AsyncCallback&lt;number&gt; | Yes| Callback invoked to return the number of rows updated.|
 
 **Example**
@@ -1270,12 +1263,12 @@ Deletes data from the RDB store based on the specified **DataSharePredicates** o
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | table | string | Yes| Name of the target table.|
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes| Conditions specified by the **DataSharePredicates** object for deleting data.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes| Conditions specified by the **DataSharePredicates** object for deleting data.|
 
 **Return value**
 | Type| Description|
 | -------- | -------- |
-| Promise&lt;number&gt; |  Promise used to return the number of rows updated.|
+| Promise&lt;number&gt; | Promise used to return the number of rows updated.|
 
 **Example**
 ```js
@@ -1354,7 +1347,7 @@ Queries data in the RDB store based on specified conditions. This API uses a pro
 
 ### query<sup>9+</sup>
 
-query(predicates: DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
+query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
 
 Queries data in the RDB store based on specified conditions. This API uses an asynchronous callback to return the result.
 
@@ -1363,7 +1356,8 @@ Queries data in the RDB store based on specified conditions. This API uses an as
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes| Query conditions specified by the **DataSharePredicates** object.|
+| table | string | Yes| Name of the target table.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes| Query conditions specified by the **DataSharePredicates** object.|
 | columns | Array&lt;string&gt; | Yes| Columns to query. If this parameter is not specified, the query applies to all columns.|
 | callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | Yes| Callback invoked to return the result. If the operation is successful, a **ResultSet** object will be returned.|
 
@@ -1384,7 +1378,7 @@ rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"],
 
 ### query<sup>9+</sup>
 
-query(predicates: DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
+query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
 
 Queries data in the RDB store based on specified conditions. This API uses a promise to return the result.
 
@@ -1393,7 +1387,8 @@ Queries data in the RDB store based on specified conditions. This API uses a pro
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes| Query conditions specified by the **DataSharePredicates** object.|
+| table | string | Yes| Name of the target table.|
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes| Query conditions specified by the **DataSharePredicates** object.|
 | columns | Array&lt;string&gt; | No| Columns to query. If this parameter is not specified, the query applies to all columns.|
 
 **Return value**
@@ -1591,7 +1586,7 @@ rdbStore.commit()
 
 ### rollBack<sup>8+</sup>
 
-rollBack():void;
+rollBack():void
 
 Rolls back the SQL statements that have been executed.
 
@@ -1997,7 +1992,7 @@ Defines the data types allowed.
 
 **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
 
-| Name| Description|
+| Type| Description|
 | -------- | -------- |
 | number | Number.|
 | string | String.|
@@ -2006,14 +2001,13 @@ Defines the data types allowed.
 
 ## ValuesBucket
 
-Defines a bucket to store key-value pairs.
+Defines the types of the key and value in a KV pair.
 
 **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
 
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| [key:&nbsp;string] | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | Yes| Defines a bucket to store key-value pairs.|
-
+| Key Type| Value Type|
+| -------- | -------- |
+| string | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 
 
 ## SyncMode<sup>8+</sup>
 
diff --git a/en/application-dev/reference/apis/js-apis-data-storage.md b/en/application-dev/reference/apis/js-apis-data-storage.md
index 47a961f7cceb3c20de583387d9ed54d5494e5ac4..45465710a587c51fea60e7c59f2b804c80888043 100644
--- a/en/application-dev/reference/apis/js-apis-data-storage.md
+++ b/en/application-dev/reference/apis/js-apis-data-storage.md
@@ -793,7 +793,7 @@ Enumerates the value types.
 
 **System capability**: SystemCapability.DistributedDataManager.Preferences.Core
 
-| Name   | Description                |
+| Type   | Description                |
 | ------- | -------------------- |
 | number  | The value is a number.  |
 | string  | The value is a string.  |
diff --git a/en/application-dev/reference/apis/js-apis-dataAbilityHelper.md b/en/application-dev/reference/apis/js-apis-dataAbilityHelper.md
index df69b38be754f255ce637249c18a9d2fca5e13fd..52af89ae7faa9fd20a28a62f959f4a3f39340ced 100644
--- a/en/application-dev/reference/apis/js-apis-dataAbilityHelper.md
+++ b/en/application-dev/reference/apis/js-apis-dataAbilityHelper.md
@@ -5,12 +5,6 @@
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the FA model.
 
-## Modules to Import
-
-```js
-import featureAbility from "@ohos.ability.featureAbility";
-```
-
 ## Usage
 
 Import the following modules based on the actual situation before using the current module:
@@ -573,7 +567,7 @@ Inserts multiple data records into the database. This API uses an asynchronous c
 | Name        | Type                   | Mandatory| Description                            |
 | ------------ | ----------------------- | ---- | -------------------------------- |
 | uri          | string                  | Yes  | URI of the data to insert.        |
-| valuesBucket | Array\<rdb.ValuesBucket> | Yes  | Data records to insert.          |
+| valuesBucket | Array<rdb.ValuesBucket> | Yes  | Data records to insert.          |
 | callback     | AsyncCallback\<number>  | Yes  | Callback used to return the number of inserted data records.|
 
 **Example**
diff --git a/en/application-dev/reference/apis/js-apis-device-manager.md b/en/application-dev/reference/apis/js-apis-device-manager.md
index 93ab553ef10e531fea0b2d0871b65183d22bf6fa..8c27495f208ad620ed6e104fb19c958350805c1e 100644
--- a/en/application-dev/reference/apis/js-apis-device-manager.md
+++ b/en/application-dev/reference/apis/js-apis-device-manager.md
@@ -1,11 +1,22 @@
 # Device Management
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+The **DeviceManager** module provides APIs for distributed device management.
+
+System applications can call the APIs to do the following:
+
+- Subscribe to or unsubscribe from device state changes.
+- Discover peripheral untrusted devices.
+- Authenticate or deauthenticate a device.
+- Query the trusted device list.
+- Query local device information, including the device name, type, and ID.
+
+> **NOTE**
+>
 > - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 > - The APIs of this module are system APIs and cannot be called by third-party applications.
 
 
-## Modules to import:
+## Modules to Import
 
 ```
 import deviceManager from '@ohos.distributedHardware.deviceManager';
@@ -21,10 +32,10 @@ Creates a **DeviceManager** instance.
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | bundleName | string | Yes| Bundle name of the application.|
-  | callback | AsyncCallback&lt;[DeviceManager](#devicemanager)&gt; | Yes| Callback invoked to return the **DeviceManager** instance created.|
+  | Name       | Type                                      | Mandatory  | Description                                  |
+  | ---------- | ---------------------------------------- | ---- | ------------------------------------ |
+  | bundleName | string                                   | Yes   | Bundle name of an application.                          |
+  | callback   | AsyncCallback&lt;[DeviceManager](#devicemanager)&gt; | Yes   | Callback used to return the **DeviceManager** instance created.|
 
 - Example
   ```
@@ -34,10 +45,40 @@ Creates a **DeviceManager** instance.
           return;
       }
       console.info("createDeviceManager success");
-      this.dmInstance = data;
+      let dmInstance = data;
   });
   ```
 
+## DeviceInfo
+
+Defines device information.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name                    | Type                       | Mandatory  | Description      |
+| ---------------------- | ------------------------- | ---- | -------- |
+| deviceId               | string                    | Yes   | Unique identifier of a device.|
+| deviceName             | string                    | Yes   | Device name.   |
+| deviceType             | [DeviceType](#devicetype) | Yes   | Device type.   |
+| networkId<sup>8+</sup> | string                    | Yes   | Network ID of the device. |
+
+
+## DeviceType
+
+Enumerates the device types.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name          | Default Value | Description  |
+| ------------ | ---- | ---- |
+| SPEAKER      | 0x0A | Smart speaker.|
+| PHONE        | 0x0E | Phone.  |
+| TABLET       | 0x11 | Tablet.  |
+| WEARABLE     | 0x6D | Wearable.|
+| TV           | 0x9C | Smart TV. |
+| CAR          | 0x83 | Car.   |
+| UNKNOWN_TYPE | 0    | Unknown device type.|
+
 
 ## DeviceStateChangeAction
 
@@ -45,42 +86,103 @@ Enumerates the device states.
 
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
-| Name| Default Value| Description|
-| -------- | -------- | -------- |
-| ONLINE | 0 | The device is online.|
-| READY | 1 | The device is ready, and the device information has been synchronized.|
-| OFFLINE | 2 | The device is offline.|
-| CHANGE | 3 | The device information is changed.|
+| Name     | Default Value | Description             |
+| ------- | ---- | --------------- |
+| ONLINE  | 0    | The device is online.          |
+| READY   | 1    | The device is ready, and the device information has been synchronized.|
+| OFFLINE | 2    | The device is offline.          |
+| CHANGE  | 3    | The device information is changed.        |
 
+## SubscribeInfo
 
-## DeviceType
+Defines subscription information.
 
-Enumerates the device types.
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name           | Type                               | Mandatory  | Description               |
+| ------------- | --------------------------------- | ---- | ----------------- |
+| subscribeId   | number                            | Yes   | Subscription ID, used to identify a device discovery period.|
+| mode          | [DiscoverMode ](#discovermode)    | No   | Device discovery mode.            |
+| medium        | [ExchangeMedium](#exchangemedium) | No   | Medium used for device discovery.            |
+| freq          | [ExchangeFreq](#exchangefreq)     | No   | Frequency of device discovery.            |
+| isSameAccount | boolean                           | No   | Whether the same account is used on the discovered device.           |
+| isWakeRemote  | boolean                           | No   | Whether to wake up the discovered device.          |
+| capability    | [SubscribeCap](#subscribecap)     | No   | Discovery capability.            |
+
+
+## DiscoverMode 
+
+Enumerates the device discovery modes.
 
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
-| Name| Default Value| Description|
-| -------- | -------- | -------- |
-| SPEAKER | 0x0A | Smart speaker.|
-| PHONE | 0x0E | Phone.|
-| TABLET | 0x11 | Tablet.|
-| WEARABLE | 0x6D | Wearable.|
-| TV | 0x9C | Smart TV.|
-| CAR | 0x83 | Car.|
-| UNKNOWN_TYPE | 0 | Unknown device type.|
+| Name                   | Default Value | Description   |
+| --------------------- | ---- | ----- |
+| DISCOVER_MODE_PASSIVE | 0x55 | Passive discovery.|
+| DISCOVER_MODE_ACTIVE  | 0xAA | Active discovery.|
 
 
-## DeviceInfo
+## ExchangeMedium 
 
-Defines device information.
+Enumerates the media used for device discovery.
 
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| deviceId | number | Yes| Unique device identifier.|
-| deviceName | string | Yes| Device name.|
-| deviceType | number | Yes| Device type.|
+| Name  | Default Value | Description       |
+| ---- | ---- | --------- |
+| AUTO | 0    | Automatic.  |
+| BLE  | 1    | Bluetooth.  |
+| COAP | 2    | Wi-Fi.|
+| USB  | 3    | USB. |
+
+## ExchangeFreq 
+
+Enumerates the device discovery frequencies.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name        | Default Value | Description   |
+| ---------- | ---- | ----- |
+| LOW        | 0    | Low frequency. |
+| MID        | 1    | Medium frequency. |
+| HIGH       | 2    | High frequency. |
+| SUPER_HIGH | 3    | Ultra-high frequency.|
+
+
+## SubscribeCap 
+
+Enumerates the discovery capabilities.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name                       | Default Value | Description            |
+| ------------------------- | ---- | -------------- |
+| SUBSCRIBE_CAPABILITY_DDMP | 0    | DDMP capability. This will be deprecated later.|
+| SUBSCRIBE_CAPABILITY_OSD  | 1    | OSD capability.        |
+
+
+## AuthParam
+
+Defines the authentication parameters.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name       | Type                  | Mandatory  | Description        |
+| --------- | -------------------- | ---- | ---------- |
+| authType  | number               | Yes   | Authentication type.     |
+| extraInfo | {[key:string] : any} | No   | Extended field.|
+
+## AuthInfo
+
+Defines authentication information.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+| Name       | Type                  | Mandatory  | Description        |
+| --------- | -------------------- | ---- | ---------- |
+| authType  | number               | Yes   | Authentication type.     |
+| token     | number               | Yes   | Authentication token.  |
+| extraInfo | {[key:string] : any} | No   | Extended field.|
 
 
 ## DeviceManager
@@ -92,12 +194,12 @@ Provides APIs to obtain information about trusted devices and local devices. Bef
 
 release(): void
 
-Releases the **DeviceManager** instance that is no longer used.
+Releases this **DeviceManager** instance when it is no longer used.
 
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - Example
-  ```
+  ```js
   dmInstance.release();
   ```
 
@@ -111,16 +213,258 @@ Obtains all trusted devices synchronously.
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - Return value
-  | Name| Description|
-  | -------- | -------- |
+  | Name                                    | Description       |
+  | -------------------------------------- | --------- |
   | Array&lt;[DeviceInfo](#deviceinfo)&gt; | List of trusted devices obtained.|
 
 - Example
-  ```
+  ```js
   var deviceInfoList = dmInstance.getTrustedDeviceListSync();
   ```
 
 
+### getTrustedDeviceList<sup>8+</sup>
+
+getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;): void
+
+Obtains all trusted devices. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description                   |
+  | -------- | ---------------------------------------- | ---- | --------------------- |
+  | callback | AsyncCallback&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | Yes   | Callback used to return the list of trusted devices.|
+
+- Example
+  ```js
+  dmInstance.getTrustedDeviceList((err, data) => {
+      console.log("getTrustedDeviceList err: " + JSON.stringify(err));
+      console.log('get trusted device info: ' + JSON.stringify(data));
+    }
+  );
+  ```
+
+### getTrustedDeviceList<sup>8+</sup>
+
+getTrustedDeviceList(): Promise&lt;Array&lt;DeviceInfo&gt;&gt;
+
+Obtains all trusted devices. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- Return value
+  | Type                                      | Description                   |
+  | ---------------------------------------- | --------------------- |
+  | Promise&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | Promise used to return the list of trusted devices.|
+
+- Example
+  ```js
+  dmInstance.getTrustedDeviceList().then((data) => { 
+      console.log('get trusted device info: ' + JSON.stringify(data));
+  }).catch((err) => {
+      console.log("getTrustedDeviceList err: " + JSON.stringify(err));
+  });
+  ```
+
+### getLocalDeviceInfoSync<sup>8+</sup>
+
+getLocalDeviceInfoSync(): [DeviceInfo](#deviceinfo)
+
+Obtains local device information synchronously.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- Return value
+  | Name                                    | Description       |
+  | -------------------------------------- | --------- |
+  | Array&lt;[DeviceInfo](#deviceinfo)&gt; | List of local devices obtained.|
+
+- Example
+  ```js
+  var deviceInfo = dmInstance.getLocalDeviceInfoSync();
+  ```
+
+
+### getLocalDeviceInfo<sup>8+</sup>
+
+getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;): void
+
+Obtains local device information. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description       |
+  | -------- | ---------------------------------------- | ---- | --------- |
+  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | Yes   | Callback used to return the local device information.|
+
+- Example
+  ```js
+  dmInstance.getLocalDeviceInfo((err, data) => {
+      console.log("getLocalDeviceInfo err: " + JSON.stringify(err));
+      console.log('get local device info: ' + JSON.stringify(data));
+    }
+  );
+  ```
+
+### getLocalDeviceInfo<sup>8+</sup>
+
+getLocalDeviceInfo(): Promise&lt;DeviceInfo&gt;
+
+Obtains local device information. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- Return value
+  | Type                                      | Description                   |
+  | ---------------------------------------- | --------------------- |
+  | Promise&lt;[DeviceInfo](#deviceinfo)&gt; | Promise used to return the local device information.|
+
+- Example
+  ```js
+  dmInstance.getLocalDeviceInfo().then((data) => { 
+      console.log('get local device info: ' + JSON.stringify(data));
+  }).catch((err) => {
+      console.log("getLocalDeviceInfo err: " + JSON.stringify(err));
+  });
+  ```
+
+### startDeviceDiscovery
+
+startDeviceDiscovery(subscribeInfo: SubscribeInfo): void
+
+Starts to discover peripheral devices.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name           | Type                           | Mandatory  | Description   |
+  | ------------- | ------------------------------- | ---- | ----- |
+  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | Yes   | Subscription information.|
+
+- Example
+  ```js
+  // Automatically generate a unique subscription ID.
+  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
+  var subscribeInfo = {
+      "subscribeId": subscribeId,
+      "mode": 0xAA, // Active discovery
+      "medium": 0, // Automatic. Multiple media can be used for device discovery.
+      "freq": 2, // High frequency
+      "isSameAccount": false,
+      "isWakeRemote": false,
+      "capability": 1
+  };
+  dmInstance.startDeviceDiscovery(subscribeInfo); // The deviceFound callback is invoked to notify the application when a device is discovered.
+  ```
+
+### stopDeviceDiscovery
+
+stopDeviceDiscovery(subscribeId: number): void
+
+Stops device discovery.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name         | Type  | Mandatory  | Description   |
+  | ----------- | ------ | ---- | ----- |
+  | subscribeId | number | Yes   | Subscription ID.|
+
+- Example
+  ```js
+  // The subscribeId input must be the same as that automatically generated in startDeviceDiscovery.
+  dmInstance.stopDeviceDiscovery(subscribeId);
+  ```
+
+### authenticateDevice
+
+authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void
+
+Authenticates a device.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name        | Type                                    | Mandatory  | Description     |
+  | ---------- | ---------------------------------------- | ---- | ------- |
+  | deviceInfo | [DeviceInfo](#deviceinfo)                | Yes   | Device information.  |
+  | authParam  | [AuthParam](#authparam)                  | Yes   | Authentication parameter.  |
+  | callback   | AsyncCallback<{ deviceId: string, pinToken ?: number }> | Yes   | Callback used to return the authentication result.|
+
+- Example
+  ```js
+  // Information about the device to authenticate. The information can be obtained from the device discovery result.
+  var deviceInfo ={
+      "deviceId": "XXXXXXXX",
+      "deviceName": "",
+      deviceType: 0x0E
+  };
+  let authParam = {
+      "authType": 1, // Authentication type. The value 1 means no account PIN authentication.
+      "extraInfo": {} 
+  }
+  dmInstance.authenticateDevice(deviceInfo, authParam, (err, data) => {
+      if (err) {
+          console.info(TAG + "authenticateDevice err:" + JSON.stringify(err));
+          return;
+      }
+      console.info(TAG + "authenticateDevice result:" + JSON.stringify(data));
+      token = data.pinToken;
+  });
+  ```
+
+### unAuthenticateDevice<sup>8+</sup>
+
+unAuthenticateDevice(deviceInfo: DeviceInfo): void
+
+Deauthenticates a device.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name        | Type                     | Mandatory  | Description   |
+  | ---------- | ------------------------- | ---- | ----- |
+  | deviceInfo | [DeviceInfo](#deviceinfo) | Yes   | Device information.|
+
+- Example
+  ```js
+  dmInstance.unAuthenticateDevice(deviceInfo);
+  ```
+
+
+### verifyAuthInfo
+
+verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, level: number}>): void
+
+Verifies authentication information.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description     |
+  | -------- | ---------------------------------------- | ---- | ------- |
+  | authInfo | [AuthInfo](#authinfo)                    | Yes   | Authentication information.  |
+  | authInfo | AsyncCallback<{ deviceId: string, level: number }> | Yes   | Callback used to return the verification result.|
+
+- Example
+  ```js
+  let authInfo = {
+    "authType": 1,
+    "token": xxxxxx,
+    "extraInfo": {}
+  }
+  dmInstance.verifyAuthInfo(authInfo, (err, data) => {
+    if (err) {
+        console.info(TAG + "verifyAuthInfo err:" + JSON.stringify(err));
+        return;
+    }
+    console.info(TAG + "verifyAuthInfo result:" + JSON.stringify(data));
+  });
+  ```
+
+
 ### on('deviceStateChange')
 
 on(type: 'deviceStateChange',  callback: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
@@ -130,13 +474,13 @@ Subscribes to changes in the device state.
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **deviceStateChange**, which indicates a device state change event.|
-  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | Yes| Callback invoked to return the device information and state.|
+  | Name      | Type                                    | Mandatory  | Description                            |
+  | -------- | ---------------------------------------- | ---- | ------------------------------ |
+  | type     | string                                   | Yes   | Event type. The value **'deviceStateChange'** indicates a device state change event.|
+  | callback | Callback&lt;{ action: [DeviceStateChangeAction](#devicestatechangeaction), device: [DeviceInfo](#deviceinfo) }&gt; | Yes   | Callback invoked to return the device information and state.     |
 
 - Example
-  ```
+  ```js
   dmInstance.on('deviceStateChange', (data) => {      
         console.info("deviceStateChange on:" + JSON.stringify(data));
       }
@@ -146,20 +490,20 @@ Subscribes to changes in the device state.
 
 ### off('deviceStateChange')
 
-off(type: 'deviceStateChange', callback?: Call	back&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
+off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
 
 Unsubscribes from changes in the device state.
 
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value **deviceStateChange** indicates an event of device state change.|
-  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;&nbsp;}&gt; | Yes| Callback invoked to return the device information and state.|
+  | Name      | Type                                    | Mandatory  | Description                         |
+  | -------- | ---------------------------------------- | ---- | --------------------------- |
+  | type     | string                                   | Yes   | Event type. The value **'deviceStateChange'** indicates a device state change event.       |
+  | callback | Callback&lt;{ action: [DeviceStateChangeAction](#devicestatechangeaction), device: [DeviceInfo](#deviceinfo) }&gt; | Yes   | Callback invoked to return the device information and state.|
 
 - Example
-  ```
+  ```js
   dmInstance.off('deviceStateChange', (data) => {      
         console.info('deviceStateChange' + JSON.stringify(data));
      }
@@ -167,6 +511,95 @@ Unsubscribes from changes in the device state.
   ```
 
 
+### on('deviceFound')
+
+on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
+
+Subscribes to device discovery events.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description                        |
+  | -------- | ---------------------------------------- | ---- | -------------------------- |
+  | type     | string                                   | Yes   | Event type. The value **'deviceFound'** indicates an event reported when a device is discovered.|
+  | callback | Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt; | Yes   | Callback used for device discovery.              |
+
+- Example
+  ```js
+  dmInstance.on('deviceFound', (data) => {
+        console.info("deviceFound:" + JSON.stringify(data));
+      }
+  );
+  ```
+
+### off('deviceFound')
+
+off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
+
+Unsubscribes from device discovery events.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description                         |
+  | -------- | ---------------------------------------- | ---- | --------------------------- |
+  | type     | string                                   | Yes   | Event type. The value **'deviceFound'** indicates an event reported when a device is discovered.                |
+  | callback | Callback&lt;{ subscribeId: number, device: [DeviceInfo](#deviceinfo) }&gt; | Yes   | Callback used for device discovery, which is invoked to return the device information and state.|
+
+- Example
+  ```js
+  dmInstance.off('deviceFound', (data) => {      
+        console.info('deviceFound' + JSON.stringify(data));
+      }
+  );
+  ```
+
+### on('discoverFail')
+
+on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
+
+Subscribes to device discovery failures.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description                            |
+  | -------- | ---------------------------------------- | ---- | ------------------------------ |
+  | type     | string                                   | Yes   | Event type. The event **'discoverFail'** indicates an event reported when device discovery fails.|
+  | callback | Callback&lt;{ subscribeId: number, reason: number }&gt; | Yes   | Callback used for the device discovery failure.                |
+
+- Example
+  ```js
+  dmInstance.on('discoverFail', (data) => {
+        this.log("discoverFail on:" + JSON.stringify(data));
+      }
+  );
+  ```
+
+### off('discoverFail')
+
+off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
+
+Unsubscribes from device discovery failures.
+
+**System capability**: SystemCapability.DistributedHardware.DeviceManager
+
+- **Parameters**
+  | Name      | Type                                    | Mandatory  | Description               |
+  | -------- | ---------------------------------------- | ---- | ----------------- |
+  | type     | string                                   | Yes   | Event type. The event **'discoverFail'** indicates an event reported when device discovery fails.    |
+  | callback | Callback&lt;{ subscribeId: number, reason: number }&gt; | Yes   | Callback used for the device discovery failure.|
+
+- Example
+  ```js
+  dmInstance.off('deviceFound', (data) => {      
+        console.info('deviceFound' + JSON.stringify(data));
+      }
+  );
+  ```
+
+
 ### on('serviceDie')
 
 on(type: 'serviceDie', callback: () =&gt; void): void
@@ -176,13 +609,13 @@ Subscribes to dead events of the **DeviceManager** service.
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value **serviceDie** indicates an event reported when the **DeviceManager** service is terminated unexpectedly.|
-  | callback | ()&nbsp;=&gt;&nbsp;void | Yes| Callback invoked when a dead event of the **DeviceManager** service occurs.|
+  | Name      | Type                   | Mandatory  | Description                                      |
+  | -------- | ----------------------- | ---- | ---------------------------------------- |
+  | type     | string                  | Yes   | Event type. The value **'serviceDie'** indicates an event reported when the **DeviceManager** service is terminated unexpectedly.|
+  | callback | () =&gt; void | Yes   | Callback invoked when a dead event of the **DeviceManager** service occurs.                      |
 
 - Example
-  ```
+  ```js
   dmInstance.on("serviceDie", () => {      
         console.info("serviceDie on");
      }
@@ -199,13 +632,13 @@ Unsubscribes from dead events of the **DeviceManager** service.
 **System capability**: SystemCapability.DistributedHardware.DeviceManager
 
 - **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value **serviceDie** indicates an event reported when the **DeviceManager** service is terminated unexpectedly.|
-  | callback | ()&nbsp;=&gt;&nbsp;void | No| Callback used to return the dead event of the **DeviceManager** service.|
+  | Name      | Type                   | Mandatory  | Description                                      |
+  | -------- | ----------------------- | ---- | ---------------------------------------- |
+  | type     | string                  | Yes   | Event type. The value **'serviceDie'** indicates an event reported when the **DeviceManager** service is terminated unexpectedly.|
+  | callback | () =&gt; void | No   | Callback used to return the dead event of the **DeviceManager** service.                    |
 
 - Example
-  ```
+  ```js
   dmInstance.off("serviceDie", () => {      
         console.info("serviceDie off");
     }
diff --git a/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md b/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md
index 2ae6d7b5a18696850e13d8d088f9a1300561742c..8d18622ce2eb432210858545308e2a607891b1f0 100644
--- a/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md
+++ b/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md
@@ -1,6 +1,24 @@
 # Device Usage Statistics
 
-> **NOTE**<br>
+This module provides APIs for collecting statistics on device usage.
+
+System applications can call these APIs to implement the following features:
+
+- Query the usage duration in different time segments, events (foreground, background, start and end of continuous tasks), and the number of notifications, on a per application basis.
+- Query statistics about system events (sleep, wakeup, unlock, and screen lock).
+- Query the bundle group information of applications, including the invoking application itself.
+- Query the idle status of applications, including the invoking application itself.
+- Set the bundle group for other applications.
+- Register and deregister the callback for application group changes.
+
+Third-party applications can call these APIs to implement the following features:
+
+- Query the idle status of the invoking application itself.
+- Query the bundle group information of the invoking application itself.
+- Query the events of the invoking application itself.
+
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -23,7 +41,7 @@ Checks whether the application specified by **bundleName** is in the idle state.
 | Name       | Type                          | Mandatory  | Description                                      |
 | ---------- | ---------------------------- | ---- | ---------------------------------------- |
 | bundleName | string                       | Yes   | Bundle name of an application.                          |
-| callback   | AsyncCallback&lt;boolean&gt; | Yes   | Callback used to return the result. If the value of **bundleName** is valid, **null** will be returned.|
+| callback   | AsyncCallback&lt;boolean&gt; | Yes   | Callback used to return the result. If the value of <b class="+ topic/ph hi-d/b " id="b597417553714">bundleName</b> is valid, <b class="+ topic/ph hi-d/b " id="b1897411555719">null</b> will be returned.|
 
 **Example**
 
@@ -69,7 +87,7 @@ Checks whether the application specified by **bundleName** is in the idle state.
 
 ## bundleState.queryAppUsagePriorityGroup
 
-queryAppUsagePriorityGroup(): Promise\<number>
+queryAppUsagePriorityGroup(): Promise&lt;number&gt;
 
 Queries the priority group of this application. This API uses a promise to return the result.
 
@@ -79,7 +97,7 @@ Queries the priority group of this application. This API uses a promise to retur
 
 | Type             | Description                         |
 | --------------- | --------------------------- |
-| Promise\<number> | Promise used to return the result.|
+| Promise&lt;number&gt; | Promise used to return the result.|
 
 **Example**
 
@@ -93,7 +111,7 @@ bundleState.queryAppUsagePriorityGroup().then( res => {
 
 ## bundleState.queryAppUsagePriorityGroup
 
-queryAppUsagePriorityGroup(callback: AsyncCallback\<number>): void
+queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void
 
 Queries the priority group of this application. This API uses an asynchronous callback to return the result.
 
@@ -103,20 +121,11 @@ Queries the priority group of this application. This API uses an asynchronous ca
 
 | Name     | Type                   | Mandatory  | Description                        |
 | -------- | --------------------- | ---- | -------------------------- |
-| callback | AsyncCallback\<number> | Yes   | Callback used to return the result.|
+| callback | AsyncCallback&lt;number&gt; | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```javascript
-// Callback with bundleName
-bundleState.queryAppUsagePriorityGroup(this.bundleName, (err, res) => {
-    if(err) {
-        console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
-    } else {
-        console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res));
-    }
-});
-// Callback without bundleName
 bundleState.queryAppUsagePriorityGroup((err, res) => {
     if(err) {
         console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
@@ -523,7 +532,7 @@ Obtains the number of FA usage records specified by **maxNum**. This API uses an
 
 ## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>
 
-queryAppUsagePriorityGroup(bundleName? : string): Promise<number>
+queryAppUsagePriorityGroup(bundleName? : string): Promise&lt;number&gt;
 
 Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses a promise to return the result.
 
@@ -543,13 +552,14 @@ Queries the priority group of the application specified by **bundleName**. If **
 
 | Type             | Description                         |
 | --------------- | --------------------------- |
-| Promise\<number> | Promise used to return the result.|
+| Promise&lt;number&gt; | Promise used to return the result.|
 
 **Example**
 
 ```javascript
 // Promise with bundleName
-bundleState.queryAppUsagePriorityGroup(this.bundleName).then( res => {
+let bundleName = "com.ohos.camera";
+bundleState.queryAppUsagePriorityGroup(bundleName).then( res => {
     console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res));
 }).catch( err => {
     console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code);
@@ -564,7 +574,7 @@ bundleState.queryAppUsagePriorityGroup().then( res => {
 
 ## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>
 
-queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback\<number>): void
+queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback&lt;number&gt;): void
 
 Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses an asynchronous callback to return the result.
 
@@ -579,13 +589,14 @@ Queries the priority group of the application specified by **bundleName**. If **
 | Name       | Type                   | Mandatory  | Description                                      |
 | ---------- | --------------------- | ---- | ---------------------------------------- |
 | bundleName | string                | No   | Bundle name of the target application. If this parameter is not specified, the priority group of the current application is queried.|
-| callback   | AsyncCallback\<number> | Yes   | Callback used to return the result.              |
+| callback   | AsyncCallback&lt;number&gt; | Yes   | Callback used to return the result.              |
 
 **Example**
 
 ```javascript
 // Callback with bundleName
-bundleState.queryAppUsagePriorityGroup(this.bundleName, (err, res) => {
+let bundleName = "com.ohos.camera";
+bundleState.queryAppUsagePriorityGroup(bundleName, (err, res) => {
     if(err) {
         console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
     } else {
@@ -604,7 +615,7 @@ bundleState.queryAppUsagePriorityGroup((err, res) => {
 
 ## bundleState.setBundleGroup<sup>9+</sup>
 
-setBundleGroup(bundleName: string, newGroup: GroupType): Promise\<void>
+setBundleGroup(bundleName: string, newGroup: GroupType): Promise&lt;void&gt;
 
 Sets the group for the application specified by **bundleName**. This API uses a promise to return the result.
 
@@ -618,22 +629,22 @@ Sets the group for the application specified by **bundleName**. This API uses a
 
 | Name       | Type       | Mandatory  | Description  |
 | ---------- | --------- | ---- | ---- |
-| bundleName | string    | Yes   | Bundle name of the target application.|
-| newGroup   | GroupType | Yes   | Application group.|
+| bundleName | string    | Yes   | Bundle name of an application.|
+| newGroup   | [GroupType](#grouptype) | Yes   | Application group.|
 
 **Return value**
 
 | Type           | Description                       |
 | ------------- | ------------------------- |
-| Promise\<void> | Promise used to return the result.|
+| Promise&lt;void&gt; | Promise used to return the result.|
 
 **Example**
 
 ```javascript
-this.bundleName = "com.example.deviceUsageStatistics";
-this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
+let bundleName = "com.example.deviceUsageStatistics";
+let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
 
-bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => {
+bundleState.setBundleGroup(bundleName, newGroup).then( () => {
     console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.');
 }).catch( err => {
     console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code);
@@ -642,7 +653,7 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => {
 
 ## bundleState.setBundleGroup<sup>9+</sup>
 
-setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback\<void>): void
+setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback&lt;void&gt;): void
 
 Sets the group for the application specified by **bundleName**. This API uses an asynchronous callback to return the result.
 
@@ -656,17 +667,17 @@ Sets the group for the application specified by **bundleName**. This API uses an
 
 | Name       | Type                 | Mandatory  | Description                       |
 | ---------- | ------------------- | ---- | ------------------------- |
-| bundleName | string              | Yes   | Bundle name of the target application.                     |
-| newGroup   | GroupType           | Yes   | Application group.                     |
-| callback   | AsyncCallback\<void> | Yes   | Callback used to return the result.|
+| bundleName | string              | Yes   | Bundle name of an application.                     |
+| newGroup   | [GroupType](#grouptype)           | Yes   | Application group.                     |
+| callback   | AsyncCallback&lt;void&gt; | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```javascript
-this.bundleName = "com.example.deviceUsageStatistics";
-this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
+let bundleName = "com.example.deviceUsageStatistics";
+let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
 
-bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => {
+bundleState.setBundleGroup(bundleName, newGroup, (err) => {
     if(err) {
         console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code);
     } else {
@@ -677,9 +688,9 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => {
 
 ## bundleState.registerGroupCallBack<sup>9+</sup>
 
-registerGroupCallBack(callback: Callback\<BundleActiveGroupCallbackInfo>): Promise\<void>
+registerGroupCallBack(callback: Callback&lt;BundleActiveGroupCallbackInfo&gt;): Promise&lt;void&gt;
 
-Registers a callback for application group changes. When an application group of the user changes, **BundleActiveGroupCallbackInfo** is returned to all applications that have registered the callback. This API uses a promise to return the result.
+Registers a callback for application group changes. When an application group of the user changes, a **[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)** instance is returned to all applications that have registered the callback. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
 
@@ -689,26 +700,26 @@ Registers a callback for application group changes. When an application group of
 
 **Parameters**
 
-| Name     | Type                                     | Mandatory  | Description         |
-| -------- | --------------------------------------- | ---- | ----------- |
-| callback | Callback\<BundleActiveGroupCallbackInfo> | Yes   | Callback for application group changes.|
+| Name  | Type                                                        | Mandatory| Description                                      |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ |
+| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)&gt; | Yes  | Callback used to return the application group changes.|
 
 **Return value**
 
 | Type           | Description                     |
 | ------------- | ----------------------- |
-| Promise\<void> | Promise used to return the result.|
+| Promise&lt;void&gt; | Promise used to return the result.|
 
 **Example**
 
 ```javascript
 let onBundleGroupChanged = (err,res) =>{
     console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result changeReason is : ' + res.newGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
 };
 bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
     console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.');
@@ -719,9 +730,9 @@ bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
 
 ## bundleState.registerGroupCallBack<sup>9+</sup>
 
-registerGroupCallBack(callback: Callback\<BundleActiveGroupCallbackInfo>, callback: AsyncCallback\<void>): void
+registerGroupCallBack(callback: Callback&lt;BundleActiveGroupCallbackInfo&gt;, callback: AsyncCallback&lt;void&gt;): void
 
-Registers a callback for application group changes. When an application group of the user changes, **BundleActiveGroupCallbackInfo** is returned to all applications that have registered the callback. This API uses an asynchronous callback to return the result.
+Registers a callback for application group changes. When an application group of the user changes, a **[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)** instance is returned to all applications that have registered the callback. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
 
@@ -731,21 +742,21 @@ Registers a callback for application group changes. When an application group of
 
 **Parameters**
 
-| Name     | Type                                     | Mandatory  | Description           |
-| -------- | --------------------------------------- | ---- | ------------- |
-| callback | Callback\<BundleActiveGroupCallbackInfo> | Yes   | Callback for application group changes.  |
-| callback | AsyncCallback\<void>                    | Yes   | Callback used to return the result.|
+| Name  | Type                                                        | Mandatory| Description                                        |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------- |
+| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)&gt; | Yes  | Callback used to return the application group changes.  |
+| callback | AsyncCallback&lt;void&gt;                                    | Yes  | Callback used to return the result.|
 
 **Example**
 
 ```javascript
 let onBundleGroupChanged = (err,res) =>{
     console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's oldGroup is : ' + res.oldGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's newGroup is : ' + res.newGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's changeReason is : ' + res.newGroup);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's userId is : ' + res.userId);
-    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's bundleName is : ' + res.bundleName);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
+    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
 };
 bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
     if(err) {
@@ -758,7 +769,7 @@ bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
 
 ## bundleState.unRegisterGroupCallBack<sup>9+</sup>
 
-unRegisterGroupCallBack(): Promise\<void>
+unRegisterGroupCallBack(): Promise&lt;void&gt;
 
 Deregisters the callback for application group changes. This API uses a promise to return the result.
 
@@ -774,7 +785,7 @@ Deregisters the callback for application group changes. This API uses a promise
 
 | Type           | Description                      |
 | ------------- | ------------------------ |
-| Promise\<void> | Promise used to return the result.|
+| Promise&lt;void&gt; | Promise used to return the result.|
 
 **Example**
 
@@ -788,7 +799,7 @@ bundleState.unRegisterGroupCallBack().then( () => {
 
 ## bundleState.unRegisterGroupCallBack<sup>9+</sup>
 
-unRegisterGroupCallBack(callback: AsyncCallback\<void>): void;
+unRegisterGroupCallBack(callback: AsyncCallback&lt;void&gt;): void;
 
 Deregisters the callback for application group changes. This API uses an asynchronous callback to return the result.
 
@@ -802,7 +813,7 @@ Deregisters the callback for application group changes. This API uses an asynchr
 
 | Name     | Type                 | Mandatory  | Description            |
 | -------- | ------------------- | ---- | -------------- |
-| callback | AsyncCallback\<void> | Yes   | Callback used to return the result.|
+| callback | AsyncCallback&lt;void&gt; | Yes   | Callback used to return the result.|
 
 **Example**
 
@@ -870,7 +881,7 @@ Queries statistics about system events (hibernation, wakeup, unlocking, and scre
 | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
 | begin    | number                                   | Yes   | Start time.                                   |
 | end      | number                                   | Yes   | End time.                                   |
-| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | Yes   | Promise used to return the result.|
+| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | Yes   | Callback used to return the result.|
 
 **Example**
 
@@ -982,7 +993,7 @@ Provides the FA widget usage information.
 
 | Name             | Type    | Mandatory  | Description         |
 | ---------------- | ------ | ---- | ----------- |
-| formName         | number | Yes   | Widget name.      |
+| formName         | string | Yes   | Widget name.      |
 | formDimension    | number | Yes   | Widget dimensions.      |
 | formId           | number | Yes   | Widget ID.      |
 | formLastUsedTime | number | Yes   | Last time when the widget was clicked.|
@@ -992,15 +1003,15 @@ Provides the FA widget usage information.
 
 Provides the application group changes returned through a callback.
 
-**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
+**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
 
-| Name             | Type    | Mandatory  | Description      |
-| ---------------- | ------ | ---- | -------- |
-| appUsageOldGroup | number | Yes   | Application group before the change.|
-| appUsageNewGroup | number | Yes   | Application group after the change.|
-| useId            | number | Yes   | User ID.    |
-| changeReason     | number | Yes   | Reason for the group change.  |
-| bundleName       | string | Yes   | Bundle name of an application.    |
+| Name          | Type  | Mandatory| Description            |
+| ---------------- | ------ | ---- | ---------------- |
+| appUsageOldGroup | number | Yes  | Application group before the change.|
+| appUsageNewGroup | number | Yes  | Application group after the change.|
+| userId           | number | Yes  | User ID.          |
+| changeReason     | number | Yes  | Reason for the group change.    |
+| bundleName       | string | Yes  | Bundle name of an application.        |
 
 ## BundleStateInfo
 
@@ -1008,11 +1019,11 @@ Provides the usage duration information of applications.
 
 ### Attributes
 
-**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
+**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
 
 | Name                     | Type    | Mandatory  | Description                                      |
 | ------------------------ | ------ | ---- | ---------------------------------------- |
-| bundleName               | string | Yes   | Bundle name of the application.                                   |
+| bundleName               | string | Yes   | Bundle name of an application.                                   |
 | abilityPrevAccessTime    | number | Yes   | Last time when the application was used.                            |
 | abilityInFgTotalTime     | number | Yes   | Total time that the application runs in the foreground.                            |
 | id                       | number | No   | User ID.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
@@ -1029,8 +1040,6 @@ merge(toMerge: BundleStateInfo): void
 
 Merges the application usage information that has the same bundle name.
 
-This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.
-
 **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
 
 **Parameters**
@@ -1047,7 +1056,7 @@ Provides information about an application event.
 
 | Name                  | Type    | Mandatory  | Description                                      |
 | --------------------- | ------ | ---- | ---------------------------------------- |
-| bundleName            | string | Yes   | Bundle name of the application.                                   |
+| bundleName            | string | Yes   | Bundle name of an application.                                   |
 | stateType             | number | Yes   | Application event type.                                 |
 | stateOccurredTime     | number | Yes   | Timestamp when the application event occurs.                             |
 | appUsagePriorityGroup | number | No   | Usage priority group of the application.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
@@ -1092,7 +1101,7 @@ Enumerates the interval types for querying the application usage duration.
 | BY_MONTHLY   | 3    | The system obtains the application usage duration statistics in the specified time frame on a monthly basis.             |
 | BY_ANNUALLY  | 4    | The system obtains the application usage duration statistics in the specified time frame on an annual basis.             |
 
-## GroupType
+## GroupType<sup>9+</sup>
 
 Enumerates the application group types.
 
diff --git a/en/application-dev/reference/apis/js-apis-display.md b/en/application-dev/reference/apis/js-apis-display.md
index ffbc73ff530a4d8f9ec39fd6e824760df9448644..25cf9ed242f66a0983303065dcea527989444223 100644
--- a/en/application-dev/reference/apis/js-apis-display.md
+++ b/en/application-dev/reference/apis/js-apis-display.md
@@ -1,5 +1,5 @@
 # Display
-Provides APIs for managing displays, such as obtaining information about the default display, obtaining information about all displays, and listening for the addition and removal of displays.
+The **Display** module provides APIs for managing displays, such as obtaining information about the default display, obtaining information about all displays, and listening for the addition and removal of displays.
 
 > **NOTE**
 >
@@ -14,11 +14,11 @@ import display from '@ohos.display';
 
 ## DisplayState
 
-Provides the state of a display.
+Enumerates the display states.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
-| Name| Default Value| Description|
+| Name| Value| Description|
 | -------- | -------- | -------- |
 | STATE_UNKNOWN | 0 | Unknown.|
 | STATE_OFF | 1 | The display is shut down.|
@@ -56,7 +56,7 @@ Describes the attributes of a display.
 
 getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void
 
-Obtains the default display object.
+Obtains the default display object. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -82,7 +82,7 @@ Obtains the default display object.
 
 getDefaultDisplay(): Promise&lt;Display&gt;
 
-Obtains the default display object.
+Obtains the default display object. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -103,11 +103,31 @@ Obtains the default display object.
   });
   ```
 
+## display.getDefaultDisplaySync<sup>9+</sup>
+
+getDefaultDisplaySync(): Display
+
+Obtains the default display object. This API returns the result synchronously.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Return value**
+
+| Type                          | Description                                          |
+| ------------------------------| ----------------------------------------------|
+| [Display](#display) | Default display object.|
+
+**Example**
+
+```js
+var displayClass = display.getDefaultDisplaySync();
+```
+
 ## display.getAllDisplay
 
 getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void
 
-Obtains all the display objects.
+Obtains all display objects. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -133,7 +153,7 @@ Obtains all the display objects.
 
 getAllDisplay(): Promise&lt;Array&lt;Display&gt;&gt;
 
-Obtains all the display objects.
+Obtains all display objects. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -158,15 +178,15 @@ Obtains all the display objects.
 
 on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void
 
-Enables listening.
+Subscribes to display changes.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
 **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Listening type. The available values are as follows:<br>- **add**: listening for whether a display is added<br>- **remove**: listening for whether a display is removed<br>- **change**: listening for whether a display is changed|
-  | callback | Callback&lt;number&gt; | Yes| Callback used to return the ID of the display.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type.<br>- **add**, indicating the display addition event.<br>- **remove**, indicating the display removal event.<br>- **change**, indicating the display change event.|
+| callback | Callback&lt;number&gt; | Yes| Callback used to return the ID of the display.|
 
 **Example**
   ```js
@@ -181,14 +201,14 @@ Enables listening.
 
 off(type: 'add'|'remove'|'change', callback?: Callback&lt;number&gt;): void
 
-Disables listening.
+Unsubscribes from display changes.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
 **Parameters**
   | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Listening type. The available values are as follows:<br>- **add**: listening for whether a display is added<br>- **remove**: listening for whether a display is removed<br>- **change**: listening for whether a display is changed|
+  | type | string | Yes| Event type.<br>- **add**, indicating the display addition event.<br>- **remove**, indicating the display removal event.<br>- **change**, indicating the display change event.|
   | callback | Callback&lt;number&gt; | No| Callback used to return the ID of the display.|
 
 **Example**
diff --git a/en/application-dev/reference/apis/js-apis-distributed-account.md b/en/application-dev/reference/apis/js-apis-distributed-account.md
index bc64da83d9a829da97b02be79a94804df498a670..dc674978d2c4b9491e860b13f1720787380cc53e 100644
--- a/en/application-dev/reference/apis/js-apis-distributed-account.md
+++ b/en/application-dev/reference/apis/js-apis-distributed-account.md
@@ -2,7 +2,7 @@
 
 The distributedAccount module provides basic functions for managing distributed accounts, including querying and updating account login status.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> **NOTE**<br>
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
diff --git a/en/application-dev/reference/apis/js-apis-distributed-data .md b/en/application-dev/reference/apis/js-apis-distributed-data .md
new file mode 100644
index 0000000000000000000000000000000000000000..5682921badad9367817fd3e421b1afb823970425
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-distributed-data .md	
@@ -0,0 +1,5671 @@
+# Distributed Data Management
+
+The distributed data management module implements collaboration between databases of different devices for applications. The APIs provided by distributed data management can be used to save data to distributed databases and perform operations such as adding, deleting, modifying, querying, and synchronizing data in distributed databases.
+
+This module provides the following functions:
+
+- [KVManager](#kvmanager): provides a **KVManager** instance to manage key-value (KV) stores.
+- [KvStoreResultSet<sup>8+</sup>](#kvstoreresultset8): provides methods to obtain the KV store result set and query or move the data read position.
+- [Query<sup>8+</sup>](#query8): provides methods to query data from the database through a **Query** instance by using predicates.
+- [KVStore](#kvstore): provides methods to add data, delete data, and observe data changes and data synchronization through a **KVStore** instance.
+- [SingleKVStore](#singlekvstore): provides methods to query and synchronize data in a single KV store. This class inherits from [KVStore](#kvstore), and data is not distinguished by device.
+- [DeviceKVStore<sup>8+</sup> ](#devicekvstore8): provides methods to query and synchronize data in a device KV store. This class inherits from [KVStore](#kvstore), and data is distinguished by device.
+
+>**NOTE**<br/>
+>
+>The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+```js
+import distributedData from '@ohos.data.distributedData';
+```
+
+
+## distributedData.createKVManager
+
+createKVManager(config: KVManagerConfig, callback: AsyncCallback&lt;KVManager&gt;): void
+
+Creates a **KVManager** instance to manage KV stores. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| config | [KVManagerConfig](#kvmanagerconfig) | Yes | Configuration of the **KVManager** instance, including the bundle name and user information of the caller.|
+| callback | AsyncCallback&lt;[KVManager](#kvmanager)&gt; | Yes | Callback invoked to return the **KVManager** instance created.|
+
+**Example**
+
+Stage model:
+```ts
+import AbilityStage from '@ohos.application.Ability'
+let kvManager;
+export default class MyAbilityStage extends AbilityStage {
+  onCreate() {
+    console.log("MyAbilityStage onCreate")
+    let context = this.context
+    const kvManagerConfig = {
+      context: context,
+      bundleName: 'com.example.datamanagertest',
+      userInfo: {
+        userId: '0',
+        userType: distributedData.UserType.SAME_USER_ID
+      }
+    }
+    distributedData.createKVManager(kvManagerConfig, function (err, manager) {
+      if (err) {
+        console.log("Failed to create KVManager: " + JSON.stringify(err));
+        return;
+      }
+      console.log("Created KVManager");
+      kvManager = manager;
+    });
+  }
+}
+```
+
+FA model:
+```js
+import AbilityStage from '@ohos.application.Ability'
+let kvManager;
+export default class MyAbilityStage extends AbilityStage {
+  onCreate() {
+    console.log("MyAbilityStage onCreate")
+    let context = this.context
+    const kvManagerConfig = {
+      context: context.getApplicationContext(),
+      bundleName: 'com.example.datamanagertest',
+      userInfo: {
+        userId: '0',
+        userType: distributedData.UserType.SAME_USER_ID
+      }
+    }
+    distributedData.createKVManager(kvManagerConfig, function (err, manager) {
+      if (err) {
+        console.log("Failed to create KVManager: " + JSON.stringify(err));
+        return;
+      }
+      console.log("Created KVManager");
+      kvManager = manager;
+    });
+  }
+}
+```
+
+## distributedData.createKVManager
+
+createKVManager(config: KVManagerConfig): Promise&lt;KVManager&gt;
+
+Creates a **KVManager** instance to manage KV stores. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| config |[KVManagerConfig](#kvmanager) | Yes | Configuration of the **KVManager** instance, including the bundle name and user information of the caller.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[KVManager](#kvmanager)&gt; | Promise used to return the **KVManager** instance created.|
+
+**Example**
+
+Stage model:
+```ts
+import AbilityStage from '@ohos.application.Ability'
+let kvManager;
+export default class MyAbilityStage extends AbilityStage {
+  onCreate() {
+    console.log("MyAbilityStage onCreate")
+    let context = this.context
+    const kvManagerConfig = {
+      context: context,
+      bundleName: 'com.example.datamanagertest',
+      userInfo: {
+        userId: '0',
+        userType: distributedData.UserType.SAME_USER_ID
+      }
+    }
+    distributedData.createKVManager(kvManagerConfig, function (err, manager) {
+      if (err) {
+        console.log("Failed to create KVManager: " + JSON.stringify(err));
+        return;
+      }
+      console.log("Created KVManager");
+      kvManager = manager;
+    });
+  }
+}
+```
+
+FA model:
+```js
+import AbilityStage from '@ohos.application.Ability'
+let kvManager;
+export default class MyAbilityStage extends AbilityStage {
+  onCreate() {
+    console.log("MyAbilityStage onCreate")
+    let context = this.context
+    const kvManagerConfig = {
+      context: context.getApplicationContext(),
+      bundleName: 'com.example.datamanagertest',
+      userInfo: {
+        userId: '0',
+        userType: distributedData.UserType.SAME_USER_ID
+      }
+    }
+    distributedData.createKVManager(kvManagerConfig, function (err, manager) {
+      if (err) {
+        console.log("Failed to create KVManager: " + JSON.stringify(err));
+        return;
+      }
+      console.log("Created KVManager");
+      kvManager = manager;
+    });
+  }
+}
+```
+
+## KVManagerConfig
+
+Provides configuration of the **KVManager** object, including the bundle name and user information of the caller.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| context<sup>9+<sup> | Context | Yes| Application context.<br>For the application context of the FA model, see [Context](js-apis-Context.md).<br>For the application context of the stage model, see [Context](js-apis-ability-context.md).|
+| userInfo | [UserInfo](#userinfo) | Yes | User information.|
+| bundleName | string | Yes | Bundle name.|
+
+## UserInfo
+
+Defines user information.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| userId | string | Yes | User ID.|
+| userType | [UserType](#usertype) | Yes | User type.|
+
+
+## UserType
+
+Enumerates the user types.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name| Value| Description|
+| ----- | ------ | ------ |
+| SAME_USER_ID | 0 | User who logs in to different devices using the same account.|
+
+
+## KVManager
+
+Creates a **KVManager** object to obtain KV store information. Before calling any method in **KVManager**, you must use [createKVManager](#distributeddatacreatekvmanager) to create a **KVManager** object.
+
+### getKVStore
+
+getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void
+
+Creates and obtains a KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| ----- | ------ | ------ | ------ |
+| storeId | string | Yes | Unique identifier of the KV store. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+| options | [Options](#options) | Yes | Configuration of the KV store.|
+| callback | AsyncCallback&lt;T&gt; , &lt;T extends [KVStore](#kvstore)&gt;| Yes | Callback invoked to return the KV store created.|
+
+**Example**
+
+```js
+let kvStore;
+let kvManager;
+try {
+    const options = {
+        createIfMissing : true,
+        encrypt : false,
+        backup : false,
+        autoSync : true,
+        kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+        securityLevel : distributedData.SecurityLevel.S2,
+    };
+    kvManager.getKVStore('storeId', options, function (err, store) {
+        if (err) {
+            console.log("getKVStore err: "  + JSON.stringify(err));
+            return;
+        }
+        console.log("getKVStore success");
+        kvStore = store;
+    });
+} catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+
+### getKVStore
+
+getKVStore&lt;T extends KVStore&gt;(storeId: string, options: Options): Promise&lt;T&gt;
+
+Creates and obtains a KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name  | Type               | Mandatory | Description   |
+| ------- | ---------------------- | ---- | -------------------- |
+| storeId  | string      | Yes  | Unique identifier of the KV store. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+| options  | [Options](#options)   | Yes  | Configuration of the KV store.|
+
+
+**Return value**
+
+| Type                                   | Description       |
+| -------------------------------------- | ------------------------ |
+| Promise&lt;T&gt;, &lt;T extends [KVStore](#kvstore)&gt; | Promise used to return the KV store created.|
+
+**Example**
+
+```js
+let kvStore;
+let kvManager;
+try {
+    const options = {
+        createIfMissing : true,
+        encrypt : false,
+        backup : false,
+        autoSync : true,
+        kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+        securityLevel : distributedData.SecurityLevel.S2,
+    };
+    kvManager.getKVStore('storeId', options).then((store) => {
+        console.log("getKVStore success");
+        kvStore = store;
+    }).catch((err) => {
+        console.log("getKVStore err: "  + JSON.stringify(err));
+    });
+} catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+### closeKVStore<sup>8+</sup> ###
+
+closeKVStore(appId: string, storeId: string, kvStore: KVStore, callback: AsyncCallback&lt;void&gt;): void
+
+Closes a KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+
+| Name  | Type             | Mandatory| Description        |
+| ------- | -----------------   | ---- | --------------------------- |
+| appId    | string              | Yes  | Bundle name of the app that invokes the KV store.        |
+| storeId  | string  | Yes  | Unique identifier of the KV store to close. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+| kvStore  | [KVStore](#kvstore) | Yes  | KV store to close.    |
+| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+let kvManager;
+const options = {
+    createIfMissing : true,
+    encrypt : false,
+    backup : false,
+    autoSync : true,
+    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+    schema : '',
+    securityLevel : distributedData.SecurityLevel.S2,
+ }
+ try {
+    kvManager.getKVStore('storeId', options, async function (err, store) {
+    console.log('getKVStore success');
+    kvStore = store;
+    kvManager.closeKVStore('appId', 'storeId', kvStore, function (err, data) {
+        console.log('closeKVStore success');
+    });
+    });
+} catch (e) {
+    console.log('closeKVStore e ' + e);
+}
+```
+
+
+### closeKVStore<sup>8+</sup> ###
+
+closeKVStore(appId: string, storeId: string, kvStore: KVStore): Promise&lt;void&gt;
+
+Closes a KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description       |
+| -----  | ------  | ---- | ----------------------------- |
+| appId  | string  | Yes  | Bundle name of the app that invokes the KV store.           |
+| storeId | string | Yes  | Unique identifier of the KV store to close. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+| kvStore | [KVStore](#kvstore)  | Yes  | KV store to close.       |
+
+**Return value**
+
+| Type         | Description           |
+| ------------- | -------------- |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```js
+let kvManager;
+let kvStore;
+const options = {
+    createIfMissing : true,
+    encrypt : false,
+    backup : false,
+    autoSync : true,
+    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+    schema : '',
+    securityLevel : distributedData.SecurityLevel.S2,
+}
+ try {
+    kvManager.getKVStore('storeId', options).then(async (store) => {
+    console.log('getKVStore success');
+    kvStore = store;
+    kvManager.closeKVStore('appId', 'storeId', kvStore).then(() => {
+        console.log('closeKVStore success');
+    }).catch((err) => {
+        console.log('closeKVStore err ' + JSON.stringify(err));
+    });
+    }).catch((err) => {
+        console.log('CloseKVStore getKVStore err ' + JSON.stringify(err));
+    });
+ } catch (e) {
+    console.log('closeKVStore e ' + e);
+}  
+```
+
+
+### deleteKVStore<sup>8+</sup> ###
+
+deleteKVStore(appId: string, storeId: string, callback: AsyncCallback&lt;void&gt;): void
+
+Deletes a KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| appId  | string  | Yes  | Bundle name of the app that invokes the KV store.    |
+| storeId | string | Yes  | Unique identifier of the KV store to delete. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+| callback | AsyncCallback&lt;void&gt;  | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+let kvManager;
+let kvStore;
+const options = {
+    createIfMissing : true,
+    encrypt : false,
+    backup : false,
+    autoSync : true,
+    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+    schema : '',
+    securityLevel : distributedData.SecurityLevel.S2,
+}
+try {
+    kvManager.getKVStore('store', options, async function (err, store) {
+        console.log('getKVStore success');
+        kvStore = store;
+        kvManager.deleteKVStore('appId', 'storeId', function (err, data) {
+            console.log('deleteKVStore success');
+        });
+    });
+} catch (e) {
+    console.log('DeleteKVStore e ' + e);
+}
+```
+
+### deleteKVStore<sup>8+</sup> ###
+
+deleteKVStore(appId: string, storeId: string): Promise&lt;void&gt;
+
+Deletes a KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| appId  | string  | Yes  | Bundle name of the app that invokes the KV store.    |
+| storeId | string | Yes  | Unique identifier of the KV store to delete. The length cannot exceed [MAX_STORE_ID_LENGTH](#constants).|
+
+
+**Return value**
+
+| Type         | Description           |
+| ------------- | -------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+
+```js
+let kvManager;
+let kvStore;
+const options = {
+    createIfMissing : true,
+    encrypt : false,
+    backup : false,
+    autoSync : true,
+    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
+    schema : '',
+    securityLevel : distributedData.SecurityLevel.S2,
+}
+try {
+    kvManager.getKVStore('storeId', options).then(async (store) => {
+        console.log('getKVStore success');
+        kvStore = store;
+        kvManager.deleteKVStore('appId', 'storeId').then(() => {
+            console.log('deleteKVStore success');
+        }).catch((err) => {
+            console.log('deleteKVStore err ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('getKVStore err ' + JSON.stringify(err));
+    });
+} catch (e) {
+    console.log('deleteKVStore e ' + e);
+}
+```
+
+
+### getAllKVStoreId<sup>8+</sup> ###
+
+getAllKVStoreId(appId: string, callback: AsyncCallback&lt;string[]&gt;): void
+
+Obtains the IDs of all KV stores that are created by [getKVStore()](#getkvstore) and have not been deleted by [deleteKVStore()](#deletekvstore8). This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| appId  | string  | Yes   | Bundle name of the app that invokes the KV store.    |
+| callback | AsyncCallback&lt;string[]&gt; | Yes  |Callback used to return the KV store IDs obtained. |
+
+**Example**
+
+```js
+let kvManager;
+try {
+    kvManager.getAllKVStoreId('appId', function (err, data) {
+        console.log('GetAllKVStoreId success');
+        console.log('GetAllKVStoreId size = ' + data.length);
+    });
+} catch (e) {
+    console.log('GetAllKVStoreId e ' + e);
+}
+```
+
+
+### getAllKVStoreId<sup>8+</sup> ###
+
+getAllKVStoreId(appId: string): Promise&lt;string[]&gt;
+
+Obtains the IDs of all KV stores that are created by [getKVStore()](#getkvstore) and have not been deleted by [deleteKVStore()](#deletekvstore8). This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| appId  | string  | Yes   | Bundle name of the app that invokes the KV store.    |
+
+
+**Return value**
+
+| Type         | Description           |
+| ------------- | -------------- |
+| Promise&lt;string[]&gt;| Promise used to return the KV store IDs obtained.|
+
+**Example**
+
+```js
+let kvManager;
+try {
+    console.log('GetAllKVStoreId');
+    kvManager.getAllKVStoreId('appId').then((data) => {
+        console.log('getAllKVStoreId success');
+        console.log('size = ' + data.length);
+    }).catch((err) => {
+        console.log('getAllKVStoreId err ' + JSON.stringify(err));
+    });
+} catch(e) {
+    console.log('getAllKVStoreId e ' + e);
+}
+```
+
+
+### on('distributedDataServiceDie')<sup>8+</sup> ###
+
+on(event: 'distributedDataServiceDie', deathCallback: Callback&lt;void&gt;): void
+
+Subscribes to service status changes.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  | string | Yes   | Event to subscribe to. The value is **distributedDataServiceDie**, which indicates service status changes.|
+| deathCallback  | Callback&lt;void&gt;  | Yes   | Callback invoked to return service status changes.|
+
+**Example**
+
+```js
+let kvManager;
+try {
+    
+    console.log('KVManagerOn');
+    const deathCallback = function () {
+        console.log('death callback call');
+    }
+    kvManager.on('distributedDataServiceDie', deathCallback);
+} catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+
+### off('distributedDataServiceDie')<sup>8+</sup> ###
+
+off(event: 'distributedDataServiceDie', deathCallback?: Callback&lt;void&gt;): void
+
+Unsubscribes from the service status changes.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  | string | Yes   | Event to unsubscribe from. The value is **distributedDataServiceDie**, which indicates service status changes.|
+| deathCallback  | Callback&lt;void&gt;  | No   | Callback used to return service status changes.|
+
+
+**Example**
+
+```js
+let kvManager;
+try {
+    console.log('KVManagerOff');
+    const deathCallback = function () {
+        console.log('death callback call');
+    }
+    kvManager.off('distributedDataServiceDie', deathCallback);
+} catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+    
+```
+
+## Options
+
+Provides KV store configuration.
+
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| createIfMissing  | boolean | No| Whether to create a KV store if no database file exists. By default, a KV store is created.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core   |
+| encrypt  | boolean | No|Whether to encrypt database files. By default, database files are not encrypted.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core    |
+| backup  | boolean | No|Whether to back up database files. By default, database files are backed up. <br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core   |
+| autoSync  | boolean | No|Whether database files are automatically synchronized. By default, database files are not automatically synchronized.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core<br>**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC    |
+| kvStoreType | [KVStoreType](#kvstoretype) | No|Type of the KV store to create. By default, a device KV store is created. The device KV store stores data for multiple devices that collaborate with each other.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core|
+| securityLevel | [SecurityLevel](#securitylevel) | No|Security level of the KV store. By default, the security level is not set.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core |
+| schema<sup>8+</sup> | [Schema](#schema8) | No| Schema used to define the values stored in a KV store.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore|
+
+
+## KVStoreType
+
+Enumerates the KV store types.
+
+
+| Name | Value| Description                   |
+| ---   | ----  | ----------------------- |
+| DEVICE_COLLABORATION  | 0 | Device KV store.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore  |
+| SINGLE_VERSION  | 1 | Single KV store.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core|
+| MULTI_VERSION   | 2 | Multi-version KV store. This type is not supported currently.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore|
+
+
+## SecurityLevel
+
+Enumerates the KV store security levels.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Value| Description                   |
+| ---   | ----  | ----------------------- |
+| NO_LEVEL  | 0 | No security level is set for the KV store.  |
+| S0  | 1 | The KV store security level is public.|
+| S1  | 2 | The KV store security level is low. If data leakage occurs, minor impact will be caused on the database. For example, a KV store that contains system data such as wallpapers.|
+| S2  | 3 | The KV store security level is medium. If data leakage occurs, moderate impact will be caused on the database. For example, a KV store that contains information created by users or call records, such as audio or video clips.|
+| S3  | 5 | The KV store security level is high. If data leakage occurs, major impact will be caused on the database. For example, a KV store that contains information such as user fitness, health, and location data.|
+| S4  | 6 | The KV store security level is critical. If data leakage occurs, severe impact will be caused on the database. For example, a KV store that contains information such as authentication credentials and financial data.|
+
+
+## Constants
+
+Defines the KV store constants.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Value| Description                   |
+| ---   | ----  | ----------------------- |
+| MAX_KEY_LENGTH  | 1024 | Maximum length of a key in the KV store, in bytes. |
+| MAX_VALUE_LENGTH  | 4194303 | Maximum length of a value in the KV store, in bytes. |
+| MAX_KEY_LENGTH_DEVICE  | 896 | Maximum length of a device key, in bytes.|
+| MAX_STORE_ID_LENGTH  | 128 | Maximum length of a KV store ID, in bytes. |
+| MAX_QUERY_LENGTH  | 512000 | Maximum query length, in bytes.|
+| MAX_BATCH_SIZE  | 128 | Maximum number of batch operations.|
+
+## Schema<sup>8+</sup> ##
+
+Defines the schema of a KV store. You can create a **Schema** object and place it in [Options](#options) when creating or opening a KV store.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+| Name | Type| Description                   |
+| ---   | ----  | ----------------------- |
+| root<sup>8+</sup>  | [FieldNode](#fieldnode8) | JSON root object.|
+| indexes<sup>8+</sup>  | Array\<string> | String array in JSON format. |
+| mode<sup>8+</sup>  | number | Schema mode. |
+| skip<sup>8+</sup>  | number |  Size of a skip of the schema. |
+
+### constructor<sup>8+</sup> ###
+
+constructor()
+
+A constructor used to create a **Schema** instance.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+## FieldNode<sup>8+</sup> ##
+
+Represents a **Schema** instance, which provides the methods for defining the values stored in a KV store.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+| Name | Type| Description                   |
+| ---   | ----  | ----------------------- |
+| nullable<sup>8+</sup>  | boolean | Whether the database field can be null.  |
+| default<sup>8+</sup>  | string | Default value of a **FieldNode**.|
+| type<sup>8+</sup>  | number | Value of the data type corresponding to the specified node.|
+
+### constructor<sup>8+</sup> ###
+
+constructor(name: string)
+
+A constructor used to create a **FieldNode** instance with a string field.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name| Type| Mandatory| Description           |
+| ------ | -------- | ---- | --------------- |
+| name   | string   | Yes  | Value of **FieldNode**.|
+
+### appendChild<sup>8+</sup> ###
+
+appendChild(child: FieldNode): boolean
+
+Appends a child node to this **FieldNode**.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| child  | [FieldNode](#fieldnode8) | Yes   | Child node to append.  |
+
+**Return value**
+
+| Type         | Description           |
+| ------------- | -------------- |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.|
+
+**Example**
+
+```js
+import ddm from '@ohos.data.distributedData';
+try {
+    let node = new ddm.FieldNode("root");
+    let child1 = new ddm.FieldNode("child1");
+    let child2 = new ddm.FieldNode("child2");
+    let child3 = new ddm.FieldNode("child3");
+    node.appendChild(child1);
+    node.appendChild(child2);
+    node.appendChild(child3);
+    console.log("appendNode " + JSON.stringify(node));
+    child1 = null;
+    child2 = null;
+    child3 = null;
+    node = null;
+} catch (e) {
+    console.log("AppendChild " + e);
+}
+```
+
+
+## KvStoreResultSet<sup>8+</sup> ##
+
+Provides methods to obtain the KV store result sets, and query and move the data read position.
+
+Before calling any method in **KvStoreResultSet**, you must use [getKVStore](#getkvstore) to obtain a **KVStore** object.
+
+
+### getCount<sup>8+</sup> ###
+
+getCount(): number
+
+Obtains the total number of rows in the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type  | Description              |
+| ------ | --------------    |
+| number |Total number of rows obtained.         |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const count = resultSet.getCount();
+    console.log("getCount succeed:" + count);
+} catch (e) {
+    console.log("getCount failed: " + e);
+}
+```
+
+### getPosition<sup>8+</sup> ###
+
+getPosition(): number
+
+Obtains the current data read position (position from which data is read) in the result set.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type  | Description              |
+| ------ | --------------    |
+| number |Current data read position obtained.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeeded.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const position = resultSet.getPosition();
+    console.log("getPosition succeed:" + position);
+} catch (e) {
+    console.log("getPosition failed: " + e);
+}
+```
+
+
+### moveToFirst<sup>8+</sup> ###
+
+moveToFirst(): boolean
+
+Moves the data read position to the first row. If the result set is empty, **false** will be returned.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved1 = resultSet.moveToFirst();
+    console.log("moveToFirst succeed: " + moved1);
+} catch (e) {
+    console.log("moveToFirst failed " + e);
+}
+```
+
+
+### moveToLast<sup>8+</sup> ###
+
+moveToLast(): boolean
+
+Moves the data read position to the last row. If the result set is empty, **false** will be returned.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved2 = resultSet.moveToLast();
+    console.log("moveToLast succeed:" + moved2);
+} catch (e) {
+    console.log("moveToLast failed: " + e);
+}
+```
+
+
+### moveToNext<sup>8+</sup> ###
+
+moveToNext(): boolean
+
+Moves the data read position to the next row. If the result set is empty, **false** will be returned.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved3 = resultSet.moveToNext();
+    console.log("moveToNext succeed: " + moved3);
+} catch (e) {
+    console.log("moveToNext failed: " + e);
+}
+```
+
+
+### moveToPrevious<sup>8+</sup> ###
+
+moveToPrevious(): boolean
+
+Moves the data read position to the previous row. If the result set is empty, **false** will be returned.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved4 = resultSet.moveToPrevious();
+    console.log("moveToPrevious succeed:" + moved4);
+} catch (e) {
+    console.log("moveToPrevious failed: " + e);
+}
+```
+
+
+### move<sup>8+</sup> ###
+
+move(offset: number): boolean
+
+Moves the data read position with the specified offset from the current position.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| offset  | number  | Yes   | Offset to move the data read position. A negative value means to move backward, and a positive value means to move forward.  |
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved5 = resultSet.move();
+    console.log("move succeed:" + moved5);
+} catch (e) {
+    console.log("move failed: " + e);
+}
+```
+
+
+### moveToPosition<sup>8+</sup> ###
+
+moveToPosition(position: number): boolean
+
+Moves the data read position from 0 to an absolute position.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| position  | number  | Yes   |Absolute position to move to.         |
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the operation is successful; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const moved6 = resultSet.moveToPosition();
+    console.log("moveToPosition succeed: " + moved6);
+} catch (e) {
+    console.log("moveToPosition failed: " + e);
+}
+```
+
+
+### isFirst<sup>8+</sup> ###
+
+isFirst(): boolean
+
+Checks whether the data read position is the first row.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the first row is being read; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const isfirst = resultSet.isFirst();
+    console.log("Check isFirst succeed:" + isfirst);
+} catch (e) {
+    console.log("Check isFirst failed: " + e);
+}
+```
+
+
+### isLast<sup>8+</sup> ###
+
+isLast(): boolean
+
+Checks whether the data read position is the last row.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the last row is being read; returns **false** otherwise.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const islast = resultSet.isLast();
+    console.log("Check isLast succeed: " + islast);
+} catch (e) {
+    console.log("Check isLast failed: " + e);
+}
+```
+
+### isBeforeFirst<sup>8+</sup> ###
+
+isBeforeFirst(): boolean
+
+Checks whether the data read position is before the first row.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the data read position is before the first row; returns **false** otherwise. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const isbeforefirst = resultSet.isBeforeFirst();
+    console.log("Check isBeforeFirst succeed: " + isbeforefirst);
+} catch (e) {
+    console.log("Check isBeforeFirst failed: " + e);
+}
+```
+
+
+### isAfterLast<sup>8+</sup> ###
+
+isAfterLast(): boolean
+
+Checks whether the data read position is after the last row.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description              |
+| ------  | --------------    |
+| boolean |Returns **true** if the data read position is after the last row; returns **false** otherwise. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const isafterlast = resultSet.isAfterLast();
+    console.log("Check isAfterLast succeed:" + isafterlast);
+} catch (e) {
+    console.log("Check isAfterLast failed: " + e);
+}
+```
+
+
+### getEntry<sup>8+</sup> ###
+
+getEntry(): Entry
+
+Obtains the KV pair from the current position.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Entry](#entry) |KV pair obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + err);
+    });
+    const entry  = resultSet.getEntry();
+    console.log("getEntry succeed:" + JSON.stringify(entry));
+} catch (e) {
+    console.log("getEntry failed: " + e);
+}
+```
+
+
+## Query<sup>8+</sup> ##
+
+Provides methods to create a **Query** object, which defines different data query criteria.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+### constructor<sup>8+</sup> ###
+
+constructor() 
+
+A constructor used to create a **Schema** instance.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+
+### reset<sup>8+</sup> ###
+
+reset(): Query
+
+Resets the **Query** object.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object reset.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.equalTo("key", "value");
+    console.log("query is " + query.getSqlLike());
+    query.reset();
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("simply calls should be ok :" + e);
+}
+```
+
+
+### equalTo<sup>8+</sup> ###
+
+equalTo(field: string, value: number|string|boolean): Query
+
+Creates a **Query** object to match the specified field whose value is equal to the given value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.equalTo("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### notEqualTo<sup>8+</sup> ###
+
+notEqualTo(field: string, value: number|string|boolean): Query
+
+Creates a **Query** object to match the specified field whose value is not equal to the specified value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### greaterThan<sup>8+</sup> ###
+
+greaterThan(field: string, value: number|string|boolean): Query
+
+Creates a **Query** object to match the specified field whose value is greater than the specified value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.greaterThan("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### lessThan<sup>8+</sup> ###
+
+lessThan(field: string, value: number|string): Query
+
+Creates a **Query** object to match the specified field whose value is less than the specified value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.lessThan("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### greaterThanOrEqualTo<sup>8+</sup> ###
+
+greaterThanOrEqualTo(field: string, value: number|string): Query
+
+Creates a **Query** object to match the specified field whose value is greater than or equal to the specified value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.greaterThanOrEqualTo("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### lessThanOrEqualTo<sup>8+</sup> ###
+
+lessThanOrEqualTo(field: string, value: number|string): Query
+
+Creates a **Query** object to match the specified field whose value is less than or equal to the specified value.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | number\|string\|boolean  | Yes   | Value specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.lessThanOrEqualTo("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### isNull<sup>8+</sup> ###
+
+isNull(field: string): Query
+
+Creates a **Query** object to match the specified field whose value is **null**.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.isNull("field");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### inNumber<sup>8+</sup> ###
+
+inNumber(field: string, valueList: number[]): Query
+
+Creates a **Query** object to match the specified field whose value is within the specified list of numbers.
+
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| valueList  | number[]  | Yes   | List of numbers.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.inNumber("field", [0, 1]);
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### inString<sup>8+</sup> ###
+
+inString(field: string, valueList: string[]): Query
+
+Creates a **Query** object to match the specified field whose value is within the specified list of strings.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| valueList  | string[]  | Yes   | List of strings.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.inString("field", ['test1', 'test2']);
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### notInNumber<sup>8+</sup> ###
+
+notInNumber(field: string, valueList: number[]): Query
+
+Creates a **Query** object to match the specified field whose value is not within the specified list of numbers.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| valueList  | number[]  | Yes   | List of numbers.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notInNumber("field", [0, 1]);
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### notInString<sup>8+</sup> ###
+
+notInString(field: string, valueList: string[]): Query
+
+Creates a **Query** object to match the specified field whose value is not within the specified list of strings.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| valueList  | string[]  | Yes   | List of strings.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notInString("field", ['test1', 'test2']);
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### like<sup>8+</sup> ###
+
+like(field: string, value: string): Query
+
+Creates a **Query** object to match the specified field whose value is similar to the specified string.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | string  | Yes   | String specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.like("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### unlike<sup>8+</sup> ###
+
+unlike(field: string, value: string): Query
+
+Creates a **Query** object to match the specified field whose value is not similar to the specified string.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+| value  | string  | Yes   | String specified.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.unlike("field", "value");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### and<sup>8+</sup> ###
+
+and(): Query
+
+Creates a **Query** object with the AND condition.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object Created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value1");
+    query.and();
+    query.notEqualTo("field", "value2");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### or<sup>8+</sup> ###
+
+or(): Query
+
+Creates a **Query** object with the OR condition.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object Created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value1");
+    query.or();
+    query.notEqualTo("field", "value2");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### orderByAsc<sup>8+</sup> ###
+
+orderByAsc(field: string): Query
+
+Creates a **Query** object to sort the query results in ascending order.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value");
+    query.orderByAsc("field");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### orderByDesc<sup>8+</sup> ###
+
+orderByDesc(field: string): Query
+
+Creates a **Query** object to sort the query results in descending order.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value");
+    query.orderByDesc("field");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### limit<sup>8+</sup> ###
+
+limit(total: number, offset: number): Query
+
+Creates a **Query** object to specify the number of results and where to start.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| total  | number  | Yes   |Number of results to query. |
+| offset | number  | Yes   |Start position for query. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+let total = 10;
+let offset = 1;
+try {
+    let query = new distributedData.Query();
+    query.notEqualTo("field", "value");
+    query.limit(total, offset);
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### isNotNull<sup>8+</sup> ###
+
+isNotNull(field: string): Query
+
+Creates a **Query** object to match the specified field whose value is not **null**.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| fieId  | string  | Yes   |Field to match. It cannot contain '^'.     |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.isNotNull("field");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### beginGroup<sup>8+</sup> ###
+
+beginGroup(): Query
+
+Creates a **Query** object for a query condition group with a left parenthesis.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.beginGroup();
+    query.isNotNull("field");
+    query.endGroup();
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### endGroup<sup>8+</sup> ###
+
+endGroup(): Query
+
+Creates a **Query** object for a query condition group with a right parenthesis.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.beginGroup();
+    query.isNotNull("field");
+    query.endGroup();
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### prefixKey<sup>8+</sup> ###
+
+prefixKey(prefix: string): Query
+
+Creates a **Query** object with a specified key prefix.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| prefix | string  | Yes   |Key prefix.    |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.prefixKey("$.name");
+    query.prefixKey("0");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+    console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### setSuggestIndex<sup>8+</sup> ###
+
+setSuggestIndex(index: string): Query
+
+Creates a **Query** object with an index preferentially used for query.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| index  | string  | Yes   |Index preferentially used for query.  |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.setSuggestIndex("$.name");
+    query.setSuggestIndex("0");
+    console.log("query is " + query.getSqlLike());
+    query = null;
+} catch (e) {
+   console.log("duplicated calls should be ok :" + e);
+}
+```
+
+
+### deviceId<sup>8+</sup> ###
+
+deviceId(deviceId:string):Query
+
+Creates a **Query** object with the device ID as the key prefix.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| deviceId | string  | Yes   |Device ID.  |
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| [Query](#query8) |**Query** object created.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    query.deviceId("deviceId");
+    console.log("query is " + query.getSqlLike());
+} catch (e) {
+    console.log("should be ok on Method Chaining : " + e);
+}
+```
+
+
+### getSqlLike<sup>8+</sup> ###
+
+getSqlLike():string
+
+Obtains the query statement of the **Query** object.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| string |Returns the query statement obtained.|
+
+**Example**
+
+```js
+try {
+    let query = new distributedData.Query();
+    let sql1 = query.getSqlLike();
+    console.log("GetSqlLike sql=" + sql1);
+} catch (e) {
+    console.log("duplicated calls should be ok : " + e);
+}
+```
+
+
+## KVStore
+
+Provides methods to manage data in a KV store, for example, adding or deleting data and subscribing to data changes or completion of data synchronization.
+
+Before calling any method in **KVStore**, you must use [getKVStore](#getkvstore) to obtain a **KVStore** object.
+
+### put
+
+put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback&lt;void&gt;): void
+
+Adds a KV pair of the specified type to this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    | string  | Yes   |Key of the KV pair to add. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants).  |
+| value  | Uint8Array \| string \| number \| boolean | Yes   |Value of the KV pair to add. The value type can be Uint8Array, number, string, or boolean. A value of the Uint8Array or string type cannot exceed [MAX_VALUE_LENGTH](#constants).  |
+| callback | AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result.  |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
+        if (err != undefined) {
+            console.log("put err: " + JSON.stringify(err));
+            return;
+        }
+        console.log("put success");
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+
+### put
+
+put(key: string, value: Uint8Array | string | number | boolean): Promise&lt;void&gt;
+
+Adds a KV pair of the specified type to this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    | string  | Yes   |Key of the KV pair to add. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants).  |
+| value  | Uint8Array \| string \| number \| boolean | Yes   |Value of the KV pair to add. The value type can be Uint8Array, number, string, or boolean. A value of the Uint8Array or string type cannot exceed [MAX_VALUE_LENGTH](#constants).  |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
+        console.log("put success: " + JSON.stringify(data));
+    }).catch((err) => {
+        console.log("put err: " + JSON.stringify(err));
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+### delete
+
+delete(key: string, callback: AsyncCallback&lt;void&gt;): void
+
+Deletes a KV pair from this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    | string  | Yes   |Key of the KV pair to delete. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants).  |
+| callback  | AsyncCallback&lt;void&gt;  | Yes   |Callback used to return the result.  |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
+        if (err != undefined) {
+            console.log("put err: " + JSON.stringify(err));
+            return;
+        }
+        console.log("put success");
+        kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err,data) {
+            if (err != undefined) {
+                console.log("delete err: " + JSON.stringify(err));
+                return;
+            }
+            console.log("delete success");
+        });
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+### delete
+
+delete(key: string): Promise&lt;void&gt;
+
+Deletes a KV pair from this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    | string  | Yes   |Key of the KV pair to delete. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants).  |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
+        console.log("put success: " + JSON.stringify(data));
+        kvStore.delete(KEY_TEST_STRING_ELEMENT).then((data) => {
+            console.log("delete success");
+        }).catch((err) => {
+            console.log("delete err: " + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log("put err: " + JSON.stringify(err));
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+### delete<sup>9+</sup>
+
+delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;void&gt;)
+
+Deletes KV pairs that meet the specified predicates. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| predicates    | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | Yes   |Conditions for deleting data. If this parameter is **null**, define the processing logic.|
+| callback  | AsyncCallback&lt;void&gt;  | Yes   |Callback used to return the result.  |
+
+**Example**
+
+```js
+import dataSharePredicates from '@ohos.data.dataSharePredicates';
+let kvStore;
+try {
+	let predicates = new dataSharePredicates.DataSharePredicates();
+	kvStore.delete(predicates, function (err, data) {
+		if (err == undefined) {
+			console.log('delete success');
+		} else {
+			console.log('delete fail' + err);
+		}
+    });  
+} catch (e) {
+	console.log('An unexpected error occurred. Error:' + e);
+}
+```
+
+### delete<sup>9+</sup>
+
+delete(predicates: dataSharePredicates.DataSharePredicates): Promise&lt;void&gt;
+
+Deletes KV pairs that meet the specified predicates. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| predicates    | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | Yes   |Conditions for deleting data. If this parameter is **null**, define the processing logic.|
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise used to return the result.|
+
+**Example**
+
+```js
+import dataSharePredicates from '@ohos.data.dataSharePredicates';
+let kvStore;
+try {
+	let predicates = new dataSharePredicates.DataSharePredicates();
+	let arr = ["name"];
+	predicates.inKeys(arr);
+	kvStore.put("name", "bob").then((data) => {
+		console.log('put success' + JSON.stringify(data));
+		kvStore.delete(predicates).then((data) => {
+			console.log('delete success');
+		}).catch((err) => {
+			console.log('delete fail' + JSON.stringify(err));
+		});
+	}) .catch((err) => {
+		console.log(' put fail' + err);
+	});
+}catch (e) {
+	console.log("An unexpected error occurred. Error:" + e);
+}
+
+```
+
+### on('dataChange')
+
+on(event: 'dataChange', type: SubscribeType, listener: Callback&lt;ChangeNotification&gt;): void
+
+Subscribes to data change notifications of the specified type.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to subscribe to. The value is **dataChange**, which indicates data changes.      |
+| type  |[SubscribeType](#subscribetype) | Yes   |Type of data changes.    |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; | Yes   |Callback used to return the data changes.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
+    console.log("dataChange callback call data: " + JSON.stringify(data));
+});
+```
+
+
+### on('syncComplete')
+
+on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Subscribes to data synchronization complete events.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string | Yes   |Event to subscribe to. The value is **syncComplete**, which indicates completion of a data synchronization.      |
+| syncCallback  |Callback&lt;Array&lt;[string, number]&gt;&gt; | Yes   |Callback used to return the data synchronization result.    |
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('syncComplete', function (data) {
+    console.log("callback call data: " + data);
+});
+```
+
+### off('dataChange')<sup>8+</sup>
+
+off(event:'dataChange', listener?: Callback&lt;ChangeNotification&gt;): void
+
+Unsubscribes from data change notifications.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to unsubscribe from. The value is **dataChange**, which indicates data changes.      |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; |No   |Callback used to return the data changes.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+kvStore.off('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+```
+
+### off('syncComplete')<sup>9+</sup>
+
+off(event: 'syncComplete', syncCallback?: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Unsubscribes from data change events. This API uses a synchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to unsubscribe from. The value is **syncComplete**, which indicates completion of a data synchronization.      |
+| syncCallback  |Callback&lt;Array&lt;[string, number]&gt;&gt;   | No   |Callback used to return the synchronization result.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const func = function (data) {
+        console.log('syncComplete ' + data)
+    };
+    kvStore.on('syncComplete', func);
+    kvStore.off('syncComplete', func);
+}catch(e) {
+    console.log('syncComplete e ' + e);
+}
+```
+
+
+### putBatch<sup>8+</sup>
+
+putBatch(entries: Entry[], callback: AsyncCallback&lt;void&gt;): void
+
+Inserts KV pairs in batches to this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| entries  |[Entry](#entry)[] | Yes   |KV pairs to insert in batches. |
+| callback |Asyncallback&lt;void&gt; |Yes    |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        kvStore.getEntries('batch_test_string_key', function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        });
+    });
+}catch(e) {
+    console.log('PutBatch e ' + JSON.stringify(e));
+}
+```
+
+
+### putBatch<sup>8+</sup>
+
+putBatch(entries: Entry[]): Promise&lt;void&gt;
+
+Inserts KV pairs in batches to this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| entries  |[Entry](#entry)[] | Yes   |KV pairs to insert in batches. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
+            console.log('getEntries success');
+            console.log('PutBatch ' + JSON.stringify(entries));
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('PutBatch e ' + JSON.stringify(e));
+}
+```
+
+### putBatch<sup>9+</sup>
+
+putBatch(value: Array&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;void&gt;): void
+
+Writes data to this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| value   |Array&lt;[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)&gt; | Yes   |Data to write.  |
+| callback |Asyncallback&lt;void&gt; |Yes    |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let v8Arr = [];
+    let arr = new Uint8Array([4,5,6,7]);
+    let vb1 = {key : "name_1", value : 32}
+    let vb2 = {key : "name_2", value : arr};
+    let vb3 = {key : "name_3", value : "lisi"};
+
+    v8Arr.push(vb1);
+    v8Arr.push(vb2);
+    v8Arr.push(vb3);
+    kvStore.putBatch(v8Arr, async function (err,data) {
+                console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('putBatch e ' + JSON.stringify(e));
+}
+```
+
+### putBatch<sup>9+</sup>
+
+putBatch(value: Array&lt;ValuesBucket&gt;): Promise&lt;void&gt;
+
+Writes data of the **valuesbucket** type to this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| value  |Array&lt;[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)&gt; | Yes   |Data to write.  |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let v8Arr = [];
+    let arr = new Uint8Array([4,5,6,7]);
+    let vb1 = {key : "name_1", value : 32}
+    let vb2 = {key : "name_2", value : arr};
+    let vb3 = {key : "name_3", value : "lisi"};
+
+    v8Arr.push(vb1);
+    v8Arr.push(vb2);
+    v8Arr.push(vb3);
+    kvStore.putBatch(v8Arr).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('PutBatch e ' + JSON.stringify(e));
+}
+
+```
+
+### deleteBatch<sup>8+</sup>
+
+deleteBatch(keys: string[], callback: AsyncCallback&lt;void&gt;): void
+
+Deletes KV pairs in batches from this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keys  |string[] | Yes   |KV pairs to delete in batches. |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    let keys = [];
+    for (var i = 0; i < 5; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+        keys.push(key + i);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        kvStore.deleteBatch(keys, async function (err,data) {
+            console.log('deleteBatch success');
+        });
+    });
+}catch(e) {
+    console.log('DeleteBatch e ' + e);
+}
+```
+
+
+### deleteBatch<sup>8+</sup> ###
+
+deleteBatch(keys: string[]): Promise&lt;void&gt;
+
+Deletes KV pairs in batches from this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keys   |string[] | Yes   |KV pairs to delete in batches. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    let keys = [];
+    for (var i = 0; i < 5; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+        keys.push(key + i);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        kvStore.deleteBatch(keys).then((err) => {
+            console.log('deleteBatch success');
+        }).catch((err) => {
+            console.log('deleteBatch fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('DeleteBatch e ' + e);
+}
+```
+
+
+### startTransaction<sup>8+</sup> ###
+
+startTransaction(callback: AsyncCallback&lt;void&gt;): void
+
+Starts the transaction in this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+function putBatchString(len, prefix) {
+    let entries = [];
+    for (var i = 0; i < len; i++) {
+        var entry = {
+            key : prefix + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    return entries;
+}
+try {
+    var count = 0;
+    kvStore.on('dataChange', 0, function (data) {
+        console.log('startTransaction 0' + data)
+        count++;
+    });
+    kvStore.startTransaction(async function (err,data) {
+        console.log('startTransaction success');
+        let entries = putBatchString(10, 'batch_test_string_key');
+        console.log('entries: ' + JSON.stringify(entries));
+        kvStore.putBatch(entries, async function (err,data) {
+            console.log('putBatch success');
+        });
+    });
+}catch(e) {
+    console.log('startTransaction e ' + e);
+}
+```
+
+
+### startTransaction<sup>8+</sup> ###
+
+startTransaction(): Promise&lt;void&gt;
+
+Starts the transaction in this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var count = 0;
+    kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
+        console.log('startTransaction ' + JSON.stringify(data));
+        count++;
+    });
+    kvStore.startTransaction().then(async (err) => {
+        console.log('startTransaction success');
+    }).catch((err) => {
+        console.log('startTransaction fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('startTransaction e ' + e);
+}
+```
+
+
+### commit<sup>8+</sup> ###
+
+commit(callback: AsyncCallback&lt;void&gt;): void
+
+Commits the transaction in this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.commit(function (err,data) {
+        if (err == undefined) {
+            console.log('commit success');
+        } else {
+            console.log('commit fail');
+        }
+    });
+}catch(e) {
+    console.log('Commit e ' + e);
+}
+```
+
+
+### commit<sup>8+</sup> ###
+
+commit(): Promise&lt;void&gt;
+
+Commits the transaction in this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.commit().then(async (err) => {
+        console.log('commit success');
+    }).catch((err) => {
+        console.log('commit fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('Commit e ' + e);
+}
+```
+
+
+### rollback<sup>8+</sup> ###
+
+rollback(callback: AsyncCallback&lt;void&gt;): void
+
+Rolls back the transaction in this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.rollback(function (err,data) {
+        if (err == undefined) {
+            console.log('commit success');
+        } else {
+            console.log('commit fail');
+        }
+    });
+}catch(e) {
+    console.log('Rollback e ' + e);
+}
+```
+
+
+### rollback<sup>8+</sup> ###
+
+rollback(): Promise&lt;void&gt;
+
+Rolls back the transaction in this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.rollback().then(async (err) => {
+        console.log('rollback success');
+    }).catch((err) => {
+        console.log('rollback fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('Rollback e ' + e);
+}
+```
+
+
+### enableSync<sup>8+</sup> ###
+
+enableSync(enabled: boolean, callback: AsyncCallback&lt;void&gt;): void
+
+Sets data synchronization, which can be enabled or disabled. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| enabled  |boolean | Yes   |Whether to enable data synchronization. The value **true** means to enable data synchronization, and **false** means the opposite. |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.enableSync(true, function (err,data) {
+        if (err == undefined) {
+            console.log('enableSync success');
+        } else {
+            console.log('enableSync fail');
+        }
+    });
+}catch(e) {
+    console.log('EnableSync e ' + e);
+}
+```
+
+
+### enableSync<sup>8+</sup> ###
+
+enableSync(enabled: boolean): Promise&lt;void&gt;
+
+Sets data synchronization, which can be enabled or disabled. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| enabled  |boolean | Yes   |Whether to enable data synchronization. The value **true** means to enable data synchronization, and **false** means the opposite. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.enableSync(true).then((err) => {
+        console.log('enableSync success');
+    }).catch((err) => {
+        console.log('enableSync fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('EnableSync e ' + e);
+}
+```
+
+
+### setSyncRange<sup>8+</sup> ###
+
+setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback&lt;void&gt;): void
+
+Sets the data synchronization range. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| localLabels  |string[] | Yes   |Synchronization labels set for the local device. |
+| remoteSupportLabels  |string[] | Yes   |Synchronization labels set for remote devices. |
+| callback  |AsyncCallback&lt;void&gt; | Yes   |Callback used to return the result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const localLabels = ['A', 'B'];
+    const remoteSupportLabels = ['C', 'D'];
+    kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err,data) {
+        console.log('SetSyncRange put success');
+    });
+}catch(e) {
+    console.log('SetSyncRange e ' + e);
+}
+```
+
+
+### setSyncRange<sup>8+</sup> ###
+
+setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise&lt;void&gt;
+
+Sets the data synchronization range. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| localLabels  |string[] | Yes   |Synchronization labels set for the local device. |
+| remoteSupportLabels  |string[] | Yes   |Synchronization labels set for remote devices. |
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+| Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const localLabels = ['A', 'B'];
+    const remoteSupportLabels = ['C', 'D'];
+    kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) => {
+        console.log('setSyncRange success');
+    }).catch((err) => {
+        console.log('delete fail ' + err);
+    });
+}catch(e) {
+    console.log('SetSyncRange e ' + e);
+}
+```
+
+
+## SubscribeType
+
+Enumerates the subscription types.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Value  | Description                   |
+| -----  | ------   | ----------------------- |
+| SUBSCRIBE_TYPE_LOCAL  |0 |Local data changes. |
+| SUBSCRIBE_TYPE_REMOTE |1 |Remote data changes. |
+| SUBSCRIBE_TYPE_ALL  |2 |Local and remote data changes. |
+
+## ChangeNotification
+
+Defines the content of data change notifications, including inserted data, updated data, deleted data, and device ID.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Type  |Readable  |Writable  | Description                   |
+| ----- | -------   | -----| ------|------------------------ |
+| insertEntries | [Entry](#entry)[]   | Yes |  Yes|Data inserted.  |
+| updateEntries | [Entry](#entry)[]   | Yes |  Yes|Data updated.  |
+| deleteEntries | [Entry](#entry)[]   | Yes |  Yes|Data deleted.  |
+| deviceId | string   | Yes |  Yes|UUID of the device. |
+
+## Entry
+
+Defines the KV pairs stored in the KV store.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Type  |Readable  |Writable  | Description                   |
+| ----- | -------   | -----| ------|------------------------ |
+| key | string   | Yes |  Yes|Key of the KV pair stored in the KV store.  |
+| value | [Value](#value) | Yes |  Yes|Value of the KV pair stored in the KV store.  |
+
+
+## Value
+
+Defines the **value** object in a KV store.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Type  |Readable  |Writable  | Description                   |
+| ----- | -------   | -----| ------|------------------------ |
+| type | [ValueType](#value)   | Yes |  Yes|Type of the value.  |
+| value | Uint8Array \| string \| number \| boolean| Yes |  Yes|Value of the KV pair stored in the KV store.  |
+
+## ValueType
+
+Enumerates the data types.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name | Value  | Description                   |
+| -----  | ------   | ----------------------- |
+| STRING  |0 |String. |
+| INTEGER |1 |Integer. |
+| FLOAT   |2 |Float (single-precision floating point). |
+| BYTE_ARRAY   |3 |Byte array. |
+| BOOLEAN   |4 |Boolean. |
+| DOUBLE   |5 |Double (double-precision floating point). |
+
+## SingleKVStore
+
+Provides methods to query and synchronize data in a single KV store. This class inherits from [KVStore](#kvstore).
+
+Data is not distinguished by device in a single KV store. The data written to different devices using the same key will be overwritten. For example, a single KV store can be used to synchronize a user's calendar and contact data between different devices.
+
+Before calling any method in **SingleKVStore**, you must use [getKVStore](#getkvstore) to obtain a **SingleKVStore** instance.
+
+### get
+
+get(key: string, callback: AsyncCallback&lt;Uint8Array | string | boolean | number&gt;): void
+
+Obtains the value of the specified key. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    |string   | Yes   |Key of the value to obtain. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants). |
+| callback  |AsyncCallback&lt;Uint8Array \| string \| boolean \| number&gt;) | Yes   |Callback invoked to return the value obtained. |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
+        if (err != undefined) {
+            console.log("put err: " + JSON.stringify(err));
+            return;
+        }
+        console.log("put success");
+        kvStore.get(KEY_TEST_STRING_ELEMENT, function (err,data) {
+            console.log("get success data: " + data);
+        });
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+
+### get
+
+get(key: string): Promise&lt;Uint8Array | string | boolean | number&gt;
+
+Obtains the value of the specified key. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| key    |string   | Yes   |Key of the value to obtain. It cannot be empty, and the length cannot exceed [MAX_KEY_LENGTH](#constants). |
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;Uint8Array \| string \| boolean \| number&gt; |Promise used to return the value obtained.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
+        console.log("put success: " + JSON.stringify(data));
+        kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
+            console.log("get success data: " + data);
+        }).catch((err) => {
+            console.log("get err: " + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log("put err: " + JSON.stringify(err));
+    });
+}catch (e) {
+    console.log("An unexpected error occurred. Error:" + e);
+}
+```
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
+
+Obtains all KV pairs that match the specified key prefix. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keyPrefix    |string   | Yes   |Key prefix to match. |
+| callback    |AsyncCallback&lt;[Entry](#entry)[]&gt;   | Yes   |Callback invoked to return the KV pairs obtained. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_number_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.INTEGER,
+                value : 222
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        kvStore.getEntries('batch_test_number_key', function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        });
+    });
+}catch(e) {
+    console.log('PutBatch e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(keyPrefix: string): Promise&lt;Entry[]&gt;
+
+Obtains all KV pairs that match the specified key prefix. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keyPrefix    |string   | Yes   |Key prefix to match. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[Entry](#entry)[]&gt; |Promise used to return the KV pairs obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + entries);
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('PutBatch e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
+
+Obtains the KV pairs that match the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| query  |[Query](#query8)   | Yes   |Key prefix to match. |
+| callback  |AsyncCallback&lt;[Entry](#entry)[]&gt;   | Yes   |Callback used to return the KV pairs obtained. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getEntries(query, function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        });
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(query: Query): Promise&lt;Entry[]&gt;
+
+Obtains the KV pairs that match the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| query  |[Query](#query8)   | Yes   |**Query** object to match. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[Entry](#entry)[]&gt; |Promise used to return the KV pairs obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getEntries(query).then((entries) => {
+            console.log('getEntries success');
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('GetEntries putBatch fail ' + JSON.stringify(err))
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup><a name="singlekvstore_getresultset"></a> ###
+
+getResultSet(keyPrefix: string, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains the result set with the specified prefix. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keyPrefix  |string   | Yes   |Key prefix to match.|
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt;   | Yes   |Callback invoked to return the result set obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('GetResultSet putBatch success');
+        kvStore.getResultSet('batch_test_string_key', async function (err, result) {
+            console.log('GetResultSet getResultSet succeed.');
+            resultSet = result;
+            kvStore.closeResultSet(resultSet, function (err, data) {
+                console.log('GetResultSet closeResultSet success');
+            })
+        });
+    });
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(keyPrefix: string): Promise&lt;KvStoreResultSet&gt;
+
+Obtains the result set with the specified prefix. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| keyPrefix  |string   | Yes   |Key prefix to match.|
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)&gt; |Promise used to return the result set obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('PutBatch putBatch fail ' + JSON.stringify(err));
+    });
+    kvStore.getResultSet('batch_test_string_key').then((result) => {
+        console.log('GetResult getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+    kvStore.closeResultSet(resultSet).then((err) => {
+        console.log('GetResult closeResultSet success');
+    }).catch((err) => {
+        console.log('closeResultSet fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResult e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(query: Query, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains a **KvStoreResultSet** object that matches the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |Query    | Yes   |**Query** object to match.            |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt;   | Yes   |Callback invoked to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getResultSet(query, async function (err, result) {
+            console.log('getResultSet succeed.');
+            resultSet = result;
+        });
+    });
+} catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(query: Query): Promise&lt;KvStoreResultSet&gt;
+
+Obtains a **KvStoreResultSet** object that matches the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)    | Yes   |**Query** object to match.            |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)&gt; |Promise used to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+    const query = new distributedData.Query();
+    query.prefixKey("batch_test");
+    kvStore.getResultSet(query).then((result) => {
+        console.log(' getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+### getResultSet<sup>9+</sup> ###
+
+getResultSet(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains a **KvStoreResultSet** object that matches the specified **DataSharePredicates** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| predicates  | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)    | Yes   |**DataSharePredicates** object to match. If this parameter is **null**, define the processing logic.            |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt;   | Yes   |Callback invoked to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+import dataSharePredicates from '@ohos.data.dataSharePredicates';
+let kvStore;
+try {
+    let resultSet;
+    let predicates = new dataSharePredicates.DataSharePredicates();
+    predicates.prefixKey("batch_test_string_key");
+    kvStore.getResultSet(predicates, async function (err, result) {
+    console.log(' GetResultSet success');
+    resultSet = result;
+    kvStore.closeResultSet(resultSet, function (err, data) {
+        console.log(' closeResultSet success');
+        })
+    });
+}catch(e) {
+    console.log('An unexpected error occurred. Error:' + e);
+}
+```
+### getResultSet<sup>9+</sup> ###
+
+getResultSet(predicates: dataSharePredicates.DataSharePredicates): Promise&lt;KvStoreResultSet&gt;
+
+Obtains a **KvStoreResultSet** object that matches the specified **DataSharePredicates** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| predicates  |[DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | Yes   |**DataSharePredicates** object to match. If this parameter is **null**, define the processing logic.           |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)&gt; |Promise used to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+import dataSharePredicates from '@ohos.data.dataSharePredicates';
+let kvStore;
+try {
+	let resultSet;
+    let predicates =  new dataSharePredicates.DataSharePredicates();
+    predicates.prefixKey("batch_test_string_key");
+    kvStore.getResultSet(predicates) .then((result) => {
+        console.log(' GetResultSet success');
+        resultSet = result;
+        kvStore.closeResultSet(resultSet, function (err, data) {
+            console.log(' closeResultSet success');
+        })
+    });
+}catch(e) {
+	console.log('An unexpected error occurred. Error:' + e);
+}
+```
+### closeResultSet<sup>8+</sup> ###
+
+closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback&lt;void&gt;): void
+
+Closes the **KvStoreResultSet** object obtained by [SingleKvStore.getResultSet](#singlekvstore_getresultset). This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| resultSet  |[KvStoreResultSet](#kvstoreresultset8)   | Yes   |**KvStoreResultSet** object to close.            |
+| callback  |AsyncCallback&lt;void&gt;   | Yes   |Callback used to return the result.            |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet = null;
+    kvStore.closeResultSet(resultSet, function (err, data) {
+        if (err == undefined) {
+            console.log('closeResultSet success');
+        } else {
+            console.log('closeResultSet fail');
+        }
+    });
+}catch(e) {
+    console.log('CloseResultSet e ' + e);
+}
+```
+
+
+### closeResultSet<sup>8+</sup> ###
+
+closeResultSet(resultSet: KvStoreResultSet): Promise&lt;void&gt;
+
+Closes the **KvStoreResultSet** object obtained by [SingleKvStore.getResultSet](#singlekvstore_getresultset). This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| resultSet  |[KvStoreResultSet](#kvstoreresultset8)   | Yes   |**KvStoreResultSet** object to close.            |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet = null;
+    kvStore.closeResultSet(resultSet).then(() => {
+        console.log('closeResultSet success');
+    }).catch((err) => {
+        console.log('closeResultSet fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('CloseResultSet e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(query: Query, callback: AsyncCallback&lt;number&gt;): void
+
+Obtains the number of results that matches the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)   | Yes   |**Query** object to match.        |
+| callback  |AsyncCallback&lt;number&gt;   | Yes   |Callback invoked to return the number of results obtained.        |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getResultSize(query, async function (err, resultSize) {
+            console.log('getResultSet succeed.');
+        });
+    });
+} catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(query: Query): Promise&lt;number&gt;
+
+Obtains the number of results that matches the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)   | Yes   |**Query** object to match.        |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;number&gt; |Promise used to return the number of results obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+    const query = new distributedData.Query();
+    query.prefixKey("batch_test");
+    kvStore.getResultSize(query).then((resultSize) => {
+        console.log('getResultSet succeed.');
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### removeDeviceData<sup>8+</sup> ###
+
+removeDeviceData(deviceId: string, callback: AsyncCallback&lt;void&gt;): void
+
+Deletes data of a device. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string   | Yes   |ID of the target device.      |
+| callback  |AsyncCallback&lt;void&gt;   | Yes   |Callback used to return the result.     |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
+        console.log('put success');
+        const deviceid = 'no_exist_device_id';
+        kvStore.removeDeviceData(deviceid, async function (err,data) {
+            if (err == undefined) {
+                console.log('removeDeviceData success');
+            } else {
+                console.log('removeDeviceData fail');
+                kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err,data) {
+                    console.log('RemoveDeviceData get success');
+                });
+            }
+        });
+    });
+}catch(e) {
+    console.log('RemoveDeviceData e ' + e);
+}
+```
+
+
+### removeDeviceData<sup>8+</sup> ###
+
+removeDeviceData(deviceId: string): Promise&lt;void&gt;
+
+Deletes data of a device. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string   | Yes   |ID of the target device.      |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) => {
+        console.log('removeDeviceData put success');
+    }).catch((err) => {
+        console.log('put fail ' + JSON.stringify(err));
+    });
+    const deviceid = 'no_exist_device_id';
+    kvStore.removeDeviceData(deviceid).then((err) => {
+        console.log('removeDeviceData success');
+    }).catch((err) => {
+        console.log('removeDeviceData fail ' + JSON.stringify(err));
+    });
+    kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
+        console.log('get success data:' + data);
+    }).catch((err) => {
+        console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('RemoveDeviceData e ' + e);
+}
+```
+
+
+### on('syncComplete')<sup>8+</sup> ###
+
+on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Subscribes to the data synchronization complete events.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| event  |string   | Yes   |Event to subscribe to. The value is **syncComplete**, which indicates completion of a data synchronization.   |
+| syncCallback  |Callback&lt;Array&lt;[string, number]&gt;&gt;   | Yes   |Callback called to return the synchronization result.   |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
+const VALUE_TEST_FLOAT_ELEMENT = 321.12;
+try {
+    kvStore.on('syncComplete', function (data) {
+        console.log('syncComplete ' + data)
+    });
+    kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => {
+        console.log('syncComplete put success');
+    }).catch((error) => {
+        console.log('syncComplete put fail ' + error);
+    });
+}catch(e) {
+    console.log('syncComplete put e ' + e);
+}
+```
+
+
+### off('syncComplete')<sup>8+</sup> ###
+
+off(event: 'syncComplete', syncCallback?: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Unsubscribes from the data synchronization complete events.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| event  |string   | Yes   |Event to unsubscribe from. The value is **syncComplete**, which indicates completion of a data synchronization.   |
+| syncCallback  |Callback&lt;Array&lt;[string, number]&gt;&gt;   | No   |Callback used to return the synchronization result.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const func = function (data) {
+        console.log('syncComplete ' + data)
+    };
+    kvStore.on('syncComplete', func);
+    kvStore.off('syncComplete', func);
+}catch(e) {
+    console.log('syncComplete e ' + e);
+}
+```
+
+### on('dataChange')<sup>9+</sup> ###
+
+on(event: 'dataChange', type: SubscribeType, listener: Callback&lt;ChangeNotification&gt;): void
+
+Subscribes to data changes of the specified type. This API returns the result synchronously.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to subscribe to. The value is **dataChange**, which indicates data changes.      |
+| type  |[SubscribeType](#subscribetype) | Yes   |Subscription type.    |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; | Yes   |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
+    console.log("dataChange callback call data: " + JSON.stringify(data));
+});
+
+```
+
+### off('dataChange')<sup>9+</sup> ###
+
+off(event:'dataChange', listener?: Callback&lt;ChangeNotification&gt;): void
+
+Unsubscribes from the data change events. This API returns the result synchronously.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to unsubscribe from. The value is **dataChange**, which indicates data changes.      |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; |No   |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+kvStore.off('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+```
+### sync<sup>7+</sup>
+
+
+sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
+
+Synchronizes the KV store manually. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview] (../../database/database-mdds-overview.md).
+
+**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceIds  |string[]  | Yes   |List of IDs of the devices in the same networking environment to be synchronized.   |
+| mode  |[SyncMode](#syncmode)   | Yes  |Synchronization mode.   |
+| delayMs  |number   | No  |Allowed synchronization delay time, in ms.  |
+
+**Example**
+
+```js
+let kvStore;
+kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000);
+```
+
+### sync<sup>9+</sup>
+sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
+
+Synchronizes the KV store manually. This API returns the result synchronously. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview] (../../database/database-mdds-overview.md).
+
+**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceIds  |string[]  | Yes   |List of IDs of the devices in the same networking environment to be synchronized.   |
+| mode            |[SyncMode](#syncmode)  | Yes   |Synchronization mode. |
+| query  |[Query](#query8)   | Yes  |**Query** object to match. |
+| delayMs  |number   | No  |Allowed synchronization delay time, in ms.  |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
+const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
+try {
+    kvStore.on('syncComplete', function (data) {
+        console.log('Sync dataChange');
+    });
+    kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
+        console.log('Sync put success');
+        const devices = ['deviceList'];
+        const mode = distributedData.SyncMode.PULL_ONLY;
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        query.deviceId('localDeviceId');
+        kvStore.sync(devices, query, mode , 1000);
+    });
+}catch(e) {
+    console.log('Sync e' + e);
+}
+```
+
+### setSyncParam<sup>8+</sup> ###
+
+setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback&lt;void&gt;): void
+
+Sets the default delay allowed for KV store synchronization. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| defaultAllowedDelayMs  |number  | Yes   |Default delay allowed for database synchronization, in ms.   |
+| callback  |AsyncCallback&lt;void&gt;  | Yes  |Callback used to return the result.  |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const defaultAllowedDelayMs = 500;
+    kvStore.setSyncParam(defaultAllowedDelayMs, function (err,data) {
+        console.log('SetSyncParam put success');
+    });
+}catch(e) {
+    console.log('testSingleKvStoreSetSyncParam e ' + e);
+}
+```
+
+
+### setSyncParam<sup>8+</sup> ###
+
+setSyncParam(defaultAllowedDelayMs: number): Promise&lt;void&gt;
+
+Sets the default delay allowed for KV store synchronization. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| defaultAllowedDelayMs  |number  | Yes   |Default delay allowed for database synchronization, in ms.   |
+
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const defaultAllowedDelayMs = 500;
+    kvStore.setSyncParam(defaultAllowedDelayMs).then((err) => {
+        console.log('SetSyncParam put success');
+    }).catch((err) => {
+        console.log('SetSyncParam put fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('SetSyncParam e ' + e);
+}
+```
+
+
+### getSecurityLevel<sup>8+</sup> ###
+
+getSecurityLevel(callback: AsyncCallback&lt;SecurityLevel&gt;): void
+
+Obtains the security level of this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| callback  |AsyncCallback&lt;[SecurityLevel](#securitylevel)&gt;  | Yes   |Callback invoked to return the security level obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.getSecurityLevel(function (err,data) {
+        console.log('getSecurityLevel success');
+    });
+}catch(e) {
+    console.log('GetSecurityLevel e ' + e);
+}
+```
+
+
+### getSecurityLevel<sup>8+</sup> ###
+
+getSecurityLevel(): Promise&lt;SecurityLevel&gt;
+
+Obtains the security level of this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[SecurityLevel](#securitylevel)&gt; |Promise used to return the security level obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    kvStore.getSecurityLevel().then((data) => {
+        console.log(' getSecurityLevel success');
+    }).catch((err) => {
+        console.log('getSecurityLevel fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetSecurityLevel e ' + e);
+}
+```
+
+
+## DeviceKVStore<sup>8+</sup> ##
+
+Provides methods to query and synchronize data in a device KV store. This class inherits from [KVStore](#kvstore).
+
+Data is distinguished by device in a device KV store. Each device can only write and modify its own data. Data of other devices is read-only and cannot be modified.
+
+For example, a device KV store can be used to implement image sharing between devices. The images of other devices can be viewed, but not be modified or deleted.
+
+Before calling any method in **DeviceKVStore**, you must use [getKVStore](#getkvstore) to obtain a **DeviceKVStore** object.
+
+### get<sup>8+</sup> ###
+
+get(deviceId: string, key: string, callback: AsyncCallback&lt;boolean|string|number|Uint8Array&gt;): void
+
+Obtains a string value that matches the specified device ID and key. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| key       |string  | Yes   |Key to match.   |
+| callback  |AsyncCallback&lt;boolean\|string\|number\|Uint8Array&gt;  | Yes   |Callback used to return the value obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
+try{
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
+        console.log('put success');
+        kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err,data) {
+            console.log('get success');
+        });
+    })
+}catch(e) {
+    console.log('get e' + e);
+}
+```
+
+
+### get<sup>8+</sup> ###
+
+get(deviceId: string, key: string): Promise&lt;boolean|string|number|Uint8Array&gt;
+
+Obtains a string value that matches the specified device ID and key. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| key       |string  | Yes   |Key to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;boolean\|string\|number\|Uint8Array&gt; |Promise used to return the string value obtained.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) => {
+        console.log(' put success');
+        kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => {
+            console.log('get success');
+        }).catch((err) => {
+            console.log('get fail ' + JSON.stringify(err));
+        });
+    }).catch((error) => {
+        console.log('put error' + error);
+    });
+} catch (e) {
+    console.log('Get e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
+
+Obtains all KV pairs that match the specified device ID and key prefix. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| keyPrefix |string  | Yes   |Key prefix to match.   |
+| callback  |AsyncCallback&lt;[Entry](#entry)[]&gt;  | Yes |Callback used to return the KV pairs obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + entries);
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        });
+    });
+}catch(e) {
+    console.log('PutBatch e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(deviceId: string, keyPrefix: string): Promise&lt;Entry[]&gt;
+
+Obtains all KV pairs that match the specified device ID and key prefix. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| keyPrefix |string  | Yes   |Key prefix to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[Entry](#entry)[]&gt; |Promise used to return the KV pairs obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + entries);
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('PutBatch e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
+
+Obtains the KV pairs that match the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+| callback |AsyncCallback&lt;[Entry](#entry)[]&gt;  | Yes   |Callback used to return the KV pairs obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        query.deviceId('localDeviceId');
+        kvStore.getEntries(query, function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        });
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(query: Query): Promise&lt;Entry[]&gt;
+
+Obtains the KV pairs that match the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[Entry](#entry)[]&gt; |Promise used to return the KV pairs obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getEntries(query).then((entries) => {
+            console.log('getEntries success');
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('GetEntries putBatch fail ' + JSON.stringify(err))
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(deviceId: string, query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
+
+Obtains the KV pairs that match the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+| callback |AsyncCallback&lt;[Entry](#entry)[]&gt;  | Yes   |Callback invoked to return the KV pairs obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries, async function (err,data) {
+        console.log('putBatch success');
+        var query = new distributedData.Query();
+        query.deviceId('localDeviceId');
+        query.prefixKey("batch_test");
+        kvStore.getEntries('localDeviceId', query, function (err,entries) {
+            console.log('getEntries success');
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+        })
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getEntries<sup>8+</sup> ###
+
+getEntries(deviceId: string, query: Query): Promise&lt;Entry[]&gt;
+
+Obtains the KV pairs that match the specified device ID and **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[Entry](#entry)[]&gt; |Promise used to return the KV pairs obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    var arr = new Uint8Array([21,31]);
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_bool_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.BYTE_ARRAY,
+                value : arr
+            }
+        }
+        entries.push(entry);
+    }
+    console.log('entries: ' + JSON.stringify(entries));
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+        var query = new distributedData.Query();
+        query.deviceId('localDeviceId');
+        query.prefixKey("batch_test");
+        kvStore.getEntries('localDeviceId', query).then((entries) => {
+            console.log('getEntries success');
+        }).catch((err) => {
+            console.log('getEntries fail ' + JSON.stringify(err));
+        });
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+    console.log('GetEntries success');
+}catch(e) {
+    console.log('GetEntries e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup><a name="devicekvstore_getresultset"></a> ###
+
+getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains a **KvStoreResultSet** object that matches the specified device ID and key prefix. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| keyPrefix |string  | Yes   |Key prefix to match.   |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt;  | Yes |Callback invoked to return the **KvStoreResultSet** object obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+        kvStore.closeResultSet(resultSet, function (err, data) {
+            console.log('closeResultSet success');
+        })
+    });
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(deviceId: string, keyPrefix: string): Promise&lt;KvStoreResultSet&gt;
+
+Obtains a **KvStoreResultSet** object that matches the specified device ID and key prefix. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| keyPrefix |string  | Yes   |Key prefix to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt; |Promise used to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+    kvStore.closeResultSet(resultSet).then((err) => {
+        console.log('closeResultSet success');
+    }).catch((err) => {
+        console.log('closeResultSet fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(query: Query, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains a **KvStoreResultSet** object that matches the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt;  | Yes |Callback invoked to return the **KvStoreResultSet** object obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        query.deviceId('localDeviceId');
+        kvStore.getResultSet(query, async function (err, result) {
+            console.log('getResultSet succeed.');
+            resultSet = result;
+            kvStore.closeResultSet(resultSet, function (err, data) {
+                console.log('closeResultSet success');
+            })
+        });
+    });
+} catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(query: Query): Promise&lt;KvStoreResultSet&gt;
+
+Obtains a **KvStoreResultSet** object that matches the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt; |Promise used to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + err);
+    });
+    const query = new distributedData.Query();
+    query.deviceId('localDeviceId');
+    query.prefixKey("batch_test");
+    console.log("GetResultSet " + query.getSqlLike());
+    kvStore.getResultSet(query).then((result) => {
+        console.log('getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+    kvStore.closeResultSet(resultSet).then((err) => {
+        console.log('closeResultSet success');
+    }).catch((err) => {
+        console.log('closeResultSet fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(deviceId: string, query: Query, callback: AsyncCallback&lt;KvStoreResultSet&gt;): void
+
+Obtains a **KvStoreResultSet** object that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt;  | Yes |Callback invoked to return the **KvStoreResultSet** object obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getResultSet('localDeviceId', query, async function (err, result) {
+            console.log('getResultSet succeed.');
+            resultSet = result;
+            kvStore.closeResultSet(resultSet, function (err, data) {
+                console.log('closeResultSet success');
+            })
+        });
+    });
+} catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### getResultSet<sup>8+</sup> ###
+
+getResultSet(deviceId: string, query: Query): Promise&lt;KvStoreResultSet&gt;
+
+Obtains a **KvStoreResultSet** object that matches the specified device ID and **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device.   |
+| query  |[Query](#query8)  | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;[KvStoreResultSet](#kvstoreresultset8)[]&gt; |Promise used to return the **KvStoreResultSet** object obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let resultSet;
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('GetResultSet putBatch success');
+    }).catch((err) => {
+        console.log('PutBatch putBatch fail ' + JSON.stringify(err));
+    });
+    const query = new distributedData.Query();
+    query.prefixKey("batch_test");
+    kvStore.getResultSet('localDeviceId', query).then((result) => {
+        console.log('GetResultSet getResultSet succeed.');
+        resultSet = result;
+    }).catch((err) => {
+        console.log('GetResultSet getResultSet failed: ' + JSON.stringify(err));
+    });
+    query.deviceId('localDeviceId');
+    console.log("GetResultSet " + query.getSqlLike());
+    kvStore.closeResultSet(resultSet).then((err) => {
+        console.log('GetResultSet closeResultSet success');
+    }).catch((err) => {
+        console.log('GetResultSet closeResultSet fail ' + JSON.stringify(err));
+    });
+
+}catch(e) {
+    console.log('GetResultSet e ' + e);
+}
+```
+
+
+### closeResultSet<sup>8+</sup> ###
+
+closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback&lt;void&gt;): void
+
+Closes the **KvStoreResultSet** object obtained by [DeviceKVStore.getResultSet](#devicekvstore_getresultset). This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| resultSet  |[KvStoreResultSet](#getresultset8)  | Yes   |**KvStoreResultSet** object to close.  |
+| callback   |AsyncCallback&lt;void&gt;                 | Yes   |Callback used to return the result.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    console.log('CloseResultSet success');
+    let resultSet = null;
+    kvStore.closeResultSet(resultSet, function (err, data) {
+        if (err == undefined) {
+            console.log('closeResultSet success');
+        } else {
+            console.log('closeResultSet fail');
+        }
+    });
+}catch(e) {
+    console.log('CloseResultSet e ' + e);
+}
+```
+
+
+### closeResultSet<sup>8+</sup> ###
+
+closeResultSet(resultSet: KvStoreResultSet): Promise&lt;void&gt;
+
+Closes the **KvStoreResultSet** object obtained by [DeviceKVStore.getResultSet](#devicekvstore_getresultset). This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| resultSet  |[KvStoreResultSet](#getresultset8)  | Yes   |**KvStoreResultSet** object to close.  |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    console.log('CloseResultSet success');
+    let resultSet = null;
+    kvStore.closeResultSet(resultSet).then(() => {
+        console.log('closeResultSet success');
+    }).catch((err) => {
+        console.log('closeResultSet fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('CloseResultSet e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(query: Query, callback: AsyncCallback&lt;number&gt;): void
+
+Obtains the number of results that matches the specified **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query     |[Query](#query8)       | Yes   |**Query** object to match.   |
+| callback  |AsyncCallback&lt;number&gt;  | Yes   |Callback invoked to return the number of results obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        query.deviceId('localDeviceId');
+        kvStore.getResultSize(query, async function (err, resultSize) {
+            console.log('getResultSet succeed.');
+        });
+    });
+} catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(query: Query): Promise&lt;number&gt;
+
+Obtains the number of results that matches the specified **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| query     |[Query](#query8)       | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;number&gt; |Promise used to return the number of results obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+    const query = new distributedData.Query();
+    query.prefixKey("batch_test");
+    query.deviceId('localDeviceId');
+    kvStore.getResultSize(query).then((resultSize) => {
+        console.log('getResultSet succeed.');
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(deviceId: string, query: Query, callback: AsyncCallback&lt;number&gt;): void;
+
+Obtains the number of results that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string                       | Yes   |ID of the target device.   |
+| query     |[Query](#query8)       | Yes   |**Query** object to match.   |
+| callback  |AsyncCallback&lt;number&gt;  | Yes   |Callback invoked to return the number of results obtained.   |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries, async function (err, data) {
+        console.log('putBatch success');
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) {
+            console.log('getResultSet succeed.');
+        });
+    });
+} catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### getResultSize<sup>8+</sup> ###
+
+getResultSize(deviceId: string, query: Query): Promise&lt;number&gt;
+
+Obtains the number of results that matches the specified device ID and **Query** object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string                       | Yes   |ID of the target device.   |
+| query     |[Query](#query8)       | Yes   |**Query** object to match.   |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;number&gt; |Promise used to return the number of results obtained.|
+
+**Example**
+
+```js
+let kvStore;
+try {
+    let entries = [];
+    for (var i = 0; i < 10; i++) {
+        var key = 'batch_test_string_key';
+        var entry = {
+            key : key + i,
+            value : {
+                type : distributedData.ValueType.STRING,
+                value : 'batch_test_string_value'
+            }
+        }
+        entries.push(entry);
+    }
+    kvStore.putBatch(entries).then(async (err) => {
+        console.log('putBatch success');
+    }).catch((err) => {
+        console.log('putBatch fail ' + JSON.stringify(err));
+    });
+    var query = new distributedData.Query();
+    query.prefixKey("batch_test");
+    kvStore.getResultSize('localDeviceId', query).then((resultSize) => {
+        console.log('getResultSet succeed.');
+    }).catch((err) => {
+        console.log('getResultSet failed: ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('GetResultSize e ' + e);
+}
+```
+
+
+### removeDeviceData<sup>8+</sup> ###
+
+removeDeviceData(deviceId: string, callback: AsyncCallback&lt;void&gt;): void
+
+Deletes data of the specified device from this KV store. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string                       | Yes   |ID of the target device. |
+| callback  |AsyncCallback&lt;void&gt;    | Yes   |Callback used to return the result.   |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
+        console.log('RemoveDeviceData  put success');
+        const deviceid = 'no_exist_device_id';
+        kvStore.removeDeviceData(deviceid, async function (err,data) {
+            if (err == undefined) {
+                console.log('removeDeviceData success');
+            } else {
+                console.log('removeDeviceData fail');
+                kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, async function (err,data) {
+                    console.log('RemoveDeviceData get success');
+                });
+            }
+        });
+    });
+}catch(e) {
+    console.log('RemoveDeviceData e ' + e);
+}
+```
+
+
+### removeDeviceData<sup>8+</sup> ###
+
+removeDeviceData(deviceId: string): Promise&lt;void&gt;
+
+Deletes data of the specified device from this KV store. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceId  |string  | Yes   |ID of the target device. |
+
+**Return value**
+
+| Type   | Description      |
+| ------  | -------   |
+|Promise&lt;void&gt; |Promise that returns no value.|
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_STRING_ELEMENT = 'key_test_string';
+const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
+try {
+    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) => {
+        console.log('RemoveDeviceData put success');
+    }).catch((err) => {
+        console.log('RemoveDeviceData put fail ' + JSON.stringify(err));
+    });
+    const deviceid = 'no_exist_device_id';
+    kvStore.removeDeviceData(deviceid).then((err) => {
+        console.log('removeDeviceData success');
+    }).catch((err) => {
+        console.log('removeDeviceData fail ' + JSON.stringify(err));
+    });
+    kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => {
+        console.log('RemoveDeviceData get success data:' + data);
+    }).catch((err) => {
+        console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
+    });
+}catch(e) {
+    console.log('RemoveDeviceData e ' + e);
+}
+```
+
+
+### sync<sup>8+</sup> ###
+
+sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
+
+Synchronizes the KV store manually. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview] (../../database/database-mdds-overview.md).
+
+**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceIds    |string[]               | Yes   |IDs of the devices to be synchronized.|
+| mode            |[SyncMode](#syncmode)  | Yes   |Synchronization mode. |
+| delayMs  |number                 | No   |Allowed synchronization delay time, in ms. |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
+const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
+try {
+    kvStore.on('syncComplete', function (data) {
+        console.log('Sync dataChange');
+    });
+    kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
+        console.log('Sync put success');
+        const devices = ['deviceList'];
+        const mode = distributedData.SyncMode.PULL_ONLY;
+        kvStore.sync(devices, mode);
+    });
+}catch(e) {
+    console.log('Sync e' + e);
+}
+```
+
+### sync<sup>9+</sup> ###
+
+sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
+
+Synchronizes the KV store manually. This API returns the result synchronously. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview] (../../database/database-mdds-overview.md).
+
+**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| deviceIds    |string[]               | Yes   |IDs of the devices to be synchronized.|
+| query            |[Query](#query8)  | Yes   | **Query** object to match.|
+| delayMs  |number                 | No   |Allowed synchronization delay time, in ms. |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
+const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
+try {
+    kvStore.on('syncComplete', function (data) {
+        console.log('Sync dataChange');
+    });
+    kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
+        console.log('Sync put success');
+        const devices = ['deviceList'];
+        const mode = distributedData.SyncMode.PULL_ONLY;
+        const query = new distributedData.Query();
+        query.prefixKey("batch_test");
+        query.deviceId('localDeviceId');
+        kvStore.sync(devices, query, 1000);
+    });
+}catch(e) {
+    console.log('Sync e' + e);
+}
+```
+
+### on('syncComplete')<sup>8+</sup> ###
+
+on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Subscribes to the data synchronization complete events.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| event    |string      | Yes   |Event to subscribe to. The value is **syncComplete**, which indicates the data synchronization complete event.|
+| syncCallback            |Callback<Array&lt;[string, number]&gt;> | Yes   |Callback used to return the synchronization result. |
+
+**Example**
+
+```js
+let kvStore;
+const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
+const VALUE_TEST_FLOAT_ELEMENT = 321.12;
+try {
+    kvStore.on('syncComplete', function (data) {
+        console.log('syncComplete ' + data)
+    });
+    kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => {
+        console.log('syncComplete put success');
+    }).catch((error) => {
+        console.log('syncComplete put fail ' + error);
+    });
+}catch(e) {
+    console.log('syncComplete put e ' + e);
+}
+```
+
+
+### off('syncComplete')<sup>8+</sup> ###
+
+off(event: 'syncComplete', syncCallback?: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
+
+Unsubscribes from the synchronization complete events. This API returns the result synchronously.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------   | ----  | ----------------------- |
+| event         |string                           | Yes   |Event to unsubscribe from. The value is **syncComplete**, which indicates the data synchronization complete event.|
+| syncCallback  |Callback<Array&lt;[string, number]&gt;&gt; | No   |Callback used to return the synchronization result. |
+
+**Example**
+
+```js
+let kvStore;
+try {
+    const func = function (data) {
+        console.log('syncComplete ' + data)
+    };
+    kvStore.on('syncComplete', func);
+    kvStore.off('syncComplete', func);
+}catch(e) {
+    console.log('syncComplete e ' + e);
+}
+```
+
+### on('dataChange')<sup>9+</sup> ###
+
+on(event: 'dataChange', type: SubscribeType, listener: Callback&lt;ChangeNotification&gt;): void
+
+Subscribes to data changes of the specified type. This API returns the result synchronously.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to subscribe to. The value is **dataChange**, which indicates data changes.      |
+| type  |[SubscribeType](#subscribetype) | Yes   |Subscription type.    |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; | Yes   |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
+    console.log("dataChange callback call data: " + JSON.stringify(data));
+});
+```
+
+
+### off('dataChange')<sup>9+</sup> ###
+
+off(event:'dataChange', listener?: Callback&lt;ChangeNotification&gt;): void
+
+Unsubscribes from the data change events. This API returns the result synchronously.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+**Parameters**
+
+| Name | Type| Mandatory | Description                   |
+| -----  | ------  | ----  | ----------------------- |
+| event  |string  | Yes   |Event to unsubscribe from. The value is **dataChange**, which indicates data changes.      |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; |No   |Callback used to return the result.|
+
+**Example**
+
+```js
+let kvStore;
+kvStore.on('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+kvStore.off('dataChange', function (data) {
+    console.log("callback call data: " + data);
+});
+```
+
+## SyncMode
+
+Enumerates the synchronization modes.
+
+**System capability**: SystemCapability.DistributedDataManager.KVStore.Core
+
+| Name      | Value    | Description                   |
+| -----      | ------    | ----------------------- |
+| PULL_ONLY  |0          |Pull data from the peer end to the local end only.|
+| PUSH_ONLY  |1          |Push data from the local end to the peer end only.|
+| PUSH_PULL  |2          |Push data from the local end to the peer end and then pull data from the peer end to the local end.|
+
diff --git a/en/application-dev/reference/apis/js-apis-distributed-data.md b/en/application-dev/reference/apis/js-apis-distributed-data.md
index 154bba75b0c8172459b41725add26ce2fa96db34..bad85aee529e6f5b2bff68cd79fd4172c53e7969 100644
--- a/en/application-dev/reference/apis/js-apis-distributed-data.md
+++ b/en/application-dev/reference/apis/js-apis-distributed-data.md
@@ -489,7 +489,7 @@ Obtains the IDs of all KV stores that are created by [getKVStore()](#getkvstore)
 let kvManager;
 try {
     console.log('GetAllKVStoreId');
-    kvManager.getAllKVStoreId('apppId').then((data) => {
+    kvManager.getAllKVStoreId('appId').then((data) => {
         console.log('getAllKVStoreId success');
         console.log('size = ' + data.length);
     }).catch((err) => {
@@ -775,7 +775,7 @@ let kvStore;
 try {
     let resultSet;
     kvStore.getResultSet('batch_test_string_key').then((result) => {
-        console.log('getResultSet succeeed.');
+        console.log('getResultSet succeeded.');
         resultSet = result;
     }).catch((err) => {
         console.log('getResultSet failed: ' + err);
@@ -2453,10 +2453,10 @@ try {
     console.log('entries: ' + JSON.stringify(entries));
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key', function (err,entrys) {
+        kvStore.getEntries('batch_test_string_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -2505,7 +2505,7 @@ try {
     console.log('entries: ' + JSON.stringify(entries));
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
             console.log('getEntries success');
             console.log('PutBatch ' + JSON.stringify(entries));
         }).catch((err) => {
@@ -3245,10 +3245,10 @@ try {
     }
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_number_key', function (err,entrys) {
+        kvStore.getEntries('batch_test_number_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -3297,12 +3297,12 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
-            console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value));
-            console.log('entrys[0].value.value: ' + entrys[0].value.value);
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
         });
@@ -3353,10 +3353,10 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query, function (err,entrys) {
+        kvStore.getEntries(query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
     console.log('GetEntries success');
@@ -3409,7 +3409,7 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query).then((entrys) => {
+        kvStore.getEntries(query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
@@ -3650,7 +3650,7 @@ Obtains a **KvStoreResultSet** object that matches the specified **Predicates**
 | Name | Type| Mandatory | Description                   |
 | -----  | ------   | ----  | ----------------------- |
 | predicates  | Predicates    | Yes   |**Predicates** object to match. If this parameter is **null**, define the processing logic.            |
-| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultsetsup8sup)&gt;   | Yes   |Callback invoked to return the **KvStoreResultSet** object obtained.|
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt;   | Yes   |Callback invoked to return the **KvStoreResultSet** object obtained.|
 
 **Example**
 
@@ -4134,7 +4134,7 @@ Synchronizes the KV store manually. This API uses a synchronous mode. For detail
 | -----  | ------   | ----  | ----------------------- |
 | deviceIds  |string[]  | Yes   |List of IDs of the devices in the same networking environment to be synchronized.   |
 | mode            |[SyncMode](#syncmode)  | Yes   |Synchronization mode. |
-| query  |[Query](#querysup8sup)   | Yes  |**Query** object to match. |
+| query  |[Query](#query8)   | Yes  |**Query** object to match. |
 | delayMs  |number   | No  |Allowed synchronization delay time, in ms.  |
 
 **Example**
@@ -4252,7 +4252,7 @@ try {
         console.log('getSecurityLevel success');
     });
 }catch(e) {
-    console.log('GetSecurityLeve e ' + e);
+    console.log('GetSecurityLevel e ' + e);
 }
 ```
 
@@ -4282,7 +4282,7 @@ try {
         console.log('getSecurityLevel fail ' + JSON.stringify(err));
     });
 }catch(e) {
-    console.log('GetSecurityLeve e ' + e);
+    console.log('GetSecurityLevel e ' + e);
 }
 ```
 
@@ -4412,10 +4412,10 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entrys) {
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -4465,12 +4465,12 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
-            console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value));
-            console.log('entrys[0].value.value: ' + entrys[0].value.value);
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
         });
@@ -4522,10 +4522,10 @@ try {
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
         query.deviceId('localDeviceId');
-        kvStore.getEntries(query, function (err,entrys) {
+        kvStore.getEntries(query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
     console.log('GetEntries success');
@@ -4578,7 +4578,7 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query).then((entrys) => {
+        kvStore.getEntries(query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
@@ -4633,10 +4633,10 @@ try {
         var query = new distributedData.Query();
         query.deviceId('localDeviceId');
         query.prefixKey("batch_test");
-        kvStore.getEntries('localDeviceId', query, function (err,entrys) {
+        kvStore.getEntries('localDeviceId', query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         })
     });
     console.log('GetEntries success');
@@ -4691,7 +4691,7 @@ try {
         var query = new distributedData.Query();
         query.deviceId('localDeviceId');
         query.prefixKey("batch_test");
-        kvStore.getEntries('localDeviceId', query).then((entrys) => {
+        kvStore.getEntries('localDeviceId', query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
diff --git a/en/application-dev/reference/apis/js-apis-document.md b/en/application-dev/reference/apis/js-apis-document.md
index 458685119e17635f1b5af60e27910808bf8f99d6..3fbdc4f46c5e28f74743575a12f23fc138350f58 100644
--- a/en/application-dev/reference/apis/js-apis-document.md
+++ b/en/application-dev/reference/apis/js-apis-document.md
@@ -14,21 +14,21 @@ import document from '@ohos.document';
 
 choose(types? : string[]): Promise&lt;string&gt;
 
-Chooses a file of the specified type using the file manager. This API uses a promise to return the result.
+Chooses files of the specified types using the file manager. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.FileManagement.UserFileService
 
 **Parameters**
 
-  | Name| Type  | Mandatory| Description                        |
-  | ------ | ------ | ---- | ---------------------------- |
-  | types   | string[] | No  | Type of the file to choose.|
+| Name| Type  | Mandatory| Description                        |
+| ------ | ------ | ---- | ---------------------------- |
+| types   | string[] | No  | Types of the files to choose. |
 
 **Return value**
 
-  | Type                 | Description          |
-  | --------------------- | -------------- |
-  | Promise&lt;string&gt; | Promise used to return the result. An error code is returned.|
+| Type                 | Description          |
+| --------------------- | -------------- |
+| Promise&lt;string&gt; | Promise used to return the result. An error code is returned.|
 
 **Example**
 
@@ -46,9 +46,9 @@ Chooses a file using the file manager. This API uses an asynchronous callback to
 
 **Parameters**
 
-  | Name  | Type                       | Mandatory| Description                        |
-  | -------- | --------------------------- | ---- | ---------------------------- |
-  | callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. An error code is returned.|
+| Name  | Type                       | Mandatory| Description                        |
+| -------- | --------------------------- | ---- | ---------------------------- |
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. An error code is returned.|
 
 **Example**
 
@@ -62,16 +62,16 @@ Chooses a file using the file manager. This API uses an asynchronous callback to
 
 choose(types:string[], callback:AsyncCallback&lt;string&gt;): void
 
-Chooses a file using the file manager. This API uses an asynchronous callback to return the result.
+Chooses files using the file manager. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.FileManagement.UserFileService
 
 **Parameters**
 
-  | Name  | Type                       | Mandatory| Description                        |
-  | -------- | --------------------------- | ---- | ---------------------------- |
-  | types    | string[]                      | No  | Type of the file to choose.|
-  | callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. An error code is returned.|
+| Name  | Type                       | Mandatory| Description                        |
+| -------- | --------------------------- | ---- | ---------------------------- |
+| types    | string[]                      | No  | Types of the files to choose.|
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result. An error code is returned.|
 
 **Example**
 
@@ -93,16 +93,16 @@ Opens a file. This API uses a promise to return the result.
 
 **Parameters**
 
-  | Name| Type  | Mandatory| Description                        |
-  | ---- | ------ | ---- | ---------------------------- |
-  | uri | string | Yes  | URI of the file to open.|
-  | type | string | Yes  | Type of the file to open.|
+| Name| Type  | Mandatory| Description                        |
+| ---- | ------ | ---- | ---------------------------- |
+| uri | string | Yes  | URI of the file to open.|
+| type | string | Yes  | Type of the file to open.|
 
 **Return value**
 
-  | Type                 | Description        |
-  | --------------------- | ------------ |
-  | Promise&lt;void&gt; | Promise used to return the result. An error code is returned.|
+| Type                 | Description        |
+| --------------------- | ------------ |
+| Promise&lt;void&gt; | Promise used to return the result. An error code is returned.|
 
 **Example**
 
@@ -122,11 +122,11 @@ Opens a file. This API uses an asynchronous callback to return the result.
 
 **Parameters**
 
-  | Name  | Type                       | Mandatory| Description                        |
-  | -------- | --------------------------- | ---- | ---------------------------- |
-  | uri | string | Yes  | URI of the file to open.|
-  | type | string | Yes  | Type of the file to open.|
-  | callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. An error code is returned.  |
+| Name  | Type                       | Mandatory| Description                        |
+| -------- | --------------------------- | ---- | ---------------------------- |
+| uri | string | Yes  | URI of the file to open.|
+| type | string | Yes  | Type of the file to open.|
+| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. An error code is returned.  |
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-effectKit.md b/en/application-dev/reference/apis/js-apis-effectKit.md
new file mode 100644
index 0000000000000000000000000000000000000000..089bf96cb239204c4b52c3ce71848f15141d76a4
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-effectKit.md
@@ -0,0 +1,310 @@
+# Image Effect
+
+The **EffectKit** module provides basic image processing capabilities, including brightness adjustment, blurring, grayscale adjustment, and color picker.
+
+This module provides the following classes:
+
+- [Filter](#filter): a class that provides the effect chain.
+- [Color](#color): a class used to store the color picked.
+- [ColorPicker](#colorpicker): a smart color picker.
+
+> **NOTE**
+> 
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+## Modules to Import
+
+```js
+import effectKit from '@ohos.effectKit';
+```
+
+## effectKit.createEffect
+createEffect(source: image.PixelMap): Filter
+
+Creates a **Filter** instance based on the pixel map.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name   | Type              | Mandatory| Description    |
+| ------- | ----------------- | ---- | -------- |
+| source  | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes  | **PixelMap** instance created by the image module.  |
+
+**Return value**
+
+| Type                            | Description          |
+| -------------------------------- | -------------- |
+| [Filter](#filter) | Head node of the filter linked list without any effect. If the operation fails, **null** is returned.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts)
+    .then((pixelMap) => {
+        let headFilter = effectKit.createEffect(pixelMap)
+    })
+```
+
+## effectKit.createColorPicker
+
+createColorPicker(source: image.PixelMap): Promise\<ColorPicker>
+
+Creates a **ColorPicker** instance based on the pixel map. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name    | Type        | Mandatory| Description                      |
+| -------- | ----------- | ---- | -------------------------- |
+| source   | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes  |  **PixelMap** instance created by the image module.|
+
+**Return value**
+
+| Type                  | Description          |
+| ---------------------- | -------------- |
+| Promisse\<[ColorPicker](#colorpicker)>  | Promise used to return the **ColorPicker** instance created.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts, (pixelMap) => {
+    effectKit.createColorPicker(pixelMap).then(colorPicker => {
+            console.info("color picker=" + colorPicker);
+    })
+    .catch(ex => console.error(".error=" + ex.toString()))
+})
+```
+
+## effectKit.createColorPicker
+
+createColorPicker(source: image.PixelMap, callback: AsyncCallback\<ColorPicker>): void
+
+Creates a **ColorPicker** instance based on the pixel map. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name    | Type               | Mandatory| Description                      |
+| -------- | ------------------ | ---- | -------------------------- |
+| source   | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes |**PixelMap** instance created by the image module. |
+| callback | AsyncCallback\<[ColorPicker](#colorpicker)> | Yes | Callback used to return the **ColorPicker** instance created.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts, (pixelMap) => {
+    effectKit.createColorPicker(pixelMap, (error, colorPicker) => {
+        if(error) {
+            console.log('Failed to create color picker.');
+        } else {
+            console.log('Succeeded in creating color picker.');
+        }
+    }) 
+})
+```
+
+## Color
+
+A class that stores the color picked.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+| Name  | Type  | Readable| Writable| Description             |
+| ------ | ----- | ---- | ---- | ---------------- |
+| red   | number | Yes  | No  | Value of the red component.          |
+| green | number | Yes  | No  | Value of the green component.          |
+| blue  | number | Yes  | No  | Value of the blue component.          |
+| alpha | number | Yes  | No  | Value of the alpha component.      |
+
+## ColorPicker
+
+A class used to obtain the main color of an image from its data. Before calling any method of **ColorPicker**, use [createColorPicker](#effectkitcreatecolorpicker) to create a **ColorPicker** instance.
+
+### getMainColor
+
+getMainColor(): Promise\<Color>
+
+Obtains the main color of the image and writes the result to a **[Color](#color)** instance. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type          | Description                                           |
+| :------------- | :---------------------------------------------- |
+| Promise\<[Color](#color)> | Promise used to return the color value of the main color. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+colorPicker.getMainColor().then(color => {
+    console.log('Succeeded in getting main color.')
+    console.info("color[ARGB]=" + color.alpha + "," + color.red + "," + color.green + "," + color.blue);
+}).catch(error => {
+    console.log('Failed to get main color.');
+})
+```
+
+### getMainColorSync
+
+getMainColorSync(): Color
+
+Obtains the main color of the image and writes the result to a **[Color](#color)** instance. This API returns the result in synchronous mode.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type    | Description                                 |
+| :------- | :----------------------------------- |
+| [Color](#color)    | Color value of the main color. If the operation fails, **null** is returned.|
+
+**Example**
+
+```js
+let color = colorPicker.getMainColorSync();
+console.log('get main color =' + color);
+```
+
+## Filter
+
+A class used to add a specified effect to an image. Before calling any method of **Filter**, use [createEffect](#effectkitcreateeffect) to create a **Filter** instance.
+
+### blur
+
+blur(radius: number): Filter
+
+Adds the blur effect to the filter linked list, and returns the head node of the linked list.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type       | Mandatory| Description                                                        |
+| ------ | ----------- | ---- | ------------------------------------------------------------ |
+|  radius   | number | Yes  | Blur radius, in pixels. The blur effect is proportional to the configured value. A larger value indicates a more obvious effect.|
+
+**Return value**
+
+| Type          | Description                                           |
+| :------------- | :---------------------------------------------- |
+| [Filter](#filter) | Head node of the filter linked list.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts)
+    .then((pixelMap) => {
+        let radius = 5;
+        let headFilter = effectKit.createEffect(pixelMap)
+        if (headFilter != null) {
+            headFilter.blur(radius)
+        }
+    })
+```
+
+### brightness
+
+brightness(bright: number): Filter
+
+Adds the brightness effect to the filter linked list, and returns the head node of the linked list.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type       | Mandatory| Description                                                        |
+| ------ | ----------- | ---- | ------------------------------------------------------------ |
+|  bright   | number | Yes  | Brightness value, ranging from 0 to 1. When the value is **0**, the image brightness remains unchanged.|
+
+**Return value**
+
+| Type          | Description                                           |
+| :------------- | :---------------------------------------------- |
+| [Filter](#filter) | Head node of the filter linked list.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts)
+    .then((pixelMap) => {
+        let bright = 0.5;
+        let headFilter = effectKit.createEffect(pixelMap)
+        if (headFilter != null) {
+            headFilter.brightness(bright)
+        }
+    })
+```
+
+### grayscale
+
+grayscale(): Filter
+
+Adds the grayscale effect to the filter linked list, and returns the head node of the linked list.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type          | Description                                           |
+| :------------- | :---------------------------------------------- |
+| [Filter](#filter) | Head node of the filter linked list.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts)
+    .then((pixelMap) => {
+        let headFilter = effectKit.createEffect(pixelMap)
+        if (headFilter != null) {
+            headFilter.grayscale()
+        }
+    })
+```
+
+### getPixelMap
+
+getPixelMap(): image.PixelMap
+
+Obtains **image.PixelMap** of the source image to which the filter linked list is added.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type          | Description                                           |
+| :------------- | :---------------------------------------------- |
+| [image.PixelMap](js-apis-image.md#pixelmap7) | **image.PixelMap** of the source image.|
+
+**Example**
+
+```js
+import image from "@ohos.multimedia.image"
+const color = new ArrayBuffer(96);
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts)
+    .then((pixelMap) => {
+        let pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap()
+    })
+```
diff --git a/en/application-dev/reference/apis/js-apis-environment.md b/en/application-dev/reference/apis/js-apis-environment.md
index 942e514367c923db4d7aa270218e39ae82f65aa0..d023cdc8403d028ff250d3ea7afa82858d6ad5b8 100644
--- a/en/application-dev/reference/apis/js-apis-environment.md
+++ b/en/application-dev/reference/apis/js-apis-environment.md
@@ -1,12 +1,12 @@
 # Environment
 
+This module provides JS APIs for obtaining the root directories of the storage and public files.
+
 > **NOTE**
 >
 > - The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 > - The APIs of this module are system APIs and cannot be called by third-party applications.
 
-This module provides JS APIs for obtaining the root directories of the storage and public files.
-
 ## Modules to Import
 
 ```js
diff --git a/en/application-dev/reference/apis/js-apis-eventhub.md b/en/application-dev/reference/apis/js-apis-eventhub.md
index a5a25efdbab5c977e92b85a5fcc656f5c3ae3ef7..ca1b1500dcb8836b73abd13e837a0255a78a3a5f 100644
--- a/en/application-dev/reference/apis/js-apis-eventhub.md
+++ b/en/application-dev/reference/apis/js-apis-eventhub.md
@@ -1,18 +1,12 @@
 # EventHub
 
+The **EventHub** module provides APIs to subscribe to, unsubscribe from, and trigger events.
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Implements event subscription, unsubscription, and triggering.
-
-## Modules to Import
-
-```js
-import Ability from '@ohos.application.Ability'
-```
-
 ## Usage
 
 ​Before using any APIs in the **EventHub**, you must obtain an **EventHub** instance through the member variable **context** of the **Ability** instance.
diff --git a/en/application-dev/reference/apis/js-apis-extension-context.md b/en/application-dev/reference/apis/js-apis-extension-context.md
index 24ca2bb2e99bd5b308aea4683a9242c998417e78..7d7b21f2cb04fbb7c0cb9d9a3581e09813cd00ef 100644
--- a/en/application-dev/reference/apis/js-apis-extension-context.md
+++ b/en/application-dev/reference/apis/js-apis-extension-context.md
@@ -1,22 +1,20 @@
 # ExtensionContext
 
+The **ExtensionContext** module, inherited from **Context**, implements the context for Extension abilities.
+
+This module allows access to Extension abilities.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Implements the extension context. This module is inherited from **Context**.
-
-## Modules to Import
-
-```js
-import DataShareExtensionAbility from '@ohos.application.DataShareExtensionAbility';
-```
 ## Attributes
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
-| Name| Type| Readable| Writable| Description|
+| Name| Type| Readable| Writable| Description| 
 | -------- | -------- | -------- | -------- | -------- |
-| currentHapModuleInfo | HapModuleInfo | Yes| No| Information about the current HAP. |
+| currentHapModuleInfo | HapModuleInfo | Yes| No| Information about the current HAP. | 
 | config   | Configuration | Yes| No| Module configuration information.|
+| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md) | Yes| No| Extension ability information.|
diff --git a/en/application-dev/reference/apis/js-apis-extensionrunninginfo.md b/en/application-dev/reference/apis/js-apis-extensionrunninginfo.md
index 62f6d9b631aa687e61fc6a1b4fe26fb72f16f105..66b794234a41c9e57977946adbf02a9f35182b60 100644
--- a/en/application-dev/reference/apis/js-apis-extensionrunninginfo.md
+++ b/en/application-dev/reference/apis/js-apis-extensionrunninginfo.md
@@ -1,20 +1,15 @@
 # ExtensionRunningInfo
 
+The **ExtensionRunningInfo** module provides running information and states for Extension abilities.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
-Provides extension running information.
-
-## Modules to Import
-
-```js
-import abilitymanager from '@ohos.application.abilityManager';
-```
+> The APIs of this module are system APIs and cannot be called by third-party applications.
 
 ## Usage
 
-The extension running information is obtained through an **abilityManager** instance.
+The Extension ability running information is obtained through an **abilityManager** instance.
 
 ```js
 import abilitymanager from '@ohos.application.abilityManager';
@@ -24,37 +19,16 @@ abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => {
 });
 ```
 
-
-### Attributes
+## Attributes
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
 | Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| extension | ElementName | Yes| No| Information that matches an extension.|
+| extension | ElementName | Yes| No| Information that matches an Extension ability.|
 | pid | number | Yes| No| Process ID.|
 | uid | number | Yes| No| User ID.|
 | processName | string | Yes| No| Process name.|
-| startTime | number | Yes| No| Extension start time.|
+| startTime | number | Yes| No| Start time of the Extension ability.|
 | clientPackage | Array&lt;String&gt; | Yes| No| Names of all packages in the process.|
-| type | [bundle.ExtensionAbilityType](#bundleextensionabilitytype) | Yes| No| Extension type.|
-
-
-## bundle.ExtensionAbilityType
-
-Enumerates extension types.
-
-**System capability**: SystemCapability.BundleManager.BundleFramework
-
-  | Name| Value| Description| 
-| -------- | -------- | -------- |
-| FORM | 0 | Extension information of the form type.< | 
-| WORK_SCHEDULER | 1 | Extension information of the work scheduler type.< | 
-| INPUT_METHOD | 2 | Extension information of the input method type.< | 
-| SERVICE | 3 | Extension information of the service type.< | 
-| ACCESSIBILITY | 4 | Extension information of the accessibility type.< | 
-| DATA_SHARE | 5 | Extension information of the data share type.< | 
-| FILE_SHARE | 6 | Extension information of the file share type.< | 
-| STATIC_SUBSCRIBER | 7 | Extension information of the static subscriber type.< | 
-| WALLPAPER | 8 | Extension information of the wallpaper type.< | 
-| UNSPECIFIED | 9 | Extension information of the unspecified type.< | 
+| type | [bundle.ExtensionAbilityType](js-apis-Bundle.md#extensionabilitytype9) | Yes| No| Extension ability type.|
diff --git a/en/application-dev/reference/apis/js-apis-featureAbility.md b/en/application-dev/reference/apis/js-apis-featureAbility.md
index 4c15fefc458a174ee0477d23b77aa9796f2bb051..93941ea52e332de2f3306673c20c74ef176cb808 100644
--- a/en/application-dev/reference/apis/js-apis-featureAbility.md
+++ b/en/application-dev/reference/apis/js-apis-featureAbility.md
@@ -1,5 +1,7 @@
 # FeatureAbility
 
+The **FeatureAbility** module provides a UI for interacting with users. You can use APIs of this module to start a new ability, obtain the **dataAbilityHelper**, set a Page ability, obtain the window corresponding to this ability, and connecting to a Service ability.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
@@ -19,7 +21,7 @@ import featureAbility from '@ohos.ability.featureAbility'
 
 startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>): void
 
-Starts an ability. This API uses a callback to return the result.
+Starts an ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -127,7 +129,7 @@ featureAbility.acquireDataAbilityHelper(
 
 startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>): void
 
-Starts an ability. This API uses a callback to return the execution result when the ability is destroyed.
+Starts an ability. This API uses an asynchronous callback to return the execution result when the ability is destroyed.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -214,7 +216,6 @@ featureAbility.startAbilityForResult(
                 mykey7: true,
             },
         },
-        requestCode: 2,
     },
 ).then((data) => {
     console.info("==========================>startAbilityForResult=======================>");
@@ -225,7 +226,7 @@ featureAbility.startAbilityForResult(
 
 terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>): void
 
-Destroys this Page ability, with the result code and data sent to the caller. This API uses a callback to return the result.
+Destroys this Page ability, with the result code and data sent to the caller. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -326,13 +327,11 @@ featureAbility.terminateSelfWithResult(
 });
 ```
 
-
-
 ## featureAbility.hasWindowFocus<sup>7+<sup>
 
 hasWindowFocus(callback: AsyncCallback\<boolean>): void
 
-Checks whether the main window of this ability has the focus. This API uses a callback to return the result.
+Checks whether the main window of this ability has the focus. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -349,8 +348,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.hasWindowFocus()
 ```
 
-
-
 ## featureAbility.hasWindowFocus<sup>7+<sup>
 
 hasWindowFocus(): Promise\<boolean>
@@ -368,19 +365,17 @@ Checks whether the main window of this ability has the focus. This API uses a pr
 **Example**
 
 ```javascript
-import featureAbility from '@ohos.ability.featureability';
+import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.hasWindowFocus().then((data) => {
     console.info("==========================>hasWindowFocus=======================>");
 });
 ```
 
-
-
 ## featureAbility.getWant
 
 getWant(callback: AsyncCallback\<Want>): void
 
-Obtains the **Want** object sent from this ability. This API uses a callback to return the result.
+Obtains the **Want** object sent from this ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -397,8 +392,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.getWant()
 ```
 
-
-
 ## featureAbility.getWant
 
 getWant(): Promise\<Want>
@@ -444,13 +437,11 @@ var context = featureAbility.getContext()
 context.getBundleName()
 ```
 
-
-
 ## featureAbility.terminateSelf<sup>7+</sup>
 
 terminateSelf(callback: AsyncCallback\<void>): void
 
-Destroys this Page ability, with the result code and data sent to the caller. This API uses a callback to return the result.
+Destroys this Page ability, with the result code and data sent to the caller. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -467,8 +458,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.terminateSelf()
 ```
 
-
-
 ## featureAbility.terminateSelf<sup>7+</sup>
 
 terminateSelf(): Promise\<void>
@@ -496,7 +485,7 @@ featureAbility.terminateSelf().then((data) => {
 
 connectAbility(request: Want, options:ConnectOptions): number
 
-Connects this ability to a specific Service ability. This API uses a callback to return the result.
+Connects this ability to a specific Service ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -505,17 +494,9 @@ Connects this ability to a specific Service ability. This API uses a callback to
 | Name     | Type            | Mandatory  | Description                   |
 | ------- | -------------- | ---- | --------------------- |
 | request | [Want](js-apis-application-Want.md)  | Yes   | Service ability to connect.|
-| options | ConnectOptions | Yes   | Callback used to return the result.            |
+| options | [ConnectOptions](#connectoptions) | Yes   | Callback used to return the result.            |
 
-Want
-
-**System capability**: SystemCapability.Ability.AbilityBase
-
-| Name         | Readable/Writable| Type    | Mandatory  | Description                                      |
-| ----------- | ---- | ------ | ---- | ---------------------------------------- |
-| deviceId    | Read-only  | string | No   | Device ID of the Service ability to connect. The default value is the local device ID.|
-| bundleName  | Read-only  | string | Yes   | Bundle name of the Service ability to connect.                |
-| abilityName | Read-only  | string | Yes   | Class name of the Service ability to connect.                |
+## ConnectOptions
 
 ConnectOptions
 
@@ -523,9 +504,9 @@ ConnectOptions
 
 | Name          | Readable/Writable| Type      | Mandatory  | Description                       |
 | ------------ | ---- | -------- | ---- | ------------------------- |
-| onConnect    | Read-only  | function | Yes   | Callback invoked when the connection is successful.              |
-| onDisconnect | Read-only  | function | Yes   | Callback invoked when the connection fails.              |
-| onFailed     | Read-only  | function | Yes   | Callback invoked when **connectAbility** fails to be called.|
+| onConnect<sup>7+</sup>    | Read-only  | function | Yes   | Callback invoked when the connection is successful.              |
+| onDisconnect<sup>7+</sup> | Read-only  | function | Yes   | Callback invoked when the connection fails.              |
+| onFailed<sup>7+</sup>     | Read-only  | function | Yes   | Callback invoked when **connectAbility** fails to be called.|
 
 **Return value**
 
@@ -565,7 +546,7 @@ var connId = featureAbility.connectAbility(
 
 disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
 
-Disconnects this ability from a specific Service ability. This API uses a callback to return the result.
+Disconnects this ability from a specific Service ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -654,8 +635,10 @@ var connId = featureAbility.connectAbility(
     },
 );
 
-featureAbility.disconnectAbility(connId).then((error,data) => {
-    console.log('featureAbilityTest result errCode : ' + error.code + " data: " + data);
+featureAbility.disconnectAbility(connId).then((data) => {
+    console.log('data : '  + data);
+}).catch((error)=>{
+    console.log('featureAbilityTest result errCode : ' + error.code);
 });
 ```
 
@@ -664,7 +647,7 @@ featureAbility.disconnectAbility(connId).then((error,data) => {
 
 getWindow(callback: AsyncCallback\<window.Window>): void
 
-Obtains the window corresponding to this ability. This API uses a callback to return the result.
+Obtains the window corresponding to this ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
@@ -914,7 +897,7 @@ Enumerates operation types of the Data ability.
 
 ## StartAbilityParameter
 
-**System capability**: SystemCapability.AbilityRuntime.FAModel
+**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
 
 | Name                 | Readable/Writable| Type                  | Mandatory  | Description                                    |
 | ------------------- | ---- | -------------------- | ---- | -------------------------------------- |
@@ -925,7 +908,7 @@ Enumerates operation types of the Data ability.
 
 **System capability**: SystemCapability.Ability.AbilityBase
 
-| Name                                  | Value       | Description                                      |
+| Name                                  | Name        | Description                                      |
 | ------------------------------------ | ---------- | ---------------------------------------- |
 | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | Indicates the permission to read the URI.                        |
 | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | Indicates the permission to write the URI.                        |
@@ -933,10 +916,10 @@ Enumerates operation types of the Data ability.
 | FLAG_ABILITY_CONTINUATION            | 0x00000008 | Indicates whether the ability on the local device can be migrated to a remote device.                 |
 | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | Indicates that a component does not belong to OHOS.                           |
 | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | Indicates whether to enable an ability.                             |
-| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.                         |
-| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | Indicates the permission to verify URIs by prefix matching.                       |
+| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.<br>**System API**: This is a system API and cannot be called by third-party applications.                         |
+| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | Indicates the permission to verify URIs by prefix matching.<br>**System API**: This is a system API and cannot be called by third-party applications.                       |
 | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | Supports cross-device startup in a distributed scheduler.                       |
-| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started.          |
+| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started.<br>**System API**: This is a system API and cannot be called by third-party applications.          |
 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that the migration is reversible.                              |
 | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | Indicates that the specific ability will be installed if it has not been installed.                      |
 | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | Indicates that the specific ability will be installed in the background if it has not been installed.                      |
diff --git a/en/application-dev/reference/apis/js-apis-fileio.md b/en/application-dev/reference/apis/js-apis-fileio.md
index 133276e077b78d22fb2c06222ba067611f9ee3c7..6e970785345a27be2c2c4d1051f87c13c4d8533f 100644
--- a/en/application-dev/reference/apis/js-apis-fileio.md
+++ b/en/application-dev/reference/apis/js-apis-fileio.md
@@ -16,6 +16,7 @@ import fileio from '@ohos.fileio';
 ## Guidelines
 
 Before using the APIs provided by this module to perform operations on files or directories, obtain the path of the application sandbox as follows:
+
  ```js
  import featureAbility from '@ohos.ability.featureAbility';
  let context = featureAbility.getContext();
@@ -353,58 +354,11 @@ Synchronously closes a file.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.closeSync(fd);
   ```
 
 
-## fileio.close<sup>7+</sup>
-
-close(): Promise&lt;void&gt;
-
-Closes the stream. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.FileManagement.File.FileIO
-
-**Return value**
-
-  | Type                 | Description                          |
-  | ------------------- | ---------------------------- |
-  | Promise&lt;void&gt; | Promise that returns no value.|
-
-**Example**
-
-  ```js
-  fileio.close().then(function(){
-      console.info("File stream closed");
-  }).catch(function(err){
-      console.info("Failed to close the file stream. Error:"+ err);
-  });
-  ```
-
-
-## fileio.close<sup>7+</sup>
-
-close(callback: AsyncCallback&lt;void&gt;): void
-
-Closes the stream. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.FileManagement.File.FileIO
-
-**Parameters**
-
-  | Name     | Type                       | Mandatory  | Description           |
-  | -------- | ------------------------- | ---- | ------------- |
-  | callback | AsyncCallback&lt;void&gt; | Yes   | Callback invoked when the stream is closed asynchronously.|
-
-**Example**
-
-  ```js
-  fileio.close(function(err){
-      // Do something.
-  });
-  ```
-
-
 ## fileio.copyFile
 
 copyFile(src:string | number, dest:string | number, mode?:number):Promise&lt;void&gt;
@@ -430,6 +384,8 @@ Copies a file. This API uses a promise to return the result.
 **Example**
 
   ```js
+  let src = path;
+  let dest = src + 'tgt';
   fileio.copyFile(src, dest).then(function(){
       console.info("File copied");
   }).catch(function(err){
@@ -458,6 +414,8 @@ Copies a file. This API uses an asynchronous callback to return the result.
 **Example**
 
   ```js
+  let src = path;
+  let dest = src + 'tgt';
   fileio.copyFile(src, dest, function (err) {
       // Do something.
   });
@@ -483,6 +441,8 @@ Synchronously copies a file.
 **Example**
 
   ```js
+  let src = path;
+  let dest = src + 'tgt';
   fileio.copyFileSync(src, dest);
   ```
 
@@ -957,7 +917,7 @@ Writes data into a file. This API uses a promise to return the result.
   ```js
   let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
   fileio.write(fd, "hello, world").then(function(number){
-       console.info("Data written to file and size is:"+ number);
+       console.info("Data written to the file. Size is:"+ number);
   }).catch(function(err){
       console.info("Failed to write data to the file. Error:"+ err);
   });
@@ -992,7 +952,7 @@ Writes data into a file. This API uses an asynchronous callback to return the re
   let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
   fileio.write(fd, "hello, world", function (err, bytesWritten) {
       if (bytesWritten) {
-         console.info("Data written to file and size is:"+ bytesWritten);
+         console.info("Data written to the file. Size is:"+ bytesWritten);
       }
   });
   ```
@@ -1059,7 +1019,7 @@ Calculates the hash value of a file. This API uses a promise to return the resul
   ```js
   fileio.hash(path, "sha256").then(function(str){
       console.info("Calculated file hash:"+ str);
-  }).catch(function(error){
+  }).catch(function(err){
       console.info("Failed to calculate the file hash. Error:"+ err);
   });
   ```
@@ -1116,7 +1076,7 @@ Changes file permissions. This API uses a promise to return the result.
 **Example**
 
   ```js
-  fileio.chmod(path, mode).then(function() {
+  fileio.chmod(path, 0o700).then(function() {
       console.info("File permissions changed");
   }).catch(function(err){
       console.info("Failed to change file permissions. Error:"+ err);
@@ -1143,7 +1103,7 @@ Changes file permissions. This API uses an asynchronous callback to return the r
 **Example**
 
   ```js
-  fileio.chmod(path, mode, function (err) {
+  fileio.chmod(path, 0o700, function (err) {
       // Do something.
   });
   ```
@@ -1167,7 +1127,7 @@ Synchronously changes file permissions.
 **Example**
 
   ```js
-  fileio.chmodSync(path, mode);
+  fileio.chmodSync(path, 0o700);
   ```
 
 
@@ -1194,10 +1154,11 @@ Obtains file information based on the file descriptor. This API uses a promise t
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fstat(fd).then(function(stat){
-      console.info("File information obtained:"+ JSON.stringify(stat));
+      console.info("Obtained file info:"+ JSON.stringify(stat));
   }).catch(function(err){
-      console.info("Failed to obtain file information. Error:"+ err);
+      console.info("Failed to obtain file info. Error:"+ err);
   });
   ```
 
@@ -1307,7 +1268,9 @@ Truncates a file based on the file descriptor. This API uses an asynchronous cal
 **Example**
 
   ```js
-  fileio.ftruncate(fd, len, function(err){
+  let fd = fileio.openSync(path);
+  let len = 5;
+  fileio.ftruncate(fd, 5, function(err){
       // Do something.
   });
   ```
@@ -1331,6 +1294,8 @@ Synchronously truncates a file based on the file descriptor.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
+  let len = 5;
   fileio.ftruncateSync(fd, len);
   ```
 
@@ -1347,7 +1312,7 @@ Truncates a file based on the file path. This API uses a promise to return the r
 
 | Name| Type  | Mandatory| Description                            |
 | ------ | ------ | ---- | -------------------------------- |
-| path   | string | Yes  | Application sandbox path of the file to truncate.      |
+| path   | string | Yes  | Application sandbox path of the file to truncate.|
 | len    | number | No  | File length, in bytes, after truncation.|
 
 **Return value**
@@ -1359,6 +1324,7 @@ Truncates a file based on the file path. This API uses a promise to return the r
 **Example**
 
   ```js
+  let len = 5;
   fileio.truncate(path, len).then(function(){
       console.info("File truncated");
   }).catch(function(err){
@@ -1386,6 +1352,7 @@ Truncates a file based on the file path. This API uses an asynchronous callback
 **Example**
 
   ```js
+  let len = 5;
   fileio.truncate(path, len, function(err){
       // Do something.
   });
@@ -1410,6 +1377,7 @@ Synchronously truncates a file based on the file path.
 **Example**
 
   ```js
+  let len = 5;
   fileio.truncateSync(path, len);
   ```
 
@@ -1443,9 +1411,9 @@ Reads the text content of a file. This API uses a promise to return the result.
 
   ```js
   fileio.readText(path).then(function(str) {
-      console.info("Read file text:"+ str);
+      console.info("Read text:"+ str);
   }).catch(function(err){
-      console.info("Failed to read text. Error:"+ err);
+      console.info("Failed to read the text. Error:"+ err);
   });
   ```
 
@@ -1467,13 +1435,13 @@ Reads the text content of a file. This API uses an asynchronous callback to retu
 | Name  | Type                       | Mandatory| Description                                                        |
 | -------- | --------------------------- | ---- | ------------------------------------------------------------ |
 | filePath | string                      | Yes  | Application sandbox path of the file to read.                                  |
-| options  | Object                      | No  | The options are as follows:<br>-&nbsp;**position** (number): position of the data to read in the file. By default, data is read from the current position.<br>-&nbsp;**length** (number): length of the data to read. The default value is the buffer length minus the offset.<br>- &nbsp;**encoding**: format of the string to be encoded. The default value is &nbsp;**utf-8**, which is the only value supported.|
+| options  | Object                      | Yes  | The options are as follows:<br>-&nbsp;**position** (number): position of the data to read in the file. By default, data is read from the current position.<br>-&nbsp;**length** (number): length of the data to read. The default value is the buffer length minus the offset.<br>- &nbsp;**encoding**: format of the string to be encoded. The default value is &nbsp;**utf-8**, which is the only value supported.|
 | callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the content read.                        |
 
 **Example**
 
   ```js
-  fileio.readText(path, function(err, str){
+  fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){
       // Do something.
   });
   ```
@@ -1537,7 +1505,7 @@ Obtains link information. This API uses a promise to return the result.
   fileio.lstat(path).then(function(stat){
       console.info("Got link info:"+ JSON.stringify(stat));
   }).catch(function(err){
-      console.info("Failed to obtain the link status. Error:"+ err);
+      console.info("Failed to obtain link info. Error:"+ err);
   });
   ```
 
@@ -1593,76 +1561,6 @@ Synchronously obtains the link information.
   ```
 
 
-## fileio.read<sup>7+</sup>
-
-read(buffer: ArrayBuffer, options?: {
-    position?: number;
-    offset?: number;
-    length?: number;
-}): Promise&lt;ReadOut&gt;
-
-Reads data from a file. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.FileManagement.File.FileIO
-
-**Parameters**
-
-  | Name | Type       | Mandatory| Description                                                        |
-  | ------- | ----------- | ---- | ------------------------------------------------------------ |
-  | buffer  | ArrayBuffer | Yes  | Buffer used to store the file data read.                          |
-  | options | Object      | No  | The options are as follows:<br>-&nbsp;**offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.<br>-&nbsp;**length** (number): length of the data to read. The default value is the buffer length minus the offset.<br>Constraints: offset + length <= Buffer size|
-
-**Return value**
-
-  | Type                                | Description    |
-  | ---------------------------------- | ------ |
-  | Promise&lt;[ReadOut](#readout)&gt; | Promise used to return the data read.|
-
-**Example**
-
-  ```js
-  fileio.read(new ArrayBuffer(4096)).then(function(readout){
-      console.info("Read file data");
-      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
-  }).catch(function(err){
-      console.info("Failed to read file data. Error:"+ err);
-  });
-  ```
-
-
-## fileio.read<sup>7+</sup>
-
-read(buffer: ArrayBuffer, options: {
-    position?: number;
-    offset?: number;
-    length?: number;
-}, callback: AsyncCallback&lt;ReadOut&gt;): void
-
-Reads data from a file. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.FileManagement.File.FileIO
-
-**Parameters**
-
-  | Name     | Type                                      | Mandatory  | Description                                      |
-  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
-  | buffer   | ArrayBuffer                              | Yes   | Buffer used to store the file data read.                       |
-  | options  | Object                                   | No   | The options are as follows:<br>-&nbsp;**offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.<br>-&nbsp;**length** (number): length of the data to read. The default value is the buffer length minus the offset.<br>Constraints: offset + length <= Buffer size|
-  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | Yes   | Callback invoked when the data is read asynchronously from the file.                         |
-
-**Example**
-
-  ```js
-  let buf = new ArrayBuffer(4096);
-  fileio.read(buf, function (err, readOut) {
-      if (readOut) {
-          console.info("Read file data");
-          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
-      }
-  });
-  ```
-
-
 ## fileio.rename<sup>7+</sup>
 
 rename(oldPath: string, newPath: string): Promise&lt;void&gt;
@@ -1687,6 +1585,8 @@ Renames a file. This API uses a promise to return the result.
 **Example**
 
   ```js
+  let oldPath = path;
+  let newPath = oldPath + '123';
   fileio.rename(oldPath, newPath).then(function() {
       console.info("File renamed");
   }).catch(function(err){
@@ -1714,6 +1614,8 @@ Renames a file. This API uses an asynchronous callback to return the result.
 **Example**
 
   ```js
+  let oldPath = path;
+  let newPath = oldPath + '123';
   fileio.rename(oldPath, newPath, function(err){
   });
   ```
@@ -1737,6 +1639,8 @@ Synchronously renames a file.
 **Example**
 
   ```js
+  let oldPath = path;
+  let newPath = oldPath + '123';
   fileio.renameSync(oldPath, newPath);
   ```
 
@@ -1764,6 +1668,7 @@ Flushes data of a file to disk. This API uses a promise to return the result.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fsync(fd).then(function(){
       console.info("Data flushed");
   }).catch(function(err){
@@ -1790,6 +1695,7 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fsync(fd, function(err){
       // Do something.
   });
@@ -1813,6 +1719,7 @@ Flushes data of a file to disk in synchronous mode.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fsyncSync(fd);
   ```
 
@@ -1840,6 +1747,7 @@ Flushes data of a file to disk. This API uses a promise to return the result. **
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fdatasync(fd).then(function(err) {
       console.info("Data flushed");
   }).catch(function(err){
@@ -1866,6 +1774,7 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   fileio.fdatasync (fd, function (err) {
       // Do something.
   });
@@ -1889,6 +1798,7 @@ Synchronizes data in a file in synchronous mode.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   let stat = fileio.fdatasyncSync(fd);
   ```
 
@@ -1917,6 +1827,8 @@ Creates a symbolic link based on the file path. This API uses a promise to retur
 **Example**
 
   ```js
+  let target = path;
+  let srcPath = target + 'aaa';
   fileio.symlink(target, srcPath).then(function() {
       console.info("Symbolic link created");
   }).catch(function(err){
@@ -1944,6 +1856,8 @@ Creates a symbolic link based on the file path. This API uses an asynchronous ca
 **Example**
 
   ```js
+  let target = path;
+  let srcPath = target + 'aaa';
   fileio.symlink(target, srcPath, function (err) {
       // Do something.
   });
@@ -1968,6 +1882,8 @@ Synchronously creates a symbolic link based on a specified path.
 **Example**
 
   ```js
+  let target = path;
+  let srcPath = target + 'aaa';
   fileio.symlinkSync(target, srcPath);
   ```
 
@@ -2083,7 +1999,7 @@ Creates a temporary directory. This API uses a promise to return the result.
   fileio.mkdtemp(path + "XXXX").then(function(path){
       console.info("Temporary directory created:"+ path);
   }).catch(function(err){
-      console.info("Failed to create a temporary directory. Error:"+ err);
+      console.info("Failed to create the temporary directory. Error:"+ err);
   });
   ```
 
@@ -2163,6 +2079,8 @@ Changes file permissions based on the file descriptor. This API uses a promise t
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
+  let mode = 0o700;
   fileio.fchmod(fd, mode).then(function() {
       console.info("File permissions changed");
   }).catch(function(err){
@@ -2190,6 +2108,8 @@ Changes file permissions based on the file descriptor. This API uses an asynchro
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
+  let mode = 0o700;
   fileio.fchmod(fd, mode, function (err) {
       // Do something.
   });
@@ -2214,6 +2134,8 @@ Synchronously changes the file permissions based on the file descriptor.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
+  let mode = 0o700;
    fileio.fchmodSync(fd, mode);
   ```
 
@@ -2416,6 +2338,7 @@ Changes the file owner based on the file descriptor. This API uses a promise to
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   let stat = fileio.statSync(path);
   fileio.fchown(fd, stat.uid, stat.gid).then(function() {
       console.info("File owner changed");
@@ -2445,6 +2368,7 @@ Changes the file owner based on the file descriptor. This API uses an asynchrono
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   let stat = fileio.statSync(path);
   fileio.fchown(fd, stat.uid, stat.gid, function (err){
       // Do something.
@@ -2471,6 +2395,7 @@ Synchronously changes the file owner based on the file descriptor.
 **Example**
 
   ```js
+  let fd = fileio.openSync(path);
   let stat = fileio.statSync(path);
   fileio.fchownSync(fd, stat.uid, stat.gid);
   ```
@@ -2854,7 +2779,7 @@ Closes the stream. This API uses a promise to return the result.
   ```js
   let ss= fileio.createStreamSync(path, "r+");
   ss.close().then(function(){
-      console.info("Stream closed");
+      console.info("File stream closed");
   }).catch(function(err){
       console.info("Failed to close the file stream. Error:"+ err);
   });
@@ -3102,7 +3027,7 @@ Reads data from the stream. This API uses a promise to return the result.
 
   ```js
   let ss = fileio.createStreamSync(path, "r+");
-  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readout){
+  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
       console.info("Read data successfully");
       console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
   }).catch(function(err){
@@ -3179,7 +3104,7 @@ Synchronously reads data from the stream.
 
 ## Dir
 
-Manages directories. Before calling a method of the **Dir** class, use the [opendir()](#fileioopendir) method synchronously or asynchronously to create a **Dir** instance.
+Manages directories. Before calling a method of the **Dir** class, use the **opendir()** method synchronously or asynchronously to create a **Dir** instance.
 
 
 ### read
@@ -3449,7 +3374,7 @@ Checks whether a directory entry is a socket.
 **Example**
 
   ```js
-  let dir = fileio.opendirSync(dpath);
+  let dir = fileio.opendirSync(path);
   let isSocket = dir.readSync().isSocket(); 
   ```
 
diff --git a/en/application-dev/reference/apis/js-apis-formInfo.md b/en/application-dev/reference/apis/js-apis-formInfo.md
index 502a8212f54e8cdefa381a8b862f1148e2f73b11..15e434ce7b5e6e29d67749b6d12a1069fb258c75 100644
--- a/en/application-dev/reference/apis/js-apis-formInfo.md
+++ b/en/application-dev/reference/apis/js-apis-formInfo.md
@@ -1,11 +1,11 @@
 # FormInfo
 
+The **FormInfo** module provides widget information and state.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides widget information.
-
 ## Modules to Import
 
 ```
@@ -14,15 +14,13 @@ import formInfo from '@ohos.application.formInfo';
 
 ## Required Permissions
 
-None.
+None
 
 ## FormInfo
 
 Describes widget information.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Readable/Writable| Type                | Description                                                        |
 | ----------- | -------- | -------------------- | ------------------------------------------------------------ |
@@ -43,15 +41,13 @@ SystemCapability.Ability.Form
 | updateDuration        | Read only    | string             | Widget update period.|
 | defaultDimension  | Read only    | number | Default dimension of the widget.                                      |
 | supportDimensions    | Read only    | Array&lt;number&gt;      | Dimensions supported by the widget.                |
-| customizeData    | Read only    | {[key: string]: [value: string]}      | Custom data of the widget.         |
+| customizeData    | Read only    | {[key: string]: [value: string]}      | Custom data of the widget.        |
 
 ## FormType
 
 Enumerates the widget types.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Value  | Description        |
 | ----------- | ---- | ------------ |
@@ -61,13 +57,11 @@ SystemCapability.Ability.Form
 
 Enumerates the color modes supported by the widget.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Value  | Description        |
 | ----------- | ---- | ------------ |
-| MODE_AUTO   | -1    | Automatic mode.  |
+| MODE_AUTO   | -1    | Auto mode.  |
 | MODE_DARK    | 0   | Dark mode.  |
 | MODE_LIGHT     | 1   | Light mode.  |
 
@@ -75,22 +69,18 @@ SystemCapability.Ability.Form
 
 Describes the widget state information.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Readable/Writable| Type                | Description                                                        |
 | ----------- | -------- | -------------------- | ------------------------------------------------------------ |
-| formState  | Read only    | [FormState](#formstate)               | Widget state.                          |
+| formState  | Read only    | [FormState](#formstate)               | Widget state.                         |
 | want  | Read only    | Want               | Want text.   |
 
 ##  FormState
 
 Enumerates the widget states.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Value  | Description        |
 | ----------- | ---- | ------------ |
@@ -102,13 +92,11 @@ SystemCapability.Ability.Form
 
 Enumerates the widget parameters.
 
-**System capability**
-
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
 
 | Name       | Value  | Description        |
 | ----------- | ---- | ------------ |
-| IDENTITY_KEY     | "ohos.extra.param.key.form_identity"    | ID of a widget.  |
+| IDENTITY_KEY     | "ohos.extra.param.key.form_identity"    | ID of a widget.<br>**System API**: This is a system API and cannot be called by third-party applications.  |
 | DIMENSION_KEY      | "ohos.extra.param.key.form_dimension"  | Widget dimension.  |
 | NAME_KEY       | "ohos.extra.param.key.form_name"   | Widget name.  |
 | MODULE_NAME_KEY        | "ohos.extra.param.key.module_name"   | Name of the module to which the widget belongs.  |
diff --git a/en/application-dev/reference/apis/js-apis-formbindingdata.md b/en/application-dev/reference/apis/js-apis-formbindingdata.md
index 622f78b73e55afbe4fdcf8b342597b3ba44edeeb..612b2dc84f23f465a844d73656954bc983c5a233 100644
--- a/en/application-dev/reference/apis/js-apis-formbindingdata.md
+++ b/en/application-dev/reference/apis/js-apis-formbindingdata.md
@@ -1,5 +1,7 @@
 # FormBindingData
 
+The **FormBindingData** module provides APIs for widget data binding. You can use the APIs to create a **FormBindingData** object and obtain related information.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -26,7 +28,7 @@ Creates a **FormBindingData** object.
 
 | Name| Type          | Mandatory| Description                                                        |
 | ------ | -------------- | ---- | ------------------------------------------------------------ |
-| obj    | Object or string| No  | Data to be displayed on the JS service widget. The value can be an object containing multiple key-value pairs or a string in JSON format. The image data is identified by "formImages", and the content is multiple key-value pairs, each of which consists of an image identifier and image file descriptor. The final format is {"formImages": {"key1": fd1, "key2": fd2}}.|
+| obj    | Object or string| No  | Data to be displayed on the JS widget. The value can be an object containing multiple key-value pairs or a string in JSON format. The image data is identified by "formImages", and the content is multiple key-value pairs, each of which consists of an image identifier and image file descriptor. The final format is {"formImages": {"key1": fd1, "key2": fd2}}.|
 
 
 **Return value**
@@ -63,4 +65,4 @@ Describes a **FormBindingData** object.
 
 | Name| Readable| Writable| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- | -------- | -------- |
-| data | Yes| No| Object | Yes| Data to be displayed on the JS service widget. The value can be an object containing multiple key-value pairs or a string in JSON format.|
+| data | Yes| No| Object | Yes| Data to be displayed on the JS widget. The value can be an object containing multiple key-value pairs or a string in JSON format.|
diff --git a/en/application-dev/reference/apis/js-apis-formerror.md b/en/application-dev/reference/apis/js-apis-formerror.md
index 62e062c25eab28cfa018f4971da3e5317db7d448..b5868572cb1d74e528b029609da121a4db0b3ca6 100644
--- a/en/application-dev/reference/apis/js-apis-formerror.md
+++ b/en/application-dev/reference/apis/js-apis-formerror.md
@@ -1,11 +1,11 @@
 # FormError
 
+The **FormError** module provides error codes for widgets.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides widget-related error codes.
-
 ## Modules to Import
 
 ```
diff --git a/en/application-dev/reference/apis/js-apis-formextension.md b/en/application-dev/reference/apis/js-apis-formextension.md
index cd6b0eaff6f6f35da2f2899efe36312943ee66d8..daea33dbb50edf3aec50c84eee9795339bd9c43a 100644
--- a/en/application-dev/reference/apis/js-apis-formextension.md
+++ b/en/application-dev/reference/apis/js-apis-formextension.md
@@ -1,12 +1,12 @@
 # FormExtension
 
+The **FormExtension** module provides APIs related to Form Extension abilities.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides **FormExtension** APIs.
-
 ## Modules to Import
 
 ```
@@ -35,15 +35,15 @@ Called to notify the widget provider that a **Form** instance (widget) has been
 
 **Parameters**
 
-  | Name| Type                                  | Mandatory| Description                                                        |
-  | ------ | -------------------------------------- | ---- | ------------------------------------------------------------ |
-  | want   | [Want](js-apis-application-Want.md) | Yes  | Information related to the extension, including the widget ID, name, and style. The information must be managed as persistent data to facilitate subsequent widget update and deletion.|
+| Name| Type                                  | Mandatory| Description                                                        |
+| ------ | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| want   | [Want](js-apis-application-Want.md) | Yes  | Information related to the extension, including the widget ID, name, and style. The information must be managed as persistent data to facilitate subsequent widget update and deletion.|
 
 **Return value**
 
-  | Type                                                        | Description                                                       |
-  | ------------------------------------------------------------ | ----------------------------------------------------------- |
-  | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | A **formBindingData.FormBindingData** object containing the data to be displayed on the widget.|
+| Type                                                        | Description                                                       |
+| ------------------------------------------------------------ | ----------------------------------------------------------- |
+| [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | A **formBindingData.FormBindingData** object containing the data to be displayed on the widget.|
 
 **Example**
 
@@ -72,9 +72,9 @@ Called to notify the widget provider that a temporary widget has been converted
 
 **Parameters**
 
-  | Name| Type  | Mandatory| Description                    |
-  | ------ | ------ | ---- | ------------------------ |
-  | formId | string | Yes  | ID of the widget that requests to be converted to a normal one.|
+| Name| Type  | Mandatory| Description                    |
+| ------ | ------ | ---- | ------------------------ |
+| formId | string | Yes  | ID of the widget that requests to be converted to a normal one.|
 
 **Example**
 
@@ -96,9 +96,9 @@ Called to notify the widget provider that a widget has been updated. After obtai
 
 **Parameters**
 
-  | Name| Type  | Mandatory| Description              |
-  | ------ | ------ | ---- | ------------------ |
-  | formId | string | Yes  | ID of the widget that requests to be updated.|
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| formId | string | Yes  | ID of the widget that requests to be updated.|
 
 **Example**
 
@@ -127,9 +127,9 @@ Called to notify the widget provider of the change of visibility.
 
 **Parameters**
 
-  | Name   | Type                     | Mandatory| Description                        |
-  | --------- | ------------------------- | ---- | ---------------------------- |
-  | newStatus | { [key: string]: number } | Yes  | ID and visibility status of the widget to be changed.|
+| Name   | Type                     | Mandatory| Description                        |
+| --------- | ------------------------- | ---- | ---------------------------- |
+| newStatus | { [key: string]: number } | Yes  | ID and visibility status of the widget to be changed.|
 
 **Example**
 
@@ -162,10 +162,10 @@ Called to instruct the widget provider to receive and process the widget event.
 
 **Parameters**
 
-  | Name | Type  | Mandatory| Description                  |
-  | ------- | ------ | ---- | ---------------------- |
-  | formId  | string | Yes  | ID of the widget that requests the event.|
-  | message | string | Yes  | Event message.            |
+| Name | Type  | Mandatory| Description                  |
+| ------- | ------ | ---- | ---------------------- |
+| formId  | string | Yes  | ID of the widget that requests the event.|
+| message | string | Yes  | Event message.            |
 
 **Example**
 
@@ -187,9 +187,9 @@ Called to notify the widget provider that a **Form** instance (widget) has been
 
 **Parameters**
 
-  | Name| Type  | Mandatory| Description              |
-  | ------ | ------ | ---- | ------------------ |
-  | formId | string | Yes  | ID of the widget to be destroyed.|
+| Name| Type  | Mandatory| Description              |
+| ------ | ------ | ---- | ------------------ |
+| formId | string | Yes  | ID of the widget to be destroyed.|
 
 **Example**
 
@@ -211,9 +211,9 @@ Called when the configuration of the environment where the ability is running is
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | config | [Configuration](js-apis-configuration.md) | Yes| New configuration.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| config | [Configuration](js-apis-configuration.md) | Yes| New configuration.|
 
 **Example**
     
@@ -225,28 +225,28 @@ Called when the configuration of the environment where the ability is running is
   }
   ```
 
-  ## FormExtension.onAcquireFormState
+## FormExtension.onAcquireFormState
 
 onAcquireFormState?(want: Want): formInfo.FormState;
 
-Called when the widget provider receives the status query result of a specified service widget. By default, the initial state is returned.
+Called when the widget provider receives the status query result of a widget. By default, the initial state is returned.
 
 **System capability**: SystemCapability.Ability.Form
 
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want | [Want](js-apis-application-Want.md) | No| Description of the widget state, including the bundle name, ability name, module name, widget name, and widget dimension.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | No| Description of the widget state, including the bundle name, ability name, module name, widget name, and widget dimension.|
 
 **Example**
     
   ```js
-  import fromInfo from '@ohos.application.fromInfo'
+  import formInfo from '@ohos.application.formInfo'
   class MyFormExtension extends FormExtension {
       onAcquireFormState(want) {
           console.log('FormExtension onAcquireFormState, want:' + want);
-          return fromInfo.FormState.UNKNOWN;
+          return formInfo.FormState.UNKNOWN;
       }
   }
   ```
diff --git a/en/application-dev/reference/apis/js-apis-formextensioncontext.md b/en/application-dev/reference/apis/js-apis-formextensioncontext.md
index 4e877102c65aaf630ee5d5e12eff7d3c9e611b42..f2e1fe143fbac2991698d2dd4244d88b23b0ebd5 100644
--- a/en/application-dev/reference/apis/js-apis-formextensioncontext.md
+++ b/en/application-dev/reference/apis/js-apis-formextensioncontext.md
@@ -1,86 +1,87 @@
 # FormExtensionContext
 
-> **NOTE**
-> 
-> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
-> The APIs of this module can be used only in the stage model.
+The **FormExtensionContext** module, inherited from **ExtensionContext**, provides context for Form Extension abilities.
 
-Implements the context that provides the capabilities and APIs of **FormExtension**. This class is inherited from **ExtensionContext**.
+You can use the APIs of this module to start abilities.
 
-## Modules to Import
-
-```js
-import FormExtension from '@ohos.application.FormExtension';
-```
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The APIs of this module can be used only in the stage model.
 
-## FormExtensionContext.updateForm
+## FormExtensionContext.startAbility
 
-updateForm(formId: string, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<void>): void
+startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
 
-Updates a widget. This method uses a callback to return the result.
+Starts an ability. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Ability.Form
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name         | Type                                                        | Mandatory| Description                                  |
-  | --------------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
-  | formId          | string                                                       | Yes  | ID of the widget that requests to be updated.                    |
-  | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | New data of the widget.                        |
-  | callback        | AsyncCallback\<void>                                         | Yes  | Callback used to return the result indicating whether the method is successfully called.|
+| Name|                Type              | Mandatory|              Description              |
+| ------| --------------------------------- | ---- | -------------------------------------- |
+| want| [Want](js-apis-application-Want.md) | Yes | Information about the ability to start, such as the ability name and bundle name.|
+| callback| AsyncCallback&lt;void&gt;       | Yes | Callback used to return the result.|
 
 **Example**
 
-  ```js
-  import formBindingData from '@ohos.application.formBindingData'
-  export default class MyFormExtension extends FormExtension {
-      onUpdate(formId) {
-          console.log('FormExtension onUpdate, formId:' + formId);
-          let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
-          this.context.updateForm(formId, obj2, (data)=>{
-              console.log('FormExtension context updateForm, data:' + data);
-          });
-      }
-  }
-
-
-  ```
+```js
+var want = {
+    deviceId: "",
+    bundleName: "com.example.formstartability",
+    abilityName: "MainAbility",
+    action: "action1",
+    entities: ["entity1"],
+    type: "MIMETYPE",
+    uri: "key={true,true,false}",
+    parameters: {}
+}
+this.context.startAbility(want, function(err) {
+    console.info(err.code);
+})
+```
 
-## FormExtensionContext.updateForm
+## FormExtensionContext.startAbility
 
-updateForm(formId: string, formBindingData: formBindingData.FormBindingData): Promise\<void>
+startAbility(want: Want): Promise&lt;void&gt;
 
-Updates a widget. This method uses a promise to return the result.
+Starts an ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.Form
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name         | Type                                                        | Mandatory| Description              |
-  | --------------- | ------------------------------------------------------------ | ---- | ------------------ |
-  | formId          | string                                                       | Yes  | ID of the widget that requests to be updated.|
-  | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | New data of the widget.    |
+| Name|                Type              | Mandatory|              Description              |
+| ------| --------------------------------- | ---- | -------------------------------------- |
+| want| [Want](js-apis-application-Want.md) | Yes | Information about the ability to start, such as the ability name and bundle name.|
 
 **Return value**
 
-  | Type          | Description                             |
-  | -------------- | --------------------------------- |
-  | Promise\<void> | Promise returned with the result indicating whether the method is successfully called.|
+| Type         | Description                               |
+| ------------ | ---------------------------------- |
+| Promise\<void> | Promise used to return the result.|
 
 **Example**
 
-  ```js
-  import formBindingData from '@ohos.application.formBindingData'
-  export default class MyFormExtension extends FormExtension {
-      onUpdate(formId) {
-          console.log('FormExtension onUpdate, formId:' + formId);
-          let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
-          this.context.updateForm(formId, obj2)
-              .then((data)=>{
-                  console.log('FormExtension context updateForm, data:' + data);
-              }).catch((error) => {
-              console.error('Operation updateForm failed. Cause: ' + error);});
-      }
-  }
-
-  ```
+```js
+var want = {
+    deviceId: "",
+    bundleName: "com.example.formstartability",
+    abilityName: "MainAbility",
+    action: "action1",
+    entities: ["entity1"],
+    type: "MIMETYPE",
+    uri: "key={true,true,false}",
+    parameters: {}
+}
+this.context.startAbility(want).then(() => {
+    console.info("StartAbility Success");
+}).catch((error) => {
+    console.info("StartAbility failed");
+});
+```
diff --git a/en/application-dev/reference/apis/js-apis-formhost.md b/en/application-dev/reference/apis/js-apis-formhost.md
index 91ea521d2bcdece8aa8b3f7b4fc7c278db4c2ba1..769b226018f184016164e0866c4020fa5e601c5a 100644
--- a/en/application-dev/reference/apis/js-apis-formhost.md
+++ b/en/application-dev/reference/apis/js-apis-formhost.md
@@ -1,11 +1,11 @@
 # FormHost
 
+The **FormHost** module provides APIs related to the widget host, which is an application that displays the widget content and controls the position where the widget is displayed. You can use the APIs to delete, release, and update widgets, send notifications to widgets, and obtain widget information and status.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-Provides APIs related to the widget host.
-
 ## Modules to Import
 
 ```
@@ -24,9 +24,11 @@ deleteForm(formId: string, callback: AsyncCallback&lt;void&gt;): void;
 
 Deletes a widget. This API uses an asynchronous callback to return the result. After this API is called, the application can no longer use the widget, and the Widget Manager will not retain the widget information.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -52,9 +54,11 @@ deleteForm(formId: string): Promise&lt;void&gt;;
 
 Deletes a widget. This API uses a promise to return the result. After this API is called, the application can no longer use the widget, and the Widget Manager will not retain the widget information.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -85,9 +89,11 @@ releaseForm(formId: string, callback: AsyncCallback&lt;void&gt;): void;
 
 Releases a widget. This API uses an asynchronous callback to return the result. After this API is called, the application can no longer use the widget, but the Widget Manager still retains the widget cache and storage information.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -113,9 +119,11 @@ releaseForm(formId: string, isReleaseCache: boolean, callback: AsyncCallback&lt;
 
 Releases a widget. This API uses an asynchronous callback to return the result. After this API is called, the application can no longer use the widget, but the Widget Manager retains the storage information about the widget and retains or releases the cache information based on the setting.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -142,9 +150,11 @@ releaseForm(formId: string, isReleaseCache?: boolean): Promise&lt;void&gt;;
 
 Releases a widget. This API uses a promise to return the result. After this API is called, the application can no longer use the widget, but the Widget Manager retains the storage information about the widget and retains or releases the cache information based on the setting.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -176,9 +186,11 @@ requestForm(formId: string, callback: AsyncCallback&lt;void&gt;): void;
 
 Requests a widget update. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -204,9 +216,11 @@ requestForm(formId: string): Promise&lt;void&gt;;
 
 Requests a widget update. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -237,9 +251,11 @@ castTempForm(formId: string, callback: AsyncCallback&lt;void&gt;): void;
 
 Converts a temporary widget to a normal one. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -265,9 +281,11 @@ castTempForm(formId: string): Promise&lt;void&gt;;
 
 Converts a temporary widget to a normal one. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -298,9 +316,11 @@ notifyVisibleForms(formIds: Array&lt;string&gt;, callback: AsyncCallback&lt;void
 
 Instructs the widget framework to make a widget visible. This API uses an asynchronous callback to return the result. After this API is called, **onVisibilityChange** is invoked to notify the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -326,9 +346,11 @@ notifyVisibleForms(formIds: Array&lt;string&gt;): Promise&lt;void&gt;;
 
 Instructs the widget framework to make a widget visible. This API uses a promise to return the result. After this API is called, **onVisibilityChange** is invoked to notify the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -359,9 +381,11 @@ notifyInvisibleForms(formIds: Array&lt;string&gt;, callback: AsyncCallback&lt;vo
 
 Instructs the widget framework to make a widget invisible. This API uses an asynchronous callback to return the result. After this API is called, **onVisibilityChange** is invoked to notify the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -387,9 +411,11 @@ notifyInvisibleForms(formIds: Array&lt;string&gt;): Promise&lt;void&gt;;
 
 Instructs the widget framework to make a widget invisible. This API uses a promise to return the result. After this API is called, **onVisibilityChange** is invoked to notify the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -420,9 +446,11 @@ enableFormsUpdate(formIds: Array&lt;string&gt;, callback: AsyncCallback&lt;void&
 
 Instructs the widget framework to make a widget updatable. This API uses an asynchronous callback to return the result. After this API is called, the widget is in the enabled state and can receive updates from the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -448,9 +476,11 @@ enableFormsUpdate(formIds: Array&lt;string&gt;): Promise&lt;void&gt;;
 
 Instructs the widget framework to make a widget updatable. This API uses a promise to return the result. After this API is called, the widget is in the enabled state and can receive updates from the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -481,9 +511,11 @@ disableFormsUpdate(formIds: Array&lt;string&gt;, callback: AsyncCallback&lt;void
 
 Instructs the widget framework to make a widget not updatable. This API uses an asynchronous callback to return the result. After this API is called, the widget cannot receive updates from the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -509,9 +541,11 @@ disableFormsUpdate(formIds: Array&lt;string&gt;): Promise&lt;void&gt;;
 
 Instructs the widget framework to make a widget not updatable. This API uses a promise to return the result. After this API is called, the widget cannot receive updates from the widget provider.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -542,9 +576,9 @@ isSystemReady(callback: AsyncCallback&lt;void&gt;): void;
 
 Checks whether the system is ready. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -569,9 +603,9 @@ isSystemReady(): Promise&lt;void&gt;;
 
 Checks whether the system is ready. This API uses a promise to return the result.
 
-**System capability**
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Return value**
 
@@ -596,9 +630,11 @@ getAllFormsInfo(callback: AsyncCallback&lt;Array&lt;formInfo.FormInfo&gt;&gt;):
 
 Obtains the widget information provided by all applications on the device. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -625,9 +661,11 @@ getAllFormsInfo(): Promise&lt;Array&lt;formInfo.FormInfo&gt;&gt;;
 
 Obtains the widget information provided by all applications on the device. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Return value**
 
@@ -652,9 +690,11 @@ getFormsInfo(bundleName: string, callback: AsyncCallback&lt;Array&lt;formInfo.Fo
 
 Obtains the widget information provided by a given application on the device. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -682,9 +722,11 @@ getFormsInfo(bundleName: string, moduleName: string, callback: AsyncCallback&lt;
 
 Obtains the widget information provided by a given application on the device. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -713,9 +755,11 @@ getFormsInfo(bundleName: string, moduleName?: string): Promise&lt;Array&lt;formI
 
 Obtains the widget information provided by a given application on the device. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -746,9 +790,11 @@ deleteInvalidForms(formIds: Array&lt;string&gt;, callback: AsyncCallback&lt;numb
 
 Deletes invalid widgets from the list. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -776,9 +822,11 @@ deleteInvalidForms(formIds: Array&lt;string&gt;): Promise&lt;number&gt;;
 
 Deletes invalid widgets from the list. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -809,9 +857,11 @@ acquireFormState(want: Want, callback: AsyncCallback&lt;formInfo.FormStateInfo&g
 
 Obtains the widget state. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -848,6 +898,12 @@ acquireFormState(want: Want): Promise&lt;formInfo.FormStateInfo&gt;;
 
 Obtains the widget state. This API uses a promise to return the result.
 
+**Required permissions**: ohos.permission.REQUIRE_FORM and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name| Type   | Mandatory| Description   |
@@ -860,10 +916,6 @@ Obtains the widget state. This API uses a promise to return the result.
 | :------------ | :---------------------------------- |
 | Promise&lt;[FormStateInfo](js-apis-formInfo.md#formstateinfo)&gt; | Promise used to return the widget state.|
 
-**System capability**
-
-SystemCapability.Ability.Form
-
 **Example**
 
   ```js
@@ -890,9 +942,9 @@ on(type: "formUninstall", callback: Callback&lt;string&gt;): void;
 
 Subscribes to widget uninstall events.
 
-**System capability**
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -916,9 +968,9 @@ off(type: "formUninstall", callback?: Callback&lt;string&gt;): void;
 
 Unsubscribes from widget uninstall events.
 
-**System capability**
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -942,9 +994,11 @@ notifyFormsVisible(formIds: Array&lt;string&gt;, isVisible: boolean, callback: A
 
 Instructs the widgets to make themselves visible. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -971,9 +1025,11 @@ notifyFormsVisible(formIds: Array&lt;string&gt;, isVisible: boolean): Promise&lt
 
 Instructs the widgets to make themselves visible. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -1005,9 +1061,11 @@ notifyFormsEnableUpdate(formIds: Array&lt;string&gt;, isEnableUpdate: boolean, c
 
 Instructs the widgets to enable or disable updates. This API uses an asynchronous callback to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
 
-SystemCapability.Ability.Form
+**System capability**: SystemCapability.Ability.Form
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
@@ -1034,9 +1092,11 @@ notifyFormsEnableUpdate(formIds: Array&lt;string&gt;, isEnableUpdate: boolean):
 
 Instructs the widgets to enable or disable updates. This API uses a promise to return the result.
 
-**System capability**
+**Required permissions**: ohos.permission.REQUIRE_FORM
+
+**System capability**: SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Parameters**
 
diff --git a/en/application-dev/reference/apis/js-apis-formprovider.md b/en/application-dev/reference/apis/js-apis-formprovider.md
index 0637af7ceb3c1368f242d91d9f4b59566b7f08df..81855948f4994b85d601763ffe5e817a175d3733 100644
--- a/en/application-dev/reference/apis/js-apis-formprovider.md
+++ b/en/application-dev/reference/apis/js-apis-formprovider.md
@@ -1,6 +1,6 @@
 # FormProvider
 
-The **FormProvider** module provides APIs related to the widget provider. You can use the APIs to update a widget, set the next refresh time for a widget, obtain widget information, and release a widget release.
+The **FormProvider** module provides APIs related to the widget provider. You can use the APIs to update a widget, set the next refresh time for a widget, obtain widget information, and request a widget release.
 
 > **NOTE**
 > 
@@ -28,11 +28,11 @@ SystemCapability.Ability.Form
 
 **Parameters**
 
-| Name| Type   | Mandatory| Description                                  |
-| ------ | ------ | ---- | ------------------------------------- |
-| formId | string | Yes  | ID of a widget.                              |
-| minute | number | Yes  | Refresh interval, in minutes. The value must be greater than or equal to 5.    |
-| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
+  | Name| Type   | Mandatory| Description                                  |
+  | ------ | ------ | ---- | ------------------------------------- |
+  | formId | string | Yes  | ID of a widget.                              |
+  | minute | number | Yes  | Refresh interval, in minutes. The value must be greater than or equal to 5.    |
+  | callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
 
 **Example**
 
@@ -57,16 +57,16 @@ SystemCapability.Ability.Form
 
 **Parameters**
 
-| Name| Type   | Mandatory| Description                                  |
-| ------ | ------ | ---- | ------------------------------------- |
-| formId | string | Yes  | ID of a widget.                              |
-| minute | number | Yes  | Refresh interval, in minutes. The value must be greater than or equal to 5.    |
+  | Name| Type   | Mandatory| Description                                  |
+  | ------ | ------ | ---- | ------------------------------------- |
+  | formId | string | Yes  | ID of a widget.                              |
+  | minute | number | Yes  | Refresh interval, in minutes. The value must be greater than or equal to 5.    |
 
 **Return value**
 
-| Type         | Description                             |
-| ------------- | ---------------------------------- |
-| Promise\<void> |Promise used to return the result.     |
+  | Type         | Description                             |
+  | ------------- | ---------------------------------- |
+  | Promise\<void> |Promise used to return the result.     |
 
 **Example**
 
@@ -91,11 +91,11 @@ SystemCapability.Ability.Form
 
 **Parameters**
 
-| Name| Type                                                                   | Mandatory| Description            |
-| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
-| formId | string                                                                 | Yes  | ID of the widget to update.|
-| formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | Data to be used for the update.   |
-| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
+  | Name| Type                                                                   | Mandatory| Description            |
+  | ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
+  | formId | string                                                                 | Yes  | ID of the widget to update.|
+  | formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | Data to be used for the update.   |
+  | callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
 
 **Example**
 
@@ -122,10 +122,10 @@ SystemCapability.Ability.Form
 
 **Parameters**
 
-| Name| Type                                                                   | Mandatory| Description            |
-| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
-| formId | string                                                                 | Yes  | ID of the widget to update.|
-| formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | Data to be used for the update.   |
+  | Name| Type                                                                   | Mandatory| Description            |
+  | ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
+  | formId | string                                                                 | Yes  | ID of the widget to update.|
+  | formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | Yes  | Data to be used for the update.   |
 
 **Return value**
 
diff --git a/en/application-dev/reference/apis/js-apis-geolocation.md b/en/application-dev/reference/apis/js-apis-geolocation.md
index 01a012065ab52ac2e7a1dc781b608ec865394c31..f15805a326e19b0a579d1da1ae0e44e9937fef6f 100644
--- a/en/application-dev/reference/apis/js-apis-geolocation.md
+++ b/en/application-dev/reference/apis/js-apis-geolocation.md
@@ -8,8 +8,7 @@ Location services provide basic functions such as GNSS positioning, network posi
 
 ## Modules to Import
 
-
-```
+```js
 import geolocation from '@ohos.geolocation';
 ```
 
@@ -23,17 +22,18 @@ Registers a listener for location changes with a location request initiated.
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **locationChange** indicates a location change event.|
   | request | LocationRequest | Yes| Location request.|
   | callback | Callback&lt;[Location](#location)&gt; | Yes| Callback used to return the location change event.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
   var locationChange = (location) => {
       console.log('locationChanger: data: ' + JSON.stringify(location));
@@ -52,16 +52,17 @@ Unregisters the listener for location changes with the corresponding location re
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **locationChange** indicates a location change event.|
   | callback | Callback&lt;[Location](#location)&gt; | No| Callback used to return the location change event.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
   var locationChange = (location) => {
       console.log('locationChanger: data: ' + JSON.stringify(location));
@@ -81,18 +82,19 @@ Registers a listener for location service status change events.
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **locationServiceState** indicates a location service status change event.|
   | callback | Callback&lt;boolean&gt; | Yes| Callback used to return the location service status change event.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var locationServiceState = (state) => {
-      console.log('locationServiceState: ' + state);
+      console.log('locationServiceState: ' + JSON.stringify(state));
   }
   geolocation.on('locationServiceState', locationServiceState);
   ```
@@ -108,18 +110,19 @@ Unregisters the listener for location service status change events.
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **locationServiceState** indicates a location service status change event.|
   | callback | Callback&lt;boolean&gt; | No| Callback used to return the location service status change event.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var locationServiceState = (state) => {
-      console.log('locationServiceState: state: ' + state);
+      console.log('locationServiceState: state: ' + JSON.stringify(state));
   }
   geolocation.on('locationServiceState', locationServiceState);
   geolocation.off('locationServiceState', locationServiceState);
@@ -136,19 +139,20 @@ Registers a listener for cached GNSS location reports.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations.|
   | request | CachedGnssLocationsRequest | Yes| Request for reporting cached GNSS location.|
   | callback | Callback&lt;boolean&gt; | Yes| Callback used to return cached GNSS locations.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var cachedLocationsCb = (locations) => {
-      console.log('cachedGnssLocationsReporting: locations: ' + locations);
+      console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations));
   }
   var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
   geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
@@ -165,18 +169,19 @@ Unregisters the listener for cached GNSS location reports.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations.|
   | callback | Callback&lt;boolean&gt; | No| Callback used to return cached GNSS locations.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var cachedLocationsCb = (locations) => {
-      console.log('cachedGnssLocationsReporting: locations: ' + locations);
+      console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations));
   }
   var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
   geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
@@ -194,18 +199,19 @@ Registers a listener for GNSS satellite status change events.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **gnssStatusChange** indicates a GNSS satellite status change.|
   | callback | Callback&lt;SatelliteStatusInfo&gt; | Yes| Callback used to return GNSS satellite status changes.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var gnssStatusCb = (satelliteStatusInfo) => {
-      console.log('gnssStatusChange: ' + satelliteStatusInfo);
+      console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo));
   }
   geolocation.on('gnssStatusChange', gnssStatusCb);
   ```
@@ -221,17 +227,18 @@ Unregisters the listener for GNSS satellite status change events.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **gnssStatusChange** indicates a GNSS satellite status change.|
   | callback | Callback&lt;SatelliteStatusInfo&gt; | No| Callback used to return GNSS satellite status changes.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var gnssStatusCb = (satelliteStatusInfo) => {
-      console.log('gnssStatusChange: ' + satelliteStatusInfo);
+      console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo));
   }
   geolocation.on('gnssStatusChange', gnssStatusCb);
   geolocation.off('gnssStatusChange', gnssStatusCb);
@@ -248,18 +255,19 @@ Registers a listener for GNSS NMEA message change events.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change.|
   | callback | Callback&lt;string&gt; | Yes| Callback used to return GNSS NMEA message changes.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var nmeaCb = (str) => {
-      console.log('nmeaMessageChange: ' + str);
+      console.log('nmeaMessageChange: ' + JSON.stringify(str));
   }
   geolocation.on('nmeaMessageChange', nmeaCb );
   ```
@@ -275,18 +283,19 @@ Unregisters the listener for GNSS NMEA message change events.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change.|
   | callback | Callback&lt;string&gt; | No| Callback used to return GNSS NMEA message changes.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var nmeaCb = (str) => {
-      console.log('nmeaMessageChange: ' + str);
+      console.log('nmeaMessageChange: ' + JSON.stringify(str));
   }
   geolocation.on('nmeaMessageChange', nmeaCb);
   geolocation.off('nmeaMessageChange', nmeaCb);
@@ -303,60 +312,38 @@ Registers a listener for status change events of the specified geofence.
 
 **System capability**: SystemCapability.Location.Location.Geofence
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **fenceStatusChange** indicates a geofence status change.|
   | request | GeofenceRequest | Yes| Geofencing request.|
   | want | WantAgent | Yes| **WantAgent** used to return geofence (entrance or exit) events.|
 
 
-- Example
+**Example**
   
-  ```
-  import WantAgent from '@ohos.wantAgent';
-  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
-  // WantAgent object
-  var wantAgent;
-  // getWantAgent callback
-  function getWantAgentCallback(err, data) {
-  	console.info("==========================>getWantAgentCallback=======================>");
-      if (err.code == 0) {
-  	wantAgent = data;
-      } else {
-          console.info('----getWantAgent failed!----');
-      }
-  }
-  // WantAgentInfo object
-  var wantAgentInfo = {
+  ```js
+  import geolocation from '@ohos.geolocation';
+  import wantAgent from '@ohos.wantAgent';
+  
+  let wantAgentInfo = {
       wants: [
           {
-              deviceId: "deviceId",
-              bundleName: "com.neu.setResultOnAbilityResultTest1",
-              abilityName: "com.example.test.MainAbility",
+              bundleName: "com.example.myapplication",
+              abilityName: "com.example.myapplication.MainAbility"
               action: "action1",
-              entities: ["entity1"],
-              type: "MIMETYPE",
-              uri: "key={true,true,false}",
-              parameters:
-              {
-                  mykey0: 2222,
-                  mykey1: [1, 2, 3],
-                  mykey2: "[1, 2, 3]",
-                  mykey3: "ssssssssssssssssssssssssss",
-                  mykey4: [false, true, false],
-                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
-                  mykey6: true,
-              }
           }
       ],
-      operationType: OperationType.START_ABILITIES,
+      operationType: wantAgent.OperationType.START_ABILITY,
       requestCode: 0,
-      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
-  }
-  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
-  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
-  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
+      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+  };
+  
+  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+    var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
+    geolocation.on('fenceStatusChange', requestInfo, wantAgentObj);
+  });
   ```
 
 
@@ -370,60 +357,91 @@ Unregisters the listener for status change events of the specified geofence.
 
 **System capability**: SystemCapability.Location.Location.Geofence
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | string | Yes| Event type. The value **fenceStatusChange** indicates a geofence status change.|
   | request | GeofenceRequest | Yes| Geofencing request.|
   | want | WantAgent | Yes| **WantAgent** used to return geofence (entrance or exit) events.|
 
-- Example
+**Example**
   
-  ```
-  import WantAgent from '@ohos.wantAgent';
-  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
-  // WantAgent object
-  var wantAgent;
-  // getWantAgent callback
-  function getWantAgentCallback(err, data) {
-  	console.info("==========================>getWantAgentCallback=======================>");
-      if (err.code == 0) {
-  	wantAgent = data;
-      } else {
-          console.info('----getWantAgent failed!----');
-      }
-  }
-  // WantAgentInfo object
-  var wantAgentInfo = {
+  ```js
+  import geolocation from '@ohos.geolocation';
+  import wantAgent from '@ohos.wantAgent';
+  
+  let wantAgentInfo = {
       wants: [
           {
-              deviceId: "deviceId",
-              bundleName: "com.neu.setResultOnAbilityResultTest1",
-              abilityName: "com.example.test.MainAbility",
+              bundleName: "com.example.myapplication",
+              abilityName: "com.example.myapplication.MainAbility"
               action: "action1",
-              entities: ["entity1"],
-              type: "MIMETYPE",
-              uri: "key={true,true,false}",
-              parameters:
-              {
-                  mykey0: 2222,
-                  mykey1: [1, 2, 3],
-                  mykey2: "[1, 2, 3]",
-                  mykey3: "ssssssssssssssssssssssssss",
-                  mykey4: [false, true, false],
-                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
-                  mykey6: true,
-              }
           }
       ],
-      operationType: OperationType.START_ABILITIES,
+      operationType: wantAgent.OperationType.START_ABILITY,
       requestCode: 0,
-      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
+      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+  };
+  
+  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+    var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
+    geolocation.on('fenceStatusChange', requestInfo, wantAgentObj);
+    geolocation.off('fenceStatusChange', requestInfo, wantAgentObj);
+  });
+  ```
+
+
+## geolocation.on('countryCodeChange')<sup>9+</sup>
+
+on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;) : void;
+
+Subscribe to country code information reporting events.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is "countrycodechange", which means subscribing to the submission of country code information. |
+  | callback | Callback&lt;CountryCode&gt; | Yes | Callback is used to receive the country code information report. |
+
+
+**Example**
+  
+  ```js
+  var callback = (code) => {
+      console.log('countryCodeChange: ' + JSON.stringify(code));
   }
-  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
-  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
-  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
-  geolocation.off('fenceStatusChange', requestInfo, wantAgent);
+  geolocation.on('countryCodeChange', callback);
+  ```
+
+
+## geolocation.off('countryCodeChange')<sup>9+</sup>
+
+off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;) : void;
+
+Unsubscribe from the country code to report events.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | type | string | Yes| Event type. The value is "countrycodechange", which means unsubscribing to the submission of country code information. |
+  | callback | Callback&lt;CountryCode&gt; | Yes | Callback is used to receive the country code information report. |
+
+
+**Example**
+  
+  ```js
+  var callback = (code) => {
+      console.log('countryCodeChange: ' + JSON.stringify(code));
+  }
+  geolocation.on('countryCodeChange', callback);
+  geolocation.off('countryCodeChange', callback);
   ```
 
 
@@ -438,18 +456,24 @@ Obtains the current location. This API uses an asynchronous callback to return t
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [CurrentLocationRequest](#currentlocationrequest) | No| Location request.|
   | callback | AsyncCallback&lt;[Location](#location)&gt; | Yes| Callback used to return the current location.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
   var locationChange = (err, location) => {
-      console.log('locationChanger: ' + err + 'data: ' + location);
+      if (err) {
+          console.log('locationChanger: err=' + JSON.stringify(err));
+      }
+      if (location) {
+          console.log('locationChanger: location=' + JSON.stringify(location));
+      }
   };
   geolocation.getCurrentLocation(requestInfo, locationChange);
   geolocation.getCurrentLocation(locationChange);
@@ -467,22 +491,24 @@ Obtains the current location. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [CurrentLocationRequest](#currentlocationrequest) | No| Location request.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;[Location](#location)&gt; | Promise used to return the current location.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
-  locationEventListener.getCurrentLocation(requestInfo).then((result) => {
+  geolocation.getCurrentLocation(requestInfo).then((result) => {
       console.log('current location: ' + JSON.stringify(result));
   });
   ```
@@ -498,17 +524,23 @@ Obtains the previous location. This API uses an asynchronous callback to return
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;[Location](#location)&gt; | Yes| Callback used to return the previous location.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.getLastLocation((err, data) => {
-      console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getLastLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getLastLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -523,15 +555,16 @@ Obtains the previous location. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;[Location](#location)&gt; | Promise used to return the previous location.|
 
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.getLastLocation().then((result) => {
       console.log('getLastLocation: result: ' + JSON.stringify(result));
   });
@@ -549,17 +582,22 @@ Checks whether the location service is enabled. This API uses an asynchronous ca
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isLocationEnabled((err, data) => {
-      console.log('isLocationEnabled: ' + err + " data: " + data);
+      if (err) {
+          console.log('isLocationEnabled: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('isLocationEnabled: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -574,14 +612,15 @@ Checks whether the location service is enabled. This API uses a promise to retur
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the location service status.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isLocationEnabled().then((result) => {
       console.log('promise, isLocationEnabled: ' + result);
   });
@@ -599,17 +638,22 @@ Requests to enable the location service. This API uses an asynchronous callback
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.requestEnableLocation((err, data) => {
-      console.log('requestEnableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('requestEnableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('requestEnableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -624,17 +668,17 @@ Requests to enable the location service. This API uses a promise to return the r
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.requestEnableLocation().then((result) => {
-      console.log('promise, requestEnableLocation: ' + result);
+      console.log('promise, requestEnableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -645,23 +689,28 @@ enableLocation(callback: AsyncCallback&lt;boolean&gt;) : void;
 
 Enables the location service. This API uses an asynchronous callback to return the result.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
-**Permission required**: ohos.permission.LOCATION
+**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.enableLocation((err, data) => {
-      console.log('enableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('enableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('enableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -672,23 +721,23 @@ enableLocation() : Promise&lt;boolean&gt;
 
 Enables the location service. This API uses a promise to return the result.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
-**Permission required**: ohos.permission.LOCATION
+**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.enableLocation().then((result) => {
-      console.log('promise, enableLocation: ' + result);
+      console.log('promise, enableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -698,23 +747,28 @@ disableLocation(callback: AsyncCallback&lt;boolean&gt;) : void;
 
 Disables the location service. This API uses an asynchronous callback to return the result.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
-**Permission required**: ohos.permission.LOCATION
+**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.disableLocation((err, data) => {
-      console.log('disableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('disableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('disableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -725,23 +779,23 @@ disableLocation() : Promise&lt;boolean&gt;
 
 Disables the location service. This API uses a promise to return the result.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
-**Permission required**: ohos.permission.LOCATION
+**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the location service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.disableLocation().then((result) => {
-      console.log('promise, disableLocation: ' + result);
+      console.log('promise, disableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -755,17 +809,22 @@ Checks whether the (reverse) geocoding service is available. This API uses an as
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the (reverse) geocoding service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isGeoServiceAvailable((err, data) => {
-      console.log('isGeoServiceAvailable: ' + err + " data: " + data);
+      if (err) {
+          console.log('isGeoServiceAvailable: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('isGeoServiceAvailable: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -780,22 +839,21 @@ Checks whether the (reverse) geocoding service is available. This API uses a pro
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the (reverse) geocoding service status.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isGeoServiceAvailable().then((result) => {
-      console.log('promise, isGeoServiceAvailable: ' + result);
+      console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result));
   });
   ```
 
 
-
 ## geolocation.getAddressesFromLocation
 
 getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;) : void
@@ -806,18 +864,24 @@ Converts coordinates into geographic description through reverse geocoding. This
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes| Reverse geocoding request.|
   | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | Yes| Callback used to return the reverse geocoding result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
   geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
-      console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -832,19 +896,21 @@ Converts coordinates into geographic description through reverse geocoding. This
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes| Reverse geocoding request.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | Promise used to return the reverse geocoding result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
   geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
       console.log('getAddressesFromLocation: ' + JSON.stringify(data));
@@ -862,19 +928,24 @@ Converts geographic description into coordinates through geocoding. This API use
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [GeoCodeRequest](#geocoderequest) | Yes| Geocoding request.|
   | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | Yes| Callback used to return the geocoding result.|
 
-
-- Example
+**Example**
   
-  ```
+  ```js
   var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1};
   geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => {
-      console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -889,19 +960,21 @@ Converts geographic description into coordinates through geocoding. This API use
 
 **System capability**: SystemCapability.Location.Location.Geocoder
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | request | [GeoCodeRequest](#geocoderequest) | Yes| Geocoding request.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | Callback used to return the geocoding result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1};
   geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => {
       console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
@@ -909,7 +982,6 @@ Converts geographic description into coordinates through geocoding. This API use
   ```
 
 
-
 ## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
 
 getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;) : void;
@@ -920,16 +992,22 @@ Obtains the number of cached GNSS locations.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;number&gt; | Yes| Callback used to return the number of cached GNSS locations. |
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.getCachedGnssLocationsSize((err, size) => {
-      console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size);
+      if (err) {
+          console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
+      }
+      if (size) {
+          console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
+      }
   });
   ```
 
@@ -944,16 +1022,17 @@ Obtains the number of cached GNSS locations.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;number&gt; | Promise used to return the number of cached GNSS locations.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.getCachedGnssLocationsSize().then((result) => {
-      console.log('promise, getCachedGnssLocationsSize: ' + result);
+      console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
   });
   ```
 
@@ -968,16 +1047,22 @@ Obtains all cached GNSS locations and clears the GNSS cache queue.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.flushCachedGnssLocations((err, result) => {
-      console.log('flushCachedGnssLocations: err:' + err + " result: " + result);
+      if (err) {
+          console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('flushCachedGnssLocations: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -992,16 +1077,17 @@ Obtains all cached GNSS locations and clears the GNSS cache queue.
 
 **System capability**: SystemCapability.Location.Location.Gnss
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Promise used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.flushCachedGnssLocations().then((result) => {
-      console.log('promise, flushCachedGnssLocations: ' + result);
+      console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result));
   });
   ```
 
@@ -1016,18 +1102,24 @@ Sends an extended command to the location subsystem. This API can only be called
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | command | LocationCommand | Yes| Extended command (string) to be sent.|
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'scenario': 0x301, 'command': "command_1"};
   geolocation.sendCommand(requestInfo, (err, result) => {
-      console.log('sendCommand: err:' + err + " result: " + result);
+      if (err) {
+          console.log('sendCommand: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('sendCommand: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1042,22 +1134,24 @@ Sends an extended command to the location subsystem. This API can only be called
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | command | LocationCommand | Yes| Extended command (string) to be sent.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Callback used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   var requestInfo = {'scenario': 0x301, 'command': "command_1"};
   geolocation.sendCommand(requestInfo).then((result) => {
-      console.log('promise, sendCommand: ' + result);
+      console.log('promise, sendCommand: ' + JSON.stringify(result));
   });
   ```
 
@@ -1068,23 +1162,29 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&l
 
 Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Permission required**: ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.|
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isLocationPrivacyConfirmed(1, (err, result) => {
-      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
+      if (err) {
+          console.log('isLocationPrivacyConfirmed: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('isLocationPrivacyConfirmed: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1095,27 +1195,29 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise&lt;boolean&gt;
 
 Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Permission required**: ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.isLocationPrivacyConfirmed(1).then((result) => {
-      console.log('promise, isLocationPrivacyConfirmed: ' + result);
+      console.log('promise, isLocationPrivacyConfirmed: ' + JSON.stringify(result));
   });
   ```
 
@@ -1126,24 +1228,30 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean
 
 Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Permission required**: ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.|
   | isConfirmed | boolean | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
   | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => {
-      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
+      if (err) {
+          console.log('setLocationPrivacyConfirmStatus: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('setLocationPrivacyConfirmStatus: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1154,32 +1262,540 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea
 
 Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications.
 
-This is a system API and cannot be called by third-party applications.
+**System API**: This is a system API and cannot be called by third-party applications.
 
 **Permission required**: ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Location.Location.Core
 
-- Parameters
-    | Name| Type| Mandatory| Description|
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.|
   | isConfirmed | boolean | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
 
-- Return value
-    | Name| Description|
+**Return value**
+
+  | Name| Description|
   | -------- | -------- |
   | Promise&lt;boolean&gt; | Callback used to return the operation result.|
 
-- Example
+**Example**
   
-  ```
+  ```js
   geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => {
-      console.log('promise, setLocationPrivacyConfirmStatus: ' + result);
+      console.log('promise, setLocationPrivacyConfirmStatus: ' + JSON.stringify(result));
+  });
+  ```
+
+
+## geolocation.getCountryCode<sup>9+</sup>
+
+getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;) : void;
+
+Query the current country code.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;CountryCode&gt; | Yes | Callback is used to receive the country code. |
+
+**Example**: 
+  
+  ```js
+  geolocation.getCountryCode((err, result) => {
+      if (err) {
+          console.log('getCountryCode: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('getCountryCode: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.getCountryCode<sup>9+</sup>
+
+getCountryCode() : Promise&lt;CountryCode&gt;;
+
+Query the current country code.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**Parameters**
+
+None
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;CountryCode&gt; | return country code. |
+
+**Example**:
+  
+  ```js
+  geolocation.getCountryCode()
+  .then((result) => {
+      console.log('promise, getCountryCode: result=' + JSON.stringify(result));
+  })
+  .catch((error) => {
+      console.log('promise, getCountryCode: error=' + JSON.stringify(error));
+  });
+  ```
+
+
+## geolocation.enableLocationMock<sup>9+</sup>
+
+enableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;) : void;
+
+Enable the position simulation function of a scene, and only one scene can be enabled at the same time.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | No | Indicates under what scenario the position simulation function is enabled. |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.enableLocationMock(request, (err, result) => {
+      if (err) {
+          console.log('enableLocationMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('enableLocationMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+## geolocation.enableLocationMock<sup>9+</sup>
+
+enableLocationMock(scenario?: LocationRequestScenario) : Promise&lt;void&gt;;
+
+Enable the position simulation function of a scene, and only one scene can be enabled at the same time.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | No | Indicates which scene's position simulation function is enabled. If this parameter is not carried, it means that the position simulation function of all scenes is enabled. |
+
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message.  |
+
+**Example**: 
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.enableLocationMock(request)
+  .then((result) => {
+      if (result) {
+        console.log('promise, enableLocationMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, enableLocationMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.disableLocationMock<sup>9+</sup>
+
+disableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;) : void;
+
+To disable the position simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | No | Indicates to disable the position simulation function of a scene. If this parameter is not carried, it means to disable the position simulation function of all scenes. |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.disableLocationMock(request, (err, result) => {
+      if (err) {
+          console.log('disableLocationMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('disableLocationMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.disableLocationMock<sup>9+</sup>
+
+disableLocationMock(scenario?: LocationRequestScenario) : Promise&lt;void&gt;;
+
+To disable the position simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | No | Indicates to disable the position simulation function of a scene. If this parameter is not carried, it means to disable the position simulation function of all scenes. |
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; | It is used to receive the execution result. If the execution is successful, it will return nullptr, otherwise it will return an error message |
+
+**Example**: 
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.disableLocationMock(request)
+  .then((result) => {
+      if (result) {
+        console.log('promise, disableLocationMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, disableLocationMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.setMockedLocations<sup>9+</sup>
+
+setMockedLocations(config: LocationMockConfig, callback: AsyncCallback&lt;void&gt;) : void;
+
+Set the simulated location information, and then report the simulated location at the time interval carried in the interface.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | config | LocationMockConfig | Yes | Indicates the configuration parameters of location simulation, including the time interval of simulation location reporting and the array of simulation locations. |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  var locations = [
+      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
+  ];
+  var config = {"timeInterval": 5, "locations": locations};
+  geolocation.setMockedLocations(config, (err, data) => {
+      if (err) {
+          console.log('setMockedLocations: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('setMockedLocations: data=' + JSON.stringify(data));
+      }
+  });
+  ```
+
+## geolocation.setMockedLocations<sup>9+</sup>
+
+setMockedLocations(config: LocationMockConfig) : Promise&lt;void&gt;;
+
+Set the simulated location information, and then report the simulated location at the time interval carried in the interface.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | config | LocationMockConfig | Yes | Indicates the configuration parameters of location simulation, including the time interval of simulation location reporting and the array of simulation locations. |
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message.  |
+
+**Example**: 
+  
+  ```js
+  var locations = [
+      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
+  ];
+  var config = {"timeInterval": 5, "locations":locations};
+  geolocation.setMockedLocations(config)
+  .then((result) => {
+      if (result) {
+        console.log('promise, setMockedLocations: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, setMockedLocations: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+
+## geolocation.enableReverseGeocodingMock<sup>9+</sup>
+
+enableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;) : void;
+
+Enable reverse geocoding simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  geolocation.enableReverseGeocodingMock((err, data) => {
+      if (err) {
+          console.log('enableReverseGeocodingMock: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('enableReverseGeocodingMock: data=' + JSON.stringify(data));
+      }
+  });
+  ```
+
+
+## geolocation.enableReverseGeocodingMock<sup>9+</sup>
+
+enableReverseGeocodingMock() : Promise&lt;void&gt;;
+
+Enable reverse geocoding simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**: 
+
+None
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  geolocation.enableReverseGeocodingMock()
+  .then((result) => {
+      if (result) {
+        console.log('promise, enableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, enableReverseGeocodingMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.disableReverseGeocodingMock<sup>9+</sup>
+
+disableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;) : void;
+
+Disable reverse geocoding simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**:
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message |
+
+**Example**: 
+  
+  ```js
+  geolocation.disableReverseGeocodingMock((err, result) => {
+      if (err) {
+          console.log('disableReverseGeocodingMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('disableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.disableReverseGeocodingMock<sup>9+</sup>
+
+disableReverseGeocodingMock() : Promise&lt;void&gt;;
+
+Disable reverse geocoding simulation function.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**: 
+
+None
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; |  It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  geolocation.disableReverseGeocodingMock()
+  .then((result) => {
+      if (result) {
+        console.log('promise, disableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, disableReverseGeocodingMock: error=' + JSON.stringify(error));
+      }
   });
   ```
 
 
+## geolocation.setReverseGeocodingMockInfo<sup>9+</sup>
+
+setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;, callback: AsyncCallback&lt;void&gt;) : void;
+
+Set the configuration information of the reverse geocoding simulation function, including the corresponding relationship between location and place name. If the location information is in the configuration information during the subsequent reverse geocoding query, the corresponding place name will be returned.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | mockInfos | Array&lt;ReverseGeocodingMockInfo&gt; | Yes | An array of configuration parameters indicating the inverse geocoding simulation function. The configuration parameters of the inverse geocoding simulation function include a location and a place name. |
+  | callback | AsyncCallback&lt;void&gt; | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  var mockInfos = [
+      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}},
+  ];
+  geolocation.setReverseGeocodingMockInfo(mockInfos, (err, data) => {
+      if (err) {
+          console.log('promise, setReverseGeocodingMockInfo, err:' + JSON.stringify(err));
+      } 
+      if (data) {
+          console.log('promise, setReverseGeocodingMockInfo, data:' + JSON.stringify(data));
+      }
+  });
+  ```
+
+
+## geolocation.setReverseGeocodingMockInfo<sup>9+</sup>
+
+setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;) : Promise&lt;void&gt;;
+
+Set the configuration information of the reverse geocoding simulation function, including the corresponding relationship between location and place name. If the location information is in the configuration information during the subsequent reverse geocoding query, the corresponding place name will be returned.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+  | Name| Type| Mandatory| Description|
+  | -------- | -------- | -------- | -------- |
+  | mockInfos | Array&lt;ReverseGeocodingMockInfo&gt; | Yes | An array of configuration parameters indicating the inverse geocoding simulation function. The configuration parameters of the inverse geocoding simulation function include a location and a place name. |
+
+**Return value**
+
+  | Name| Description|
+  | -------- | -------- |
+  | Promise&lt;void&gt; |  It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. |
+
+**Example**: 
+  
+  ```js
+  var mockInfos = [
+      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}},
+  ];
+  geolocation.setReverseGeocodingMockInfo(mockInfos)
+  .then((result) => {
+      if (result) {
+        console.log('promise, setReverseGeocodingMockInfo: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, setReverseGeocodingMockInfo: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
 
 ## LocationRequestPriority
 
@@ -1225,13 +1841,15 @@ Enumerates error codes of the location service.
 
 | Name| Default Value| Description|
 | -------- | -------- | -------- |
-| INPUT_PARAMS_ERROR | 101 | Incorrect input parameters.|
-| REVERSE_GEOCODE_ERROR | 102 | Failed to call the reverse geocoding API.|
-| GEOCODE_ERROR | 103 | Failed to call the geocoding API.|
-| LOCATOR_ERROR | 104 | Failed to obtain the location.|
-| LOCATION_SWITCH_ERROR | 105 | Failed to change the location service switch.|
-| LAST_KNOWN_LOCATION_ERROR | 106 | Failed to obtain the previous location.|
-| LOCATION_REQUEST_TIMEOUT_ERROR | 107 | Failed to obtain the location within the specified time.|
+| NOT_SUPPORTED<sup>9+</sup> | 100 | Indicates that the interface function is not supported. |
+| INPUT_PARAMS_ERROR<sup>7+</sup> | 101 | Incorrect input parameters.|
+| REVERSE_GEOCODE_ERROR<sup>7+</sup> | 102 | Failed to call the reverse geocoding API.|
+| GEOCODE_ERROR<sup>7+</sup> | 103 | Failed to call the geocoding API.|
+| LOCATOR_ERROR<sup>7+</sup> | 104 | Failed to obtain the location.|
+| LOCATION_SWITCH_ERROR<sup>7+</sup> | 105 | Failed to change the location service switch.|
+| LAST_KNOWN_LOCATION_ERROR<sup>7+</sup> | 106 | Failed to obtain the previous location.|
+| LOCATION_REQUEST_TIMEOUT_ERROR<sup>7+</sup> | 107 | Failed to obtain the location within the specified time.|
+| QUERY_COUNTRY_CODE_ERROR<sup>9+</sup> | 108 | Indicates that the country code query failed. |
 
 
 ## ReverseGeoCodeRequest
@@ -1279,24 +1897,25 @@ Defines a geographic location.
 
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| latitude | number | No| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.|
-| longitude | number | No| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .|
-| locale | string | No| Language used for the location description. **zh** indicates Chinese, and **en** indicates English.|
-| placeName | string | No| Landmark of the location.|
-| countryCode | string | No| Country code.|
-| countryName | string | No| Country name.|
-| administrativeArea | string | No| Administrative region name.|
-| subAdministrativeArea | string | No| Sub-administrative region name.|
-| locality | string | No| Locality information. |
-| subLocality | string | No| Sub-locality information. |
-| roadName | string | No| Road name.|
-| subRoadName | string | No| Auxiliary road information.|
-| premises | string | No| House information.|
-| postalCode | string | No| Postal code.|
-| phoneNumber | string | No| Phone number.|
-| addressUrl | string | No| Website URL.|
-| descriptions | Array&lt;string&gt; | No| Additional description.|
-| descriptionsSize | number | No| Total number of additional descriptions.|
+| latitude<sup>7+</sup> | number | No| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.|
+| longitude<sup>7+</sup> | number | No| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .|
+| locale<sup>7+</sup> | string | No| Language used for the location description. **zh** indicates Chinese, and **en** indicates English.|
+| placeName<sup>7+</sup> | string | No| Landmark of the location.|
+| countryCode<sup>7+</sup> | string | No| Country code.|
+| countryName<sup>7+</sup> | string | No| Country name.|
+| administrativeArea<sup>7+</sup> | string | No| Administrative region name.|
+| subAdministrativeArea<sup>7+</sup> | string | No| Sub-administrative region name.|
+| locality<sup>7+</sup> | string | No| Locality information. |
+| subLocality<sup>7+</sup> | string | No| Sub-locality information. |
+| roadName<sup>7+</sup> | string | No| Road name.|
+| subRoadName<sup>7+</sup> | string | No| Auxiliary road information.|
+| premises<sup>7+</sup> | string | No| House information.|
+| postalCode<sup>7+</sup> | string | No| Postal code.|
+| phoneNumber<sup>7+</sup> | string | No| Phone number.|
+| addressUrl<sup>7+</sup> | string | No| Website URL.|
+| descriptions<sup>7+</sup> | Array&lt;string&gt; | No| Additional description.|
+| descriptionsSize<sup>7+</sup> | number | No| Total number of additional descriptions.|
+| isFromMock<sup>9+</sup> | Boolean | No | Indicates whether the geographical name information comes from the reverse geocoding simulation function. |
 
 
 ## LocationRequest
@@ -1434,13 +2053,68 @@ Defines a location.
 
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| latitude | number | Yes| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.|
-| longitude | number | Yes| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .|
-| altitude | number | Yes| Location altitude, in meters.|
-| accuracy | number | Yes| Location accuracy, in meters.|
-| speed | number | Yes| Speed, in m/s.|
-| timeStamp | number | Yes| Location timestamp in the UTC format.|
-| direction | number | Yes| Direction information.|
-| timeSinceBoot | number | Yes| Location timestamp since boot.|
-| additions | Array&lt;string&gt; | No| Additional information.|
-| additionSize | number | No| Number of additional descriptions.|
+| latitude<sup>7+</sup> | number | Yes| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.|
+| longitude<sup>7+</sup> | number | Yes| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .|
+| altitude<sup>7+</sup> | number | Yes| Location altitude, in meters.|
+| accuracy<sup>7+</sup> | number | Yes| Location accuracy, in meters.|
+| speed<sup>7+</sup> | number | Yes| Speed, in m/s.|
+| timeStamp<sup>7+</sup> | number | Yes| Location timestamp in the UTC format.|
+| direction<sup>7+</sup> | number | Yes| Direction information.|
+| timeSinceBoot<sup>7+</sup> | number | Yes| Location timestamp since boot.|
+| additions<sup>7+</sup> | Array&lt;string&gt; | No| Additional information.|
+| additionSize<sup>7+</sup> | number | No| Number of additional descriptions.|
+| isFromMock<sup>9+</sup> | Boolean | No | Indicates whether the location information comes from the location simulation function. |
+
+
+## ReverseGeocodingMockInfo<sup>9+</sup>
+
+The configuration information of the reverse geocoding simulation function includes a location information and a place name information.
+
+**System capability**:SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| location | ReverseGeoCodeRequest | Yes | Indicates longitude and latitude information. |
+| geoAddress | GeoAddress | Yes | Represents a geographic location. |
+
+
+## LocationMockConfig<sup>9+</sup>
+
+The configuration parameters of the location simulation function include the time interval of the simulation position report and the array of simulation locations.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| timeInterval | number | Yes | Indicates the time interval of analog location reporting, in seconds. |
+| locations | Array&lt;Location&gt; | Yes | Represents an array of mocked locations. |
+
+
+## CountryCode<sup>9+</sup>
+
+The country code information structure contains the country code string and the source information of the country code.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| country | string | Yes | Represents the country code string. |
+| type | CountryCodeType | Yes | Indicates the source of country code information. |
+
+
+## CountryCodeType<sup>9+</sup>
+
+Country code source type.
+
+**System capability**: SystemCapability.Location.Location.Core
+
+| Name| Default Value| Description|
+| -------- | -------- | -------- |
+| COUNTRY_CODE_FROM_LOCALE | 1 | The country code obtained from the language configuration information of the globalization module. |
+| COUNTRY_CODE_FROM_SIM | 2 | The country code obtained from the SIM card. |
+| COUNTRY_CODE_FROM_LOCATION | 3 | Based on the user's location information, the country code is queried through reverse geocoding. |
+| COUNTRY_CODE_FROM_NETWORK | 4 | The country code obtained from the cellular network registration information. |
\ No newline at end of file
diff --git a/en/application-dev/reference/apis/js-apis-http.md b/en/application-dev/reference/apis/js-apis-http.md
index f1ef654168a4696ee3f0e54e361a5e81ac7dc6a9..9e0e0bf5160d01596d0c6e0969c3cc783712f45a 100644
--- a/en/application-dev/reference/apis/js-apis-http.md
+++ b/en/application-dev/reference/apis/js-apis-http.md
@@ -1,6 +1,8 @@
 # Data Request
 
->![](public_sys-resources/icon-note.gif) **NOTE**
+This module provides the HTTP data request capability. An application can initiate a data request over HTTP. Common HTTP methods include **GET**, **POST**, **OPTIONS**, **HEAD**, **PUT**, **DELETE**, **TRACE**, and **CONNECT**.
+
+>**NOTE**
 >
 >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 >
@@ -18,17 +20,17 @@ import http from '@ohos.net.http';
 
 // Each HttpRequest corresponds to an HttpRequestTask object and cannot be reused.
 let httpRequest = http.createHttp();
-// Subscribe to the HTTP response header, which is returned earlier than HttpRequest. You can subscribe to HTTP Response Header events based on service requirements.
-// on('headerReceive', AsyncCallback) will be replaced by on('headersReceive', Callback) in API version 8. 8+
+// Subscribe to the HTTP response header, which is returned earlier than httpRequest. Whether to subscribe to the HTTP response header is up to your decision.
+// on('headerReceive', AsyncCallback) is replaced by on('headersReceive', Callback) since API version 8.
 httpRequest.on('headersReceive', (header) => {
     console.info('header: ' + JSON.stringify(header));
 });
 httpRequest.request(
-    // Set the URL of the HTTP request. You need to define the URL. Set the parameters of the request in extraData.
+    // Customize EXAMPLE_URL on your own. It is up to you whether to add parameters to the URL.
     "EXAMPLE_URL",
     {
         method: http.RequestMethod.POST, // Optional. The default value is http.RequestMethod.GET.
-        // You can add the header field based on service requirements.
+        // You can add header fields based on service requirements.
         header: {
             'Content-Type': 'application/json'
         },
@@ -48,7 +50,7 @@ httpRequest.request(
             console.info('cookies:' + data.cookies); // 8+
         } else {
             console.info('error:' + JSON.stringify(err));
-            // Call the destroy() method to release resources after the call is complete.
+            // Call the destroy() method to release resources after HttpRequest is complete.
             httpRequest.destroy();
         }
     }
@@ -79,7 +81,7 @@ let httpRequest = http.createHttp();
 
 ## HttpRequest
 
-Defines an **HttpRequest** object. Before invoking HttpRequest APIs, you must call [createHttp\(\)](#httpcreatehttp) to create an **HttpRequestTask** object.
+HTTP request task. Before invoking APIs provided by **HttpRequest**, you must call [createHttp\(\)](#httpcreatehttp) to create an **HttpRequestTask** object.
 
 ### request
 
@@ -93,9 +95,9 @@ Initiates an HTTP request to a given URL. This API uses an asynchronous callback
 
 **Parameters**
 
-| Name  | Type                                                   | Mandatory| Description                   |
-| -------- | ------------------------------------------------------- | ---- | ----------------------- |
-| url      | string                                                  | Yes  | URL for initiating an HTTP request.|
+| Name  | Type                                          | Mandatory| Description                   |
+| -------- | ---------------------------------------------- | ---- | ----------------------- |
+| url      | string                                         | Yes  | URL for initiating an HTTP request.|
 | callback | AsyncCallback\<[HttpResponse](#httpresponse)\> | Yes  | Callback used to return the result.             |
 
 **Example**
@@ -169,15 +171,15 @@ Initiates an HTTP request to a given URL. This API uses a promise to return the
 
 **Parameters**
 
-| Name | Type              | Mandatory| Description                                              |
-| ------- | ------------------ | ---- | -------------------------------------------------- |
-| url     | string             | Yes  | URL for initiating an HTTP request.                           |
+| Name | Type              | Mandatory| Description                                           |
+| ------- | ------------------ | ---- | ----------------------------------------------- |
+| url     | string             | Yes  | URL for initiating an HTTP request.                        |
 | options | HttpRequestOptions | Yes  | Request options. For details, see [HttpRequestOptions](#httprequestoptions).|
 
 **Return value**
 
-| Type                 | Description                             |
-| :-------------------- | :-------------------------------- |
+| Type                                  | Description                             |
+| :------------------------------------- | :-------------------------------- |
 | Promise<[HttpResponse](#httpresponse)> | Promise used to return the result.|
 
 
@@ -225,8 +227,7 @@ on\(type: 'headerReceive', callback: AsyncCallback<Object\>\): void
 Registers an observer for HTTP Response Header events.
 
 >![](public_sys-resources/icon-note.gif) **NOTE**
->
-> This API has been deprecated. You are advised to use [on\('headersReceive'\)<sup>8+</sup>](#onheadersreceive8) instead.
+>This API has been deprecated. You are advised to use [on\('headersReceive'\)<sup>8+</sup>](#onheadersreceive8) instead.
 
 **System capability**: SystemCapability.Communication.NetStack
 
@@ -308,7 +309,6 @@ off\(type: 'headersReceive', callback?: Callback<Object\>\): void
 Unregisters the observer for HTTP Response Header events.
 
 >![](public_sys-resources/icon-note.gif) **NOTE**
->
 >You can pass the callback of the **on** function if you want to cancel listening for a certain type of event. If you do not pass the callback, you will cancel listening for all events.
 
 **System capability**: SystemCapability.Communication.NetStack
@@ -355,13 +355,13 @@ Specifies the type and value range of the optional parameters in the HTTP reques
 
 **System capability**: SystemCapability.Communication.NetStack
 
-| Name         | Type                                | Mandatory| Description                                                      |
-| -------------- | ------------------------------------ | ---- | ---------------------------------------------------------- |
-| method         | [RequestMethod](#requestmethod) | No  | Request method.                                                |
+| Name        | Type                                         | Mandatory| Description                                                        |
+| -------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
+| method         | [RequestMethod](#requestmethod)               | No  | Request method.                                                  |
 | extraData      | string \| Object  \| ArrayBuffer<sup>8+</sup> | No  | Additional data of the request.<br>- If the HTTP request uses a POST or PUT method, this parameter serves as the content of the HTTP request.<br>- If the HTTP request uses a GET, OPTIONS, DELETE, TRACE, or CONNECT method, this parameter is a supplement to the HTTP request parameters and will be added to the URL when the request is sent.<sup>8+</sup><br>- To pass in a string object, you first need to encode the object on your own.<sup>8+</sup> |
-| header         | Object                               | No  | HTTP request header. The default value is {'Content-Type': 'application/json'}.|
-| readTimeout    | number                               | No  | Read timeout duration. The default value is **60000**, in ms.           |
-| connectTimeout | number                               | No  | Connection timeout interval. The default value is **60000**, in ms.           |
+| header         | Object                                        | No  | HTTP request header. The default value is **{'Content-Type': 'application/json'}**.  |
+| readTimeout    | number                                        | No  | Read timeout duration. The default value is **60000**, in ms.             |
+| connectTimeout | number                                        | No  | Connection timeout interval. The default value is **60000**, in ms.             |
 
 ## RequestMethod
 
@@ -388,13 +388,13 @@ Enumerates the response codes for an HTTP request.
 
 | Name             | Value  | Description                                                        |
 | ----------------- | ---- | ------------------------------------------------------------ |
-| OK                | 200  | "OK." The request has been processed successfully. This return code is generally used for GET and POST requests.                           |
+| OK                | 200  | Request succeeded. The request has been processed successfully. This return code is generally used for GET and POST requests.                           |
 | CREATED           | 201  | "Created." The request has been successfully sent and a new resource is created.                          |
-| ACCEPTED          | 202  | "Accepted." The request has been accepted, but the processing has not been completed.                         |
+| ACCEPTED          | 202  | "Accepted." The request has been accepted, but the processing has not been completed.                        |
 | NOT_AUTHORITATIVE | 203  | "Non-Authoritative Information." The request is successful.                                      |
 | NO_CONTENT        | 204  | "No Content." The server has successfully fulfilled the request but there is no additional content to send in the response payload body.                      |
 | RESET             | 205  | "Reset Content." The server has successfully fulfilled the request and desires that the user agent reset the content.                                                  |
-| PARTIAL           | 206  | "Partial Content." The server has successfully fulfilled the partial GET request for a given resource.                      |
+| PARTIAL           | 206  | "Partial Content." The server has successfully fulfilled the partial GET request for a given resource.                     |
 | MULT_CHOICE       | 300  | "Multiple Choices." The requested resource corresponds to any one of a set of representations.                                                  |
 | MOVED_PERM        | 301  | "Moved Permanently." The requested resource has been assigned a new permanent URI and any future references to this resource will be redirected to this URI.|
 | MOVED_TEMP        | 302  | "Moved Temporarily." The requested resource is moved temporarily to a different URI.                                                  |
@@ -418,7 +418,7 @@ Enumerates the response codes for an HTTP request.
 | REQ_TOO_LONG      | 414  | "Request-URI Too Long." The Request-URI is too long for the server to process.             |
 | UNSUPPORTED_TYPE  | 415  | "Unsupported Media Type." The server is unable to process the media format in the request.                                   |
 | INTERNAL_ERROR    | 500  | "Internal Server Error." The server encounters an unexpected error that prevents it from fulfilling the request.                              |
-| NOT_IMPLEMENTED   | 501  | "Not Implemented." The server does not support the function required to fulfill the request.                       |
+| NOT_IMPLEMENTED   | 501  | "Not Implemented." The server does not support the function required to fulfill the request.                      |
 | BAD_GATEWAY       | 502  | "Bad Gateway." The server acting as a gateway or proxy receives an invalid response from the upstream server.|
 | UNAVAILABLE       | 503  | "Service Unavailable." The server is currently unable to process the request due to a temporary overload or system maintenance.      |
 | GATEWAY_TIMEOUT   | 504  | "Gateway Timeout." The server acting as a gateway or proxy does not receive requests from the remote server within the timeout period.        |
@@ -433,6 +433,17 @@ Defines the response to an HTTP request.
 | Name              | Type                                        | Mandatory| Description                                                        |
 | -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
 | result               | string \| Object \| ArrayBuffer<sup>8+</sup> | Yes  | Response content returned based on **Content-type** in the response header:<br>- application/json: a string in JSON format. If you want to use specific content in the response, you need to implement parsing of that content.<br>- application/octet-stream: ArrayBuffer<br>- Others: string|
-| responseCode         | [ResponseCode](#responsecode) \| number      | Yes  | Result code for an HTTP request. If the callback function is successfully executed, a result code defined in [ResponseCode](#responsecode) will be returned. Otherwise, an error code will be returned in the **err** field in **AsyncCallback**. The error code can be one of the following:<br>- 200: common error<br>- 202: parameter error<br>- 300: I/O error|
+| responseCode         | [ResponseCode](#responsecode) \| number      | Yes  | Result code for an HTTP request. If the callback function is successfully executed, a result code defined in [ResponseCode](#responsecode) will be returned. Otherwise, an error code will be returned in the **err** field in **AsyncCallback**. For details, see [Error Codes](#error-codes).|
 | header               | Object                                       | Yes  | Response header. The return value is a string in JSON format. If you want to use specific content in the response, you need to implement parsing of that content. Common fields and parsing methods are as follows:<br>- Content-Type: header['Content-Type'];<br>- Status-Line: header['Status-Line'];<br>- Date: header.Date/header['Date'];<br>- Server: header.Server/header['Server'];|
 | cookies<sup>8+</sup> | Array\<string\>                              | Yes  | Cookies returned by the server.                                      |
+
+## Error Codes
+
+| Error Code| Description                                                        |
+| ------ | ------------------------------------------------------------ |
+| -1     | Incorrect parameters.                                                  |
+| 3      | Incorrect URL format.                                               |
+| 4      | Built-in request function, protocol, or option not found during build.                  |
+| 5      | Unable to resolve the proxy.                                              |
+| 6      | Unable to resolve the host.                                              |
+| 7      | Unable to connect to the proxy or host.                                        |
diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md
index 5c45f18dc00dba05a5615311c968f342cd6684d3..0abc724302fcf89b86421b90c0bb507f1894b312 100644
--- a/en/application-dev/reference/apis/js-apis-i18n.md
+++ b/en/application-dev/reference/apis/js-apis-i18n.md
@@ -117,12 +117,12 @@ setSystemLanguage(language: string): boolean
 
 Sets the system language.
 
+This is a system API.
+
 **Permission required**: ohos.permission.UPDATE_CONFIGURATION
 
 **System capability**: SystemCapability.Global.I18n
 
-**System API**: This is a system API and cannot be called by third-party applications.
-
 **Parameters**
 | Name     | Type    | Description   |
 | -------- | ------ | ----- |
@@ -211,12 +211,12 @@ setSystemRegion(region: string): boolean
 
 Sets the system region.
 
+This is a system API.
+
 **Permission required**: ohos.permission.UPDATE_CONFIGURATION
 
 **System capability**: SystemCapability.Global.I18n
 
-**System API**: This is a system API and cannot be called by third-party applications.
-
 **Parameters**
 | Name   | Type    | Description   |
 | ------ | ------ | ----- |
@@ -258,12 +258,12 @@ setSystemLocale(locale: string): boolean
 
 Sets the system locale.
 
+This is a system API.
+
 **Permission required**: ohos.permission.UPDATE_CONFIGURATION
 
 **System capability**: SystemCapability.Global.I18n
 
-**System API**: This is a system API and cannot be called by third-party applications.
-
 **Parameters**
 | Name   | Type    | Description             |
 | ------ | ------ | --------------- |
@@ -673,6 +673,32 @@ Formats a phone number.
   phonenumberfmt.format("15812312312");
   ```
 
+### getLocationName<sup>8+</sup>
+
+static getLocationName(number: string, locale: string): string
+
+Obtains the home location of a phone number.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Parameters**
+| Name   | Type    | Mandatory  | Description        |
+| ------ | ------ | ---- | ---------- |
+| number | string | Yes   | Phone number.|
+| locale | string | Yes   | Locale ID.|
+
+**Return value**
+| Type    | Description        |
+| ------ | ---------- |
+| string | Home location of the phone number.|
+
+**Example**
+  ```
+  var location = i18n.PhoneNumberFormat.getLocationName('15812312345', 'zh-CN');
+  ```
+
+
+
 
 ## PhoneNumberFormatOptions<sup>8+</sup>
 
@@ -1548,3 +1574,135 @@ Obtains the offset between the time zone represented by a **TimeZone** object an
   var timezone = i18n.getTimeZone();
   timezone.getOffset(1234567890);
   ```
+
+### getAvailableIDs<sup>9+</sup>
+
+static getAvailableIDs(): Array&lt;string&gt;
+
+Obtains the list of time zone IDs supported by the system.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Return value**
+| Type    | Description                      |
+| ------ | ----------------------- |
+| Array&lt;string&gt; | List of time zone IDs supported by the system.|
+
+**Example**
+  ```
+  var ids = i18n.TimeZone.getAvailableIDs();
+  ```
+
+
+### getAvailableZoneCityIDs<sup>9+</sup>
+
+static getAvailableZoneCityIDs(): Array&lt;string&gt;
+
+Obtains the list of time zone city IDs supported by the system.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Return value**
+| Type    | Description                      |
+| ------ | ----------------------- |
+| Array&lt;string&gt; | List of time zone city IDs supported by the system.|
+
+**Example**
+  ```
+  var cityIDs = i18n.TimeZone.getAvailableZoneCityIDs();
+  ```
+
+
+### getCityDisplayName<sup>9+</sup>
+
+static getCityDisplayName(cityID: string, locale: string): string
+
+Obtains the localized display of a time zone city in the specified locale.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Parameters**
+| Name   | Type    | Mandatory  | Description   |
+| ------ | ------ | ---- | ----- |
+| cityID | string | Yes   | Time zone city ID.|
+| locale | string | Yes   | Locale ID.|
+
+**Return value**
+| Type    | Description                     |
+| ------ | ----------------------- |
+| string | Localized display of the time zone city in the specified locale.|
+
+**Example**
+  ```
+  var displayName = i18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN");
+  ```
+
+
+### getTimezoneFromCity<sup>9+</sup>
+
+static getTimezoneFromCity(cityID: string): TimeZone
+
+Obtains the **TimeZone** object corresponding to the specified time zone city ID.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Parameters**
+| Name   | Type    | Mandatory  | Description   |
+| ------ | ------ | ---- | ----- |
+| cityID | string | Yes   | Time zone city ID.|
+
+**Return value**
+| Type    | Description                     |
+| ------ | ----------------------- |
+| TimeZone | **TimeZone** object corresponding to the specified time zone city ID.|
+
+**Example**
+  ```
+  var timezone = i18n.TimeZone.getTimezoneFromCity("Shanghai");
+  ```
+
+
+## i18n.setUsingLocalDigit<sup>9+</sup>
+
+setUsingLocalDigit(flag: boolean): boolean
+
+Sets whether to turn on the local digit switch.
+This is a system API.
+
+**Permission required**: ohos.permission.UPDATE_CONFIGURATION
+
+**System capability**: SystemCapability.Global.I18n
+
+**Parameters**
+| Name   | Type    | Mandatory  | Description   |
+| ------ | ------ | ---- | ----- |
+| flag | boolean | Yes   | Whether to turn on the local digit switch. The value **true** means to turn on the local digit switch, and the value **false** indicates the opposite.|
+
+**Return value**
+| Type      | Description          |
+| -------- | ------------ |
+| boolean | Result indicating whether the local digit switch is successfully set. The value **true** indicates that the local digit switch is successfully set, and the value **false** indicates the opposite.|
+
+**Example**
+  ```
+  var status = i18n.setUsingLocalDigit(true);
+  ```
+
+
+## i18n.getUsingLocalDigit<sup>9+</sup>
+
+getUsingLocalDigit(): boolean
+
+Checks whether the local digit switch is turned on.
+
+**System capability**: SystemCapability.Global.I18n
+
+**Return value**
+| Type      | Description          |
+| -------- | ------------ |
+| boolean | Result indicating whether the local digit switch is turned on. The value **true** indicates that the local digit switch is turned on, and the value **false** indicates the opposite.|
+
+**Example**
+  ```
+  var status = i18n.getUsingLocalDigit();
+  ```
diff --git a/en/application-dev/reference/apis/js-apis-image.md b/en/application-dev/reference/apis/js-apis-image.md
index 85ff0550112bbfc81e22925c3a69ca7ac813cfab..13701cecf67e947c876789d0f1f4acde7f62a601 100644
--- a/en/application-dev/reference/apis/js-apis-image.md
+++ b/en/application-dev/reference/apis/js-apis-image.md
@@ -1,5 +1,7 @@
 # Image Processing
 
+The **Image** module provides APIs for image processing. You can use the APIs to create a **PixelMap** object with specified properties or read image pixel data (even in an area).
+
 > **NOTE**
 >
 > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -11,11 +13,12 @@ import image from '@ohos.multimedia.image';
 ```
 
 ## image.createPixelMap<sup>8+</sup>
+
 createPixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise\<PixelMap>
 
 Creates a **PixelMap** object. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -34,7 +37,7 @@ Creates a **PixelMap** object. This API uses a promise to return the result.
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts)
     .then((pixelmap) => {
@@ -47,7 +50,7 @@ createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: As
 
 Creates a **PixelMap** object. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -61,10 +64,15 @@ Creates a **PixelMap** object. This API uses an asynchronous callback to return
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
-image.createPixelMap(color, opts, (pixelmap) => {
-        })
+image.createPixelMap(color, opts, (error, pixelmap) => {
+    if(error) {
+        console.log('Failed to create pixelmap.');
+    } else {
+        console.log('Succeeded in creating pixelmap.');
+    }
+})
 ```
 
 ## PixelMap<sup>7+</sup>
@@ -73,11 +81,11 @@ Provides APIs to read or write image pixel map data and obtain image pixel map i
 
  ### Attributes
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
-| Name                   | Type   | Readable| Writable| Description                      |
-| ----------------------- | ------- | ---- | ---- | -------------------------- |
-| isEditable<sup>7+</sup> | boolean | Yes  | No  | Whether the image pixel map is editable.|
+| Name      | Type   | Readable| Writable| Description                      |
+| ---------- | ------- | ---- | ---- | -------------------------- |
+| isEditable | boolean | Yes  | No  | Whether the image pixel map is editable.|
 
 ### readPixelsToBuffer<sup>7+</sup>
 
@@ -85,24 +93,24 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
 
 Reads image pixel map data and writes the data to an **ArrayBuffer**. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
-| Name| Type       | Mandatory| Description                                                        |
-| ------ | ----------- | ---- | ------------------------------------------------------------ |
-| dst    | ArrayBuffer | Yes  | Buffer to which the image pixel map data will be written.|
+| Name| Type       | Mandatory| Description                                                                                                 |
+| ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- |
+| dst    | ArrayBuffer | Yes  | Buffer to which the image pixel map data will be written. The buffer size is obtained by calling **getPixelBytesNumber**.|
 
 **Return value**
 
 | Type          | Description                                           |
-| :------------- | :---------------------------------------------- |
-| Promise\<void> | Promise used to return the operation result. If the operation fails, an error message is returned.|
+| -------------- | ----------------------------------------------- |
+| Promise\<void> | Promise used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
-const readBuffer = new ArrayBuffer(400);
+const readBuffer = new ArrayBuffer(96);
 pixelmap.readPixelsToBuffer(readBuffer).then(() => {
     console.log('Succeeded in reading image pixel data.'); // Called if the condition is met.
 }).catch(error => {
@@ -116,19 +124,19 @@ readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void
 
 Reads image pixel map data and writes the data to an **ArrayBuffer**. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
-| Name  | Type                | Mandatory| Description                                                        |
-| -------- | -------------------- | ---- | ------------------------------------------------------------ |
-| dst      | ArrayBuffer          | Yes  | Buffer to which the image pixel map data will be written.|
-| callback | AsyncCallback\<void> | Yes  | Callback used to return the operation result. If the operation fails, an error message is returned.                              |
+| Name  | Type                | Mandatory| Description                                                                                                 |
+| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- |
+| dst      | ArrayBuffer          | Yes  | Buffer to which the image pixel map data will be written. The buffer size is obtained by calling **getPixelBytesNumber**.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.                                                                       |
 
 **Example**
 
 ```js
-const readBuffer = new ArrayBuffer(400);
+const readBuffer = new ArrayBuffer(96);
 pixelmap.readPixelsToBuffer(readBuffer, (err, res) => {
     if(err) {
         console.log('Failed to read image pixel data.');  // Called if no condition is met.
@@ -144,7 +152,7 @@ readPixels(area: PositionArea): Promise\<void>
 
 Reads image pixel map data in an area. This API uses a promise to return the data read.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -156,7 +164,7 @@ Reads image pixel map data in an area. This API uses a promise to return the dat
 
 | Type          | Description                                               |
 | :------------- | :-------------------------------------------------- |
-| Promise\<void> | Promise used to return the operation result. If the operation fails, an error message is returned.|
+| Promise\<void> | Promise used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
@@ -175,20 +183,20 @@ readPixels(area: PositionArea, callback: AsyncCallback\<void>): void
 
 Reads image pixel map data in an area. This API uses an asynchronous callback to return the data read.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
 | Name  | Type                          | Mandatory| Description                          |
 | -------- | ------------------------------ | ---- | ------------------------------ |
 | area     | [PositionArea](#positionarea7) | Yes  | Area from which the image pixel map data will be read.      |
-| callback | AsyncCallback\<void>           | Yes  | Callback used to return the operation result. If the operation fails, an error message is returned.|
+| callback | AsyncCallback\<void>           | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts, (err, pixelmap) => {
     if(pixelmap == undefined){
@@ -211,7 +219,7 @@ writePixels(area: PositionArea): Promise\<void>
 
 Writes image pixel map data to an area. This API uses a promise to return the operation result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -223,13 +231,13 @@ Writes image pixel map data to an area. This API uses a promise to return the op
 
 | Type          | Description                                               |
 | :------------- | :-------------------------------------------------- |
-| Promise\<void> | Promise used to return the operation result. If the operation fails, an error message is returned.|
+| Promise\<void> | Promise used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts)
     .then( pixelmap => {
@@ -265,21 +273,21 @@ writePixels(area: PositionArea, callback: AsyncCallback\<void>): void
 
 Writes image pixel map data to an area. This API uses an asynchronous callback to return the operation result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
 | Name   | Type                          | Mandatory| Description                          |
 | --------- | ------------------------------ | ---- | ------------------------------ |
 | area      | [PositionArea](#positionarea7) | Yes  | Area to which the image pixel map data will be written.          |
-| callback: | AsyncCallback\<void>           | Yes  | Callback used to return the operation result. If the operation fails, an error message is returned.|
+| callback  | AsyncCallback\<void>           | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
 const area = new ArrayBuffer(400);
 pixelmap.writePixels(area, (error) => {
-    if (error!=undefined) {
+    if (error != undefined) {
 		console.info('Failed to write pixelmap into the specified area.');
 	} else {
 	    const readArea = {
@@ -298,7 +306,7 @@ writeBufferToPixels(src: ArrayBuffer): Promise\<void>
 
 Reads image data in an **ArrayBuffer** and writes the data to a **PixelMap** object. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -310,14 +318,14 @@ Reads image data in an **ArrayBuffer** and writes the data to a **PixelMap** obj
 
 | Type          | Description                                           |
 | -------------- | ----------------------------------------------- |
-| Promise\<void> | Promise used to return the operation result. If the operation fails, an error message is returned.|
+| Promise\<void> | Promise used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
 const pixelMap = new ArrayBuffer(400);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 pixelMap.writeBufferToPixels(color).then(() => {
     console.log("Succeeded in writing data from a buffer to a PixelMap.");
 }).catch((err) => {
@@ -331,21 +339,21 @@ writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\<void>): void
 
 Reads image data in an **ArrayBuffer** and writes the data to a **PixelMap** object. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
 | Name  | Type                | Mandatory| Description                          |
 | -------- | -------------------- | ---- | ------------------------------ |
 | src      | ArrayBuffer          | Yes  | Buffer from which the image data will be read.                |
-| callback | AsyncCallback\<void> | Yes  | Callback used to return the operation result. If the operation fails, an error message is returned.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
 
 **Example**
 
 ```js
-const color = new ArrayBuffer(96);\
+const color = new ArrayBuffer(96);
 const pixelMap = new ArrayBuffer(400);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 pixelMap.writeBufferToPixels(color, function(err) {
     if (err) {
         console.error("Failed to write data from a buffer to a PixelMap.");
@@ -362,7 +370,7 @@ getImageInfo(): Promise\<ImageInfo>
 
 Obtains pixel map information of this image. This API uses a promise to return the information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Return value**
 
@@ -387,7 +395,7 @@ getImageInfo(callback: AsyncCallback\<ImageInfo>): void
 
 Obtains pixel map information of this image. This API uses an asynchronous callback to return the information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
@@ -399,7 +407,7 @@ Obtains pixel map information of this image. This API uses an asynchronous callb
 
 ```js
 pixelmap.getImageInfo((imageInfo) => { 
-    console.log("Succeeded in obtaining the image pixel map information..");
+    console.log("Succeeded in obtaining the image pixel map information.");
 })
 ```
 
@@ -407,21 +415,21 @@ pixelmap.getImageInfo((imageInfo) => {
 
 getBytesNumberPerRow(): number
 
-Obtains the number of bytes per line of the image pixel map.
+Obtains the number of bytes per row of this image pixel map.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Return value**
 
 | Type  | Description                |
 | ------ | -------------------- |
-| number | Number of bytes per line.|
+| number | Number of bytes per row.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts, (err,pixelmap) => {
     let rowCount = pixelmap.getBytesNumberPerRow();
@@ -432,9 +440,9 @@ image.createPixelMap(color, opts, (err,pixelmap) => {
 
 getPixelBytesNumber(): number
 
-Obtains the total number of bytes of the image pixel map.
+Obtains the total number of bytes of this image pixel map.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Return value**
 
@@ -448,25 +456,410 @@ Obtains the total number of bytes of the image pixel map.
 let pixelBytesNumber = pixelmap.getPixelBytesNumber();
 ```
 
+### getDensity<sup>9+</sup>
+
+getDensity():number
+
+Obtains the density of this image pixel map.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type  | Description           |
+| ------ | --------------- |
+| number | Density of the image pixel map.|
+
+**Example**
+
+```js
+let getDensity = pixelmap.getDensity();
+```
+
+### opacity<sup>9+</sup>
+
+opacity(rate: number, callback: AsyncCallback\<void>): void
+
+Sets an opacity rate for this image pixel map. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                          |
+| -------- | -------------------- | ---- | ------------------------------ |
+| rate     | number               | Yes  | Opacity rate to set. The value ranges from 0 to 1.  |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.opacity(0.5);
+}
+```
+
+### opacity<sup>9+</sup>
+
+opacity(rate: number): Promise\<void>
+
+Sets an opacity rate for this image pixel map. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                       |
+| ------ | ------ | ---- | --------------------------- |
+| rate   | number | Yes  | Opacity rate to set. The value ranges from 0 to 1.|
+
+**Return value**
+
+| Type          | Description                                           |
+| -------------- | ----------------------------------------------- |
+| Promise\<void> | Promise used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.opacity(0.5);
+}
+```
+
+### createAlphaPixelmap<sup>9+</sup>
+
+createAlphaPixelmap(): Promise\<PixelMap>
+
+Creates a **PixelMap** object that contains only the alpha channel information. This object can be used for the shadow effect. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Return value**
+
+| Type                            | Description                       |
+| -------------------------------- | --------------------------- |
+| Promise\<[PixelMap](#pixelmap7)> | Promise used to return the **PixelMap** object.|
+
+**Example**
+
+```js
+pixelMap.createAlphaPixelmap(async (err, alphaPixelMap) => {
+    if (alphaPixelMap == undefined) {
+        console.info('Failed to obtain new pixel map.');
+    } else {
+        console.info('Succeed in obtaining new pixel map.');
+    }
+})
+```
+
+### createAlphaPixelmap<sup>9+</sup>
+
+createAlphaPixelmap(callback: AsyncCallback\<PixelMap>): void
+
+Creates a **PixelMap** object that contains only the alpha channel information. This object can be used for the shadow effect. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                    | Mandatory| Description                    |
+| -------- | ------------------------ | ---- | ------------------------ |
+| callback | AsyncCallback\<PixelMap> | Yes  | Callback used to return the **PixelMap** object.|
+
+**Example**
+
+```js
+let pixelMap = await imageSource.createPixelMap();
+if (pixelMap != undefined) {
+    pixelMap.createAlphaPixelmap(async (err, alphaPixelMap) => {
+        console.info('Failed to obtain new pixel map.');    
+    })
+} else {
+    console.info('Succeed in obtaining new pixel map.');
+}
+```
+
+### scale<sup>9+</sup>
+
+scale(x: number, y: number, callback: AsyncCallback\<void>): void
+
+Scales this image based on the input width and height. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                           |
+| -------- | -------------------- | ---- | ------------------------------- |
+| x        | number               | Yes  | Scaling ratio of the width.|
+| y        | number               | Yes  | Scaling ratio of the height.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned. |
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.scale(2.0, 1.0);
+}
+```
+
+### scale<sup>9+</sup>
+
+scale(x: number, y: number): Promise\<void>
+
+Scales this image based on the input width and height. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                           |
+| ------ | ------ | ---- | ------------------------------- |
+| x      | number | Yes  | Scaling ratio of the width.|
+| y      | number | Yes  | Scaling ratio of the height.|
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.scale(2.0, 1.0);
+}
+```
+
+### translate<sup>9+</sup>
+
+translate(x: number, y: number, callback: AsyncCallback\<void>): void
+
+Translates this image based on the input coordinates. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                         |
+| -------- | -------------------- | ---- | ----------------------------- |
+| x        | number               | Yes  | X coordinate to translate.                 |
+| y        | number               | Yes  | Y coordinate to translate.                 |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.translate(3.0, 1.0);
+}
+```
+
+### translate<sup>9+</sup>
+
+translate(x: number, y: number): Promise\<void>
+
+Translates this image based on the input coordinates. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description       |
+| ------ | ------ | ---- | ----------- |
+| x      | number | Yes  | X coordinate to translate.|
+| y      | number | Yes  | Y coordinate to translate.|
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.translate(3.0, 1.0);
+}
+```
+
+### rotate<sup>9+</sup>
+
+rotate(angle: number, callback: AsyncCallback\<void>): void
+
+Rotates this image based on the input angle. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                         |
+| -------- | -------------------- | ---- | ----------------------------- |
+| angle    | number               | Yes  | Angle to rotate.             |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.rotate(90.0);
+}
+```
+
+### rotate<sup>9+</sup>
+
+rotate(angle: number): Promise\<void>
+
+Rotates this image based on the input angle. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type  | Mandatory| Description                         |
+| ------ | ------ | ---- | ----------------------------- |
+| angle  | number | Yes  | Angle to rotate.             |
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.rotate(90.0);
+}
+```
+
+### flip<sup>9+</sup>
+
+flip(horizontal: boolean, vertical: boolean, callback: AsyncCallback\<void>): void
+
+Flips this image horizontally or vertically, or both. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name    | Type                | Mandatory| Description                         |
+| ---------- | -------------------- | ---- | ----------------------------- |
+| horizontal | boolean              | Yes  | Whether to flip the image horizontally.                   |
+| vertical   | boolean              | Yes  | Whether to flip the image vertically.                   |
+| callback   | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.flip(false, true);
+}
+```
+
+### flip<sup>9+</sup>
+
+flip(horizontal: boolean, vertical: boolean): Promise\<void>
+
+Flips this image horizontally or vertically, or both. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name    | Type   | Mandatory| Description     |
+| ---------- | ------- | ---- | --------- |
+| horizontal | boolean | Yes  | Whether to flip the image horizontally.|
+| vertical   | boolean | Yes  | Whether to flip the image vertically.|
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.flip(false, true);
+}
+```
+
+### crop<sup>9+</sup>
+
+crop(region: Region, callback: AsyncCallback\<void>): void
+
+Crops this image based on the input size. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name  | Type                | Mandatory| Description                         |
+| -------- | -------------------- | ---- | ----------------------------- |
+| region   | [Region](#region7)   | Yes  | Size of the image after cropping.                 |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the operation fails, an error message is returned.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.crop(3x3);
+}
+```
+
+### crop<sup>9+</sup>
+
+crop(region: Region): Promise\<void>
+
+Crops this image based on the input size. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+**Parameters**
+
+| Name| Type              | Mandatory| Description       |
+| ------ | ------------------ | ---- | ----------- |
+| region | [Region](#region7) | Yes  | Size of the image after cropping.|
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+async function () {
+	await pixelMap.crop(3x3);
+}
+```
+
 ### release<sup>7+</sup>
 
 release():Promise\<void>
 
 Releases this **PixelMap** object. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Return value**
 
-| Type          | Description              |
-| -------------- | ------------------ |
-| Promise\<void> | Promise used to return the operation result.|
+| Type          | Description                           |
+| -------------- | ------------------------------- |
+| Promise\<void> | Promise used to return the result.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts, (pixelmap) => {
     pixelmap.release().then(() => {
@@ -483,25 +876,23 @@ release(callback: AsyncCallback\<void>): void
 
 Releases this **PixelMap** object. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 **Parameters**
 
 | Name    | Type                | Mandatory| Description              |
 | -------- | -------------------- | ---- | ------------------ |
-| callback | AsyncCallback\<void> | Yes  | Callback used to return the operation result.|
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.|
 
 **Example**
 
 ```js
 const color = new ArrayBuffer(96);
-let bufferArr = new Unit8Array(color);
+let bufferArr = new Uint8Array(color);
 let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts, (pixelmap) => {
     pixelmap.release().then(() => {
 	    console.log('Succeeded in releasing pixelmap object.');
-    }).catch(error => {
-	    console.log('Failed to release pixelmap object.');
     })
 })
 ```
@@ -512,7 +903,7 @@ createImageSource(uri: string): ImageSource
 
 Creates an **ImageSource** instance based on the URI.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -533,18 +924,45 @@ let path = this.context.getApplicationContext().fileDirs + "test.jpg";
 const imageSourceApi = image.createImageSource(path);
 ```
 
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(uri: string, options: SourceOptions): ImageSource
+
+Creates an **ImageSource** instance based on the URI.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name | Type                           | Mandatory| Description                               |
+| ------- | ------------------------------- | ---- | ----------------------------------- |
+| uri     | string                          | Yes  | Image path. Currently, only the application sandbox path is supported. |
+| options | [SourceOptions](#sourceoptions9) | Yes  | Image properties, including the image index and default property value.|
+
+**Return value**
+
+| Type                       | Description                                        |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns **undefined** otherwise.|
+
+**Example**
+
+```js
+const imageSourceApi = image.createImageSource('/sdcard/test.jpg');
+```
+
 ## image.createImageSource<sup>7+</sup>
 
 createImageSource(fd: number): ImageSource
 
 Creates an **ImageSource** instance based on the file descriptor.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
-| Name| Type  | Mandatory| Description          |
-| ------ | ------ | ---- | -------------- |
+| Name| Type  | Mandatory| Description         |
+| ------ | ------ | ---- | ------------- |
 | fd     | number | Yes  | File descriptor.|
 
 **Return value**
@@ -559,13 +977,144 @@ Creates an **ImageSource** instance based on the file descriptor.
 const imageSourceApi = image.createImageSource(0);
 ```
 
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(fd: number, options: SourceOptions): ImageSource
+
+Creates an **ImageSource** instance based on the file descriptor.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name | Type                           | Mandatory| Description                               |
+| ------- | ------------------------------- | ---- | ----------------------------------- |
+| fd      | number                          | Yes  | File descriptor.                     |
+| options | [SourceOptions](#sourceoptions9) | Yes  | Image properties, including the image index and default property value.|
+
+**Return value**
+
+| Type                       | Description                                        |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns **undefined** otherwise.|
+
+**Example**
+
+```js
+const imageSourceApi = image.createImageSource(fd);
+```
+
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(buf: ArrayBuffer): ImageSource
+
+Creates an **ImageSource** instance based on the buffer.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name| Type       | Mandatory| Description            |
+| ------ | ----------- | ---- | ---------------- |
+| buf    | ArrayBuffer | Yes  | Array of image buffers.|
+
+**Example**
+
+```js
+const buf = new ArrayBuffer(96);
+const imageSourceApi = image.createImageSource(buf);
+```
+
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
+
+Creates an **ImageSource** instance based on the buffer.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name| Type                            | Mandatory| Description                                |
+| ------ | -------------------------------- | ---- | ------------------------------------ |
+| buf    | ArrayBuffer                      | Yes  | Array of image buffers.                    |
+| options | [SourceOptions](#sourceoptions9) | Yes  | Image properties, including the image index and default property value.|
+
+**Return value**
+
+| Type                       | Description                                        |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns **undefined** otherwise.|
+
+**Example**
+
+```js
+const data = new ArrayBuffer(112);
+const imageSourceApi = image.createImageSource(data);
+```
+
+## image.CreateIncrementalSource<sup>9+</sup>
+
+CreateIncrementalSource(buf: ArrayBuffer): ImageSource
+
+Creates an **ImageSource** instance in incremental mode based on the buffer.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name | Type       | Mandatory| Description     |
+| ------- | ------------| ---- | ----------|
+| buf     | ArrayBuffer | Yes  | Incremental data.|
+
+**Return value**
+
+| Type                       | Description                             |
+| --------------------------- | --------------------------------- |
+| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns undefined otherwise.|
+
+**Example**
+
+```js
+const buf = new ArrayBuffer(96);
+const imageSourceApi = image.CreateIncrementalSource(buf);
+```
+
+## image.CreateIncrementalSource<sup>9+</sup>
+
+CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
+
+Creates an **ImageSource** instance in incremental mode based on the buffer.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name | Type                           | Mandatory| Description                                |
+| ------- | ------------------------------- | ---- | ------------------------------------ |
+| buf     | ArrayBuffer                     | Yes  | Incremental data.                          |
+| options | [SourceOptions](#sourceoptions9) | No  | Image properties, including the image index and default property value.|
+
+**Return value**
+
+| Type                       | Description                             |
+| --------------------------- | --------------------------------- |
+| [ImageSource](#imagesource) | Returns the **ImageSource** instance if the operation is successful; returns undefined otherwise.|
+
+**Example**
+
+```js
+const buf = new ArrayBuffer(96);
+const imageSourceApi = image.CreateIncrementalSource(buf);
+```
+
 ## ImageSource
 
 Provides APIs to obtain image information. Before calling any API in **ImageSource**, you must use **createImageSource** to create an **ImageSource** instance.
 
 ### Attributes
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 | Name            | Type          | Readable| Writable| Description                                                        |
 | ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
@@ -577,7 +1126,7 @@ getImageInfo(index: number, callback: AsyncCallback\<ImageInfo>): void
 
 Obtains information about an image with the specified index. This API uses an asynchronous callback to return the information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -604,7 +1153,7 @@ getImageInfo(callback: AsyncCallback\<ImageInfo>): void
 
 Obtains information about this image. This API uses an asynchronous callback to return the information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -626,7 +1175,7 @@ getImageInfo(index?: number): Promise\<ImageInfo>
 
 Obtains information about an image with the specified index. This API uses a promise to return the image information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -657,7 +1206,7 @@ getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string
 
 Obtains the value of a property with the specified index in this image. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
  **Parameters**
 
@@ -668,8 +1217,8 @@ Obtains the value of a property with the specified index in this image. This API
 
 **Return value**
 
-| Type            | Description                                                        |
-| ---------------- | ------------------------------------------------------------ |
+| Type            | Description                                                             |
+| ---------------- | ----------------------------------------------------------------- |
 | Promise\<string> | Promise used to return the property value. If the operation fails, the default value is returned.|
 
 **Example**
@@ -687,7 +1236,7 @@ getImageProperty(key:string, callback: AsyncCallback\<string>): void
 
 Obtains the value of a property with the specified index in this image. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
  **Parameters**
 
@@ -714,14 +1263,14 @@ getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCa
 
 Obtains the value of a property in this image. This API uses an asynchronous callback to return the property value in a string.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
-| Name  | Type                                                | Mandatory| Description                                                        |
-| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
-| key      | string                                               | Yes  | Name of the property.                                                |
-| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | Yes  | Image properties, including the image index and default property value.                        |
+| Name  | Type                                                | Mandatory| Description                                                         |
+| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- |
+| key      | string                                               | Yes  | Name of the property.                                                 |
+| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | Yes  | Image properties, including the image index and default property value.                         |
 | callback | AsyncCallback\<string>                               | Yes  | Callback used to return the property value. If the operation fails, the default value is returned.|
 
 **Example**
@@ -737,13 +1286,128 @@ imageSourceApi.getImageProperty("BitsPerSample",property,(error,data) => {
 })
 ```
 
+### modifyImageProperty<sup>9+</sup>
+
+modifyImageProperty(key: string, value: string): Promise\<void>
+
+Modifies the value of a property in this image. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name | Type  | Mandatory| Description        |
+| ------- | ------ | ---- | ------------ |
+| key     | string | Yes  | Name of the property.|
+| value   | string | Yes  | New value of the property.    |
+
+**Return value**
+
+| Type          | Description                       |
+| -------------- | --------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+imageSourceApi.modifyImageProperty("ImageWidth", "120")
+            .then(() => {
+                const w = imageSourceApi.getImageProperty("ImageWidth")
+                console.info('w', w);
+            })
+```
+
+### modifyImageProperty<sup>9+</sup>
+
+modifyImageProperty(key: string, value: string, callback: AsyncCallback\<void>): void
+
+Modifies the value of a property in this image. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name  | Type               | Mandatory| Description                          |
+| -------- | ------------------- | ---- | ------------------------------ |
+| key      | string              | Yes  | Name of the property.                  |
+| value    | string              | Yes  | New value of the property.                      |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+imageSourceApi.modifyImageProperty("ImageWidth", "120",() => {})
+```
+
+### updateData<sup>9+</sup>
+
+updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number): Promise\<void>
+
+Updates incremental data. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name      | Type       | Mandatory| Description        |
+| ---------- | ----------- | ---- | ------------ |
+| buf        | ArrayBuffer | Yes  | Incremental data.  |
+| isFinished | boolean     | Yes  | Whether the update is complete.|
+| value      | number      | No  | Offset for data reading.    |
+| length     | number      | No  | Array length.    |
+
+**Return value**
+
+| Type          | Description                      |
+| -------------- | -------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+const array = new ArrayBuffer(100);
+imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
+            console.info('Succeeded in updating data.');
+        })
+```
+
+
+### updateData<sup>9+</sup>
+
+updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback\<void>): void
+
+Updates incremental data. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
+
+**Parameters**
+
+| Name      | Type               | Mandatory| Description                |
+| ---------- | ------------------- | ---- | -------------------- |
+| buf        | ArrayBuffer         | Yes  | Incremental data.          |
+| isFinished | boolean             | Yes  | Whether the update is complete.        |
+| value      | number              | No  | Offset for data reading.            |
+| length     | number              | No  | Array length.            |
+| callback   | AsyncCallback\<void> | Yes  | Callback used to return the result.|
+
+**Example**
+
+```js
+const array = new ArrayBuffer(100);
+imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {
+            if(data !== undefined){
+                console.info('Succeeded in updating data.');     
+            }
+		})
+```
+
 ### createPixelMap<sup>7+</sup>
 
 createPixelMap(options?: DecodingOptions): Promise\<PixelMap>
 
 Creates a **PixelMap** object based on image decoding parameters. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -773,7 +1437,7 @@ createPixelMap(callback: AsyncCallback\<PixelMap>): void
 
 Creates a **PixelMap** object based on the default parameters. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -784,11 +1448,9 @@ Creates a **PixelMap** object based on the default parameters. This API uses an
 **Example**
 
 ```js
-imageSourceApi.createPixelMap(pixelmap => { 
-    console.log('Succeeded in creating pixelmap object.');
-}).catch(error => {
-    console.log('Failed to create pixelmap object.');
-})
+imageSourceApi.createPixelMap((err, pixelmap) => {
+                    console.info('Succeeded in creating pixelmap object.');
+                })
 ```
 
 ### createPixelMap<sup>7+</sup>
@@ -797,7 +1459,7 @@ createPixelMap(options: DecodingOptions, callback: AsyncCallback\<PixelMap>): vo
 
 Creates a **PixelMap** object based on image decoding parameters. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -821,7 +1483,7 @@ release(callback: AsyncCallback\<void>): void
 
 Releases this **ImageSource** instance. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Parameters**
 
@@ -843,13 +1505,13 @@ release(): Promise\<void>
 
 Releases this **ImageSource** instance. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 **Return value**
 
 | Type          | Description                       |
 | -------------- | --------------------------- |
-| Promise\<void> | Promise used to return the operation result.|
+| Promise\<void> | Promise used to return the result.|
 
 **Example**
 
@@ -867,7 +1529,7 @@ createImagePacker(): ImagePacker
 
 Creates an **ImagePacker** instance.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Return value**
 
@@ -887,7 +1549,7 @@ Provide APIs to pack images. Before calling any API in **ImagePacker**, you must
 
 ### Attributes
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 | Name            | Type          | Readable| Writable| Description                      |
 | ---------------- | -------------- | ---- | ---- | -------------------------- |
@@ -899,7 +1561,7 @@ packing(source: ImageSource, option: PackingOption, callback: AsyncCallback\<Arr
 
 Packs an image. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Parameters**
 
@@ -923,7 +1585,7 @@ packing(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer>
 
 Packs an image. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Parameters**
 
@@ -935,8 +1597,8 @@ Packs an image. This API uses a promise to return the result.
 **Return value**
 
 | Type                        | Description                                         |
-| :--------------------------- | :-------------------------------------------- |
-| Promise\<ArrayBuffer> | Promise used to return the packed data.|
+| ---------------------------- | --------------------------------------------- |
+| Promise\<ArrayBuffer>        | Promise used to return the packed data.|
 
 **Example**
 
@@ -957,7 +1619,7 @@ packing(source: PixelMap, option: PackingOption, callback: AsyncCallback\<ArrayB
 
 Packs an image. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Parameters**
 
@@ -974,8 +1636,6 @@ let packOpts = { format:"image/jpeg", quality:98 }
 const pixelMapApi = new ArrayBuffer(400);
 imagePackerApi.packing(pixelMapApi, packOpts, data => { 
     console.log('Succeeded in packing the image.');
-}).catch(error => {
-	console.log('Failed to pack the image.');
 })
 ```
 
@@ -985,7 +1645,7 @@ packing(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer>
 
 Packs an image. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Parameters**
 
@@ -996,8 +1656,8 @@ Packs an image. This API uses a promise to return the result.
 
 **Return value**
 
-| Type                        | Description                                         |
-| :--------------------------- | :-------------------------------------------- |
+| Type                 | Description                                        |
+| --------------------- | -------------------------------------------- |
 | Promise\<ArrayBuffer> | Promise used to return the packed data.|
 
 **Example**
@@ -1019,7 +1679,7 @@ release(callback: AsyncCallback\<void>): void
 
 Releases this **ImagePacker** instance. This API uses an asynchronous callback to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Parameters**
 
@@ -1041,12 +1701,12 @@ release(): Promise\<void>
 
 Releases this **ImagePacker** instance. This API uses a promise to return the result.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
 **Return value**
 
-| Type          | Description                                                   |
-| :------------- | :------------------------------------------------------ |
+| Type          | Description                                                  |
+| -------------- | ------------------------------------------------------ |
 | Promise\<void> | Promise used to return the instance release result. If the operation fails, an error message is returned.|
 
 **Example**
@@ -1098,11 +1758,11 @@ Before calling any APIs in **ImageReceiver**, you must create an **ImageReceiver
 
 **System capability**: SystemCapability.Multimedia.Image.ImageReceiver
 
-| Name                 | Type                        | Readable| Writable| Description              |
-| --------------------- | ---------------------------- | ---- | ---- | ------------------ |
-| size<sup>9+</sup>     | [Size](#size)                | Yes  | No  | Image size.        |
-| capacity<sup>9+</sup> | number                       | Yes  | No  | Maximum number of images that can be accessed at the same time.|
-| format<sup>9+</sup>   | [ImageFormat](#imageformat9) | Yes  | No  | Image format.        |
+| Name    | Type                        | Readable| Writable| Description              |
+| -------- | ---------------------------- | ---- | ---- | ------------------ |
+| size     | [Size](#size)                | Yes  | No  | Image size.        |
+| capacity | number                       | Yes  | No  | Maximum number of images that can be accessed at the same time.|
+| format   | [ImageFormat](#imageformat9) | Yes  | No  | Image format.        |
 
 ### getReceivingSurfaceId<sup>9+</sup>
 
@@ -1192,7 +1852,7 @@ Reads the latest image from the **ImageReceiver** instance. This API uses a prom
 
 | Type                     | Description              |
 | ------------------------- | ------------------ |
-| Promise<[Image](#image8)> | Promise used to return the latest image.|
+| Promise<[Image](#image9)> | Promise used to return the latest image.|
 
 **Example**
 
@@ -1327,11 +1987,11 @@ Provides APIs for basic image operations, including obtaining image information
 
 **System capability**: SystemCapability.Multimedia.Image.Core
 
-| Name                 | Type              | Readable| Writable| Description                                              |
-| --------------------- | ------------------ | ---- | ---- | -------------------------------------------------- |
-| clipRect<sup>9+</sup> | [Region](#region7) | Yes  | Yes  | Image area to be cropped.                                |
-| size<sup>9+</sup>     | [Size](#size)      | Yes  | No  | Image size.                                        |
-| format<sup>9+</sup>   | number             | Yes  | No  | Image format. For details, see [PixelMapFormat](#pixelmapformat7).|
+| Name    | Type              | Readable| Writable| Description                                              |
+| -------- | ------------------ | ---- | ---- | -------------------------------------------------- |
+| clipRect | [Region](#region7) | Yes  | Yes  | Image area to be cropped.                                |
+| size     | [Size](#size)      | Yes  | No  | Image size.                                        |
+| format   | number             | Yes  | No  | Image format. For details, see [PixelMapFormat](#pixelmapformat7).|
 
 ### getComponent<sup>9+</sup>
 
@@ -1407,8 +2067,6 @@ The corresponding resources must be released before another image arrives.
 ```js
 img.release(() =>{ 
     console.log('release succeeded.');
-}).catch(error => {
-    console.log('release failed.');
 }) 
 ```
 
@@ -1442,7 +2100,7 @@ img.release().then(() =>{
 
 Describes area information in an image.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name  | Type              | Readable| Writable| Description                                                        |
 | ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ |
@@ -1455,7 +2113,7 @@ Describes area information in an image.
 
 Describes image information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name| Type         | Readable| Writable| Description      |
 | ---- | ------------- | ---- | ---- | ---------- |
@@ -1465,7 +2123,7 @@ Describes image information.
 
 Describes the size of an image.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name  | Type  | Readable| Writable| Description          |
 | ------ | ------ | ---- | ---- | -------------- |
@@ -1476,19 +2134,20 @@ Describes the size of an image.
 
 Enumerates the pixel formats of images.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
-| Name     | Default Value| Description             |
-| --------- | ------ | ----------------- |
-| UNKNOWN   | 0      | Unknown format.       |
-| RGBA_8888 | 3      | RGBA_8888.|
-| RGB_565   | 2      | RGB_565.  |
+| Name                  | Default Value| Description             |
+| ---------------------- | ------ | ----------------- |
+| UNKNOWN                | 0      | Unknown format.       |
+| RGB_565                | 2      | RGB_565.    |
+| RGBA_8888              | 3      | RGBA_8888.|
+| BGRA_8888<sup>9+</sup> | 4      | BGRA_8888.|
 
 ## AlphaType<sup>9+</sup>
 
 Enumerates the alpha types of images.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name    | Default Value| Description                   |
 | -------- | ------ | ----------------------- |
@@ -1501,32 +2160,45 @@ Enumerates the alpha types of images.
 
 Enumerates the scale modes of images.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name           | Default Value| Description                                              |
 | --------------- | ------ | -------------------------------------------------- |
 | CENTER_CROP     | 1      | Scales the image so that it fills the requested bounds of the target and crops the extra.|
 | FIT_TARGET_SIZE | 2      | Reduces the image size to the dimensions of the target.                          |
 
+## SourceOptions<sup>9+</sup>
+
+Defines image source initialization options.
+
+**System capability**: SystemCapability.Multimedia.Image.Core
+
+| Name             | Type                              | Readable| Writable| Description              |
+| ----------------- | ---------------------------------- | ---- | ---- | ------------------ |
+| sourceDensity     | number                             | Yes  | Yes  | Density of the image source.|
+| sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | Yes  | Yes  | Pixel format of the image source.    |
+| sourceSize        | [Size](#size)                      | Yes  | Yes  | Pixel size of the image source.    |
+
+
 ## InitializationOptions<sup>8+</sup>
 
 Defines pixel map initialization options.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
-| Name                  | Type                              | Readable| Writable| Description          |
-| ---------------------- | ---------------------------------- | ---- | ---- | -------------- |
-| alphaType<sup>9+</sup> | [AlphaType](#alphatype9)           | Yes  | Yes  | Alpha type.      |
-| editable               | boolean                            | Yes  | Yes  | Whether the image is editable.  |
-| pixelFormat            | [PixelMapFormat](#pixelmapformat7) | Yes  | Yes  | Pixel map format.    |
-| scaleMode<sup>9+</sup> | [ScaleMode](#scalemode9)           | Yes  | Yes  | Scale mode.      |
-| size                   | [Size](#size)                      | Yes  | Yes  | Image size.|
+| Name                    | Type                              | Readable| Writable| Description          |
+| ------------------------ | ---------------------------------- | ---- | ---- | -------------- |
+| alphaType<sup>9+</sup>   | [AlphaType](#alphatype9)           | Yes  | Yes  | Alpha type.      |
+| editable                 | boolean                            | Yes  | Yes  | Whether the image is editable.  |
+| pixelFormat              | [PixelMapFormat](#pixelmapformat7) | Yes  | Yes  | Pixel map format.    |
+| scaleMode<sup>9+</sup>   | [ScaleMode](#scalemode9)           | Yes  | Yes  | Scale mode.      |
+| size                     | [Size](#size)                      | Yes  | Yes  | Image size.|
 
 ## DecodingOptions<sup>7+</sup>
 
 Defines image decoding options.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 | Name              | Type                              | Readable| Writable| Description            |
 | ------------------ | ---------------------------------- | ---- | ---- | ---------------- |
@@ -1542,7 +2214,7 @@ Defines image decoding options.
 
 Describes region information.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
 | Name| Type         | Readable| Writable| Description        |
 | ---- | ------------- | ---- | ---- | ------------ |
@@ -1554,18 +2226,18 @@ Describes region information.
 
 Defines the option for image packing.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImagePacker
 
-| Name   | Type  | Readable| Writable| Description          |
-| ------- | ------ | ---- | ---- | -------------- |
-| format  | string | Yes  | Yes  | Format of the packed image.    |
+| Name   | Type  | Readable| Writable| Description                                               |
+| ------- | ------ | ---- | ---- | --------------------------------------------------- |
+| format  | string | Yes  | Yes  | Format of the packed image.                                         |
 | quality | number | Yes  | Yes  | Quality of the output image during JPEG encoding. The value ranges from 1 to 100.|
 
 ## GetImagePropertyOptions<sup>7+</sup>
 
 Describes image properties.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.ImageSource
 
 | Name        | Type  | Readable| Writable| Description        |
 | ------------ | ------ | ---- | ---- | ------------ |
@@ -1576,18 +2248,18 @@ Describes image properties.
 
 Describes the exchangeable image file format (Exif) information of an image.
 
-**System capability**: SystemCapability.Multimedia.Image
+**System capability**: SystemCapability.Multimedia.Image.Core
 
-| Name             | Default Value           | Description                |
-| ----------------- | ----------------- | -------------------- |
-| BITS_PER_SAMPLE   | "BitsPerSample"   | Number of bits per pixel.    |
-| ORIENTATION       | "Orientation"     | Image orientation.          |
-| IMAGE_LENGTH      | "ImageLength"     | Image length.          |
-| IMAGE_WIDTH       | "ImageWidth"      | Image width.          |
-| GPS_LATITUDE      | "GPSLatitude"     | Image latitude.          |
-| GPS_LONGITUDE     | "GPSLongitude"    | Image longitude.          |
-| GPS_LATITUDE_REF  | "GPSLatitudeRef"  | Latitude reference, for example, N or S.|
-| GPS_LONGITUDE_REF | "GPSLongitudeRef" | Longitude reference, for example, W or E.|
+| Name             | Default Value                 | Description                    |
+| ----------------- | ----------------------- | ------------------------ |
+| BITS_PER_SAMPLE   | "BitsPerSample"         | Number of bits per pixel.        |
+| ORIENTATION       | "Orientation"           | Image orientation.              |
+| IMAGE_LENGTH      | "ImageLength"           | Image length.              |
+| IMAGE_WIDTH       | "ImageWidth"            | Image width.              |
+| GPS_LATITUDE      | "GPSLatitude"           | Image latitude.              |
+| GPS_LONGITUDE     | "GPSLongitude"          | Image longitude.              |
+| GPS_LATITUDE_REF  | "GPSLatitudeRef"        | Latitude reference, for example, N or S.    |
+| GPS_LONGITUDE_REF | "GPSLongitudeRef"       | Longitude reference, for example, W or E.    |
 
 ## ImageFormat<sup>9+</sup>
 
@@ -1625,3 +2297,45 @@ Describes the color components of an image.
 | rowStride     | number                           | Yes  | No  | Row stride.      |
 | pixelStride   | number                           | Yes  | No  | Pixel stride.  |
 | byteBuffer    | ArrayBuffer                      | Yes  | No  | Component buffer.|
+
+## ResponseCode
+
+Enumerates the response codes returned upon build errors.
+
+| Name                               | Value      | Description                                               |
+| ----------------------------------- | -------- | --------------------------------------------------- |
+| ERR_MEDIA_INVALID_VALUE             | -1       | Invalid value.                                         |
+| SUCCESS                             | 0        | Operation successful.                                         |
+| ERROR                               | 62980096 | Operation failed.                                         |
+| ERR_IPC                             | 62980097 | IPC error.                                          |
+| ERR_SHAMEM_NOT_EXIST                | 62980098 | The shared memory does not exist.                                     |
+| ERR_SHAMEM_DATA_ABNORMAL            | 62980099 | The shared memory is abnormal.                                     |
+| ERR_IMAGE_DECODE_ABNORMAL           | 62980100 | An error occurs during image decoding.                                     |
+| ERR_IMAGE_DATA_ABNORMAL             | 62980101 | The input image data is incorrect.                                 |
+| ERR_IMAGE_MALLOC_ABNORMAL           | 62980102 | An error occurs during image memory allocation.                                   |
+| ERR_IMAGE_DATA_UNSUPPORT            | 62980103 | Unsupported image type.                                   |
+| ERR_IMAGE_INIT_ABNORMAL             | 62980104 | An error occurs during image initialization.                                   |
+| ERR_IMAGE_GET_DATA_ABNORMAL         | 62980105 | An error occurs during image data retrieval.                                 |
+| ERR_IMAGE_TOO_LARGE                 | 62980106 | The image data is too large.                                     |
+| ERR_IMAGE_TRANSFORM                 | 62980107 | An error occurs during image transformation.                                     |
+| ERR_IMAGE_COLOR_CONVERT             | 62980108 | An error occurs during image color conversion.                                 |
+| ERR_IMAGE_CROP                      | 62980109 | An error occurs during image cropping.                                         |
+| ERR_IMAGE_SOURCE_DATA               | 62980110 | The image source data is incorrect.                                   |
+| ERR_IMAGE_SOURCE_DATA_INCOMPLETE    | 62980111 | The image source data is incomplete.                                 |
+| ERR_IMAGE_MISMATCHED_FORMAT         | 62980112 | The image format does not match.                                   |
+| ERR_IMAGE_UNKNOWN_FORMAT            | 62980113 | Unknown image format.                                     |
+| ERR_IMAGE_SOURCE_UNRESOLVED         | 62980114 | The image source is not parsed.                                     |
+| ERR_IMAGE_INVALID_PARAMETER         | 62980115 | Invalid image parameter.                                     |
+| ERR_IMAGE_DECODE_FAILED             | 62980116 | Decoding failed.                                         |
+| ERR_IMAGE_PLUGIN_REGISTER_FAILED    | 62980117 | Failed to register the plug-in.                                     |
+| ERR_IMAGE_PLUGIN_CREATE_FAILED      | 62980118 | Failed to create the plug-in.                                     |
+| ERR_IMAGE_ENCODE_FAILED             | 62980119 | Failed to encode the image.                                     |
+| ERR_IMAGE_ADD_PIXEL_MAP_FAILED      | 62980120 | Failed to add the image pixel map.                             |
+| ERR_IMAGE_HW_DECODE_UNSUPPORT       | 62980121 | Unsupported image hardware decoding.                               |
+| ERR_IMAGE_DECODE_HEAD_ABNORMAL      | 62980122 | The image decoding header is incorrect.                                   |
+| ERR_IMAGE_DECODE_EXIF_UNSUPPORT     | 62980123 | EXIF decoding is not supported.                             |
+| ERR_IMAGE_PROPERTY_NOT_EXIST        | 62980124 | The image property does not exist. The error codes for the image start from 150.|
+| ERR_IMAGE_READ_PIXELMAP_FAILED      | 62980246 | Failed to read the pixel map.                                 |
+| ERR_IMAGE_WRITE_PIXELMAP_FAILED     | 62980247 | Failed to write the pixel map.                                 |
+| ERR_IMAGE_PIXELMAP_NOT_ALLOW_MODIFY | 62980248 | Modification to the pixel map is not allowed.                               |
+| ERR_IMAGE_CONFIG_FAILED             | 62980259 | The software parameter setting is incorrect.                                         |
diff --git a/en/application-dev/reference/apis/js-apis-inputdevice.md b/en/application-dev/reference/apis/js-apis-inputdevice.md
index c1ec2c787a6f9e47c1c87715b5ea52171dbac85f..178313a1ff1a83a905895656793ff5977a486d0d 100644
--- a/en/application-dev/reference/apis/js-apis-inputdevice.md
+++ b/en/application-dev/reference/apis/js-apis-inputdevice.md
@@ -287,7 +287,7 @@ Defines the information about an input device.
 
 | Name      | Type                     | Description                               |
 | -------- | ------------------------- | --------------------------------- |
-| type     | [ChangeType](#changetype) | Device change type, which indicates whether an input device is inserted or removed.                    |
+| type     | [ChangedType](#changedtype) | Device change type, which indicates whether an input device is inserted or removed.                    |
 | deviceId | number                    | Unique ID of the input device. If the same physical device is repeatedly inserted and removed, its ID changes.|
 
 ## InputDeviceData
diff --git a/en/application-dev/reference/apis/js-apis-medialibrary.md b/en/application-dev/reference/apis/js-apis-medialibrary.md
index 3d2f6f3e9703e606847e92822c62aa20c2811e8f..91059df152841c2317196bcd8496be2412f2fd30 100644
--- a/en/application-dev/reference/apis/js-apis-medialibrary.md
+++ b/en/application-dev/reference/apis/js-apis-medialibrary.md
@@ -49,7 +49,9 @@ getMediaLibrary(): MediaLibrary
 
 Obtains a **MediaLibrary** instance, which is used to access and modify personal media data such as audios, videos, images, and documents.
 
-> **Note**: This API is no longer maintained since API version 8. You are advised to use [mediaLibrary.getMediaLibrary<sup>8+</sup>](#medialibrarygetmedialibrary8) instead.
+> **NOTE**
+>
+> This API is no longer maintained since API version 8. You are advised to use [mediaLibrary.getMediaLibrary<sup>8+</sup>](#medialibrarygetmedialibrary8) instead.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -99,7 +101,9 @@ media.getFileAssets(imagesfetchOp, (error, fetchFileResult) => {
         console.info('mediaLibraryTest : ASSET_CALLBACK fetchFileResult success');
         fetchFileResult.getAllObject((err, fileAssetList) => {
             if (fileAssetList != undefined) {
-                fileAssetList.forEach(getAllObjectInfo);
+                fileAssetList.forEach(function(getAllObjectInfo){
+                    console.info("getAllObjectInfo.displayName :" + getAllObjectInfo.displayName);
+                });
             }
     	});
     }
@@ -137,7 +141,7 @@ let imagesfetchOp = {
     selectionArgs: [imageType.toString()],
 };
 media.getFileAssets(imagesfetchOp).then(function(fetchFileResult){
-    console.info("getFileAssets successfully:"+ JSON.stringify(dir));
+    console.info("getFileAssets successfully: image number is "+ fetchFileResult.getCount());
 }).catch(function(err){
     console.info("getFileAssets failed with error:"+ err);
 });
@@ -161,7 +165,7 @@ Subscribes to the media library changes. This API uses an asynchronous callback
 **Example**
 
 ```
-mediaLibrary.on('imageChange', () => {
+media.on('imageChange', () => {
     // image file had changed, do something
 })
 ```
@@ -449,7 +453,9 @@ storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback&lt;string&gt;)
 
 Stores a media asset. This API uses an asynchronous callback to return the URI that stores the media asset.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -485,7 +491,9 @@ storeMediaAsset(option: MediaAssetOption): Promise&lt;string&gt;
 
 Stores a media asset. This API uses a promise to return the URI that stores the media asset.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -524,7 +532,9 @@ startImagePreview(images: Array&lt;string&gt;, index: number, callback: AsyncCal
 
 Starts image preview, with the first image to preview specified. This API can be used to preview local images whose URIs start with **dataability://** or online images whose URIs start with **https://**. It uses an asynchronous callback to return the execution result.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **\<Image>** component can be used to render and display local and online images.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -566,7 +576,9 @@ startImagePreview(images: Array&lt;string&gt;, callback: AsyncCallback&lt;void&g
 
 Starts image preview. This API can be used to preview local images whose URIs start with **dataability://** or online images whose URIs start with **https://**. It uses an asynchronous callback to return the execution result.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **<Image\>** component can be used to render and display local images and network images.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -606,7 +618,9 @@ startImagePreview(images: Array&lt;string&gt;, index?: number): Promise&lt;void&
 
 Starts image preview, with the first image to preview specified. This API can be used to preview local images whose URIs start with dataability:// or online images whose URIs start with https://. It uses a promise to return the execution result.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **<Image\>** component can be used to render and display local images and network images.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -651,7 +665,9 @@ startMediaSelect(option: MediaSelectOption, callback: AsyncCallback&lt;Array&lt;
 
 Starts media selection. This API uses an asynchronous callback to return the list of URIs that store the selected media assets.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use the system app Gallery instead. Gallery is a built-in visual resource access application that provides features such as image and video management and browsing. For details about how to use Gallery, visit [OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos).
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -666,7 +682,7 @@ Starts media selection. This API uses an asynchronous callback to return the lis
 
   ```
 let option = {
-    type : "image",
+    type : "media",
     count : 2
 };
 mediaLibrary.getMediaLibrary().startMediaSelect(option, (err, value) => {
@@ -686,7 +702,9 @@ startMediaSelect(option: MediaSelectOption): Promise&lt;Array&lt;string&gt;&gt;
 
 Starts media selection. This API uses a promise to return the list of URIs that store the selected media assets.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use the system app Gallery instead. Gallery is a built-in visual resource access application that provides features such as image and video management and browsing. For details about how to use Gallery, visit [OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos).
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -706,7 +724,7 @@ Starts media selection. This API uses a promise to return the list of URIs that
 
   ```
 let option = {
-    type : "image",
+    type : "media",
     count : 2
 };
 mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
@@ -745,7 +763,7 @@ Provides APIs for encapsulating file asset attributes.
 | width                     | number                   | Yes  | No  | Image width, in pixels.                                |
 | height                    | number                   | Yes  | No  | Image height, in pixels.                                |
 | orientation               | number                   | Yes  | Yes  | Image display direction (clockwise rotation angle, for example, 0, 90, or 180, in degrees).|
-| duration<sup>8+</sup>     | number                   | Yes  | No  | Duration, in seconds.                                  |
+| duration<sup>8+</sup>     | number                   | Yes  | No  | Duration, in ms.                                  |
 | albumId                   | number                   | Yes  | No  | ID of the album to which the file belongs.                                  |
 | albumUri<sup>8+</sup>     | string                   | Yes  | No  | URI of the album to which the file belongs.                                     |
 | albumName                 | string                   | Yes  | No  | Name of the album to which the file belongs.                                    |
@@ -771,6 +789,7 @@ Checks whether this file asset is a directory. This API uses an asynchronous cal
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -806,6 +825,7 @@ Checks whether this file asset is a directory. This API uses a promise to return
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -843,6 +863,7 @@ Commits the modification in this file asset to the database. This API uses an as
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -879,6 +900,7 @@ Commits the modification in this file asset to the database. This API uses a pro
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -899,9 +921,11 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void
 
 Opens this file asset. This API uses an asynchronous callback to return the result.
 
-Note: Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
+> **NOTE**
+> 
+> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
 
-**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**)
+**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -919,7 +943,7 @@ async function example() {
     let mediaType = mediaLibrary.MediaType.IMAGE;
     let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
     const path = await media.getPublicDirectory(DIR_IMAGE);
-    asset = await media.createAsset(mediaType, "image00003.jpg", path);
+    const asset = await media.createAsset(mediaType, "image00003.jpg", path);
     asset.open('rw', (openError, fd) => {
             if(fd > 0){
                 asset.close(fd);
@@ -936,9 +960,11 @@ open(mode: string): Promise&lt;number&gt;
 
 Opens this file asset. This API uses a promise to return the result.
 
-Note: Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
+> **NOTE**
+> 
+> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
 
-**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**)
+**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -946,7 +972,7 @@ Note: Currently, the write operations are mutually exclusive. After the write op
 
 | Name | Type    | Mandatory  | Description                                 |
 | ---- | ------ | ---- | ----------------------------------- |
-| mode | string | Yes   | Mode of opening the file, for example, **r** (read-only), **w** (write-only), and **rw** (read-write).|
+| mode | string | Yes   | Mode of opening the file, for example, **'r'** (read-only), **'w'** (write-only), and **'rw'** (read-write).|
 
 **Return value**
 
@@ -961,7 +987,7 @@ async function example() {
     let mediaType = mediaLibrary.MediaType.IMAGE;
     let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
     const path = await media.getPublicDirectory(DIR_IMAGE);
-    asset = await media.createAsset(mediaType, "image00003.jpg", path);
+    const asset = await media.createAsset(mediaType, "image00003.jpg", path);
     asset.open('rw')
         .then((fd) => {
             console.info('File fd!' + fd);
@@ -978,7 +1004,7 @@ close(fd: number, callback: AsyncCallback&lt;void&gt;): void
 
 Closes this file asset. This API uses an asynchronous callback to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**)
+**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -993,6 +1019,7 @@ Closes this file asset. This API uses an asynchronous callback to return the res
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1002,13 +1029,19 @@ async function example() {
     };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
-    asset.close(fd, (closeErr) => {
-        if (closeErr != undefined) {
-            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
-            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
-        } else {
-            console.info("=======asset.close success====>");
-        }
+    asset.open('rw').then((fd) => {
+        console.info('File fd!' + fd);
+        asset.close(fd, (closeErr) => {
+            if (closeErr != undefined) {
+                console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
+                console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
+            } else {
+                console.info("=======asset.close success====>");
+            }
+        });
+    })
+    .catch((err) => {
+        console.info('File err!' + err);
     });
 }
 ```
@@ -1019,7 +1052,7 @@ close(fd: number): Promise&lt;void&gt;
 
 Closes this file asset. This API uses a promise to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **'r'**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **'w'**)
+**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -1039,6 +1072,7 @@ Closes this file asset. This API uses a promise to return the result.
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1048,14 +1082,20 @@ async function example() {
     };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
-    asset.close(fd).then((closeErr) => {
-        if (closeErr != undefined) {
-            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
-            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
+    asset.open('rw').then((fd) => {
+        console.info('File fd!' + fd);
+        asset.close(fd).then((closeErr) => {
+            if (closeErr != undefined) {
+                console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
+                console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
 
-        } else {
-            console.info("=======asset.close success====>");
-        }
+            } else {
+                console.info("=======asset.close success====>");
+            }
+        });
+    })
+    .catch((err) => {
+        console.info('File err!' + err);
     });
 }
 ```
@@ -1080,6 +1120,7 @@ Obtains the thumbnail of this file asset. This API uses an asynchronous callback
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1116,6 +1157,7 @@ Obtains the thumbnail of this file asset, with the thumbnail size passed. This A
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1123,6 +1165,7 @@ async function example() {
       order: fileKeyObj.DATE_ADDED + " DESC",
       extendArgs: "",
     };
+    let size = { width: 720, height: 720 };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
     asset.getThumbnail(size, (err, pixelmap) => {
@@ -1157,6 +1200,7 @@ Obtains the thumbnail of this file asset, with the thumbnail size passed. This A
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
         selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1164,6 +1208,7 @@ async function example() {
         order: fileKeyObj.DATE_ADDED + " DESC",
         extendArgs: "",
     };
+    let size = { width: 720, height: 720 };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
     asset.getThumbnail(size)
@@ -1197,6 +1242,7 @@ Favorites or unfavorites this file asset. This API uses an asynchronous callback
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1238,6 +1284,7 @@ Favorites or unfavorites this file asset. This API uses a promise to return the
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1275,6 +1322,7 @@ Checks whether this file asset is favorited. This API uses an asynchronous callb
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1314,6 +1362,7 @@ Checks whether this file asset is favorited. This API uses a promise to return t
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1354,6 +1403,7 @@ Files in the trash are not actually deleted. You can set **isTrash** to **false*
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1398,6 +1448,7 @@ Files in the trash are not actually deleted. You can set **isTrash** to **false*
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1435,6 +1486,7 @@ Checks whether this file asset is in the trash. This API uses an asynchronous ca
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1448,7 +1500,7 @@ async function example() {
     function isTrashCallBack(err, isTrash) {
             if (isTrash == true) {
                 console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash);
-                asset.trash(true, trashCallBack);
+                asset.trash(true, istrashCallBack);
 
             } else {
                 console.info('mediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err);
@@ -1479,6 +1531,7 @@ Checks whether this file asset is in the trash. This API uses a promise to retur
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1518,6 +1571,8 @@ Obtains the total number of files in the result set.
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
+    let fileType = mediaLibrary.MediaType.FILE;
     let getFileCountOneOp = {
         selections: fileKeyObj.MEDIA_TYPE + '= ?',
         selectionArgs: [fileType.toString()],
@@ -1547,6 +1602,7 @@ Checks whether the cursor is in the last row of the result set.
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1584,6 +1640,7 @@ Releases and invalidates this **FetchFileResult** instance. Other APIs in this i
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1614,6 +1671,7 @@ Obtains the first file asset in the result set. This API uses an asynchronous ca
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1622,12 +1680,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getFirstObject((err, value) => {
+    fetchFileResult.getFirstObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1650,6 +1708,7 @@ Obtains the first file asset in the result set. This API uses a promise to retur
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1672,8 +1731,6 @@ async function example() {
 
 Obtains the next file asset in the result set. This API uses an asynchronous callback to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA
-
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
 **Parameters**
@@ -1686,6 +1743,7 @@ Obtains the next file asset in the result set. This API uses an asynchronous cal
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1694,12 +1752,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getNextObject((err, value) => {
+    fetchFileResult.getNextObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1710,8 +1768,6 @@ async function example() {
 
 Obtains the next file asset in the result set. This API uses a promise to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA
-
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
 **Return value**
@@ -1724,6 +1780,7 @@ Obtains the next file asset in the result set. This API uses a promise to return
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1734,7 +1791,7 @@ async function example() {
     let fetchFileResult = await media.getFileAssets(getImageOp);
     const fetchCount = fetchFileResult.getCount();
     console.info('mediaLibraryTest : count:' + fetchCount);
-    fileAsset = await fetchFileResult.getNextObject();
+    let fileAsset = await fetchFileResult.getNextObject();
 }
 ```
 
@@ -1756,6 +1813,7 @@ Obtains the last file asset in the result set. This API uses an asynchronous cal
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1764,12 +1822,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getLastObject((err, value) => {
+    fetchFileResult.getLastObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1792,6 +1850,7 @@ Obtains the last file asset in the result set. This API uses a promise to return
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1823,6 +1882,7 @@ Obtains a file asset with the specified index in the result set. This API uses a
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1831,12 +1891,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getPositionObject(0, (err, value) => {
+    fetchFileResult.getPositionObject(0, (err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1847,8 +1907,6 @@ getPositionObject(index: number): Promise&lt;FileAsset&gt;
 
 Obtains a file asset with the specified index in the result set. This API uses a promise to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA
-
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
 **Parameters**
@@ -1867,6 +1925,7 @@ Obtains a file asset with the specified index in the result set. This API uses a
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1875,12 +1934,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getPositionObject(1, (err, value) => {
+    fetchFileResult.getPositionObject(1, (err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1891,8 +1950,6 @@ getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
 
 Obtains all the file assets in the result set. This API uses an asynchronous callback to return the result.
 
-**Required permissions**: ohos.permission.READ_MEDIA
-
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
 **Parameters**
@@ -1905,6 +1962,7 @@ Obtains all the file assets in the result set. This API uses an asynchronous cal
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1913,12 +1971,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getAllObject((err, value) => {
+    fetchFileResult.getAllObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1941,6 +1999,7 @@ Obtains all the file assets in the result set. This API uses a promise to return
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -2068,6 +2127,10 @@ async function example() {
         selections: '',
         selectionArgs: [],
     };
+    let fileNoArgsfetchOp = {
+    selections: '',
+    selectionArgs: [],
+    }
     const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
     const album = albumList[0];
     album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
@@ -2107,6 +2170,10 @@ async function example() {
         selections: '',
         selectionArgs: [],
     };
+    let fileNoArgsfetchOp = {
+    selections: '',
+    selectionArgs: [],
+    }
     const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
     const album = albumList[0];
     album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){
@@ -2120,8 +2187,9 @@ async function example() {
 ## PeerInfo<sup>8+</sup>
 
 Describes information about a registered device.
+This is a system API.
 
-**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
+**System capability**: SystemCapability.Multimedia.MediaLibrary.DistributedCore
 
 | Name      | Type                      | Readable| Writable| Description            |
 | ---------- | -------------------------- | ---- | ---- | ---------------- |
@@ -2138,12 +2206,12 @@ Enumerates media types.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
-| Name | Default Value| Description|
-| ----- | ------ | ---- |
-| FILE  | 1      | File.|
-| IMAGE | 3      | Image.|
-| VIDEO | 4      | Video.|
-| AUDIO | 5      | Audio.|
+| Name |  Description|
+| ----- |  ---- |
+| FILE  |  File.|
+| IMAGE |  Image.|
+| VIDEO |  Video.|
+| AUDIO |  Audio.|
 
 ## FileKey<sup>8+</sup>
 
@@ -2166,7 +2234,7 @@ Enumerates key file information.
 | TITLE         | title               | Title in the file.                                                  |
 | ARTIST        | artist              | Artist of the file.                                                      |
 | AUDIOALBUM    | audio_album         | Audio album.                                                      |
-| DURATION      | duration            | Duration, in seconds.                                      |
+| DURATION      | duration            | Duration, in ms.                                      |
 | WIDTH         | width               | Image width, in pixels.                                    |
 | HEIGHT        | height              | Image height, in pixels.                                    |
 | ORIENTATION   | orientation         | Image display direction (clockwise rotation angle, for example, 0, 90, and 180, in degrees).|
@@ -2179,30 +2247,31 @@ Enumerates directory types.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
-| Name         | Default Value| Description              |
-| ------------- | ------ | ------------------ |
-| DIR_CAMERA    | 0      | Directory of camera files.|
-| DIR_VIDEO     | 1      | Directory of video files.      |
-| DIR_IMAGE     | 2      | Directory of image files.      |
-| DIR_AUDIO     | 3      | Directory of audio files.      |
-| DIR_DOCUMENTS | 4      | Directory of documents.      |
-| DIR_DOWNLOAD  | 5      | Download directory.      |
+| Name         |  Description              |
+| ------------- |  ------------------ |
+| DIR_CAMERA    |  Directory of camera files.|
+| DIR_VIDEO     |  Directory of video files.      |
+| DIR_IMAGE     |  Directory of image files.      |
+| DIR_AUDIO     |  Directory of audio files.      |
+| DIR_DOCUMENTS |  Directory of documents.      |
+| DIR_DOWNLOAD  |  Download directory.      |
 
 ## DeviceType<sup>8+</sup>
 
 Enumerates device types.
+This is a system API.
 
-**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
+**System capability**: SystemCapability.Multimedia.MediaLibrary.DistributedCore
 
-| Name        | Default Value| Description      |
-| ------------ | ------ | ---------- |
-| TYPE_UNKNOWN | 0      | Unknown.|
-| TYPE_LAPTOP  | 1      | Laptop.|
-| TYPE_PHONE   | 2      | Phone.      |
-| TYPE_TABLET  | 3      | Tablet.  |
-| TYPE_WATCH   | 4      | Smart watch.  |
-| TYPE_CAR     | 5      | Vehicle-mounted device.  |
-| TYPE_TV      | 6      | TV.  |
+| Name        |  Description      |
+| ------------ |  ---------- |
+| TYPE_UNKNOWN |  Unknown.|
+| TYPE_LAPTOP  |  Laptop.|
+| TYPE_PHONE   |  Phone.      |
+| TYPE_TABLET  |  Tablet.  |
+| TYPE_WATCH   |  Smart watch.  |
+| TYPE_CAR     |  Vehicle-mounted device.  |
+| TYPE_TV      |  TV.  |
 
 ## MediaFetchOptions<sup>7+</sup>
 
@@ -2222,6 +2291,7 @@ Describes options for fetching media files.
 ## Size<sup>8+</sup>
 
 Describes the image size.
+**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
 | Name    | Type    | Readable  | Writable  | Description      |
 | ------ | ------ | ---- | ---- | -------- |
@@ -2232,7 +2302,9 @@ Describes the image size.
 
 Implements the media asset option.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -2247,7 +2319,9 @@ Implements the media asset option.
 
 Describes media selection option.
 
-> **NOTE**<br>This API is deprecated since API version 9.
+> **NOTE**
+>
+> This API is deprecated since API version 9.
 
 **System capability**: SystemCapability.Multimedia.MediaLibrary.Core
 
diff --git a/en/application-dev/reference/apis/js-apis-missionManager.md b/en/application-dev/reference/apis/js-apis-missionManager.md
index 94fb115434d6860cb2096586d48f0c981ea9a30a..b981d28061d45feb313dbaf7ea0709d6f198e0e8 100644
--- a/en/application-dev/reference/apis/js-apis-missionManager.md
+++ b/en/application-dev/reference/apis/js-apis-missionManager.md
@@ -1,12 +1,11 @@
 # missionManager
 
+The **missionManager** module provides APIs to lock, unlock, and clear missions, and switch a mission to the foreground.
 
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
-missionManager provides APIs to lock, unlock, and clear missions, and switch a mission to the foreground.
-
 ## Modules to Import
 
 ```
@@ -23,8 +22,12 @@ registerMissionListener(listener: MissionListener): number;
 
 Registers a listener to observe the mission status.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -59,8 +62,12 @@ unregisterMissionListener(listenerId: number, callback: AsyncCallback&lt;void&gt
 
 Deregisters a mission status listener. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -93,8 +100,12 @@ unregisterMissionListener(listenerId: number): Promise&lt;void&gt;;
 
 Deregisters a mission status listener. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -132,8 +143,12 @@ getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback&lt;M
 
 Obtains the information about a given mission. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -166,8 +181,12 @@ getMissionInfo(deviceId: string, missionId: number): Promise&lt;MissionInfo&gt;;
 
 Obtains the information about a given mission. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -198,8 +217,12 @@ getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback&lt;Arr
 
 Obtains information about all missions. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -227,8 +250,12 @@ getMissionInfos(deviceId: string, numMax: number): Promise&lt;Array&lt;MissionIn
 
 Obtains information about all missions. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -259,8 +286,12 @@ getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback&
 
 Obtains the snapshot of a given mission. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -294,8 +325,12 @@ getMissionSnapShot(deviceId: string, missionId: number): Promise&lt;MissionSnaps
 
 Obtains the snapshot of a given mission. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -334,8 +369,12 @@ lockMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;
 
 Locks a given mission. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -367,8 +406,12 @@ lockMission(missionId: number): Promise&lt;void&gt;;
 
 Locks a given mission. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -405,8 +448,12 @@ unlockMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;
 
 Unlocks a given mission. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name| Type| Mandatory| Description|
@@ -438,8 +485,12 @@ unlockMission(missionId: number): Promise&lt;void&gt;;
 
 Unlocks a given mission. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -480,8 +531,12 @@ clearMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;
 
 Clears a given mission, regardless of whether it is locked. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -513,8 +568,12 @@ clearMission(missionId: number): Promise&lt;void&gt;;
 
 Clears a given mission, regardless of whether it is locked. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -552,8 +611,12 @@ clearAllMissions(callback: AsyncCallback&lt;void&gt;): void;
 
 Clears all unlocked missions. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Example**
 
   ```js
@@ -571,8 +634,12 @@ clearAllMissions(): Promise&lt;void&gt;;
 
 Clears all unlocked missions. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Return value**
 
   | Type| Description| 
@@ -595,8 +662,12 @@ moveMissionToFront(missionId: number, callback: AsyncCallback&lt;void&gt;): void
 
 Switches a given mission to the foreground. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -628,8 +699,12 @@ moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCall
 
 Switches a given mission to the foreground, with the startup parameters for the switching specified. This API uses an asynchronous callback to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -662,8 +737,12 @@ moveMissionToFront(missionId: number, options?: StartOptions): Promise&lt;void&g
 
 Switches a given mission to the foreground, with the startup parameters for the switching specified. This API uses a promise to return the result.
 
+**Required permission**: ohos.permission.MANAGE_MISSIONS
+
 **System capability**: SystemCapability.Ability.AbilityRuntime.Mission
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description|
@@ -699,7 +778,9 @@ Switches a given mission to the foreground, with the startup parameters for the
 
 Describes the mission information.
 
-**System capability**: SystemCapability.Ability.AbilityBase
+**System capability**: SystemCapability.Ability.AbilityRuntime.Mission
+
+**System API**: This is a system API and cannot be called by third-party applications.
 
 | Name| Type| Readable| Writable| Description| 
 | -------- | -------- | -------- | -------- | -------- |
@@ -710,4 +791,4 @@ Describes the mission information.
 | want | [Want](js-apis-application-Want.md) | Yes| Yes| **Want** information of the mission.| 
 | label | string | Yes| Yes| Label of the mission.| 
 | iconPath | string | Yes| Yes| Path of the mission icon.| 
-| continuable | boolean | Yes| Yes| Whether the mission can be continued on another device. | 
+| continuable | boolean | Yes| Yes| Whether the mission can be continued on another device.| 
diff --git a/en/application-dev/reference/apis/js-apis-net-connection.md b/en/application-dev/reference/apis/js-apis-net-connection.md
index 6e1eab82dbbd426d7e1facd48a0516d981658f28..ec63d11121dcd5138d11d7a2e1898833deaaf9c7 100644
--- a/en/application-dev/reference/apis/js-apis-net-connection.md
+++ b/en/application-dev/reference/apis/js-apis-net-connection.md
@@ -1,5 +1,6 @@
 # Network Connection Management
 
+The network connection management module provides basic network management capabilities. You can obtain the default active data network or the list of all active data networks, enable or disable the airplane mode, and obtain network capability information.
 
 > **NOTE**
 >
@@ -79,7 +80,7 @@ Checks whether the default data network is activated. This API uses an asynchron
 ```js
 connection.hasDefaultNet(function (error, has) {
     console.log(JSON.stringify(error))
-    console.log(has)
+    console.log('has: ' + has)
 })
 ```
 
@@ -101,7 +102,7 @@ Checks whether the default data network is activated. This API uses a promise to
 
 ```js
 connection.hasDefaultNet().then(function (has) {
-    console.log(has)
+    console.log('has: ' + has)
 })
 ```
 
@@ -167,7 +168,7 @@ Obtains connection properties of the network corresponding to given network hand
 
 | Name   | Type                                                        | Mandatory| Description            |
 | --------- | ------------------------------------------------------------ | ---- | ---------------- |
-| netHandle | [NetHandle](#nethandle)                                      | Yes  | Network handle.|
+| netHandle | [NetHandle](#nethandle)                                      | Yes  | Handle of the data network.|
 | callback  | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | Yes  | Callback used to return the result.      |
 
 **Example**
@@ -195,7 +196,7 @@ Obtains connection properties of the network corresponding to **netHandle**. Thi
 
 | Name   | Type                   | Mandatory| Description            |
 | --------- | ----------------------- | ---- | ---------------- |
-| netHandle | [NetHandle](#nethandle) | Yes  | Network handle.|
+| netHandle | [NetHandle](#nethandle) | Yes  | Handle of the data network.|
 
 **Return Value**
 
@@ -227,7 +228,7 @@ Obtains capability information of the network corresponding to **netHandle**. Th
 
 | Name   | Type                                               | Mandatory| Description            |
 | --------- | --------------------------------------------------- | ---- | ---------------- |
-| netHandle | [NetHandle](#nethandle)                             | Yes  | Network handle.|
+| netHandle | [NetHandle](#nethandle)                             | Yes  | Handle of the data network.|
 | callback  | AsyncCallback\<[NetCapabilities](#netcapabilities)> | Yes  | Callback used to return the result.      |
 
 **Example**
@@ -255,7 +256,7 @@ Obtains capability information of the network corresponding to **netHandle**. Th
 
 | Name   | Type                   | Mandatory| Description            |
 | --------- | ----------------------- | ---- | ---------------- |
-| netHandle | [NetHandle](#nethandle) | Yes  | Network handle.|
+| netHandle | [NetHandle](#nethandle) | Yes  | Handle of the data network.|
 
 **Return Value**
 
@@ -446,6 +447,105 @@ connection.getAddressesByName(host).then(function (addresses) {
 })
 ```
 
+
+## connection.enableAirplaneMode
+
+enableAirplaneMode(callback: AsyncCallback\<void>): void
+
+Enables the airplane mode. This API uses an asynchronous callback to return the result.
+
+This is a system API.
+
+**System capability**:  SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name  | Type                                             | Mandatory| Description              |
+| -------- | ------------------------------------------------- | ---- | ------------------ |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.        |
+
+**Example**
+
+```js
+connection.enableAirplaneMode(function (error) {
+    console.log(JSON.stringify(error))
+})
+```
+
+## connection.enableAirplaneMode
+
+enableAirplaneMode(): Promise\<void>
+
+Enables the airplane mode. This API uses a promise to return the result.
+
+This is a system API.
+
+**System capability**:  SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type                                       | Description                         |
+| ------------------------------------------- | ----------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+connection.enableAirplaneMode().then(function (error) {
+    console.log(JSON.stringify(error))
+})
+```
+
+
+## connection.disableAirplaneMode
+
+disableAirplaneMode(callback: AsyncCallback\<void>): void
+
+Disables the airplane mode. This API uses an asynchronous callback to return the result.
+
+This is a system API.
+
+**System capability**:  SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name  | Type                                             | Mandatory| Description              |
+| -------- | ------------------------------------------------- | ---- | ------------------ |
+| callback | AsyncCallback\<void> | Yes  | Callback used to return the result.        |
+
+**Example**
+
+```js
+connection.disableAirplaneMode(function (error) {
+    console.log(JSON.stringify(error))
+})
+```
+
+## connection.disableAirplaneMode
+
+disableAirplaneMode(): Promise\<void>
+
+Disables the airplane mode. This API uses a promise to return the result.
+
+This is a system API.
+
+**System capability**:  SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type                                       | Description                         |
+| ------------------------------------------- | ----------------------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```js
+connection.disableAirplaneMode().then(function (error) {
+    console.log(JSON.stringify(error))
+})
+```
+
+
 ## connection.createNetConnection
 
 createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection
@@ -476,7 +576,7 @@ let netConnection = connection.createNetConnection()
 // Cellular network
 let netConnectionCellular = connection.createNetConnection({
     netCapabilities: {
-        bearerTypes: [NetBearType.BEARER_CELLULAR]
+        bearerTypes: [connection.NetBearType.BEARER_CELLULAR]
     }
 })
 ```
@@ -497,7 +597,7 @@ Registers a listener for **netAvailable** events.
 
 | Name  | Type                              | Mandatory| Description                                                        |
 | -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
-| type     | string                             | Yes  | Event type. The value is fixed to **netAvailable**.<br>**netAvailable**: event indicating that the data network is available.|
+| type     | string                             | Yes  | Event type. The value is fixed at **netAvailable**.<br>**netAvailable**: event indicating that the data network is available.|
 | callback | Callback\<[NetHandle](#nethandle)> | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -520,7 +620,7 @@ Registers a listener for **netCapabilitiesChange** events.
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Event type. The value is fixed to **netCapabilitiesChange**.<br>**netCapabilitiesChange**: event indicating that he network capabilities have changed.|
+| type     | string                                                       | Yes  | Event type. The value is fixed at **netCapabilitiesChange**.<br>**netCapabilitiesChange**: event indicating that network capabilities have changed.|
 | callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -543,7 +643,7 @@ Registers a listener for **netConnectionPropertiesChange** events.
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Event type. The value is fixed to **netConnectionPropertiesChange**.<br>**netConnectionPropertiesChange**: event indicating that network connection properties have changed.|
+| type     | string                                                       | Yes  | Event type. The value is fixed at **netConnectionPropertiesChange**.<br>**netConnectionPropertiesChange**: event indicating that network connection properties have changed.|
 | callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -566,7 +666,7 @@ Registers a listener for **netBlockStatusChange** events.
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Event type. The value is fixed to **netBlockStatusChange**.<br>**netBlockStatusChange**: event indicating a change in the network blocking status.|
+| type     | string                                                       | Yes  | Event type. The value is fixed at **netBlockStatusChange**.<br>**netBlockStatusChange**: event indicating a change in the network blocking status.|
 | callback | Callback&lt;{&nbsp;netHandle:&nbsp;[NetHandle](#nethandle),&nbsp;blocked:&nbsp;boolean&nbsp;}&gt; | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -589,7 +689,7 @@ Registers a listener for **netLost** events.
 
 | Name  | Type                              | Mandatory| Description                                                        |
 | -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
-| type     | string                             | Yes  | Event type. The value is fixed to **netLost**.<br>netLost: event indicating that the network is interrupted or normally disconnected.|
+| type     | string                             | Yes  | Event type. The value is fixed at **netLost**.<br>netLost: event indicating that the network is interrupted or normally disconnected.|
 | callback | Callback\<[NetHandle](#nethandle)> | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -613,7 +713,7 @@ Registers a listener for **netUnavailable** events.
 
 | Name  | Type           | Mandatory| Description                                                        |
 | -------- | --------------- | ---- | ------------------------------------------------------------ |
-| type     | string          | Yes  | Event type. The value is fixed to **netUnavailable**.<br>**netUnavailable**: event indicating that the network is unavailable.|
+| type     | string          | Yes  | Event type. The value is fixed at **netUnavailable**.<br>**netUnavailable**: event indicating that the network is unavailable.|
 | callback | Callback\<void> | Yes  | Callback used to return the result.                                                  |
 
 **Example**
@@ -908,4 +1008,4 @@ Defines the network address.
 | ------- | ------ | ------------------------------ |
 | address | string | Network address.                        |
 | family  | number | Address family identifier. The value is **1** for IPv4 and **2** for IPv6. The default value is **1**.|
-| port    | number | Port number. The value ranges from **0** to **65535**.   |
\ No newline at end of file
+| port    | number | Port number. The value ranges from **0** to **65535**.   |
diff --git a/en/application-dev/reference/apis/js-apis-observer.md b/en/application-dev/reference/apis/js-apis-observer.md
index b68d1dc35be314220feb88ba2d67a3429ce75c58..a6fcacc4333ab0aa48dae7cd8b629e1e77bb399f 100644
--- a/en/application-dev/reference/apis/js-apis-observer.md
+++ b/en/application-dev/reference/apis/js-apis-observer.md
@@ -1,5 +1,7 @@
 # Observer
 
+The observer module provides event subscription management functions. You can register or unregister an observer that listens for the following events: network status change, signal status change, call status change, cellular data connection status, uplink and downlink data flow status of cellular data services, and SIM status change.
+
 >**NOTE**
 >
 >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -15,7 +17,7 @@ import observer from '@ohos.telephony.observer'
 
 on\(type: \'networkStateChange\', callback: Callback<NetworkState\>\): void;
 
-Registers an observer for network status change events. This API uses an asynchronous callback to return the execution result.
+Registers an observer for network status change events. This API uses an asynchronous callback to return the result.
 
 **Required permission**: ohos.permission.GET_NETWORK_INFO
 
@@ -41,7 +43,7 @@ observer.on('networkStateChange', data =>{
 
 on\(type: \'networkStateChange\', options: { slotId: number }, callback: Callback<NetworkState\>\): void;
 
-Registers an observer for network status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the execution result.
+Registers an observer for network status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
 
 **Required permission**: ohos.permission.GET_NETWORK_INFO
 
@@ -68,9 +70,7 @@ observer.on('networkStateChange', {slotId: 0}, data =>{
 
 off\(type: \'networkStateChange\', callback?: Callback<NetworkState\>\): void;
 
-Unregisters the observer for network status change events. This API uses an asynchronous callback to return the execution result.
-
-**Required permission**: ohos.permission.GET_NETWORK_INFO
+Unregisters the observer for network status change events. This API uses an asynchronous callback to return the result.
 
 >**NOTE**
 >
@@ -101,7 +101,7 @@ observer.off('networkStateChange');
 
 on\(type: \'signalInfoChange\', callback: Callback<Array<SignalInformation\>\>): void;
 
-Registers an observer for signal status change events. This API uses an asynchronous callback to return the execution result.
+Registers an observer for signal status change events. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -125,7 +125,7 @@ observer.on('signalInfoChange', data =>{
 
 on\(type: \'signalInfoChange\', options: { slotId: number }, callback: Callback<Array<SignalInformation\>\>): void;
 
-Registers an observer for signal status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the execution result.
+Registers an observer for signal status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -150,7 +150,7 @@ observer.on('signalInfoChange', {slotId: 0}, data =>{
 
 off\(type: \'signalInfoChange\', callback?: Callback<Array<SignalInformation\>\>): void;
 
-Unregisters the observer for signal status change events. This API uses an asynchronous callback to return the execution result.
+Unregisters the observer for signal status change events. This API uses an asynchronous callback to return the result.
 
 >**NOTE**
 >
@@ -182,9 +182,7 @@ observer.off('signalInfoChange');
 
 on(type: 'callStateChange', callback: Callback\<{ state: CallState, number: string }\>): void;
 
-Registers an observer for call status change events. This API uses an asynchronous callback to return the execution result.
-
-**Required permission**: ohos.permission.READ_CALL_LOG
+Registers an observer for call status change events. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -208,9 +206,7 @@ observer.on('callStateChange', value =>{
 
 on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void;
 
-Registers an observer for call status change events. This API uses an asynchronous callback to return the execution result.
-
-**Required permission**: ohos.permission.READ_CALL_LOG
+Registers an observer for call status change events. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -235,9 +231,7 @@ observer.on('callStateChange', {slotId: 0}, value =>{
 
 off(type: 'callStateChange', callback?: Callback<{ state: CallState, number: string }>): void;
 
-Unregisters the observer for call status change events. This API uses an asynchronous callback to return the execution result.
-
-**Required permission**: ohos.permission.READ_CALL_LOG
+Unregisters the observer for call status change events. This API uses an asynchronous callback to return the result.
 
 >**NOTE**
 >
@@ -269,7 +263,7 @@ observer.off('callStateChange');
 
 on\(type: 'cellularDataConnectionStateChange', callback: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
 
-Registers an observer for connection status change events of the cellular data link. This API uses an asynchronous callback to return the result.
+Registers an observer for connection status change events of the cellular data connection.This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -277,7 +271,7 @@ Registers an observer for connection status change events of the cellular data l
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Connection status change event of the cellular data link.                                    |
+| type     | string                                                       | Yes  | Connection status change event of the cellular data connection.                                    |
 | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | Yes  | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).|
 
 **Example**
@@ -293,7 +287,7 @@ observer.on('cellularDataConnectionStateChange', value =>{
 
 on\(type: 'cellularDataConnectionStateChange', options: { slotId: number }, callback: Callback\<{ state: DataConnectState, network: RatType }\>\): void;
 
-Registers an observer for connection status change events of the cellular data link over the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
+Registers an observer for connection status change events of the cellular data connection over the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.StateRegistry
 
@@ -301,7 +295,7 @@ Registers an observer for connection status change events of the cellular data l
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Connection status change event of the cellular data link.                                    |
+| type     | string                                                       | Yes  | Connection status change event of the cellular data connection.                                   |
 | slotId   | number                                                       | Yes  | Card slot ID. <br>- **0**: card slot 1<br>- **1**: card slot 2                      |
 | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | Yes  | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).|
 
@@ -318,7 +312,7 @@ observer.on('cellularDataConnectionStateChange', {slotId: 0}, value =>{
 
 off\(type: 'cellularDataConnectionStateChange',  callback?: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
 
-Unregisters the observer for connection status change events of the cellular data link. This API uses an asynchronous callback to return the result.
+Unregisters the observer for connection status change events of the cellular data connection.This API uses an asynchronous callback to return the result.
 
 >**NOTE**
 >
@@ -330,7 +324,7 @@ Unregisters the observer for connection status change events of the cellular dat
 
 | Name  | Type                                                        | Mandatory| Description                                                        |
 | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| type     | string                                                       | Yes  | Connection status change event of the cellular data link.                                    |
+| type     | string                                                       | Yes  | Connection status change event of the cellular data connection.                                   |
 | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | No  | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).|
 
 **Example**
diff --git a/en/application-dev/reference/apis/js-apis-osAccount.md b/en/application-dev/reference/apis/js-apis-osAccount.md
index 7135d5666d3884667c0d7dee8ac98d832bf410ab..e1dbb5f4a54b3936dc4b52e76ab5ad0fc0a39265 100644
--- a/en/application-dev/reference/apis/js-apis-osAccount.md
+++ b/en/application-dev/reference/apis/js-apis-osAccount.md
@@ -20,7 +20,7 @@ Obtains an **AccountManager** instance.
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 | Type                             | Description                    |
 | --------------------------------- | ------------------------ |
 | [AccountManager](#accountmanager) | Obtains an **AccountManager** instance.|
@@ -92,7 +92,7 @@ This is a system API and cannot be called by third-party applications.
 | ------- | ------ | ---- | -------------------- |
 | localId | number | Yes  | ID of the OS account to activate.|
 
-**Return Value**
+**Return value**
 
 | Type               | Description                               |
 | :------------------ | :---------------------------------- |
@@ -141,7 +141,7 @@ Checks whether multiple OS accounts are supported. This API uses a promise to re
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                  | Description                                                        |
 | :--------------------- | :----------------------------------------------------------- |
@@ -202,7 +202,7 @@ Checks whether an OS account is activated. This API uses a promise to return the
 | ------- | ------ | ---- | ------------ |
 | localId | number | Yes  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                  | Description                                                        |
 | :--------------------- | :----------------------------------------------------------- |
@@ -266,7 +266,7 @@ Checks whether the specified constraint is enabled for an OS account. This API u
 | localId    | number | Yes  | ID of the target OS account.                   |
 | constraint | string | Yes  | [Constraint](#constraints) specified.|
 
-**Return Value**
+**Return value**
 
 | Type                  | Description                                                        |
 | :--------------------- | :----------------------------------------------------------- |
@@ -316,7 +316,7 @@ Checks whether this OS account is a test account. This API uses a promise to ret
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                  | Description                                                        |
 | :--------------------- | :----------------------------------------------------------- |
@@ -400,7 +400,7 @@ Checks whether an OS account has been verified. This API uses a promise to retur
 | ------- | ------ | ---- | ------------------ |
 | localId | number | No  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                  | Description                                                        |
 | :--------------------- | :----------------------------------------------------------- |
@@ -467,7 +467,7 @@ This is a system API and cannot be called by third-party applications.
 | ------- | ------ | ---- | -------------------- |
 | localId | number | Yes  | ID of the OS account to remove.|
 
-**Return Value**
+**Return value**
 
 | Type               | Description                               |
 | :------------------ | :---------------------------------- |
@@ -540,7 +540,7 @@ This is a system API and cannot be called by third-party applications.
 | constraints | Array&lt;string&gt; | Yes  | List of [constraints](#constraints) to set or remove.|
 | enable      | boolean             | Yes  | Set or remove constraints. The value **true** means to set constraints, and **false** means to remove constraints.                    |
 
-**Return Value**
+**Return value**
 
 | Type               | Description                               |
 | :------------------ | :---------------------------------- |
@@ -608,7 +608,7 @@ This is a system API and cannot be called by third-party applications.
 | localId   | number | Yes  | ID of the target OS account.|
 | localName | string | Yes  | Account name to set.    |
 
-**Return Value**
+**Return value**
 
 | Type               | Description                               |
 | :------------------ | :---------------------------------- |
@@ -663,7 +663,7 @@ Obtains the number of OS accounts created. This API uses a promise to return the
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -712,7 +712,7 @@ Obtains the ID of the OS account to which the current process belongs. This API
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -769,7 +769,7 @@ Obtains the OS account ID based on the process UID. This API uses a promise to r
 | ------ | ------ | ---- | --------- |
 | uid    | number | Yes  | Process UID.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -831,7 +831,7 @@ Obtains the OS account ID based on domain account information. This API uses a p
 | ---------- | --------------------------------------- | ---- | ------------ |
 | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes  | Domain account information.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -885,7 +885,7 @@ This is a system API and cannot be called by third-party applications.
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -946,7 +946,7 @@ Obtains all constraints enabled for an OS account. This API uses a promise to re
 | ------- | ------ | ---- | ------------ |
 | localId | number | Yes  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                              | Description                                                        |
 | :--------------------------------- | :----------------------------------------------------------- |
@@ -1004,7 +1004,7 @@ This is a system API and cannot be called by third-party applications.
 
 **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
 
-**Return Value**
+**Return value**
 
 | Type                                                       | Description                                                        |
 | :---------------------------------------------------------- | :----------------------------------------------------------- |
@@ -1056,7 +1056,7 @@ Obtains information about all activated OS accounts. This API uses a promise to
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                              | Description                                                        |
 | :--------------------------------- | :----------------------------------------------------------- |
@@ -1122,7 +1122,7 @@ This is a system API and cannot be called by third-party applications.
 | localName | string                          | Yes  | Name of the OS account to create.|
 | type      | [OsAccountType](#osaccounttype) | Yes  | Type of the OS account to create.|
 
-**Return Value**
+**Return value**
 
 | Type                                          | Description                                                        |
 | :--------------------------------------------- | :----------------------------------------------------------- |
@@ -1189,7 +1189,7 @@ This is a system API and cannot be called by third-party applications.
 | type       | [OsAccountType](#osaccounttype)         | Yes  | Type of the OS account to create.|
 | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes  | Domain account information.          |
 
-**Return Value**
+**Return value**
 
 | Type                                          | Description                                                        |
 | :--------------------------------------------- | :----------------------------------------------------------- |
@@ -1243,7 +1243,7 @@ Obtains information about the OS account to which the current process belongs. T
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                                          | Description                                                        |
 | :--------------------------------------------- | :----------------------------------------------------------- |
@@ -1308,7 +1308,7 @@ This is a system API and cannot be called by third-party applications.
 | ------- | ------ | ---- | -------------------- |
 | localId | number | Yes  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                                          | Description                                                        |
 | :--------------------------------------------- | :----------------------------------------------------------- |
@@ -1358,7 +1358,7 @@ Obtains the type of the OS account to which the current process belongs. This AP
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                                          | Description                                                        |
 | :--------------------------------------------- | :----------------------------------------------------------- |
@@ -1411,7 +1411,7 @@ Obtains the ID of this distributed virtual device. This API uses a promise to re
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1476,7 +1476,7 @@ This is a system API and cannot be called by third-party applications.
 | ------- | ------ | ---- | ------------ |
 | localId | number | Yes  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1547,7 +1547,7 @@ This is a system API and cannot be called by third-party applications.
 | localId | number | Yes  | ID of the target OS account.|
 | photo   | string | Yes  | Profile photo information.  |
 
-**Return Value**
+**Return value**
 
 | Type               | Description                               |
 | :------------------ | :---------------------------------- |
@@ -1609,7 +1609,7 @@ Obtains the OS account ID based on the SN. This API uses a promise to return the
 | ------------ | ------ | ---- | ---------- |
 | serialNumber | number | Yes  | Account SN.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1667,7 +1667,7 @@ Obtains the SN of an OS account based on the account ID. This API uses a promise
 | ------- | ------ | ---- | ------------ |
 | localId | number | Yes  | ID of the target OS account.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1787,7 +1787,7 @@ This is a system API and cannot be called by third-party applications.
 | ------- | ------ | ---- | ------------ |
 | uid     | number | Yes  |  Process UID.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1836,7 +1836,7 @@ This is a system API and cannot be called by third-party applications.
 
 **System capability**: SystemCapability.Account.OsAccount
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
@@ -1898,7 +1898,7 @@ This is a system API and cannot be called by third-party applications.
 | localId     | number | Yes  |  ID of the target OS account.|
 | constraint     | string | Yes  |  Name of the [constraint](#constraints) to query.|
 
-**Return Value**
+**Return value**
 
 | Type                 | Description                                                        |
 | :-------------------- | :----------------------------------------------------------- |
diff --git a/en/application-dev/reference/apis/js-apis-particleAbility.md b/en/application-dev/reference/apis/js-apis-particleAbility.md
index 12f2fd80bdd78b13c59b1684f080ac2798a9c436..ac0152abec3ed642d7e0cc61af6aa2ab5d7c5e3f 100644
--- a/en/application-dev/reference/apis/js-apis-particleAbility.md
+++ b/en/application-dev/reference/apis/js-apis-particleAbility.md
@@ -1,4 +1,6 @@
-# ParticleAbility
+# particleAbility
+
+The **particleAbility** module provides APIs for Service abilities. You can use the APIs to start and terminate a Particle ability, obtain a **dataAbilityHelper** object, connect the current ability to a specific Service ability, and disconnect the current ability from a specific Service ability. 
 
 > **NOTE**
 > 
diff --git a/en/application-dev/reference/apis/js-apis-permissionrequestresult.md b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
index f0d3ed2f0ce6e5e84883f38b7d9441b74dae5ae4..d133b1b37776187ac1120f42ead17e98273f0db4 100644
--- a/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
+++ b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
@@ -1,19 +1,13 @@
 # PermissionRequestResult
 
+The **PermissionRequestResult** module provides the result of a permission request.
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides the permission request result.
-
-## Modules to Import
-
-```js
-import Ability from '@ohos.application.Ability'
-```
-
-## How to Use
+## Usage
 
 The permission request result is obtained through an **AbilityStage** instance.
 
diff --git a/en/application-dev/reference/apis/js-apis-privacyManager.md b/en/application-dev/reference/apis/js-apis-privacyManager.md
index e06a5536a8754922e0e82d14162296124f498665..42cf66fea697004eafe45bc775146e0aa77ce8ad 100644
--- a/en/application-dev/reference/apis/js-apis-privacyManager.md
+++ b/en/application-dev/reference/apis/js-apis-privacyManager.md
@@ -1,11 +1,11 @@
 # Privacy Management
 
-Provides APIs for privacy management, such as management of permission usage records.
+The **PrivacyManager** module provides APIs for privacy management, such as management of permission usage records.
 
 > **NOTE**
->
-> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-> - The APIs of this module are system APIs and cannot be called by third-party applications.
+> 
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The APIs of this module are system APIs and cannot be called by third-party applications.
 
 ## Modules to Import
 
@@ -19,7 +19,6 @@ import privacyManager from '@ohos.privacyManager';
 addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise&lt;number&gt;
 
 Adds a permission usage record when an application protected by the permission is called by another service or application. This API uses a promise to return the result.
-
 The permission usage record includes the application identity of the invoker, name of the permission used, and number of successful and failed accesses to the application.
 
 **Required permissions**: ohos.permission.PERMISSION_USED_STATS (available only to system applications)
@@ -41,10 +40,6 @@ The permission usage record includes the application identity of the invoker, na
 | :------------ | :---------------------------------- |
 | Promise&lt;number&gt; | Promise used to return the result. If **0** is returned, the record is added successfully. If **-1** is returned, the record fails to be added.|
 
-```
-
-```
-
 **Example**
 
 ```js
@@ -59,7 +54,6 @@ privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED
 addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback&lt;number&gt;): void
 
 Adds a permission usage record when an application protected by the permission is called by another service or application. This API uses an asynchronous callback to return the result.
-
 The permission usage record includes the application identity of the invoker, name of the permission used, and number of successful and failed accesses to the application.
 
 **Required permissions**: ohos.permission.PERMISSION_USED_STATS (available only to system applications)
@@ -202,7 +196,7 @@ Represents the permission usage records of all applications.
 
 ## BundleUsedRecord
 
-Represents the application access records of an application.
+Represents the permission access records of an application.
 
 **System capability**: SystemCapability.Security.AccessToken
 
@@ -212,11 +206,11 @@ Represents the application access records of an application.
 | isRemote | boolean         | No   | Whether the token ID belongs to a remote device. The default value is **false**.|
 | deviceId  | string         | No   | ID of the device hosting the target application.                                |
 | bundleName | string         | No   | Bundle name of the target application.|
-| permissionRecords  | Array&lt;[PermissionUsedRecord](#PermissionUsedRecord)&gt;         | No   | Permission usage records of the specified application obtained.                                |
+| permissionRecords  | Array&lt;[PermissionUsedRecord](#PermissionUsedRecord)&gt;         | No   | Permission usage records of the target application.                                |
 
 ## PermissionUsedRecord
 
-Represents the access records of a permission.
+Represents the usage records of a permission.
 
 **System capability**: SystemCapability.Security.AccessToken
 
@@ -225,8 +219,8 @@ Represents the access records of a permission.
 | permissionName  | string         | No   | Name of the permission.                                |
 | accessCount | number         | No   | Total number of times that the permission is accessed.|
 | rejectCount | number         | No   | Total number of times that the access to the permission is rejected.|
-| lastAccessTime | number         | No   | Last time when the permission was accessed, in ms.|
-| lastRejectTime | number         | No   | Last time when the access to the permission was rejected, in ms.|
+| lastAccessTime | number         | No   | Last time when the permission was accessed, accurate to ms.|
+| lastRejectTime | number         | No   | Last time when the access to the permission was rejected, accurate to ms.|
 | lastAccessDuration | number         | No   | Last access duration, in ms.|
 | accessRecords  | Array&lt;[UsedRecordDetail](#usedrecorddetail)&gt;         | No   | Access records. This parameter is valid only when **flag** is **FLAG_PERMISSION_USAGE_SUMMARY**. By default, 10 records are provided.                                |
 | rejectRecords  | Array&lt;[UsedRecordDetail](#usedrecorddetail)&gt;         | No   | Rejected records. This parameter is valid only when **flag** is **FLAG_PERMISSION_USAGE_SUMMARY**. By default, 10 records are provided.                                |
diff --git a/en/application-dev/reference/apis/js-apis-process.md b/en/application-dev/reference/apis/js-apis-process.md
index e73c4fe303ebeaac19274d5214085fb8646fa651..98d55f53e7f3c51f33fc9505fccf33df846c9ef6 100755
--- a/en/application-dev/reference/apis/js-apis-process.md
+++ b/en/application-dev/reference/apis/js-apis-process.md
@@ -1,6 +1,7 @@
 # Obtaining Process Information
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -92,7 +93,7 @@ This is a system API and cannot be called by third-party applications.
 ```js
 var child = process.runCmd('ls');
 var result = child.wait();
-child.getOutput.then(val=>{
+child.getOutput().then(val=>{
     console.log("child.getOutput = " + val);
 })
 ```
@@ -119,7 +120,7 @@ This is a system API and cannot be called by third-party applications.
 ```js
 var child = process.runCmd('madir test.text');
 var result = child.wait();
-child.getErrorOutput.then(val=>{
+child.getErrorOutput().then(val=>{
     console.log("child.getErrorOutput= " + val);
 })
 ```
@@ -286,7 +287,7 @@ Obtains the thread priority based on the specified TID.
 **Example**
 
 ```js
-var tid = process.getTid();
+var tid = process.tid;
 var pres = process.getThreadPriority(tid);
 ```
 
@@ -409,7 +410,7 @@ This is a system API and cannot be called by third-party applications.
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | timeout | number | No| Maximum running time (in ms) of the child process. When the running time of the child process exceeds the value of this parameter, the parent process sends a **killSignal** to the child process to terminate it. The default value is **0**.|
-| killSignal | number&nbsp;&nbsp;\|&nbsp;string | No| Signal sent to the child process when the running time of a child process exceeds the timeout period. The default value is **SIGTERM**.|
+| killSignal | number \| string | No| Signal sent to the child process when the running time of a child process exceeds the timeout period. The default value is **SIGTERM**.|
 | maxBuffer | number | No| Maximum buffer size for the standard input and output of the child process. When the size is exceeded, the child process will be terminated. The default value is **1024 \* 1024**.|
 
 **Return value**
@@ -617,5 +618,5 @@ Sends a signal to the specified process to terminate it.
 
 ```js
 var pres = process.pid
-var result = that.kill(28, pres)
+var result = process.kill(28, pres)
 ```
diff --git a/en/application-dev/reference/apis/js-apis-processrunninginfo.md b/en/application-dev/reference/apis/js-apis-processrunninginfo.md
index 24fb9f15a5427a450ea907bb296c43f3d3f55a91..e26e01dc8f8d7fbb6472d11217f1156ceb1b41b8 100644
--- a/en/application-dev/reference/apis/js-apis-processrunninginfo.md
+++ b/en/application-dev/reference/apis/js-apis-processrunninginfo.md
@@ -1,16 +1,10 @@
 # ProcessRunningInfo
 
+The **ProcessRunningInfo** module provides process running information.
+
 > **NOTE**
 > 
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
-Provides process running information.
-
-## Modules to Import
-
-```js
-import appManager from '@ohos.application.appManager'
-```
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Usage
 
@@ -23,7 +17,6 @@ appManager.getProcessRunningInfos((error,data) => {
 });
 ```
 
-
 ## Attributes
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
diff --git a/en/application-dev/reference/apis/js-apis-radio.md b/en/application-dev/reference/apis/js-apis-radio.md
index b8cbdcc23c001aa24aebe7dfaae2ca06a0fae706..5b371ea07267732eb69de7676cab7f6057954275 100644
--- a/en/application-dev/reference/apis/js-apis-radio.md
+++ b/en/application-dev/reference/apis/js-apis-radio.md
@@ -1,5 +1,7 @@
 # Radio
 
+The radio module provides basic network search management functions. You can obtain the radio access technology (RAT) used in the CS and PS domains, network status, current network selection mode, ISO country code of the registered network, ID of the slot in which the primary card is located, list of signal strengths of the registered network, carrier name, and IMEI, MEID, and unique device ID of the SIM card in the specified slot. Besides, you can check whether the current device supports 5G\(NR\) and whether the radio service is enabled on the primary SIM card.
+
 >**NOTE**
 >
 >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -15,7 +17,7 @@ import radio from '@ohos.telephony.radio'
 
 getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void
 
-Obtains the radio access technology (RAT) used by the CS and PS domains for the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
+Obtains the RAT used in the CS and PS domains for the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
 
 **Required permission**: ohos.permission.GET_NETWORK_INFO
 
@@ -42,7 +44,7 @@ radio.getRadioTech(slotId, (err, data) =>{
 
 getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>
 
-Obtains the RAT used by the CS and PS domains for the SIM card in the specified slot. This API uses a promise to return the result.
+Obtains the RAT used in the CS and PS domains for the SIM card in the specified slot. This API uses a promise to return the result.
 
 **Required permission**: ohos.permission.GET_NETWORK_INFO
 
@@ -573,7 +575,7 @@ This is a system API.
 | Name  | Type                 | Mandatory| Description                                  |
 | -------- | --------------------- | ---- | -------------------------------------- |
 | slotId   | number                | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
-| callback | AsyncCallback\<void\> | Yes  | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+| callback | AsyncCallback\<void\> | Yes  | Callback used to return the result. |
 
 **Example**
 
@@ -607,7 +609,7 @@ This is a system API.
 
 | Type           | Description                           |
 | --------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result.|
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-resource-manager.md b/en/application-dev/reference/apis/js-apis-resource-manager.md
index 335e31cdb21bacd975db26b726f503c0a44e431d..3abc771bff725718ccd5df3eb0334331701faea4 100644
--- a/en/application-dev/reference/apis/js-apis-resource-manager.md
+++ b/en/application-dev/reference/apis/js-apis-resource-manager.md
@@ -2,7 +2,8 @@
 
 The resource management module provides APIs to obtain information about the current device configuration (including the language, region, screen direction, and MCC/MNC) and device capability (including the device type and resolution).
 
-> **NOTE**<br>
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -12,9 +13,9 @@ The resource management module provides APIs to obtain information about the cur
 import resourceManager from '@ohos.resourceManager';
 ```
 
-## Usage
+## How to Use
 
-Since API version 9, the stage model allows an application to obtain a **ResourceManager** object based on **context** and call its APIs without first importing the required bundle. This method, however, is not applicable to the FA model.
+Since API version 9, the stage model allows an application to obtain a **ResourceManager** object based on **context** and call its resource management APIs without first importing the required bundle. This method, however, is not applicable to the FA model.
 
 ```
 this.context.resourceManager;
@@ -26,14 +27,14 @@ getResourceManager(callback: AsyncCallback&lt;ResourceManager&gt;): void
 
 Obtains the **ResourceManager** object of this application. This API uses an asynchronous callback to return the result.
 
-This API is used only in the FA model.
+This API can be used only in the FA model.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
 **Parameters**
 | Name     | Type                                      | Mandatory  | Description                           |
 | -------- | ---------------------------------------- | ---- | ----------------------------- |
-| callback | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -59,7 +60,7 @@ getResourceManager(bundleName: string, callback: AsyncCallback&lt;ResourceManage
 
 Obtains the **ResourceManager** object of an application based on the specified bundle name. This API uses an asynchronous callback to return the result.
 
-This API is used only in the FA model.
+This API can be used only in the FA model.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -67,7 +68,7 @@ This API is used only in the FA model.
 | Name       | Type                                      | Mandatory  | Description                           |
 | ---------- | ---------------------------------------- | ---- | ----------------------------- |
 | bundleName | string                                   | Yes   | Bundle name of the target application.                |
-| callback   | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback   | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -82,7 +83,7 @@ getResourceManager(): Promise&lt;ResourceManager&gt;
 
 Obtains the **ResourceManager** object of this application. This API uses a promise to return the result.
 
-This API is used only in the FA model.
+This API can be used only in the FA model.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -113,7 +114,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 Obtains the **ResourceManager** object of an application based on the specified bundle name. This API uses a promise to return the result.
 
-This API is used only in the FA model.
+This API can be used only in the FA model.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -229,21 +230,34 @@ resourceManager.getResourceManager((error, mgr) => {
 
 ## RawFileDescriptor<sup>8+</sup>
 
-Defines the descriptor information of the raw file.<br>
+Defines the descriptor of the raw file.<br>
 **System capability**: SystemCapability.Global.ResourceManager
 
 | Name    | Type    | Description                |
 | ------ | ------ | ------------------ |
-| fd     | number | Descriptor of a raw file.|
-| offset | number | Offset to the start position of the raw file.     |
+| fd     | number | Descriptor of the raw file.|
+| offset | number | Start offset of the raw file.     |
 | length | number | Length of the raw file.      |
 
+## Resource<sup>9+</sup>
+
+Defines the resource information of an application.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+| Name    | Type    | Description                |
+| ------ | ------ | ------------------ |
+| bundleName | string | Bundle name of the application.|
+| moduleName | string | Module name of the application.     |
+| id         | number | Resource ID.      |
+
 
 ## ResourceManager
 
 Defines the capability of accessing application resources.
 
-> **NOTE**<br>
+> **NOTE**
+>
 > - The methods involved in **ResourceManager** are applicable only to the TypeScript-based declarative development paradigm.
 >
 > - Resource files are defined in the **resources** directory of the project. You can obtain the resource ID using **$r(resource address).id**, for example, **$r('app.string.test').id**.
@@ -261,7 +275,7 @@ Obtains the string corresponding to the specified resource ID. This API uses an
 | Name     | Type                         | Mandatory  | Description             |
 | -------- | --------------------------- | ---- | --------------- |
 | resId    | number                      | Yes   | Resource ID.          |
-| callback | AsyncCallback&lt;string&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -307,6 +321,68 @@ Obtains the string corresponding to the specified resource ID. This API uses a p
   ```
 
 
+### getString<sup>9+</sup>
+
+getString(resource: Resource, callback: AsyncCallback&lt;string&gt;): void
+
+Obtains the string corresponding to the specified resource object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name     | Type                         | Mandatory  | Description             |
+| -------- | --------------------------- | ---- | --------------- |
+| resource    | [Resource](#resource9)                     | Yes   | Resource object.          |
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.string.test').id
+  };
+  this.context.resourceManager.getString(resource, (error, value) => {
+      if (error != null) {
+          console.log("error is " + error);
+      } else {
+          let str = value;
+      }
+  });
+  ```
+
+### getString<sup>9+</sup>
+
+getString(resource: Resource): Promise&lt;string&gt;
+
+Obtains the string corresponding to the specified resource object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| Promise&lt;string&gt; | Promise used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.string.test').id
+  };
+  this.context.resourceManager.getString(resource).then(value => {
+      let str = value;
+  }).catch(error => {
+      console.log("getstring promise error is " + error);
+  });
+  ```
+
 ### getStringArray
 
 getStringArray(resId: number, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
@@ -319,7 +395,7 @@ Obtains the string array corresponding to the specified resource ID. This API us
 | Name     | Type                                      | Mandatory  | Description               |
 | -------- | ---------------------------------------- | ---- | ----------------- |
 | resId    | number                                   | Yes   | Resource ID.            |
-| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -364,6 +440,67 @@ Obtains the string array corresponding to the specified resource ID. This API us
   });
   ```
 
+### getStringArray<sup>9+</sup>
+
+getStringArray(resource: Resource, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
+
+Obtains the string array corresponding to the specified resource object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name     | Type                         | Mandatory  | Description             |
+| -------- | --------------------------- | ---- | --------------- |
+| resource    | [Resource](#resource9)                      | Yes   | Resource object.          |
+| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes   | Callback used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.strarray.test').id
+  };
+  this.context.resourceManager.getStringArray(resource, (error, value) => {
+      if (error != null) {
+          console.log("error is " + error);
+      } else {
+          let strArray = value;
+      }
+  });
+  ```
+
+### getStringArray<sup>9+</sup>
+
+getStringArray(resource: Resource): Promise&lt;Array&lt;string&gt;&gt;
+
+Obtains the string array corresponding to the specified resource object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| Promise&lt;Array&lt;string&gt;&gt; | Promise used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.strarray.test').id
+  };
+  this.context.resourceManager.getStringArray(resource).then(value => {
+      let strArray = value;
+  }).catch(error => {
+      console.log("getStringArray promise error is " + error);
+  });
+  ```
 
 ### getMedia
 
@@ -377,7 +514,7 @@ Obtains the content of the media file corresponding to the specified resource ID
 | Name     | Type                             | Mandatory  | Description                |
 | -------- | ------------------------------- | ---- | ------------------ |
 | resId    | number                          | Yes   | Resource ID.             |
-| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -422,6 +559,67 @@ Obtains the content of the media file corresponding to the specified resource ID
   });
   ```
 
+### getMedia<sup>9+</sup>
+
+getMedia(resource: Resource, callback: AsyncCallback&lt;Uint8Array&gt;): void
+
+Obtains the content of the media file corresponding to the specified resource object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name     | Type                         | Mandatory  | Description             |
+| -------- | --------------------------- | ---- | --------------- |
+| resource    | [Resource](#resource9)                      | Yes   | Resource object.          |
+| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Callback used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.media.test').id
+  };
+  this.context.resourceManager.getMedia(resource, (error, value) => {
+      if (error != null) {
+          console.log("error is " + error);
+      } else {
+          let media = value;
+      }
+  });
+  ```
+
+### getMedia<sup>9+</sup>
+
+getMedia(resource: Resource): Promise&lt;Uint8Array&gt;
+
+Obtains the content of the media file corresponding to the specified resource object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| Promise&lt;Uint8Array&gt; | Promise used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.media.test').id
+  };
+  this.context.resourceManager.getMedia(resource).then(value => {
+      let media = value;
+  }).catch(error => {
+      console.log("getMedia promise error is " + error);
+  });
+  ```
 
 ### getMediaBase64
 
@@ -435,7 +633,7 @@ Obtains the Base64 code of the image corresponding to the specified resource ID.
 | Name     | Type                         | Mandatory  | Description                      |
 | -------- | --------------------------- | ---- | ------------------------ |
 | resId    | number                      | Yes   | Resource ID.                   |
-| callback | AsyncCallback&lt;string&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -480,6 +678,68 @@ Obtains the Base64 code of the image corresponding to the specified resource ID.
   });
   ```
 
+### getMediaBase64<sup>9+</sup>
+
+getMediaBase64(resource: Resource, callback: AsyncCallback&lt;string&gt;): void
+
+Obtains the Base64 code of the image corresponding to the specified resource object. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name     | Type                         | Mandatory  | Description                      |
+| -------- | --------------------------- | ---- | ------------------------ |
+| resource    | [Resource](#resource9)                      | Yes   | Resource object.                   |
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.media.test').id
+  };
+  this.context.resourceManager.getMediaBase64(resource, (error, value) => {
+      if (error != null) {
+          console.log("error is " + error);
+      } else {
+          let media = value;
+      }
+  });
+  ```
+
+### getMediaBase64<sup>9+</sup>
+
+getMediaBase64(resource: Resource): Promise&lt;string&gt;
+
+Obtains the Base64 code of the image corresponding to the specified resource object. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description                  |
+| --------------------- | -------------------- |
+| Promise&lt;string&gt; | Promise used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.media.test').id
+  };
+  this.context.resourceManager.getMediaBase64(resource).then(value => {
+      let media = value;
+  }).catch(error => {
+      console.log("getMediaBase64 promise error is " + error);
+  });
+  ```
+
 
 ### getConfiguration
 
@@ -492,7 +752,7 @@ Obtains the device configuration. This API uses an asynchronous callback to retu
 **Parameters**
 | Name     | Type                                      | Mandatory  | Description                       |
 | -------- | ---------------------------------------- | ---- | ------------------------- |
-| callback | AsyncCallback&lt;[Configuration](#configuration)&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;[Configuration](#configuration)&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -546,7 +806,7 @@ Obtains the device capability. This API uses an asynchronous callback to return
 **Parameters**
 | Name     | Type                                      | Mandatory  | Description                          |
 | -------- | ---------------------------------------- | ---- | ---------------------------- |
-| callback | AsyncCallback&lt;[DeviceCapability](#devicecapability)&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;[DeviceCapability](#devicecapability)&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -593,7 +853,7 @@ Obtains the device capability. This API uses a promise to return the result.
 
 getPluralString(resId: number, num: number, callback: AsyncCallback&lt;string&gt;): void
 
-Obtains the specified number of singular-plural strings corresponding to the specified resource ID. This API uses an asynchronous callback to return the result.
+Obtains the singular-plural string corresponding to the specified resource ID based on the specified number. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -601,8 +861,8 @@ Obtains the specified number of singular-plural strings corresponding to the spe
 | Name     | Type                         | Mandatory  | Description                             |
 | -------- | --------------------------- | ---- | ------------------------------- |
 | resId    | number                      | Yes   | Resource ID.                          |
-| num      | number                      | Yes   | Number that determines the plural or singular form.                            |
-| callback | AsyncCallback&lt;string&gt; | Yes   | Asynchronous callback used to return the result.|
+| num      | number                      | Yes   | Number.                            |
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -622,7 +882,7 @@ Obtains the specified number of singular-plural strings corresponding to the spe
 
 getPluralString(resId: number, num: number): Promise&lt;string&gt;
 
-Obtains the specified number of singular-plural strings corresponding to the specified resource ID. This API uses a promise to return the result.
+Obtains the singular-plural string corresponding to the specified resource ID based on the specified number. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -630,7 +890,7 @@ Obtains the specified number of singular-plural strings corresponding to the spe
 | Name  | Type    | Mandatory  | Description   |
 | ----- | ------ | ---- | ----- |
 | resId | number | Yes   | Resource ID.|
-| num   | number | Yes   | Number that determines the plural or singular form.  |
+| num   | number | Yes   | Number.  |
 
 **Return value**
 | Type                   | Description                       |
@@ -648,6 +908,70 @@ Obtains the specified number of singular-plural strings corresponding to the spe
   });
   ```
 
+### getPluralString<sup>9+</sup>
+
+getPluralString(resource: Resource, num: number, callback: AsyncCallback&lt;string&gt;): void
+
+Obtains the singular-plural string corresponding to the specified resource object based on the specified number. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name     | Type                         | Mandatory  | Description                             |
+| -------- | --------------------------- | ---- | ------------------------------- |
+| resource    | [Resource](#resource9)                      | Yes   | Resource object.                          |
+| num      | number                      | Yes   | Number.                            |
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.plural.test').id
+  };
+  this.context.resourceManager.getPluralString(resource, 1, (error, value) => {
+      if (error != null) {
+          console.log("error is " + error);
+      } else {
+          let str = value;
+      }
+  });
+  ```
+
+### getPluralString<sup>9+</sup>
+
+getPluralString(resource: Resource, num: number): Promise&lt;string&gt;
+
+Obtains the singular-plural string corresponding to the specified resource object based on the specified number. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+| num   | number | Yes   | Number.  |
+
+**Return value**
+| Type                   | Description                       |
+| --------------------- | ------------------------- |
+| Promise&lt;string&gt; | Promise used to return the result.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.plural.test').id
+  };
+  this.context.resourceManager.getPluralString(resource, 1).then(value => {
+      let str = value;
+  }).catch(error => {
+      console.log("getPluralString promise error is " + error);
+  });
+  ```
+
 ### getRawFile<sup>8+</sup>
 
 getRawFile(path: string, callback: AsyncCallback&lt;Uint8Array&gt;): void
@@ -660,7 +984,7 @@ Obtains the content of the raw file in the **resources/rawfile** directory. This
 | Name     | Type                             | Mandatory  | Description                     |
 | -------- | ------------------------------- | ---- | ----------------------- |
 | path     | string                          | Yes   | Path of the raw file.            |
-| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -716,7 +1040,7 @@ Obtains the descriptor of the raw file in the **resources/rawfile** directory. T
 | Name     | Type                                      | Mandatory  | Description                              |
 | -------- | ---------------------------------------- | ---- | -------------------------------- |
 | path     | string                                   | Yes   | Path of the raw file.                     |
-| callback | AsyncCallback&lt;[RawFileDescriptor](#rawfiledescriptor8)&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;[RawFileDescriptor](#rawfiledescriptor8)&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
@@ -776,7 +1100,7 @@ Closes the descriptor of the raw file in the **resources/rawfile** directory. Th
 | Name     | Type                       | Mandatory  | Description         |
 | -------- | ------------------------- | ---- | ----------- |
 | path     | string                    | Yes   | Path of the raw file.|
-| callback | AsyncCallback&lt;void&gt; | Yes   | Asynchronous callback used to return the result.       |
+| callback | AsyncCallback&lt;void&gt; | Yes   | Callback used to return the result.       |
 
 **Example**
   ```
@@ -805,7 +1129,7 @@ Closes the descriptor of the raw file in the **resources/rawfile** directory. Th
 **Return value**
 | Type                 | Description  |
 | ------------------- | ---- |
-| Promise&lt;void&gt; | No value is returned.|
+| Promise&lt;void&gt; | Promise that returns no value.|
 
 **Example**
   ```
@@ -822,7 +1146,7 @@ Closes the descriptor of the raw file in the **resources/rawfile** directory. Th
 
 release()
 
-Releases the created **resourceManager**.
+Releases a created **resourceManager** object.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -845,11 +1169,11 @@ Obtains the string corresponding to the specified resource name. This API uses a
 | Name     | Type                         | Mandatory  | Description             |
 | -------- | --------------------------- | ---- | --------------- |
 | resName  | string                      | Yes  | Resource name.       |
-| callback | AsyncCallback&lt;string&gt; | Yes  | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the result.|
 
 **Example**
   ```
-  resourceManager.getStringByName("test", (error, value) => {
+  this.context.resourceManager.getStringByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
       } else {
@@ -874,11 +1198,11 @@ Obtains the string corresponding to the specified resource name. This API uses a
 **Return value**
 | Type                   | Description         |
 | --------------------- | ----------- |
-| Promise&lt;string&gt; | String corresponding to the resource name.|
+| Promise&lt;string&gt; | Promise used to return the result.|
 
 **Example**
   ```
-  resourceManager.getStringByName("test").then(value => {
+  this.context.resourceManager.getStringByName("test").then(value => {
       let string = value;
   }).catch(error => {
       console.log("getStringByName promise error is " + error);
@@ -897,11 +1221,11 @@ Obtains the string array corresponding to the specified resource name. This API
 | Name     | Type                                      | Mandatory  | Description               |
 | -------- | ---------------------------------------- | ---- | ----------------- |
 | resName  | string                                   | Yes   | Resource name.            |
-| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
-  resourceManager.getStringArrayByName("test", (error, value) => {
+  this.context.resourceManager.getStringArrayByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
       } else {
@@ -930,7 +1254,7 @@ Obtains the string array corresponding to the specified resource name. This API
 
 **Example**
   ```
-  resourceManager.getStringArrayByName("test").then(value => {
+  this.context.resourceManager.getStringArrayByName("test").then(value => {
       let strArray = value;
   }).catch(error => {
       console.log("getStringArrayByName promise error is " + error);
@@ -949,11 +1273,11 @@ Obtains the content of the media file corresponding to the specified resource na
 | Name     | Type                             | Mandatory  | Description                |
 | -------- | ------------------------------- | ---- | ------------------ |
 | resName  | string                          | Yes   | Resource name.             |
-| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;Uint8Array&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
-  resourceManager.getMediaByName("test", (error, value) => {
+  this.context.resourceManager.getMediaByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
       } else {
@@ -982,7 +1306,7 @@ Obtains the content of the media file corresponding to the specified resource na
 
 **Example**
   ```
-  resourceManager.getMediaByName("test").then(value => {
+  this.context.resourceManager.getMediaByName("test").then(value => {
       let media = value;
   }).catch(error => {
       console.log("getMediaByName promise error is " + error);
@@ -1001,11 +1325,11 @@ Obtains the Base64 code of the image corresponding to the specified resource nam
 | Name     | Type                         | Mandatory  | Description                      |
 | -------- | --------------------------- | ---- | ------------------------ |
 | resName  | string                      | Yes   | Resource name.                   |
-| callback | AsyncCallback&lt;string&gt; | Yes   | Asynchronous callback used to return the result.|
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
-  resourceManager.getMediaBase64ByName("test", (error, value) => {
+  this.context.resourceManager.getMediaBase64ByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
       } else {
@@ -1034,7 +1358,7 @@ Obtains the Base64 code of the image corresponding to the specified resource nam
 
 **Example**
   ```
-  resourceManager.getMediaByName("test").then(value => {
+  this.context.resourceManager.getMediaBase64ByName("test").then(value => {
       let media = value;
   }).catch(error => {
       console.log("getMediaBase64ByName promise error is " + error);
@@ -1045,7 +1369,7 @@ Obtains the Base64 code of the image corresponding to the specified resource nam
 
 getPluralStringByName(resName: string, num: number, callback: AsyncCallback&lt;string&gt;): void
 
-Obtains the plural string corresponding to the specified resource name. This API uses an asynchronous callback to return the result.
+Obtains the plural string corresponding to the specified resource name based on the specified number. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -1053,12 +1377,12 @@ Obtains the plural string corresponding to the specified resource name. This API
 | Name     | Type                         | Mandatory  | Description                             |
 | -------- | --------------------------- | ---- | ------------------------------- |
 | resName  | string                      | Yes   | Resource name.                          |
-| num      | number                      | Yes   | Number that determines the plural or singular form.                            |
-| callback | AsyncCallback&lt;string&gt; | Yes   | Asynchronous callback used to return the result.|
+| num      | number                      | Yes   | Number.                            |
+| callback | AsyncCallback&lt;string&gt; | Yes   | Callback used to return the result.|
 
 **Example**
   ```
-  resourceManager.getPluralStringByName("test", 1, (error, value) => {
+  this.context.resourceManager.getPluralStringByName("test", 1, (error, value) => {
       if (error != null) {
           console.log("error is " + error);
       } else {
@@ -1071,7 +1395,7 @@ Obtains the plural string corresponding to the specified resource name. This API
 
 getPluralStringByName(resName: string, num: number): Promise&lt;string&gt;
 
-Obtains the plural string corresponding to the specified resource name. This API uses a promise to return the result.
+Obtains the plural string corresponding to the specified resource name based on the specified number. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Global.ResourceManager
 
@@ -1079,7 +1403,7 @@ Obtains the plural string corresponding to the specified resource name. This API
 | Name  | Type    | Mandatory  | Description   |
 | ------- | ------ | ---- | ----- |
 | resName | string | Yes   | Resource name.|
-| num     | number | Yes   | Number that determines the plural or singular form.  |
+| num     | number | Yes   | Number.  |
 
 **Return value**
 | Type                   | Description                       |
@@ -1088,7 +1412,7 @@ Obtains the plural string corresponding to the specified resource name. This API
 
 **Example**
   ```
-  resourceManager.getPluralStringByName("test", 1).then(value => {
+  this.context.resourceManager.getPluralStringByName("test", 1).then(value => {
       let str = value;
   }).catch(error => {
       console.log("getPluralStringByName promise error is " + error);
@@ -1115,7 +1439,35 @@ Obtains the string corresponding to the specified resource ID. This API returns
 
 **Example**
   ```
-  resourceManager.getStringSync($r('app.string.test').id);
+  this.context.resourceManager.getStringSync($r('app.string.test').id);
+  ```
+
+### getStringSync<sup>9+</sup>
+
+getStringSync(resource: Resource): string
+
+Obtains the string corresponding to the specified resource object. This API returns the result synchronously.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| string | String corresponding to the resource object.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.string.test').id
+  };
+  this.context.resourceManager.getStringSync(resource);
   ```
 
 ### getStringByNameSync<sup>9+</sup>
@@ -1138,10 +1490,10 @@ Obtains the string corresponding to the specified resource name. This API return
 
 **Example**
   ```
-  resourceManager.getStringByNameSync("test");
+  this.context.resourceManager.getStringByNameSync("test");
   ```
 
- ### getBoolean<sup>9+</sup>
+### getBoolean<sup>9+</sup>
 
 getBoolean(resId: number): boolean
 
@@ -1161,7 +1513,34 @@ Obtains the Boolean result corresponding to the specified resource ID. This API
 
 **Example**
   ```
-  resourceManager.getBoolean($r('app.boolean.boolean_test').id);
+  this.context.resourceManager.getBoolean($r('app.boolean.boolean_test').id);
+  ```
+### getBoolean<sup>9+</sup>
+
+getBoolean(resource: Resource): boolean
+
+Obtains the Boolean result corresponding to the specified resource object. This API returns the result synchronously.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| boolean | Boolean result corresponding to the specified resource object.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.boolean.boolean_test').id
+  };
+  this.context.resourceManager.getBoolean(resource);
   ```
 
 ### getBooleanByName<sup>9+</sup>
@@ -1184,10 +1563,10 @@ Obtains the Boolean result corresponding to the specified resource name. This AP
 
 **Example**
   ```
-  resourceManager.getBooleanByName("boolean_test");
+  this.context.resourceManager.getBooleanByName("boolean_test");
   ```
 
- ### getNumber<sup>9+</sup>
+### getNumber<sup>9+</sup>
 
 getNumber(resId: number): number
 
@@ -1207,8 +1586,36 @@ Obtains the integer or float value corresponding to the specified resource ID. T
 
 **Example**
   ```
-  resourceManager.getNumber($r('app.integer.integer_test').id);
-  resourceManager.getNumber($r('app.float.float_test').id);
+  this.context.resourceManager.getNumber($r('app.integer.integer_test').id);
+  this.context.resourceManager.getNumber($r('app.float.float_test').id);
+  ```
+
+### getNumber<sup>9+</sup>
+
+getNumber(resource: Resource): number
+
+Obtains the integer or float value corresponding to the specified resource object. This API returns the result synchronously.
+
+**System capability**: SystemCapability.Global.ResourceManager
+
+**Parameters**
+| Name  | Type    | Mandatory  | Description   |
+| ----- | ------ | ---- | ----- |
+| resource | [Resource](#resource9) | Yes   | Resource object.|
+
+**Return value**
+| Type                   | Description         |
+| --------------------- | ----------- |
+| number | Integer or float value corresponding to the specified resource object.|
+
+**Example**
+  ```
+  let resource = {
+      bundleName: "com.example.myapplication",
+      moduleName: "entry",
+      id: $r('app.integer.integer_test').id
+  };
+  this.context.resourceManager.getNumber(resource);
   ```
 
 ### getNumberByName<sup>9+</sup>
@@ -1231,6 +1638,6 @@ Obtains the integer or float value corresponding to the specified resource name.
 
 **Example**
   ```
-  resourceManager.getNumberByName("integer_test");
-  resourceManager.getNumberByName("float_test");
+  this.context.resourceManager.getNumberByName("integer_test");
+  this.context.resourceManager.getNumberByName("float_test");
   ```
diff --git a/en/application-dev/reference/apis/js-apis-router.md b/en/application-dev/reference/apis/js-apis-router.md
index 40076077bd258dab549dbcb46e16a7137961c107..ac9435450c7e47d70deb11ed0a5b7249eea8f368 100644
--- a/en/application-dev/reference/apis/js-apis-router.md
+++ b/en/application-dev/reference/apis/js-apis-router.md
@@ -1,9 +1,12 @@
 # Page Routing
 
+The **Router** module provides APIs to access pages through URLs. You can use the APIs to navigate to a specified page in an application, replace the current page with another one in an application, and return to the previous page or a specified page.
+
 > **NOTE**
 >
 > - The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-> - Page routing APIs can be invoked only after page rendering is complete. Do not call the APIs in **onInit** and **onReady** when the page is still in the rendering phase.
+> 
+> - Page routing APIs can be invoked only after page rendering is complete. Do not call these APIs in **onInit** and **onReady** when the page is still in the rendering phase.
 
 ## Modules to Import
 
@@ -11,10 +14,6 @@
 import router from '@ohos.router'
 ```
 
-## Required Permissions
-
-None.
-
 ## router.push
 
 push(options: RouterOptions): void
@@ -24,44 +23,50 @@ Navigates to a specified page in the application.
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | Yes| Page routing parameters.|
+| Name | Type                           | Mandatory| Description              |
+| ------- | ------------------------------- | ---- | ------------------ |
+| options | [RouterOptions](#routeroptions) | Yes  | Page routing parameters.|
 
 
 **Example**
-  ```js
-  // Current page
-  export default {
-    pushPage() {
-      router.push({
-        url: 'pages/routerpage2/routerpage2',
-        params: {
-  	data1: 'message',
-          data2: {
-            data3: [123, 456, 789]
-  	},
-        },
-      });
-    }
-  }
-  ```
-  ```js
-  // routerpage2 page
-  export default {
-    data: {
-      data1: 'default',
-      data2: {
-        data3: [1, 2, 3]
-      }
+```js
+router.push({
+  url: 'pages/routerpage2',
+  params: {
+    data1: 'message',
+    data2: {
+      data3: [123, 456, 789]
     },
-    onInit() {
-      console.info('showData1:' + this.data1);
-      console.info('showData3:' + this.data2.data3);
-    }
-  }
-  ```
+  },
+});
+```
+## router.push<sup>9+</sup>
+
+push(options: RouterOptions, mode: RouterMode): void
+
+Navigates to a specified page in the application.
+
+**System capability**: SystemCapability.ArkUI.ArkUI.Full
+
+**Parameters**
+| Name           | Type                           | Mandatory| Description                |
+| ----------------- | ------------------------------- | ---- | -------------------- |
+| options           | [RouterOptions](#routeroptions) | Yes  | Page routing parameters.  |
+| mode<sup>9+</sup> | [RouterMode](#routermode9)      | Yes  | Routing mode.|
+
 
+**Example**
+```js
+router.push({
+  url: 'pages/routerpage2/routerpage2',
+  params: {
+    data1: 'message',
+    data2: {
+      data3: [123, 456, 789]
+    },
+  },
+},router.RouterMode.Standard);
+```
 
 ## router.replace
 
@@ -72,37 +77,45 @@ Replaces the current page with another one in the application and destroys the c
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | Yes| Description of the new page.|
+| Name | Type                           | Mandatory| Description              |
+| ------- | ------------------------------- | ---- | ------------------ |
+| options | [RouterOptions](#routeroptions) | Yes  | Description of the new page.|
 
 **Example**
 
-  ```js
-  // Current page
-  export default {
-    replacePage() {
-      router.replace({
-        url: 'pages/detail/detail',
-        params: {
-          data1: 'message',
-        },
-      });
-    }
-  }
-  ```
+```js
+router.replace({
+  url: 'pages/detail',
+  params: {
+    data1: 'message',
+  },
+});
+```
 
-  ```js
-  // detail page
-  export default {
-    data: {
-      data1: 'default'
-    },
-    onInit() {
-      console.info('showData1:' + this.data1)
-    }
-  }
-  ```
+  ## router.replace<sup>9+</sup>
+
+replace(options: RouterOptions, mode: RouterMode): void
+
+Replaces the current page with another one in the application and destroys the current page.
+
+**System capability**: SystemCapability.ArkUI.ArkUI.Full
+
+**Parameters**
+| Name           | Type                           | Mandatory| Description                |
+| ----------------- | ------------------------------- | ---- | -------------------- |
+| options           | [RouterOptions](#routeroptions) | Yes  | Description of the new page.  |
+| mode<sup>9+</sup> | [RouterMode](#routermode9)      | Yes  | Routing mode.|
+
+**Example**
+
+```js
+router.replace({
+  url: 'pages/detail/detail',
+  params: {
+    data1: 'message',
+  },
+}, router.RouterMode.Standard);
+```
 
 ## router.back
 
@@ -113,59 +126,15 @@ Returns to the previous page or a specified page.
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | Yes| Description of the page. The **url** parameter indicates the URL of the page to return to. If the specified page does not exist in the page stack, the application does not respond. If this parameter is not set, the application returns to the previous page.|
+| Name | Type                           | Mandatory| Description                                                        |
+| ------- | ------------------------------- | ---- | ------------------------------------------------------------ |
+| options | [RouterOptions](#routeroptions) | No  | Description of the page. The **url** parameter indicates the URL of the page to return to. If the specified page does not exist in the page stack, the application does not respond. If this parameter is not set, the application returns to the previous page.|
 
 **Example**
-  ```js
-  // index page
-  export default {    
-    indexPushPage() {        
-      router.push({            
-        url: 'pages/detail/detail',        
-      });        
-    }
-  }
-  ```
-
-  ```js
-  // detail page
-  export default {    
-    detailPushPage() {        
-      router.push({            
-        url: 'pages/mall/mall',        
-      });    
-    }
-  }
-  ```
-
-  ```js
-  // Navigate from the mall page to the detail page through router.back().
-  export default {    
-    mallBackPage() {        
-      router.back();    
-    }
-  }
-  ```
 
-  ```js
-  // Navigate from the detail page to the index page through router.back().
-  export default {    
-    defaultBack() {        
-      router.back();    
-    }
-  }
-  ```
-
-  ```js
-  // Return to the detail page through router.back().
-  export default {    
-    backToDetail() {        
-      router.back({uri:'pages/detail/detail'});    
-    }
-  }
-  ```
+```js
+router.back({url:'pages/detail'});    
+```
 
 ## router.clear
 
@@ -176,13 +145,10 @@ Clears all historical pages in the stack and retains only the current page at th
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Example**
-  ```js
-  export default {    
-    clearPage() {        
-      router.clear();    
-    }
-  }js
-  ```
+
+```js
+router.clear();    
+```
 
 ## router.getLength
 
@@ -193,19 +159,15 @@ Obtains the number of pages in the current stack.
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Return value**
-| Type| Description|
-| -------- | -------- |
+| Type  | Description                              |
+| ------ | ---------------------------------- |
 | string | Number of pages in the stack. The maximum value is **32**.|
 
 **Example**
-  ```js
-  export default {     
-    getLength() {        
-      var size = router.getLength();        
-      console.log('pages stack size = ' + size);    
-    }
-  }
-  ```
+```js
+var size = router.getLength();        
+console.log('pages stack size = ' + size);    
+```
 
 ## router.getState
 
@@ -220,28 +182,26 @@ Obtains state information about the current page.
 | Type                       | Description          |
 | --------------------------- | -------------- |
 | [RouterState](#routerstate) | Page routing state.|
+**Example**
+
+```js
+var page = router.getState();
+console.log('current index = ' + page.index);
+console.log('current name = ' + page.name);
+console.log('current path = ' + page.path);
+```
+
 ## RouterState
+
 Describes the page routing state.
 
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
-| Name| Type| Description|
-| -------- | -------- | -------- |
-| index | number | Index of the current page in the stack.<br>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**NOTE**<br>>&nbsp;The index starts from 1 from the bottom to the top of the stack.|
-| name | string | Name of the current page, that is, the file name.|
-| path | string | Path of the current page.|
-
-**Example**
-  ```js
-  export default {     
-    getState() {        
-      var page = router.getState();
-      console.log('current index = ' + page.index);
-      console.log('current name = ' + page.name);
-      console.log('current path = ' + page.path);
-    }
-  }
-  ```
+| Name | Type  | Description                                                        |
+| ----- | ------ | ------------------------------------------------------------ |
+| index | number | Index of the current page in the stack. The index starts from 1 from the bottom to the top of the stack.|
+| name  | string | Name of the current page, that is, the file name.                          |
+| path  | string | Path of the current page.                                        |
 
 ## router.enableAlertBeforeBackPage
 
@@ -252,26 +212,16 @@ Enables the display of a confirm dialog box before returning to the previous pag
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| options | [EnableAlertOptions](#enablealertoptions) | Yes| Description of the dialog box.|
+| Name | Type                                     | Mandatory| Description              |
+| ------- | ----------------------------------------- | ---- | ------------------ |
+| options | [EnableAlertOptions](#enablealertoptions) | Yes  | Description of the dialog box.|
 
 **Example**
 
-  ```js
-  export default {    
-    enableAlertBeforeBackPage() {        
-      router.enableAlertBeforeBackPage({            
-        message: 'Message Info',            
-        success: function() {                
-          console.log('success');            
-        },            
-        fail: function() {                
-          console.log('fail');            
-        },        
-      });    
-    }
-  }
+  ```js        
+  router.enableAlertBeforeBackPage({            
+    message: 'Message Info'        
+  });    
   ```
 ## EnableAlertOptions
 
@@ -279,9 +229,9 @@ Describes the confirm dialog box.
 
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| message | string | Yes| Content displayed in the confirm dialog box.|
+| Name   | Type  | Mandatory| Description            |
+| ------- | ------ | ---- | ---------------- |
+| message | string | Yes  | Content displayed in the confirm dialog box.|
 
 ## router.disableAlertBeforeBackPage
 
@@ -292,13 +242,9 @@ Disables the display of a confirm dialog box before returning to the previous pa
 **System capability**: SystemCapability.ArkUI.ArkUI.Full
 
 **Example**
-  ```js
-  export default {    
-    disableAlertBeforeBackPage() {        
-      router.disableAlertBeforeBackPage();    
-    }
-  }
-  ```
+```js
+router.disableAlertBeforeBackPage();    
+```
 
 ##  router.getParams
 
@@ -316,122 +262,141 @@ Obtains the parameters passed from the page that initiates redirection to the cu
 
 **Example**
 
-- Web-like example
-  ```js
-  // Current page
-  export default {
-    pushPage() {
-      router.push({
-        url: 'pages/detail/detail',
-        params: {
-          data1: 'message',
-        },
-      });
-    }
+```
+router.getParams();
+```
+
+## RouterOptions
+
+Describes the page routing options.
+
+**System capability**: SystemCapability.ArkUI.ArkUI.Lite
+
+| Name  | Type  | Mandatory| Description                                                        |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| url    | string | Yes  | URI of the destination page, in either of the following formats:<br>- Absolute path of the page. The value is available in the pages list in the **config.json** file, for example:<br>- pages/index/index<br>- pages/detail/detail<br>- Particular path. If the URI is a slash (/), the home page is displayed. |
+| params | Object | No  | Data that needs to be passed to the destination page during redirection. After the destination page is displayed, it can use the passed data, for example, **this.data1** (**data1** is a key in **params**). If there is the same key (for example, **data1**) on the destination page, the passed **data1** value will replace the original value on the destination page.|
+
+
+  > **NOTE**
+  >
+  > The page routing stack supports a maximum of 32 pages.
+
+## RouterMode<sup>9+</sup>
+
+Enumerates the routing modes.
+
+**System capability**: SystemCapability.ArkUI.ArkUI.Full
+
+| Name    | Description                                                        |
+| -------- | ------------------------------------------------------------ |
+| Standard | Standard mode.                                                  |
+| Single   | Singleton mode.<br>If the URL of the target page already exists in the page stack, the page closest to the top of the stack is moved as a new page to the top of the stack.<br>If the URL of the target page does not exist in the page stack, the page is redirected to in standard mode.|
+
+## Examples
+
+### JavaScript-based Web-like Development Paradigm
+
+```js
+// Current page
+export default {
+  pushPage() {
+    router.push({
+      url: 'pages/detail/detail',
+      params: {
+        data1: 'message',
+      },
+    });
   }
-  ```
-  ```js
-  // detail page
-  export default {
-    onInit() {
-      console.info('showData1:' + router.getParams().data1);
-    }
+}
+```
+```js
+// detail page
+export default {
+  onInit() {
+    console.info('showData1:' + router.getParams()[data1]);
   }
-  ```
+}
+```
 
-- Declarative example
+### TypeScript-based Declarative Development Paradigm
 
-  ```ts
-  // Navigate to the target page through router.push with the params parameter carried.
-  import router from '@ohos.router'
-  
-  @Entry
-  @Component
-  struct Index {
-    async  routePage() {
-      let options = {
-        url: 'pages/second',
-        params: {
-          text: 'This is the value on the first page.',
-          data: {
-            array: [12, 45, 78]
-          },
-        }
-      }
-      try {
-        await router.push(options)
-      } catch (err) {
-        console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
+```ts
+// Navigate to the target page through router.push with the params parameter carried.
+import router from '@ohos.router'
+
+@Entry
+@Component
+struct Index {
+  async  routePage() {
+    let options = {
+      url: 'pages/second',
+      params: {
+        text: 'This is the value on the first page.',
+        data: {
+          array: [12, 45, 78]
+        },
       }
     }
-  
-    build() {
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
-          Text('This is the first page.')
-            .fontSize(50)
-            .fontWeight(FontWeight.Bold)
-        Button() {
-          Text('next page')
-            .fontSize(25)
-            .fontWeight(FontWeight.Bold)
-        }.type(ButtonType.Capsule)
-            .margin({ top: 20 })
-            .backgroundColor('#ccc')
-            .onClick(() => {
-              this.routePage()
-        })
-      }
-      .width('100%')
-      .height('100%')
+    try {
+      await router.push(options)
+    } catch (err) {
+      console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
     }
   }
-  ```
 
-  ```ts
-  // Receive the transferred parameters on the second page.
-  import router from '@ohos.router'
-  
-  @Entry
-  @Component
-  struct Second {
-    private content: string = "This is the second page."
-    @State text: string = router.getParams()['text']
-    @State data: any = router.getParams()['data']
-    @State secondData : string = ''
-    
-    build() {
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
-        Text(`${this.content}`)
+  build() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+        Text('This is the first page.')
           .fontSize(50)
           .fontWeight(FontWeight.Bold)
-        Text(this.text)
-          .fontSize(30)
-          .onClick(()=>{
-            this.secondData = (this.data.array[1]).toString()
-          })
-        .margin({top:20})
-        Text('Value from the first page '+'' + this.secondData)
-          .fontSize(20)
-          .margin({top:20})
-          .backgroundColor('red')      
-      }
-      .width('100%')
-      .height('100%')
+      Button() {
+        Text('next page')
+          .fontSize(25)
+          .fontWeight(FontWeight.Bold)
+      }.type(ButtonType.Capsule)
+          .margin({ top: 20 })
+          .backgroundColor('#ccc')
+          .onClick(() => {
+            this.routePage()
+      })
     }
+    .width('100%')
+    .height('100%')
   }
-  ```
-
-## RouterOptions
-
-Describes the page routing options.
-
-**System capability**: SystemCapability.ArkUI.ArkUI.Lite
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| url | string | Yes| URI of the destination page, in either of the following formats:<br>-&nbsp; Absolute path of the page. The value is available in the pages list in the config.json file, for example:<br>&nbsp;&nbsp;-&nbsp;pages/index/index<br>&nbsp;&nbsp;-&nbsp;pages/detail/detail<br>-&nbsp; Particular path. If the URI is a slash (/), the home page is displayed.|
-| params | Object | No| Data that needs to be passed to the destination page during redirection. After the destination page is displayed, it can use the passed data, for example, **this.data1** (**data1** is a key in **params**). If there is the same key (for example, **data1**) on the destination page, the passed **data1** value will replace the original value on the destination page.|
+}
+```
 
+```ts
+// Receive the transferred parameters on the second page.
+import router from '@ohos.router'
 
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-  > The page routing stack supports a maximum of 32 pages.
+@Entry
+@Component
+struct Second {
+  private content: string = "This is the second page."
+  @State text: string = router.getParams()['text']
+  @State data: any = router.getParams()['data']
+  @State secondData : string = ''
+  
+  build() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+      Text(`${this.content}`)
+        .fontSize(50)
+        .fontWeight(FontWeight.Bold)
+      Text(this.text)
+        .fontSize(30)
+        .onClick(()=>{
+          this.secondData = (this.data.array[1]).toString()
+        })
+      .margin({top:20})
+      Text('Value from the first page '+'' + this.secondData)
+        .fontSize(20)
+        .margin({top:20})
+        .backgroundColor('red')      
+    }
+    .width('100%')
+    .height('100%')
+  }
+}
+```
diff --git a/en/application-dev/reference/apis/js-apis-screen-lock.md b/en/application-dev/reference/apis/js-apis-screen-lock.md
index d75b957512e60e55aacfac1fdce2fdf063eb9c56..832d9754db5e41a11d38b020e77673ee5fe4d346 100644
--- a/en/application-dev/reference/apis/js-apis-screen-lock.md
+++ b/en/application-dev/reference/apis/js-apis-screen-lock.md
@@ -1,8 +1,10 @@
 # Screen Lock Management
 
+The **screenlock** module is a system module in OpenHarmony. It provides APIs for screen lock applications to subscribe to screen lock status changes as well as callbacks for them to receive the results. It also provides APIs for third-party applications to unlock the screen, obtain the screen locked status, and check whether a lock screen password has been set.
+
 > **NOTE**
 >
-> The initial APIs of this module are supported since API version … Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
 ## Modules to Import
@@ -73,6 +75,7 @@ Checks whether a device is in secure mode. This API uses an asynchronous callbac
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
@@ -125,6 +128,7 @@ Unlocks the screen. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
@@ -174,10 +178,12 @@ Subscribes to screen lock status changes.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type.<br>- **'beginWakeUp'**: Wakeup starts.<br>- **'endWakeUp'**: Wakeup ends.<br>- **'beginScreenOn'**: Screen turn-on starts.<br>- **'endScreenOn'**: Screen turn-on ends.<br>- **'beginScreenOff'**: Screen turn-off starts.<br>- **'endScreenOff'**: Screen turn-off ends.<br>- **'unlockScreen'**: The screen is unlocked.<br>- **'beginExitAnimation'**: Animation starts to exit. |
+| type | string | Yes| Event type.<br>- **"beginWakeUp"**: Wakeup starts.<br>- **"endWakeUp"**: Wakeup ends.<br>- **"beginScreenOn"**: Screen turn-on starts.<br>- **"endScreenOn"**: Screen turn-on ends.<br>- **"beginScreenOff"**: Screen turn-off starts.<br>- **"endScreenOff"**: Screen turn-off ends.<br>- **"unlockScreen"**: The screen is unlocked.<br>- **"beginExitAnimation"**: Animation starts to exit.|
 | callback | Callback\<void\> | Yes| Callback used to return the result.|
 
 **Example**
@@ -196,10 +202,12 @@ Subscribes to screen lock status changes.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type.<br>- **'beginSleep'**: The screen enters sleep mode.<br>- **'endSleep'**: The screen exits sleep mode.<br>- **'changeUser'**: The user is switched.|
+| type | string | Yes| Event type.<br>- **"beginSleep"**: The screen enters sleep mode.<br>- **"endSleep"**: The screen exits sleep mode.<br>- **"changeUser"**: The user is switched.|
 | callback | Callback\<number\> | Yes| Callback used to return the result. |
 
 **Example**
@@ -217,11 +225,13 @@ Subscribes to screen lock status changes.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type.<br>- **'screenlockEnabled'**: Screen lock is enabled.|
-| callback | Callback\<boolean\> | Yes| Callback used to return the result. |
+| type | string | Yes| Event type.<br>- **"screenlockEnabled"**: Screen lock is enabled.|
+| callback | Callback\<boolean\> | Yes| Callback used to return the result.|
 
 **Example**
 
@@ -240,10 +250,12 @@ Unsubscribes from screen lock status changes.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type.<br>- **'beginWakeUp'**: Wakeup starts.<br>- **'endWakeUp'**: Wakeup ends.<br>- **'beginScreenOn'**: Screen turn-on starts.<br>- **'endScreenOn'**: Screen turn-on ends.<br>- **'beginScreenOff'**: Screen turn-off starts.<br>- **'endScreenOff'**: Screen turn-off ends.<br>- **'unlockScreen'**: The screen is unlocked.<br>- **'beginExitAnimation'**: Animation starts to exit.<br>- **'screenlockEnabled'**: Screen lock is enabled.<br>- **'beginSleep'**: The screen enters sleep mode.<br>- **'endSleep'**: The screen exits sleep mode.<br>- **'changeUser'**: The user is switched.|
+| type | string | Yes| Event type.<br>- **"beginWakeUp"**: Wakeup starts.<br>- **"endWakeUp"**: Wakeup ends.<br>- **"beginScreenOn"**: Screen turn-on starts.<br>- **"endScreenOn"**: Screen turn-on ends.<br>- **"beginScreenOff"**: Screen turn-off starts.<br>- **"endScreenOff"**: Screen turn-off ends.<br>- **"unlockScreen"**: The screen is unlocked.<br>- **"beginExitAnimation"**: Animation starts to exit.<br>- **"screenlockEnabled"**: Screen lock is enabled.<br>- **"beginSleep"**: The screen enters sleep mode.<br>- **"endSleep"**: The screen exits sleep mode.<br>- **"changeUser"**: The user is switched.|
 | callback | Callback\<void\> | Yes| Callback used to return the result.|
 
 **Example**
@@ -262,11 +274,13 @@ Sends an event to the screen lock service. This API uses an asynchronous callbac
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| event | String | Yes| Event type.<br>- **'unlockScreenResult'**: Screen unlock result.<br>- **'screenDrawDone'**: Screen drawing is complete.|
-| parameter | number | Yes| Screen unlock status.<br>- **0**: The unlock is successful.<br>- **0**: The unlock failed.<br>- **2**: The unlock was canceled.|
+| event | String | Yes| Event type.<br>- **"unlockScreenResult"**: Screen unlock result.<br>- **"screenDrawDone"**: Screen drawing is complete.|
+| parameter | number | Yes| Screen unlock status.<br>- **0**: The unlock is successful.<br>- **1**: The unlock failed.<br>- **2**: The unlock was canceled.|
 | callback | AsyncCallback\<boolean\> | Yes| Callback used to return the result.|
 
 **Example**
@@ -279,18 +293,19 @@ Sends an event to the screen lock service. This API uses an asynchronous callbac
 
 ## screenlock.sendScreenLockEvent<sup>9+</sup>
 
-sendScreenLockEvent(event: String, parameter: number): Promise<boolean>
+sendScreenLockEvent(event: String, parameter: number): Promise\<boolean\>
 
 Sends an event to the screen lock service. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.MiscServices.ScreenLock
 
-**Parameters**
+**System API**: This is a system API and cannot be called by third-party applications.
 
+**Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| event | String | Yes| Event type.<br>- **'unlockScreenResult'**: Screen unlock result.<br>- **'screenDrawDone'**: Screen drawing is complete.|
-| parameter | number | Yes| Screen unlock status.<br>- **0**: The unlock is successful.<br>- **0**: The unlock failed.<br>- **2**: The unlock was canceled.|
+| event | String | Yes| Event type.<br>- **"unlockScreenResult"**: Screen unlock result.<br>- **"screenDrawDone"**: Screen drawing is complete.|
+| parameter | number | Yes| Screen unlock status.<br>- **0**: The unlock is successful.<br>- **1**: The unlock failed.<br>- **2**: The unlock was canceled.|
 
 **Return value**
 | Type| Description|
@@ -300,7 +315,7 @@ Sends an event to the screen lock service. This API uses a promise to return the
 **Example**
 
   ```js
-  screenlock.sendScreenLockEvent('unlockScreenResult', 0).then((err, result) => {
+  screenlock.sendScreenLockEvent('unlockScreenResult', 0).then((result) => {
       console.log('sending result:' + result);
   });
   ```
diff --git a/en/application-dev/reference/apis/js-apis-screen.md b/en/application-dev/reference/apis/js-apis-screen.md
new file mode 100644
index 0000000000000000000000000000000000000000..94f5f3cb5e532f3e28f221addb164358589b1754
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-screen.md
@@ -0,0 +1,718 @@
+# Screen
+The **Screen** module implements basic screen management. You can use the APIs of this module to obtain a **Screen** object, listen for screen changes, and create and destroy virtual screens.
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> 
+> The APIs provided by this module are system APIs.
+## Modules to Import
+
+```js
+import screen from '@ohos.screen';
+```
+
+## screen.getAllScreens
+
+getAllScreens(callback: AsyncCallback&lt;Array&lt;Screen&gt;&gt;): void
+
+Obtains all screens. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name  | Type                                               | Mandatory| Description                                  |
+| -------- | --------------------------------------------------- | ---- | -------------------------------------- |
+| callback | AsyncCallback&lt;Array&lt;[Screen](#screen)&gt;&gt; | Yes  | Callback used to return all the **Screen** objects obtained.|
+
+**Example**
+
+```js
+var screenClass = null;
+screen.getAllScreens((err, data) => {
+    if (err.code) {
+        console.error('Failed to get all screens . Cause:  ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeeded in getting all screens . Data:' + JSON.stringify(data));
+    screenClass = data[0];
+});
+```
+## screen.getAllScreens
+
+getAllScreens(): Promise&lt;Array&lt;Screen&gt;&gt;
+
+Obtains all screens. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Return value**
+| Type                                         | Description                                     |
+| --------------------------------------------- | ----------------------------------------- |
+| Promise&lt;Array&lt;[Screen](#screen)&gt;&gt; | Promise used to return all the **Screen** objects obtained.|
+
+**Example**
+```js
+var screenClass = null;
+let promise = screen.getAllScreens();
+promise.then((data) => {
+    screenClass = data[0];
+    console.log('Succeeded in getting all screens . Data:'+ JSON.stringify(data));
+}).catch((err) => {
+    console.log('Failed to get all screens . Cause: ' + JSON.stringify(err));
+});
+```
+## screen.on('connect' | 'disconnect' | 'change')
+on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback&lt;number&gt;): void
+
+Subscribes to events related to the screen state.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name   | Type                  | Mandatory| Description                                                        |
+| --------- | ---------------------- | ---- | ------------------------------------------------------------ |
+| eventType | string                 | Yes  | Event type.<br>- **connect**: an event indicating that the screen is connected.<br>- **disconnect**: an event indicating that the screen is disconnected.<br>- **change**: an event indicating that the screen state changes.|
+| callback  | Callback&lt;number&gt; | Yes  | Callback used to return the screen ID.                                    |
+
+**Example**
+```js
+var callback = (data) => {
+    console.info('Register the callback for screen changes. Data: ' + JSON.stringify(data))
+};
+screen.on("connect", callback);
+```
+## screen.off('connect' | 'disconnect' | 'change')
+off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback&lt;number&gt;): void
+
+Unsubscribes from events related to the screen state.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name   | Type                  | Mandatory| Description                                                        |
+| --------- | ---------------------- | ---- | ------------------------------------------------------------ |
+| eventType | string                 | Yes  | Event type.<br>- **connect**: an event indicating that the screen is connected.<br>- **disconnect**: an event indicating that the screen is disconnected.<br>- **change**: an event indicating that the screen state changes.|
+| callback  | Callback&lt;number&gt; | No  | Callback used to return the screen ID.                                    |
+
+**Example**
+```js
+var callback = (data) => {
+    console.info('Unegister the callback for screen changes. Data: ' + JSON.stringify(data))
+};
+screen.off("connect", callback);
+```
+
+## screen.makeExpand
+makeExpand(options:Array&lt;ExpandOption&gt;, callback: AsyncCallback&lt;number&gt;): void
+
+Sets the screen to the expanded mode. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name  | Type                                      | Mandatory| Description                            |
+| -------- | ------------------------------------------ | ---- | -------------------------------- |
+| options  | Array&lt;[ExpandOption](#expandoption)&gt; | Yes  | Parameters for expanding the screen.        |
+| callback | Callback&lt;number&gt;                     | Yes  | Callback used to return the group ID of the expanded screens.|
+
+**Example**
+
+```js
+var groupId = null;
+screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}], (err, data) => {
+  if (err.code) {
+    console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
+    return;
+  }
+  groupId = data;
+  console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
+});
+```
+
+## screen.makeExpand
+makeExpand(options:Array&lt;ExpandOption&gt;): Promise&lt;number&gt;
+
+Sets the screen to the expanded mode. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name | Type                                      | Mandatory| Description                    |
+| ------- | ------------------------------------------ | ---- | ------------------------ |
+| options | Array&lt;[ExpandOption](#expandoption)&gt; | Yes  | Parameters for expanding the screen.|
+
+**Return value**
+| Type                 | Description                               |
+| --------------------- | ----------------------------------- |
+| Promise&lt;number&gt; | Promise used to return the group ID of the expanded screens.|
+
+**Example**
+```js
+screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}]).then((data) => {
+  console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
+}).catch((err) => {
+  console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.makeMirror
+makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;number&gt;): void
+
+Sets screen mirroring. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name      | Type                       | Mandatory| Description             |
+| ------------ | --------------------------- | ---- |-----------------|
+| mainScreen   | number                      | Yes  | ID of the primary screen.         |
+| mirrorScreen | Array&lt;number&gt;         | Yes  | IDs of secondary screens.      |
+| callback     | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the group ID of the secondary screens.|
+
+**Example**
+```js
+var mainScreenId = 0;
+var mirrorScreenIds = [1, 2, 3];
+screen.makeMirror(mainScreenId, mirrorScreenIds, (err, data) => {
+  if (err.code) {
+    console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
+    return;
+  }
+  console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
+});
+```
+
+## screen.makeMirror
+makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;): Promise&lt;number&gt;
+
+Sets screen mirroring. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name      | Type               | Mandatory| Description       |
+| ------------ | ------------------- | ---- |-----------|
+| mainScreen   | number              | Yes  | ID of the primary screen.   |
+| mirrorScreen | Array&lt;number&gt; | Yes  | IDs of secondary screens.|
+
+**Return value**
+| Type                 | Description                               |
+| --------------------- | ----------------------------------- |
+| Promise&lt;number&gt; | Promise used to return the group ID of the secondary screens.|
+
+**Example**
+```js
+var mainScreenId = 0;
+var mirrorScreenIds = [1, 2, 3];
+screen.makeMirror(mainScreenId, mirrorScreenIds).then((data) => {
+  console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
+}).catch((err) => {
+  console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.createVirtualScreen
+createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Screen&gt;): void
+
+Creates a virtual screen. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Required permissions**: ohos.permission.CAPTURE_SCREEN (mandatory when **VirtualScreenOption.surfaceId** is valid; available only to system applications)
+
+**Parameters**
+
+| Name  | Type                                       | Mandatory| Description                              |
+| -------- | ------------------------------------------- | ---- | ---------------------------------- |
+| options  | [VirtualScreenOption](#virtualscreenoption) | Yes  | Virtual screen parameters.          |
+| callback | AsyncCallback&lt;[Screen](#screen)&gt;      | Yes  | Callback used to return the created virtual screen.|
+
+**Example**
+```js
+var screenClass = null;
+screen.createVirtualScreen({
+  name: 'screen01',
+  width: 1080,
+  height: 2340,
+  density: 2,
+  surfaceId: ''
+}, (err, data) => {
+  if (err.code) {
+    console.error('Failed to create virtual screen.Cause:' + JSON.stringify(err));
+    return;
+  }
+  screenClass = data;
+  console.info('Succeeded in creating virtual screen.Data:' + JSON.stringify(data));
+});
+```
+
+## screen.createVirtualScreen
+createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;
+
+Creates a virtual screen. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Required permissions**: ohos.permission.CAPTURE_SCREEN (mandatory when **VirtualScreenOption.surfaceId** is valid available only to system applications)
+
+**Parameters**
+| Name | Type                                       | Mandatory| Description                    |
+| ------- | ------------------------------------------- | ---- | ------------------------ |
+| options | [VirtualScreenOption](#virtualscreenoption) | Yes  | Virtual screen parameters.|
+
+**Return value**
+
+| Type                            | Description                                 |
+| -------------------------------- | ------------------------------------- |
+| Promise&lt;[Screen](#screen)&gt; | Promise used to return the created virtual screen.|
+
+**Example**
+```js
+var screenClass = null;
+screen.createVirtualScreen({
+  name: 'screen01',
+  width: 1080,
+  height: 2340,
+  density: 2,
+  surfaceId: ''
+}).then((data) => {
+  screenClass = data;
+  console.info('Succeeded in creating virtual screen.Data:' + JSON.stringify(data));
+}).catch((err) => {
+  console.error('Failed to create virtual screen.Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.destroyVirtualScreen
+destroyVirtualScreen(screenId:number, callback: AsyncCallback&lt;void&gt;): void
+
+Destroys a virtual screen. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name  | Type                     | Mandatory| Description                                                        |
+| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| screenId | number                    | Yes  | Screen ID.                                                  |
+| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. If the virtual screen is destroyed, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+```js
+var screenId = 1;
+screen.destroyVirtualScreen(screenId, (err,data) => {
+  if (err.code) {
+    console.error('Failed to destroy virtual screen.Cause:' + JSON.stringify(err));
+    return;
+  }
+  console.info('Succeeded in destroying virtual screen.');
+});
+```
+
+## screen.destroyVirtualScreen
+destroyVirtualScreen(screenId:number): Promise&lt;void&gt;
+
+Destroys a virtual screen. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name  | Type  | Mandatory| Description      |
+| -------- | ------ | ---- | ---------- |
+| screenId | number | Yes  | Screen ID.|
+
+**Return value**
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+var screenId = 1;
+screen.destroyVirtualScreen(screenId).then((data) => {
+  console.info('Succeeded in destroying virtual screen.');
+}).catch((err) => {
+  console.error('Failed to destroy virtual screen.Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.setVirtualScreenSurface
+setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallback&lt;void&gt;): void
+
+Sets the surface for a virtual screen. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Required permissions**: ohos.permission.CAPTURE_SCREEN (available only to system applications)
+
+**Parameters**
+
+| Name   | Type                     | Mandatory| Description                                                        |
+| --------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| screenId  | number                    | Yes  | Screen ID.                                                  |
+| surfaceId | string                    | Yes  | Surface ID.                                               |
+| callback  | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. If the virtual screen surface is successfully set, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+
+```js
+var screenId = 1;
+var surfaceId = '2048';
+screen.setVirtualScreenSurface(screenId, surfaceId, (err,data) => {
+  if (err.code) {
+    console.error('Failed to set surface for the virtual screen. Cause:' + JSON.stringify(err));
+    return;
+  }
+  console.info('Succeeded in setting surface for the virtual screen.');
+});
+```
+
+## screen.setVirtualScreenSurface
+setVirtualScreenSurface(screenId:number, surfaceId: string): Promise&lt;void&gt;
+
+Sets the surface for a virtual screen. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Required permissions**: ohos.permission.CAPTURE_SCREEN (available only to system applications)
+
+**Parameters**
+| Name   | Type  | Mandatory| Description         |
+| --------- | ------ | ---- | ------------- |
+| screenId  | number | Yes  | Screen ID.   |
+| surfaceId | string | Yes  | Surface ID.|
+
+**Return value**
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+var screenId = 1;
+var surfaceId = '2048';
+screen.setVirtualScreenSurface(screenId, surfaceId).then((data) => {
+  console.info('Succeeded in setting surface for the virtual screen.');
+}).catch((err) => {
+  console.error('Failed to set surface for the virtual screen. Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.isScreenRotationLocked
+isScreenRotationLocked(): Promise&lt;boolean&gt;
+
+Checks whether auto rotate is locked. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Return value**
+| Type                  | Description                                 |
+| ---------------------- | ------------------------------------- |
+| Promise&lt;boolean&gt; | Promise used to return the result. If **true** is returned, auto rotate is locked. If **false** is returned, auto rotate is unlocked.|
+
+**Example**
+```js
+screen.isScreenRotationLocked().then((isLocked) => {
+  console.info('Succeeded in getting screen rotation lock status. isLocked:'+ JSON.stringify(isLocked));
+}).catch((err) => {
+  console.error('Failed to get screen rotation lock status. Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.isScreenRotationLocked
+isScreenRotationLocked(callback: AsyncCallback&lt;boolean&gt;): void
+
+Checks whether auto rotate is locked. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name   | Type                         | Mandatory| Description                                                        |
+| --------- | ---------------------------- | ---- | ------------------------------------------------------------ |
+| callback  | AsyncCallback&lt;boolean&gt; | Yes  | Callback used to return the result. If **true** is returned, auto rotate is locked. If **false** is returned, auto rotate is unlocked.|
+
+**Example**
+
+```js
+screen.isScreenRotationLocked((err, isLocked) => {
+  if (err.code) {
+    console.error('Failed to get screen rotation lock status. Cause:' + JSON.stringify(err));
+    return;
+  }
+  console.info('Succeeded in getting screen rotation lock status. isLocked:' + JSON.stringify(isLocked));
+});
+```
+
+## screen.setScreenRotationLocked
+setScreenRotationLocked(isLocked: boolean): Promise&lt;void&gt;
+
+Sets whether to lock auto rotate. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+| Name   | Type  | Mandatory| Description         |
+| --------- | ------ | ---- | ------------- |
+| isLocked  | boolean | Yes  | Whether to lock auto rotate. The value **true** means to lock auto rotate, and **false** means the opposite.|
+
+**Return value**
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+var isLocked = false;
+screen.setScreenRotationLocked(isLocked).then((data) => {
+  console.info('Succeeded in setting whether to lock screen rotation');
+}).catch((err) => {
+  console.error('Failed to set whether to lock screen rotation. Cause:' + JSON.stringify(err));
+});
+```
+
+## screen.setScreenRotationLocked
+setScreenRotationLocked(isLocked: boolean, callback: AsyncCallback&lt;void&gt;): void
+
+Sets whether to lock auto rotate. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+**Parameters**
+
+| Name   | Type                     | Mandatory| Description                                                        |
+| --------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| isLocked  | boolean                   | Yes  | Whether to lock auto rotate. The value **true** means to lock auto rotate, and **false** means the opposite.                |
+| callback  | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. If the operation is successful, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+
+```js
+var isLocked = false;
+screen.setScreenRotationLocked(isLocked, (err, data) => {
+  if (err.code) {
+    console.error('Failed to set whether to lock screen rotation. Cause:' + JSON.stringify(err));
+    return;
+  }
+  console.info('Succeeded in setting whether to lock screen rotation.');
+});
+```
+
+## ExpandOption
+Defines the parameters for expanding a screen.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name    | Type| Readable| Writable| Description               |
+| -------- | -------- | ---- | ---- | ------------------- |
+| screenId | number   | Yes  | Yes  | Screen ID.         |
+| startX   | number   | Yes  | Yes  | Start X coordinate of the screen.|
+| startY   | number   | Yes  | Yes  | Start Y coordinate of the screen.|
+
+## VirtualScreenOption
+Defines virtual screen parameters.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name     | Type| Readable| Writable| Description                     |
+| --------- | -------- | ---- | ---- | ------------------------- |
+| name      | string   | Yes  | Yes  | Name of a virtual screen.     |
+| width     | number   | Yes  | Yes  | Width of the virtual screen.     |
+| height    | number   | Yes  | Yes  | Height of the virtual screen.     |
+| density   | number   | Yes  | Yes  | Density of the virtual screen.     |
+| surfaceId | string   | Yes  | Yes  | Surface ID of the virtual screen.|
+
+## Screen
+Implements a **Screen** instance.
+
+Before calling any API in **Screen**, you must use **[getAllScreens()](#screengetallscreens)** or **[createVirtualScreen()](#screencreatevirtualscreen)** to obtain a **Screen** instance.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name             | Type                                      | Readable| Writable| Description                  |
+| ----------------- | ---------------------------------------------- | ---- | ---- | ---------------------- |
+| id                | number                                         | Yes  | No  | Screen ID.            |
+| parent            | number                                         | Yes  | No  | ID of the group to which a screen belongs.    |
+| supportedModeInfo | Array&lt;[ScreenModeInfo](#screenmodeinfo)&gt; | Yes  | No  | Mode set supported by the screen.  |
+| activeModeIndex   | number                                         | Yes  | No  | Index of the active screen mode.|
+| orientation       | [Orientation](#orientation)                     | Yes  | No  | Screen orientation.            |
+
+### setOrientation
+setOrientation(orientation: Orientation, callback: AsyncCallback&lt;void&gt;): void
+
+Sets the screen orientation. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name     | Type                       | Mandatory| Description                                                        |
+| ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| orientation | [Orientation](#orientation) | Yes  | Screen orientation.                                                  |
+| callback    | AsyncCallback&lt;void&gt;   | Yes  | Callback used to return the result. If the screen orientation is successfully set, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+```js
+screenClass.setOrientation(screen.Orientation.VERTICAL, (err, data) => {
+    if (err.code) {
+        console.error('Failed to setOrientation VERTICAL. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeeded in setting Orientation VERTICAL. data: ' + JSON.stringify(data));
+})
+```
+### setOrientation
+setOrientation(orientation: Orientation): Promise&lt;void&gt;
+
+Sets the screen orientation. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name     | Type                       | Mandatory| Description      |
+| ----------- | --------------------------- | ---- | ---------- |
+| orientation | [Orientation](#orientation) | Yes  | Screen orientation.|
+
+**Return value**
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+let promise = screenClass.setOrientation(screen.Orientation.VERTICAL);
+promise.then((data) => {
+    console.info('Succeeded in setting Orientation VERTICAL. Data: ' + JSON.stringify(data));
+}).catch((err) => {
+    console.error('Failed to set Orientation VERTICAL. Cause: ' + JSON.stringify(err));
+})
+```
+### setScreenActiveMode
+setScreenActiveMode(modeIndex: number, callback: AsyncCallback&lt;void&gt;): void
+
+Sets the active mode of the screen. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name   | Type                     | Mandatory| Description                                                        |
+| --------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| modeIndex | number                    | Yes  | Index of the mode to set.                                                  |
+| callback  | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. If the active mode is successfully set, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+
+```js
+var modeIndex = 0;
+screenClass.setScreenActiveMode(modeIndex, (err, data) => {
+    if (err.code) {
+        console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeeded in setting ScreenActiveMode 0. data: ' + JSON.stringify(data));
+})
+```
+### setScreenActiveMode
+setScreenActiveMode(modeIndex: number): Promise&lt;void&gt;
+
+Sets the active mode of the screen. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name   | Type  | Mandatory| Description      |
+| --------- | ------ | ---- | ---------- |
+| modeIndex | number | Yes  | Index of the mode to set.|
+
+**Return value**
+
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+var modeIndex = 0;
+let promise = screenClass.setScreenActiveMode(modeIndex);
+promise.then((data) => {
+    console.info('Succeeded in setting ScreenActiveMode 0. Data: ' + JSON.stringify(data));
+}).catch((err) => {
+    console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
+})
+```
+
+### setDensityDpi
+setDensityDpi(densityDpi: number, callback: AsyncCallback&lt;void&gt;): void;
+
+Sets the pixel density of the screen. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name    | Type                     | Mandatory| Description                                                        |
+| ---------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| densityDpi | number                    | Yes  | Pixel density. The value ranges from 80 to 640.                          |
+| callback   | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result. If the pixel density is successfully set, **err** is **undefined**; otherwise, **err** is an error object.|
+
+**Example**
+```js
+var densityDpi = 320;
+screenClass.setDensityDpi(densityDpi, (err, data) => {
+    if (err.code) {
+        console.error('Failed to set DensityDpi 320. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeed in setting DensityDpi 320. data: ' + JSON.stringify(data));
+})
+```
+
+### setDensityDpi
+setDensityDpi(densityDpi: number): Promise&lt;void&gt;
+
+Sets the pixel density of the screen. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name    | Type  | Mandatory| Description                              |
+| ---------- | ------ | ---- | ---------------------------------- |
+| densityDpi | number | Yes  | Pixel density. The value ranges from 80 to 640.|
+
+**Return value**
+
+| Type               | Description                     |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | Promise that returns no value.|
+
+**Example**
+```js
+var densityDpi = 320;
+var promise = screenClass.setDensityDpi(densityDpi);
+promise.then((data) => {
+    console.info('Succeeded in setting DensityDpi 320. Data: ' + JSON.stringify(data));
+}).catch((err) => {
+    console.error('Failed to set DensityDpi 320. Cause: ' + JSON.stringify(err));
+})
+```
+
+## Orientation
+Enumerates the screen orientations.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name              | Value  | Description                            |
+| ------------------ | ---- | -------------------------------- |
+| UNSPECIFIED        | 0    | Unspecified. The screen orientation is determined by the system.|
+| VERTICAL           | 1    | Vertical.        |
+| HORIZONTAL         | 2    | Horizontal.        |
+| REVERSE_VERTICAL   | 3    | Reverse vertical.    |
+| REVERSE_HORIZONTAL | 4    | Reverse horizontal.    |
+
+## ScreenModeInfo
+Defines the screen mode information.
+
+**System capability**: SystemCapability.WindowManager.WindowManager.Core
+
+| Name       | Type| Readable| Writable| Description                                              |
+| ----------- | -------- | ---- | ---- | -------------------------------------------------- |
+| id          | number   | Yes  | Yes  | Mode ID. The supported mode is determined by the device resolution and refresh rate.|
+| width       | number   | Yes  | Yes  | Screen width.                                      |
+| height      | number   | Yes  | Yes  | Screen height.                                      |
+| refreshRate | number   | Yes  | Yes  | Screen refresh rate.                                    |
diff --git a/en/application-dev/reference/apis/js-apis-screenshot.md b/en/application-dev/reference/apis/js-apis-screenshot.md
index 5e2d47e03ba31ab4bae9118e3dc373359d56da11..7f83f0250c209dbd6b5d57970fe7beb8d9b9a494 100644
--- a/en/application-dev/reference/apis/js-apis-screenshot.md
+++ b/en/application-dev/reference/apis/js-apis-screenshot.md
@@ -1,5 +1,5 @@
 # Screenshot
-Provides APIs for you to set information such as the region to capture and the size of the screen region when capturing a screen.
+The **Screenshot** module provides APIs for you to set information such as the region to capture and the size of the screen region when capturing a screen.
 
 >  **NOTE**
 >
@@ -57,7 +57,7 @@ Describes the size of the screen region to capture.
 
 save(options?: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): void
 
-Takes a screenshot and saves it as a **PixelMap** object. This method uses a callback to return the result.
+Takes a screenshot and saves it as a **PixelMap** object. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -67,7 +67,7 @@ Takes a screenshot and saves it as a **PixelMap** object. This method uses a cal
 
 | Name  | Type                                   | Mandatory| Description                                                        |
 | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
-| options  | [ScreenshotOptions](#screenshotoptions) | No  | Consists of **screenRect**, **imageSize**, **rotation**, and **displayId**. You can set them separately.|
+| options  | [ScreenshotOptions](#screenshotoptions) | No  | Screenshot settings consist of **screenRect**, **imageSize**, **rotation**, and **displayId**. You can set the parameters separately.|
 | callback | AsyncCallback&lt;image.PixelMap&gt;     | Yes  | Callback used to return a **PixelMap** object.                                  |
 
 **Example**
@@ -98,7 +98,7 @@ Takes a screenshot and saves it as a **PixelMap** object. This method uses a cal
 
 save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;
 
-Takes a screenshot and saves it as a **PixelMap** object. This method uses a promise to return the result.
+Takes a screenshot and saves it as a **PixelMap** object. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.WindowManager.WindowManager.Core
 
@@ -108,7 +108,7 @@ Takes a screenshot and saves it as a **PixelMap** object. This method uses a pro
 
 | Name | Type                                   | Mandatory| Description                                                        |
 | ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
-| options | [ScreenshotOptions](#screenshotoptions) | No  | Consists of **screenRect**, **imageSize**, **rotation**, and **displayId**. You can set them separately.|
+| options | [ScreenshotOptions](#screenshotoptions) | No  | Screenshot settings consist of **screenRect**, **imageSize**, **rotation**, and **displayId**. You can set the parameters separately.|
 
 **Return value**
 
diff --git a/en/application-dev/reference/apis/js-apis-securityLabel.md b/en/application-dev/reference/apis/js-apis-securityLabel.md
index a2219288f3b852337ee03ab9f7003adf02dd51b4..86ae51122132f39ce30fe8df4bebc626c8e07d3f 100644
--- a/en/application-dev/reference/apis/js-apis-securityLabel.md
+++ b/en/application-dev/reference/apis/js-apis-securityLabel.md
@@ -1,10 +1,10 @@
 # Security Label
 
-The secuityLabel module provides APIs to manage file data security levels, including obtaining and setting file data security levels.
-
 > **NOTE**<br/>
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
+The **secuityLabel** module provides APIs to manage file data security levels, including obtaining and setting file data security levels.
+
 ## Modules to Import
 
 ```js
@@ -13,12 +13,15 @@ import securityLabel from '@ohos.securityLabel';
 
 ## Usage
 
-Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox. For details, see [getOrCreateLocalDir of the Context module](js-apis-Context.md).
+Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox as follows:
 
 ```js
 import featureAbility from '@ohos.ability.featureAbility';
 let context = featureAbility.getContext();
-let path = context.getFilesDir();
+let path = '';
+context.getFilesDir().then((data) => {
+    path = data;
+})
 ```
 
 ## securityLabel.setSecurityLabel
diff --git a/en/application-dev/reference/apis/js-apis-service-extension-ability.md b/en/application-dev/reference/apis/js-apis-service-extension-ability.md
index b66c29fe1834b589ee9ffd32eb598e5c53dc2e0a..388657b05dce3f05601cc88123ff2d64adbf127b 100644
--- a/en/application-dev/reference/apis/js-apis-service-extension-ability.md
+++ b/en/application-dev/reference/apis/js-apis-service-extension-ability.md
@@ -1,12 +1,12 @@
 # ServiceExtensionAbility
 
+The **ServiceExtensionAbility** module provides APIs for Service Extension abilities.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Provides APIs related to **ServiceExtension**.
-
 ## Modules to Import
 
 ```
@@ -21,24 +21,28 @@ None.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
-| Name| Type| Readable| Writable| Description| 
+**System API**: This is a system API and cannot be called by third-party applications.
+
+| Name| Type| Readable| Writable| Description|
 | -------- | -------- | -------- | -------- | -------- |
-| context | [ServiceExtensionContext](js-apis-service-extension-context.md)  | Yes| No| Service extension context, which is inherited from **ExtensionContext**.| 
+| context | [ServiceExtensionContext](js-apis-service-extension-context.md)  | Yes| No| Service Extension context, which is inherited from **ExtensionContext**.|
 
 
 ## ServiceExtensionAbility.onCreate
 
 onCreate(want: Want): void;
 
-Called when an extension is created to initialize the service logic.
+Called when a Service Extension ability is created to initialize the service logic.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want |  [Want](js-apis-application-Want.md) | Yes| Information related to this extension, including the ability name and bundle name.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want |  [Want](js-apis-application-Want.md) | Yes| Information related to this Service Extension ability, including the ability name and bundle name.|
 
 **Example**
 
@@ -55,10 +59,12 @@ Called when an extension is created to initialize the service logic.
 
 onDestroy(): void;
 
-Called when this extension is destroyed to clear resources.
+Called when this Service Extension ability is destroyed to clear resources.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Example**
 
   ```js
@@ -74,16 +80,18 @@ Called when this extension is destroyed to clear resources.
 
 onRequest(want: Want, startId: number): void;
 
-Called after **onCreate** is invoked when an ability is started by calling **startAbility**. The value of **startId** is incremented for each ability that is started.
+Called after **onCreate** is invoked when a Service Extension ability is started by calling **startAbility**. The value of **startId** is incremented for each ability that is started.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want |  [Want](js-apis-application-Want.md) | Yes| Information related to this extension, including the ability name and bundle name.| 
-  | startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want |  [Want](js-apis-application-Want.md) | Yes| Information related to this Service Extension ability, including the ability name and bundle name.|
+| startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.|
 
 **Example**
 
@@ -100,21 +108,23 @@ Called after **onCreate** is invoked when an ability is started by calling **sta
 
 onConnect(want: Want): rpc.RemoteObject;
 
-Called after **onCreate** is invoked when an ability is started by calling **connectAbility**. A **RemoteObject** object is returned for communication with the client.
+Called after **onCreate** is invoked when a Service Extension ability is started by calling **connectAbility**. A **RemoteObject** object is returned for communication with the client.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want |  [Want](js-apis-application-Want.md)| Yes| Information related to this extension, including the ability name and bundle name.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want |  [Want](js-apis-application-Want.md)| Yes| Information related to this Service Extension ability, including the ability name and bundle name.|
 
 **Return value**
 
-  | Type| Description| 
-  | -------- | -------- |
-  | rpc.RemoteObject | A **RemoteObject** object used for communication with the client.| 
+| Type| Description|
+| -------- | -------- |
+| rpc.RemoteObject | A **RemoteObject** object used for communication with the client.|
 
 **Example**
 
@@ -140,15 +150,17 @@ Called after **onCreate** is invoked when an ability is started by calling **con
 
 onDisconnect(want: Want): void;
 
-Called when the ability is disconnected.
+Called when this Service Extension ability is disconnected.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | want |[Want](js-apis-application-Want.md)| Yes| Information related to this extension, including the ability name and bundle name.| 
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want |[Want](js-apis-application-Want.md)| Yes| Information related to this Service Extension ability, including the ability name and bundle name.|
 
 **Example**
 
@@ -159,3 +171,82 @@ Called when the ability is disconnected.
     }
   }
   ```
+
+## ServiceExtensionAbility.onReconnect
+
+onReconnect(want: Want): void;
+
+Called when this Service Extension ability is reconnected.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want |[Want](js-apis-application-Want.md)| Yes| Information related to this Service Extension ability, including the ability name and bundle name.|
+
+**Example**
+
+  ```js
+  class ServiceExt extends ServiceExtension {
+    onDisconnect(want) {
+      console.log('onDisconnect, want:' + want.abilityName);
+    }
+  }
+  ```
+
+## ServiceExtensionAbility.onConfigurationUpdated
+
+onConfigurationUpdated(config: Configuration): void;
+
+Called when the configuration of this Service Extension ability is updated.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| config | [Configuration](js-apis-configuration.md) | Yes| New configuration.|
+
+**Example**
+    
+  ```js
+  class ServiceExt extends ServiceExtension {
+      onConfigurationUpdated(config) {
+          console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
+      }
+  }
+  ```
+
+## ServiceExtensionAbility.dump
+
+dump(params: Array\<string>): Array\<string>;
+
+Dumps the client information.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| params | Array\<string> | Yes| Parameters in the form of a command.|
+
+**Example**
+    
+  ```js
+  class ServiceExt extends ServiceExtension {
+      dump(params) {
+          console.log('dump, params:' + JSON.stringify(params));
+          return ["params"]
+      }
+  }
+  ```
diff --git a/en/application-dev/reference/apis/js-apis-service-extension-context.md b/en/application-dev/reference/apis/js-apis-service-extension-context.md
index 518167d562ba8801223e206ad5b35ea07ea94936..241a8bf17f94a3362fe6d12d4662b139c4c4cd8b 100644
--- a/en/application-dev/reference/apis/js-apis-service-extension-context.md
+++ b/en/application-dev/reference/apis/js-apis-service-extension-context.md
@@ -1,16 +1,25 @@
 # ServiceExtensionContext
 
+The **ServiceExtensionContext** module, inherited from **ExtensionContext**, provides context for Service Extension abilities.
+
+You can use the APIs of this module to start, terminate, connection, and disconnect abilities.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
 > The APIs of this module can be used only in the stage model.
 
-Implements the context that provides the capabilities and APIs of **ServiceExtension**. This class is inherited from **ExtensionContext**.
+## Usage
 
-## Modules to Import
+Before using the **ServiceExtensionContext** module, you must define a child class that inherits from **ServiceExtensionAbility**.
 
-```
-import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
+```js
+  import ServiceExtensionAbility from '@ohos.application.ServiceExtensionAbility';
+  class MainAbility extends ServiceExtensionAbility {
+      onCreate() {
+          let context = this.context;
+      }
+  }
 ```
 
 ## startAbility
@@ -21,6 +30,8 @@ Starts an ability. This API uses a callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
@@ -31,34 +42,30 @@ Starts an ability. This API uses a callback to return the result.
 **Example**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-  class MainAbility extends ExtensionContext {
-      onWindowStageCreate(windowStage) {
-          let want = {
-              "bundleName": "com.example.myapp",
-              "abilityName": "MyAbility"};
-          this.context.startAbility(want, (err) => {
-          console.log('startAbility result:' + JSON.stringify(err));
-          });
-      }
-  }
-
+    let want = {
+      "bundleName": "com.example.myapp",
+      "abilityName": "MyAbility"};
+      this.context.startAbility(want, (err) => {
+      console.log('startAbility result:' + JSON.stringify(err));
+    });
   ```
 
+## startAbility
 
-## ServiceExtensionContext.startAbility
-
-startAbility(want: Want): Promise&lt;void&gt;;
+startAbility(want: Want, options?: StartOptions): Promise\<void>;
 
 Starts an ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
   | -------- | -------- | -------- | -------- |
   | want | [Want](js-apis-application-Want.md)  | Yes| Information about the ability to start, such as the ability name and bundle name.| 
+  | options | [StartOptions](js-apis-application-StartOptions.md) | Yes| Parameters used for starting the ability.|
 
 **Return value**
 
@@ -69,24 +76,428 @@ Starts an ability. This API uses a promise to return the result.
 **Example**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-        onWindowStageCreate(windowStage) {
-            let want = {
-            "bundleName": "com.example.myapp",
-            "abilityName": "MyAbility"
-            };
-        this.context.startAbility(want).then((data) => {
-            console.log('success:' + JSON.stringify(data));
-        }).catch((error) => {
-            console.log('failed:' + JSON.stringify(error));
-        });
-        }
-    }
-
-  
+    let want = {
+        "bundleName": "com.example.myapp",
+        "abilityName": "MyAbility"
+    };
+    this.context.startAbility(want).then((data) => {
+        console.log('success:' + JSON.stringify(data));
+    }).catch((error) => {
+        console.log('failed:' + JSON.stringify(error));
+    });
+
+  ```
+
+## startAbility
+
+startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&gt;): void
+
+Starts an ability. This API uses a callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md)  | Yes| Information about the **Want** used for starting an ability.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | Yes| Parameters used for starting the ability.|
+| callback | AsyncCallback&lt;void&gt; | Yes| Callback used to return the result.|
+
+**Example**
+    
+  ```js
+  var want = {
+  	"deviceId": "",
+  	"bundleName": "com.extreme.test",
+  	"abilityName": "MainAbility"
+  };
+  var options = {
+  	windowMode: 0,
+  };
+  this.context.startAbility(want, options, (error) => {
+    console.log("error.code = " + error.code)
+  })
+  ```
+
+## ServiceExtensionContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startAbilityWithAccount(want, accountId, (err) => {
+    console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+
+## ServiceExtensionContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void\>): void;
+
+Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | No| Parameters used for starting the ability.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityWithAccount(want, accountId, options, (err) => {
+    console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+
+## ServiceExtensionContext.startAbilityWithAccount
+
+startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void>;
+
+Starts an ability with the account ID specified. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | [StartOptions](js-apis-application-StartOptions.md) | No| Parameters used for starting the ability.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    windowMode: 0,
+  };
+  this.context.startAbilityWithAccount(want, accountId, options)
+    .then((data) => {
+        console.log('---------- startAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startAbilityWithAccount fail, err:  -----------', err);
+    })
   ```
 
+## ServiceExtensionContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+Starts a new Service Extension ability. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want, (err) => {
+    console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want): Promise\<void>;
+
+Starts a new Service Extension ability. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+Starts a new Service Extension ability with the account ID specified. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+Starts a new Service Extension ability with the account ID specified. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+Stops Service Extension abilities in the same application. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want, (err) => {
+    console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want): Promise\<void>;
+
+Stops Service Extension abilities in the same application. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+Stops Service Extension abilities in the same application with the account ID specified. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| callback | AsyncCallback\<void\> | Yes| Callback used to return the result.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+Stops Service Extension abilities in the same application with the account ID specified. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
 
 ## ServiceExtensionContext.terminateSelf
 
@@ -96,6 +507,8 @@ Terminates this ability. This API uses a callback to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
@@ -105,19 +518,11 @@ Terminates this ability. This API uses a callback to return the result.
 **Example**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-        class MainAbility extends ExtensionContext {
-            onWindowStageCreate(windowStage) {
-            this.context.terminateSelf((err) => {
-              console.log('terminateSelf result:' + JSON.stringify(err));
-            });
-            }
-        }
-  
-
+  this.context.terminateSelf((err) => {
+    console.log('terminateSelf result:' + JSON.stringify(err));
+  });
   ```
 
-
 ## ServiceExtensionContext.terminateSelf
 
 terminateSelf(): Promise&lt;void&gt;;
@@ -126,6 +531,8 @@ Terminates this ability. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Return value**
 
   | Type| Description| 
@@ -135,20 +542,13 @@ Terminates this ability. This API uses a promise to return the result.
 **Example**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      this.context.terminateSelf().then((data) => {
-        console.log('success:' + JSON.stringify(data));
-      }).catch((error) => {
-        console.log('failed:' + JSON.stringify(error));
-      });
-    }
-}
-
+  this.context.terminateSelf().then((data) => {
+      console.log('success:' + JSON.stringify(data));
+  }).catch((error) => {
+      console.log('failed:' + JSON.stringify(error));
+  });
   ```
 
-
 ## ServiceExtensionContext.connectAbility
 
 connectAbility(want: Want, options: ConnectOptions): number;
@@ -157,12 +557,14 @@ Connects this ability to a Service ability.
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
   | -------- | -------- | -------- | -------- |
   | want | [Want](js-apis-application-Want.md)  | Yes| Information about the ability to connect to, such as the ability name and bundle name.| 
-  | options | [ConnectOptions](#connectoptions) | Yes| Callback used to return the information indicating that the connection is successful, interrupted, or failed.| 
+  | options | [ConnectOptions](js-apis-featureAbility.md#connectoptions) | Yes| Callback used to return the information indicating that the connection is successful, interrupted, or failed.| 
 
 **Return value**
 
@@ -174,17 +576,58 @@ Connects this ability to a Service ability.
 
   ```js
   let want = {
-      "bundleName": "com.example.myapp",
-      "abilityName": "MyAbility"
+    "bundleName": "com.example.myapp",
+    "abilityName": "MyAbility"
   };
   let options = {
-      onConnect: function(elementName, proxy) {},
-      onDisConnect: function(elementName) {},
-      onFailed: function(code) {}
+    onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
+    onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
+    onFailed(code) { console.log('----------- onFailed -----------') }
   }
   let connection = this.context.connectAbility(want,options);
   ```
 
+## ServiceExtensionContext.connectAbilityWithAccount
+
+connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
+
+Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect this ability to another ability.
+
+**System capability**: SystemCapability.Ability.AbilityRuntime.Core
+
+**System API**: This is a system API and cannot be called by third-party applications.
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | Yes| Information about the **Want** used for starting an ability.|
+| accountId | number | Yes| ID of the account.|
+| options | ConnectOptions | No| Remote object instance.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| number | Result code of the ability connection.|
+
+**Example**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  var options = {
+    onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
+    onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
+    onFailed(code) { console.log('----------- onFailed -----------') }
+  }
+  const result = this.context.connectAbilityWithAccount(want, accountId, options);
+  console.log('----------- connectAbilityResult: ------------', result);
+  ```
 
 ## ServiceExtensionContext.disconnectAbility
 
@@ -194,6 +637,8 @@ Disconnects this ability from the Service ability. This API uses a callback to r
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
@@ -204,21 +649,13 @@ Disconnects this ability from the Service ability. This API uses a callback to r
 **Example**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      let connection=1
-      this.context.disconnectAbility(connection, (err) => { 
+    let connection=1
+    this.context.disconnectAbility(connection, (err) => { 
         // connection is the return value of connectAbility.
         console.log('terminateSelf result:' + JSON.stringify(err));
-      });
-    }
-  }
-
-
+    });
   ```
 
-
 ## ServiceExtensionContext.disconnectAbility
 
 disconnectAbility(connection: number): Promise&lt;void&gt;;
@@ -227,6 +664,8 @@ Disconnects this ability from the Service ability. This API uses a promise to re
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
   | Name| Type| Mandatory| Description| 
@@ -242,29 +681,11 @@ Disconnects this ability from the Service ability. This API uses a promise to re
 **Example**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-  class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      let connection=1
-      this.context.disconnectAbility(connection).then((data) => { // connection is the return value of connectAbility.
+  let connection=1
+  this.context.disconnectAbility(connection).then((data) => { 
+      // connection is the return value of connectAbility.
       console.log('success:' + JSON.stringify(data));
-      }).catch((error) => {
+  }).catch((error) => {
       console.log('failed:' + JSON.stringify(error));
-      });
-    }
-  }
-
+  });
   ```
-
-
-## ConnectOptions
-
-Defines the **ConnectOptions** data structure.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-| Name| Description| 
-| -------- | -------- |
-| onConnect(elementName:ElementName,&nbsp;remote:IRemoteObject) | Called when this ability is connected to a Service ability.| 
-| onDisconnect(elementName:ElementName) | Called when the peer service is abnormal or killed.| 
-| onFailed(code:&nbsp;number) | Called when the connection fails.| 
diff --git a/en/application-dev/reference/apis/js-apis-sim.md b/en/application-dev/reference/apis/js-apis-sim.md
index acad2c7f0223074ef134389ddeac17b8f8d47455..41a4cfc71c77ff92c77b4b16ed19de9af6395bd3 100644
--- a/en/application-dev/reference/apis/js-apis-sim.md
+++ b/en/application-dev/reference/apis/js-apis-sim.md
@@ -1,5 +1,7 @@
 # SIM Management
 
+The SIM management module provides basic SIM card management functions. You can obtain the name, number, ISO country code, home PLMN number, service provider name, SIM card status, type, installation status, activation status, and lock status of the SIM card in the specified slot. Besides, you can set the name, number, and lock status of the SIM card, activate or deactivate the SIM card, and change the PIN or unlock the PIN or PUK of the SIM card.
+
 >**NOTE**
 >
 >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -520,7 +522,7 @@ This is a system API.
 | Name  | Type                                               | Mandatory| Description                                  |
 | -------- | --------------------------------------------------- | ---- | -------------------------------------- |
 | slotId   | number                                              | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
-| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | Yes  | Callback used to return the result. For details, see [IccAccountInfo](#IccAccountInfo7).|
+| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | Yes  | Callback used to return the result. |
 
 **Example**
 
@@ -672,7 +674,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result. |
 
 **Example**
 
@@ -737,7 +739,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result. |
 
 **Example**
 
@@ -867,7 +869,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result.      |
 
 **Example**
 
@@ -994,7 +996,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result. |
 
 **Example**
 
@@ -1057,7 +1059,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result.|
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-sms.md b/en/application-dev/reference/apis/js-apis-sms.md
index 11fdf806794469274ea30ee3b4797b42f9041965..25069b318add375d68d97084e45b08c1f69f3804 100644
--- a/en/application-dev/reference/apis/js-apis-sms.md
+++ b/en/application-dev/reference/apis/js-apis-sms.md
@@ -1,5 +1,7 @@
 # SMS
 
+The SMS module provides basic SMS management functions. You can create and send SMS messages, and obtain and set the default SIM card for sending and receiving SMS messages. Besides, you can obtain and set the SMSC address, and check whether the current device can send and receive SMS messages.
+
 >**NOTE**
 >
 >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -206,7 +208,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise\<void\> | Promise that returns no value.       |
+| Promise\<void\> | Promise used to return the result. |
 
 **Example**
 
diff --git a/en/application-dev/reference/apis/js-apis-storage-statistics.md b/en/application-dev/reference/apis/js-apis-storage-statistics.md
index 093d6cb8b578e66b4213d2f247a95c7c0b9a8643..5606a2e64372c3e002815d535f59851718e535e9 100644
--- a/en/application-dev/reference/apis/js-apis-storage-statistics.md
+++ b/en/application-dev/reference/apis/js-apis-storage-statistics.md
@@ -1,12 +1,12 @@
 # App Storage Statistics
 
-The storageStatistics module provides APIs for obtaining storage space information, including the space of built-in and plug-in memory cards, space occupied by different types of data, and space of application data.
-
 > **NOTE**<br/>
 >
 > - The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 > - API version 9 is a canary version for trial use. The APIs of this version may be unstable.
 
+The **storageStatistics** module provides APIs for obtaining storage space information, including the space of built-in and plug-in memory cards, space occupied by different types of data, and space of application data.
+
 ## Modules to Import
 
 ```js
@@ -470,7 +470,7 @@ This is a system API and cannot be called by third-party applications.
 
   | Name    | Type  | Mandatory| Description|
   | ---------- | ------ | ---- | ---- |
-  | userId | string | No  | User ID.<br>Value:<br>-&nbsp; Set this parameter to the ID of the user to be queried.<br>-&nbsp; If no value is specified, information about the current user is queried.|
+  | userId | number | No  | User ID.<br>Value:<br>-&nbsp; Set this parameter to the ID of the user to be queried.<br>-&nbsp; If no value is specified, information about the current user is queried.|
 
 **Return value**
 
@@ -481,7 +481,7 @@ This is a system API and cannot be called by third-party applications.
 **Example**
 
   ```js
-  let userId = "";
+  let userId = 1;
   storageStatistics.getUserStorageStats(userId).then(function(StorageStats){
       console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats));
   }).catch(function(err){
@@ -507,13 +507,13 @@ This is a system API and cannot be called by third-party applications.
 
   | Name    | Type                                | Mandatory| Description                      |
   | ---------- | ------------------------------------ | ---- | -------------------------- |
-  | userId | string                               | No  | User ID.<br>Value:<br>-&nbsp; Set this parameter to the ID of the user to be queried.<br>-&nbsp; If no value is specified, information about the current user is queried.                      |
+  | userId | number                               | No  | User ID.<br>Value:<br>-&nbsp; Set this parameter to the ID of the user to be queried.<br>-&nbsp; If no value is specified, information about the current user is queried.                      |
   | callback   | callback:AsyncCallback&lt;[StorageStats](#StorageStats)&gt; | Yes  | Callback invoked to return the information obtained.|
 
 **Example**
 
   ```js
-  let userId = "";
+  let userId = 1;
   storageStatistics.getUserStorageStats(userId, function(error, StorageStats){
       // Do something.
       console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats));
diff --git a/en/application-dev/reference/apis/js-apis-telephony-data.md b/en/application-dev/reference/apis/js-apis-telephony-data.md
index 309e32bdae7af66c7ca14802f734ccca0ccdbb99..4a711c1f7cbf0defdbcd9ea0c28a08e981c594a9 100644
--- a/en/application-dev/reference/apis/js-apis-telephony-data.md
+++ b/en/application-dev/reference/apis/js-apis-telephony-data.md
@@ -1,5 +1,7 @@
 # Cellular Data
 
+The cellular data module provides basic mobile data management functions. You can obtain and set the default slot of the SIM card used for mobile data, and obtain the uplink and downlink connection status of cellular data services and connection status of the packet switched (PS) domain. Besides, you can check whether cellular data services and data roaming are enabled.
+
 >**NOTE**
 >
 >The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
@@ -78,7 +80,7 @@ This is a system API.
 | Name  | Type                 | Mandatory| Description                                                        |
 | -------- | --------------------- | ---- | ------------------------------------------------------------ |
 | slotId   | number                | Yes  | SIM card slot ID. <br>- **0**: card slot 1<br>- **1**: card slot 2<br>- **-1**: Clears the default configuration.|
-| callback | AsyncCallback\<void\> | Yes  | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.                |
+| callback | AsyncCallback\<void\> | Yes  | Callback used to return the result. |
 
 **Example**
 
@@ -110,7 +112,7 @@ This is a system API.
 
 | Type          | Description                           |
 | -------------- | ------------------------------- |
-| Promise<\void\> | Promise that returns no value.       |
+| Promise<\void\> | Promise used to return the result. |
 
 **Example**
 
@@ -174,7 +176,7 @@ promise.then((data) => {
 
 getCellularDataState(callback: AsyncCallback\<DataConnectState\>): void
 
-Obtains the connection status of the packet switched (PS) domain. This API uses an asynchronous callback to return the result.
+Obtains the connection status of the PS domain. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Telephony.CellularData
 
@@ -342,14 +344,14 @@ Defines the cellular data flow type.
 
 ## DataConnectState
 
-Describes the connection status of a cellular data link.
+Describes the connection status of a cellular data connection.
 
 **System capability**: SystemCapability.Telephony.CellularData
 
 | Name                   | Value  | Description                      |
 | ----------------------- | ---- | -------------------------- |
-| DATA_STATE_UNKNOWN      | -1   | The status of the cellular data link is unknown.    |
-| DATA_STATE_DISCONNECTED | 0    | The cellular data link is disconnected.    |
-| DATA_STATE_CONNECTING   | 1    | The cellular data link is being connected.|
-| DATA_STATE_CONNECTED    | 2    | The cellular data link is connected.  |
-| DATA_STATE_SUSPENDED    | 3    | The cellular data link is suspended.  |
+| DATA_STATE_UNKNOWN      | -1   | The status of the cellular data connection is unknown.    |
+| DATA_STATE_DISCONNECTED | 0    | The cellular data connection is disconnected.   |
+| DATA_STATE_CONNECTING   | 1    | The cellular data connection is being established.|
+| DATA_STATE_CONNECTED    | 2    | The cellular data connection is established.  |
+| DATA_STATE_SUSPENDED    | 3    | The cellular data connection is suspended.  |
diff --git a/en/application-dev/reference/apis/js-apis-testRunner.md b/en/application-dev/reference/apis/js-apis-testRunner.md
index 717c8448a00518b777b882fa7a49d7aca4509e11..bc65de36ea0283d025deb74006dd428d7adefbd7 100644
--- a/en/application-dev/reference/apis/js-apis-testRunner.md
+++ b/en/application-dev/reference/apis/js-apis-testRunner.md
@@ -1,5 +1,9 @@
 # TestRunner
 
+The **TestRunner** module provides a test framework. You can use the APIs of this module to prepare the unit test environment and run test cases.
+
+To implement your own unit test framework, extend this class and override its APIs.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
@@ -10,8 +14,6 @@
 import TestRunner from '@ohos.application.testRunner'
 ```
 
-
-
 ## TestRunner.onPrepare
 
 onPrepare(): void
@@ -23,10 +25,11 @@ Prepares the unit test environment to run test cases.
 **Example**
 
 ```js
-export default class UserTestRunner extends TestRunner {
+export default class UserTestRunner implements TestRunner {
     onPrepare() {
         console.log("Trigger onPrepare")
     }
+onRun(){}
 };
 ```
 
@@ -43,9 +46,10 @@ Runs test cases.
 **Example**
 
 ```js
-export default class UserTestRunner extends TestRunner {
-    onRun() {
-        console.log("Trigger onRun")
+export default class UserTestRunner implements TestRunner {
+    onPrepare() {
+       console.log("Trigger onRun")
     }
+onRun(){}
 };
 ```
diff --git a/en/application-dev/reference/apis/js-apis-timer.md b/en/application-dev/reference/apis/js-apis-timer.md
index d144a95db8f59ca0605fd228b351380afe6feac8..f9e174b5147370f465e140d03aeba6b3802380a0 100644
--- a/en/application-dev/reference/apis/js-apis-timer.md
+++ b/en/application-dev/reference/apis/js-apis-timer.md
@@ -3,13 +3,6 @@
 
 ## setTimeout
 
-## Modules to Import
-
-
-```
-import Time from '@ohos.Time';
-```
-
 setTimeout(handler[,delay[,…args]]): number
 
 Sets a timer for the system to call a function after the timer goes off.
diff --git a/en/application-dev/reference/apis/js-apis-uiappearance.md b/en/application-dev/reference/apis/js-apis-uiappearance.md
new file mode 100644
index 0000000000000000000000000000000000000000..3bac964627675b3475e273551d06b146636b410d
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-uiappearance.md
@@ -0,0 +1,106 @@
+# UI Appearance
+
+The **uiAppearance** module provides basic capabilities for managing the system appearance. It allows for color mode configuration currently, and will introduce more features over time.
+
+> **NOTE**
+>
+> The APIs of this module are supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+>
+> The APIs provided by this module are system APIs.
+
+
+## Modules to Import
+
+```ts
+import uiAppearance from '@ohos.uiAppearance'
+```
+
+
+## DarkMode
+
+Enumerates the color modes.
+
+
+**System capability**: SystemCapability.ArkUI.UiAppearance
+
+| Name| Value| Description|
+| -- | -- | -- |
+| ALWAYS_DARK | 0 | The system is always in dark mode. |
+| ALWAYS_LIGHT | 1 | The system is always in light mode.|
+
+
+## uiAppearance.setDarkMode
+
+setDarkMode(mode: DarkMode, callback: AsyncCallback\<void>): void
+
+Sets the system color mode. This API uses an asynchronous callback to return the result.
+
+**Permission required**: ohos.permission.UPDATE_CONFIGURATION
+
+**System capability**: SystemCapability.ArkUI.UiAppearance
+
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -- | -- | -- | -- |
+| mode | [DarkMode](#darkmode) | Yes| Color mode to set.|
+| callback | AsyncCallback\<void>| Yes| Callback used to return the result.|
+
+**Example**
+  ```ts
+uiAppearance.setDarkMode(uiAppearance.DarkMode.ALWAYS_DARK, (err) => {
+  console.info(`${err}`);
+})
+  ```
+
+
+## uiAppearance.setDarkMode
+
+setDarkMode(mode: DarkMode): Promise\<void>;
+
+Sets the system color mode. This API uses a promise to return the result.
+
+**Permission required**: ohos.permission.UPDATE_CONFIGURATION
+
+**System capability**: SystemCapability.ArkUI.UiAppearance
+
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -- | -- | -- | -- |
+| mode | [DarkMode](#darkmode) | Yes| Color mode to set.|
+
+**Return value**
+
+| Type  | Description                          |
+| ------ | ------------------------------ |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+  ```ts
+uiAppearance.setDarkMode(uiAppearance.DarkMode.ALWAYS_DARK).then(() => {
+    console.log('Set dark-mode successfully.');
+}).catch((err) => {
+    console.log(`Set dark-mode failed, ${err}`);
+});
+  ```
+
+
+## uiAppearance.getDarkMode
+
+getDarkMode(): DarkMode;
+
+Obtains the system color mode.
+
+**Permission required**: ohos.permission.UPDATE_CONFIGURATION
+
+**System capability**: SystemCapability.ArkUI.UiAppearance
+
+**Return value**
+| Type| Description|
+| -- | -- |
+|[DarkMode](#darkmode) | Color mode obtained.|
+
+**Example**
+  ```ts
+let darkMode = uiAppearance.getDarkMode();
+console.log(`Get dark-mode ${darkMode}`);
+  ```
diff --git a/en/application-dev/reference/apis/js-apis-update.md b/en/application-dev/reference/apis/js-apis-update.md
index 251c1d59b610f4d01372186d0e40d0521cf62ca8..64d76026eeb3981fd589401d71f599fc2112f9dd 100644
--- a/en/application-dev/reference/apis/js-apis-update.md
+++ b/en/application-dev/reference/apis/js-apis-update.md
@@ -1,8 +1,5 @@
 # Update
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
 The Update module applies to updates throughout the entire system, including built-in resources and preset applications, but not third-party applications.
 
 There are two types of updates: SD card update and over the air (OTA) update.
@@ -10,135 +7,180 @@ There are two types of updates: SD card update and over the air (OTA) update.
 - The SD card update depends on the update packages and SD cards.
 - The OTA update depends on the server deployed by the device manufacturer for managing update packages. The OTA server IP address is passed by the caller. The request interface is fixed and developed by the device manufacturer.
 
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+>
+> The APIs provided by this module are system APIs.
+
 ## Modules to Import
 
 ```js
 import update from '@ohos.update'
 ```
 
-## Required Permissions
-
-None
-
-## update.getUpdater
+## update.getOnlineUpdater
 
-getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater
+getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater
 
-Obtains the **Updater** object for local update.
+Obtains an **OnlineUpdater** object.
 
 **System capability**: SystemCapability.Update.UpdateService
 
 **Parameters**
 
-| Name        | Type                        | Mandatory | Description  |
-| ----------- | --------------------------- | --------- | ------------ |
-| upgradeFile | string                      | Yes       | Update file. |
-| updateType  | [UpdateTypes](#updatetypes) | Yes       | Update type. |
+| Name        | Type                         | Mandatory  | Description  |
+| ----------- | --------------------------- | ---- | ---- |
+| upgradeInfo | [UpgradeInfo](#upgradeinfo)                 | Yes   | **UpgradeInfo** object.|
 
 **Return value**
 
-| Type                | Description         |
-| ------------------- | ------------------- |
-| [Updater](#updater) | **Updater** object. |
+| Type                 | Description  |
+| ------------------- | ---- |
+| [Updater](#updater) | **OnlineUpdater** object.|
 
 **Example**
 
 ```
 try {
-  let updater = update.getUpdater('/data/updater/updater.zip', 'OTA');
+  var upgradeInfo = {
+    upgradeApp: "com.ohos.ota.updateclient",
+    businessType: {
+      vendor: update.BusinessVendor.PUBLIC,
+      subType: update.BusinessSubType.FIRMWARE
+    }
+  }
+  let updater = update.getOnlineUpdater(upgradeInfo);
 } catch(error) {
-  console.error(" Fail to get updater error: " + error);
+  console.error(`Fail to get updater error: ${error}`);
 }
 ```
 
-## update.getUpdaterForOther
+## update.getRestorer
 
-getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater
+getRestorer(): Restorer
 
-Obtains the **Updater** object for the device to be updated.
+Obtains a **Restorer** object for restoring factory settings.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-**Parameters**
-
-| Name        | Type                        | Mandatory | Description           |
-| ----------- | --------------------------- | --------- | --------------------- |
-| upgradeFile | string                      | Yes       | Update file.          |
-| device      | string                      | Yes       | Device to be updated. |
-| updateType  | [UpdateTypes](#updatetypes) | Yes       | Update type.          |
 
 **Return value**
 
-| Type                | Description         |
-| ------------------- | ------------------- |
-| [Updater](#updater) | **Updater** object. |
+| Type                 | Description  |
+| ------------------- | ---- |
+| [Restorer](#restorer) | **Restorer** object for restoring factory settings.|
 
 **Example**
 
 ```
 try {
-  let updater = update.getUpdaterForOther('/data/updater/updater.zip', '1234567890', 'OTA');
+  let restorer = update.getRestorer();
 } catch(error) {
-  console.error(" Fail to get updater error: " + error);
+  console.error(`Fail to get restorer: ${error}`);
 }
 ```
 
-## update.getUpdaterFromOther
+## update.getLocalUpdater
 
-getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater
+getLocalUpdater(): LocalUpdater
 
-Obtains the **Updater** object from another device for the device to be updated.
+Obtains a **LocalUpdater** object.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-**Parameters**
-
-| Name        | Type                        | Mandatory | Description           |
-| ----------- | --------------------------- | --------- | --------------------- |
-| upgradeFile | string                      | Yes       | Update file.          |
-| device      | string                      | Yes       | Device to be updated. |
-| updateType  | [UpdateTypes](#updatetypes) | Yes       | Update type.          |
-
 **Return value**
 
-| Type                | Description         |
-| ------------------- | ------------------- |
-| [Updater](#updater) | **Updater** object. |
+| Type                 | Description  |
+| ------------------- | ---- |
+| [LocalUpdater](#localupdater) | **LocalUpdater** object.|
 
 **Example**
 
 ```
 try {
-  let updater = update.getUpdaterFromOther('/data/updater/updater.zip', '1234567890', 'OTA');
+  let localUpdater = update.getLocalUpdater();
 } catch(error) {
-  console.error(" Fail to get updater error: " + error);
+  console.error(`Fail to get localUpdater error: ${error}`);
 }
 ```
 
 ## Updater
 
+### checkNewVersion
+
+checkNewVersion(callback: AsyncCallback\<CheckResult>): void
+
+Checks whether a new version is available. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<[CheckResult](#checkresult)> | Yes   | Callback used to return the result.|
+
+**Example**
+
+```
+updater.checkNewVersion((err, result) => {
+  console.log(`checkNewVersion isExistNewVersion  ${result?.isExistNewVersion}`);
+});
+```
+
+### checkNewVersion
+
+checkNewVersion(): Promise\<CheckResult>
+
+Checks whether a new version is available. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<[CheckResult](#checkresult)> | Promise used to return the result.|
+
+**Example**
+
+```
+updater.checkNewVersion().then(result => {
+  console.log(`checkNewVersion isExistNewVersion: ${result.isExistNewVersion}`);
+  // Version digest information
+  console.log(`checkNewVersion versionDigestInfo: ${result.newVersionInfo.versionDigestInfo.versionDigest}`);
+}).catch(err => {
+  console.log(`checkNewVersion promise error ${JSON.stringify(err)}`);
+});
+```
+
 ###  getNewVersionInfo
 
 getNewVersionInfo(callback: AsyncCallback\<NewVersionInfo>): void
 
-Obtains the new version information. This function uses an asynchronous callback to return the result.
+Obtains information about the new version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                                     | Mandatory | Description                              |
-| -------- | ---------------------------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback<[NewVersionInfo](#newversioninfo)> | No        | Callback used to return the new version information. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```
-updater.getNewVersionInfo(info => {
-  console.log("getNewVersionInfo success  " + info.status);
-  console.log(`info versionName = ` + info.checkResult[0].versionName);
-  console.log(`info versionCode = ` + info.checkResult[0].versionCode);
-  console.log(`info verifyInfo = ` + info.checkResult[0].verifyInfo);
+updater.getNewVersionInfo((err, info) => {
+  console.log(`info displayVersion = ${info?.versionComponents[0].displayVersion}`);
+  console.log(`info innerVersion = ${info?.versionComponents[0].innerVersion}`);
 });
 ```
 
@@ -146,451 +188,1562 @@ updater.getNewVersionInfo(info => {
 
 getNewVersionInfo(): Promise\<NewVersionInfo>
 
-Obtains the new version information. This function uses a promise to return the result.
+Obtains information about the new version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Return value**
 
-| Type                                     | Description                              |
-| ---------------------------------------- | ---------------------------------------- |
-| Promise\<[NewVersionInfo](#newversioninfo)> | Promise used to return the new version information. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<[NewVersionInfo](#newversioninfo)> | Promise used to return the result.|
 
 **Example**
 
 ```
-updater.getNewVersionInfo().then(value => {
-  console.log(`info versionName = ` + value.checkResult[0].versionName);
-  console.log(`info versionCode = ` + value.checkResult[0].versionCode);
-  console.log(`info verifyInfo = ` + value.checkResult[0].verifyInfo);
+updater.getNewVersionInfo().then(info => {
+  console.log(`info displayVersion = ${info.versionComponents[0].displayVersion}`);
+  console.log(`info innerVersion = ${info.versionComponents[0].innerVersion}`);
 }).catch(err => {
-  console.log("getNewVersionInfo promise error: " + err.code);
+  console.log(`getNewVersionInfo promise error ${JSON.stringify(err)}`);
 });
 ```
 
-### checkNewVersion
+###  getNewVersionDescription
 
-checkNewVersion(callback: AsyncCallback\<NewVersionInfo>): void
+getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOptions: DescriptionOptions, callback: AsyncCallback\<Array\<ComponentDescription>>): void
 
-Checks whether the current version is the latest. This function uses an asynchronous callback to return the result.
+Obtains the description file of the new version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                                     | Mandatory | Description                              |
-| -------- | ---------------------------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | No        | Callback used to return the new version information. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | Yes   | Options of the description file.|
+| callback | AsyncCallback\<Array\<[ComponentDescription](#componentdescription)>>) | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```
-updater.checkNewVersion(info => {
-  console.log("checkNewVersion success  " + info.status);
-  console.log(`info versionName = ` + info.checkResult[0].versionName);
-  console.log(`info versionCode = ` + info.checkResult[0].versionCode);
-  console.log(`info verifyInfo = ` + info.checkResult[0].verifyInfo);
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options of the description file
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // Standard format
+  language: "zh-cn" // Chinese
+}
+
+updater.getNewVersionDescription(versionDigestInfo, descriptionOptions, (err, info) => {
+  console.log(`getNewVersionDescription info ${JSON.stringify(info)}`);
+  console.log(`getNewVersionDescription err ${JSON.stringify(err)}`);
 });
 ```
 
-### checkNewVersion
+### getNewVersionDescription
+
+getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOptions: DescriptionOptions): Promise\<Array\<ComponentDescription>>;
+
+Obtains the description file of the new version. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | Yes   | Options of the description file.|
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<Array\<[ComponentDescription](#componentdescription)>> | Promise used to return the result.|
+
+**Example**
 
-checkNewVersion(): Promise\<NewVersionInfo>
+```
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options of the description file
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // Standard format
+  language: "zh-cn" // Chinese
+}
+
+updater.getNewVersionDescription(versionDigestInfo, descriptionOptions).then(info => {
+  console.log(`getNewVersionDescription promise info ${JSON.stringify(info)}`);
+}).catch(err => {
+  console.log(`getNewVersionDescription promise error ${JSON.stringify(err)}`);
+});
+```
+
+###  getCurrentVersionInfo
+
+getCurrentVersionInfo(callback: AsyncCallback\<CurrentVersionInfo>): void
+
+Obtains information about the current version. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
 
-Checks whether the current version is the latest. This function uses a promise to return the result.
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<[CurrentVersionInfo](#currentversioninfo)> | Yes   | Callback used to return the result.|
+
+**Example**
+
+```
+updater.getCurrentVersionInfo((err, info) => {
+  console.log(`info osVersion = ${info?.osVersion}`);
+  console.log(`info deviceName = ${info?.deviceName}`);
+  console.log(`info displayVersion = ${info?.versionComponents[0].displayVersion}`);
+});
+```
+
+### getCurrentVersionInfo
+
+getCurrentVersionInfo(): Promise\<CurrentVersionInfo>
+
+Obtains information about the current version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Return value**
 
-| Type                                     | Description                              |
-| ---------------------------------------- | ---------------------------------------- |
-| Promise\<[NewVersionInfo](#newversioninfo)> | Promise used to return the new version information. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<[CurrentVersionInfo](#currentversioninfo)> | Promise used to return the result.|
 
 **Example**
 
 ```
-updater.checkNewVersion().then(value => {
-  console.log(`info versionName = ` + value.checkResult[0].versionName);
-  console.log(`info versionCode = ` + value.checkResult[0].versionCode);
-  console.log(`info verifyInfo = ` + value.checkResult[0].verifyInfo);
+updater.getCurrentVersionInfo().then(info => {
+  console.log(`info osVersion = ${info.osVersion}`);
+  console.log(`info deviceName = ${info.deviceName}`);
+  console.log(`info displayVersion = ${info.versionComponents[0].displayVersion}`);
 }).catch(err => {
-  console.log("checkNewVersion promise error: " + err.code);
+  console.log(`getCurrentVersionInfo promise error ${JSON.stringify(err)}`);
 });
 ```
 
-### verifyUpdatePackage
+###  getCurrentVersionDescription
 
-verifyUpdatePackage(upgradeFile: string, certsFile: string): void
+getCurrentVersionDescription(descriptionOptions: DescriptionOptions, callback: AsyncCallback\<Array\<ComponentDescription>>): void
 
-Verifies whether the update package is valid.
+Obtains the description file of the current version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name        | Type   | Mandatory | Description                              |
-| ----------- | ------ | --------- | ---------------------------------------- |
-| upgradeFile | string | Yes       | Path of the update package to be verified. |
-| certsFile   | string | Yes       | Certificate path.                        |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | Yes   | Options of the description file.|
+| callback | AsyncCallback\<Array\<[ComponentDescription](#componentdescription)>>) | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```
-updater.on("verifyProgress", callback => {
-  console.info('on verifyProgress ' + callback.percent);
+// Options of the description file
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // Standard format
+  language: "zh-cn" // Chinese
+}
+
+updater.getCurrentVersionDescription(descriptionOptions, (err, info) => {
+  console.log(`getCurrentVersionDescription info ${JSON.stringify(info)}`);
+  console.log(`getCurrentVersionDescription err ${JSON.stringify(err)}`);
 });
-update.verifyUpdatePackage("XXX", "XXX");
 ```
 
-### rebootAndCleanUserData<sup>8+</sup>
+### getCurrentVersionDescription
 
-rebootAndCleanUserData(): Promise\<number>
+getCurrentVersionDescription(descriptionOptions: DescriptionOptions): Promise\<Array\<ComponentDescription>>
 
-Reboots the device and clears the user partition data. This function uses a promise to return the result.
+Obtains the description file of the current version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | Yes   | Options of the description file.|
+
 **Return value**
 
-| Type             | Description                              |
-| ---------------- | ---------------------------------------- |
-| Promise\<number> | Promise used to return the execution result. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<Array\<[ComponentDescription](#componentdescription)>> | Promise used to return the result.|
 
 **Example**
 
 ```
-updater.rebootAndCleanUserData().then(result => {
-  console.log("rebootAndCleanUserData " + result);
+// Options of the description file
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // Standard format
+  language: "zh-cn" // Chinese
+}
+
+updater.getCurrentVersionDescription(descriptionOptions).then(info => {
+  console.log(`getCurrentVersionDescription promise info ${JSON.stringify(info)}`);
 }).catch(err => {
-  console.info("rebootAndCleanUserData promise error: " + err.code);
+  console.log(`getCurrentVersionDescription promise error ${JSON.stringify(err)}`);
 });
 ```
 
-### rebootAndCleanUserData<sup>8+</sup>
+###  getTaskInfo
 
-rebootAndCleanUserData(callback: AsyncCallback\<number>): void
+getTaskInfo(callback: AsyncCallback\<TaskInfo>): void
 
-Reboots the device and clears the user partition data. This function uses a promise to return the result.
+Obtains information about the update task. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                   | Mandatory | Description                              |
-| -------- | ---------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback\<number> | Yes       | Callback used to return the execution result. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<[TaskInfo](#taskinfo)> | Yes   | Callback used to return the result.|
 
 **Example**
 
 ```
-updater.rebootAndCleanUserData(result => {
-  console.log("rebootAndCleanUserData ", result)
+updater.getTaskInfo((err, info) => {
+  console.log(`getTaskInfo isexistTask= ${info?.existTask}`);
 });
 ```
 
-### applyNewVersion
+### getTaskInfo
 
-applyNewVersion(): Promise\<number>
+getTaskInfo(): Promise\<TaskInfo>
 
-Installs the update package. This function uses a promise to return the result.
+Obtains information about the update task. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Return value**
 
-| Type             | Description                              |
-| ---------------- | ---------------------------------------- |
-| Promise\<number> | Promise used to return the execution result. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<[TaskInfo](#taskinfo)> | Promise used to return the result.|
 
 **Example**
 
 ```
-updater.applyNewVersion().then(result => {
-    console.log("appVewVersion ", result)
+updater.getTaskInfo().then(info => {
+  console.log(`getTaskInfo isexistTask= ${info.existTask}`);
 }).catch(err => {
-    console.info("applyNewVersion promise error: " + err.code);
+  console.log(`getTaskInfo promise error ${JSON.stringify(err)}`);
 });
 ```
 
-### applyNewVersion
+###  download
 
-applyNewVersion(callback: AsyncCallback\<number>): void
+download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions, callback: AsyncCallback\<void>): void
 
-Installs the update package. This function uses a promise to return the result.
+Downloads the new version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                   | Mandatory | Description                              |
-| -------- | ---------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback\<number> | Yes       | Callback used to return the execution result. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| downloadOptions | [DownloadOptions](#downloadoptions) | Yes   | Download options.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
 
 **Example**
 
 ```
-updater.applyNewVersion(result => {
-  console.log("applyNewVersion ", result)
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Download options
+var downloadOptions = {
+  allowNetwork: update.NetType.CELLULAR, // Whether to allow download over data network
+  order: update.Order.DOWNLOAD // Download
+}
+updater.download(versionDigestInfo, downloadOptions, (err) => {
+  console.log(`download error ${JSON.stringify(err)}`);
 });
 ```
 
 ### download
 
-download(): void
+download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions): Promise\<void>
 
-Downloads the new version and displays the download process.
+Downloads the new version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| downloadOptions | [DownloadOptions](#downloadoptions) | Yes   | Download options.|
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
 **Example**
 
 ```
-updater.on("downloadProgress", progress => {
-  console.log("downloadProgress on" + progress);
-  console.log(`downloadProgress status: ` + progress.status);
-  console.log(`downloadProgress percent: ` + progress.percent);
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Download options
+var downloadOptions = {
+  allowNetwork: update.NetType.CELLULAR, // Whether to allow download over data network
+  order: update.Order.DOWNLOAD // Download
+}
+updater.download(versionDigestInfo, downloadOptions).then(() => {
+  console.log(`download start`);
+}).catch(err => {
+  console.log(`download error ${JSON.stringify(err)}`);
 });
-updater.download();
 ```
 
-### upgrade
+###  resumeDownload
+
+resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions, callback: AsyncCallback\<void>): void
+
+Resumes download of the new version. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | Yes   | Options for resuming download.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+
+**Example**
+
+```
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for resuming download
+var resumeDownloadOptions = {
+  allowNetwork: update.NetType.CELLULAR, // Whether to allow download over data network
+}
+updater.resumeDownload(versionDigestInfo, resumeDownloadOptions, (err) => {
+  console.log(`resumeDownload error ${JSON.stringify(err)}`);
+});
+```
 
-upgrade():void
+### resumeDownload
 
-Starts an update.
+resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions): Promise\<void>
+
+Resumes download of the new version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | Yes   | Options for resuming download.|
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
 **Example**
 
 ```
-updater.on("upgradeProgress", progress => {
-  console.log("upgradeProgress on" + progress);
-  console.log(`upgradeProgress status: ` + progress.status);
-  console.log(`upgradeProgress percent: ` + progress.percent);
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for resuming download
+var resumeDownloadOptions = {
+  allowNetwork: update.NetType.CELLULAR, // Whether to allow download over data network
+}
+updater.resumeDownload(versionDigestInfo, resumeDownloadOptions).then(value => {
+  console.log(`resumeDownload start`);
+}).catch(err => {
+  console.log(`resumeDownload error ${JSON.stringify(err)}`);
 });
-updater.upgrade();
 ```
 
-### setUpdatePolicy
+###  pauseDownload
 
-setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback\<number>): void
+pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions, callback: AsyncCallback\<void>): void
 
-Sets the update policy. This function uses an asynchronous callback to return the result.
+Pauses download of the new version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                                     | Mandatory | Description                              |
-| -------- | ---------------------------------------- | --------- | ---------------------------------------- |
-| policy   | [UpdatePolicy](#updatepolicy)            | Yes       | Update policy to set.                    |
-| callback | Callback used to return the execution result. | Yes       | Callback used to return the execution result. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | Yes   | Options for pausing download.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
 
 **Example**
 
 ```
-// Set the update policy.
-let policy = {
-  autoDownload: false,
-  autoDownloadNet: true,
-  mode: 2,
-  autoUpgradeInterval: [ 2, 3 ],
-  autoUpgradeCondition: 2
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for pausing download
+var pauseDownloadOptions = {
+  isAllowAutoResume: true // Whether to allow automatic resuming of download
 }
-updater.setUpdatePolicy(policy, result => {
-  console.log("setUpdatePolicy ", result)
+updater.pauseDownload(versionDigestInfo, pauseDownloadOptions, (err) => {
+  console.log(`pauseDownload error ${JSON.stringify(err)}`);
 });
 ```
 
-### setUpdatePolicy
+### pauseDownload
 
-setUpdatePolicy(policy: UpdatePolicy): Promise\<number>
+pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions): Promise\<void>
 
-Sets the update policy. This function uses a promise to return the result.
+Resumes download of the new version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name   | Type                          | Mandatory | Description           |
-| ------ | ----------------------------- | --------- | --------------------- |
-| policy | [UpdatePolicy](#updatepolicy) | Yes       | Update policy to set. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | Yes   | Options for pausing download.|
 
 **Return value**
 
-| Type             | Description                              |
-| ---------------- | ---------------------------------------- |
-| Promise\<number> | Promise used to return the execution result. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
 
 **Example**
 
 ```
-let policy = {
-  autoDownload: false,
-  autoDownloadNet: true,
-  mode: 2,
-  autoUpgradeInterval: [ 2, 3 ],
-  autoUpgradeCondition: 2
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for pausing download
+var pauseDownloadOptions = {
+  isAllowAutoResume: true // Whether to allow automatic resuming of download
 }
-updater.setUpdatePolicy(policy).then(result => 
-  console.log("setUpdatePolicy ", result)
-).catch(err => {
-  console.log("setUpdatePolicy promise error: " + err.code);
+updater.pauseDownload(versionDigestInfo, pauseDownloadOptions).then(value => {
+  console.log(`pauseDownload`);
+}).catch(err => {
+  console.log(`pauseDownload error ${JSON.stringify(err)}`);
 });
 ```
 
-### getUpdatePolicy
+###  upgrade
 
-getUpdatePolicy(callback: AsyncCallback\<UpdatePolicy>): void
+upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions, callback: AsyncCallback\<void>): void
 
-Obtains the update policy. This function uses an asynchronous callback to return the result.
+Updates the version. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
 **Parameters**
 
-| Name     | Type                                     | Mandatory | Description                              |
-| -------- | ---------------------------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback\<[UpdatePolicy](#updatepolicy)> | No        | Callback used to return the update policy. |
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| upgradeOptions | [UpgradeOptions](#upgradeoptions) | Yes   | Update options.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
 
 **Example**
 
 ```
-updater.getUpdatePolicy(policy => {
-  console.log("getUpdatePolicy success");
-  console.log(`policy autoDownload = ` + policy.autoDownload);
-  console.log(`policy autoDownloadNet = ` + policy.autoDownloadNet);
-  console.log(`policy mode = ` + policy.mode);
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Installation options
+var upgradeOptions = {
+  order: update.Order.INSTALL // Installation command
+}
+updater.upgrade(versionDigestInfo, upgradeOptions, (err) => {
+  console.log(`upgrade error ${JSON.stringify(err)}`);
 });
 ```
 
-### getUpdatePolicy
+### upgrade
 
-getUpdatePolicy(): Promise\<UpdatePolicy>
+upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions): Promise\<void>
 
-Obtains the update policy. This function uses a promise to return the result.
+Updates the version. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| upgradeOptions | [UpgradeOptions](#upgradeoptions) | Yes   | Update options.|
+
 **Return value**
 
-| Type                                    | Description                              |
-| --------------------------------------- | ---------------------------------------- |
-| Promise\<[UpdatePolicy](#updatepolicy)> | Promise used to return the update policy. |
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
 
 **Example**
 
 ```
-updater.getUpdatePolicy().then(value => {
-  console.log(`info autoDownload = ` + value.autoDownload);
-  console.log(`info autoDownloadNet = ` + value.autoDownloadNet);
-  console.log(`info mode = ` + value.mode);
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Installation options
+var upgradeOptions = {
+  order: update.Order.INSTALL // Installation command
+}
+updater.upgrade(versionDigestInfo, upgradeOptions).then(() => {
+  console.log(`upgrade start`);
 }).catch(err => {
-  console.log("getUpdatePolicy promise error: " + err.code);
+  console.log(`upgrade error ${JSON.stringify(err)}`);
 });
 ```
 
-## UpdateTypes
+###  clearError
+
+clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, callback: AsyncCallback\<void>): void
 
-Enumerates update types.
+Clears errors. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name  | Description   |
-| ----- | ------------- |
-| OTA   | OTA update.   |
-| patch | Patch update. |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| clearOptions | [ClearOptions](#clearoptions) | Yes   | Clear options.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+
+**Example**
+
+```
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for clearing errors
+var clearOptions = {
+  status: update.UpgradeStatus.UPGRADE_FAIL,
+}
+updater.clearError(versionDigestInfo, clearOptions, (err) => {
+  console.log(`clearError error ${JSON.stringify(err)}`);
+});
+```
 
-## PackageTypes
+### clearError
 
-Enumerates update package types.
+clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Promise\<void>
+
+Clears errors. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name                 | Default Value | Description                             |
-| -------------------- | ------------- | --------------------------------------- |
-| PACKAGE_TYPE_NORMAL  | 1             | Common update package.                  |
-| PACKAGE_TYPE_BASE    | 2             | Basic update package.                   |
-| PACKAGE_TYPE_CUST    | 3             | Custom update package.                  |
-| PACKAGE_TYPE_PRELOAD | 4             | Preinstalled update package.            |
-| PACKAGE_TYPE_COTA    | 5             | Parameter configuration update package. |
-| PACKAGE_TYPE_VERSION | 6             | Version update package.                 |
-| PACKAGE_TYPE_PATCH   | 7             | Patch package.                          |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | Yes   | Version digest information.|
+| clearOptions | [ClearOptions](#clearoptions) | Yes   | Update options.|
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```
+// Version digest information
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // Version digest information in the check result
+}
+
+// Options for clearing errors
+var clearOptions = {
+  status: update.UpgradeStatus.UPGRADE_FAIL,
+}
+updater.clearError(versionDigestInfo, clearOptions).then(() => {
+  console.log(`clearError success`);
+}).catch(err => {
+  console.log(`clearError error ${JSON.stringify(err)}`);
+});
+```
+
+### getUpgradePolicy
 
-## InstallMode
+getUpgradePolicy(callback: AsyncCallback\<UpgradePolicy>): void
 
-Enumerates update modes.
+Obtains the update policy. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name                | Default Value | Description       |
-| ------------------- | ------------- | ----------------- |
-| INSTALL_MODE_NORMAL | 0             | Normal update.    |
-| INSTALL_MODE_NIGHT  | 1             | Update at night.  |
-| INSTALL_MODE_AUTO   | 2             | Automatic update. |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description        |
+| -------- | ---------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\<[UpgradePolicy](#upgradepolicy)> | Yes   | Callback used to return the result.|
+
+**Example**
+
+```
+updater.getUpgradePolicy((err, policy) => {
+  console.log(`policy downloadStrategy = ${policy?.downloadStrategy}`);
+  console.log(`policy autoUpgradeStrategy = ${policy?.autoUpgradeStrategy}`);
+});
+```
+
+### getUpgradePolicy
 
-## NewVersionStatus
+getUpgradePolicy(): Promise\<UpgradePolicy>
 
-Enumerates new version check results.
+Obtains the update policy. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name                | Default Value | Description                              |
-| ------------------- | ------------- | ---------------------------------------- |
-| VERSION_STATUS_ERR  | -1            | System error while checking for the new version. |
-| VERSION_STATUS_NEW  | 0             | New version detected.                    |
-| VERSION_STATUS_NONE | 1             | No new version detected.                 |
-| VERSION_STATUS_BUSY | 2             | System busy while checking for the new version. |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Return value**
+
+| Type                                     | Description               |
+| --------------------------------------- | ----------------- |
+| Promise\<[UpgradePolicy](#upgradepolicy)> | Promise used to return the result.|
+
+**Example**
+
+```
+updater.getUpgradePolicy().then(policy => {
+  console.log(`policy downloadStrategy = ${policy.downloadStrategy}`);
+  console.log(`policy autoUpgradeStrategy = ${policy.autoUpgradeStrategy}`);
+}).catch(err => {
+  console.log(`getUpgradePolicy promise error ${JSON.stringify(err)}`);
+});
+```
 
-## UpdatePolicy
+### setUpgradePolicy
 
-Defines the update policy.
+setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\<void>): void
+
+Sets the update policy. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name                | Type                        | Mandatory | Description                          |
-| ------------------- | --------------------------- | --------- | ------------------------------------ |
-| autoDownload        | bool                        | Yes       | Automatic update switch.             |
-| installMode         | [InstallMode](#installmode) | Yes       | Update mode.                         |
-| autoUpgradeInterval | Array\<number>              | Yes       | Period of time for automatic update. |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
 
-## NewVersionInfo
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description        |
+| -------- | ---------------------------------------- | ---- | ---------- |
+| policy | [UpgradePolicy](#upgradepolicy) | Yes   | Update policy.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result.|
 
-Defines the new version information.
+**Example**
+
+```
+let policy = {
+  downloadStrategy: false,
+  autoUpgradeStrategy: false,
+  autoUpgradePeriods: [ { start: 120, end: 240 } ] // Automatic update period, in minutes
+}
+updater.setUpgradePolicy(policy, (err) => {
+  console.log(`setUpgradePolicy result: ${err}`);
+});
+```
+
+### setUpgradePolicy
+
+setUpgradePolicy(policy: UpgradePolicy): Promise\<void>
+
+Sets the update policy. This API uses a promise to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name            | Type                                     | Mandatory | Description                      |
-| --------------- | ---------------------------------------- | --------- | -------------------------------- |
-| status          | [NewVersionStatus](#newversionstatus)    | Yes       | Update status.                   |
-| errMsg          | string                                   | Yes       | Error message.                   |
-| checkResults    | Array<[CheckResult](#checkresult)>       | Yes       | Version check result.            |
-| descriptionInfo | Array\<[DescriptionInfo](#descriptioninfo)> | Yes       | Version description information. |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
 
-## CheckResult
+**Parameters**
+
+| Name   | Type                           | Mandatory  | Description    |
+| ------ | ----------------------------- | ---- | ------ |
+| policy | [UpgradePolicy](#upgradepolicy) | Yes   | Update policy.|
+
+**Return value**
+
+| Type              | Description             |
+| ---------------- | --------------- |
+| Promise\<void> | Promise used to return the result.|
 
-Defines the version check result.
+**Example**
+
+```
+let policy = {
+  downloadStrategy: false,
+  autoUpgradeStrategy: false,
+  autoUpgradePeriods: [ { start: 120, end: 240 } ] // Automatic update period, in minutes
+}
+updater.setUpgradePolicy(policy).then(() => {
+  console.log(`setUpgradePolicy success`);
+}).catch(err => {
+  console.log(`setUpgradePolicy promise error ${JSON.stringify(err)}`);
+});
+```
+
+###  terminateUpgrade
+
+terminateUpgrade(callback: AsyncCallback\<void>): void
+
+Terminates the update. This API uses an asynchronous callback to return the result.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name          | Type                          | Mandatory | Description                       |
-| ------------- | ----------------------------- | --------- | --------------------------------- |
-| versionName   | string                        | Yes       | Version name.                     |
-| versionCode   | number                        | Yes       | Version code.                     |
-| size          | number                        | Yes       | Version size.                     |
-| verifyInfo    | string                        | Yes       | Version verification information. |
-| packageType   | [PackageTypes](#packagetypes) | Yes       | Version type.                     |
-| descriptionId | string                        | Yes       | Version description information.  |
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
 
-## DescriptionInfo
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+
+**Example**
+
+```
+updater.terminateUpgrade((err) => {
+  console.log(`terminateUpgrade error ${JSON.stringify(err)}`);
+});
+```
+
+### terminateUpgrade
+
+terminateUpgrade(): Promise\<void>
+
+Terminates the update. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```
+updater.terminateUpgrade().then(() => {
+  console.log(`terminateUpgrade success`);
+}).catch(err => {
+  console.log(`terminateUpgrade error ${JSON.stringify(err)}`);
+});
+```
+
+
+### on
+on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void
+
+Enables listening for update events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | Yes   | Event information.|
+| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | Yes   | Event callback.|
+
+**Example**
+
+```
+var eventClassifyInfo = {
+  eventClassify: update.EventClassify.TASK, // Listening for update events
+  extraInfo: ""
+}
+
+updater.on(eventClassifyInfo, (eventInfo) => {
+  console.log("updater on " + JSON.stringify(eventInfo));
+});
+```
+
+### off
+off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void
+
+Disables listening for update events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | Yes   | Event information.|
+| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | No   | Event callback.|
+
+**Example**
+
+```
+var eventClassifyInfo = {
+  eventClassify: update.EventClassify.TASK, // Listening for update events
+  extraInfo: ""
+}
+
+updater.off(eventClassifyInfo, (eventInfo) => {
+  console.log("updater off " + JSON.stringify(eventInfo));
+});
+```
+
+## Restorer
+
+### factoryReset
+
+factoryReset(callback: AsyncCallback\<void>): void
+
+Restores factory settings. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.FACTORY_RESET (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+
+**Example**
+
+```
+restorer.factoryReset((err) => {
+  console.log(`factoryReset error ${JSON.stringify(err)}`);
+});
+```
+
+### factoryReset
+
+factoryReset(): Promise\<void>
+
+Restores factory settings. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.FACTORY_RESET (a system permission)
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```
+restorer.factoryReset().then(() => {
+  console.log(`factoryReset success`);
+}).catch(err => {
+  console.log(`factoryReset error ${JSON.stringify(err)}`);
+});
+```
+
+## LocalUpdater
+
+### verifyUpgradePackage
+
+verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\<void>): void
+
+Verifies the update package. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| upgradeFile | [UpgradeFile](#upgradefile) | Yes   | Update file.|
+| certsFile | string | Yes   | Path of the certificate file.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result.|
+
+**Example**
+
+```
+var upgradeFile = {
+  fileType: update.ComponentType.OTA, // OTA package
+  filePath: "path" // Path of the local update package
+}
+
+localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err) => {
+  console.log(`factoryReset error ${JSON.stringify(err)}`);
+});
+```
+
+### verifyUpgradePackage
+
+verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\<void>
+
+Verifies the update package. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| upgradeFile | [UpgradeFile](#upgradefile) | Yes   | Update file.|
+| certsFile | string | Yes   | Path of the certificate file.|
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise used to return the result.|
+
+**Example**
+
+```
+var upgradeFile = {
+  fileType: update.ComponentType.OTA, // OTA package
+  filePath: "path" // Path of the local update package
+}
+localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(() => {
+  console.log(`verifyUpgradePackage success`);
+}).catch(err => {
+  console.log(`verifyUpgradePackage error ${JSON.stringify(err)}`);
+});
+```
+
+### applyNewVersion
+applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>, callback: AsyncCallback\<void>): void
+
+Installs the update package. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| upgradeFile | Array<[UpgradeFile](#upgradefile)> | Yes   | Update file.|
+| callback | AsyncCallback\<void> | Yes   | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.|
+
+**Example**
+
+```
+var upgradeFiles = [{
+  fileType: update.ComponentType.OTA, // OTA package
+  filePath: "path" // Path of the local update package
+}]
+
+localUpdater.applyNewVersion(upgradeFiles, (err) => {
+  console.log(`applyNewVersion error ${JSON.stringify(err)}`);
+});
+```
+
+### applyNewVersion
+
+applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>): Promise\<void>
+
+Installs the update package. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Required permission**: ohos.permission.UPDATE_SYSTEM (a system permission)
+
+**Return value**
+
+| Type                                      | Description              |
+| ---------------------------------------- | ---------------- |
+| Promise\<void> | Promise that returns no value.|
+
+**Example**
+
+```
+var upgradeFiles = [{
+  fileType: update.ComponentType.OTA, // OTA package
+  filePath: "path" // Path of the local update package
+}]
+localUpdater.applyNewVersion(upgradeFiles).then(() => {
+  console.log(`applyNewVersion success`);
+}).catch(err => {
+  console.log(`applyNewVersion error ${JSON.stringify(err)}`);
+});
+```
+
+### on
+on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void
+
+Enables listening for update events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | Yes   | Event information.|
+| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | Yes   | Event callback.|
+
+**Example**
+
+```
+var eventClassifyInfo = {
+  eventClassify: update.EventClassify.TASK, // Listening for update events
+  extraInfo: ""
+}
+
+function onTaskUpdate(eventInfo) {
+  console.log(`on eventInfo id `, eventInfo.eventId);
+}
+
+localUpdater.on(eventClassifyInfo, onTaskUpdate);
+```
+
+### off
+off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void
+
+Disables listening for update events. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+**Parameters**
+
+| Name     | Type                                      | Mandatory  | Description       |
+| -------- | ---------------------------------------- | ---- | --------- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | Yes   | Event information.|
+| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | Yes   | Event callback.|
+
+**Example**
+
+```
+var eventClassifyInfo = {
+  eventClassify: update.EventClassify.TASK, // Listening for update events
+  extraInfo: ""
+}
+
+function onTaskUpdate(eventInfo) {
+  console.log(`on eventInfo id `, eventInfo.eventId);
+}
+
+localUpdater.off(eventClassifyInfo, onTaskUpdate);
+```
+
+## UpgradeInfo
+
+Represents update information.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| upgradeApp          | string                      | Yes   | Application package name. |
+| businessType        | [BusinessType](#businesstype) | Yes   | Update service type.   |
+
+## BusinessType
+
+Enumerates update service types.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| vendor              | [BusinessVendor](#businessvendor)   | Yes   | Application vendor. |
+| subType             | [BusinessSubType](#businesssubtype) | Yes   | Update service sub-type.   |
+
+## CheckResult
+
+Represents the package check result.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| isExistNewVersion              | bool   | Yes   | Whether a new version is available. |
+| newVersionInfo             | [NewVersionInfo](#newversioninfo) | No   | Information about the new version.   |
+
+## NewVersionInfo
+
+Represents information about the new version.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| versionDigestInfo              | [VersionDigestInfo](#versiondigestinfo)   | Yes   | Version digest information. |
+| versionComponents             | Array\<[VersionComponent](#versioncomponent)>  | Yes   | Version components.   |
+
+## VersionDigestInfo
+
+Represents version digest information.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| versionDigest              | string   | Yes   | Version digest information. |
+
+## VersionComponent
+
+Represents a version component.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| componentId              | number   | Yes   | Component ID. |
+| componentType              | [ComponentType](#componentyype)   | Yes   | Component type. |
+| upgradeAction              | [UpgradeAction](#upgradeaction)   | Yes   | Update mode. |
+| displayVersion              | string   | Yes   | Display version number. |
+| innerVersion              | string   | Yes   | Internal version number. |
+| size              | number   | Yes   | Update package size. |
+| effectiveMode              | [EffectiveMode](#effectivemode)   | Yes   | Effective mode. |
+| descriptionInfo              | [DescriptionInfo](#descriptioninfo)   | Yes   | Information about the version description file. |
+
+## DescriptionOptions
+
+Represents options of the description file.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| format              | [DescriptionFormat](#descriptionformat)   | Yes   | Format of the description file. |
+| language              |  string  | Yes   | Language of the description file. |
+
+## ComponentDescription
+
+Represents a component description file.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| componentId              |  string  | Yes   | Component ID. |
+| descriptionInfo              |  [DescriptionInfo](#descriptioninfo)  | Yes   | Information about the description file. |
+
+## DescriptionInfo
+
+Represents information about the version description file.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| descriptionType              | [DescriptionType](#descriptiontype)   | Yes   | Type of the description file. |
+| content              |  string  | Yes   | Content of the description file. |
+
+## CurrentVersionInfo
+
+Represents information about the current version.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| osVersion              | string   | Yes   | System version number. |
+| deviceName              | string   | Yes   | Device name. |
+| versionComponents              | Array\<[VersionComponent](#vesioncomponent)>   | No   | Version components. |
+
+## DownloadOptions
+
+Represents download options.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| allowNetwork              | [NetType](#nettype)   | Yes   | Network type. |
+| order              | [Order](#order)   | Yes   | Update command. |
+
+## ResumeDownloadOptions
+
+Represents options for resuming download.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Parameter                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| allowNetwork              | [NetType](#nettype)   | Yes   | Network type. |
+
+## PauseDownloadOptions
+
+Represents options for pausing download.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| isAllowAutoResume              | bool   | Yes   | Whether to allow automatic resuming of download. |
+
+## UpgradeOptions
+
+Represents update options.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| order              | [Order](#order)   | Yes   | Update command. |
+
+## ClearOptions
+
+Represents options for clearing errors.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| status              | [UpgradeStatus](#upgradestatus)   | Yes   | Error status. |
+
+## UpgradePolicy
+
+Represents an update policy.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| downloadStrategy        | bool                        | Yes   | Automatic download policy. |
+| autoUpgradeStrategy         | bool | Yes   | Automatic update policy.   |
+| autoUpgradePeriods | Array\<[UpgradePeriod](#upgradeperiod)>              | Yes   | Automatic update period.|
+
+## UpgradePeriod
+
+Represents a period for automatic update.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| start        | number                        | Yes   | Start time. |
+| end         | number | Yes   | End time.   |
+
+## TaskInfo
+
+Represents task information.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| existTask        | bool                        | Yes   | Whether a task exists. |
+| taskBody         | [TaskBody](#taskinfo) | Yes   | Task data.   |
+
+## EventInfo
+
+Represents event information.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Parameter                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| eventId        |   [EventId](#eventid)    | Yes   | Event ID. |
+| taskBody         | [TaskBody](#taskinfo) | Yes   | Task data.   |
+
+## TaskBody
+
+Represents task data.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| versionDigestInfo        |   [VersionDigestInfo](#versiondigestinfo)    | Yes   | Version digest information. |
+| status         | [UpgradeStatus](#upgradestatus) | Yes   | Update status.   |
+| subStatus         | number | No   | Sub-status.   |
+| progress         | number | Yes   | Progress.   |
+| installMode         | number | Yes   | Installation mode.   |
+| errorMessages         |  Array\<[ErrorMessage](#errormessage)>  | No   | Error message.   |
+| versionComponents         | Array\<[VersionComponent](#versioncomponent)> | Yes   | Version components.   |
+
+## ErrorMessage
+
+Represents an error message.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| errorCode        |   number   | Yes   | Error code. |
+| errorMessage         | string | Yes   | Error description.   |
+
+## EventClassifyInfo
+
+Represents event type information.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| eventClassify        |   [EventClassify](#eventclassify)   | Yes   | Event type. |
+| extraInfo         | string | Yes   | Additional information.   |
+
+## UpgradeFile
+
+Represents an update file.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                 | Type                       | Mandatory  | Description     |
+| ------------------- | --------------------------- | ---- | ------- |
+| fileType        |   [ComponentType](#componenttype)   | Yes   | File type. |
+| filePath         | string | Yes   | File path.   |
+
+## UpgradeTaskCallback
+
+### (eventInfo: [EventInfo](#eventinfo)): void
+
+Event callback.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Parameter             | Type                                    | Mandatory  | Description  |
+| --------------- | ---------------------------------------- | ---- | ---- |
+| eventInfo          | [EventInfo](#eventinfo)     | Yes   | Event information.|
+
+## BusinessVendor
+
+Device vendor.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| PUBLIC   | "public" | Open source. |
+
+## BusinessSubType
+
+Represents an update type.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| FIRMWARE   | 1 | Firmware. |
+
+## ComponentType
+
+Represents a component type.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| OTA   | 1 | Firmware. |
+
+## UpgradeAction
+
+Represents an update mode.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| UPGRADE   | "upgrade" | Differential package. |
+| RECOVERY   | "recovery" | Recovery package. |
+
+## EffectiveMode
+
+Represents an effective mode.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| COLD   | 1 | Cold update. |
+| LIVE   | 2 | Live update. |
+| LIVE_AND_COLD   | 3 | Hybrid live and cold update. |
+
+## DescriptionType
+
+Represents a description file type.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| CONTENT   | 0 | Content. |
+| URI   | 1 | Link. |
+
+## DescriptionFormat
+
+Represents a description file format.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| STANDARD   | 0 | Standard format. |
+| SIMPLIFIED   | 1 | Simple format. |
+
+## NetType
+
+Enumerates network types.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| CELLULAR   | 1 | Data network. |
+| METERED_WIFI   | 2 | Wi-Fi hotspot. |
+| NOT_METERED_WIFI   | 4 | Non Wi-Fi hotspot. |
+| WIFI   | 6 | WIFI  |
+| CELLULAR_AND_WIFI   | 7 | Data network and Wi-Fi. |
+
+## Order
+
+Represents an update command.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| DOWNLOAD   | 1 | Download. |
+| INSTALL   | 2 | Install. |
+| DOWNLOAD_AND_INSTALL   | 3 | Download and install. |
+| APPLY   | 4 | Apply. |
+| INSTALL_AND_APPLY   | 6 | Install and apply. |
+
+## UpgradeStatus
+
+Enumerates update states.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| WAITING_DOWNLOAD   | 20 | Waiting for download. |
+| DOWNLOADING   | 21 | Downloading. |
+| DOWNLOAD_PAUSED   | 22 | Download paused. |
+| DOWNLOAD_FAIL   | 23 | Download failed. |
+| WAITING_INSTALL   | 30 | Waiting for installation. |
+| UPDATING   | 31 | Updating. |
+| WAITING_APPLY   | 40 | Waiting for applying the update. |
+| APPLYING   | 21 | Applying the update. |
+| UPGRADE_SUCCESS   | 50 | Update succeeded. |
+| UPGRADE_FAIL   | 51 | Update failed. |
+
+## EventClassify
+
+Represents an event type.
+
+**System capability**: SystemCapability.Update.UpdateService
+
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| TASK   | 0x01000000 | Task event. |
+
+## EventId
 
-Defines the version description information.
+Enumerates event IDs.
 
 **System capability**: SystemCapability.Update.UpdateService
 
-| Name          | Type   | Mandatory | Description                    |
-| ------------- | ------ | --------- | ------------------------------ |
-| descriptionId | string | Yes       | Version ID information.        |
-| content       | string | Yes       | Version changelog information. |
+| Name                | Default Value | Description      |
+| ------------------- | ---- | -------- |
+| EVENT_TASK_BASE   | 0x01000000 | Indicates a task event. |
+| EVENT_TASK_RECEIVE   | 0x01000001 | Indicates that a task is received. |
+| EVENT_TASK_CANCEL   | 0x01000010 | Indicates that a task is cancelled. |
+| EVENT_DOWNLOAD_WAIT   | 0x01000011 | Indicates the state of waiting for the download. |
+| EVENT_DOWNLOAD_START   | 0x01000100 | Indicates that the download starts. |
+| EVENT_DOWNLOAD_UPDATE   | 0x01000101 | Indicates the download progress update. |
+| EVENT_DOWNLOAD_PAUSE   | 0x01000110 | Indicates that the download is paused. |
+| EVENT_DOWNLOAD_RESUME   | 0x01000111 | Indicates that the download is resumed. |
+| EVENT_DOWNLOAD_SUCCESS   | 0x01001000 | Indicates that the download succeeded. |
+| EVENT_DOWNLOAD_FAIL   | 0x01001001 | Indicates that the download failed. |
+| EVENT_UPGRADE_WAIT   | 0x01001010 | Indicates the state of waiting for the update. |
+| EVENT_UPGRADE_START   | 0x01001011 | Indicates that the update starts. |
+| EVENT_UPGRADE_UPDATE   | 0x01001100 | Indicates that the update is in progress. |
+| EVENT_APPLY_WAIT   | 0x01001101 | Indicates the state of waiting for applying the update. |
+| EVENT_APPLY_START   | 0x01001110 | Indicates the state of applying the update. |
+| EVENT_UPGRADE_SUCCESS   | 0x01001111 | Indicates that the update succeeded. |
+| EVENT_UPGRADE_FAIL   | 0x01010000 | Indicates that the update failed. |
diff --git a/en/application-dev/reference/apis/js-apis-uri.md b/en/application-dev/reference/apis/js-apis-uri.md
index a6c8823599cfee6dba5288e6555d6c618fd414c8..60fd45f98209c718374e4a2633b074a531aa719c 100644
--- a/en/application-dev/reference/apis/js-apis-uri.md
+++ b/en/application-dev/reference/apis/js-apis-uri.md
@@ -72,8 +72,8 @@ Obtains the query string applicable to this URI.
 **Example**
 
 ```js
-const uri = new uri.URI('http://username:password@host:8080/directory/file?query=pppppp#qwer=da');
-uri.toString()
+const result = new uri.URI('http://username:password@host:8080/directory/file?query=pppppp#qwer=da');
+result.toString()
 ```
 
 
diff --git a/en/application-dev/reference/apis/js-apis-uripermissionmanager.md b/en/application-dev/reference/apis/js-apis-uripermissionmanager.md
deleted file mode 100644
index 6bbf0f941909786361f651546a3fab9fe129c69c..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-uripermissionmanager.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# uriPermissionManager
-
-> **NOTE**
-> 
-> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
-
-Implements URI permission management.
-
-
-## Modules to Import
-
-  
-```
-import UriPermissionManager from '@ohos.application.uriPermissionManager';
-```
-
-
-## uriPermissionManager.verifyUriPermission
-
-verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number, callback: AsyncCallback&lt;number&gt;): void
-
-Checks whether an application has the permission specified by **flag** for an URI. This API uses a callback to return the result.
-
-**System capability**:
-
-SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | uri | string | Yes| URI of a file, for example, **fileshare:///com.samples.filesharetest.FileShare/person/10**.| 
-  | flag | wantConstant.Flags | Yes| Read or write permission on the file specified by the URI.| 
-  | accessTokenId | number | Yes| Unique ID of an application, which is obtained through the **BundleManager** API.| 
-  | callback | AsyncCallback&lt;number&gt; | Yes| Callback used to return the check result. The value **0** means that the application has the specified permission, and **-1** means the opposite.| 
-
-**Example**
-    
-  ```js
-  import WantConstant from '@ohos.ability.wantConstant';
-  let accessTokenId =1
-  let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
-  UriPermissionManager.verifyUriPermission(uri, WantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId, (result) => {
-      console.log("result.code = " + result.code)
-  }) // accessTokenId is obtained through the **BundleManager** API.
-  ```
-
-
-## uriPermissionManager.verifyUriPermission
-
-verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number): Promise&lt;number&gt;
-
-Checks whether an application has the permission specified by **flag** for an URI. This API uses a callback to return the result.
-
-**System capability**:
-
-SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-  | Name| Type| Mandatory| Description| 
-  | -------- | -------- | -------- | -------- |
-  | uri | string | Yes| URI of a file, for example, **fileshare:///com.samples.filesharetest.FileShare/person/10**.| 
-  | flag | wantConstant.Flags | Yes| Read or write permission on the file specified by the URI.| 
-  | accessTokenId | number | Yes| Unique ID of an application, which is obtained through the **BundleManager** API.| 
-
-**Return value**
-
-  | Type| Description| 
-  | -------- | -------- |
-  | Promise&lt;number&gt; | Promise used to return the check result. The value **0** means that the application has the specified permission, and **-1** means the opposite.| 
-
-**Example**
-    
-  ```js
-  import WantConstant from '@ohos.ability.wantConstant';
-  let accessTokenId =1
-  let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
-  UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId)
-  .then((data) => {
-      console.log('Verification succeeded.' + data)
-  }).catch((error) => {
-      console.log('Verification failed.');
-  })
-  ```
diff --git a/en/application-dev/reference/apis/js-apis-url.md b/en/application-dev/reference/apis/js-apis-url.md
index fd826706700190a3d2f042a155cca1a2e1c96b81..55694ec1cb024a25affa93feca40b2a73ef38234 100755
--- a/en/application-dev/reference/apis/js-apis-url.md
+++ b/en/application-dev/reference/apis/js-apis-url.md
@@ -1,6 +1,7 @@
 # URL String Parsing
 
-> **NOTE**<br>
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -25,13 +26,13 @@ Creates a **URLSearchParams** instance.
 
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| init | string[][]&nbsp;\|&nbsp;Record&lt;string,&nbsp;string&gt;&nbsp;\|&nbsp;string&nbsp;\|&nbsp;URLSearchParams | No| Input parameter objects, which include the following:<br>- **string[][]**: two-dimensional string array<br>-&nbsp;**Record&lt;string,&nbsp;string&gt;**: list of objects<br>- **string**: string<br>- **URLSearchParams**: object |
+| init | string[][]&nbsp;\|&nbsp;Record&lt;string,&nbsp;string&gt;&nbsp;\|&nbsp;string&nbsp;\|&nbsp;URLSearchParams | No| Input parameter objects, which include the following:<br>- **string[][]**: two-dimensional string array<br>- **Record&lt;string,&nbsp;string&gt;**: list of objects<br>- **string**: string<br>- **URLSearchParams**: object|
 
 **Example**
 
 ```js
 var objectParams = new Url.URLSearchParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
-var objectParams1 = new Url.URLSearchParams({"fod" : 1 , "bard" : 2});
+var objectParams1 = new Url.URLSearchParams({"fod" : '1' , "bard" : '2'});
 var objectParams2 = new Url.URLSearchParams('?fod=1&bard=2');
 var urlObject = new Url.URL('https://developer.mozilla.org/?fod=1&bard=2');
 var params = new Url.URLSearchParams(urlObject.search);
@@ -48,17 +49,17 @@ Appends a key-value pair into the query string.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key of the key-value pair to append. |
- | value | string | Yes | Value of the key-value pair to append. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key of the key-value pair to append.|
+| value | string | Yes| Value of the key-value pair to append.|
 
 **Example**
 
 ```js
 let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
 let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
-paramsObject.append('fod', 3);
+paramsObject.append('fod', '3');
 ```
 
 
@@ -72,9 +73,9 @@ Deletes key-value pairs of the specified key.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key of the key-value pairs to delete. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key of the key-value pairs to delete.|
 
 **Example**
 
@@ -95,23 +96,23 @@ Obtains all the key-value pairs based on the specified key.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key specified to obtain all key-value pairs. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key specified to obtain all key-value pairs.|
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | string[] | All key-value pairs matching the specified key. |
+| Type| Description|
+| -------- | -------- |
+| string[] | All key-value pairs matching the specified key.|
 
 **Example**
 
 ```js
-let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); 
-let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1)); 
-paramsObject.append('fod', 3); // Add a second value for the fod parameter.
-console.log(params.getAll('fod')) // Output ["1","3"].
+let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
+let params = new Url.URLSearchParams(urlObject.search.slice(1));
+params.append('fod', '3'); // Add a second value for the fod parameter.
+console.log(params.getAll('fod').toString()) // Output ["1","3"].
 ```
 
 
@@ -125,9 +126,9 @@ Obtains an ES6 iterator. Each item of the iterator is a JavaScript array, and th
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | IterableIterator&lt;[string,&nbsp;string]&gt; | ES6 iterator. |
+| Type| Description|
+| -------- | -------- |
+| IterableIterator&lt;[string,&nbsp;string]&gt; | ES6 iterator.|
 
 **Example**
 
@@ -149,18 +150,18 @@ Traverses the key-value pairs in the **URLSearchParams** instance by using a cal
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | callbackfn | function | Yes | Callback invoked to traverse the key-value pairs in the **URLSearchParams** instance. |
- | thisArg | Object | No | Value to use when the callback is invoked. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callbackfn | function | Yes| Callback invoked to traverse the key-value pairs in the **URLSearchParams** instance.|
+| thisArg | Object | No| Value to use when the callback is invoked.|
 
 **Table 1** callbackfn parameter description
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | value | string | Yes | Value that is currently traversed. |
- | key | string | Yes | Key that is currently traversed. |
- | searchParams | Object | Yes | Instance that invokes the **forEach** method. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| value | string | Yes| Value that is currently traversed.|
+| key | string | Yes| Key that is currently traversed.|
+| searchParams | Object | Yes| Instance that invokes the **forEach** method.|
 
 **Example**
 
@@ -182,24 +183,23 @@ Obtains the value of the first key-value pair based on the specified key.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key specified to obtain the value. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key specified to obtain the value.|
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | string | Returns the value of the first key-value pair if obtained. |
- | null | Returns null if no value is obtained. |
+| Type| Description|
+| -------- | -------- |
+| string | Returns the value of the first key-value pair if obtained.|
+| null | Returns null if no value is obtained.|
 
 **Example**
 
 ```js
-var paramsOject = new Url.URLSearchParams(document.location.search.substring(1)); 
+var paramsOject = new Url.URLSearchParams('name=Jonathan&age=18'); 
 var name = paramsOject.get("name"); // is the string "Jonathan" 
 var age = parseInt(paramsOject.get("age"), 10); // is the number 18
-var address = paramsOject.get("address"); // null
 ```
 
 
@@ -213,15 +213,15 @@ Checks whether a key has a value.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key specified to search for its value. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key specified to search for its value.|
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | boolean | Returns **true** if the value exists; returns **false** otherwise. |
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the value exists; returns **false** otherwise.|
 
 **Example**
 
@@ -242,17 +242,17 @@ Sets the value for a key. If key-value pairs matching the specified key exist, t
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | name | string | Yes | Key of the value to set. |
- | value | string | Yes | Value to set. |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | string | Yes| Key of the value to set.|
+| value | string | Yes| Value to set.|
 
 **Example**
 
 ```js
 let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
 let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
-paramsObject.set('baz', 3); // Add a third parameter.
+paramsObject.set('baz', '3'); // Add a third parameter.
 ```
 
 
@@ -283,9 +283,9 @@ Obtains an ES6 iterator that contains the keys of all the key-value pairs.
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | IterableIterator&lt;string&gt; | ES6 iterator that contains the keys of all the key-value pairs. |
+| Type| Description|
+| -------- | -------- |
+| IterableIterator&lt;string&gt; | ES6 iterator that contains the keys of all the key-value pairs.|
 
 **Example**
 
@@ -307,9 +307,9 @@ Obtains an ES6 iterator that contains the values of all the key-value pairs.
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | IterableIterator&lt;string&gt; | ES6 iterator that contains the values of all the key-value pairs. |
+| Type| Description|
+| -------- | -------- |
+| IterableIterator&lt;string&gt; | ES6 iterator that contains the values of all the key-value pairs.|
 
 **Example**
 
@@ -331,9 +331,9 @@ Obtains an ES6 iterator. Each item of the iterator is a JavaScript array, and th
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | IterableIterator&lt;[string,&nbsp;string]&gt; | ES6 iterator. |
+| Type| Description|
+| -------- | -------- |
+| IterableIterator&lt;[string,&nbsp;string]&gt; | ES6 iterator.|
 
 **Example**
 
@@ -355,16 +355,16 @@ Obtains search parameters that are serialized as a string and, if necessary, per
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | string | String of serialized search parameters, which is percent-encoded if necessary. |
+| Type| Description|
+| -------- | -------- |
+| string | String of serialized search parameters, which is percent-encoded if necessary.|
 
 **Example**
 
 ```js
 let url = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
 let params = new Url.URLSearchParams(url.search.slice(1)); 
-params.append('fod', 3);
+params.append('fod', '3');
 console.log(params.toString());
 ```
 
@@ -401,10 +401,10 @@ Creates a URL.
 
 **Parameters**
 
- | Name | Type | Mandatory | Description |
- | -------- | -------- | -------- | -------- |
- | url | string | Yes | Input object. |
- | base | string&nbsp;\ |&nbsp;URL | No | Input parameter, which can be any of the following:<br>- **string**: string<br>- **URL**: string or object |
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| url | string | Yes| Input object.|
+| base | string&nbsp;\|&nbsp;URL | No| Input parameter, which can be any of the following:<br>- **string**: string<br>- **URL**: string or object|
 
 **Example**
 
@@ -434,9 +434,9 @@ Converts the parsed URL into a string.
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | string | Website address in a serialized string. |
+| Type| Description|
+| -------- | -------- |
+| string | Website address in a serialized string.|
 
 **Example**
 
@@ -456,12 +456,12 @@ Converts the parsed URL into a JSON string.
 
 **Return value**
 
- | Type | Description |
- | -------- | -------- |
- | string | Website address in a serialized string. |
+| Type| Description|
+| -------- | -------- |
+| string | Website address in a serialized string.|
 
 **Example**
 ```js
 const url = new Url.URL('http://username:password@host:8080/directory/file?query=pppppp#qwer=da');
 url.toJSON()
-```
\ No newline at end of file
+```
diff --git a/en/application-dev/reference/apis/js-apis-usb.md b/en/application-dev/reference/apis/js-apis-usb.md
index 63beaae8031c42ad274d2e151dad4c029f799761..71b0490ea8c610dc0169222042ec7770c19d0a83 100644
--- a/en/application-dev/reference/apis/js-apis-usb.md
+++ b/en/application-dev/reference/apis/js-apis-usb.md
@@ -1,6 +1,9 @@
 # USB
 
-> **NOTE**<br>
+This module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control.
+
+> **NOTE**
+> 
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Modules to Import
@@ -126,8 +129,8 @@ Checks whether the application has the permission to access the device.
 
 - **Example**
   ```js
-  let divicesName="1-1";
-  let bool = usb.hasRight(divicesName);
+  let devicesName="1-1";
+  let bool = usb.hasRight(devicesName);
   console.log(bool);
   ```
 
@@ -152,8 +155,8 @@ Requests the temporary permission for the application to access the USB device.
 
 - **Example**
   ```js
-  let divicesName="1-1";
-  usb.requestRight(divicesName).then((ret) => {
+  let devicesName="1-1";
+  usb.requestRight(devicesName).then((ret) => {
     console.log(`requestRight = ${JSON.stringify(ret)}`);
   });
   ```
diff --git a/en/application-dev/reference/apis/js-apis-useriam-userauth.md b/en/application-dev/reference/apis/js-apis-useriam-userauth.md
index 56ac3823f29e6cee7efa13094d4becf5528fa854..d98f43faaf7bc2a575cfa80907a776d9436bfbff 100644
--- a/en/application-dev/reference/apis/js-apis-useriam-userauth.md
+++ b/en/application-dev/reference/apis/js-apis-useriam-userauth.md
@@ -1,5 +1,7 @@
 # User Authentication
 
+The **userIAM.userAuth** module provides user authentication capabilities in identity authentication scenarios, such as device unlocking, payment, and app login.
+
 > **NOTE**<br>
 > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
@@ -10,26 +12,7 @@
 import userIAM_userAuth from '@ohos.userIAM.userAuth';
 ```
 
-## Example
-
-```js
-// API version 6
-import userIAM_userAuth from '@ohos.userIAM.userAuth';
-
-export default {
-    startAuth() {
-        console.info("start auth");
-        let auth = userIAM_userAuth.getAuthenticator();
-        auth.execute("FACE_ONLY", "S2").then((code)=>{
-            console.info("auth success");
-            // Add the logic to be executed when the authentication is successful.
-        }).catch((code)=>{
-            console.error("auth fail, code = " + code);
-            // Add the logic to be executed when the authentication fails.
-        });
-    }
-}
-```
+## Sample Code
 
 ```js
 // API version 8
@@ -106,133 +89,25 @@ export default {
 }
 ```
 
-## userIAM_userAuth.getAuthenticator<sup>(deprecated)</sup>
-
-getAuthenticator(): Authenticator
-
-> **NOTE**<br>
-> This API is not longer maintained since API version 8. You are advised to use [constructor](#constructor8).
-
-Obtains an **Authenticator** object for user authentication.
-
-**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
-
-**System capability**: SystemCapability.UserIAM.UserAuth.Core
-
-**Return value**
-| Type                                     | Description        |
-| ----------------------------------------- | ------------ |
-| [Authenticator](#authenticatordeprecated) | **Authenticator** object obtained.|
-
-**Example**
-  ```js
-  let authenticator = userIAM_userAuth.getAuthenticator();
-  ```
-
-## Authenticator<sup>(deprecated)</sup>
-
-> **NOTE**<br>
-> This object is not longer maintained since API version 8. You are advised to use [UserAuth](#userauth8).
-
-Provides methods to manage an **Authenticator** object.
-
-
-### execute<sup>(deprecated)</sup>
-
-execute(type: string, level: string, callback: AsyncCallback&lt;number&gt;): void
-
-> **NOTE**<br>
-> This API is not longer maintained since API version 8. You are advised to use [auth](#auth8).
-
-Performs user authentication. This API uses asynchronous callback to return the result.
-
-**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
-
-**System capability**: SystemCapability.UserIAM.UserAuth.Core
-
-**Parameters**
-
-| Name  | Type                       | Mandatory| Description                                                        |
-| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
-| type     | string                      | Yes  | Authentication type. Only **FACE_ONLY** is supported.<br>**ALL** is reserved and not supported by the current version.|
-| level    | string                      | Yes  | Security level of the authentication. It can be S1 (lowest), S2, S3, or S4 (highest).<br>Devices capable of 3D facial recognition support S3 and lower-level authentication.<br>Devices capable of 2D facial recognition support S2 and lower-level authentication.|
-| callback | AsyncCallback&lt;number&gt; | No  | Callback used to return the result.                                                  |
-
- Parameters returned in callback
-
-| Type  | Description                                                        |
-| ------ | ------------------------------------------------------------ |
-| number | Authentication result. For details, see [AuthenticationResult](#authenticationresultdeprecated).|
-
-**Example**
-  ```js
-  authenticator.execute("FACE_ONLY", "S2", (code)=>{
-      if (code == userIAM_userAuth.AuthenticationResult.SUCCESS) {
-          console.info("auth success");
-          return;
-      }
-      console.error("auth fail, code = " + code);
-  })
-  ```
-
-
-### execute<sup>(deprecated)</sup>
-
-execute(type:string, level:string): Promise&lt;number&gt;
-
-> **NOTE**<br>
-> This API is not longer maintained since API version 8. You are advised to use [auth](#auth8).
-
-Performs user authentication. This API uses a promise to return the result.
-
-**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
-
-**System capability**: SystemCapability.UserIAM.UserAuth.Core
-
-**Parameters**
-| Name| Type  | Mandatory| Description                                                        |
-| ------ | ------ | ---- | ------------------------------------------------------------ |
-| type   | string | Yes  | Authentication type. Only **FACE_ONLY** is supported.<br>**ALL** is reserved and not supported by the current version.|
-| level  | string | Yes  | Security level of the authentication. It can be S1 (lowest), S2, S3, or S4 (highest).<br>Devices capable of 3D facial recognition support S3 and lower-level authentication.<br>Devices capable of 2D facial recognition support S2 and lower-level authentication.|
-
-**Return value**
-| Type                 | Description                                                        |
-| --------------------- | ------------------------------------------------------------ |
-| Promise&lt;number&gt; | Promise used to return the authentication result, which is a number. For details, see [AuthenticationResult](#authenticationresultdeprecated).|
-
-**Example**
-
 ```js
-let authenticator = userIAM_userAuth.getAuthenticator();
-authenticator.execute("FACE_ONLY", "S2").then((code)=>{
-    console.info("auth success");
-}).catch((code)=>{
-    console.error("auth fail, code = " + code);
-});
-```
-
-## AuthenticationResult<sup>(deprecated)</sup>
-
-> **NOTE**<br>
-> This parameter is not longer maintained since API version 8. You are advised to use [ResultCode](#resultcode8).
-
-Enumerates the authentication results.
+// API version 6
+import userIAM_userAuth from '@ohos.userIAM.userAuth';
 
-**System capability**: SystemCapability.UserIAM.UserAuth.Core
+export default {
+    startAuth() {
+        console.info("start auth");
+        let auth = userIAM_userAuth.getAuthenticator();
+        auth.execute("FACE_ONLY", "S2").then((code)=>{
+            console.info("auth success");
+            // Add the logic to be executed when the authentication is successful.
+        }).catch((code)=>{
+            console.error("auth fail, code = " + code);
+            // Add the logic to be executed when the authentication fails.
+        });
+    }
+}
+```
 
-| Name              | Default Value| Description                      |
-| ------------------ | ------ | -------------------------- |
-| NO_SUPPORT         | -1     | The device does not support the current authentication mode.|
-| SUCCESS            | 0      | The authentication is successful.                |
-| COMPARE_FAILURE    | 1      | The feature comparison failed.                |
-| CANCELED           | 2      | The authentication was canceled by the user.            |
-| TIMEOUT            | 3      | The authentication has timed out.                |
-| CAMERA_FAIL        | 4      | The camera failed to start.            |
-| BUSY               | 5      | The authentication service is not available. Try again later.  |
-| INVALID_PARAMETERS | 6      | The authentication parameters are invalid.            |
-| LOCKED             | 7      | The user account is locked because the number of authentication failures has reached the threshold.|
-| NOT_ENROLLED       | 8      | No authentication credential is registered.          |
-| GENERAL_ERROR      | 100    | Other errors.                |
 
 ## UserAuth<sup>8+</sup>
 
@@ -607,3 +482,131 @@ Enumerates the trust levels of the authentication result.
 | ATL2 | 20000  | Trust level 2.|
 | ATL3 | 30000  | Trust level 3.|
 | ATL4 | 40000  | Trust level 4.|
+
+## userIAM_userAuth.getAuthenticator<sup>(deprecated)</sup>
+
+getAuthenticator(): Authenticator
+
+> **NOTE**<br>
+> This API is not longer maintained since API version 8. You are advised to use [constructor](#constructor8).
+
+Obtains an **Authenticator** object for user authentication.
+
+**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
+
+**System capability**: SystemCapability.UserIAM.UserAuth.Core
+
+**Return value**
+| Type                                     | Description        |
+| ----------------------------------------- | ------------ |
+| [Authenticator](#authenticatordeprecated) | **Authenticator** object obtained.|
+
+**Example**
+  ```js
+  let authenticator = userIAM_userAuth.getAuthenticator();
+  ```
+
+## Authenticator<sup>(deprecated)</sup>
+
+> **NOTE**<br>
+> This object is not longer maintained since API version 8. You are advised to use [UserAuth](#userauth8).
+
+Provides methods to manage an **Authenticator** object.
+
+
+### execute<sup>(deprecated)</sup>
+
+execute(type: string, level: string, callback: AsyncCallback&lt;number&gt;): void
+
+> **NOTE**<br>
+> This API is not longer maintained since API version 8. You are advised to use [auth](#auth8).
+
+Performs user authentication. This API uses asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
+
+**System capability**: SystemCapability.UserIAM.UserAuth.Core
+
+**Parameters**
+
+| Name  | Type                       | Mandatory| Description                                                        |
+| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| type     | string                      | Yes  | Authentication type. Only **FACE_ONLY** is supported.<br>**ALL** is reserved and not supported by the current version.|
+| level    | string                      | Yes  | Security level of the authentication. It can be S1 (lowest), S2, S3, or S4 (highest).<br>Devices capable of 3D facial recognition support S3 and lower-level authentication.<br>Devices capable of 2D facial recognition support S2 and lower-level authentication.|
+| callback | AsyncCallback&lt;number&gt; | No  | Callback used to return the result.                                                  |
+
+ Parameters returned in callback
+
+| Type  | Description                                                        |
+| ------ | ------------------------------------------------------------ |
+| number | Authentication result. For details, see [AuthenticationResult](#authenticationresultdeprecated).|
+
+**Example**
+  ```js
+  authenticator.execute("FACE_ONLY", "S2", (code)=>{
+      if (code == userIAM_userAuth.AuthenticationResult.SUCCESS) {
+          console.info("auth success");
+          return;
+      }
+      console.error("auth fail, code = " + code);
+  })
+  ```
+
+
+### execute<sup>(deprecated)</sup>
+
+execute(type:string, level:string): Promise&lt;number&gt;
+
+> **NOTE**<br>
+> This API is not longer maintained since API version 8. You are advised to use [auth](#auth8).
+
+Performs user authentication. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.ACCESS_BIOMETRIC
+
+**System capability**: SystemCapability.UserIAM.UserAuth.Core
+
+**Parameters**
+| Name| Type  | Mandatory| Description                                                        |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| type   | string | Yes  | Authentication type. Only **FACE_ONLY** is supported.<br>**ALL** is reserved and not supported by the current version.|
+| level  | string | Yes  | Security level of the authentication. It can be S1 (lowest), S2, S3, or S4 (highest).<br>Devices capable of 3D facial recognition support S3 and lower-level authentication.<br>Devices capable of 2D facial recognition support S2 and lower-level authentication.|
+
+**Return value**
+| Type                 | Description                                                        |
+| --------------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | Promise used to return the authentication result, which is a number. For details, see [AuthenticationResult](#authenticationresultdeprecated).|
+
+**Example**
+
+```js
+let authenticator = userIAM_userAuth.getAuthenticator();
+authenticator.execute("FACE_ONLY", "S2").then((code)=>{
+    console.info("auth success");
+}).catch((code)=>{
+    console.error("auth fail, code = " + code);
+});
+```
+
+## AuthenticationResult<sup>(deprecated)</sup>
+
+> **NOTE**<br>
+> This parameter is not longer maintained since API version 8. You are advised to use [ResultCode](#resultcode8).
+
+Enumerates the authentication results.
+
+**System capability**: SystemCapability.UserIAM.UserAuth.Core
+
+| Name              | Default Value| Description                      |
+| ------------------ | ------ | -------------------------- |
+| NO_SUPPORT         | -1     | The device does not support the current authentication mode.|
+| SUCCESS            | 0      | The authentication is successful.                |
+| COMPARE_FAILURE    | 1      | The feature comparison failed.                |
+| CANCELED           | 2      | The authentication was canceled by the user.            |
+| TIMEOUT            | 3      | The authentication has timed out.                |
+| CAMERA_FAIL        | 4      | The camera failed to start.            |
+| BUSY               | 5      | The authentication service is not available. Try again later.  |
+| INVALID_PARAMETERS | 6      | The authentication parameters are invalid.            |
+| LOCKED             | 7      | The user account is locked because the number of authentication failures has reached the threshold.|
+| NOT_ENROLLED       | 8      | No authentication credential is registered.          |
+| GENERAL_ERROR      | 100    | Other errors.                |
diff --git a/en/application-dev/reference/apis/js-apis-util.md b/en/application-dev/reference/apis/js-apis-util.md
index 2ac8daeb3799908d57a5b7a2c5fd456dcfee8f59..afa1c20bcd4eace98512772fb3cd7160d23a5b92 100755
--- a/en/application-dev/reference/apis/js-apis-util.md
+++ b/en/application-dev/reference/apis/js-apis-util.md
@@ -61,7 +61,7 @@ Obtains detailed information about a system error code.
 
 **Example**
   ```js
-  var errnum = 10; // 10 is the system error code.
+  var errnum = 10; // 10 is a system error code.
   var result = util.getErrorString(errnum);
   console.log("result = " + result);
   ```
@@ -91,23 +91,29 @@ Calls back an asynchronous function. In the callback, the first parameter indica
   async function promiseFn() {
       return Promise.reject('value');
   }
+  var err = "type err";
   var cb = util.callbackWrapper(promiseFn);
   cb((err, ret) => {
       console.log(err);
       console.log(ret);
-  })
+  }, err)
   ```
 
 
-## util.promiseWrapper
+## util.promiseWrapper<sup>(deprecated)</sup>
 
 promiseWrapper(original: (err: Object, value: Object) =&gt; void): Object
 
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use **[util.promisify9+](#utilpromisify9)** instead.
+
 Processes an asynchronous function and returns a promise version.
 
 **System capability**: SystemCapability.Utils.Lang
 
 **Parameters**
+
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
 | original | Function | Yes| Asynchronous function.|
@@ -119,19 +125,47 @@ Processes an asynchronous function and returns a promise version.
 
 **Example**
   ```js
-  function aysnFun(str1, str2, callback) {
-      if (typeof str1 === 'string' && typeof str2 === 'string') {
-          callback(null, str1 + str2);
-      } else {
-          callback('type err');
-      }
+  function aysnFun() {
+    return 0;
   }
-  let newPromiseObj = util.promiseWrapper(aysnFun)("Hello", 'World');
-  newPromiseObj.then(res => {
-      console.log(res);
+  let newPromiseObj = util.promiseWrapper(aysnFun);
+  newPromiseObj().then(res => {
+    console.log(res);
   })
   ```
 
+## util.promisify<sup>9+</sup>
+
+promisify(original: (err: Object, value: Object) =&gt; void): Function
+
+Processes an asynchronous function and returns a promise.
+
+**System capability**: SystemCapability.Utils.Lang
+
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| original | Function | Yes| Asynchronous function.|
+
+**Return value**
+| Type| Description|
+| -------- | -------- |
+| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.|
+
+**Example**
+  ```js
+  function aysnFun(str1, str2) {
+    if (typeof str1 === 'object' && typeof str2 === 'object') {
+      return str2
+    } else {
+      return str1
+    }
+  }
+  let newPromiseObj = util.promisify(aysnFun);
+  newPromiseObj({ err: "type error" }, {value:'HelloWorld'}).then(res => {
+    console.log(res);
+  })
+  ```
 
 ## TextDecoder
 
@@ -184,7 +218,7 @@ Decodes the input content.
 **Parameters**
 | Name| Type| Mandatory| Description|
 | -------- | -------- | -------- | -------- |
-| input | Unit8Array | Yes| Uint8Array to decode.|
+| input | Uint8Array | Yes| Uint8Array to decode.|
 | options | Object | No| Options related to decoding.|
 
   **Table 2** options
@@ -287,10 +321,11 @@ Stores the UTF-8 encoded text.
 
 **Example**
   ```js
-  var that = new util.TextEncoder();
-  var buffer = new ArrayBuffer(4);
-  this.dest = new Uint8Array(buffer);
-  var result = that.encodeInto("abcd", this.dest);
+  var that = new util.TextEncoder()
+  var buffer = new ArrayBuffer(4)
+  var dest = new Uint8Array(buffer)
+  var result = new Object()
+  result = that.encodeInto('abcd', dest)
   ```
 
 ## RationalNumber<sup>8+</sup>
@@ -337,7 +372,7 @@ Creates a **RationalNumber** object based on the given string.
 **Example**
   ```js
   var rationalNumber = new util.RationalNumber(1,2);
-  var rational = rationalNumer.creatRationalFromString("3/4");
+  var rational = util.RationalNumber.createRationalFromString("3/4");
   ```
 
 
@@ -362,7 +397,7 @@ Compares this **RationalNumber** object with a given object.
 **Example**
   ```js
   var rationalNumber = new util.RationalNumber(1,2);
-  var rational = rationalNumer.creatRationalFromString("3/4");
+  var rational = util.RationalNumber.createRationalFromString("3/4");
   var result = rationalNumber.compareTo(rational);
   ```
 
@@ -408,7 +443,7 @@ Checks whether this **RationalNumber** object equals the given object.
 **Example**
   ```js
   var rationalNumber = new util.RationalNumber(1,2);
-  var rational = rationalNumer.creatRationalFromString("3/4");
+  var rational = util.RationalNumber.createRationalFromString("3/4");
   var result = rationalNumber.equals(rational);
   ```
 
@@ -435,7 +470,7 @@ Obtains the greatest common divisor of two specified integers.
 **Example**
   ```js
   var rationalNumber = new util.RationalNumber(1,2);
-  var result = rationalNumber.getCommonDivisor(4,6);
+  var result = util.RationalNumber.getCommonDivisor(4,6);
   ```
 
 
@@ -672,7 +707,7 @@ Clears key-value pairs from this buffer. The **afterRemoval()** method will be c
   ```js
   var pro = new util.LruBuffer();
   pro.put(2,10);
-  var result = pro.size();
+  var result = pro.length;
   pro.clear();
   ```
 
@@ -954,14 +989,6 @@ Performs subsequent operations after a value is removed.
   	{
   		super();
   	}
-  	static getInstance()
-  	{
-  		if(this.instance ==  null)
-  		{
-  			this.instance = new ChildLruBuffer();
-  		}
-  		return this.instance;  
-  	}
   	afterRemoval(isEvict, key, value, newValue)
   	{
   		if (isEvict === false)
@@ -970,7 +997,8 @@ Performs subsequent operations after a value is removed.
   		}
   	}
   }
-  ChildLruBuffer.getInstance().afterRemoval(false,10,30,null);
+  var lru = new ChildLruBuffer();
+  lru.afterRemoval(false,10,30,null);
   ```
 
 
@@ -1063,7 +1091,7 @@ Obtains a two-dimensional array in key-value pairs.
   ```js
   var pro = new util.LruBuffer();
   pro.put(2,10);
-  var result = pro[symbol.iterator]();
+  var result = pro[Symbol.iterator]();
   ```
 
 
@@ -1551,7 +1579,7 @@ Encodes the input content asynchronously.
   var rarray = new Uint8Array([99,122,69,122]);
   that.encode(array).then(val=>{    
       for (var i = 0; i < rarray.length; i++) {        
-          console.log(val[i])
+          console.log(val[i].toString())
       }
   })
   ```
@@ -1610,7 +1638,7 @@ Decodes the input content asynchronously.
   var rarray = new Uint8Array([115,49,51]);
   that.decode(array).then(val=>{    
       for (var i = 0; i < rarray.length; i++) {        
-          console.log(val[i])
+          console.log(val[i].toString())
       }
   })
   ```
@@ -1654,7 +1682,7 @@ Checks whether the input value is of the **ArrayBuffer** type.
 **Example**
   ```js
   var that = new util.types();
-  var result = that.isAnyArrayBuffer(new ArrayBuffer([]));
+  var result = that.isAnyArrayBuffer(new ArrayBuffer(0));
   ```
 
 
@@ -1734,7 +1762,7 @@ Checks whether the input value is of the **ArrayBuffer** type.
 **Example**
   ```js
   var that = new util.types();
-  var result = that.isArrayBuffer(new ArrayBuffer([]));
+  var result = that.isArrayBuffer(new ArrayBuffer(0));
   ```
 
 
@@ -1885,8 +1913,7 @@ Checks whether the input value is of the **native external** type.
 **Example**
   ```js
   var that = new util.types();
-  const data = util.createExternalType();
-  var result = that.isExternal(data);
+  var result = that.isExternal(true);
   ```
 
 
diff --git a/en/application-dev/reference/apis/js-apis-wallpaper.md b/en/application-dev/reference/apis/js-apis-wallpaper.md
index 75dda908af3e32140bf7c94b92ff73117be0ad7e..15fd2c4fcdeb681b4ace2dc49d521f54e08014f5 100644
--- a/en/application-dev/reference/apis/js-apis-wallpaper.md
+++ b/en/application-dev/reference/apis/js-apis-wallpaper.md
@@ -1,7 +1,9 @@
 # Wallpaper
 
 
-> **NOTE**<br>The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
 ## Modules to Import
@@ -465,7 +467,7 @@ Sets a specified source as the wallpaper of a specified type. This API uses an a
   }).catch((error) => {       
       console.error(`failed to createPixelMap because: ` + JSON.stringify(error));
   });
-  ```
+```
 
 
 ## wallpaper.setWallpaper
@@ -520,7 +522,7 @@ Sets a specified source as the wallpaper of a specified type. This API uses a pr
   }).catch((error) => {       
       console.error(`failed to createPixelMap because: ` + JSON.stringify(error));
   });
-  ```
+```
 
 ## wallpaper.getFile<sup>8+</sup>
 
@@ -528,7 +530,7 @@ getFile(wallpaperType: WallpaperType, callback: AsyncCallback&lt;number&gt;): vo
 
 Obtains the wallpaper of the specified type. This API uses an asynchronous callback to return the result.
 
-**Required permissions**: ohos.permission.SET_WALLPAPER and ohos.permission.READ_USER_STORAGE
+**Required permissions**: ohos.permission.GET_WALLPAPER and ohos.permission.READ_USER_STORAGE
 
 **System capability**: SystemCapability.MiscServices.Wallpaper
 
@@ -557,7 +559,7 @@ getFile(wallpaperType: WallpaperType): Promise&lt;number&gt;
 
 Obtains the wallpaper of the specified type. This API uses a promise to return the result.
 
-**Required permissions**: ohos.permission.SET_WALLPAPER and ohos.permission.READ_USER_STORAGE
+**Required permissions**: ohos.permission.GET_WALLPAPER and ohos.permission.READ_USER_STORAGE
 
 **System capability**: SystemCapability.MiscServices.Wallpaper
 
@@ -636,7 +638,7 @@ Obtains the pixel image for the wallpaper of the specified type. This API uses a
 **Example**
 
   ```js
-  wallpaper.getPixelMap(WALLPAPER_SYSTEM).then((data) => {
+  wallpaper.getPixelMap(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
       console.info('wallpaperXTS ===> testGetPixelMapPromiseSystem data : ' + data);
       console.info('wallpaperXTS ===> testGetPixelMapPromiseSystem data : ' + JSON.stringify(data));
   }).catch((err) => {
@@ -695,9 +697,9 @@ Unsubscribes from the wallpaper color change event.
   wallpaper.on('colorChange', listener);
 // Unsubscribe from the listener.
 wallpaper.off('colorChange', listener);
-//Unsubscribe from all subscriptions of the colorChange type.
+// Unsubscribe from all subscriptions of the colorChange type.
 wallpaper.off('colorChange');
-```
+  ```
 
 
 ## RgbaColor
diff --git a/en/application-dev/reference/apis/js-apis-wantAgent.md b/en/application-dev/reference/apis/js-apis-wantAgent.md
index c6a89b78715f1a819cd04a11f67a0609a98aa4f9..5421d20c5fc129c726f31deaae6610d2bdc28d2e 100644
--- a/en/application-dev/reference/apis/js-apis-wantAgent.md
+++ b/en/application-dev/reference/apis/js-apis-wantAgent.md
@@ -1,5 +1,7 @@
 # WantAgent
 
+The **WantAgent** module provides APIs for triggering, canceling, and comparing **WantAgent** objects. You can use the APIs to create a **WantAgent** object, and obtain the user ID, bundle name, and want information of the object.
+
 > **NOTE**
 > 
 > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
@@ -418,6 +420,8 @@ Obtains the want in a **WantAgent** object. This API uses an asynchronous callba
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name    | Readable| Writable| Type                 | Mandatory| Description                           |
@@ -490,6 +494,8 @@ Obtains the want in a **WantAgent** object. This API uses a promise to return th
 
 **System capability**: SystemCapability.Ability.AbilityRuntime.Core
 
+**System API**: This is a system API and cannot be called by third-party applications.
+
 **Parameters**
 
 | Name | Readable| Writable| Type     | Mandatory| Description         |
@@ -704,7 +710,7 @@ Triggers a **WantAgent** object. This API uses an asynchronous callback to retur
 
 | Name       | Readable| Writable| Type                         | Mandatory| Description                           |
 | ----------- | --- | ---- | ----------------------------- | ---- | ------------------------------- |
-| agent       | Yes  | No | WantAgent                     | Yes  | **WantAgent** object to trigger.                  |
+| agent       | Yes  | No | WantAgent                     | Yes  | Target **WantAgent** object.                  |
 | triggerInfo | Yes  | No | TriggerInfo                   | Yes  | **TriggerInfo** object.                |
 | callback    | Yes  | No | AsyncCallback\<CompleteData\> | Yes  | Callback used to return the result.|
 
@@ -1052,7 +1058,7 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => {
 | Name          | Readable| Writable| Type                           | Mandatory| Description                  |
 | -------------- | --- | ---- | ------------------------------- | ---- | ---------------------- |
 | wants          | Yes | Yes | Array\<Want\>                   | Yes  | Array of all **Want** objects.    |
-| operationType  | Yes | Yes | wantAgent.OperationType         | Yes  | Action type.              |
+| operationType  | Yes | Yes | wantAgent.OperationType         | Yes  | Operation type.              |
 | requestCode    | Yes | Yes | number                          | Yes  | Request code defined by the user.|
 | wantAgentFlags | Yes | Yes | Array<wantAgent.WantAgentFlags> | No  | Array of flags for using the **WantAgent** object.          |
 | extraInfo      | Yes | Yes | {[key: string]: any}            | No  | Extra information.              |
diff --git a/en/application-dev/reference/apis/js-apis-webgl.md b/en/application-dev/reference/apis/js-apis-webgl.md
index e71562765f7b0a4330cfce26a8c57f835f8ed055..95738321bc5717e97657191b416e3ceca220d75d 100644
--- a/en/application-dev/reference/apis/js-apis-webgl.md
+++ b/en/application-dev/reference/apis/js-apis-webgl.md
@@ -1,11 +1,13 @@
-# webgl
-
->  **NOTE**<br/>
-> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+# WebGL
 
+The **WebGL** module provides the graphics drawing capability, such as processing the graphics position and color.
 
 This module provides WebGL APIs that correspond to the OpenGL ES 2.0 feature set. For more information, see [WebGLâ„¢](https://www.khronos.org/registry/webgl/specs/latest/1.0/).
 
+>  **NOTE**
+>
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
 
 ## Invoking Method
 
@@ -37,7 +39,7 @@ gl.clearColor(0.0, 0.0, 0.0, 1.0);
 
 **System capability**: SystemCapability.Graphic.Graphic2D.WebGL
 
-  **Table 1** Type
+**Table 1** Type
 
 | Name| Type| 
 | -------- | -------- |
@@ -61,11 +63,11 @@ gl.clearColor(0.0, 0.0, 0.0, 1.0);
 | WebGLPowerPreference | string |
 
 
-## Interface
+## APIs
 
 **System capability**: SystemCapability.Graphic.Graphic2D.WebGL
 
-  **Table 2** Interface
+**Table 2** APIs
 
 | Name|
 | -------- |
@@ -566,7 +568,7 @@ WebGLRenderingContextOverloads
 | bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource) | void | 
 | compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView) | void | 
 | compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView) | void | 
-| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void | 
+| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void; | 
 | texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void | 
 | texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void | 
 | texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void | 
diff --git a/en/application-dev/reference/apis/js-apis-webgl2.md b/en/application-dev/reference/apis/js-apis-webgl2.md
index 386d1c53dad0df97a9fd0fbbeac33aec45492d5c..0052505dfb6d127a7081b35b01f3b302b74b2deb 100644
--- a/en/application-dev/reference/apis/js-apis-webgl2.md
+++ b/en/application-dev/reference/apis/js-apis-webgl2.md
@@ -1,11 +1,13 @@
-# webgl2
-
->  **NOTE**<br/>
-> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+# WebGL2
 
+The **WebGL2** module supports graphics drawing, such as processing the graphics position and color. WebGL2 provides enhanced capabilities in the rendering pipeline and shader language than WebGL.
 
 This module provides WebGL APIs that correspond to the OpenGL ES 3.0 feature set. For more information, see [WebGLâ„¢](https://www.khronos.org/registry/webgl/specs/latest/2.0/).
 
+>  **NOTE**
+>
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
 
 ## Invoking Method
 
@@ -37,7 +39,7 @@ gl.clearColor(0.0, 0.0, 0.0, 1.0);
 
 **System capability**: SystemCapability.Graphic.Graphic2D.WebGL2
 
-  **Table 1** Type
+**Table 1** Type
 
 | Name| Type|
 | -------- | -------- |
@@ -47,11 +49,11 @@ gl.clearColor(0.0, 0.0, 0.0, 1.0);
 | Uint32List | array |
 
 
-## Interface
+## APIs
 
 **System capability**: SystemCapability.Graphic.Graphic2D.WebGL2
 
-  **Table 2** Interface
+**Table 2** APIs
 
 | Name|
 | -------- |
@@ -71,409 +73,409 @@ WebGL2RenderingContextBase
 
 ### Attributes
 
-  | Name| Type| Mandatory| 
+| Name| Type| Mandatory|
 | -------- | -------- | -------- |
-| READ_BUFFER | GLenum | Yes| 
-| UNPACK_ROW_LENGTH | GLenum | Yes| 
-| UNPACK_SKIP_ROWS | GLenum | Yes| 
-| UNPACK_SKIP_PIXELS | GLenum | Yes| 
-| PACK_ROW_LENGTH | GLenum | Yes| 
-| PACK_SKIP_ROWS | GLenum | Yes| 
-| PACK_SKIP_PIXELS | GLenum | Yes| 
-| COLOR | GLenum | Yes| 
-| DEPTH | GLenum | Yes| 
-| STENCIL | GLenum | Yes| 
-| RED | GLenum | Yes| 
-| RGB8 | GLenum | Yes| 
-| RGBA8 | GLenum | Yes| 
-| RGB10_A2 | GLenum | Yes| 
-| TEXTURE_BINDING_3D | GLenum | Yes| 
-| UNPACK_SKIP_IMAGES | GLenum | Yes| 
-| UNPACK_IMAGE_HEIGHT | GLenum | Yes| 
-| TEXTURE_3D | GLenum | Yes| 
-| TEXTURE_WRAP_R | GLenum | Yes| 
-| MAX_3D_TEXTURE_SIZE | GLenum | Yes| 
-| UNSIGNED_INT_2_10_10_10_REV | GLenum | Yes| 
-| MAX_ELEMENTS_VERTICES | GLenum | Yes| 
-| MAX_ELEMENTS_INDICES | GLenum | Yes| 
-| TEXTURE_MIN_LOD | GLenum | Yes| 
-| TEXTURE_MAX_LOD | GLenum | Yes| 
-| TEXTURE_BASE_LEVEL | GLenum | Yes| 
-| TEXTURE_MAX_LEVEL | GLenum | Yes| 
-| MIN | GLenum | Yes| 
-| MAX | GLenum | Yes| 
-| DEPTH_COMPONENT24 | GLenum | Yes| 
-| MAX_TEXTURE_LOD_BIAS | GLenum | Yes| 
-| TEXTURE_COMPARE_MODE | GLenum | Yes| 
-| TEXTURE_COMPARE_FUNC | GLenum | Yes| 
-| CURRENT_QUERY | GLenum | Yes| 
-| QUERY_RESULT | GLenum | Yes| 
-| QUERY_RESULT_AVAILABLE | GLenum | Yes| 
-| STREAM_READ | GLenum | Yes| 
-| STREAM_COPY | GLenum | Yes| 
-| STATIC_READ | GLenum | Yes| 
-| STATIC_COPY | GLenum | Yes| 
-| DYNAMIC_READ | GLenum | Yes| 
-| DYNAMIC_COPY | GLenum | Yes| 
-| MAX_DRAW_BUFFERS | GLenum | Yes| 
-| DRAW_BUFFER0 | GLenum | Yes| 
-| DRAW_BUFFER1 | GLenum | Yes| 
-| DRAW_BUFFER2 | GLenum | Yes| 
-| DRAW_BUFFER3 | GLenum | Yes| 
-| DRAW_BUFFER4 | GLenum | Yes| 
-| DRAW_BUFFER5 | GLenum | Yes| 
-| DRAW_BUFFER6 | GLenum | Yes| 
-| DRAW_BUFFER7 | GLenum | Yes| 
-| DRAW_BUFFER8 | GLenum | Yes| 
-| DRAW_BUFFER9 | GLenum | Yes| 
-| DRAW_BUFFER10 | GLenum | Yes| 
-| DRAW_BUFFER11 | GLenum | Yes| 
-| DRAW_BUFFER12 | GLenum | Yes| 
-| DRAW_BUFFER13 | GLenum | Yes| 
-| DRAW_BUFFER14 | GLenum | Yes| 
-| DRAW_BUFFER15 | GLenum | Yes| 
-| MAX_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes| 
-| MAX_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes| 
-| SAMPLER_3D | GLenum | Yes| 
-| SAMPLER_2D_SHADOW | GLenum | Yes| 
-| FRAGMENT_SHADER_DERIVATIVE_HINT | GLenum | Yes| 
-| PIXEL_PACK_BUFFER | GLenum | Yes| 
-| PIXEL_UNPACK_BUFFER | GLenum | Yes| 
-| PIXEL_PACK_BUFFER_BINDING | GLenum | Yes| 
-| PIXEL_UNPACK_BUFFER_BINDING | GLenum | Yes| 
-| FLOAT_MAT2x3 | GLenum | Yes| 
-| FLOAT_MAT2x4 | GLenum | Yes| 
-| FLOAT_MAT3x2 | GLenum | Yes| 
-| FLOAT_MAT3x4 | GLenum | Yes| 
-| FLOAT_MAT4x2 | GLenum | Yes| 
-| FLOAT_MAT4x3 | GLenum | Yes| 
-| SRGB | GLenum | Yes| 
-| SRGB8 | GLenum | Yes| 
-| SRGB8_ALPHA8 | GLenum | Yes| 
-| COMPARE_REF_TO_TEXTURE | GLenum | Yes| 
-| RGBA32F | GLenum | Yes| 
-| RGB32F | GLenum | Yes| 
-| RGBA16F | GLenum | Yes| 
-| RGB16F | GLenum | Yes| 
-| VERTEX_ATTRIB_ARRAY_INTEGER | GLenum | Yes| 
-| MAX_ARRAY_TEXTURE_LAYERS | GLenum | Yes| 
-| MIN_PROGRAM_TEXEL_OFFSET | GLenum | Yes| 
-| MAX_PROGRAM_TEXEL_OFFSET | GLenum | Yes| 
-| MAX_VARYING_COMPONENTS | GLenum | Yes| 
-| TEXTURE_2D_ARRAY | GLenum | Yes| 
-| TEXTURE_BINDING_2D_ARRAY | GLenum | Yes| 
-| R11F_G11F_B10F | GLenum | Yes| 
-| UNSIGNED_INT_10F_11F_11F_REV | GLenum | Yes| 
-| RGB9_E5 | GLenum | Yes| 
-| UNSIGNED_INT_5_9_9_9_REV | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BUFFER_MODE | GLenum | Yes| 
-| MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_VARYINGS | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BUFFER_START | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BUFFER_SIZE | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | GLenum | Yes| 
-| RASTERIZER_DISCARD | GLenum | Yes| 
-| MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | GLenum | Yes| 
-| MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | GLenum | Yes| 
-| INTERLEAVED_ATTRIBS | GLenum | Yes| 
-| SEPARATE_ATTRIBS | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BUFFER | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BUFFER_BINDING | GLenum | Yes| 
-| RGBA32UI | GLenum | Yes| 
-| RGB32UI | GLenum | Yes| 
-| RGBA16UI | GLenum | Yes| 
-| RGB16UI | GLenum | Yes| 
-| RGBA8UI | GLenum | Yes| 
-| RGB8UI | GLenum | Yes| 
-| RGBA32I | GLenum | Yes| 
-| RGB32I | GLenum | Yes| 
-| RGBA16I | GLenum | Yes| 
-| RGB16I | GLenum | Yes| 
-| RGBA8I | GLenum | Yes| 
-| RGB8I | GLenum | Yes| 
-| RED_INTEGER | GLenum | Yes| 
-| RGB_INTEGER | GLenum | Yes| 
-| RGBA_INTEGER | GLenum | Yes| 
-| SAMPLER_2D_ARRAY | GLenum | Yes| 
-| SAMPLER_2D_ARRAY_SHADOW | GLenum | Yes| 
-| SAMPLER_CUBE_SHADOW | GLenum | Yes| 
-| UNSIGNED_INT_VEC2 | GLenum | Yes| 
-| UNSIGNED_INT_VEC3 | GLenum | Yes| 
-| UNSIGNED_INT_VEC4 | GLenum | Yes| 
-| INT_SAMPLER_2D | GLenum | Yes| 
-| INT_SAMPLER_3D | GLenum | Yes| 
-| INT_SAMPLER_CUBE | GLenum | Yes| 
-| INT_SAMPLER_2D_ARRAY | GLenum | Yes| 
-| UNSIGNED_INT_SAMPLER_2D | GLenum | Yes| 
-| UNSIGNED_INT_SAMPLER_3D | GLenum | Yes| 
-| UNSIGNED_INT_SAMPLER_CUBE | GLenum | Yes| 
-| UNSIGNED_INT_SAMPLER_2D_ARRAY | GLenum | Yes| 
-| DEPTH_COMPONENT32F | GLenum | Yes| 
-| DEPTH32F_STENCIL8 | GLenum | Yes| 
-| FLOAT_32_UNSIGNED_INT_24_8_REV | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_RED_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | GLenum | Yes| 
-| FRAMEBUFFER_DEFAULT | GLenum | Yes| 
-| UNSIGNED_INT_24_8 | GLenum | Yes| 
-| DEPTH24_STENCIL8 | GLenum | Yes| 
-| UNSIGNED_NORMALIZED | GLenum | Yes| 
-| DRAW_FRAMEBUFFER_BINDING | GLenum | Yes| 
-| READ_FRAMEBUFFER | GLenum | Yes| 
-| DRAW_FRAMEBUFFER | GLenum | Yes| 
-| READ_FRAMEBUFFER_BINDING | GLenum | Yes| 
-| RENDERBUFFER_SAMPLES | GLenum | Yes| 
-| FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | GLenum | Yes| 
-| MAX_COLOR_ATTACHMENTS | GLenum | Yes| 
-| COLOR_ATTACHMENT1 | GLenum | Yes| 
-| COLOR_ATTACHMENT2 | GLenum | Yes| 
-| COLOR_ATTACHMENT3 | GLenum | Yes| 
-| COLOR_ATTACHMENT4 | GLenum | Yes| 
-| COLOR_ATTACHMENT5 | GLenum | Yes| 
-| COLOR_ATTACHMENT6 | GLenum | Yes| 
-| COLOR_ATTACHMENT7 | GLenum | Yes| 
-| COLOR_ATTACHMENT8 | GLenum | Yes| 
-| COLOR_ATTACHMENT9 | GLenum | Yes| 
-| COLOR_ATTACHMENT10 | GLenum | Yes| 
-| COLOR_ATTACHMENT11 | GLenum | Yes| 
-| COLOR_ATTACHMENT12 | GLenum | Yes| 
-| COLOR_ATTACHMENT13 | GLenum | Yes| 
-| COLOR_ATTACHMENT14 | GLenum | Yes| 
-| COLOR_ATTACHMENT15 | GLenum | Yes| 
-| FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | GLenum | Yes| 
-| MAX_SAMPLES | GLenum | Yes| 
-| HALF_FLOAT | GLenum | Yes| 
-| RG | GLenum | Yes| 
-| RG_INTEGER | GLenum | Yes| 
-| R8 | GLenum | Yes| 
-| RG8 | GLenum | Yes| 
-| R16F | GLenum | Yes| 
-| R32F | GLenum | Yes| 
-| RG16F | GLenum | Yes| 
-| RG32F | GLenum | Yes| 
-| R8I | GLenum | Yes| 
-| R8UI | GLenum | Yes| 
-| R16I | GLenum | Yes| 
-| R16UI | GLenum | Yes| 
-| R32I | GLenum | Yes| 
-| R32UI | GLenum | Yes| 
-| RG8I | GLenum | Yes| 
-| RG8UI | GLenum | Yes| 
-| RG16I | GLenum | Yes| 
-| RG16UI | GLenum | Yes| 
-| RG32I | GLenum | Yes| 
-| RG32UI | GLenum | Yes| 
-| VERTEX_ARRAY_BINDING | GLenum | Yes| 
-| R8_SNORM | GLenum | Yes| 
-| RG8_SNORM | GLenum | Yes| 
-| RGB8_SNORM | GLenum | Yes| 
-| SIGNED_NORMALIZED | GLenum | Yes| 
-| COPY_READ_BUFFER | GLenum | Yes| 
-| COPY_WRITE_BUFFER | GLenum | Yes| 
-| COPY_READ_BUFFER_BINDING | GLenum | Yes| 
-| COPY_WRITE_BUFFER_BINDING | GLenum | Yes| 
-| UNIFORM_BUFFER | GLenum | Yes| 
-| UNIFORM_BUFFER_BINDING | GLenum | Yes| 
-| UNIFORM_BUFFER_START | GLenum | Yes| 
-| UNIFORM_BUFFER_SIZE | GLenum | Yes| 
-| MAX_VERTEX_UNIFORM_BLOCKS | GLenum | Yes| 
-| MAX_FRAGMENT_UNIFORM_BLOCKS | GLenum | Yes| 
-| MAX_COMBINED_UNIFORM_BLOCKS | GLenum | Yes| 
-| MAX_UNIFORM_BUFFER_BINDINGS | GLenum | Yes| 
-| MAX_UNIFORM_BLOCK_SIZE | GLenum | Yes| 
-| MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes| 
-| MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes| 
-| UNIFORM_BUFFER_OFFSET_ALIGNMENT | GLenum | Yes| 
-| ACTIVE_UNIFORM_BLOCKS | GLenum | Yes| 
-| UNIFORM_TYPE | GLenum | Yes| 
-| UNIFORM_SIZE | GLenum | Yes| 
-| UNIFORM_BLOCK_INDEX | GLenum | Yes| 
-| UNIFORM_OFFSET | GLenum | Yes| 
-| UNIFORM_ARRAY_STRIDE | GLenum | Yes| 
-| UNIFORM_MATRIX_STRIDE | GLenum | Yes| 
-| UNIFORM_IS_ROW_MAJOR | GLenum | Yes| 
-| UNIFORM_BLOCK_BINDING | GLenum | Yes| 
-| UNIFORM_BLOCK_DATA_SIZE | GLenum | Yes| 
-| UNIFORM_BLOCK_ACTIVE_UNIFORMS | GLenum | Yes| 
-| UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | GLenum | Yes| 
-| UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | GLenum | Yes| 
-| UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | GLenum | Yes| 
-| INVALID_INDEX | GLenum | Yes| 
-| MAX_VERTEX_OUTPUT_COMPONENTS | GLenum | Yes| 
-| MAX_FRAGMENT_INPUT_COMPONENTS | GLenum | Yes| 
-| MAX_SERVER_WAIT_TIMEOUT | GLenum | Yes| 
-| OBJECT_TYPE | GLenum | Yes| 
-| SYNC_CONDITION | GLenum | Yes| 
-| SYNC_STATUS | GLenum | Yes| 
-| SYNC_FLAGS | GLenum | Yes| 
-| SYNC_FENCE | GLenum | Yes| 
-| SYNC_GPU_COMMANDS_COMPLETE | GLenum | Yes| 
-| UNSIGNALED | GLenum | Yes| 
-| SIGNALED | GLenum | Yes| 
-| ALREADY_SIGNALED | GLenum | Yes| 
-| TIMEOUT_EXPIRED | GLenum | Yes| 
-| CONDITION_SATISFIED | GLenum | Yes| 
-| WAIT_FAILED | GLenum | Yes| 
-| SYNC_FLUSH_COMMANDS_BIT | GLenum | Yes| 
-| VERTEX_ATTRIB_ARRAY_DIVISOR | GLenum | Yes| 
-| ANY_SAMPLES_PASSED | GLenum | Yes| 
-| ANY_SAMPLES_PASSED_CONSERVATIVE | GLenum | Yes| 
-| SAMPLER_BINDING | GLenum | Yes| 
-| RGB10_A2UI | GLenum | Yes| 
-| INT_2_10_10_10_REV | GLenum | Yes| 
-| TRANSFORM_FEEDBACK | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_PAUSED | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_ACTIVE | GLenum | Yes| 
-| TRANSFORM_FEEDBACK_BINDING | GLenum | Yes| 
-| TEXTURE_IMMUTABLE_FORMAT | GLenum | Yes| 
-| MAX_ELEMENT_INDEX | GLenum | Yes| 
-| TEXTURE_IMMUTABLE_LEVELS | GLenum | Yes| 
-| TIMEOUT_IGNORED | GLint64 | Yes| 
-| MAX_CLIENT_WAIT_TIMEOUT_WEBGL | GLenum | Yes| 
+| READ_BUFFER | GLenum | Yes|
+| UNPACK_ROW_LENGTH | GLenum | Yes|
+| UNPACK_SKIP_ROWS | GLenum | Yes|
+| UNPACK_SKIP_PIXELS | GLenum | Yes|
+| PACK_ROW_LENGTH | GLenum | Yes|
+| PACK_SKIP_ROWS | GLenum | Yes|
+| PACK_SKIP_PIXELS | GLenum | Yes|
+| COLOR | GLenum | Yes|
+| DEPTH | GLenum | Yes|
+| STENCIL | GLenum | Yes|
+| RED | GLenum | Yes|
+| RGB8 | GLenum | Yes|
+| RGBA8 | GLenum | Yes|
+| RGB10_A2 | GLenum | Yes|
+| TEXTURE_BINDING_3D | GLenum | Yes|
+| UNPACK_SKIP_IMAGES | GLenum | Yes|
+| UNPACK_IMAGE_HEIGHT | GLenum | Yes|
+| TEXTURE_3D | GLenum | Yes|
+| TEXTURE_WRAP_R | GLenum | Yes|
+| MAX_3D_TEXTURE_SIZE | GLenum | Yes|
+| UNSIGNED_INT_2_10_10_10_REV | GLenum | Yes|
+| MAX_ELEMENTS_VERTICES | GLenum | Yes|
+| MAX_ELEMENTS_INDICES | GLenum | Yes|
+| TEXTURE_MIN_LOD | GLenum | Yes|
+| TEXTURE_MAX_LOD | GLenum | Yes|
+| TEXTURE_BASE_LEVEL | GLenum | Yes|
+| TEXTURE_MAX_LEVEL | GLenum | Yes|
+| MIN | GLenum | Yes|
+| MAX | GLenum | Yes|
+| DEPTH_COMPONENT24 | GLenum | Yes|
+| MAX_TEXTURE_LOD_BIAS | GLenum | Yes|
+| TEXTURE_COMPARE_MODE | GLenum | Yes|
+| TEXTURE_COMPARE_FUNC | GLenum | Yes|
+| CURRENT_QUERY | GLenum | Yes|
+| QUERY_RESULT | GLenum | Yes|
+| QUERY_RESULT_AVAILABLE | GLenum | Yes|
+| STREAM_READ | GLenum | Yes|
+| STREAM_COPY | GLenum | Yes|
+| STATIC_READ | GLenum | Yes|
+| STATIC_COPY | GLenum | Yes|
+| DYNAMIC_READ | GLenum | Yes|
+| DYNAMIC_COPY | GLenum | Yes|
+| MAX_DRAW_BUFFERS | GLenum | Yes|
+| DRAW_BUFFER0 | GLenum | Yes|
+| DRAW_BUFFER1 | GLenum | Yes|
+| DRAW_BUFFER2 | GLenum | Yes|
+| DRAW_BUFFER3 | GLenum | Yes|
+| DRAW_BUFFER4 | GLenum | Yes|
+| DRAW_BUFFER5 | GLenum | Yes|
+| DRAW_BUFFER6 | GLenum | Yes|
+| DRAW_BUFFER7 | GLenum | Yes|
+| DRAW_BUFFER8 | GLenum | Yes|
+| DRAW_BUFFER9 | GLenum | Yes|
+| DRAW_BUFFER10 | GLenum | Yes|
+| DRAW_BUFFER11 | GLenum | Yes|
+| DRAW_BUFFER12 | GLenum | Yes|
+| DRAW_BUFFER13 | GLenum | Yes|
+| DRAW_BUFFER14 | GLenum | Yes|
+| DRAW_BUFFER15 | GLenum | Yes|
+| MAX_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes|
+| MAX_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes|
+| SAMPLER_3D | GLenum | Yes|
+| SAMPLER_2D_SHADOW | GLenum | Yes|
+| FRAGMENT_SHADER_DERIVATIVE_HINT | GLenum | Yes|
+| PIXEL_PACK_BUFFER | GLenum | Yes|
+| PIXEL_UNPACK_BUFFER | GLenum | Yes|
+| PIXEL_PACK_BUFFER_BINDING | GLenum | Yes|
+| PIXEL_UNPACK_BUFFER_BINDING | GLenum | Yes|
+| FLOAT_MAT2x3 | GLenum | Yes|
+| FLOAT_MAT2x4 | GLenum | Yes|
+| FLOAT_MAT3x2 | GLenum | Yes|
+| FLOAT_MAT3x4 | GLenum | Yes|
+| FLOAT_MAT4x2 | GLenum | Yes|
+| FLOAT_MAT4x3 | GLenum | Yes|
+| SRGB | GLenum | Yes|
+| SRGB8 | GLenum | Yes|
+| SRGB8_ALPHA8 | GLenum | Yes|
+| COMPARE_REF_TO_TEXTURE | GLenum | Yes|
+| RGBA32F | GLenum | Yes|
+| RGB32F | GLenum | Yes|
+| RGBA16F | GLenum | Yes|
+| RGB16F | GLenum | Yes|
+| VERTEX_ATTRIB_ARRAY_INTEGER | GLenum | Yes|
+| MAX_ARRAY_TEXTURE_LAYERS | GLenum | Yes|
+| MIN_PROGRAM_TEXEL_OFFSET | GLenum | Yes|
+| MAX_PROGRAM_TEXEL_OFFSET | GLenum | Yes|
+| MAX_VARYING_COMPONENTS | GLenum | Yes|
+| TEXTURE_2D_ARRAY | GLenum | Yes|
+| TEXTURE_BINDING_2D_ARRAY | GLenum | Yes|
+| R11F_G11F_B10F | GLenum | Yes|
+| UNSIGNED_INT_10F_11F_11F_REV | GLenum | Yes|
+| RGB9_E5 | GLenum | Yes|
+| UNSIGNED_INT_5_9_9_9_REV | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BUFFER_MODE | GLenum | Yes|
+| MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | GLenum | Yes|
+| TRANSFORM_FEEDBACK_VARYINGS | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BUFFER_START | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BUFFER_SIZE | GLenum | Yes|
+| TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | GLenum | Yes|
+| RASTERIZER_DISCARD | GLenum | Yes|
+| MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | GLenum | Yes|
+| MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | GLenum | Yes|
+| INTERLEAVED_ATTRIBS | GLenum | Yes|
+| SEPARATE_ATTRIBS | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BUFFER | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BUFFER_BINDING | GLenum | Yes|
+| RGBA32UI | GLenum | Yes|
+| RGB32UI | GLenum | Yes|
+| RGBA16UI | GLenum | Yes|
+| RGB16UI | GLenum | Yes|
+| RGBA8UI | GLenum | Yes|
+| RGB8UI | GLenum | Yes|
+| RGBA32I | GLenum | Yes|
+| RGB32I | GLenum | Yes|
+| RGBA16I | GLenum | Yes|
+| RGB16I | GLenum | Yes|
+| RGBA8I | GLenum | Yes|
+| RGB8I | GLenum | Yes|
+| RED_INTEGER | GLenum | Yes|
+| RGB_INTEGER | GLenum | Yes|
+| RGBA_INTEGER | GLenum | Yes|
+| SAMPLER_2D_ARRAY | GLenum | Yes|
+| SAMPLER_2D_ARRAY_SHADOW | GLenum | Yes|
+| SAMPLER_CUBE_SHADOW | GLenum | Yes|
+| UNSIGNED_INT_VEC2 | GLenum | Yes|
+| UNSIGNED_INT_VEC3 | GLenum | Yes|
+| UNSIGNED_INT_VEC4 | GLenum | Yes|
+| INT_SAMPLER_2D | GLenum | Yes|
+| INT_SAMPLER_3D | GLenum | Yes|
+| INT_SAMPLER_CUBE | GLenum | Yes|
+| INT_SAMPLER_2D_ARRAY | GLenum | Yes|
+| UNSIGNED_INT_SAMPLER_2D | GLenum | Yes|
+| UNSIGNED_INT_SAMPLER_3D | GLenum | Yes|
+| UNSIGNED_INT_SAMPLER_CUBE | GLenum | Yes|
+| UNSIGNED_INT_SAMPLER_2D_ARRAY | GLenum | Yes|
+| DEPTH_COMPONENT32F | GLenum | Yes|
+| DEPTH32F_STENCIL8 | GLenum | Yes|
+| FLOAT_32_UNSIGNED_INT_24_8_REV | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_RED_SIZE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | GLenum | Yes|
+| FRAMEBUFFER_DEFAULT | GLenum | Yes|
+| UNSIGNED_INT_24_8 | GLenum | Yes|
+| DEPTH24_STENCIL8 | GLenum | Yes|
+| UNSIGNED_NORMALIZED | GLenum | Yes|
+| DRAW_FRAMEBUFFER_BINDING | GLenum | Yes|
+| READ_FRAMEBUFFER | GLenum | Yes|
+| DRAW_FRAMEBUFFER | GLenum | Yes|
+| READ_FRAMEBUFFER_BINDING | GLenum | Yes|
+| RENDERBUFFER_SAMPLES | GLenum | Yes|
+| FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | GLenum | Yes|
+| MAX_COLOR_ATTACHMENTS | GLenum | Yes|
+| COLOR_ATTACHMENT1 | GLenum | Yes|
+| COLOR_ATTACHMENT2 | GLenum | Yes|
+| COLOR_ATTACHMENT3 | GLenum | Yes|
+| COLOR_ATTACHMENT4 | GLenum | Yes|
+| COLOR_ATTACHMENT5 | GLenum | Yes|
+| COLOR_ATTACHMENT6 | GLenum | Yes|
+| COLOR_ATTACHMENT7 | GLenum | Yes|
+| COLOR_ATTACHMENT8 | GLenum | Yes|
+| COLOR_ATTACHMENT9 | GLenum | Yes|
+| COLOR_ATTACHMENT10 | GLenum | Yes|
+| COLOR_ATTACHMENT11 | GLenum | Yes|
+| COLOR_ATTACHMENT12 | GLenum | Yes|
+| COLOR_ATTACHMENT13 | GLenum | Yes|
+| COLOR_ATTACHMENT14 | GLenum | Yes|
+| COLOR_ATTACHMENT15 | GLenum | Yes|
+| FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | GLenum | Yes|
+| MAX_SAMPLES | GLenum | Yes|
+| HALF_FLOAT | GLenum | Yes|
+| RG | GLenum | Yes|
+| RG_INTEGER | GLenum | Yes|
+| R8 | GLenum | Yes|
+| RG8 | GLenum | Yes|
+| R16F | GLenum | Yes|
+| R32F | GLenum | Yes|
+| RG16F | GLenum | Yes|
+| RG32F | GLenum | Yes|
+| R8I | GLenum | Yes|
+| R8UI | GLenum | Yes|
+| R16I | GLenum | Yes|
+| R16UI | GLenum | Yes|
+| R32I | GLenum | Yes|
+| R32UI | GLenum | Yes|
+| RG8I | GLenum | Yes|
+| RG8UI | GLenum | Yes|
+| RG16I | GLenum | Yes|
+| RG16UI | GLenum | Yes|
+| RG32I | GLenum | Yes|
+| RG32UI | GLenum | Yes|
+| VERTEX_ARRAY_BINDING | GLenum | Yes|
+| R8_SNORM | GLenum | Yes|
+| RG8_SNORM | GLenum | Yes|
+| RGB8_SNORM | GLenum | Yes|
+| SIGNED_NORMALIZED | GLenum | Yes|
+| COPY_READ_BUFFER | GLenum | Yes|
+| COPY_WRITE_BUFFER | GLenum | Yes|
+| COPY_READ_BUFFER_BINDING | GLenum | Yes|
+| COPY_WRITE_BUFFER_BINDING | GLenum | Yes|
+| UNIFORM_BUFFER | GLenum | Yes|
+| UNIFORM_BUFFER_BINDING | GLenum | Yes|
+| UNIFORM_BUFFER_START | GLenum | Yes|
+| UNIFORM_BUFFER_SIZE | GLenum | Yes|
+| MAX_VERTEX_UNIFORM_BLOCKS | GLenum | Yes|
+| MAX_FRAGMENT_UNIFORM_BLOCKS | GLenum | Yes|
+| MAX_COMBINED_UNIFORM_BLOCKS | GLenum | Yes|
+| MAX_UNIFORM_BUFFER_BINDINGS | GLenum | Yes|
+| MAX_UNIFORM_BLOCK_SIZE | GLenum | Yes|
+| MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes|
+| MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes|
+| UNIFORM_BUFFER_OFFSET_ALIGNMENT | GLenum | Yes|
+| ACTIVE_UNIFORM_BLOCKS | GLenum | Yes|
+| UNIFORM_TYPE | GLenum | Yes|
+| UNIFORM_SIZE | GLenum | Yes|
+| UNIFORM_BLOCK_INDEX | GLenum | Yes|
+| UNIFORM_OFFSET | GLenum | Yes|
+| UNIFORM_ARRAY_STRIDE | GLenum | Yes|
+| UNIFORM_MATRIX_STRIDE | GLenum | Yes|
+| UNIFORM_IS_ROW_MAJOR | GLenum | Yes|
+| UNIFORM_BLOCK_BINDING | GLenum | Yes|
+| UNIFORM_BLOCK_DATA_SIZE | GLenum | Yes|
+| UNIFORM_BLOCK_ACTIVE_UNIFORMS | GLenum | Yes|
+| UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | GLenum | Yes|
+| UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | GLenum | Yes|
+| UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | GLenum | Yes|
+| INVALID_INDEX | GLenum | Yes|
+| MAX_VERTEX_OUTPUT_COMPONENTS | GLenum | Yes|
+| MAX_FRAGMENT_INPUT_COMPONENTS | GLenum | Yes|
+| MAX_SERVER_WAIT_TIMEOUT | GLenum | Yes|
+| OBJECT_TYPE | GLenum | Yes|
+| SYNC_CONDITION | GLenum | Yes|
+| SYNC_STATUS | GLenum | Yes|
+| SYNC_FLAGS | GLenum | Yes|
+| SYNC_FENCE | GLenum | Yes|
+| SYNC_GPU_COMMANDS_COMPLETE | GLenum | Yes|
+| UNSIGNALED | GLenum | Yes|
+| SIGNALED | GLenum | Yes|
+| ALREADY_SIGNALED | GLenum | Yes|
+| TIMEOUT_EXPIRED | GLenum | Yes|
+| CONDITION_SATISFIED | GLenum | Yes|
+| WAIT_FAILED | GLenum | Yes|
+| SYNC_FLUSH_COMMANDS_BIT | GLenum | Yes|
+| VERTEX_ATTRIB_ARRAY_DIVISOR | GLenum | Yes|
+| ANY_SAMPLES_PASSED | GLenum | Yes|
+| ANY_SAMPLES_PASSED_CONSERVATIVE | GLenum | Yes|
+| SAMPLER_BINDING | GLenum | Yes|
+| RGB10_A2UI | GLenum | Yes|
+| INT_2_10_10_10_REV | GLenum | Yes|
+| TRANSFORM_FEEDBACK | GLenum | Yes|
+| TRANSFORM_FEEDBACK_PAUSED | GLenum | Yes|
+| TRANSFORM_FEEDBACK_ACTIVE | GLenum | Yes|
+| TRANSFORM_FEEDBACK_BINDING | GLenum | Yes|
+| TEXTURE_IMMUTABLE_FORMAT | GLenum | Yes|
+| MAX_ELEMENT_INDEX | GLenum | Yes|
+| TEXTURE_IMMUTABLE_LEVELS | GLenum | Yes|
+| TIMEOUT_IGNORED | GLint64 | Yes|
+| MAX_CLIENT_WAIT_TIMEOUT_WEBGL | GLenum | Yes|
 
 
 ### Methods
 
-  | Method| Return Value Type| 
+| Method| Return Value Type|
 | -------- | -------- |
-| copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) | void | 
-| getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint) | void | 
-| blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) | void | 
-| framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture \| null, level: GLint, layer: GLint) | void | 
-| invalidateFramebuffer(target: GLenum, attachments: GLenum[]) | void | 
-| invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void | 
-| readBuffer(src: GLenum) | void | 
-| getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) | any | 
-| renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void | 
-| texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void | 
-| texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) | void | 
-| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void | 
-| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null) | void | 
-| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void | 
-| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void | 
-| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null, srcOffset?: GLuint) | void | 
-| copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void | 
-| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void | 
-| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void | 
-| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void | 
-| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void | 
-| getFragDataLocation(program: WebGLProgram, name: string) | GLint | 
-| uniform1ui(location: WebGLUniformLocation \| null, v0: GLuint) | void | 
-| uniform2ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint) | void | 
-| uniform3ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint) | void | 
-| uniform4ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) | void | 
-| uniform1uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform2uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform3uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform4uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix3x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix4x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix2x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix4x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix2x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix3x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) | void | 
-| vertexAttribI4iv(index: GLuint, values: Int32List) | void | 
-| vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) | void | 
-| vertexAttribI4uiv(index: GLuint, values: Uint32List) | void | 
-| vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) | void | 
-| vertexAttribDivisor(index: GLuint, divisor: GLuint) | void | 
-| drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) | void | 
-| drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) | void | 
-| drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) | void | 
-| drawBuffers(buffers: GLenum[]) | void | 
-| clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint) | void | 
-| clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint) | void | 
-| clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint) | void | 
-| clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) | void | 
-| createQuery() | WebGLQuery \| null | 
-| deleteQuery(query: WebGLQuery \| null) | void | 
-| isQuery(query: WebGLQuery \| null) | GLboolean | 
-| beginQuery(target: GLenum, query: WebGLQuery) | void | 
-| endQuery(target: GLenum) | void | 
-| getQuery(target: GLenum, pname: GLenum) | WebGLQuery \| null | 
-| getQueryParameter(query: WebGLQuery, pname: GLenum) | any | 
-| createSampler() | WebGLSampler \| null | 
-| deleteSampler(sampler: WebGLSampler \| null) | void | 
-| isSampler(sampler: WebGLSampler \| null) | GLboolean | 
-| bindSampler(unit: GLuint, sampler: WebGLSampler \| null) | void | 
-| samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) | void | 
-| samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) | void; | 
-| getSamplerParameter(sampler: WebGLSampler, pname: GLenum) | any | 
-| fenceSync(condition: GLenum, flags: GLbitfield) | WebGLSync \| null | 
-| isSync(sync: WebGLSync \| null) | GLboolean | 
-| deleteSync(sync: WebGLSync \| null) | void | 
-| clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) | GLenum | 
-| waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) | void | 
-| getSyncParameter(sync: WebGLSync, pname: GLenum) | any | 
-| createTransformFeedback() | WebGLTransformFeedback \| null | 
-| deleteTransformFeedback(tf: WebGLTransformFeedback \| null) | void | 
-| isTransformFeedback(tf: WebGLTransformFeedback \| null) | GLboolean | 
-| bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback \| null) | void | 
-| beginTransformFeedback(primitiveMode: GLenum) | void | 
-| endTransformFeedback() | void | 
-| transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum) | void | 
-| getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) | WebGLActiveInfo \| null | 
-| pauseTransformFeedback() | void | 
-| resumeTransformFeedback() | void | 
-| bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null) | void | 
-| bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null, offset: GLintptr, size: GLsizeiptr) | void | 
-| getIndexedParameter(target: GLenum, index: GLuint) | any | 
-| getUniformIndices(program: WebGLProgram, uniformNames: string[]) | GLuint[] \| null | 
-| getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum) | any | 
-| getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string) | GLuint | 
-| getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) | any | 
-| getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) | string \| null | 
-| uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) | void | 
-| createVertexArray() | WebGLVertexArrayObject \| null | 
-| deleteVertexArray(vertexArray: WebGLVertexArrayObject \| null) | void | 
-| isVertexArray(vertexArray: WebGLVertexArrayObject \| null) | GLboolean | 
-| bindVertexArray(array: WebGLVertexArrayObject \| null) | void | 
+| copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) | void |
+| getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint) | void |
+| blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) | void |
+| framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture \| null, level: GLint, layer: GLint) | void |
+| invalidateFramebuffer(target: GLenum, attachments: GLenum[]) | void |
+| invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void |
+| readBuffer(src: GLenum) | void |
+| getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) | any |
+| renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void |
+| texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void |
+| texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) | void |
+| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
+| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null) | void |
+| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
+| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
+| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null, srcOffset?: GLuint) | void |
+| copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void |
+| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void |
+| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
+| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void |
+| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
+| getFragDataLocation(program: WebGLProgram, name: string) | GLint |
+| uniform1ui(location: WebGLUniformLocation \| null, v0: GLuint) | void |
+| uniform2ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint) | void |
+| uniform3ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint) | void |
+| uniform4ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) | void |
+| uniform1uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform2uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform3uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform4uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix3x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix4x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix2x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix4x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix2x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix3x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) | void |
+| vertexAttribI4iv(index: GLuint, values: Int32List) | void |
+| vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) | void |
+| vertexAttribI4uiv(index: GLuint, values: Uint32List) | void |
+| vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) | void |
+| vertexAttribDivisor(index: GLuint, divisor: GLuint) | void |
+| drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) | void |
+| drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) | void |
+| drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) | void |
+| drawBuffers(buffers: GLenum[]) | void |
+| clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint) | void |
+| clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint) | void |
+| clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint) | void |
+| clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) | void |
+| createQuery() | WebGLQuery \| null |
+| deleteQuery(query: WebGLQuery \| null) | void |
+| isQuery(query: WebGLQuery \| null) | GLboolean |
+| beginQuery(target: GLenum, query: WebGLQuery) | void |
+| endQuery(target: GLenum) | void |
+| getQuery(target: GLenum, pname: GLenum) | WebGLQuery \| null |
+| getQueryParameter(query: WebGLQuery, pname: GLenum) | any |
+| createSampler() | WebGLSampler \| null |
+| deleteSampler(sampler: WebGLSampler \| null) | void |
+| isSampler(sampler: WebGLSampler \| null) | GLboolean |
+| bindSampler(unit: GLuint, sampler: WebGLSampler \| null) | void |
+| samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) | void |
+| samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) | void; |
+| getSamplerParameter(sampler: WebGLSampler, pname: GLenum) | any |
+| fenceSync(condition: GLenum, flags: GLbitfield) | WebGLSync \| null |
+| isSync(sync: WebGLSync \| null) | GLboolean |
+| deleteSync(sync: WebGLSync \| null) | void |
+| clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) | GLenum |
+| waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) | void |
+| getSyncParameter(sync: WebGLSync, pname: GLenum) | any |
+| createTransformFeedback() | WebGLTransformFeedback \| null |
+| deleteTransformFeedback(tf: WebGLTransformFeedback \| null) | void |
+| isTransformFeedback(tf: WebGLTransformFeedback \| null) | GLboolean |
+| bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback \| null) | void |
+| beginTransformFeedback(primitiveMode: GLenum) | void |
+| endTransformFeedback() | void |
+| transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum) | void |
+| getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) | WebGLActiveInfo \| null |
+| pauseTransformFeedback() | void |
+| resumeTransformFeedback() | void |
+| bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null) | void |
+| bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null, offset: GLintptr, size: GLsizeiptr) | void |
+| getIndexedParameter(target: GLenum, index: GLuint) | any |
+| getUniformIndices(program: WebGLProgram, uniformNames: string[]) | GLuint[] \| null |
+| getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum) | any |
+| getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string) | GLuint |
+| getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) | any |
+| getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) | string \| null |
+| uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) | void |
+| createVertexArray() | WebGLVertexArrayObject \| null |
+| deleteVertexArray(vertexArray: WebGLVertexArrayObject \| null) | void |
+| isVertexArray(vertexArray: WebGLVertexArrayObject \| null) | GLboolean |
+| bindVertexArray(array: WebGLVertexArrayObject \| null) | void |
 
 
 ## WebGL2RenderingContextOverloads
 
 WebGL2RenderingContextOverloads
 
-  | Method| Return Value Type| 
+| Method| Return Value Type|
 | -------- | -------- |
-| bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) | void | 
-| bufferData(target: GLenum, srcData: BufferSource \| null, usage: GLenum) | void | 
-| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource) | void | 
-| bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint) | void | 
-| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint) | void | 
-| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void | 
-| texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void | 
-| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void | 
-| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void | 
-| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void | 
-| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void | 
-| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void | 
-| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void | 
-| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void | 
-| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void | 
-| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void | 
-| uniform1fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform2fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform3fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform4fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform1iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform2iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform3iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniform4iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| uniformMatrix4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void | 
-| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView \| null) | void | 
-| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) | void | 
-| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) | void | 
+| bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) | void |
+| bufferData(target: GLenum, srcData: BufferSource \| null, usage: GLenum) | void |
+| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource) | void |
+| bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint) | void |
+| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint) | void |
+| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void |
+| texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void |
+| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
+| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
+| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
+| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void |
+| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
+| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void |
+| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
+| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void |
+| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
+| uniform1fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform2fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform3fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform4fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform1iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform2iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform3iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniform4iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| uniformMatrix4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
+| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView \| null) | void |
+| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) | void |
+| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) | void |
diff --git a/en/application-dev/reference/apis/js-apis-wifi.md b/en/application-dev/reference/apis/js-apis-wifi.md
index 875607d4fd022e5a9e91359bde83ee4d1d70a69b..602a3b7e2a318119b1e8dbfa80a59fdc65a6bede 100644
--- a/en/application-dev/reference/apis/js-apis-wifi.md
+++ b/en/application-dev/reference/apis/js-apis-wifi.md
@@ -21,9 +21,9 @@ Checks whether the WLAN is activated.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | boolean | Returns **true** if the WLAN is activated; returns **false** otherwise.|
+| **Type**| **Description**|
+| -------- | -------- |
+| boolean | Returns **true** if the WLAN is activated; returns **false** otherwise.|
 
 
 ## wifi.scan
@@ -37,41 +37,41 @@ Starts a scan for WLAN.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | boolean | Returns **true** if the scan is successful; returns **false** otherwise.|
+| **Type**| **Description**|
+| -------- | -------- |
+| boolean | Returns **true** if the scan is successful; returns **false** otherwise.|
 
 
 ## wifi.getScanInfos
 
 getScanInfos(): Promise&lt;Array&lt;WifiScanInfo&gt;&gt;
 
-Obtains the scan result. This method uses a promise to return the result.
+Obtains the scan result. This API uses a promise to return the result.
 
-**Required permissions**: ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, or ohos.permission.LOCATION
+**Required permissions**: at least one of ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&nbsp;&gt; | Promise used to return the scan result, which is a list of hotspots detected.|
+| **Type**| **Description**|
+| -------- | -------- |
+| Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&nbsp;&gt; | Promise used to return the hotspots detected.|
 
 
 ## wifi.getScanInfos
 
 getScanInfos(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
 
-Obtains the scan result. This method uses an asynchronous callback to return the result.
+Obtains the scan result. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: at least one of ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&gt; | Yes| Callback invoked to return the result, which is a list of hotspots detected.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&gt; | Yes| Callback invoked to return the hotspots detected.|
 
 **Example**
   ```js
@@ -126,10 +126,12 @@ Represents WLAN hotspot information.
 | bssid | string | Read only| Basic service set identifier (BSSID) of the hotspot.|
 | capabilities | string | Read only| Hotspot capabilities.|
 | securityType | [WifiSecurityType](#WifiSecurityType) | Read only| WLAN security type.|
-| rssi | number | Read only| Signal strength of the hotspot, in dBm.|
+| rssi | number | Read only| Received signal strength indicator (RSSI) of the hotspot, in dBm.|
 | band | number | Read only| Frequency band of the WLAN access point (AP).|
 | frequency | number | Read only| Frequency of the WLAN AP.|
 | channelWidth | number | Read only| Bandwidth of the WLAN AP.|
+| centerFrequency0 | number | Read only| Center frequency.|
+| centerFrequency1 | number | Read only| Center frequency.|
 | timestamp | number | Read only| Timestamp.|
 
 
@@ -150,7 +152,7 @@ Enumerates the WLAN security types.
 
 addUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
 
-Adds untrusted WLAN configuration. This method uses a promise to return the result.
+Adds untrusted WLAN configuration. This API uses a promise to return the result.
 
 **Required permissions**:
   ohos.permission.SET_WIFI_INFO
@@ -159,14 +161,14 @@ Adds untrusted WLAN configuration. This method uses a promise to return the resu
   SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.|
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | Promise&lt;boolean&gt; | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
+| **Type**| **Description**|
+| -------- | -------- |
+| Promise&lt;boolean&gt; | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
 
 ## WifiDeviceConfig
 
@@ -174,120 +176,120 @@ Represents the WLAN configuration.
 
 | **Name**| **Type**| **Readable/Writable**| **Description**|
 | -------- | -------- | -------- | -------- |
-| ssid | string | Read only| Hotspot SSID, in UTF-8 format.|
+| ssid | string | Read only| Hotspot service set identifier (SSID), in UTF-8 format.|
 | bssid | string | Read only| BSSID of the hotspot.|
 | preSharedKey | string | Read only| Private key of the hotspot.|
 | isHiddenSsid | boolean | Read only| Whether to hide the network.|
-| securityType | [WifiSecurityType](#WifiSecurityType) | Read only| Security type|
+| securityType | [WifiSecurityType](#WifiSecurityType) | Read only| Security type.|
 
 
 ## wifi.addUntrustedConfig<sup>7+</sup>
 
 addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
 
-Adds untrusted WLAN configuration. This method uses an asynchronous callback to return the result.
+Adds untrusted WLAN configuration. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.SET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.|
-  | callback | AsyncCallback&lt;boolean&gt; | Yes| Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.|
+| callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
 
 
 ## wifi.removeUntrustedConfig<sup>7+</sup>
 
 removeUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
 
-Removes untrusted WLAN configuration. This method uses a promise to return the result.
+Removes untrusted WLAN configuration. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.SET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove. |
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | Promise&lt;boolean&gt; | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
+| **Type**| **Description**|
+| -------- | -------- |
+| Promise&lt;boolean&gt; | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
 
 
 ## wifi.removeUntrustedConfig<sup>7+</sup>
 
 removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
 
-Removes untrusted WLAN configuration. This method uses an asynchronous callback to return the result.
+Removes untrusted WLAN configuration. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.SET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove.|
-  | callback | AsyncCallback&lt;boolean&gt; | Yes| Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove. |
+| callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.|
 
 
 ## wifi.getSignalLevel
 
 getSignalLevel(rssi: number, band: number): number
 
-Obtains the WLAN signal strength.
+Obtains the WLAN signal level.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | rssi | number | Yes| Signal strength of the hotspot, in dBm.|
-  | band | number | Yes| Frequency band of the WLAN AP.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| rssi | number | Yes| RSSI of the hotspot, in dBm. |
+| band | number | Yes| Frequency band of the WLAN AP.|
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | number | Signal strength obtained. The value range is [0,&nbsp;4].|
+| **Type**| **Description**|
+| -------- | -------- |
+| number | Signal level obtained. The value range is [0,&nbsp;4].|
 
 
 ## wifi.getLinkedInfo
 
 getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;
 
-Obtains WLAN connection information. This method uses a promise to return the result.
+Obtains WLAN connection information. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | Promise&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | Promise used to return the WLAN connection information obtained.|
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | Promise used to return the WLAN connection information obtained.|
 
 
 ## wifi.getLinkedInfo
 
 getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
 
-Obtains WLAN connection information. This method uses a callback to return the result.
+Obtains WLAN connection information. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | Yes| Callback invoked to return the WLAN connection information obtained.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | Yes| Callback invoked to return the WLAN connection information obtained.|
 
 **Example**
   ```js
@@ -317,11 +319,11 @@ Represents the WLAN connection information.
 | -------- | -------- | -------- | -------- |
 | ssid | string | Read only| Hotspot SSID, in UTF-8 format.|
 | bssid | string | Read only| BSSID of the hotspot.|
-| rssi | number | Read only| Signal strength of the hotspot, in dBm.|
+| rssi | number | Read only| RSSI of the hotspot, in dBm. |
 | band | number | Read only| Frequency band of the WLAN AP.|
 | linkSpeed | number | Read only| Speed of the WLAN AP.|
 | frequency | number | Read only| Frequency of the WLAN AP.|
-| isHidden | boolean | Read only| Whether the WLAN AP is hidden.|
+| isHidden | boolean | Read only| Whether to hide the WLAN AP.|
 | isRestricted | boolean | Read only| Whether to restrict data volume at the WLAN AP.|
 | macAddress | string | Read only| MAC address of the device.|
 | ipAddress | number | Read only| IP address of the device that sets up the WLAN connection.|
@@ -355,9 +357,9 @@ Checks whether the WLAN is connected.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | boolean | Returns **true** if the WLAN is connected; returns **false** otherwise.|
+| **Type**| **Description**|
+| -------- | -------- |
+| boolean | Returns **true** if the WLAN is connected; returns **false** otherwise.|
 
 
 ## wifi.isFeatureSupported<sup>7+</sup>
@@ -372,14 +374,14 @@ Checks whether the device supports the specified WLAN feature.
 
 **Parameters**
 
-  | **Name**| **Type**| Mandatory| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | featureId | number | Yes| Feature ID.|
+| **Name**| **Type**| Mandatory| **Description**|
+| -------- | -------- | -------- | -------- |
+| featureId | number | Yes| Feature ID.|
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | boolean | Returns **true** if the feature is supported; returns **false** otherwise.|
+| **Type**| **Description**|
+| -------- | -------- |
+| boolean | Returns **true** if the feature is supported; returns **false** otherwise.|
 
 **Feature IDs**
 
@@ -408,9 +410,9 @@ Obtains IP information.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | [IpInfo](#IpInfo) | IP information obtained.|
+| **Type**| **Description**|
+| -------- | -------- |
+| [IpInfo](#IpInfo) | IP information obtained.|
 
 
 ## IpInfo<sup>7+</sup>
@@ -439,41 +441,41 @@ Obtains the country code.
 **System capability**: SystemCapability.Communication.WiFi.Core
 
 **Return value**
-  | **Type**| **Description**|
-  | -------- | -------- |
-  | string | Country code obtained.|
+| **Type**| **Description**|
+| -------- | -------- |
+| string | Country code obtained.|
 
 
 ## wifi.getP2pLinkedInfo<sup>8+</sup>
 
 getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;
 
-Obtains peer-to-peer (P2P) connection information. This method uses a promise to return the result.
+Obtains peer-to-peer (P2P) connection information. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | Promise&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Promise used to return the P2P connection information obtained.|
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Promise used to return the P2P connection information obtained.|
 
 
 ## wifi.getP2pLinkedInfo<sup>8+</sup>
 
 getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void
 
-Obtains P2P connection information. This method uses a callback to return the result.
+Obtains P2P connection information. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Yes| Callback used to return the P2P connection information obtained.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Yes| Callback used to return the P2P connection information obtained.|
 
 
 ## WifiP2pLinkedInfo<sup>8+</sup>
@@ -483,8 +485,8 @@ Represents the WLAN connection information.
 | Name| Type| Readable/Writable| Description|
 | -------- | -------- | -------- | -------- |
 | connectState | [P2pConnectState](#P2pConnectState) | Read only| P2P connection state.|
-| isGroupOwner | boolean | Read only| Whether it is a group.|
-| groupOwnerAddr | string | Read only| MAC address of the group.|
+| isGroupOwner | boolean | Read only| Whether it is a group owner.|
+| groupOwnerAddr | string | Read only| MAC address of the group owner.|
 
 
 ## P2pConnectState<sup>8+</sup>
@@ -501,33 +503,62 @@ Enumerates the P2P connection states.
 
 getCurrentGroup(): Promise&lt;WifiP2pGroupInfo&gt;
 
-Obtains the current P2P group information. This method uses a promise to return the result.
+Obtains the current P2P group information. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | Promise&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | Promise used to return the P2P group information obtained.|
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | Promise used to return the P2P group information obtained.|
 
 
 ## wifi.getCurrentGroup<sup>8+</sup>
 
 getCurrentGroup(callback: AsyncCallback&lt;WifiP2pGroupInfo&gt;): void
 
-Obtains the P2P group information. This method uses an asynchronous callback to return the result.
+Obtains the P2P group information. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | Yes| Callback used to return the P2P group information obtained.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | Yes| Callback used to return the P2P group information obtained.|
+
+## wifi.getP2pGroups<sup>9+</sup>
+
+getP2pGroups(): Promise&lt;Array&lt;WifiP2pGroupInfo&gt;
+
+Obtains information about all P2P groups. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
+
+**System capability**: SystemCapability.Communication.WiFi.P2P
+
+**Return value**
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt;&nbsp;&gt; | Information about all created P2P groups obtained.|
+
+## wifi.getP2pGroups<sup>9+</sup>
+
+getP2pGroups(callback: AsyncCallback&lt;Array&lt;WifiP2pGroupInfo&gt;): void
+
+Obtains information about all P2P groups. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
+
+**System capability**: SystemCapability.Communication.WiFi.P2P
 
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt;&gt; | Yes| Callback invoked to return the P2P group information obtained.|
 
 ## WifiP2pGroupInfo<sup>8+</sup>
 
@@ -574,33 +605,63 @@ Enumerates the device states.
 
 getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;
 
-Obtains the list of peer devices in a P2P connection. This method uses a promise to return the result.
+Obtains the list of peer devices in a P2P connection. This API uses a promise to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | Promise&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Promise used to return the peer device list obtained.|
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Promise used to return the peer device list obtained.|
 
 
 ## wifi.getP2pPeerDevices<sup>8+</sup>
 
 getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void
 
-Obtains the list of peer devices in a P2P connection. This method uses an asynchronous callback to return the result.
+Obtains the list of peer devices in a P2P connection. This API uses an asynchronous callback to return the result.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | Name| Type| Mandatory| Description|
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Yes| Callback used to return the peer device list obtained.|
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Yes| Callback used to return the peer device list obtained.|
+
+## wifi.getP2pLocalDevice<sup>9+</sup>
+
+getP2pLocalDevice(): Promise&lt;WifiP2pDevice&gt;
+
+Obtains local device information. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_CONFIG
+
+**System capability**: SystemCapability.Communication.WiFi.P2P
+
+**Return value**
+| Type| Description|
+| -------- | -------- |
+| Promise&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | Promise used to return the local device information obtained.|
+
+
+## wifi.getP2pLocalDevice<sup>8+</sup>
+
+getP2pLocalDevice(callback: AsyncCallback&lt;WifiP2pDevice&gt;): void
+
+Obtains local device information. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_CONFIG
+
+**System capability**: SystemCapability.Communication.WiFi.P2P
 
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| callback | AsyncCallback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | Yes| Callback invoked to returnthe local device information obtained.|
 
 ## wifi.createGroup<sup>8+</sup>
 
@@ -614,14 +675,14 @@ Creates a P2P group.
 
 **Parameters**
 
-  | **Name**| **Type**| Mandatory| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Group configuration.|
+| **Name**| **Type**| Mandatory| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Group configuration.|
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 ## WifiP2PConfig<sup>8+</sup>
 
@@ -650,16 +711,16 @@ Enumerates the P2P group bandwidths.
 
 removeGroup(): boolean;
 
-Removes a P2P group.
+Removes this P2P group.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 
 ## wifi.p2pConnect<sup>8+</sup>
@@ -674,14 +735,14 @@ Sets up a P2P connection.
 
 **Parameters**
 
-  | **Name**| **Type**| Mandatory| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Connection configuration.|
+| **Name**| **Type**| Mandatory| **Description**|
+| -------- | -------- | -------- | -------- |
+| config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Connection configuration.|
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 
 **Example**
@@ -762,9 +823,9 @@ Cancels this P2P connection.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 
 ## wifi.startDiscoverDevices<sup>8+</sup>
@@ -778,9 +839,9 @@ Starts to discover devices.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 
 ## wifi.stopDiscoverDevices<sup>8+</sup>
@@ -794,9 +855,9 @@ Stops discovering devices.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Return value**
-  | Type| Description|
-  | -------- | -------- |
-  | boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
+| Type| Description|
+| -------- | -------- |
+| boolean | Returns **true** if the operation is successful; returns **false** otherwise.|
 
 
 ## wifi.on('wifiStateChange')<sup>7+</sup>
@@ -810,10 +871,10 @@ Registers the WLAN state change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiStateChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiStateChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN state.|
 
 **WLAN states** 
 
@@ -836,10 +897,10 @@ Unregisters the WLAN state change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiStateChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the WLAN state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiStateChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the WLAN state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 **Example**
   ```js
@@ -850,10 +911,10 @@ Unregisters the WLAN state change events.
       console.info("Receive power state change event: " + result);
   }
   
-  // Register event
+  // Register an event.
   wifi.on(WIFI_POWER_STATE, recvPowerNotifyFunc);
   
-  // Unregister event
+  // Unregister an event.
   wifi.off(WIFI_POWER_STATE, recvPowerNotifyFunc);
   ```
 
@@ -869,10 +930,10 @@ Registers the WLAN connection state change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiConnectionChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN connection state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiConnectionChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN connection state.|
 
 **WLAN connection states**
 
@@ -893,10 +954,10 @@ Unregisters the WLAN connection state change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiConnectionChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the WLAN connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiConnectionChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the WLAN connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('wifiScanStateChange')<sup>7+</sup>
@@ -910,10 +971,10 @@ Registers the WLAN scan state change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiScanStateChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN scan state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiScanStateChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the WLAN scan state.|
 
 **WLAN scan states**
 
@@ -952,10 +1013,10 @@ Registers the RSSI change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiRssiChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the RSSI, in dBm.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiRssiChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the RSSI, in dBm.|
 
 
 ## wifi.off('wifiRssiChange')<sup>7+</sup>
@@ -969,10 +1030,10 @@ Unregisters the RSSI change events.
 **System capability**: SystemCapability.Communication.WiFi.STA
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **wifiRssiChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the RSSI, in dBm. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **wifiRssiChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the RSSI, in dBm. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('hotspotStateChange')<sup>7+</sup>
@@ -986,10 +1047,10 @@ Registers the hotspot state change events.
 **System capability**: SystemCapability.Communication.WiFi.AP.Core
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **hotspotStateChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the hotspot state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **hotspotStateChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the hotspot state.|
 
 **Hotspot states**
 
@@ -1012,10 +1073,10 @@ Unregisters the hotspot state change events.
 **System capability**: SystemCapability.Communication.WiFi.AP.Core
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **hotspotStateChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the hotspot state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **hotspotStateChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the hotspot state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('p2pStateChange')<sup>8+</sup>
@@ -1029,10 +1090,10 @@ Registers the P2P state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pStateChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the P2P state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pStateChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the P2P state.|
 
 **P2P states**
 
@@ -1055,10 +1116,10 @@ Unregisters the P2P state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pStateChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the P2P state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pStateChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the P2P state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
   ## wifi.on('p2pConnectionChange')<sup>8+</sup>
@@ -1072,10 +1133,10 @@ Registers the P2P connection state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pConnectionChange**.|
-  | callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Yes| Callback invoked to return the P2P connection state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pConnectionChange**.|
+| callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | Yes| Callback invoked to return the P2P connection state.|
 
 
 ## wifi.off('p2pConnectionChange')<sup>8+</sup>
@@ -1089,10 +1150,10 @@ Unregisters the P2P connection state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pConnectionChange**.|
-  | callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | No| Callback used to return the P2P connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pConnectionChange**.|
+| callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | No| Callback used to return the P2P connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('p2pDeviceChange')<sup>8+</sup>
@@ -1106,10 +1167,10 @@ Registers the P2P device state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pDeviceChange**.|
-  | callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | Yes| Callback invoked to return the P2P device state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pDeviceChange**.|
+| callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | Yes| Callback invoked to return the P2P device state.|
 
 
 ## wifi.off('p2pDeviceChange')<sup>8+</sup>
@@ -1123,10 +1184,10 @@ Unregisters the P2P device state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pDeviceChange**.|
-  | callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | No| Callback used to return the P2P device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pDeviceChange**.|
+| callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | No| Callback used to return the P2P device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('p2pPeerDeviceChange')<sup>8+</sup>
@@ -1140,10 +1201,10 @@ Registers the P2P peer device state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.|
-  | callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Yes| Callback invoked to return the P2P peer device state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.|
+| callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | Yes| Callback invoked to return the P2P peer device state.|
 
 
 ## wifi.off('p2pPeerDeviceChange')<sup>8+</sup>
@@ -1157,10 +1218,10 @@ Unregisters the P2P peer device state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.|
-  | callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | No| Callback used to return the P2P peer device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.|
+| callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | No| Callback used to return the P2P peer device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('p2pPersistentGroupChange')<sup>8+</sup>
@@ -1174,10 +1235,10 @@ Registers the P2P persistent group state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.|
-  | callback | Callback&lt;void&gt; | Yes| Callback invoked to return the P2P persistent group state.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.|
+| callback | Callback&lt;void&gt; | Yes| Callback invoked to return the P2P persistent group state.|
 
 
 ## wifi.off('p2pPersistentGroupChange')<sup>8+</sup>
@@ -1191,27 +1252,27 @@ Unregisters the P2P persistent group state change events.
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.|
-  | callback | Callback&lt;void&gt; | No| Callback used to return the P2P persistent group state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.|
+| callback | Callback&lt;void&gt; | No| Callback used to return the P2P persistent group state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
 
 
 ## wifi.on('p2pDiscoveryChange')<sup>8+</sup>
 
 on(type: "p2pDiscoveryChange", callback: Callback&lt;number&gt;): void
 
-Registers the P2P discovered device state change events.
+Registers the P2P device discovery state change events.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pDiscoveryChange**.|
-  | callback | Callback&lt;number&gt; | Yes| Callback invoked to return the state of the P2P discovered device.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pDiscoveryChange**.|
+| callback | Callback&lt;number&gt; | Yes| Callback invoked to return the P2P device discovery state.|
 
 **P2P discovered device states**
 
@@ -1225,14 +1286,14 @@ Registers the P2P discovered device state change events.
 
 off(type: "p2pDiscoveryChange", callback?: Callback&lt;number&gt;): void
 
-Unregisters the P2P discovered device state change events.
+Unregisters the P2P device discovery state change events.
 
 **Required permissions**: ohos.permission.GET_WIFI_INFO
 
 **System capability**: SystemCapability.Communication.WiFi.P2P
 
 **Parameters**
-  | **Name**| **Type**| **Mandatory**| **Description**|
-  | -------- | -------- | -------- | -------- |
-  | type | string | Yes| Event type. The value is **p2pDiscoveryChange**.|
-  | callback | Callback&lt;number&gt; | No| Callback used to return the state of the P2P discovered device. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
+| **Name**| **Type**| **Mandatory**| **Description**|
+| -------- | -------- | -------- | -------- |
+| type | string | Yes| Event type. The value is **p2pDiscoveryChange**.|
+| callback | Callback&lt;number&gt; | No| Callback used to return the P2P device discovery state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.|
diff --git a/en/application-dev/reference/apis/js-apis-xml.md b/en/application-dev/reference/apis/js-apis-xml.md
index f22c9988cf123f79225babf014b089bb98e6247a..21e43edc10b5e4fd5acf567ceabb822f26935ade 100644
--- a/en/application-dev/reference/apis/js-apis-xml.md
+++ b/en/application-dev/reference/apis/js-apis-xml.md
@@ -1,6 +1,7 @@
 # XML Parsing and Generation
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> **NOTE**
+>
 > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 
@@ -146,7 +147,7 @@ thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
 thatSer.startElement("table");
 thatSer.setAttributes("importance", "high");
 thatSer.setText("Happy");
-endElement(); // => <h:table importance="high" xmlns:h="http://www.w3.org/TR/html4/">Happy</h:table>
+thatSer.endElement(); // => <h:table importance="high" xmlns:h="http://www.w3.org/TR/html4/">Happy</h:table>
 ```
 
 
diff --git a/en/application-dev/reference/arkui-js/Readme-EN.md b/en/application-dev/reference/arkui-js/Readme-EN.md
index 521ca33eff38eb7656529f0f32b85f4a7d37f35a..46e4b416c4bc0ee3389c493a540e2a7bb375bd3a 100644
--- a/en/application-dev/reference/arkui-js/Readme-EN.md
+++ b/en/application-dev/reference/arkui-js/Readme-EN.md
@@ -1,111 +1,105 @@
 #  JavaScript-based Web-like Development Paradigm
 
--   Components
-    -   Common
-        -   [Universal Attributes](js-components-common-attributes.md)
-        -   [Universal Styles](js-components-common-styles.md)
-        -   [Universal Events](js-components-common-events.md)
-        -   [Universal Methods](js-components-common-methods.md)
-        -   [Animation Styles](js-components-common-animation.md)
-        -   [Gradient Styles](js-components-common-gradient.md)
-        -   [Transition Styles](js-components-common-transition.md)
-        -   [Media Query](js-components-common-mediaquery.md)
-        -   [Custom Font Styles](js-components-common-customizing-font.md)
-        -   [Atomic Layout](js-components-common-atomic-layout.md)
+-   Universal Component Information
+    - [Universal Attributes](js-components-common-attributes.md)
+    - [Universal Styles](js-components-common-styles.md)
+    - [Universal Events](js-components-common-events.md)
+    - [Universal Methods](js-components-common-methods.md)
+    - [Animation Styles](js-components-common-animation.md)
+    - [Gradient Styles](js-components-common-gradient.md)
+    - [Transition Styles](js-components-common-transition.md)
+    - [Media Query](js-components-common-mediaquery.md)
+    - [Custom Font Styles](js-components-common-customizing-font.md)
+    - [Atomic Layout](js-components-common-atomic-layout.md)
+-   Container Components
+    - [badge](js-components-container-badge.md)
+    - [dialog](js-components-container-dialog.md)
+    - [div](js-components-container-div.md)
+    - [form](js-components-container-form.md)
+    - [list](js-components-container-list.md)
+    - [list-item](js-components-container-list-item.md)
+    - [list-item-group](js-components-container-list-item-group.md)
+    - [panel](js-components-container-panel.md)
+    - [popup](js-components-container-popup.md)
+    - [refresh](js-components-container-refresh.md)
+    - [stack](js-components-container-stack.md)
+    - [stepper](js-components-container-stepper.md)
+    - [stepper-item](js-components-container-stepper-item.md)
+    - [swiper](js-components-container-swiper.md)
+    - [tabs](js-components-container-tabs.md)
+    - [tab-bar](js-components-container-tab-bar.md)
+    - [tab-content](js-components-container-tab-content.md)
+-   Basic Components
+    - [button](js-components-basic-button.md)
+    - [chart](js-components-basic-chart.md)
+    - [divider](js-components-basic-divider.md)
+    - [image](js-components-basic-image.md)
+    - [image-animator](js-components-basic-image-animator.md)
+    - [input](js-components-basic-input.md)
+    - [label](js-components-basic-label.md)
+    - [marquee](js-components-basic-marquee.md)
+    - [menu](js-components-basic-menu.md)
+    - [option](js-components-basic-option.md)
+    - [picker](js-components-basic-picker.md)
+    - [picker-view](js-components-basic-picker-view.md)
+    - [piece](js-components-basic-piece.md)
+    - [progress](js-components-basic-progress.md)
+    - [qrcode](js-components-basic-qrcode.md)
+    - [rating](js-components-basic-rating.md)
+    - [richtext](js-components-basic-richtext.md)
+    - [search](js-components-basic-search.md)
+    - [select](js-components-basic-select.md)
+    - [slider](js-components-basic-slider.md)
+    - [span](js-components-basic-span.md)
+    - [switch](js-components-basic-switch.md)
+    - [text](js-components-basic-text.md)
+    - [textarea](js-components-basic-textarea.md)
+    - [toolbar](js-components-basic-toolbar.md)
+    - [toolbar-item](js-components-basic-toolbar-item.md)
+    - [toggle](js-components-basic-toggle.md)
+    - [web](js-components-basic-web.md)
+    - [xcomponent](js-components-basic-xcomponent.md)
+-   Media Components
+    - [video](js-components-media-video.md)
+-   Canvas Components
+    - [canvas](js-components-canvas-canvas.md)
+    - [CanvasRenderingContext2D](js-components-canvas-canvasrenderingcontext2d.md)
+    - [Image](js-components-canvas-image.md)
+    - [CanvasGradient](js-components-canvas-canvasgradient.md)
+    - [ImageData](js-components-canvas-imagedata.md)
+    - [Path2D](js-components-canvas-path2d.md)
+    - [ImageBitmap](js-components-canvas-imagebitmap.md)
+    - [OffscreenCanvas](js-components-canvas-offscreencanvas.md)
+    - [OffscreenCanvasRenderingContext2D](js-offscreencanvasrenderingcontext2d.md)
+-   Grid Components
+    - [Basic Concepts](js-components-grid-basic-concepts.md)
+    - [grid-container](js-components-grid-container.md)
+    - [grid-row](js-components-grid-row.md)
+    - [grid-col](js-components-grid-col.md)
+-   SVG Components
+    - [Universal Attributes](js-components-svg-common-attributes.md)
+    - [svg](js-components-svg.md)
+    - [rect](js-components-svg-rect.md)
+    - [circle](js-components-svg-circle.md)
+    - [ellipse](js-components-svg-ellipse.md)
+    - [path](js-components-svg-path.md)
+    - [line](js-components-svg-line.md)
+    - [polyline](js-components-svg-polyline.md)
+    - [polygon](js-components-svg-polygon.md)
+    - [text](js-components-svg-text.md)
+    - [tspan](js-components-svg-tspan.md)
+    - [textPath](js-components-svg-textpath.md)
+    - [animate](js-components-svg-animate.md)
+    - [animateMotion](js-components-svg-animatemotion.md)
+    - [animateTransform](js-components-svg-animatetransform.md)
 
-    -   Container Component
-        -   [badge](js-components-container-badge.md)
-        -   [dialog](js-components-container-dialog.md)
-        -   [div](js-components-container-div.md)
-        -   [form](js-components-container-form.md)
-        -   [list](js-components-container-list.md)
-        -   [list-item](js-components-container-list-item.md)
-        -   [list-item-group](js-components-container-list-item-group.md)
-        -   [panel](js-components-container-panel.md)
-        -   [popup](js-components-container-popup.md)
-        -   [refresh](js-components-container-refresh.md)
-        -   [stack](js-components-container-stack.md)
-        -   [stepper](js-components-container-stepper.md)
-        -   [stepper-item](js-components-container-stepper-item.md)
-        -   [swiper](js-components-container-swiper.md)
-        -   [tabs](js-components-container-tabs.md)
-        -   [tab-bar](js-components-container-tab-bar.md)
-        -   [tab-content](js-components-container-tab-content.md)
-
-    -   Basic Components
-        -   [button](js-components-basic-button.md)
-        -   [chart](js-components-basic-chart.md)
-        -   [divider](js-components-basic-divider.md)
-        -   [image](js-components-basic-image.md)
-        -   [image-animator](js-components-basic-image-animator.md)
-        -   [input](js-components-basic-input.md)
-        -   [label](js-components-basic-label.md)
-        -   [marquee](js-components-basic-marquee.md)
-        -   [menu](js-components-basic-menu.md)
-        -   [option](js-components-basic-option.md)
-        -   [picker](js-components-basic-picker.md)
-        -   [picker-view](js-components-basic-picker-view.md)
-        -   [piece](js-components-basic-piece.md)
-        -   [progress](js-components-basic-progress.md)
-        -   [qrcode](js-components-basic-qrcode.md)
-        -   [rating](js-components-basic-rating.md)
-        -   [richtext](js-components-basic-richtext.md)
-        -   [search](js-components-basic-search.md)
-        -   [select](js-components-basic-select.md)
-        -   [slider](js-components-basic-slider.md)
-        -   [span](js-components-basic-span.md)
-        -   [switch](js-components-basic-switch.md)
-        -   [text](js-components-basic-text.md)
-        -   [textarea](js-components-basic-textarea.md)
-        -   [toolbar](js-components-basic-toolbar.md)
-        -   [toolbar-item](js-components-basic-toolbar-item.md)
-        -   [toggle](js-components-basic-toggle.md)
-        -   [web](js-components-basic-web.md)
-        - [xcomponent](js-components-basic-xcomponent.md)
-    -   Media Components
-        -   [video](js-components-media-video.md)
-
-    -   Canvas Components
-        -   [canvas](js-components-canvas-canvas.md)
-        -   [CanvasRenderingContext2D](js-components-canvas-canvasrenderingcontext2d.md)
-        -   [Image](js-components-canvas-image.md)
-        -   [CanvasGradient](js-components-canvas-canvasgradient.md)
-        -   [ImageData](js-components-canvas-imagedata.md)
-        -   [Path2D](js-components-canvas-path2d.md)
-        -   [ImageBitmap](js-components-canvas-imagebitmap.md)
-        -   [OffscreenCanvas](js-components-canvas-offscreencanvas.md)
-        -   [OffscreenCanvasRenderingContext2D](js-offscreencanvasrenderingcontext2d.md)
-
-    -   Grid
-        -   [Basic Concepts](js-components-grid-basic-concepts.md)
-        -   [grid-container](js-components-grid-container.md)
-        -   [grid-row](js-components-grid-row.md)
-        -   [grid-col](js-components-grid-col.md)
-
-    -   SVG Components
-        -   [Universal Attributes](js-components-svg-common-attributes.md)
-        -   [svg](js-components-svg.md)
-        -   [rect](js-components-svg-rect.md)
-        -   [circle](js-components-svg-circle.md)
-        -   [ellipse](js-components-svg-ellipse.md)
-        -   [path](js-components-svg-path.md)
-        -   [line](js-components-svg-line.md)
-        -   [polyline](js-components-svg-polyline.md)
-        -   [polygon](js-components-svg-polygon.md)
-        -   [text](js-components-svg-text.md)
-        -   [tspan](js-components-svg-tspan.md)
-        -   [textPath](js-components-svg-textpath.md)
-        -   [animate](js-components-svg-animate.md)
-        -   [animateMotion](js-components-svg-animatemotion.md)
-        -   [animateTransform](js-components-svg-animatetransform.md)
 
 -   Custom Components
-    -   [Basic Usage](js-components-custom-basic-usage.md)
-    -   [Style Inheritance](js-components-custom-style.md)
-    -   [Custom Events](js-components-custom-events.md)
-    -   [props](js-components-custom-props.md)
-    -   [Event Parameter](js-components-custom-event-parameter.md)
-    -   [slot](js-components-custom-slot.md)
-    -   [Lifecycle Definition](js-components-custom-lifecycle.md)
-- Appendix
-    - [Type Attributes](js-appendix-types.md)
+    - [Basic Usage](js-components-custom-basic-usage.md)
+    - [Style Inheritance](js-components-custom-style.md)
+    - [Custom Events](js-components-custom-events.md)
+    - [props](js-components-custom-props.md)
+    - [Event Parameter](js-components-custom-event-parameter.md)
+    - [slot](js-components-custom-slot.md)
+    - [Lifecycle Definition](js-components-custom-lifecycle.md)
+-   [Data Type Attributes](js-appendix-types.md)
diff --git a/en/application-dev/reference/arkui-js/js-appendix-types.md b/en/application-dev/reference/arkui-js/js-appendix-types.md
index b491d59c5fef5c948bf5119fcac48e302a83f3ff..335bb726f6a1e9d3cd86adf0b5d54c493f4eb15e 100644
--- a/en/application-dev/reference/arkui-js/js-appendix-types.md
+++ b/en/application-dev/reference/arkui-js/js-appendix-types.md
@@ -1,4 +1,4 @@
-# Type Attributes
+# Data Type Attributes
 
 ## Length Type
 
diff --git a/en/application-dev/reference/arkui-js/js-components-basic-input.md b/en/application-dev/reference/arkui-js/js-components-basic-input.md
index 283e9aae6e5ad9a4e4cb72abf1e3cc716c1c40d0..1f10982593566d8ad21467a9613d260ab6e6a3ec 100644
--- a/en/application-dev/reference/arkui-js/js-components-basic-input.md
+++ b/en/application-dev/reference/arkui-js/js-components-basic-input.md
@@ -1,610 +1,239 @@
-# input<a name="EN-US_TOPIC_0000001173324647"></a>
+# input
 
-The  **<input\>**  component provides an interactive interface to receive user input. It can be a radio button, check box, button, single-line text box, and more.
+>  **NOTE**
+>
+>  This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version.
 
-## Required Permissions<a name="section11257113618419"></a>
+The **\<input>** component provides an interactive interface to receive user input. It can be a radio button, check box, button, single-line text box, and more.
+
+## Required Permissions
 
 None
 
-## Child Component<a name="section9288143101012"></a>
+
+## Child Components
 
 Not supported
 
-## Attributes<a name="section2907183951110"></a>
-
-In addition to the attributes in  [Universal Attributes](js-components-common-attributes.md), the following attributes are supported.
-
-<a name="table20633101642315"></a>
-<table><thead align="left"><tr id="row663331618238"><th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.1"><p id="aa872998ac2d84843a3c5161889afffef"><a name="aa872998ac2d84843a3c5161889afffef"></a><a name="aa872998ac2d84843a3c5161889afffef"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.2"><p id="ab2111648ee0e4f6d881be8954e7acaab"><a name="ab2111648ee0e4f6d881be8954e7acaab"></a><a name="ab2111648ee0e4f6d881be8954e7acaab"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.48%" id="mcps1.1.6.1.3"><p id="ab377d1c90900478ea4ecab51e9a058af"><a name="ab377d1c90900478ea4ecab51e9a058af"></a><a name="ab377d1c90900478ea4ecab51e9a058af"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.6.1.4"><p id="p824610360217"><a name="p824610360217"></a><a name="p824610360217"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="35.76%" id="mcps1.1.6.1.5"><p id="a1d574a0044ed42ec8a2603bc82734232"><a name="a1d574a0044ed42ec8a2603bc82734232"></a><a name="a1d574a0044ed42ec8a2603bc82734232"></a>Triggered when</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row634417439274"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p72442555275"><a name="p72442555275"></a><a name="p72442555275"></a>type</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p324455511276"><a name="p324455511276"></a><a name="p324455511276"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p16244055182716"><a name="p16244055182716"></a><a name="p16244055182716"></a>text</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p3244155102714"><a name="p3244155102714"></a><a name="p3244155102714"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p924475517275"><a name="p924475517275"></a><a name="p924475517275"></a>Type of the input component. Available values include <span id="ph15675399414"><a name="ph15675399414"></a><a name="ph15675399414"></a><strong id="b83541911123611"><a name="b83541911123611"></a><a name="b83541911123611"></a>text</strong>, <strong id="b156006161365"><a name="b156006161365"></a><a name="b156006161365"></a>email</strong>, <strong id="b1389319187364"><a name="b1389319187364"></a><a name="b1389319187364"></a>date</strong>, <strong id="b17253623133610"><a name="b17253623133610"></a><a name="b17253623133610"></a>time</strong>, <strong id="b694311245368"><a name="b694311245368"></a><a name="b694311245368"></a>number</strong>, <strong id="b8826192763614"><a name="b8826192763614"></a><a name="b8826192763614"></a>password</strong>, </span><strong id="b157607296367"><a name="b157607296367"></a><a name="b157607296367"></a>button</strong>, <strong id="b192811231193612"><a name="b192811231193612"></a><a name="b192811231193612"></a>checkbox</strong>, and <strong id="b39501932123616"><a name="b39501932123616"></a><a name="b39501932123616"></a>radio</strong>.</p>
-<p id="p1524485513274"><a name="p1524485513274"></a><a name="p1524485513274"></a>The <strong id="b59971579367"><a name="b59971579367"></a><a name="b59971579367"></a>text</strong>, <strong id="b412925983614"><a name="b412925983614"></a><a name="b412925983614"></a>email</strong>, <strong id="b42617014378"><a name="b42617014378"></a><a name="b42617014378"></a>date</strong>, <strong id="b1395915173720"><a name="b1395915173720"></a><a name="b1395915173720"></a>time</strong>, <strong id="b11407333711"><a name="b11407333711"></a><a name="b11407333711"></a>number</strong>, and <strong id="b12487347379"><a name="b12487347379"></a><a name="b12487347379"></a>password</strong> types can be dynamically switched and modified. </p>
-<p id="p17244175532712"><a name="p17244175532712"></a><a name="p17244175532712"></a>The <strong id="b66701121123710"><a name="b66701121123710"></a><a name="b66701121123710"></a>button</strong>, <strong id="b1772519228379"><a name="b1772519228379"></a><a name="b1772519228379"></a>checkbox</strong>, and <strong id="b3750102423713"><a name="b3750102423713"></a><a name="b3750102423713"></a>radio</strong> types cannot be dynamically modified. Available values include:</p>
-<a name="ul324417555275"></a><a name="ul324417555275"></a><ul id="ul324417555275"><li><strong id="b312413331652"><a name="b312413331652"></a><a name="b312413331652"></a>button</strong>: a button that can be clicked</li><li><strong id="b203263812249"><a name="b203263812249"></a><a name="b203263812249"></a>checkbox</strong>: a check box</li><li><strong id="b8292121938"><a name="b8292121938"></a><a name="b8292121938"></a>radio</strong>: a radio button that allows users to select one from multiple others with the same name</li><li><strong id="b166864913293"><a name="b166864913293"></a><a name="b166864913293"></a>text</strong>: a single-line text field</li><li><strong id="b18160637657"><a name="b18160637657"></a><a name="b18160637657"></a>email</strong>: a field used for an email address</li><li><strong id="b161243814516"><a name="b161243814516"></a><a name="b161243814516"></a>date</strong>: date control, including the year, month, and day, but excluding time</li><li><strong id="b1644983911514"><a name="b1644983911514"></a><a name="b1644983911514"></a>time</strong>: time control, without the time zone</li><li><strong id="b5368840559"><a name="b5368840559"></a><a name="b5368840559"></a>number</strong>: field for entering digits</li><li><strong id="b362814111511"><a name="b362814111511"></a><a name="b362814111511"></a>password</strong>: password field, in which characters will be shielded<div class="note" id="note45664136102"><a name="note45664136102"></a><a name="note45664136102"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p1551717289101"><a name="p1551717289101"></a><a name="p1551717289101"></a>For wearables, only <strong id="b21340211936"><a name="b21340211936"></a><a name="b21340211936"></a>button</strong>, <strong id="b14107223132"><a name="b14107223132"></a><a name="b14107223132"></a>radio</strong>, and <strong id="b1093818254310"><a name="b1093818254310"></a><a name="b1093818254310"></a>checkbox</strong> types are supported.</p>
-</div></div>
-</li></ul>
-</td>
-</tr>
-<tr id="row43454437272"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p5245185582713"><a name="p5245185582713"></a><a name="p5245185582713"></a>checked</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p202456551277"><a name="p202456551277"></a><a name="p202456551277"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1245165520272"><a name="p1245165520272"></a><a name="p1245165520272"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p6245855172718"><a name="p6245855172718"></a><a name="p6245855172718"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p12245115512279"><a name="p12245115512279"></a><a name="p12245115512279"></a>Whether the <strong id="b142024206232"><a name="b142024206232"></a><a name="b142024206232"></a>&lt;input&gt;</strong> component is selected. This attribute is valid only when <strong id="b12202112072313"><a name="b12202112072313"></a><a name="b12202112072313"></a>type</strong> is set to <strong id="b16202162042314"><a name="b16202162042314"></a><a name="b16202162042314"></a>checkbox</strong> or <strong id="b202037208232"><a name="b202037208232"></a><a name="b202037208232"></a>radio</strong>.</p>
-</td>
-</tr>
-<tr id="row834544342712"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p19245855182719"><a name="p19245855182719"></a><a name="p19245855182719"></a>name</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p2245955192720"><a name="p2245955192720"></a><a name="p2245955192720"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p14245115502719"><a name="p14245115502719"></a><a name="p14245115502719"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p32451755182718"><a name="p32451755182718"></a><a name="p32451755182718"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p20245135542717"><a name="p20245135542717"></a><a name="p20245135542717"></a>Name of the input component.</p>
-</td>
-</tr>
-<tr id="row18345124342713"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p0245185592712"><a name="p0245185592712"></a><a name="p0245185592712"></a>value</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p1224525518275"><a name="p1224525518275"></a><a name="p1224525518275"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p5245115582715"><a name="p5245115582715"></a><a name="p5245115582715"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p624515512278"><a name="p624515512278"></a><a name="p624515512278"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p0245255112710"><a name="p0245255112710"></a><a name="p0245255112710"></a>Value of the input component. When <strong id="b13677653019"><a name="b13677653019"></a><a name="b13677653019"></a>type</strong> is <strong id="b136511685302"><a name="b136511685302"></a><a name="b136511685302"></a>radio</strong>, this attribute is mandatory and the value must be unique for radio buttons with the same name.</p>
-</td>
-</tr>
-<tr id="row1360803719278"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p52451955152716"><a name="p52451955152716"></a><a name="p52451955152716"></a>placeholder</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p2246135512274"><a name="p2246135512274"></a><a name="p2246135512274"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p12462557277"><a name="p12462557277"></a><a name="p12462557277"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p6246125562716"><a name="p6246125562716"></a><a name="p6246125562716"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p4246205572711"><a name="p4246205572711"></a><a name="p4246205572711"></a>Content of the hint text. This attribute is available only when the component type is set to <strong id="b29081929613"><a name="b29081929613"></a><a name="b29081929613"></a>text</strong>, <strong id="b15573141610"><a name="b15573141610"></a><a name="b15573141610"></a>email</strong>, <strong id="b1367410610620"><a name="b1367410610620"></a><a name="b1367410610620"></a>date</strong>, <strong id="b1258719818618"><a name="b1258719818618"></a><a name="b1258719818618"></a>time</strong>, <strong id="b128485356122"><a name="b128485356122"></a><a name="b128485356122"></a>number</strong>, or <strong id="b1921103313122"><a name="b1921103313122"></a><a name="b1921103313122"></a>password</strong>.</p>
-</td>
-</tr>
-<tr id="row10729734112719"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p524615562717"><a name="p524615562717"></a><a name="p524615562717"></a>maxlength</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p4246165562713"><a name="p4246165562713"></a><a name="p4246165562713"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1246135522711"><a name="p1246135522711"></a><a name="p1246135522711"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p13246185517271"><a name="p13246185517271"></a><a name="p13246185517271"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p1224635514274"><a name="p1224635514274"></a><a name="p1224635514274"></a>Maximum number of characters that can be entered in the input box. If no value is specified, the number of characters is not limited.</p>
-</td>
-</tr>
-<tr id="row1125513210279"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p14246125513277"><a name="p14246125513277"></a><a name="p14246125513277"></a>enterkeytype</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p7246055112718"><a name="p7246055112718"></a><a name="p7246055112718"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1324615552276"><a name="p1324615552276"></a><a name="p1324615552276"></a>default</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p10246115514272"><a name="p10246115514272"></a><a name="p10246115514272"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p1824635502717"><a name="p1824635502717"></a><a name="p1824635502717"></a>Dynamic modification is not supported.</p>
-<p id="p12246255112712"><a name="p12246255112712"></a><a name="p12246255112712"></a>Available values include:</p>
-<a name="ul52461055142716"></a><a name="ul52461055142716"></a><ul id="ul52461055142716"><li>default</li><li>next</li><li>go</li><li>done</li><li>send</li><li>Search</li></ul>
-<div class="note" id="note1524765512720"><a name="note1524765512720"></a><a name="note1524765512720"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p124795592715"><a name="p124795592715"></a><a name="p124795592715"></a>The soft keyboard is automatically collapsed after you click the <strong id="b1861043823418"><a name="b1861043823418"></a><a name="b1861043823418"></a>Enter</strong> button, except when <strong id="b2064315920354"><a name="b2064315920354"></a><a name="b2064315920354"></a>next</strong> is displayed for the button.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row2461329122714"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p8247655162711"><a name="p8247655162711"></a><a name="p8247655162711"></a>headericon</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p18247145520271"><a name="p18247145520271"></a><a name="p18247145520271"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p824715572713"><a name="p824715572713"></a><a name="p824715572713"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p2247135582717"><a name="p2247135582717"></a><a name="p2247135582717"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p20247755102711"><a name="p20247755102711"></a><a name="p20247755102711"></a>Icon resource path before text input. This icon does not support click events and is unavailable for <strong id="b87532361769"><a name="b87532361769"></a><a name="b87532361769"></a>button</strong>, <strong id="b15753163612613"><a name="b15753163612613"></a><a name="b15753163612613"></a>checkbox</strong>, and <strong id="b17754736663"><a name="b17754736663"></a><a name="b17754736663"></a>radio</strong> types. The supported icon image formats are JPG, PNG, and SVG.</p>
-</td>
-</tr>
-<tr id="row16836876325"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p983712712329"><a name="p983712712329"></a><a name="p983712712329"></a>showcounter<sup id="sup19271132920334"><a name="sup19271132920334"></a><a name="sup19271132920334"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p178371971325"><a name="p178371971325"></a><a name="p178371971325"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p28374743210"><a name="p28374743210"></a><a name="p28374743210"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p6837677327"><a name="p6837677327"></a><a name="p6837677327"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p11837472328"><a name="p11837472328"></a><a name="p11837472328"></a>Whether to display the character counter for an input box. This attribute takes effect only when <strong id="b2518112655814"><a name="b2518112655814"></a><a name="b2518112655814"></a>maxlength</strong> is set.</p>
-</td>
-</tr>
-<tr id="row07211971743"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p177221571244"><a name="p177221571244"></a><a name="p177221571244"></a>menuoptions<sup id="sup154944401542"><a name="sup154944401542"></a><a name="sup154944401542"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p8722157248"><a name="p8722157248"></a><a name="p8722157248"></a>Array&lt;<a href="#table83621954963">MenuOption</a>&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p167221878414"><a name="p167221878414"></a><a name="p167221878414"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p197227713411"><a name="p197227713411"></a><a name="p197227713411"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p207221573417"><a name="p207221573417"></a><a name="p207221573417"></a>Menu options displayed after users touch the <strong id="b3847114112495"><a name="b3847114112495"></a><a name="b3847114112495"></a>More</strong> button.</p>
-</td>
-</tr>
-<tr id="row45541828184811"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p95550281483"><a name="p95550281483"></a><a name="p95550281483"></a>autofocus<sup id="sup1775142235010"><a name="sup1775142235010"></a><a name="sup1775142235010"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p1955511286485"><a name="p1955511286485"></a><a name="p1955511286485"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p6555192874812"><a name="p6555192874812"></a><a name="p6555192874812"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p3555142844817"><a name="p3555142844817"></a><a name="p3555142844817"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p135551628184820"><a name="p135551628184820"></a><a name="p135551628184820"></a>Whether to automatically obtain the focus.</p>
-<div class="note" id="note9175194313116"><a name="note9175194313116"></a><a name="note9175194313116"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p554143517446"><a name="p554143517446"></a><a name="p554143517446"></a>This attribute setting does not take effect on the application home page. You can enable a text box on the home page to automatically obtain focus, by delaying the <strong id="b435318566233"><a name="b435318566233"></a><a name="b435318566233"></a>focus</strong> method call (for about 100–500 ms) in <strong id="b1336020563235"><a name="b1336020563235"></a><a name="b1336020563235"></a>onActive</strong>.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row1261993119486"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p16196311485"><a name="p16196311485"></a><a name="p16196311485"></a>selectedstart<sup id="sup151911922125019"><a name="sup151911922125019"></a><a name="sup151911922125019"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p126191631104819"><a name="p126191631104819"></a><a name="p126191631104819"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p7619163110489"><a name="p7619163110489"></a><a name="p7619163110489"></a>-1</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p1619123120488"><a name="p1619123120488"></a><a name="p1619123120488"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p9619113118488"><a name="p9619113118488"></a><a name="p9619113118488"></a>Start position for text selection.</p>
-</td>
-</tr>
-<tr id="row1823083417484"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p42301334184813"><a name="p42301334184813"></a><a name="p42301334184813"></a>selectedend<sup id="sup759182155017"><a name="sup759182155017"></a><a name="sup759182155017"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p1523013444810"><a name="p1523013444810"></a><a name="p1523013444810"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1823053404815"><a name="p1823053404815"></a><a name="p1823053404815"></a>-1</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p162301434104819"><a name="p162301434104819"></a><a name="p162301434104819"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p2023014344489"><a name="p2023014344489"></a><a name="p2023014344489"></a>End position for text selection.</p>
-</td>
-</tr>
-<tr id="row6428183714485"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p11428837134811"><a name="p11428837134811"></a><a name="p11428837134811"></a>softkeyboardenabled<sup id="sup135541120205017"><a name="sup135541120205017"></a><a name="sup135541120205017"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p18428837114816"><a name="p18428837114816"></a><a name="p18428837114816"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p124281037144812"><a name="p124281037144812"></a><a name="p124281037144812"></a>true</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p842823714486"><a name="p842823714486"></a><a name="p842823714486"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p1642873734813"><a name="p1642873734813"></a><a name="p1642873734813"></a>Whether to display the soft keyboard during editing.</p>
-</td>
-</tr>
-<tr id="row18278391483"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p10827143911483"><a name="p10827143911483"></a><a name="p10827143911483"></a>showpasswordicon<sup id="sup65401815115011"><a name="sup65401815115011"></a><a name="sup65401815115011"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p882719398489"><a name="p882719398489"></a><a name="p882719398489"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1082753994811"><a name="p1082753994811"></a><a name="p1082753994811"></a>true</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p13827183954817"><a name="p13827183954817"></a><a name="p13827183954817"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p10828939174817"><a name="p10828939174817"></a><a name="p10828939174817"></a>Whether to display the icon at the end of the password text box. The setting is valid only when <strong id="b8922113173716"><a name="b8922113173716"></a><a name="b8922113173716"></a>type</strong> is set to <strong id="b17325183893716"><a name="b17325183893716"></a><a name="b17325183893716"></a>password</strong>.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-**Table  1**  MenuOption<sup>5+</sup>
-
-<a name="table83621954963"></a>
-<table><thead align="left"><tr id="row536212545619"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p143621541967"><a name="p143621541967"></a><a name="p143621541967"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p936215541620"><a name="p936215541620"></a><a name="p936215541620"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p23626541665"><a name="p23626541665"></a><a name="p23626541665"></a>Triggered when</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row5362254461"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p33631541265"><a name="p33631541265"></a><a name="p33631541265"></a>icon</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p536311543619"><a name="p536311543619"></a><a name="p536311543619"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p73631954762"><a name="p73631954762"></a><a name="p73631954762"></a>Path of the icon for a menu option.</p>
-</td>
-</tr>
-<tr id="row136319547613"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p12363654367"><a name="p12363654367"></a><a name="p12363654367"></a>content</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1936312549617"><a name="p1936312549617"></a><a name="p1936312549617"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1036311548616"><a name="p1036311548616"></a><a name="p1036311548616"></a>Text content of a menu option.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Styles<a name="section066012492913"></a>
-
-In addition to the styles in  [Universal Styles](js-components-common-styles.md), the following styles are supported.
-
-<a name="table168129500519"></a>
-<table><thead align="left"><tr id="row3812115020515"><th class="cellrowborder" valign="top" width="23.11768823117688%" id="mcps1.1.6.1.1"><p id="p178128502053"><a name="p178128502053"></a><a name="p178128502053"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="20.537946205379463%" id="mcps1.1.6.1.2"><p id="p781295016511"><a name="p781295016511"></a><a name="p781295016511"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="22.757724227577242%" id="mcps1.1.6.1.3"><p id="p178126501150"><a name="p178126501150"></a><a name="p178126501150"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.58924107589241%" id="mcps1.1.6.1.4"><p id="p19812950754"><a name="p19812950754"></a><a name="p19812950754"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="25.997400259974%" id="mcps1.1.6.1.5"><p id="p381218501456"><a name="p381218501456"></a><a name="p381218501456"></a>Triggered when</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row581317501655"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p12813750459"><a name="p12813750459"></a><a name="p12813750459"></a>color</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p148132501751"><a name="p148132501751"></a><a name="p148132501751"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p16813350256"><a name="p16813350256"></a><a name="p16813350256"></a>#e6000000</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p1481311501514"><a name="p1481311501514"></a><a name="p1481311501514"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p138135501758"><a name="p138135501758"></a><a name="p138135501758"></a>Font color of the single-line text box or button.</p>
-</td>
-</tr>
-<tr id="row13813175013515"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p118131250153"><a name="p118131250153"></a><a name="p118131250153"></a>font-size</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p19813155013512"><a name="p19813155013512"></a><a name="p19813155013512"></a>&lt;length&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p88134501155"><a name="p88134501155"></a><a name="p88134501155"></a>16px</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p381305019519"><a name="p381305019519"></a><a name="p381305019519"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p148131050253"><a name="p148131050253"></a><a name="p148131050253"></a>Font size of the single-line text box or button. </p>
-</td>
-</tr>
-<tr id="row481312502519"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p3813050954"><a name="p3813050954"></a><a name="p3813050954"></a>allow-scale</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p138139503518"><a name="p138139503518"></a><a name="p138139503518"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p181455012517"><a name="p181455012517"></a><a name="p181455012517"></a>true</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p8814145015518"><a name="p8814145015518"></a><a name="p8814145015518"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p12814195013511"><a name="p12814195013511"></a><a name="p12814195013511"></a>Whether the font size changes with the system's font size settings.</p>
-<div class="note" id="note1781416501358"><a name="note1781416501358"></a><a name="note1781416501358"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p13814145011511"><a name="p13814145011511"></a><a name="p13814145011511"></a>If the <strong id="b524714361237"><a name="b524714361237"></a><a name="b524714361237"></a>config-changes</strong> tag of <strong id="b19256136236"><a name="b19256136236"></a><a name="b19256136236"></a>fontSize</strong> is configured for abilities in the <strong id="b32576360318"><a name="b32576360318"></a><a name="b32576360318"></a>config.json</strong> file, the setting takes effect without application restart.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row781413506518"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p581410501158"><a name="p581410501158"></a><a name="p581410501158"></a>placeholder-color</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p1781419501555"><a name="p1781419501555"></a><a name="p1781419501555"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p4814450854"><a name="p4814450854"></a><a name="p4814450854"></a>#99000000</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p12814350357"><a name="p12814350357"></a><a name="p12814350357"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p138140501751"><a name="p138140501751"></a><a name="p138140501751"></a>Color of the hint text in the single-line text box. This attribute is available when the component type is set to <strong id="b1165245531811"><a name="b1165245531811"></a><a name="b1165245531811"></a>text</strong>, <strong id="b7887185781818"><a name="b7887185781818"></a><a name="b7887185781818"></a>email</strong>, <strong id="b662675991816"><a name="b662675991816"></a><a name="b662675991816"></a>date</strong>, <strong id="b104879121919"><a name="b104879121919"></a><a name="b104879121919"></a>time</strong>, <strong id="b936871841920"><a name="b936871841920"></a><a name="b936871841920"></a>number</strong>, or <strong id="b6737912171919"><a name="b6737912171919"></a><a name="b6737912171919"></a>password</strong>.</p>
-</td>
-</tr>
-<tr id="row58141650752"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p1381435012518"><a name="p1381435012518"></a><a name="p1381435012518"></a>font-weight</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p98141250450"><a name="p98141250450"></a><a name="p98141250450"></a>number | string</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p198141507512"><a name="p198141507512"></a><a name="p198141507512"></a>normal</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p20814185015510"><a name="p20814185015510"></a><a name="p20814185015510"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p1281455014516"><a name="p1281455014516"></a><a name="p1281455014516"></a>Font weight of the single-line text box or button. For details, see <a href="js-components-basic-text.md#section5775351116">font-weight</a> of the <strong id="b131111751153712"><a name="b131111751153712"></a><a name="b131111751153712"></a>text</strong> component.</p>
-</td>
-</tr>
-<tr id="row1167411433019"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p18674104193019"><a name="p18674104193019"></a><a name="p18674104193019"></a>caret-color<sup id="sup628114393018"><a name="sup628114393018"></a><a name="sup628114393018"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="20.537946205379463%" headers="mcps1.1.6.1.2 "><p id="p13674194173010"><a name="p13674194173010"></a><a name="p13674194173010"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="22.757724227577242%" headers="mcps1.1.6.1.3 "><p id="p12674164113010"><a name="p12674164113010"></a><a name="p12674164113010"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.58924107589241%" headers="mcps1.1.6.1.4 "><p id="p5674114183020"><a name="p5674114183020"></a><a name="p5674114183020"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.997400259974%" headers="mcps1.1.6.1.5 "><p id="p18674134153015"><a name="p18674134153015"></a><a name="p18674134153015"></a>Color of the input cursor.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Events<a name="section1721512551218"></a>
-
-In addition to the events in  [Universal Events](js-components-common-events.md), the following events are supported.
-
--   When the input component type is set to  **text**,  **email**,  **date**,  **time**,  **number**, or  **password**, the following events are supported.
-
-    <a name="table9215955923"></a>
-    <table><thead align="left"><tr id="row02158552029"><th class="cellrowborder" valign="top" width="24.852485248524854%" id="mcps1.1.4.1.1"><p id="p1121618551728"><a name="p1121618551728"></a><a name="p1121618551728"></a>Name</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="29.552955295529554%" id="mcps1.1.4.1.2"><p id="p182161855921"><a name="p182161855921"></a><a name="p182161855921"></a>Parameter</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="45.5945594559456%" id="mcps1.1.4.1.3"><p id="p921685513212"><a name="p921685513212"></a><a name="p921685513212"></a>Triggered when</p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row102168555217"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p1221625514210"><a name="p1221625514210"></a><a name="p1221625514210"></a>change</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p8216155822"><a name="p8216155822"></a><a name="p8216155822"></a>{ value:inputValue }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p18216135511213"><a name="p18216135511213"></a><a name="p18216135511213"></a>Triggered when the content entered in the text box changes. The most recent text entered by the user is returned.</p>
-    <div class="note" id="note32161955422"><a name="note32161955422"></a><a name="note32161955422"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p521616551527"><a name="p521616551527"></a><a name="p521616551527"></a>If you change the <strong id="b0472428225"><a name="b0472428225"></a><a name="b0472428225"></a>value</strong> attribute directly, this event will not be triggered.</p>
-    </div></div>
-    </td>
-    </tr>
-    <tr id="row152166550212"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p1121695515215"><a name="p1121695515215"></a><a name="p1121695515215"></a>enterkeyclick</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p15216115511211"><a name="p15216115511211"></a><a name="p15216115511211"></a>{ value:enterKey }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p162165551211"><a name="p162165551211"></a><a name="p162165551211"></a>Triggered when the <strong id="b151716216246"><a name="b151716216246"></a><a name="b151716216246"></a>Enter</strong> key on a soft keyboard is pressed. The type of the <strong id="b141714218245"><a name="b141714218245"></a><a name="b141714218245"></a>Enter</strong> key is returned, which is of the number type. Available values are as follows:</p>
-    <a name="ul121665519215"></a><a name="ul121665519215"></a><ul id="ul121665519215"><li><strong id="b1548345132518"><a name="b1548345132518"></a><a name="b1548345132518"></a>2</strong>: returned if <strong id="b184901156253"><a name="b184901156253"></a><a name="b184901156253"></a>enterkeytype</strong> is <strong id="b124911657254"><a name="b124911657254"></a><a name="b124911657254"></a>go</strong>.</li><li><strong id="b751686253"><a name="b751686253"></a><a name="b751686253"></a>3</strong>: returned if <strong id="b1052188112512"><a name="b1052188112512"></a><a name="b1052188112512"></a>enterkeytype</strong> is <strong id="b18524802520"><a name="b18524802520"></a><a name="b18524802520"></a>search</strong>.</li><li><strong id="b746419112510"><a name="b746419112510"></a><a name="b746419112510"></a>4</strong>: returned if <strong id="b74652910250"><a name="b74652910250"></a><a name="b74652910250"></a>enterkeytype</strong> is <strong id="b13465189132516"><a name="b13465189132516"></a><a name="b13465189132516"></a>send</strong>.</li><li><strong id="b14743131042519"><a name="b14743131042519"></a><a name="b14743131042519"></a>5</strong>: returned if <strong id="b16743121016252"><a name="b16743121016252"></a><a name="b16743121016252"></a>enterkeytype</strong> is <strong id="b0744191012516"><a name="b0744191012516"></a><a name="b0744191012516"></a>next</strong>.</li><li><strong id="b133514143257"><a name="b133514143257"></a><a name="b133514143257"></a>6</strong>: returned if <strong id="b113411814112516"><a name="b113411814112516"></a><a name="b113411814112516"></a>enterkeytype</strong> is <strong id="b334151416257"><a name="b334151416257"></a><a name="b334151416257"></a>default</strong>, <strong id="b1934281412257"><a name="b1934281412257"></a><a name="b1934281412257"></a>done</strong>, or is not set.</li></ul>
-    </td>
-    </tr>
-    <tr id="row1121715551027"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p92175551422"><a name="p92175551422"></a><a name="p92175551422"></a>translate<sup id="sup13217195510219"><a name="sup13217195510219"></a><a name="sup13217195510219"></a>5+</sup></p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p321795510218"><a name="p321795510218"></a><a name="p321795510218"></a>{ value: selectedText }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p92171455627"><a name="p92171455627"></a><a name="p92171455627"></a>Triggered when users click the translate button in the pop menu displayed after they select a text segment. The selected text content is returned.</p>
-    </td>
-    </tr>
-    <tr id="row1821711551524"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p1321711551229"><a name="p1321711551229"></a><a name="p1321711551229"></a>share<sup id="sup182171255223"><a name="sup182171255223"></a><a name="sup182171255223"></a>5+</sup></p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p92171555228"><a name="p92171555228"></a><a name="p92171555228"></a>{ value: selectedText }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p122171055425"><a name="p122171055425"></a><a name="p122171055425"></a>Triggered when users click the share button in the pop menu displayed after they select a text segment. The selected text content is returned.</p>
-    </td>
-    </tr>
-    <tr id="row1921717551028"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p1821716555210"><a name="p1821716555210"></a><a name="p1821716555210"></a>search<sup id="sup20217175516211"><a name="sup20217175516211"></a><a name="sup20217175516211"></a>5+</sup></p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p1421715514216"><a name="p1421715514216"></a><a name="p1421715514216"></a>{ value: selectedText }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p20217175515210"><a name="p20217175515210"></a><a name="p20217175515210"></a>Triggered when users click the search button in the pop menu displayed after they select a text segment. The selected text content is returned.</p>
-    </td>
-    </tr>
-    <tr id="row2021725516220"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p521715553212"><a name="p521715553212"></a><a name="p521715553212"></a>optionselect<sup id="sup122171855227"><a name="sup122171855227"></a><a name="sup122171855227"></a>5+</sup></p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p721885513216"><a name="p721885513216"></a><a name="p721885513216"></a>{ index:optionIndex, value: selectedText }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p721812557212"><a name="p721812557212"></a><a name="p721812557212"></a>Triggered when users click a menu option in the pop menu displayed after they select a text segment. This event is valid only when the <strong id="b168471038173918"><a name="b168471038173918"></a><a name="b168471038173918"></a>menuoptions</strong> attribute is set. The option index and selected text content are returned.</p>
-    </td>
-    </tr>
-    <tr id="row1180295735010"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p17803157175014"><a name="p17803157175014"></a><a name="p17803157175014"></a>selectchange<sup id="sup774434715119"><a name="sup774434715119"></a><a name="sup774434715119"></a>6+</sup></p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p13803157185013"><a name="p13803157185013"></a><a name="p13803157185013"></a>{ start: number, end: number }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p4803155719505"><a name="p4803155719505"></a><a name="p4803155719505"></a>Triggered when the text selection changes.</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
-
--   When the input component type is set to  **checkbox**  or  **radio**, the following events are supported.
-
-    <a name="table722013552211"></a>
-    <table><thead align="left"><tr id="row1220145519211"><th class="cellrowborder" valign="top" width="24.852485248524854%" id="mcps1.1.4.1.1"><p id="p1220755621"><a name="p1220755621"></a><a name="p1220755621"></a>Name</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="29.552955295529554%" id="mcps1.1.4.1.2"><p id="p322014550213"><a name="p322014550213"></a><a name="p322014550213"></a>Parameter</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="45.5945594559456%" id="mcps1.1.4.1.3"><p id="p322117554212"><a name="p322117554212"></a><a name="p322117554212"></a>Triggered when</p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row1622118559216"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p922116551422"><a name="p922116551422"></a><a name="p922116551422"></a>change</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p1322185512210"><a name="p1322185512210"></a><a name="p1322185512210"></a>{ checked:true | false }</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p1822119551024"><a name="p1822119551024"></a><a name="p1822119551024"></a>Triggered when the checked status of the <strong id="b13256373400"><a name="b13256373400"></a><a name="b13256373400"></a>checkbox</strong> or <strong id="b17332143714015"><a name="b17332143714015"></a><a name="b17332143714015"></a>radio</strong> button changes.</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
-
-
-## Methods<a name="section47669296127"></a>
-
-In addition to the methods in  [Universal Methods](js-components-common-methods.md), the following events are supported.
-
-<a name="t75606345ece64f818511af2963b4522d"></a>
-<table><thead align="left"><tr id="rf7e96304e96b4abcada899f917623b50"><th class="cellrowborder" valign="top" width="16.88%" id="mcps1.1.4.1.1"><p id="abdd98ec01df046a7ac2f66a3fa4eda04"><a name="abdd98ec01df046a7ac2f66a3fa4eda04"></a><a name="abdd98ec01df046a7ac2f66a3fa4eda04"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="29.12%" id="mcps1.1.4.1.2"><p id="afa86bf0c638b4860a91ea0e6255b7744"><a name="afa86bf0c638b4860a91ea0e6255b7744"></a><a name="afa86bf0c638b4860a91ea0e6255b7744"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="54%" id="mcps1.1.4.1.3"><p id="aa7783f4706e8434493b6e941e0100652"><a name="aa7783f4706e8434493b6e941e0100652"></a><a name="aa7783f4706e8434493b6e941e0100652"></a>Triggered when</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="r51da7a66ad844356a54fc7d198bbc496"><td class="cellrowborder" valign="top" width="16.88%" headers="mcps1.1.4.1.1 "><p id="a37c62c3017bc4b85813051fedae5523a"><a name="a37c62c3017bc4b85813051fedae5523a"></a><a name="a37c62c3017bc4b85813051fedae5523a"></a>focus</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.12%" headers="mcps1.1.4.1.2 "><p id="a0fa3cdedaab94e11b1c1df493e671084"><a name="a0fa3cdedaab94e11b1c1df493e671084"></a><a name="a0fa3cdedaab94e11b1c1df493e671084"></a>{focus:true|false}: If <strong id="b42842569136"><a name="b42842569136"></a><a name="b42842569136"></a>focus</strong> is not passed, the default value <strong id="b95941968149"><a name="b95941968149"></a><a name="b95941968149"></a>true</strong> is used.</p>
-</td>
-<td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.4.1.3 "><p id="abc7c81f1669e4e27bdc255ddf7c24167"><a name="abc7c81f1669e4e27bdc255ddf7c24167"></a><a name="abc7c81f1669e4e27bdc255ddf7c24167"></a>Obtains or loses the focus of a component. When the component type is set to text, email, date, time, number, or password, the input method can be displayed or collapsed.</p>
-</td>
-</tr>
-<tr id="row17342754165611"><td class="cellrowborder" valign="top" width="16.88%" headers="mcps1.1.4.1.1 "><p id="p1343054115615"><a name="p1343054115615"></a><a name="p1343054115615"></a>showError</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.12%" headers="mcps1.1.4.1.2 "><p id="p153431354175613"><a name="p153431354175613"></a><a name="p153431354175613"></a>{ error: string }</p>
-</td>
-<td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.4.1.3 "><p id="p1034315465618"><a name="p1034315465618"></a><a name="p1034315465618"></a>Displays the error message. This attribute is available when the component type is set to text, email, date, time, number, or password.</p>
-</td>
-</tr>
-<tr id="row4919162415418"><td class="cellrowborder" valign="top" width="16.88%" headers="mcps1.1.4.1.1 "><p id="p191914240419"><a name="p191914240419"></a><a name="p191914240419"></a>delete<sup id="sup1636182514275"><a name="sup1636182514275"></a><a name="sup1636182514275"></a>6+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="29.12%" headers="mcps1.1.4.1.2 "><p id="p209201424104119"><a name="p209201424104119"></a><a name="p209201424104119"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.4.1.3 "><p id="p2920424124118"><a name="p2920424124118"></a><a name="p2920424124118"></a>Deletes the text content based on the current cursor position when the input component type is set to <strong id="b4497036164114"><a name="b4497036164114"></a><a name="b4497036164114"></a>text</strong>, <strong id="b3497173619415"><a name="b3497173619415"></a><a name="b3497173619415"></a>email</strong>, <strong id="b949716360414"><a name="b949716360414"></a><a name="b949716360414"></a>date</strong>, <strong id="b5497236154118"><a name="b5497236154118"></a><a name="b5497236154118"></a>time</strong>, <strong id="b649783615419"><a name="b649783615419"></a><a name="b649783615419"></a>number</strong>, or <strong id="b1749743654115"><a name="b1749743654115"></a><a name="b1749743654115"></a>password</strong>. If the current input component does not have a cursor, the last character is deleted and the cursor is displayed by default.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Example Code<a name="section106355275448"></a>
-
-1.  Single-line text box
-
-    ```
-    <!-- xxx.hml -->
-    <div class="content">
-      <input id="input" class="input" type="text" value="" maxlength="20" enterkeytype="send"
-        headericon="/common/search.svg" placeholder="Please input text" onchange="change"
-        onenterkeyclick="enterkeyClick">
-      </input>
-      <input class="button" type="button" value="Submit" onclick="buttonClick"></input>
-    </div>
-    ```
-
-    ```
-    /* xxx.css */
-    .content {
-      width: 60%;
-      flex-direction: column;
-      align-items: center;
-    }
-    .input {
-      placeholder-color: gray;
-    }
-    .button {
-      background-color: gray;
-      margin-top: 20px;
-    }
-    ```
-
-    ```
-    // xxx.js
-    import prompt from '@system.prompt'
-    export default {
-      change(e){
-        prompt.showToast({
-          message: "value: " + e.value,
-          duration: 3000,
-        });
-      },
-      enterkeyClick(e){
-        prompt.showToast({
-          message: "enterkey clicked",
-          duration: 3000,
-        });
-      },
-      buttonClick(e){
-        this.$element("input").showError({
-          error: 'error text'
-        });
-      },
-    }
-    ```
-
-    ![](figures/1-2.png)
-
-2.  Common button
-
-    ```
-    <!-- xxx.hml -->
-    <div class="div-button">
-      <input class="button" type="button" value="Input-Button"></input>
-    </div>
-    ```
-
-    ```
-    /* xxx.css */
-    .div-button {
-      flex-direction: column;
-      align-items: center;
-      
-      
-    }
-    .button {
-      margin-top: 30px;
-      width: 280px;
-    }
-    ```
-
-    ![](figures/en-us_image_0000001198898293.png)
-
-3.  Check box
-
-    ```
-    <!-- xxx.hml -->
-    <div class="content">
-      <input onchange="checkboxOnChange" checked="true" type="checkbox"></input>
-      
-    </div>
-    ```
-
-    ```
-    /* xxx.css */
-    .content{
-      width: 100%;
-      height: 200px;
-      
-      
-      align-items: center; 
-      justify-content: center;   
-    }
-    ```
-
-    ```
-    // xxx.js
-    import prompt from '@system.prompt'
-    export default {
-      checkboxOnChange(e) {
-        prompt.showToast({
-          message:'checked: ' + e.checked,
-          duration: 3000,
-        });
-      }
-    }
-    ```
-
-    ![](figures/en-us_image_0000001173324749.png)
-
-4.  Radio button
-
-    ```
-    <!-- xxx.hml -->
-    <div class="content">
-      <input type="radio" checked='true' name="radioSample" value="radio1" onchange="onRadioChange('radio1')"></input>
-      <input type="radio" checked='false' name="radioSample" value="radio2" onchange="onRadioChange('radio2')"></input>
-      <input type="radio" checked='false' name="radioSample" value="radio3" onchange="onRadioChange('radio3')"></input>
-    </div>
-    ```
-
-    ```
-    /* xxx.css */
-    .content{
-      width: 100%;
-      height: 200px;
-      justify-content: center;
-      align-items: center;
-    }
-    ```
-
-    ```
-    // xxx.js
-    import prompt from '@system.prompt'
-    export default {
-      onRadioChange(inputValue, e) {
-        if (inputValue === e.value) {
-          prompt.showToast({
-            message: 'The chosen radio is ' + e.value,
-            duration: 3000,
-          });
-        }
-      }
-    }
-    ```
-
-    ![](figures/1-3.png)
 
+## Attributes
+
+In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported.
+
+| Name                            | Type                   | Default Value   | Mandatory| Description                                                        |
+| -------------------------------- | ----------------------- | --------- | ---- | ------------------------------------------------------------ |
+| type                             | string                  | text<br>| No  | Type of the input component. Available values include **text**, **email**, **date**, **time**, **number**, **password**, **button**, **checkbox**, and **radio**.<br>The **text**, **email**, **date**, **time**, **number**, and **password** types can be dynamically switched and modified.<br>The **button**, **checkbox**, and **radio** types cannot be dynamically modified.  <br>- **button**: a button that can be clicked.<br>- **checkbox**: a check box.<br>- **radio**: a radio button that allows users to select one from multiple others with the same name.<br>- **text**: a single-line text field.<br>- **email**: a field used for an email address.<br>- **date**: date component, including the year, month, and day, but excluding time.<br>- **time**: time component, without the time zone.<br>- **number**: field for entering digits.<br>- **password**: password field, in which characters will be shielded.|
+| checked                          | boolean                 | false     | No  | Whether the **\<input>** component is selected. This attribute is valid only when **type** is set to **checkbox** or **radio**.             |
+| name                             | string                  | -         | No  | Name of the **\<input>** component.<br>This attribute is mandatory when **type** is set to **radio**.            |
+| value                            | string                  | -         | No  | Value of the **\<input>** component. When **type** is **radio**, this attribute is mandatory and the value must be unique for radio buttons with the same name.|
+| placeholder                      | string                  | -         | No  | Content of the hint text. This attribute is available only when the component type is set to **text**, **email**, **date**, **time**, **number**, or **password**.|
+| maxlength                        | number                  | -         | No  | Maximum number of characters that can be entered in the input box. The empty value indicates no limit.|
+| enterkeytype                     | string                  | default   | No  | Type of the **Enter** key on the soft keyboard. The value cannot be dynamically updated.<br>Available values include:<br>- default<br>- next<br>- go<br>- done<br>- send<br>- search<br>Except for the **next** type, clicking the Enter key hides the soft keyboard.|
+| headericon                       | string                  | -         | No  | Icon resource path before text input. This icon does not support click events and is unavailable for **button**, **checkbox**, and **radio** types. The supported icon image formats are JPG, PNG, and SVG.|
+| showcounter<sup>5+</sup>         | boolean                 | false     | No  | Whether to display the character counter for an input box. This attribute takes effect only when **maxlength** is set.     |
+| menuoptions<sup>5+</sup>         | Array&lt;MeunOption&gt; | -         | No  | Menu options displayed after users click the **More** button.              |
+| autofocus<sup>6+</sup>           | boolean                 | false     | No  | Whether to automatically obtain focus.<br>This attribute setting does not take effect on the application home page. You can enable a text box on the home page to automatically obtain focus, by delaying the **focus** method call (for about 100–500 ms) in **onActive**.|
+| selectedstart<sup>6+</sup>       | number                  | -1        | No  | Start position for text selection.                                |
+| selectedend<sup>6+</sup>         | number                  | -1        | No  | End position for text selection.                                |
+| softkeyboardenabled<sup>6+</sup> | boolean                 | true      | No  | Whether to display the soft keyboard during editing.                                  |
+| showpasswordicon<sup>6+</sup>    | boolean                 | true      | No  | Whether to display the icon at the end of the password text box. This attribute is available only when **type** is set to **password**.        |
+
+**Table 1** MenuOption<sup>5+</sup>
+
+| Name     | Type    | Description         |
+| ------- | ------ | ----------- |
+| icon    | string | Path of the icon for a menu option.|
+| content | string | Text content of a menu option.|
+
+
+## Styles
+
+In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported.
+
+| Name                    | Type                      | Default Value    | Mandatory| Description                                                        |
+| ------------------------ | -------------------------- | ---------- | ---- | ------------------------------------------------------------ |
+| color                    | &lt;color&gt;              | \#e6000000 | No  | Font color of the single-line text box or button.                              |
+| font-size                | &lt;length&gt;             | 16px       | No  | Font size of the single-line text box or button.                              |
+| allow-scale              | boolean                    | true       | No  | Whether the font size changes with the system's font size settings.<br>If the **config-changes** tag of **fontSize** is configured for abilities in the **config.json** file, the setting takes effect without application restart.|
+| placeholder-color        | &lt;color&gt;              | \#99000000 | No  | Color of the hint text in the single-line text box. This attribute is available when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**.|
+| font-weight              | number&nbsp;\|&nbsp;string | normal     | No  | Font weight of the single-line text box or button. For details, see **font-weight** of the [**\<text>** component](../arkui-js/js-components-basic-text.md).|
+| caret-color<sup>6+</sup> | &lt;color&gt;              | -          | No  | Color of the input cursor.                                        |
+
+
+## Events
+
+In addition to the [universal events](../arkui-js/js-components-common-events.md), the following events are supported.
+
+- When **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**, the following events are supported.
+  | Name                       | Parameter                                      | Description                                      |
+  | ------------------------- | ---------------------------------------- | ---------------------------------------- |
+  | change                    | {<br>&nbsp;value: inputValue<br>&nbsp;}  | Triggered when the content entered in the input box changes. The most recent content entered by the user is returned.<br>If you change the **value** attribute directly, this event will not be triggered.|
+  | enterkeyclick             | {<br>&nbsp;value: enterKey<br>&nbsp;}    | Triggered when the **Enter** key on the soft keyboard is clicked. The type of the **Enter** key is returned, which is of the number type. Available values are as follows:<br>- **2**: returned if **enterkeytype** is **go**.<br>- **3**: returned if **enterkeytype** is **search**.<br>- **4**: returned if **enterkeytype** is **send**.<br>- **5**: returned if **enterkeytype** is **next**.<br>- **6**: returned if **enterkeytype** is **default**, **done**, or is not set.|
+  | translate<sup>5+</sup>    | {<br>&nbsp;value:&nbsp;selectedText<br>&nbsp;} | Triggered when users click the translate button in the menu displayed after they select a text segment. The selected text content is returned.|
+  | share<sup>5+</sup>        | {<br>&nbsp;value:&nbsp;selectedText<br>&nbsp;} | Triggered when users click the share button in the menu displayed after they select a text segment. The selected text content is returned.|
+  | search<sup>5+</sup>       | {<br>&nbsp;value:&nbsp;selectedText<br>&nbsp;} | Triggered when users click the search button in the menu displayed after they select a text segment. The selected text content is returned.|
+  | optionselect<sup>5+</sup> | {<br>&nbsp;index: optionIndex,<br>&nbsp;value:&nbsp;selectedText<br>&nbsp;} | Triggered when users click a menu option in the menu displayed after they select a text segment. This event is valid only when the **menuoptions** attribute is set. The option index and selected text content are returned.|
+  | selectchange<sup>6+</sup> | {<br>start:&nbsp;number,<br>end:&nbsp;number<br>&nbsp;} | Triggered when the text selection changes.                            |
+
+- When **type** is set to **checkbox** or **radio**, the following events are supported.
+  | Name    | Parameter                                      | Description                                      |
+  | ------ | ---------------------------------------- | ---------------------------------------- |
+  | change | {<br>&nbsp;checked:true&nbsp;\|&nbsp;false&nbsp;<br>} | Triggered when the checked status of the **checkbox** or **radio** button changes.|
+
+## Methods
+
+In addition to the [universal methods](../arkui-js/js-components-common-methods.md), the following methods are supported.
+
+| Name               | Parameter                                                        | Description                                                        |
+| ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| focus               | {<br>&nbsp;focus:&nbsp;true\|false<br>&nbsp;}:<br>If **focus** is not passed, the default value **true** is used.| Obtains or loses focus. When **type** is set to **text**, **email**, **date**, **time**, **number**, or password, the input method can be displayed or hidden.|
+| showError           | {<br>&nbsp;error:&nbsp;string&nbsp;<br>}                     | Displays the error message. This attribute is available when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**.|
+| delete<sup>6+</sup> | -                                                            | Deletes the text content based on the current cursor position when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**; deletes the last character and displays the cursor if the current input component does not have a cursor.|
+
+## Example
+
+1. Single-line text box
+   ```html
+   <!-- xxx.hml -->
+   <div class="content">
+     <input id="input" class="input" type="text" value="" maxlength="20" enterkeytype="send"
+       headericon="/common/search.svg" placeholder="Please input text" onchange="change"
+       onenterkeyclick="enterkeyClick">
+     </input>
+     <input class="button" type="button" value="Submit" onclick="buttonClick"></input>
+   </div>
+   ```
+
+   ```css
+   /* xxx.css */
+   .content {
+     width: 60%;
+     flex-direction: column;
+     align-items: center;
+   }
+   .input {
+     placeholder-color: gray;
+   }
+   .button {
+     background-color: gray;
+     margin-top: 20px;
+   }
+   ```
+
+   ```js
+   // xxx.js
+   import prompt from '@system.prompt'
+   export default {
+     change(e){
+       prompt.showToast({
+         message: "value: " + e.value,
+         duration: 3000,
+       });
+     },
+     enterkeyClick(e){
+       prompt.showToast({
+         message: "enterkey clicked",
+         duration: 3000,
+       });
+     },
+     buttonClick(e){
+       this.$element("input").showError({
+         error: 'error text'
+       });
+     },
+   }
+   ```
+
+   ![1-2](figures/1-2.png)
+
+2. Common button
+   ```html
+   <!-- xxx.hml -->
+   <div class="div-button">
+     <input class="button" type="button" value="Input-Button"></input>
+   </div>
+   ```
+
+   ```css
+   /* xxx.css */
+   .div-button {
+     flex-direction: column;
+     align-items: center;
+   }
+   .button {
+     margin-top: 30px;
+     width: 280px;
+   }
+   ```
+
+   ![en-us_image_0000001198898293](figures/en-us_image_0000001198898293.png)
+
+3. Check box
+   ```html
+   <!-- xxx.hml -->
+   <div class="content">
+     <input onchange="checkboxOnChange" checked="true" type="checkbox"></input>
+   </div>
+   ```
+
+   ```css
+   /* xxx.css */
+   .content{
+     width: 100%;
+     height: 200px;
+     align-items: center; 
+     justify-content: center;   
+   }
+   ```
+
+   ```js
+   // xxx.js
+   import prompt from '@system.prompt'
+   export default {
+     checkboxOnChange(e) {
+       prompt.showToast({
+         message:'checked: ' + e.checked,
+         duration: 3000,
+       });
+     }
+   }
+   ```
+
+   ![en-us_image_0000001173324749](figures/en-us_image_0000001173324749.png)
+
+4. Radio button
+   ```html
+   <!-- xxx.hml -->
+   <div class="content">
+     <input type="radio" checked='true' name="radioSample" value="radio1" onchange="onRadioChange('radio1')"></input>
+     <input type="radio" checked='false' name="radioSample" value="radio2" onchange="onRadioChange('radio2')"></input>
+     <input type="radio" checked='false' name="radioSample" value="radio3" onchange="onRadioChange('radio3')"></input>
+   </div>
+   ```
+
+   ```css
+   /* xxx.css */
+   .content{
+     width: 100%;
+     height: 200px;
+     justify-content: center;
+     align-items: center;
+   }
+   ```
+
+   ```js
+   // xxx.js
+   import prompt from '@system.prompt'
+   export default {
+     onRadioChange(inputValue, e) {
+       if (inputValue === e.value) {
+         prompt.showToast({
+           message: 'The chosen radio is ' + e.value,
+           duration: 3000,
+         });
+       }
+     }
+   }
+   ```
+
+   ![1-3](figures/1-3.png)
diff --git a/en/application-dev/reference/arkui-js/js-components-basic-marquee.md b/en/application-dev/reference/arkui-js/js-components-basic-marquee.md
index 6f8ba597ae293c90835bc5d867ebcb91eaa733ab..9f13895436ce5f1104994f9d6956deba5e04a928 100644
--- a/en/application-dev/reference/arkui-js/js-components-basic-marquee.md
+++ b/en/application-dev/reference/arkui-js/js-components-basic-marquee.md
@@ -1,215 +1,69 @@
-# marquee<a name="EN-US_TOPIC_0000001173324593"></a>
+# marquee
 
-The  **<marquee\>**  component displays single-line scrolling text.
+>  **NOTE**
+>
+>  This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version.
+>  Since API version 6, the text scrolls only when its width exceeds the width of the **\<marquee>** component.
 
-## Required Permissions<a name="section11257113618419"></a>
+The **\<marquee>** component is used to display a scrolling piece of text.
+
+## Required Permissions
 
 None
 
-## Child Component<a name="section9288143101012"></a>
+
+## Child Components
 
 Not supported
 
-## Attributes<a name="section2907183951110"></a>
 
-In addition to the attributes in  [Universal Attributes](js-components-common-attributes.md), the following attributes are supported.
+## Attributes
 
-<a name="table20633101642315"></a>
-<table><thead align="left"><tr id="row663331618238"><th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.1"><p id="aa872998ac2d84843a3c5161889afffef"><a name="aa872998ac2d84843a3c5161889afffef"></a><a name="aa872998ac2d84843a3c5161889afffef"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.2"><p id="ab2111648ee0e4f6d881be8954e7acaab"><a name="ab2111648ee0e4f6d881be8954e7acaab"></a><a name="ab2111648ee0e4f6d881be8954e7acaab"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.48%" id="mcps1.1.6.1.3"><p id="ab377d1c90900478ea4ecab51e9a058af"><a name="ab377d1c90900478ea4ecab51e9a058af"></a><a name="ab377d1c90900478ea4ecab51e9a058af"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.6.1.4"><p id="p824610360217"><a name="p824610360217"></a><a name="p824610360217"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="35.76%" id="mcps1.1.6.1.5"><p id="a1d574a0044ed42ec8a2603bc82734232"><a name="a1d574a0044ed42ec8a2603bc82734232"></a><a name="a1d574a0044ed42ec8a2603bc82734232"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row4159854131011"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p17480906111"><a name="p17480906111"></a><a name="p17480906111"></a>scrollamount</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p11480105116"><a name="p11480105116"></a><a name="p11480105116"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p9480809115"><a name="p9480809115"></a><a name="p9480809115"></a>6</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p1848070181110"><a name="p1848070181110"></a><a name="p1848070181110"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p164801809111"><a name="p164801809111"></a><a name="p164801809111"></a>Maximum length of each scroll.</p>
-</td>
-</tr>
-<tr id="row66871514109"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p84809019113"><a name="p84809019113"></a><a name="p84809019113"></a>loop</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p548000141112"><a name="p548000141112"></a><a name="p548000141112"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p8480208113"><a name="p8480208113"></a><a name="p8480208113"></a>-1</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p1948090161115"><a name="p1948090161115"></a><a name="p1948090161115"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p164801031110"><a name="p164801031110"></a><a name="p164801031110"></a>Number of rolling times. If this parameter is not set, the default value <strong id="b94021459245"><a name="b94021459245"></a><a name="b94021459245"></a>-1</strong> is used. When the value is less than or equal to <strong id="b415127958"><a name="b415127958"></a><a name="b415127958"></a>0</strong>, the marquee scrolls continuously.</p>
-</td>
-</tr>
-<tr id="row192934491109"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p44801808116"><a name="p44801808116"></a><a name="p44801808116"></a>direction</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p114809011116"><a name="p114809011116"></a><a name="p114809011116"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p1248015019119"><a name="p1248015019119"></a><a name="p1248015019119"></a>left</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p11480150191112"><a name="p11480150191112"></a><a name="p11480150191112"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p64801707115"><a name="p64801707115"></a><a name="p64801707115"></a>Direction in which the marquee scrolls, which can be <strong id="b13301427193515"><a name="b13301427193515"></a><a name="b13301427193515"></a>left</strong> or <strong id="b970462943510"><a name="b970462943510"></a><a name="b970462943510"></a>right</strong>.</p>
-</td>
-</tr>
-</tbody>
-</table>
+In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported.
 
-## Styles<a name="section14898114221220"></a>
+| Name          | Type    | Default Value | Mandatory  | Description                                      |
+| ------------ | ------ | ---- | ---- | ---------------------------------------- |
+| scrollamount | number | 6    | No   | Maximum length of each scroll.                        |
+| loop         | number | -1   | No   | Number of rolling times. If this parameter is not set, the default value **-1** is used. When the value is less than or equal to **0**, the marquee scrolls continuously.|
+| direction    | string | left | No   | Direction in which the marquee scrolls, which can be **left** or **right**.            |
 
-In addition to the styles in  [Universal Styles](js-components-common-styles.md), the following styles are supported.
 
-<a name="table155966253920"></a>
-<table><thead align="left"><tr id="row195961025998"><th class="cellrowborder" valign="top" width="20.137986201379864%" id="mcps1.1.6.1.1"><p id="p1759616251194"><a name="p1759616251194"></a><a name="p1759616251194"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="13.968603139686032%" id="mcps1.1.6.1.2"><p id="p759613251897"><a name="p759613251897"></a><a name="p759613251897"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="18.358164183581643%" id="mcps1.1.6.1.3"><p id="p1659619251099"><a name="p1659619251099"></a><a name="p1659619251099"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.519248075192481%" id="mcps1.1.6.1.4"><p id="p45961225998"><a name="p45961225998"></a><a name="p45961225998"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="40.01599840015999%" id="mcps1.1.6.1.5"><p id="p14596142511915"><a name="p14596142511915"></a><a name="p14596142511915"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row16597162517910"><td class="cellrowborder" valign="top" width="20.137986201379864%" headers="mcps1.1.6.1.1 "><p id="p2059717251991"><a name="p2059717251991"></a><a name="p2059717251991"></a>color</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.968603139686032%" headers="mcps1.1.6.1.2 "><p id="p75977251899"><a name="p75977251899"></a><a name="p75977251899"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="18.358164183581643%" headers="mcps1.1.6.1.3 "><p id="p859714251891"><a name="p859714251891"></a><a name="p859714251891"></a>#e5000000</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.519248075192481%" headers="mcps1.1.6.1.4 "><p id="p185974256916"><a name="p185974256916"></a><a name="p185974256916"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p15973251294"><a name="p15973251294"></a><a name="p15973251294"></a>Font color of the scrolling text.</p>
-</td>
-</tr>
-<tr id="row6597525594"><td class="cellrowborder" valign="top" width="20.137986201379864%" headers="mcps1.1.6.1.1 "><p id="p359710255920"><a name="p359710255920"></a><a name="p359710255920"></a>font-size</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.968603139686032%" headers="mcps1.1.6.1.2 "><p id="p11597112510915"><a name="p11597112510915"></a><a name="p11597112510915"></a>&lt;length&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="18.358164183581643%" headers="mcps1.1.6.1.3 "><p id="p45974252096"><a name="p45974252096"></a><a name="p45974252096"></a>37.5</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.519248075192481%" headers="mcps1.1.6.1.4 "><p id="p359711251697"><a name="p359711251697"></a><a name="p359711251697"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p8597132516911"><a name="p8597132516911"></a><a name="p8597132516911"></a>Font size of the scrolling text. </p>
-</td>
-</tr>
-<tr id="row1859816259917"><td class="cellrowborder" valign="top" width="20.137986201379864%" headers="mcps1.1.6.1.1 "><p id="p1259882514916"><a name="p1259882514916"></a><a name="p1259882514916"></a>allow-scale</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.968603139686032%" headers="mcps1.1.6.1.2 "><p id="p17598182515919"><a name="p17598182515919"></a><a name="p17598182515919"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="18.358164183581643%" headers="mcps1.1.6.1.3 "><p id="p145981525999"><a name="p145981525999"></a><a name="p145981525999"></a>true</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.519248075192481%" headers="mcps1.1.6.1.4 "><p id="p145981252096"><a name="p145981252096"></a><a name="p145981252096"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p7598192511919"><a name="p7598192511919"></a><a name="p7598192511919"></a>Whether the font size changes with the system's font size settings.</p>
-<div class="note" id="note185981525290"><a name="note185981525290"></a><a name="note185981525290"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p1259842517919"><a name="p1259842517919"></a><a name="p1259842517919"></a>If the <strong id="b1536242895218"><a name="b1536242895218"></a><a name="b1536242895218"></a>config-changes</strong> tag of <strong id="b6367152819525"><a name="b6367152819525"></a><a name="b6367152819525"></a>fontSize</strong> is configured for abilities in the <strong id="b2367228115217"><a name="b2367228115217"></a><a name="b2367228115217"></a>config.json</strong> file, the setting takes effect without application restart.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row659811251296"><td class="cellrowborder" valign="top" width="20.137986201379864%" headers="mcps1.1.6.1.1 "><p id="p155983256912"><a name="p155983256912"></a><a name="p155983256912"></a>font-weight</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.968603139686032%" headers="mcps1.1.6.1.2 "><p id="p155982251699"><a name="p155982251699"></a><a name="p155982251699"></a>number | string</p>
-</td>
-<td class="cellrowborder" valign="top" width="18.358164183581643%" headers="mcps1.1.6.1.3 "><p id="p16598125093"><a name="p16598125093"></a><a name="p16598125093"></a>normal</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.519248075192481%" headers="mcps1.1.6.1.4 "><p id="p8598172512913"><a name="p8598172512913"></a><a name="p8598172512913"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p75985251598"><a name="p75985251598"></a><a name="p75985251598"></a>Font weight of the scrolling text. For details, see <a href="js-components-basic-text.md#section5775351116">font-weight</a> of the <strong id="b19548144111381"><a name="b19548144111381"></a><a name="b19548144111381"></a>text</strong> component.</p>
-</td>
-</tr>
-<tr id="row155991725398"><td class="cellrowborder" valign="top" width="20.137986201379864%" headers="mcps1.1.6.1.1 "><p id="p1359915259911"><a name="p1359915259911"></a><a name="p1359915259911"></a>font-family</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.968603139686032%" headers="mcps1.1.6.1.2 "><p id="p17599112517917"><a name="p17599112517917"></a><a name="p17599112517917"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="18.358164183581643%" headers="mcps1.1.6.1.3 "><p id="p115993251911"><a name="p115993251911"></a><a name="p115993251911"></a>sans-serif</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.519248075192481%" headers="mcps1.1.6.1.4 "><p id="p145994259915"><a name="p145994259915"></a><a name="p145994259915"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p1459972510914"><a name="p1459972510914"></a><a name="p1459972510914"></a>Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font that exists in the system or the font specified by <a href="js-components-common-customizing-font.md">Custom Font Styles</a> in the family is selected as the font for the text. </p>
-</td>
-</tr>
-</tbody>
-</table>
+## Styles
 
-## Events<a name="section3892191911214"></a>
+In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported.
 
-In addition to the events in  [Universal Events](js-components-common-events.md), the following events are supported.
+| Name         | Type                        | Default Value       | Mandatory  | Description                                      |
+| ----------- | -------------------------- | ---------- | ---- | ---------------------------------------- |
+| color       | &lt;color&gt;              | \#e5000000 | No   | Font color of the scrolling text.                          |
+| font-size   | &lt;length&gt;             | 37.5       | No   | Font size of the scrolling text.                          |
+| allow-scale | boolean                    | true       | No   | Whether the font size changes with the system's font size settings.<br>If the **config-changes** tag of **fontSize** is configured for abilities in the **config.json** file, the setting takes effect without application restart.|
+| font-weight | number&nbsp;\|&nbsp;string | normal     | No   | Font weight of the scrolling text. For details, see **font-weight** of the **[\<text> component](../arkui-js/js-components-basic-text.md#styles)**.|
+| font-family | string                     | sans-serif | No   | Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the specified [custom font](../arkui-js/js-components-common-customizing-font.md) is used for the text.|
 
-<a name="table84827284164"></a>
-<table><thead align="left"><tr id="row8483172891613"><th class="cellrowborder" valign="top" width="24.852485248524854%" id="mcps1.1.4.1.1"><p id="a426b8903842d48fa8012a24ff3c997eb"><a name="a426b8903842d48fa8012a24ff3c997eb"></a><a name="a426b8903842d48fa8012a24ff3c997eb"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="29.552955295529554%" id="mcps1.1.4.1.2"><p id="a53448ba47e5e4ae9bf7774c90820e970"><a name="a53448ba47e5e4ae9bf7774c90820e970"></a><a name="a53448ba47e5e4ae9bf7774c90820e970"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="45.5945594559456%" id="mcps1.1.4.1.3"><p id="add489ff50c444f24b759162c7f4bad9a"><a name="add489ff50c444f24b759162c7f4bad9a"></a><a name="add489ff50c444f24b759162c7f4bad9a"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row16168174591613"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p2558953141613"><a name="p2558953141613"></a><a name="p2558953141613"></a>bounce(Rich)</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p10558253161617"><a name="p10558253161617"></a><a name="p10558253161617"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p65581539160"><a name="p65581539160"></a><a name="p65581539160"></a>Triggered when the marquee scrolls to the end.</p>
-</td>
-</tr>
-<tr id="row101671442171616"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p15585534167"><a name="p15585534167"></a><a name="p15585534167"></a>finish(Rich)</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p145584535165"><a name="p145584535165"></a><a name="p145584535165"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p18558125361620"><a name="p18558125361620"></a><a name="p18558125361620"></a>Triggered when the marquee finishes the specified number of scrollings (value of the <strong id="b1030012198368"><a name="b1030012198368"></a><a name="b1030012198368"></a>loop</strong> attribute). It can be triggered only when the <strong id="b15990247163611"><a name="b15990247163611"></a><a name="b15990247163611"></a>loop</strong> attribute is set to a number greater than 0.</p>
-</td>
-</tr>
-<tr id="row9227173721610"><td class="cellrowborder" valign="top" width="24.852485248524854%" headers="mcps1.1.4.1.1 "><p id="p35585536166"><a name="p35585536166"></a><a name="p35585536166"></a>start(Rich)</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.552955295529554%" headers="mcps1.1.4.1.2 "><p id="p5558115318166"><a name="p5558115318166"></a><a name="p5558115318166"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.5945594559456%" headers="mcps1.1.4.1.3 "><p id="p1955817532168"><a name="p1955817532168"></a><a name="p1955817532168"></a>Triggered when the marquee starts to scroll.</p>
-</td>
-</tr>
-</tbody>
-</table>
 
-## Methods<a name="section47669296127"></a>
+## Events
 
-In addition to the methods in  [Universal Methods](js-components-common-methods.md), the following events are supported.
+In addition to the [universal events](../arkui-js/js-components-common-events.md), the following events are supported.
 
-<a name="ta27ae6832ab647a880ab27801368ec17"></a>
-<table><thead align="left"><tr id="r00746cc3f4244fd7bf405d1640b42842"><th class="cellrowborder" valign="top" width="16.689999999999998%" id="mcps1.1.4.1.1"><p id="a6853bf471a534d9185a46033e5301a3c"><a name="a6853bf471a534d9185a46033e5301a3c"></a><a name="a6853bf471a534d9185a46033e5301a3c"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="6.5600000000000005%" id="mcps1.1.4.1.2"><p id="a2f6b46265ccd412b8be977c934e2e06e"><a name="a2f6b46265ccd412b8be977c934e2e06e"></a><a name="a2f6b46265ccd412b8be977c934e2e06e"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="76.75%" id="mcps1.1.4.1.3"><p id="ab97e815e4f734c4290f4f7cb608e45d4"><a name="ab97e815e4f734c4290f4f7cb608e45d4"></a><a name="ab97e815e4f734c4290f4f7cb608e45d4"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="rfd984b5dab4c419fb56fb95b53614076"><td class="cellrowborder" valign="top" width="16.689999999999998%" headers="mcps1.1.4.1.1 "><p id="a650170fd03b64d42894295d360ad74dd"><a name="a650170fd03b64d42894295d360ad74dd"></a><a name="a650170fd03b64d42894295d360ad74dd"></a>start</p>
-</td>
-<td class="cellrowborder" valign="top" width="6.5600000000000005%" headers="mcps1.1.4.1.2 "><p id="a634a82d9b27a449891db2c1e04622259"><a name="a634a82d9b27a449891db2c1e04622259"></a><a name="a634a82d9b27a449891db2c1e04622259"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="76.75%" headers="mcps1.1.4.1.3 "><p id="a8ab976e5b8344f9b9849843a5b30128a"><a name="a8ab976e5b8344f9b9849843a5b30128a"></a><a name="a8ab976e5b8344f9b9849843a5b30128a"></a>Starts scrolling.</p>
-</td>
-</tr>
-<tr id="r15b7a1086fd047ea984b9cb4955dd98c"><td class="cellrowborder" valign="top" width="16.689999999999998%" headers="mcps1.1.4.1.1 "><p id="aab35a49bf5d440958734b6b30ae5c129"><a name="aab35a49bf5d440958734b6b30ae5c129"></a><a name="aab35a49bf5d440958734b6b30ae5c129"></a>stop</p>
-</td>
-<td class="cellrowborder" valign="top" width="6.5600000000000005%" headers="mcps1.1.4.1.2 "><p id="aaf270b3435ba4d1ba5c038066d3d08a8"><a name="aaf270b3435ba4d1ba5c038066d3d08a8"></a><a name="aaf270b3435ba4d1ba5c038066d3d08a8"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="76.75%" headers="mcps1.1.4.1.3 "><p id="a4ea339c3428f474696fe3491579ac922"><a name="a4ea339c3428f474696fe3491579ac922"></a><a name="a4ea339c3428f474696fe3491579ac922"></a>Stops scrolling.</p>
-</td>
-</tr>
-</tbody>
-</table>
+| Name          | Parameter  | Description                                      |
+| ------------ | ---- | ---------------------------------------- |
+| bounce(Rich) | -    | Triggered when the marquee scrolls to the end.                         |
+| finish(Rich) | -    | Triggered when the marquee finishes the specified number of scrollings (value of the **loop** attribute). It can be triggered only when the **loop** attribute is set to a number greater than 0.|
+| start(Rich)  | -    | Triggered when the marquee starts to scroll.                          |
 
-## Example Code<a name="section198211501414"></a>
+## Methods
 
-```
+In addition to the [universal methods](../arkui-js/js-components-common-methods.md), the following methods are supported.
+
+| Name   | Parameter | Description   |
+| ----- | ---- | ----- |
+| start | -    | Starts scrolling.|
+| stop  | -    | Stops scrolling.|
+
+
+## Example
+
+```html
 <!-- xxx.hml -->
 <div class="container">
   <marquee id="customMarquee" class="customMarquee" scrollamount="{{scrollAmount}}" loop="{{loop}}"direction="{{marqueeDir}}"
@@ -221,7 +75,7 @@ In addition to the methods in  [Universal Methods](js-components-common-methods.
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -252,7 +106,7 @@ In addition to the methods in  [Universal Methods](js-components-common-methods.
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -279,5 +133,4 @@ export default {
 }
 ```
 
-![](figures/lite_bar.gif)
-
+![lite_bar](figures/lite_bar.gif)
diff --git a/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md b/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md
index 7c925bad746aad5bbade92971de79b1a8063d071..426e227f9009c06b9e6c82f3344719c9d988e948 100644
--- a/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md
+++ b/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md
@@ -1,577 +1,128 @@
-# picker-view<a name="EN-US_TOPIC_0000001127125108"></a>
+# picker-view
 
-The  **<picker-view\>**  component provides the view that shows an embedded scrollable selector on the screen.
+>  **NOTE**
+>
+>  This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version.
 
-## Child Components<a name="section54292411343"></a>
+The **\<picker-view>** component provides the view that shows an embedded scrollable selector on the screen.
+
+
+## Child Components
 
 Not supported
 
-## Attributes<a name="section121957126347"></a>
-
-In addition to the attributes in  [Universal Attributes](js-components-common-attributes.md), the following attributes are supported.
-
-<a name="table20633101642315"></a>
-<table><thead align="left"><tr id="row663331618238"><th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.1"><p id="aa872998ac2d84843a3c5161889afffef"><a name="aa872998ac2d84843a3c5161889afffef"></a><a name="aa872998ac2d84843a3c5161889afffef"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.2"><p id="ab2111648ee0e4f6d881be8954e7acaab"><a name="ab2111648ee0e4f6d881be8954e7acaab"></a><a name="ab2111648ee0e4f6d881be8954e7acaab"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.48%" id="mcps1.1.6.1.3"><p id="ab377d1c90900478ea4ecab51e9a058af"><a name="ab377d1c90900478ea4ecab51e9a058af"></a><a name="ab377d1c90900478ea4ecab51e9a058af"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.6.1.4"><p id="p824610360217"><a name="p824610360217"></a><a name="p824610360217"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="35.76%" id="mcps1.1.6.1.5"><p id="a1d574a0044ed42ec8a2603bc82734232"><a name="a1d574a0044ed42ec8a2603bc82734232"></a><a name="a1d574a0044ed42ec8a2603bc82734232"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row6290565914"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="p136971571796"><a name="p136971571796"></a><a name="p136971571796"></a>type</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="p36971373918"><a name="p36971373918"></a><a name="p36971373918"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="p3697774912"><a name="p3697774912"></a><a name="p3697774912"></a>text</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="p12697377919"><a name="p12697377919"></a><a name="p12697377919"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="p126974719915"><a name="p126974719915"></a><a name="p126974719915"></a>Type of the scrollable selector, which cannot be changed dynamically. Available values are as follows:</p>
-<a name="ul16977711916"></a><a name="ul16977711916"></a><ul id="ul16977711916"><li><strong id="b184817616590"><a name="b184817616590"></a><a name="b184817616590"></a>text</strong>: text selector</li><li><strong id="b116831455916"><a name="b116831455916"></a><a name="b116831455916"></a>time</strong>: time selector</li><li><strong id="b42691554144215"><a name="b42691554144215"></a><a name="b42691554144215"></a>date</strong>: date selector</li><li><strong id="b540355819423"><a name="b540355819423"></a><a name="b540355819423"></a>datetime</strong>: date and time selector</li><li><strong id="b222813410439"><a name="b222813410439"></a><a name="b222813410439"></a>multi-text</strong>: multi-column text selector</li></ul>
-</td>
-</tr>
-</tbody>
-</table>
-
-Text selector \(**type**  is  **text**\)
-
-<a name="ta708bd4856a044b79bae50a2ce6981b8"></a>
-<table><thead align="left"><tr id="re08662644cee4140ad0d5bac7978cd9b"><th class="cellrowborder" valign="top" width="24.007599240075994%" id="mcps1.1.6.1.1"><p id="af5b093e471ec47119f04bf2fe91b6f64"><a name="af5b093e471ec47119f04bf2fe91b6f64"></a><a name="af5b093e471ec47119f04bf2fe91b6f64"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.808919108089192%" id="mcps1.1.6.1.2"><p id="a8c2c2f6a645749b7852ec7dcadaca702"><a name="a8c2c2f6a645749b7852ec7dcadaca702"></a><a name="a8c2c2f6a645749b7852ec7dcadaca702"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.62913708629137%" id="mcps1.1.6.1.3"><p id="aa63c3dd750aa44fb9ec9031e632f4f5f"><a name="aa63c3dd750aa44fb9ec9031e632f4f5f"></a><a name="aa63c3dd750aa44fb9ec9031e632f4f5f"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.14928507149285%" id="mcps1.1.6.1.4"><p id="aee9661e3366543aeac6aa37e48de4c87"><a name="aee9661e3366543aeac6aa37e48de4c87"></a><a name="aee9661e3366543aeac6aa37e48de4c87"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.4050594940506%" id="mcps1.1.6.1.5"><p id="a2dc04c78fce4402d9dead84ab8412bb3"><a name="a2dc04c78fce4402d9dead84ab8412bb3"></a><a name="a2dc04c78fce4402d9dead84ab8412bb3"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="re8122915226c4596b2bffeae21e37b10"><td class="cellrowborder" valign="top" width="24.007599240075994%" headers="mcps1.1.6.1.1 "><p id="p64901432865"><a name="p64901432865"></a><a name="p64901432865"></a>range</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.808919108089192%" headers="mcps1.1.6.1.2 "><p id="p194901326610"><a name="p194901326610"></a><a name="p194901326610"></a>Array</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.62913708629137%" headers="mcps1.1.6.1.3 "><p id="p16490183216616"><a name="p16490183216616"></a><a name="p16490183216616"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.14928507149285%" headers="mcps1.1.6.1.4 "><p id="p12490132765"><a name="p12490132765"></a><a name="p12490132765"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.4050594940506%" headers="mcps1.1.6.1.5 "><p id="p879110395507"><a name="p879110395507"></a><a name="p879110395507"></a>Value range of the text selector.</p>
-<div class="note" id="note195791919121"><a name="note195791919121"></a><a name="note195791919121"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p11957191913124"><a name="p11957191913124"></a><a name="p11957191913124"></a>Use the data binding mode, for example, range = {{data}}. Declare the corresponding variable <strong id="b1056351631112"><a name="b1056351631112"></a><a name="b1056351631112"></a>data: ["15", "20", "25"]</strong> in JavaScript.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row2068183074711"><td class="cellrowborder" valign="top" width="24.007599240075994%" headers="mcps1.1.6.1.1 "><p id="p54902321765"><a name="p54902321765"></a><a name="p54902321765"></a>selected</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.808919108089192%" headers="mcps1.1.6.1.2 "><p id="p24901321469"><a name="p24901321469"></a><a name="p24901321469"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.62913708629137%" headers="mcps1.1.6.1.3 "><p id="p14901932863"><a name="p14901932863"></a><a name="p14901932863"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.14928507149285%" headers="mcps1.1.6.1.4 "><p id="p1049018321869"><a name="p1049018321869"></a><a name="p1049018321869"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.4050594940506%" headers="mcps1.1.6.1.5 "><p id="p649017329613"><a name="p649017329613"></a><a name="p649017329613"></a>Default value of the text selector. The value is the index of <strong id="b121361525737"><a name="b121361525737"></a><a name="b121361525737"></a>range</strong>.</p>
-</td>
-</tr>
-<tr id="row1045119531711"><td class="cellrowborder" valign="top" width="24.007599240075994%" headers="mcps1.1.6.1.1 "><p id="p54526530112"><a name="p54526530112"></a><a name="p54526530112"></a>indicatorprefix</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.808919108089192%" headers="mcps1.1.6.1.2 "><p id="p24521553119"><a name="p24521553119"></a><a name="p24521553119"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.62913708629137%" headers="mcps1.1.6.1.3 "><p id="p14524531315"><a name="p14524531315"></a><a name="p14524531315"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.14928507149285%" headers="mcps1.1.6.1.4 "><p id="p134526535117"><a name="p134526535117"></a><a name="p134526535117"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.4050594940506%" headers="mcps1.1.6.1.5 "><p id="p114526534115"><a name="p114526534115"></a><a name="p114526534115"></a>Prefix field added when a value is specified for the text selector.</p>
-</td>
-</tr>
-<tr id="row115191458171210"><td class="cellrowborder" valign="top" width="24.007599240075994%" headers="mcps1.1.6.1.1 "><p id="p2052015584123"><a name="p2052015584123"></a><a name="p2052015584123"></a>indicatorsuffix</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.808919108089192%" headers="mcps1.1.6.1.2 "><p id="p0520458141213"><a name="p0520458141213"></a><a name="p0520458141213"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.62913708629137%" headers="mcps1.1.6.1.3 "><p id="p25201358191214"><a name="p25201358191214"></a><a name="p25201358191214"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.14928507149285%" headers="mcps1.1.6.1.4 "><p id="p952085813124"><a name="p952085813124"></a><a name="p952085813124"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.4050594940506%" headers="mcps1.1.6.1.5 "><p id="p175201958121212"><a name="p175201958121212"></a><a name="p175201958121212"></a>Suffix field added when a value is specified for the text selector.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-Time selector \(**type**  is  **time**\)
-
-<a name="table89366820719"></a>
-<table><thead align="left"><tr id="row49367819714"><th class="cellrowborder" valign="top" width="24%" id="mcps1.1.6.1.1"><p id="p1493614815715"><a name="p1493614815715"></a><a name="p1493614815715"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.83%" id="mcps1.1.6.1.2"><p id="p2936881677"><a name="p2936881677"></a><a name="p2936881677"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.61%" id="mcps1.1.6.1.3"><p id="p79362815719"><a name="p79362815719"></a><a name="p79362815719"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.1499999999999995%" id="mcps1.1.6.1.4"><p id="p12936584719"><a name="p12936584719"></a><a name="p12936584719"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.41%" id="mcps1.1.6.1.5"><p id="p15936198876"><a name="p15936198876"></a><a name="p15936198876"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row2937108277"><td class="cellrowborder" valign="top" width="24%" headers="mcps1.1.6.1.1 "><p id="p077212191171"><a name="p077212191171"></a><a name="p077212191171"></a>containsecond</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.83%" headers="mcps1.1.6.1.2 "><p id="p1177214198714"><a name="p1177214198714"></a><a name="p1177214198714"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.61%" headers="mcps1.1.6.1.3 "><p id="p87721619275"><a name="p87721619275"></a><a name="p87721619275"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.1499999999999995%" headers="mcps1.1.6.1.4 "><p id="p127721919372"><a name="p127721919372"></a><a name="p127721919372"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.41%" headers="mcps1.1.6.1.5 "><p id="p13773101919719"><a name="p13773101919719"></a><a name="p13773101919719"></a>Whether seconds are contained.</p>
-</td>
-</tr>
-<tr id="row1293719814712"><td class="cellrowborder" valign="top" width="24%" headers="mcps1.1.6.1.1 "><p id="p577314191171"><a name="p577314191171"></a><a name="p577314191171"></a>selected</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.83%" headers="mcps1.1.6.1.2 "><p id="p177735196711"><a name="p177735196711"></a><a name="p177735196711"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.61%" headers="mcps1.1.6.1.3 "><p id="p127734191714"><a name="p127734191714"></a><a name="p127734191714"></a><span id="ph61411732205214"><a name="ph61411732205214"></a><a name="ph61411732205214"></a>Current time</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="7.1499999999999995%" headers="mcps1.1.6.1.4 "><p id="p16773151914716"><a name="p16773151914716"></a><a name="p16773151914716"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.41%" headers="mcps1.1.6.1.5 "><p id="p5241145091814"><a name="p5241145091814"></a><a name="p5241145091814"></a>Default value of the time selector, in the format of HH:mm.</p>
-<p id="p57739191974"><a name="p57739191974"></a><a name="p57739191974"></a>If seconds are contained, the format is HH:mm:ss.</p>
-</td>
-</tr>
-<tr id="row3976191332214"><td class="cellrowborder" valign="top" width="24%" headers="mcps1.1.6.1.1 "><p id="p095363112111"><a name="p095363112111"></a><a name="p095363112111"></a>hours</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.83%" headers="mcps1.1.6.1.2 "><p id="p6953193114218"><a name="p6953193114218"></a><a name="p6953193114218"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.61%" headers="mcps1.1.6.1.3 "><p id="p16934121142417"><a name="p16934121142417"></a><a name="p16934121142417"></a>24<sup id="sup169341019245"><a name="sup169341019245"></a><a name="sup169341019245"></a>1-4</sup></p>
-<p id="p81051142202817"><a name="p81051142202817"></a><a name="p81051142202817"></a>-<sup id="sup14229658122718"><a name="sup14229658122718"></a><a name="sup14229658122718"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="7.1499999999999995%" headers="mcps1.1.6.1.4 "><p id="p0953193112117"><a name="p0953193112117"></a><a name="p0953193112117"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.41%" headers="mcps1.1.6.1.5 "><p id="p1095393116216"><a name="p1095393116216"></a><a name="p1095393116216"></a>Time format used by the time selector. Available values include:</p>
-<a name="ul11382144442112"></a><a name="ul11382144442112"></a><ul id="ul11382144442112"><li><strong id="b793617752019"><a name="b793617752019"></a><a name="b793617752019"></a>12</strong>: displayed in 12-hour format and distinguished by a.m. and p.m.</li><li><strong id="b273115197214"><a name="b273115197214"></a><a name="b273115197214"></a>24</strong>: displayed in 24-hour format<div class="note" id="note189471313104"><a name="note189471313104"></a><a name="note189471313104"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p9947193114104"><a name="p9947193114104"></a><a name="p9947193114104"></a>The default value is the most commonly-used hour format in the current locale. <sup id="sup319942110314"><a name="sup319942110314"></a><a name="sup319942110314"></a>5+</sup></p>
-</div></div>
-</li></ul>
-</td>
-</tr>
-</tbody>
-</table>
-
-Date selector \(**type**  is  **date**\)
-
-<a name="table174784493618"></a>
-<table><thead align="left"><tr id="row54789491561"><th class="cellrowborder" valign="top" width="24.000000000000004%" id="mcps1.1.6.1.1"><p id="p14781849561"><a name="p14781849561"></a><a name="p14781849561"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.810000000000002%" id="mcps1.1.6.1.2"><p id="p447834912613"><a name="p447834912613"></a><a name="p447834912613"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.63%" id="mcps1.1.6.1.3"><p id="p12479749564"><a name="p12479749564"></a><a name="p12479749564"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.15%" id="mcps1.1.6.1.4"><p id="p13479749560"><a name="p13479749560"></a><a name="p13479749560"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.410000000000004%" id="mcps1.1.6.1.5"><p id="p247913495610"><a name="p247913495610"></a><a name="p247913495610"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1047910498616"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p167682562062"><a name="p167682562062"></a><a name="p167682562062"></a>start</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p67689566612"><a name="p67689566612"></a><a name="p67689566612"></a>&lt;time&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p1576817561266"><a name="p1576817561266"></a><a name="p1576817561266"></a>1970-1-1</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p476819561368"><a name="p476819561368"></a><a name="p476819561368"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p87681568618"><a name="p87681568618"></a><a name="p87681568618"></a>Start date of the date selector, in the format of YYYY-MM-DD.</p>
-</td>
-</tr>
-<tr id="row3479549162"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p117686568615"><a name="p117686568615"></a><a name="p117686568615"></a>end</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p19768115614615"><a name="p19768115614615"></a><a name="p19768115614615"></a>&lt;time&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p27686569618"><a name="p27686569618"></a><a name="p27686569618"></a>2100-12-31</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p1076912564617"><a name="p1076912564617"></a><a name="p1076912564617"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p1176915562611"><a name="p1176915562611"></a><a name="p1176915562611"></a>End date of the date selector, in the format of YYYY-MM-DD.</p>
-</td>
-</tr>
-<tr id="row147919493619"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p20769056565"><a name="p20769056565"></a><a name="p20769056565"></a>selected</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p1376935613619"><a name="p1376935613619"></a><a name="p1376935613619"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p177694568616"><a name="p177694568616"></a><a name="p177694568616"></a>Current date</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p076925617611"><a name="p076925617611"></a><a name="p076925617611"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p17695564620"><a name="p17695564620"></a><a name="p17695564620"></a>Default value of the date selector, in the format of YYYY-MM-DD.</p>
-</td>
-</tr>
-<tr id="row106371036261"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p2238125117139"><a name="p2238125117139"></a><a name="p2238125117139"></a>lunar<sup id="sup6301324133317"><a name="sup6301324133317"></a><a name="sup6301324133317"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p023825181319"><a name="p023825181319"></a><a name="p023825181319"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p18238115116134"><a name="p18238115116134"></a><a name="p18238115116134"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p0238851121311"><a name="p0238851121311"></a><a name="p0238851121311"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p14238195141316"><a name="p14238195141316"></a><a name="p14238195141316"></a>Whether the pop-up window displays the lunar calendar.</p>
-</td>
-</tr>
-<tr id="row11239329191713"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p13816132171719"><a name="p13816132171719"></a><a name="p13816132171719"></a>lunarswitch</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p2081653261720"><a name="p2081653261720"></a><a name="p2081653261720"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p1816103221715"><a name="p1816103221715"></a><a name="p1816103221715"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p1181663281714"><a name="p1181663281714"></a><a name="p1181663281714"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p781663212178"><a name="p781663212178"></a><a name="p781663212178"></a>Whether to display the lunar calendar switch in the date selector. When this switch is displayed, you can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar. </p>
-<div class="note" id="note1688512355211"><a name="note1688512355211"></a><a name="note1688512355211"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p488582345212"><a name="p488582345212"></a><a name="p488582345212"></a></p>
-</div></div>
-</td>
-</tr>
-</tbody>
-</table>
-
-Date and time selector \(**type**  is  **datetime**\)
-
-<a name="table1188511392120"></a>
-<table><thead align="left"><tr id="row16886193915128"><th class="cellrowborder" valign="top" width="24.000000000000004%" id="mcps1.1.6.1.1"><p id="p58868399129"><a name="p58868399129"></a><a name="p58868399129"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.810000000000002%" id="mcps1.1.6.1.2"><p id="p19886739161213"><a name="p19886739161213"></a><a name="p19886739161213"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.63%" id="mcps1.1.6.1.3"><p id="p138864393128"><a name="p138864393128"></a><a name="p138864393128"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.15%" id="mcps1.1.6.1.4"><p id="p288653914122"><a name="p288653914122"></a><a name="p288653914122"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.410000000000004%" id="mcps1.1.6.1.5"><p id="p1886193931212"><a name="p1886193931212"></a><a name="p1886193931212"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row288753919128"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p20887539141215"><a name="p20887539141215"></a><a name="p20887539141215"></a>selected</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p788753910126"><a name="p788753910126"></a><a name="p788753910126"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p16887539111214"><a name="p16887539111214"></a><a name="p16887539111214"></a>Current date and time</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p4887203911129"><a name="p4887203911129"></a><a name="p4887203911129"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p33848571013"><a name="p33848571013"></a><a name="p33848571013"></a>Default value of the date and time selector. The value can be in the format of MM-DD-HH-mm or YYYY-MM-DD-HH-mm. If the year is not set, the current year is used by default. The value you set is the date selected by default in the pop-up window.</p>
-</td>
-</tr>
-<tr id="row25569188246"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p7249338141710"><a name="p7249338141710"></a><a name="p7249338141710"></a>hours</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p1814251913247"><a name="p1814251913247"></a><a name="p1814251913247"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p51424195244"><a name="p51424195244"></a><a name="p51424195244"></a>24<sup id="sup1626816180414"><a name="sup1626816180414"></a><a name="sup1626816180414"></a>1-4</sup></p>
-<p id="p52731028173117"><a name="p52731028173117"></a><a name="p52731028173117"></a>-<sup id="sup627311285313"><a name="sup627311285313"></a><a name="sup627311285313"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p171426196242"><a name="p171426196242"></a><a name="p171426196242"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p1314251932418"><a name="p1314251932418"></a><a name="p1314251932418"></a>Time format used by the date and time selector. Available values include:</p>
-<a name="ul15923173119204"></a><a name="ul15923173119204"></a><ul id="ul15923173119204"><li><strong id="b113902010491"><a name="b113902010491"></a><a name="b113902010491"></a>12</strong>: displayed in 12-hour format and distinguished by a.m. and p.m.</li><li><strong id="b930736675"><a name="b930736675"></a><a name="b930736675"></a>24</strong>: displayed in 24-hour format<div class="note" id="note1880145011113"><a name="note1880145011113"></a><a name="note1880145011113"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p1988165031111"><a name="p1988165031111"></a><a name="p1988165031111"></a>The default value is the most commonly-used hour format in the current locale. <sup id="sup11183114910314"><a name="sup11183114910314"></a><a name="sup11183114910314"></a>5+</sup></p>
-</div></div>
-</li></ul>
-</td>
-</tr>
-<tr id="row1742363212240"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p1820281519182"><a name="p1820281519182"></a><a name="p1820281519182"></a>lunar<sup id="sup370711541116"><a name="sup370711541116"></a><a name="sup370711541116"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p9202131571819"><a name="p9202131571819"></a><a name="p9202131571819"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p520313152182"><a name="p520313152182"></a><a name="p520313152182"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p142031715201812"><a name="p142031715201812"></a><a name="p142031715201812"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p16203181541812"><a name="p16203181541812"></a><a name="p16203181541812"></a>Whether the pop-up window displays the lunar calendar.</p>
-</td>
-</tr>
-<tr id="row34576125180"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p120351520182"><a name="p120351520182"></a><a name="p120351520182"></a>lunarswitch</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p5203415171819"><a name="p5203415171819"></a><a name="p5203415171819"></a>boolean</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p120317151181"><a name="p120317151181"></a><a name="p120317151181"></a>false</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p16203115101819"><a name="p16203115101819"></a><a name="p16203115101819"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p12203111510184"><a name="p12203111510184"></a><a name="p12203111510184"></a>Whether to display the lunar calendar switch in the date and time selector. When this switch is displayed, you can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar. </p>
-<div class="note" id="note11541837195218"><a name="note11541837195218"></a><a name="note11541837195218"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p454119371529"><a name="p454119371529"></a><a name="p454119371529"></a>
-</div></div>
-</td>
-</tr>
-</tbody>
-</table>
-
-Multi-column text selector \(**type**  is  **multi-text**\)
-
-<a name="table1886619321772"></a>
-<table><thead align="left"><tr id="row198671332179"><th class="cellrowborder" valign="top" width="24.000000000000004%" id="mcps1.1.6.1.1"><p id="p168677321871"><a name="p168677321871"></a><a name="p168677321871"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.810000000000002%" id="mcps1.1.6.1.2"><p id="p38670322711"><a name="p38670322711"></a><a name="p38670322711"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.63%" id="mcps1.1.6.1.3"><p id="p178670321276"><a name="p178670321276"></a><a name="p178670321276"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="7.15%" id="mcps1.1.6.1.4"><p id="p9867183215719"><a name="p9867183215719"></a><a name="p9867183215719"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.410000000000004%" id="mcps1.1.6.1.5"><p id="p168671324711"><a name="p168671324711"></a><a name="p168671324711"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row3757154961319"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p12757204951314"><a name="p12757204951314"></a><a name="p12757204951314"></a>columns</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p13757124918137"><a name="p13757124918137"></a><a name="p13757124918137"></a>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p0757144914132"><a name="p0757144914132"></a><a name="p0757144914132"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p14757149111317"><a name="p14757149111317"></a><a name="p14757149111317"></a>Yes</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p1675884931313"><a name="p1675884931313"></a><a name="p1675884931313"></a>Number of columns in the multi-column text selector.</p>
-</td>
-</tr>
-<tr id="row3867103214710"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p793074416717"><a name="p793074416717"></a><a name="p793074416717"></a>range</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p793010441976"><a name="p793010441976"></a><a name="p793010441976"></a>Two-dimensional array</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p7930174418712"><a name="p7930174418712"></a><a name="p7930174418712"></a>-</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p2930444971"><a name="p2930444971"></a><a name="p2930444971"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p139301644675"><a name="p139301644675"></a><a name="p139301644675"></a>Items of the multi-column text selector. <strong id="b164211558164916"><a name="b164211558164916"></a><a name="b164211558164916"></a>range</strong> is a two-dimensional array that indicates the number of columns. Each item in the array indicates the data of each column, for example, <strong id="b1751216441149"><a name="b1751216441149"></a><a name="b1751216441149"></a>[["a","b"], ["c","d"]]</strong>.</p>
-<div class="note" id="note112201642121219"><a name="note112201642121219"></a><a name="note112201642121219"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p8220114221212"><a name="p8220114221212"></a><a name="p8220114221212"></a>Use the data binding mode, for example, range = {{data}}. Declare the corresponding variable <strong id="b4470649201410"><a name="b4470649201410"></a><a name="b4470649201410"></a>data: [["a","b"], ["c","d"]]</strong> in the JavaScript.</p>
-</div></div>
-</td>
-</tr>
-<tr id="row18671332572"><td class="cellrowborder" valign="top" width="24.000000000000004%" headers="mcps1.1.6.1.1 "><p id="p693016441273"><a name="p693016441273"></a><a name="p693016441273"></a>selected</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.810000000000002%" headers="mcps1.1.6.1.2 "><p id="p159306448720"><a name="p159306448720"></a><a name="p159306448720"></a>Array</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.63%" headers="mcps1.1.6.1.3 "><p id="p18930544471"><a name="p18930544471"></a><a name="p18930544471"></a>0,0,0,...</p>
-</td>
-<td class="cellrowborder" valign="top" width="7.15%" headers="mcps1.1.6.1.4 "><p id="p69305448719"><a name="p69305448719"></a><a name="p69305448719"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.410000000000004%" headers="mcps1.1.6.1.5 "><p id="p12930144373"><a name="p12930144373"></a><a name="p12930144373"></a>Default value of the multi-column text selector, which is an array consisting of the indexes of the selected items in each column.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Styles<a name="section198061172344"></a>
-
-In addition to the styles in  [Universal Styles](js-components-common-styles.md), the following styles are supported.
-
-<a name="table94919235408"></a>
-<table><thead align="left"><tr id="row1349111237406"><th class="cellrowborder" valign="top" width="23.11768823117688%" id="mcps1.1.6.1.1"><p id="p13491122316409"><a name="p13491122316409"></a><a name="p13491122316409"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="20.477952204779523%" id="mcps1.1.6.1.2"><p id="p649192317408"><a name="p649192317408"></a><a name="p649192317408"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="10.47895210478952%" id="mcps1.1.6.1.3"><p id="p1849162384015"><a name="p1849162384015"></a><a name="p1849162384015"></a>Default Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="5.909409059094091%" id="mcps1.1.6.1.4"><p id="p449162318408"><a name="p449162318408"></a><a name="p449162318408"></a>Mandatory</p>
-</th>
-<th class="cellrowborder" valign="top" width="40.01599840015999%" id="mcps1.1.6.1.5"><p id="p12491102344016"><a name="p12491102344016"></a><a name="p12491102344016"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row114923234409"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p1849262316408"><a name="p1849262316408"></a><a name="p1849262316408"></a>color</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p1249252318405"><a name="p1249252318405"></a><a name="p1249252318405"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p9492162315401"><a name="p9492162315401"></a><a name="p9492162315401"></a>#ffffff</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p134923233404"><a name="p134923233404"></a><a name="p134923233404"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p84926239401"><a name="p84926239401"></a><a name="p84926239401"></a>Font color of a candidate item.</p>
-</td>
-</tr>
-<tr id="row1249232316406"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p14492122354013"><a name="p14492122354013"></a><a name="p14492122354013"></a>font-size</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p249222310403"><a name="p249222310403"></a><a name="p249222310403"></a>&lt;length&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p1149212231402"><a name="p1149212231402"></a><a name="p1149212231402"></a>16px</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p1849282317409"><a name="p1849282317409"></a><a name="p1849282317409"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p19492112316406"><a name="p19492112316406"></a><a name="p19492112316406"></a>Font size of a candidate item. The value is of the length type, in pixels.</p>
-</td>
-</tr>
-<tr id="row1249262314017"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p54925236401"><a name="p54925236401"></a><a name="p54925236401"></a>selected-color</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p449219234408"><a name="p449219234408"></a><a name="p449219234408"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p54924238408"><a name="p54924238408"></a><a name="p54924238408"></a>#ff0a69f7</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p949242334013"><a name="p949242334013"></a><a name="p949242334013"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p20492152334010"><a name="p20492152334010"></a><a name="p20492152334010"></a>Font color of the selected item.</p>
-</td>
-</tr>
-<tr id="row10492423134013"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p174938237409"><a name="p174938237409"></a><a name="p174938237409"></a>selected-font-size</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p9493182314010"><a name="p9493182314010"></a><a name="p9493182314010"></a>&lt;length&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p16493223104019"><a name="p16493223104019"></a><a name="p16493223104019"></a>20px</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p74931223124013"><a name="p74931223124013"></a><a name="p74931223124013"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p449342311407"><a name="p449342311407"></a><a name="p449342311407"></a>Font size of the selected item. The value is of the length type, in pixels.</p>
-</td>
-</tr>
-<tr id="row84941623134017"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p104941323114011"><a name="p104941323114011"></a><a name="p104941323114011"></a>disappear-color<sup id="sup54941523144015"><a name="sup54941523144015"></a><a name="sup54941523144015"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p349412319400"><a name="p349412319400"></a><a name="p349412319400"></a>&lt;color&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p14942236409"><a name="p14942236409"></a><a name="p14942236409"></a>#ffffff</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p10494123164013"><a name="p10494123164013"></a><a name="p10494123164013"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p20494323144012"><a name="p20494323144012"></a><a name="p20494323144012"></a>Font color of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.</p>
-<div class="note" id="note682125718522"><a name="note682125718522"></a><a name="note682125718522"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p17821185711521"><a name="p17821185711521"></a><a name="p17821185711521"></a></p>
-</div></div>
-</td>
-</tr>
-<tr id="row1949432318405"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p1549419237407"><a name="p1549419237407"></a><a name="p1549419237407"></a>disappear-font-size<sup id="sup0494132313404"><a name="sup0494132313404"></a><a name="sup0494132313404"></a>5+</sup></p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p144940238404"><a name="p144940238404"></a><a name="p144940238404"></a>&lt;length&gt;</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p64941023194020"><a name="p64941023194020"></a><a name="p64941023194020"></a>14px</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p1949522364020"><a name="p1949522364020"></a><a name="p1949522364020"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p1549532364020"><a name="p1549532364020"></a><a name="p1549532364020"></a>Font size of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.</p>
-<div class="note" id="note17211975317"><a name="note17211975317"></a><a name="note17211975317"></a><span class="notetitle"> NOTE: </span><div class="notebody"><p id="p1821895535"><a name="p1821895535"></a><a name="p1821895535"></a></p>
-</div></div>
-</td>
-</tr>
-<tr id="row19495152311405"><td class="cellrowborder" valign="top" width="23.11768823117688%" headers="mcps1.1.6.1.1 "><p id="p154951237400"><a name="p154951237400"></a><a name="p154951237400"></a>font-family</p>
-</td>
-<td class="cellrowborder" valign="top" width="20.477952204779523%" headers="mcps1.1.6.1.2 "><p id="p3495192316402"><a name="p3495192316402"></a><a name="p3495192316402"></a>string</p>
-</td>
-<td class="cellrowborder" valign="top" width="10.47895210478952%" headers="mcps1.1.6.1.3 "><p id="p8495172324010"><a name="p8495172324010"></a><a name="p8495172324010"></a>sans-serif</p>
-</td>
-<td class="cellrowborder" valign="top" width="5.909409059094091%" headers="mcps1.1.6.1.4 "><p id="p134951723154010"><a name="p134951723154010"></a><a name="p134951723154010"></a>No</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.01599840015999%" headers="mcps1.1.6.1.5 "><p id="p124957233408"><a name="p124957233408"></a><a name="p124957233408"></a>Font type of an item. Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the font specified by <a href="js-components-common-customizing-font.md">Custom Font Styles</a> is used for the text</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Events<a name="section103398253399"></a>
+
+## Attributes
+
+In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported.
+
+| Name  | Type    | Default Value | Mandatory  | Description                                      |
+| ---- | ------ | ---- | ---- | ---------------------------------------- |
+| type | string | text | No   | Type of the scrollable selector, which cannot be changed dynamically. Available values are as follows:<br>- **text**: text selector.<br>- **time**: time selector.<br>- **date**: date selector.<br>- **datetime**: date and time selector.<br>- **multi-text**: multi-column text selector.|
+
+Text selector (**type** is **text**)
+
+| Name             | Type    | Default Value | Mandatory  | Description                                      |
+| --------------- | ------ | ---- | ---- | ---------------------------------------- |
+| range           | Array  | -    | No   | Value range of the text selector.<br>Use the data binding mode, for example, `range = {{data}}`. Declare the corresponding variable `data: ["15", "20", "25"]` in JavaScript.|
+| selected        | string | 0    | No   | Default value of the text selector. The value is the index of **range**.            |
+| indicatorprefix | string | -    | No   | Prefix field added when a value is specified for the text selector.                        |
+| indicatorsuffix | string | -    | No   | Suffix field added when a value is specified for the text selector.                        |
+
+Time selector (**type** is **time**)
+
+| Name           | Type     | Default Value                                | Mandatory  | Description                                      |
+| ------------- | ------- | ----------------------------------- | ---- | ---------------------------------------- |
+| containsecond | boolean | false                               | No   | Whether seconds are contained.                             |
+| selected      | string  | Current time                               | No   | Default value of the time selector, in the format of HH:mm.<br>If seconds are contained, the format is HH:mm:ss.|
+| hours         | number  | 24<sup>1-4</sup> | No   | Time format used by the time selector. Available values are as follows:<br>- **12**: displayed in 12-hour format and distinguished by a.m. and p.m.<br>- **24**: displayed in 24-hour format.<br>Since API version 5, the default value is the most commonly-used hour format in the current locale.|
+
+Date selector (**type** is **date**)
+
+| Name                | Type          | Default Value       | Mandatory  | Description                                      |
+| ------------------ | ------------ | ---------- | ---- | ---------------------------------------- |
+| start              | &lt;time&gt; | 1970-1-1   | No   | Start date of the date selector, in the format of YYYY-MM-DD.       |
+| end                | &lt;time&gt; | 2100-12-31 | No   | End date of the date selector, in the format of YYYY-MM-DD.       |
+| selected           | string       | Current date      | No   | Default value of the date selector, in the format of YYYY-MM-DD.      |
+| lunar<sup>5+</sup> | boolean      | false      | No   | Whether the pop-up window displays the lunar calendar.                     |
+| lunarswitch        | boolean      | false      | No   | Whether to display the lunar calendar switch in the date selector. When this switch is displayed, the user can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.|
+
+Date and time selector (**type** is **datetime**)
+
+| Name                | Type     | Default Value                                | Mandatory  | Description                                      |
+| ------------------ | ------- | ----------------------------------- | ---- | ---------------------------------------- |
+| selected           | string  | Current date and time                             | No   | Default value of the date and time selector. The value can be in the format of MM-DD-HH-mm or YYYY-MM-DD-HH-mm. If the year is not set, the current year is used by default. The value you set is the date selected by default in the pop-up window.|
+| hours              | number  | 24<sup>1-4</sup> | No   | Time format used by the date and time selector. Available values are as follows:<br>- **12**: displayed in 12-hour format and distinguished by a.m. and p.m.<br>- **24**: displayed in 24-hour format.<br>Since API version 5, the default value is the most commonly-used hour format in the current locale.|
+| lunar<sup>5+</sup> | boolean | false                               | No   | Whether the pop-up window displays the lunar calendar.                   |
+| lunarswitch        | boolean | false                               | No   | Whether to display the lunar calendar switch in the date and time selector. When this switch is displayed, the user can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.|
+
+Multi-column text selector (**type** is **multi-text**)
+
+| Name      | Type     | Default Value      | Mandatory  | Description                                      |
+| -------- | ------- | --------- | ---- | ---------------------------------------- |
+| columns  | number  | -         | Yes   | Number of columns in the multi-column text selector.                           |
+| range    | Two-dimensional array| -         | No   | Items of the multi-column text selector. The value is a two-dimensional array that indicates the number of columns. Each item in the array indicates the data of each column, for example, **[["a", "b"], ["c", "d"]]**.<br>Use the data binding mode, for example, `range = {{data}}`. Declare the corresponding variable `data: ["15", "20", "25"]` in JavaScript.|
+| selected | Array   | [0,0,0,…]| No   | Default value of the multi-column text selector, which is an array consisting of the indexes of the selected items in each column.|
+
+
+## Styles
+
+In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported.
+
+| Name                              | Type            | Default Value       | Mandatory  | Description                                      |
+| -------------------------------- | -------------- | ---------- | ---- | ---------------------------------------- |
+| color                            | &lt;color&gt;  | \#ffffff   | No   | Font color of a candidate item.                                |
+| font-size                        | &lt;length&gt; | 16px       | No   | Font size of a candidate item. The value is of the length type, in pixels.                  |
+| selected-color                   | &lt;color&gt;  | #ff0a69f7  | No   | Font color of the selected item.                                |
+| selected-font-size               | &lt;length&gt; | 20px       | No   | Font size of the selected item. The value is of the length type, in pixels.                  |
+| disappear-color<sup>5+</sup>     | &lt;color&gt;  | \#ffffff   | No   | Font color of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.  |
+| disappear-font-size<sup>5+</sup> | &lt;length&gt; | 14px       | No   | Font size of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.  |
+| font-family                      | string         | sans-serif | No   | Font family of the selector, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the specified [custom font](../arkui-js/js-components-common-customizing-font.md) is used for the text.|
+
+
+## Events
 
 The following events are supported.
 
-Text selector \(**type**  is  **text**\)
-
-<a name="table17339225123915"></a>
-<table><thead align="left"><tr id="row1339925143920"><th class="cellrowborder" valign="top" width="16.16161616161616%" id="mcps1.1.4.1.1"><p id="p8340925103911"><a name="p8340925103911"></a><a name="p8340925103911"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="41.41414141414141%" id="mcps1.1.4.1.2"><p id="p2340325113912"><a name="p2340325113912"></a><a name="p2340325113912"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="42.42424242424242%" id="mcps1.1.4.1.3"><p id="p1534013255394"><a name="p1534013255394"></a><a name="p1534013255394"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row15340192543910"><td class="cellrowborder" valign="top" width="16.16161616161616%" headers="mcps1.1.4.1.1 "><p id="p334016258395"><a name="p334016258395"></a><a name="p334016258395"></a>change</p>
-</td>
-<td class="cellrowborder" valign="top" width="41.41414141414141%" headers="mcps1.1.4.1.2 "><p id="p93401725183918"><a name="p93401725183918"></a><a name="p93401725183918"></a>{ newValue: newValue, newSelected: newSelected }</p>
-</td>
-<td class="cellrowborder" valign="top" width="42.42424242424242%" headers="mcps1.1.4.1.3 "><p id="p17340122515397"><a name="p17340122515397"></a><a name="p17340122515397"></a>Triggered when a value is specified for the text selector.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-Time selector \(**type**  is  **time**\)
-
-<a name="table13340325133918"></a>
-<table><thead align="left"><tr id="row20340125143918"><th class="cellrowborder" valign="top" width="16.16161616161616%" id="mcps1.1.4.1.1"><p id="p14340152533917"><a name="p14340152533917"></a><a name="p14340152533917"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="41.41414141414141%" id="mcps1.1.4.1.2"><p id="p1634082553920"><a name="p1634082553920"></a><a name="p1634082553920"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="42.42424242424242%" id="mcps1.1.4.1.3"><p id="p134072523914"><a name="p134072523914"></a><a name="p134072523914"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1434032553920"><td class="cellrowborder" valign="top" width="16.16161616161616%" headers="mcps1.1.4.1.1 "><p id="p3341625183910"><a name="p3341625183910"></a><a name="p3341625183910"></a>change</p>
-</td>
-<td class="cellrowborder" valign="top" width="41.41414141414141%" headers="mcps1.1.4.1.2 "><p id="p1634122513911"><a name="p1634122513911"></a><a name="p1634122513911"></a>{ hour: hour, minute: minute<span id="ph734120255396"><a name="ph734120255396"></a><a name="ph734120255396"></a>, [second:second] </span>}</p>
-</td>
-<td class="cellrowborder" valign="top" width="42.42424242424242%" headers="mcps1.1.4.1.3 "><p id="p4341225133916"><a name="p4341225133916"></a><a name="p4341225133916"></a>Triggered when a value is specified for the time selector.</p>
-<p id="p1341192514397"><a name="p1341192514397"></a><a name="p1341192514397"></a>If seconds are contained, the value contains hour, minute, and second.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-Date selector \(**type**  is  **date**\)
-
-<a name="table103414254397"></a>
-<table><thead align="left"><tr id="row234142553912"><th class="cellrowborder" valign="top" width="15.370000000000001%" id="mcps1.1.4.1.1"><p id="p7341125153916"><a name="p7341125153916"></a><a name="p7341125153916"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="34.22%" id="mcps1.1.4.1.2"><p id="p1834182593915"><a name="p1834182593915"></a><a name="p1834182593915"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="50.41%" id="mcps1.1.4.1.3"><p id="p5341142593910"><a name="p5341142593910"></a><a name="p5341142593910"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row83411325103912"><td class="cellrowborder" valign="top" width="15.370000000000001%" headers="mcps1.1.4.1.1 "><p id="p6341122553914"><a name="p6341122553914"></a><a name="p6341122553914"></a>change</p>
-</td>
-<td class="cellrowborder" valign="top" width="34.22%" headers="mcps1.1.4.1.2 "><p id="p17341192563911"><a name="p17341192563911"></a><a name="p17341192563911"></a>{ year:year, month:month, day:day }</p>
-</td>
-<td class="cellrowborder" valign="top" width="50.41%" headers="mcps1.1.4.1.3 "><p id="p103419259392"><a name="p103419259392"></a><a name="p103419259392"></a>Triggered when a value is specified for the date selector.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-Date and time selector \(**type**  is  **datetime**\)
-
-<a name="table6342192514395"></a>
-<table><thead align="left"><tr id="row43421725183919"><th class="cellrowborder" valign="top" width="15.370000000000001%" id="mcps1.1.4.1.1"><p id="p17342325173911"><a name="p17342325173911"></a><a name="p17342325173911"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="34.22%" id="mcps1.1.4.1.2"><p id="p63421825113915"><a name="p63421825113915"></a><a name="p63421825113915"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="50.41%" id="mcps1.1.4.1.3"><p id="p634217257395"><a name="p634217257395"></a><a name="p634217257395"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1234216257392"><td class="cellrowborder" valign="top" width="15.370000000000001%" headers="mcps1.1.4.1.1 "><p id="p5342725203916"><a name="p5342725203916"></a><a name="p5342725203916"></a>change</p>
-</td>
-<td class="cellrowborder" valign="top" width="34.22%" headers="mcps1.1.4.1.2 "><p id="p20342132512395"><a name="p20342132512395"></a><a name="p20342132512395"></a>{ year:year, month:month, day:day,  hour:hour, minute:minute }</p>
-</td>
-<td class="cellrowborder" valign="top" width="50.41%" headers="mcps1.1.4.1.3 "><p id="p11342102563910"><a name="p11342102563910"></a><a name="p11342102563910"></a>Triggered when a value is specified for the date and time selector.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-Multi-text selector \(**type**  is  **multi-text**\)
-
-<a name="table5342325203913"></a>
-<table><thead align="left"><tr id="row153422255390"><th class="cellrowborder" valign="top" width="13.969999999999999%" id="mcps1.1.4.1.1"><p id="p153431725153916"><a name="p153431725153916"></a><a name="p153431725153916"></a>Name</p>
-</th>
-<th class="cellrowborder" valign="top" width="36.9%" id="mcps1.1.4.1.2"><p id="p11343102523916"><a name="p11343102523916"></a><a name="p11343102523916"></a>Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="49.13%" id="mcps1.1.4.1.3"><p id="p16343925193913"><a name="p16343925193913"></a><a name="p16343925193913"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row103430256392"><td class="cellrowborder" valign="top" width="13.969999999999999%" headers="mcps1.1.4.1.1 "><p id="p19343122514399"><a name="p19343122514399"></a><a name="p19343122514399"></a>columnchange</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.9%" headers="mcps1.1.4.1.2 "><p id="p12343102573913"><a name="p12343102573913"></a><a name="p12343102573913"></a>{ column:column, newValue:newValue, newSelected:newSelected }</p>
-</td>
-<td class="cellrowborder" valign="top" width="49.13%" headers="mcps1.1.4.1.3 "><p id="p1534352593917"><a name="p1534352593917"></a><a name="p1534352593917"></a>Triggered when the value of a column in the multi-column selector changes. <strong id="b3821122445914"><a name="b3821122445914"></a><a name="b3821122445914"></a>column</strong> indicates the column whose value has changed, <strong id="b15827124135915"><a name="b15827124135915"></a><a name="b15827124135915"></a>newValue</strong> indicates the selected value, and <strong id="b782722495913"><a name="b782722495913"></a><a name="b782722495913"></a>newSelected</strong> indicates the index of the selected value.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Methods<a name="section718304515396"></a>
+Text selector (**type** is **text**)
+
+| Name    | Parameter                                      | Description             |
+| ------ | ---------------------------------------- | --------------- |
+| change | {&nbsp;newValue:&nbsp;newValue,&nbsp;newSelected:&nbsp;newSelected&nbsp;} | Triggered when a value is specified for the text selector.|
+
+Time selector (**type** is **time**)
+
+| Name    | Parameter                                      | Description                             |
+| ------ | ---------------------------------------- | ------------------------------- |
+| change | {&nbsp;hour:&nbsp;hour,&nbsp;minute:&nbsp;minute,&nbsp;[second:second]} | Triggered when a value is specified for the time selector.<br>If seconds are contained, the value contains hour, minute, and second.|
+
+Date selector (**type** is **date**)
+
+| Name    | Parameter                                      | Description             |
+| ------ | ---------------------------------------- | --------------- |
+| change | {&nbsp;year:year,&nbsp;month:month,&nbsp;day:day&nbsp;} | Triggered when a value is specified for the date selector.|
+
+Date and time selector (**type** is **datetime**)
+
+| Name    | Parameter                                      | Description               |
+| ------ | ---------------------------------------- | ----------------- |
+| change | {&nbsp;year:year,&nbsp;month:month,&nbsp;day:day,&nbsp;&nbsp;hour:hour,&nbsp;minute:minute&nbsp;} | Triggered when a value is specified for the date and time selector.|
+
+Multi-text selector (**type** is **multi-text**)
+
+| Name          | Parameter                                      | Description                                      |
+| ------------ | ---------------------------------------- | ---------------------------------------- |
+| columnchange | {&nbsp;column:column,&nbsp;newValue:newValue,&nbsp;newSelected:newSelected&nbsp;} | Triggered when the value of a column in the multi-column selector changes. <br>**column**: column whose value has changed. <br>**newValue**: selected value. <br>**newSelected**: index of the selected value.|
+
+
+## Methods
 
 Not supported
 
-## Example Code<a name="section738534695417"></a>
 
-```
+## Example
+
+```html
 <!-- xxx.hml -->
 <div class="container" @swipe="handleSwipe">
   <text class="title">
@@ -581,7 +132,7 @@ Not supported
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -603,7 +154,7 @@ Not supported
 }
 ```
 
-```
+```js
 /* xxx.js */
 export default {
   data: {
@@ -633,5 +184,4 @@ export default {
 }
 ```
 
-![](figures/lite_bar-4.png)
-
+![lite_bar-4](figures/lite_bar-4.png)
diff --git a/en/application-dev/reference/arkui-ts/Readme-EN.md b/en/application-dev/reference/arkui-ts/Readme-EN.md
index 6b9270ec688ba6470e5bcde047ea964c15b209bb..a487890669ef23b80304bf82afff664a2008da05 100644
--- a/en/application-dev/reference/arkui-ts/Readme-EN.md
+++ b/en/application-dev/reference/arkui-ts/Readme-EN.md
@@ -1,133 +1,138 @@
 # TypeScript-based Declarative Development Paradigm
 
-- Components
-    - Universal Components
-        - Universal Events
-            - [Click Event](ts-universal-events-click.md)
-            - [Touch Event](ts-universal-events-touch.md)
-            - [Show/Hide Event](ts-universal-events-show-hide.md)
-            - [Drag/Drop Event](ts-universal-events-drag-drop.md)
-            - [Key Event](ts-universal-events-key.md)
-            - [Focus Event](ts-universal-focus-event.md)
-            - [Mouse Event](ts-universal-mouse-key.md)
-            - [Component Area Change Event](ts-universal-component-area-change-event.md)
-        - Universal Attributes
-            - [Size](ts-universal-attributes-size.md)
-            - [Location](ts-universal-attributes-location.md)
-            - [Layout Constraints](ts-universal-attributes-layout-constraints.md)
-            - [Flex Layout](ts-universal-attributes-flex-layout.md)
-            - [Border](ts-universal-attributes-border.md)
-            - [Background](ts-universal-attributes-background.md)
-            - [Opacity](ts-universal-attributes-opacity.md)
-            - [Visibility](ts-universal-attributes-visibility.md)
-            - [Enable/Disable](ts-universal-attributes-enable.md)
-            - [Overlay](ts-universal-attributes-overlay.md)
-            - [Z-order Control](ts-universal-attributes-z-order.md)
-            - [Transformation](ts-universal-attributes-transformation.md)
-            - [Image Effect Configuration](ts-universal-attributes-image-effect.md)
-            - [Shape Clipping](ts-universal-attributes-sharp-clipping.md)
-            - [Text Style](ts-universal-attributes-text-style.md)
-            - [Grid](ts-universal-attributes-grid.md)
-            - [Gradient Color](ts-universal-attributes-gradient-color.md)
-            - [Popup Control](ts-universal-attributes-popup.md)
-            - [Menu Control](ts-universal-attributes-menu.md)
-            - [Click Control](ts-universal-attributes-click.md)
-            - [Focus Control](ts-universal-attributes-focus.md)
-            - [Hover Effect](ts-universal-attributes-hover-effect.md)
-            - [Component ID](ts-universal-attributes-component-id.md)
-            - [Touch Target](ts-universal-attributes-touch-target.md)
-            - [Polymorphic Style](ts-universal-attributes-polymorphic-style.md)
-        - Gesture Processing
-            - [Gesture Binding Methods](ts-gesture-settings.md)
-            - Basic Gestures
-                - [TapGesture](ts-basic-gestures-tapgesture.md)
-                - [LongPressGesture](ts-basic-gestures-longpressgesture.md)
-                - [PanGesture](ts-basic-gestures-pangesture.md)
-                - [PinchGesture](ts-basic-gestures-pinchgesture.md)
-                - [RotationGesture](ts-basic-gestures-rotationgesture.md)
-                - [SwipeGesture](ts-basic-gestures-swipegesture.md)
-            - [Combined Gestures](ts-combined-gestures.md)
-    - Basic Components
-         - [Blank](ts-basic-components-blank.md)
-         - [Button](ts-basic-components-button.md)
-         - [Checkbox](ts-basic-components-checkbox.md)
-         - [CheckboxGroup](ts-basic-components-checkboxgroup.md)
-         - [DataPanel](ts-basic-components-datapanel.md)
-         - [DatePicker](ts-basic-components-datepicker.md)
-         - [Divider](ts-basic-components-divider.md)
-         - [Gauge](ts-basic-components-gauge.md)
-         - [Image](ts-basic-components-image.md)
-         - [ImageAnimator](ts-basic-components-imageanimator.md)
-         - [LoadingProgress](ts-basic-components-loadingprogress.md)
-         - [Marquee](ts-basic-components-marquee.md)
-         - [Navigation](ts-basic-components-navigation.md)
-         - [PatternLock](ts-basic-components-patternlock.md)
-         - [PluginComponent](ts-basic-components-plugincomponent.md)
-         - [Progress](ts-basic-components-progress.md)
-         - [QRCode](ts-basic-components-qrcode.md)
-         - [Radio](ts-basic-components-radio.md)
-         - [Rating](ts-basic-components-rating.md)
-         - [RichText](ts-basic-components-richtext.md)
-         - [ScrollBar](ts-basic-components-scrollbar.md)
-         - [Search](ts-basic-components-search.md)
-         - [Select](ts-basic-components-select.md)
-         - [Slider](ts-basic-components-slider.md)
-         - [Span](ts-basic-components-span.md)
-         - [Stepper](ts-basic-components-stepper.md)
-         - [StepperItem](ts-basic-components-stepperitem.md)
-         - [Text](ts-basic-components-text.md)
-         - [TextArea](ts-basic-components-textarea.md)
-         - [TextClock](ts-basic-components-textclock.md)
-         - [TextInput](ts-basic-components-textinput.md)
-         - [TextPicker](ts-basic-components-textpicker.md)
-         - [TextTimer](ts-basic-components-texttimer.md)
-         - [TimePicker](ts-basic-components-timepicker.md)
-         - [Toggle](ts-basic-components-toggle.md)
-         - [Web](ts-basic-components-web.md)
-         - [XComponent](ts-basic-components-xcomponent.md)
-    - Container Components
-        - [AlphabetIndexer](ts-container-alphabet-indexer.md)
-        - [Badge](ts-container-badge.md)
-        - [Column](ts-container-column.md)
-        - [ColumnSplit](ts-container-columnsplit.md)
-        - [Counter](ts-container-counter.md)
-        - [Flex](ts-container-flex.md)
-        - [GridContainer](ts-container-gridcontainer.md)
-        - [Grid](ts-container-grid.md)
-        - [GridItem](ts-container-griditem.md)
-        - [List](ts-container-list.md)
-        - [ListItem](ts-container-listitem.md)
-        - [Navigator](ts-container-navigator.md)        
-        - [Panel](ts-container-panel.md)
-        - [Refresh](ts-container-refresh.md)
-        - [Row](ts-container-row.md)
-        - [RowSplit](ts-container-rowsplit.md)
-        - [Scroll](ts-container-scroll.md)        
-        - [SideBarContainer](ts-container-sidebarcontainer.md)
-        - [Stack](ts-container-stack.md)
-        - [Swiper](ts-container-swiper.md)
-        - [Tabs](ts-container-tabs.md)
-        - [TabContent](ts-container-tabcontent.md)
-    - Media Components
-        - [Video](ts-media-components-video.md)
-    - Drawing Components
-        - [Circle](ts-drawing-components-circle.md)
-        - [Ellipse](ts-drawing-components-ellipse.md)
-        - [Line](ts-drawing-components-line.md)
-        - [Polyline](ts-drawing-components-polyline.md)
-        - [Polygon](ts-drawing-components-polygon.md)
-        - [Path](ts-drawing-components-path.md)
-        - [Rect](ts-drawing-components-rect.md)
-        - [Shape](ts-drawing-components-shape.md)
-    - Canvas Components
-        - [Canvas](ts-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md)
-        - [OffscreenCanvasRenderingConxt2D](ts-offscreencanvasrenderingcontext2d.md)
-        - [Lottie](ts-components-canvas-lottie.md)
-        - [Path2D](ts-components-canvas-path2d.md)
-        - [CanvasGradient](ts-components-canvas-canvasgradient.md)
-        - [ImageBitmap](ts-components-canvas-imagebitmap.md)
-        - [ImageData](ts-components-canvas-imagedata.md)
+- Universal Component Information
+    - Universal Events
+        - [Click Event](ts-universal-events-click.md)
+        - [Touch Event](ts-universal-events-touch.md)
+        - [Show/Hide Event](ts-universal-events-show-hide.md)
+        - [Drag/Drop Event](ts-universal-events-drag-drop.md)
+        - [Key Event](ts-universal-events-key.md)
+        - [Focus Event](ts-universal-focus-event.md)
+        - [Mouse Event](ts-universal-mouse-key.md)
+        - [Component Area Change Event](ts-universal-component-area-change-event.md)
+        - [Visible Area Change Event](ts-universal-component-visible-area-change-event.md)
+    - Universal Attributes
+        - [Size](ts-universal-attributes-size.md)
+        - [Location](ts-universal-attributes-location.md)
+        - [Layout Constraints](ts-universal-attributes-layout-constraints.md)
+        - [Flex Layout](ts-universal-attributes-flex-layout.md)
+        - [Border](ts-universal-attributes-border.md)
+        - [Border Image](ts-universal-attributes-border-image.md)
+        - [Background](ts-universal-attributes-background.md)
+        - [Opacity](ts-universal-attributes-opacity.md)
+        - [Visibility](ts-universal-attributes-visibility.md)
+        - [Enable/Disable](ts-universal-attributes-enable.md)
+        - [Overlay](ts-universal-attributes-overlay.md)
+        - [Z-order Control](ts-universal-attributes-z-order.md)
+        - [Transformation](ts-universal-attributes-transformation.md)
+        - [Image Effect Configuration](ts-universal-attributes-image-effect.md)
+        - [Shape Clipping](ts-universal-attributes-sharp-clipping.md)
+        - [Text Style](ts-universal-attributes-text-style.md)
+        - [Grid](ts-universal-attributes-grid.md)
+        - [Gradient Color](ts-universal-attributes-gradient-color.md)
+        - [Popup Control](ts-universal-attributes-popup.md)
+        - [Menu Control](ts-universal-attributes-menu.md)
+        - [Click Control](ts-universal-attributes-click.md)
+        - [Focus Control](ts-universal-attributes-focus.md)
+        - [Hover Effect](ts-universal-attributes-hover-effect.md)
+        - [Component ID](ts-universal-attributes-component-id.md)
+        - [Touch Target](ts-universal-attributes-touch-target.md)
+        - [Polymorphic Style](ts-universal-attributes-polymorphic-style.md)
+    - Gesture Processing
+        - [Gesture Binding Methods](ts-gesture-settings.md)
+        - Basic Gestures
+            - [TapGesture](ts-basic-gestures-tapgesture.md)
+            - [LongPressGesture](ts-basic-gestures-longpressgesture.md)
+            - [PanGesture](ts-basic-gestures-pangesture.md)
+            - [PinchGesture](ts-basic-gestures-pinchgesture.md)
+            - [RotationGesture](ts-basic-gestures-rotationgesture.md)
+            - [SwipeGesture](ts-basic-gestures-swipegesture.md)
+        - [Combined Gestures](ts-combined-gestures.md)
+- Basic Components
+     - [Blank](ts-basic-components-blank.md)
+     - [Button](ts-basic-components-button.md)
+     - [Checkbox](ts-basic-components-checkbox.md)
+     - [CheckboxGroup](ts-basic-components-checkboxgroup.md)
+     - [DataPanel](ts-basic-components-datapanel.md)
+     - [DatePicker](ts-basic-components-datepicker.md)
+     - [Divider](ts-basic-components-divider.md)
+     - [Gauge](ts-basic-components-gauge.md)
+     - [Image](ts-basic-components-image.md)
+     - [ImageAnimator](ts-basic-components-imageanimator.md)
+     - [LoadingProgress](ts-basic-components-loadingprogress.md)
+     - [Marquee](ts-basic-components-marquee.md)
+     - [Navigation](ts-basic-components-navigation.md)
+     - [PatternLock](ts-basic-components-patternlock.md)
+     - [PluginComponent](ts-basic-components-plugincomponent.md)
+     - [Progress](ts-basic-components-progress.md)
+     - [QRCode](ts-basic-components-qrcode.md)
+     - [Radio](ts-basic-components-radio.md)
+     - [Rating](ts-basic-components-rating.md)
+    - [RemoteWindow](ts-basic-components-remotewindow.md)
+     - [RichText](ts-basic-components-richtext.md)
+     - [ScrollBar](ts-basic-components-scrollbar.md)
+     - [Search](ts-basic-components-search.md)
+     - [Select](ts-basic-components-select.md)
+     - [Slider](ts-basic-components-slider.md)
+     - [Span](ts-basic-components-span.md)
+     - [Stepper](ts-basic-components-stepper.md)
+     - [StepperItem](ts-basic-components-stepperitem.md)
+     - [Text](ts-basic-components-text.md)
+     - [TextArea](ts-basic-components-textarea.md)
+     - [TextClock](ts-basic-components-textclock.md)
+     - [TextInput](ts-basic-components-textinput.md)
+     - [TextPicker](ts-basic-components-textpicker.md)
+     - [TextTimer](ts-basic-components-texttimer.md)
+     - [TimePicker](ts-basic-components-timepicker.md)
+     - [Toggle](ts-basic-components-toggle.md)
+     - [Web](ts-basic-components-web.md)
+     - [XComponent](ts-basic-components-xcomponent.md)
+- Container Components
+    - [AbilityComponent](ts-container-ability-component.md)
+    - [AlphabetIndexer](ts-container-alphabet-indexer.md)
+    - [Badge](ts-container-badge.md)
+    - [Column](ts-container-column.md)
+    - [ColumnSplit](ts-container-columnsplit.md)
+    - [Counter](ts-container-counter.md)
+    - [Flex](ts-container-flex.md)
+    - [GridContainer](ts-container-gridcontainer.md)
+    - [Grid](ts-container-grid.md)
+    - [GridItem](ts-container-griditem.md)
+    - [List](ts-container-list.md)
+    - [ListItem](ts-container-listitem.md)
+    - [Navigator](ts-container-navigator.md)        
+    - [Panel](ts-container-panel.md)
+    - [Refresh](ts-container-refresh.md)
+    - [RelativeContainer](ts-container-relativecontainer.md)
+    - [Row](ts-container-row.md)
+    - [RowSplit](ts-container-rowsplit.md)
+    - [Scroll](ts-container-scroll.md)        
+    - [SideBarContainer](ts-container-sidebarcontainer.md)
+    - [Stack](ts-container-stack.md)
+    - [Swiper](ts-container-swiper.md)
+    - [Tabs](ts-container-tabs.md)
+    - [TabContent](ts-container-tabcontent.md)
+- Media Components
+
+    - [Video](ts-media-components-video.md)
+- Drawing Components
+    - [Circle](ts-drawing-components-circle.md)
+    - [Ellipse](ts-drawing-components-ellipse.md)
+    - [Line](ts-drawing-components-line.md)
+    - [Polyline](ts-drawing-components-polyline.md)
+    - [Polygon](ts-drawing-components-polygon.md)
+    - [Path](ts-drawing-components-path.md)
+    - [Rect](ts-drawing-components-rect.md)
+    - [Shape](ts-drawing-components-shape.md)
+- Canvas Components
+    - [Canvas](ts-components-canvas-canvas.md)
+    - [CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md)
+    - [OffscreenCanvasRenderingConxt2D](ts-offscreencanvasrenderingcontext2d.md)
+    - [Lottie](ts-components-canvas-lottie.md)
+    - [Path2D](ts-components-canvas-path2d.md)
+    - [CanvasGradient](ts-components-canvas-canvasgradient.md)
+    - [ImageBitmap](ts-components-canvas-imagebitmap.md)
+    - [ImageData](ts-components-canvas-imagedata.md)
 - Animation
     - [AnimatorProperty](ts-animatorproperty.md)
     - [Explicit Animation](ts-explicit-animation.md)
diff --git a/en/application-dev/reference/arkui-ts/figures/borderImageGradient.png b/en/application-dev/reference/arkui-ts/figures/borderImageGradient.png
new file mode 100644
index 0000000000000000000000000000000000000000..edf91d4844deeee4f997f65d2d88b45bf7ff7f1d
Binary files /dev/null and b/en/application-dev/reference/arkui-ts/figures/borderImageGradient.png differ
diff --git a/en/application-dev/reference/arkui-ts/figures/en-us_image_0000001193499234.gif b/en/application-dev/reference/arkui-ts/figures/en-us_image_0000001193499234.gif
index 52fed39eeae057043dbd00abce9ff29d2c35a56a..15849e6bc210ed2bb7f7a798b145c9794972643c 100644
Binary files a/en/application-dev/reference/arkui-ts/figures/en-us_image_0000001193499234.gif and b/en/application-dev/reference/arkui-ts/figures/en-us_image_0000001193499234.gif differ
diff --git a/en/application-dev/reference/arkui-ts/figures/en-us_visible_area_change.gif b/en/application-dev/reference/arkui-ts/figures/en-us_visible_area_change.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3b82bc987ff6d8bbe42f00e73148b35c445fa8c8
Binary files /dev/null and b/en/application-dev/reference/arkui-ts/figures/en-us_visible_area_change.gif differ
diff --git a/en/application-dev/reference/arkui-ts/figures/relativecontainer.png b/en/application-dev/reference/arkui-ts/figures/relativecontainer.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebe9c3c7f6ba5ba6756b61f757894cc3f69014bf
Binary files /dev/null and b/en/application-dev/reference/arkui-ts/figures/relativecontainer.png differ
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/en/application-dev/reference/arkui-ts/ts-basic-components-blank.md
index 3eeec830107e6896a2bb07ba4cdb0a31028ecae6..af6866db3835823c394d536f5f0b5efcb4213c22 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-blank.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-blank.md
@@ -6,7 +6,7 @@
 > This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The **&lt;Blank&gt;** component supports automatic filling of the empty part of the container along the main axis. This component is valid only when the parent component is **&lt;Row&gt;** or **&lt;Column&gt;**.
+The **\<Blank>** component supports automatic filling of the empty part of the container along the main axis. This component is valid only when the parent component is **\<Row>** or **\<Column>**.
 
 
 ## Required Permissions
@@ -24,7 +24,7 @@ Not supported
 Blank(min?:  Length)
 
 - Parameters
-    | Name | Type | Mandatory | Default Value | Description |
+  | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
   | min | Length | No | 0 | Minimum size of the **&lt;Blank&gt;** component in the container along the main axis. |
 
@@ -33,9 +33,10 @@ Blank(min?:  Length)
 
 | Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| color | Color | 0x00000000 | Color to fill the blank. |
+| color | [ResourceColor](../../ui/ts-types.md) | 0x00000000 | Color to fill the blank. |
 
-> **NOTE**<br>
+> **NOTE**
+>
 > Universal attribute methods are not supported.
 
 
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-button.md b/en/application-dev/reference/arkui-ts/ts-basic-components-button.md
index 42ac10339280af072effe49c7850c0a5fc1087d3..5f7d75d5406fd705e5a0716ff9d94fd3dd73de22 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-button.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-button.md
@@ -1,13 +1,12 @@
 # Button
 
+The **\<Button>** component can be used to create different types of buttons.
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The **&lt;Button&gt;** component represents a component that can trigger actions.
-
-
 ## Required Permissions
 
 None
@@ -30,15 +29,15 @@ Supported
   | stateEffect | boolean | No | true | Whether to enable the state switchover effect when a button is pressed. When the state is set to **false**, the state switchover effect is disabled. |
 
 
-- Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })
+- Button(label?: ResourceStr, options?: { type?: ButtonType, stateEffect?: boolean })
   
-  Creates a button component based on text content. In this case, the **&lt;Button&gt;** component cannot contain child components.
+  Creates a button component based on text content. In this case, the **\<Button>** component cannot contain child components.
 
-  **Table 2** value parameters
+  **Table 2** Parameters
 
   | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | label | string | No | - | Button text. |
+  | label | [ResourceStr](../../ui/ts-types.md) | No | - | Button text. |
   | options | Object | No | - | For details, see the **options** parameters. |
 
 
@@ -54,8 +53,8 @@ Supported
 | Name | Description |
 | -------- | -------- |
 | Capsule | Capsule-type button (the round corner is half of the height by default). |
-| Circle | Circle button. |
-| Normal | Normal button (without rounded corners by default). |
+| Circle  | Circle button. |
+| Normal  | Normal button (without rounded corners by default). |
 
 > **NOTE**
 > - The rounded corner of a button is set by using [Border](ts-universal-attributes-border.md). (The rounded corner cannot be set by using a border API.)
@@ -67,7 +66,8 @@ Supported
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ButtonExample {
@@ -78,6 +78,7 @@ struct ButtonExample {
         Button('Ok', { type: ButtonType.Normal, stateEffect: true }).borderRadius(8).backgroundColor(0x317aff).width(90)
         Button({ type: ButtonType.Normal, stateEffect: true }) {
           Row() {
+            // You are advised to reference an image by using $r to create a Resource object.
             Image($r('app.media.loading')).width(20).height(20).margin({ left: 12 })
             Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 5, right: 12 })
           }.alignItems(VerticalAlign.Center)
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-image.md b/en/application-dev/reference/arkui-ts/ts-basic-components-image.md
index 88231686024e14774633850d6707b8c5c3e77080..d506add310a3c52839d8f688d9493cace324c7c5 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-image.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-image.md
@@ -1,83 +1,101 @@
 # Image
 
+The **\<Image>** component is used to render and display local and online images.
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The **&lt;Image&gt;** component is used to render and display images.
-
-
 ## Required Permissions
 
-ohos.permission.INTERNET (using Internet images)
+To use online images, you need to add the **ohos.permission.INTERNET** permission to the corresponding abilities in the **config.json** (for the FA model) or **module.json5** file (for the stage model).
+
+```
+"abilities": [
+  {
+    ...
+    "permissions": ["ohos.permission.INTERNET"],
+    ...
+  }
+] 
+```
 
 
 ## Child Components
 
-None
+Not supported
 
 
 ## APIs
 
-Image(value: {uri: string | PixelMap})
+Image(src: string | PixelMap | Resource)
 
-- Parameters
-  | Name | Type | Mandatory | Default Value | Description | 
-  | -------- | -------- | -------- | -------- | -------- |
-  | uri | string | Yes | - | Image URI. Both local and Internal URIs are supported. | 
+Obtains an image from the specified source for subsequent rendering and display.
 
+**Parameters**
+
+| Name| Type                                                    | Mandatory| Default Value| Description                                                    |
+| ------ | ------------------------------------------------------------ | ---- | ------ | ------------------------------------------------------------ |
+| src    | string \| [PixelMap](../apis/js-apis-image.md#pixelmap7) \| [Resource](../../ui/ts-types.md) | Yes  | -      | Image source. Both local and online images are supported.<br>When using resources referenced using a relative path, for example, `Image("common/test.jpg")`, the **\<Image>** component cannot be called across bundles or modules. Therefore, you are advised to use `$r` to reference image resources that need to be used globally.<br>\- The following image formats are supported: PNG, JPG, BMP, SVG, GIF.<br>\- Base64 strings are supported. The value format is `data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, where `[base64 data]` is a Base64 string.<br/>\- The value can also be a path starting with `dataability://`, which is used to access the image path provided by a Data ability. |
 
 ## Attributes
 
-| Name | Type | Default Value | Description |
-| -------- | -------- | -------- | -------- |
-| alt | string | - | Placeholder image displayed during loading. Both local and Internal URIs are supported. |
-| objectFit | ImageFit | ImageFit.Cover | Image scale type. |
-| objectRepeat | [ImageRepeat](ts-appendix-enums.md#imagerepeat enums) | ImageRepeat.NoRepeat | Whether the image is repeated.<br/>> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>> - This attribute is not applicable to SVG images. |
-| interpolation | ImageInterpolation | ImageInterpolation.None | Interpolation effect of the image. This attribute is valid only when the image is zoomed in.<br/>> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>> - This attribute is not applicable to SVG images.<br/>> <br/>> - This attribute is not applicable to a **PixelMap** object. |
-| renderMode | ImageRenderMode | ImageRenderMode.Original | Rendering mode of the image.<br/>> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>> - This attribute is not applicable to SVG images. |
-| sourceSize | {<br/>width: number,<br/>height: number<br/>} | - | Decoding size of the image. The original image is decoded into an image of the specified size. If the value is of the number type, the unit px is used.<br/>> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>> This attribute is not applicable to a **PixelMap** object. |
-| syncLoad<sup>8+</sup> | boolean | false | Whether to load images synchronously. By default, images are loaded asynchronously. During synchronous loading, the UI thread is blocked and the placeholder diagram is not displayed. |
-
-- ImageFit enums
-  | Name | Description | 
-  | -------- | -------- |
-  | Cover | The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. | 
-  | Contain | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries. | 
-  | Fill | The video content is resized to fill the display area while retaining its aspect ratio. | 
-  | None | The original size is retained. Generally, this enum is used together with the **objectRepeat** attribute. | 
-  | ScaleDown | The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the original size. | 
-
-- ImageInterpolation enums
-  | Name | Description | 
-  | -------- | -------- |
-  | None | Interpolation image data is not used. | 
-  | High | The interpolation image data is used at the high level. The use of the interpolation image data may affect the image rendering speed. | 
-  | Medium | The interpolation image data is used at the medium level. | 
-  | Low | The interpolation image data is used at the low level. | 
-
-- ImageRenderMode enums
-  | Name | Description | 
-  | -------- | -------- |
-  | Original | The image is rendered based on the original image, including the color. | 
-  | Template | The image is rendered as a template image, and its color is ignored. | 
+In addition to the [universal attributes](ts-universal-attributes-size.md), the following attributes are supported.
+
+| Name                   | Type                                    | Default Value                     | Description                                      |
+| --------------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- |
+| alt                   | string \| [Resource](../../ui/ts-types.md) | -                        | Placeholder image displayed during loading. Both local and Internet URIs are supported.                  |
+| objectFit             | [ImageFit](#imagefit-enums)               | ImageFit.Cover           | Image scale type.                              |
+| objectRepeat          | [ImageRepeat](ts-appendix-enums.md#imagerepeat) | NoRepeat                 | Whether the image is repeated.<br>**NOTE**<br>This attribute is not applicable to SVG images. |
+| interpolation         | [ImageInterpolation](#imageinterpolation) | ImageInterpolation.None  | Interpolation effect of the image. This attribute is valid only when the image is zoomed in.<br>**NOTE**<br>This attribute is not applicable to SVG images or **PixelMap** objects. |
+| renderMode            | [ImageRenderMode](#imagerendermode)      | ImageRenderMode.Original | Rendering mode of the image.<br>**NOTE**<br>This attribute is not applicable to SVG images. |
+| sourceSize            | {<br>width: number,<br>height: number<br>} | -                        | Decoding size of the image. The original image is decoded into an image of the specified size, in px.<br>**NOTE**<br>This attribute is not applicable to **PixelMap** objects. |
+| syncLoad<sup>8+</sup> | boolean                                  | false                    | Whether to load images synchronously. By default, images are loaded asynchronously. During synchronous loading, the UI thread is blocked and the placeholder diagram is not displayed. |
+
+### ImageFit
+
+| Name       | Description                              |
+| --------- | -------------------------------- |
+| Cover     | The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. |
+| Contain   | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries.   |
+| Fill      | The image is scaled to fill the display area, and its aspect ratio is not retained.        |
+| None      | The image is displayed in its original size. Generally, this enum is used together with the **objectRepeat** attribute.|
+| ScaleDown | The image is displayed with its aspect ratio retained, in a size smaller than or equal to the original size.             |
+
+### ImageInterpolation
 
+| Name    | Description                       |
+| ------ | ------------------------- |
+| None   | Interpolation image data is not used.               |
+| High   | The interpolation image data is used at the high level, which may affect the image rendering speed.|
+| Medium | The interpolation image data is used at the medium level.             |
+| Low    | The interpolation image data is used at the low level.             |
+
+### ImageRenderMode
+
+| Name      | Description                   |
+| -------- | --------------------- |
+| Original | The image is rendered based on the original image, including the color.       |
+| Template | The image is rendered as a template image, and its color is ignored.|
 
 ## Events
 
-| Name | Description | 
-| -------- | -------- |
-| onComplete(callback: (event?: { width: number, height: number, componentWidth: number, componentHeight: number, loadingStatus: number }) =&gt; void) | Triggered when an image is successfully loaded. The loaded image is returned. | 
-| onError(callback: (event?: { componentWidth: number, componentHeight: number }) =&gt; void) | An exception occurs during image loading. | 
-| onFinish(callback: () =&gt; void) | If the source file to be loaded is an SVG image, this callback is invoked when the SVG animation playback is complete. If the animation is an infinite loop, this callback is not triggered. | 
+In addition to the universal events (ts-universal-events-click.md), the following events are supported.
 
+| Name                                      | Description                                    |
+| ---------------------------------------- | ---------------------------------------- |
+| onComplete(callback: (event?: { width: number, height: number, componentWidth: number,<br> componentHeight: number, loadingStatus: number }) =&gt; void) | Triggered when an image is successfully loaded. The size of the loaded image is returned.<br>- **width**: width of the image, in pixels.<br>- **height**: height of the image, in pixels.<br>- **componentWidth**: width of the container component, in pixels.<br>- **componentHeight**: height of the container component, in pixels.<br>- **loadingStatus**: image loading status.<br>|
+| onError(callback: (event?: { componentWidth: number, componentHeight: number }) =&gt; void) | Triggered when an exception occurs during image loading.<br>- **componentWidth**: width of the container component, in pixels.<br>- **componentHeight**: height of the container component, in pixels.<br>|
+| onFinish(callback: () =&gt; void) | Triggered when the animation playback in the loaded SVG image is complete. If the animation is an infinite loop, this callback is not triggered.|
 
 ## Example
 
+### Loading Images
 
-```
-// Image1
+Load and display different types of images and set the scale type of the images.
+
+```ts
 @Entry
 @Component
 struct ImageExample1 {
@@ -143,9 +161,9 @@ struct ImageExample1 {
 
 ![en-us_image_0000001211898484](figures/en-us_image_0000001211898484.gif)
 
+### Setting Attributes
 
-```
-// Image2
+```ts
 @Entry
 @Component
 struct ImageExample2 {
@@ -163,12 +181,12 @@ struct ImageExample2 {
           .border({ width: 1 }).borderStyle(BorderStyle.Dashed)
           .overlay('Template', { align: Alignment.Bottom, offset: { x: 0, y: 20 } })
       }
-
+      
       Text('alt').fontSize(12).fontColor(0xcccccc).width('96%').height(30)
       Image('')
         .alt($r('app.media.Image_none'))
         .width(100).height(100).border({ width: 1 }).borderStyle(BorderStyle.Dashed)
-
+        
       Text('sourceSize').fontSize(12).fontColor(0xcccccc).width('96%')
       Row({ space: 50 }) {
         Image($r('app.media.img_example'))
@@ -188,7 +206,7 @@ struct ImageExample2 {
           .border({ width: 1 }).borderStyle(BorderStyle.Dashed)
           .overlay('w:200 h:200', { align: Alignment.Bottom, offset: { x: 0, y: 20 } })
       }
-
+      
       Text('objectRepeat').fontSize(12).fontColor(0xcccccc).width('96%').height(30)
       Row({ space: 5 }) {
         Image($r('app.media.ic_health_heart'))
@@ -211,18 +229,18 @@ struct ImageExample2 {
 
 ![en-us_image_0000001212058474](figures/en-us_image_0000001212058474.png)
 
+### Invoking Events
 
-```
-// Image3
+```ts
 @Entry
 @Component
 struct ImageExample3 {
   @State width: number = 0
   @State height: number = 0
-  private on: Resource = $r('app.media.wifi_on')
-  private off: Resource = $r('app.media.wifi_off')
-  private on2off: Resource = $r('app.media.wifi_on2off')
-  private off2on: Resource = $r('app.media.wifi_off2on')
+  private on: Resource = $r('app.media.image_on')
+  private off: Resource = $r('app.media.image_off')
+  private on2off: Resource = $r('app.media.image_on2off')
+  private off2on: Resource = $r('app.media.image_off2on')
   @State src: Resource = this.on
 
   build() {
@@ -237,6 +255,7 @@ struct ImageExample3 {
             })
             .objectFit(ImageFit.Cover)
             .height(180).width(180)
+            // Obtain the size of an image after the image loading is complete.
             .onComplete((msg: { width: number,height: number }) => {
               this.width = msg.width
               this.height = msg.height
@@ -249,7 +268,7 @@ struct ImageExample3 {
               offset: { x: 0, y: 20 }
             })
         }
-
+        // Add a click event so that a specific image is loaded upon clicking.
         Image(this.src)
           .width(120).height(120)
           .onClick(() => {
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md b/en/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md
index 435ab557cbe82515bf73b9a5a613c08f14dafae3..3aea124c118a3387fda7f601ee740b95dd2097a5 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md
@@ -1,4 +1,4 @@
-# ImageAnimator
+ImageAnimator
 
 The **\<ImageAnimator>** component enables images to be played frame by frame. The list of images to be played can be configured, and the duration of each image can be configured.
 
@@ -23,47 +23,47 @@ ImageAnimator()
 
 ## Attributes
 
-| Name | Type | Default Value | Mandatory | Description |
-| -------- | -------- | -------- | -------- | -------- |
-| images | Array&lt;{<br>src:string,<br>width?:Length,<br>height?:Length,<br>top?:Length,<br>left?:Length,<br>duration?:number<br>}&gt; | [] | Yes | Image frame information. The information of each frame includes the image path, image size, image position, and image playback duration. The detailed description is as follows:<br>**src**: image path. The image format can be SVG, PNG, or JPG.<br>**width**: image width.<br>**height**: image height.<br>**top**: vertical coordinate of the image relative to the upper left corner of the component.<br>**left**: horizontal coordinate of the image relative to the upper left corner of the component.<br>**duration**: playback duration of the image, in ms. |
-| state | AnimationStatus | AnimationStatus.Initial | No | Playback status of the animation. The default status is **Initial**. |
-| duration | number | 1000 | No | Playback duration, in ms. The default duration is 1000 ms. When the duration is **0**, no image is played. The value change takes effect only at the beginning of the next cycle. When a separate duration is set in images, the setting of this attribute is invalid. |
-| reverse | boolean | false | No | Playback sequence. The value **false** indicates that images are played from the first one to the last one, and **true** indicates that images are played from the last one to the first one. |
-| fixedSize | boolean | true | No | Whether the image size is the same as the component size. **true**: The image size is the same as the component size. In this case, the width, height, top, and left attributes of the image are invalid. **false**: The width, height, top, and left attributes of each image must be set separately. |
-| preDecode | number | 0 | No | Whether to enable pre-decoding. The default value **0** indicates that pre-decoding is disabled. If this attribute is set to **2**, two images following the currently playing frame will be cached in advance to improve performance. |
-| fillMode | FillMode | FillMode.Forwards | No | Status before and after the animation starts. For details about the options, see **FillMode**. |
-| iterations | number | 1 | No | By default, the animation is played once. The value **-1** indicates that the animation is played for an unlimited number of times. |
+| Name       | Type                                     | Default Value           | Mandatory | Description                              |
+| ---------- | ---------------------------------------- | ----------------------- | --------- | ---------------------------------------- |
+| images     | Array&lt;{<br>src:string,<br>width?:Length,<br>height?:Length,<br>top?:Length,<br>left?:Length,<br>duration?:number<br>}&gt; | []                      | Yes       | Image frame information. The information of each frame includes the image path, image size, image position, and image playback duration. The detailed description is as follows:<br>**src**: image path. The image format can be SVG, PNG, or JPG.<br>**width**: image width.<br>**height**: image height.<br>**top**: vertical coordinate of the image relative to the upper left corner of the component.<br>**left**: horizontal coordinate of the image relative to the upper left corner of the component.<br>**duration**: playback duration of the image, in ms. |
+| state      | AnimationStatus                          | AnimationStatus.Initial | No        | Playback status of the animation. The default status is **Initial**. |
+| duration   | number                                   | 1000                    | No        | Playback duration, in ms. The default duration is 1000 ms. When the duration is **0**, no image is played. The value change takes effect only at the beginning of the next cycle. When a separate duration is set in images, the setting of this attribute is invalid. |
+| reverse    | boolean                                  | false                   | No        | Playback sequence. The value **false** indicates that images are played from the first one to the last one, and **true** indicates that images are played from the last one to the first one. |
+| fixedSize  | boolean                                  | true                    | No        | Whether the image size is the same as the component size. **true**: The image size is the same as the component size. In this case, the width, height, top, and left attributes of the image are invalid. **false**: The width, height, top, and left attributes of each image must be set separately. |
+| preDecode  | number                                   | 0                       | No        | Whether to enable pre-decoding. The default value **0** indicates that pre-decoding is disabled. If this attribute is set to **2**, two images following the currently playing frame will be cached in advance to improve performance. |
+| fillMode   | FillMode                                 | FillMode.Forwards       | No        | Status before and after the animation starts. For details about the options, see **FillMode**. |
+| iterations | number                                   | 1                       | No        | By default, the animation is played once. The value **-1** indicates that the animation is played for an unlimited number of times. |
 
 - ImageFrameInfo
-  | Name| Type| Default Value| Mandatory| Description|
-  | -------- | -------- | -------- | -------- | -------- |
-  | src | string \| [Resource](.../ui/ts-types.md#resource-type)<sup>9+</sup>| "" | Yes| Image path. The image format can be .svg, .png, or .jpg.|
-  | width | [Length](.../ui/ts-types.md#length-type)| 0 | No| Image width.|
-  | height | [Length](.../ui/ts-types.md#length-type)| 0 | No| Image height.|
-  | top | [Length](.../ui/ts-types.md#length-type)| 0 | No| Vertical coordinate of the image relative to the upper left corner of the component.|
-  | left | [Length](.../ui/ts-types.md#length-type)| 0 | No| Horizontal coordinate of the image relative to the upper left corner of the component.|
-  | duration | number | 0 | No| Playback duration of each image frame, in milliseconds.|
+  | Name     | Type                                     | Default Value | Mandatory | Description                              |
+  | -------- | ---------------------------------------- | ------------- | --------- | ---------------------------------------- |
+  | src      | string \| [Resource](../../ui/ts-types.md)<sup>9+</sup> | ""            | Yes       | Image path. The image format can be .svg, .png, or .jpg. |
+  | width    | [Length](../../ui/ts-types.md)           | 0             | No        | Image width.                             |
+  | height   | [Length](../../ui/ts-types.md)           | 0             | No        | Image height.                            |
+  | top      | [Length](../../ui/ts-types.md)           | 0             | No        | Vertical coordinate of the image relative to the upper left corner of the component. |
+  | left     | [Length](../../ui/ts-types.md)           | 0             | No        | Horizontal coordinate of the image relative to the upper left corner of the component. |
+  | duration | number                                   | 0             | No        | Playback duration of each image frame, in milliseconds. |
 - AnimationStatus enums
-  | Name | Description |
-  | -------- | -------- |
+  | Name    | Description                            |
+  | ------- | -------------------------------------- |
   | Initial | The animation is in the initial state. |
-  | Running | The animation is being played. |
-  | Paused | The animation is paused. |
-  | Stopped | The animation is stopped. |
+  | Running | The animation is being played.         |
+  | Paused  | The animation is paused.               |
+  | Stopped | The animation is stopped.              |
 
 - FillMode enums
-  | Name | Description |
-  | -------- | -------- |
-  | None | After the playback is complete, the animation restores to the initial state. |
+  | Name     | Description                              |
+  | -------- | ---------------------------------------- |
+  | None     | After the playback is complete, the animation restores to the initial state. |
   | Forwards | After the playback is complete, the animation remains in the end state. |
 
 
 ## Events
 
-| Name | Description |
-| -------- | -------- |
-| onStart() =&gt; void | Triggered when the animation starts to play. |
-| onPause() =&gt; void | Triggered when the animation playback is paused. |
+| Name                  | Description                              |
+| --------------------- | ---------------------------------------- |
+| onStart() =&gt; void  | Triggered when the animation starts to play. |
+| onPause() =&gt; void  | Triggered when the animation playback is paused. |
 | onRepeat() =&gt; void | Triggered when the animation playback is repeated. |
 | onCancel() =&gt; void | Triggered when the animation playback is canceled. |
 | onFinish() =&gt; void | Triggered when the animation playback is complete. |
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md b/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md
index 757050181d0b2828e0dc806b3f06d170c554ef74..dc89934a2760b1c67f84ca216530d0c3a58752e9 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md
@@ -1,11 +1,12 @@
 # Marquee
 
 
-> **NOTE**<br>
-> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
+>  **NOTE**
+>
+>  This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The **\<Marquee>** component is used to display a scrolling piece of text.
+The **\<Marquee>** component is used to display a scrolling piece of text. The text is scrolled only when its width exceeds the width of the **\<Marquee>** component.
 
 
 ## Required Permissions
@@ -15,7 +16,7 @@ None
 
 ## Child Components
 
-None
+Not supported
 
 
 ## APIs
@@ -23,28 +24,29 @@ None
 Marquee(value: { start: boolean, step?: number, loop?: number, fromStart?: boolean, src: string })
 
 - Parameters
-  | Name | Type | Mandatory | Default Value | Description | 
+    | Name| Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | start | boolean | Yes | - | Whether to start scrolling. | 
-  | step | number | No | 6 | Scrolling step. | 
-  | loop | number | No | -1 | Number of times the marquee will scroll. If the value is less than or equal to **0**, the marquee will scroll continuously. | 
-  | fromStart | boolean | No | true | Whether the text scrolls from the start. | 
-  | src | string | Yes | - | Text to scroll. | 
+  | start | boolean | Yes| - | Whether to start scrolling.|
+  | step | number | No| 6 | Scrolling step.|
+  | loop | number | No| -1 | Number of times the marquee will scroll. If the value is less than or equal to **0**, the marquee will scroll continuously.|
+  | fromStart | boolean | No| true | Whether the text scrolls from the start.|
+  | src | string | Yes| - | Text to scroll.|
 
 
 ## Events
 
-| Name | Description | 
+| Name| Description|
 | -------- | -------- |
-| onStart(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee starts scrolling. | 
-| onBounce(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee has reached the end. | 
-| onFinish(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee has finished scrolling. | 
+| onStart(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee starts scrolling.|
+| onBounce(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee has reached the end.|
+| onFinish(callback:&nbsp;()&nbsp;=&gt;&nbsp;void) | Triggered when the marquee has finished scrolling.|
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MarqueeExample {
@@ -63,6 +65,7 @@ struct MarqueeExample {
         fromStart: this.fromStart,
         src: this.src
       })
+        .width(400)
         .fontColor(Color.White)
         .fontSize(50)
         .allowScale(false)
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md b/en/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md
new file mode 100644
index 0000000000000000000000000000000000000000..ed83909a33d4735264f6d832cf20066d7869d671
--- /dev/null
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md
@@ -0,0 +1,75 @@
+# RemoteWindow
+
+**\<RemoteWindow>** is a component used to control the application window, providing the component animator and application window linkage animator during application startup and exit.
+
+>  **NOTE**
+>  
+>  This component is supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+>
+>  This component is a system API.
+
+## Child Components
+
+Not supported
+
+## APIs
+
+RemoteWindow(target: WindowAnimationTarget)
+
+Creates a **\<RemoteWindow>** through a window animation object.
+
+- Parameters
+  | Name| Type| Mandatory| Default Value| Description|
+  | -------- | -------- | -------- | -------- | -------- |
+  | target | [WindowAnimationTarget](#windowanimationtarget) | Yes| - | Description of the animation window to control.|
+
+## WindowAnimationTarget
+Implements a target window, which is used to remotely control the animation.
+
+| Name     | Type    | Description|
+| ------- | ------ | ----------------------- |
+| bundleName  | string | Process corresponding to the animation window.|
+| abilityName | string | Ability corresponding to the animation window.|
+| windowBounds | [RRect](#rrect) | Actual size of the animation window.|
+
+## RRect
+Implements a rounded rectangle.
+
+| Name     | Type    | Description|
+| ------- | ------ | ----------------------- |
+| left  | number | Horizontal coordinate of the upper left corner of the animation window relative to the screen.|
+| top | number | Vertical coordinate of the upper left corner of the animation window relative to the screen.|
+| width | number | Width of the animation window.|
+| height | number | Height of the animation window.|
+| radius | number | Radius of the rounded corner of the animation window.|
+
+## Attributes
+
+The [universal attributes](ts-universal-attributes-size.md) are supported.
+
+## Events
+
+The [universal events](ts-universal-events-click.md) are supported.
+
+## Example
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct RemoteWindowExample {
+  @State target: WindowAnimationTarget = undefined // Obtained through windowAnimationManager
+
+  build() {
+    Column() {
+      RemoteWindow(this.target)
+      	.translate({x:100, y:200})
+      	.scale({x:0.5, y:0.5})
+      .opacity(0.8)
+      	.position({x:px2vp(this.target?.windowBounds.left), y:px2vp(this.target?.windowBounds.top)})
+      	.width(px2vp(this.target?.windowBounds.width))
+      	.height(px2vp(this.target?.windowBounds.height))
+     }
+  }
+}
+```
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-search.md b/en/application-dev/reference/arkui-ts/ts-basic-components-search.md
index 7ea05b944a8783a03ce702eac0c904cb5d35760c..386f5aa23c7467f88e77d0c34647f2467af903b3 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-search.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-search.md
@@ -1,10 +1,10 @@
 #  Search
 
-The **\<Search>** component provides an input area for users to search.
 > **NOTE**
 >
 > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
+The **\<Search>** component provides an input area for users to search.
 
 ## Required Permissions
 
@@ -24,7 +24,7 @@ Search(options?: { value?: string; placeholder?: string; icon?: string; controll
   | -------- | -------- | -------- | -------- | -------- |
   | value  | string | No| - | Text input in the search text box. |
   | placeholder  | string | No  | - | Text displayed when there is no input. |
-  | icon | string | No| - | Path to the search icon. By default, the system search icon is used. The supported icon formats are svg, jpg, and png. |
+  | icon | string | No| - | Path to the search icon. By default, the system search icon is used. The supported icon formats are .svg, .jpg, and .png. |
   | controller | SearchController | No| - | Controller. |
 
 
@@ -36,7 +36,6 @@ Search(options?: { value?: string; placeholder?: string; icon?: string; controll
 | placeholderColor | [ResourceColor](../../ui/ts-types.md) | - | Placeholder text color. |
 | placeholderFont | [Font](../../ui/ts-types.md) | - | Placeholder text style. |
 | textFont | [Font](../../ui/ts-types.md) | - | Text font for the search text box. |
-| copyOption<sup>9+</sup> | boolean\|[CopyOption](ts-basic-components-text.md) | true | Whether copy and paste is allowed. |
 
 ## Events
 
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-text.md b/en/application-dev/reference/arkui-ts/ts-basic-components-text.md
index 2758e99f0cdba7ed1a7722cd10a4ed6c68438466..a98e84fffd5816a22445daa66833cb47d0dbae88 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-text.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-text.md
@@ -1,15 +1,15 @@
 # Text
 
->  **NOTE**<br/>
-> This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
-
-
 The **\<Text>** component is used to display a piece of textual information.
 
+>  **NOTE**
+>
+>  This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
+
 
 ## Required Permissions
 
-N/A
+None
 
 
 ## Child Components
@@ -32,8 +32,8 @@ Text(content?: string)
 | Name| Type| Default Value| Description|
 | -------- | -------- | -------- | -------- |
 | textAlign | TextAlign | TextAlign.Start | Text alignment mode of multiple lines of text.|
-| textOverflow | {overflow: TextOverflow} | {overflow: TextOverflow.Clip} | Display mode when the text is too long.<br>**NOTE**<br>Text is truncated at the transition between words. To truncate text in the middle of a word, add **\u200B** between characters. |
-| maxLines | number | Infinity | Maximum number of lines in the text.|
+| textOverflow | {overflow: TextOverflow} | {overflow: TextOverflow.Clip} | Display mode when the text is too long.<br>**NOTE**<br/><br>Text is truncated at the transition between words. To truncate text in the middle of a word, add **\u200B** between characters.<br>This attribute must be used with `maxLines` to take effect.|
+| maxLines | number | Infinity | Maximum number of lines in the text.<br>**NOTE**<br/><br>By default, text is automatically folded. If this parameter is specified, the text does not exceed the specified number of lines. If there is extra text, you can use `textOverflow` to specify the truncation mode.|
 | lineHeight | Length | - | Text line height. If the value is less than or equal to **0**, the line height is not limited and the font size is adaptive. If the value of the number type, the unit fp is used.|
 | decoration | {<br>type: TextDecorationType,<br>color?: Color<br>} | {<br>type: TextDecorationType.None,<br>color: Color.Black<br>} | Style and color of the text decorative line.|
 | baselineOffset | Length | - | Offset of the text baseline.|
@@ -78,7 +78,7 @@ Text(content?: string)
   | LocalDevice | Intra-device copy and paste is allowed.|
   | CrossDevice | Cross-device copy and paste is allowed.|
 
->  **NOTE**<br/>
+> **NOTE**<br/>
 > If the **\<Text>** component contains both the text and the **\<Span>** child component, only the content in **\<Span>** is displayed.
 
 
diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md b/en/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
index 0c8193971e4b765b36e7064a2041ec9b646c9332..39890e59e22c1a8736a566e280d08df9c5be1181 100644
--- a/en/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
+++ b/en/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
@@ -1,11 +1,12 @@
 # TimePicker
 
-> **NOTE**<br>
-> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
-
 
 The **\<TimePicker>** component allows users to select a time from the given range.
 
+> **NOTE**<br>
+>
+> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
+
 
 ## Required Permissions
 
@@ -14,7 +15,7 @@ No
 
 ## Child Components
 
-No
+Not supported
 
 
 ## APIs
@@ -54,11 +55,12 @@ Creates a time picker whose default time range is from 00:00 to 23:59.
 
 ### Time Picker
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct TimePickerExample {
-  private selectedTime: Date = new Date('08-00')
+  private selectedTime: Date = new Date('7/22/2022 8:00:00')
 
   build() {
     Column() {
diff --git a/en/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md b/en/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
index 7b91e7865dd58ad62ceedf02afc37944f54cf89e..d625528c2c4f1cd857ae04585201d5507bb70ff8 100644
--- a/en/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
+++ b/en/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
@@ -20,14 +20,14 @@ CanvasRenderingContext2D(setting: RenderingContextSetting)
 
 ### RenderingContextSettings
 
-RenderingContextSettings(antialias?: bool)
+RenderingContextSettings(antialias?: boolean)
 
 Configures the settings of a **CanvasRenderingContext2D** object, including whether to enable antialiasing.
 
 - Parameters
     | Name      | Type | Mandatory | Default Value | Description                      |
     | --------- | ---- | --------- | ------------- | -------------------------------- |
-    | antialias | bool | No        | false         | Whether antialiasing is enabled. |
+    | antialias | boolean | No        | false         | Whether antialiasing is enabled. |
 
 
 ## Attributes
@@ -1771,17 +1771,17 @@ drawImage(image: ImageBitmap | PixelMap, sx: number, sy: number, sWidth: number,
 Draws an image.
 
 - Parameters
-    | Name    | Type                                     | Mandatory | Default Value | Description                              |
-    | ------- | ---------------------------------------- | --------- | ------------- | ---------------------------------------- |
-    | image   | [ImageBitmap](ts-components-canvas-imagebitmap.md) or [PixelMap](../apis/js-apis-image.md#pixelmap7) | Yes       | null          | Image resource. For details, see ImageBitmap or PixelMap. |
-    | sx      | number                                   | No        | 0             | X-coordinate of the upper left corner of the rectangle used to crop the source image. |
-    | sy      | number                                   | No        | 0             | Y-coordinate of the upper left corner of the rectangle used to crop the source image. |
-    | sWidth  | number                                   | No        | 0             | Target width to crop the source image.   |
-    | sHeight | number                                   | No        | 0             | Target height to crop the source image.  |
-    | dx      | number                                   | Yes       | 0             | X-coordinate of the upper left corner of the drawing area on the canvas. |
-    | dy      | number                                   | Yes       | 0             | Y-coordinate of the upper left corner of the drawing area on the canvas. |
-    | dWidth  | number                                   | No        | 0             | Width of the drawing area.               |
-    | dHeight | number                                   | No        | 0             | Height of the drawing area.              |
+    | Name    | Type                                                         | Mandatory | Default Value | Description                                                  |
+    | ------- | ------------------------------------------------------------ | --------- | ------------- | ------------------------------------------------------------ |
+    | image   | [ImageBitmap](ts-components-canvas-imagebitmap.md) or [PixelMap](../apis/js-apis-image.md#pixelmap7) | Yes       | null          | Image resource. For details, see ImageBitmap or PixelMap.    |
+    | sx      | number                                                       | No        | 0             | X-coordinate of the upper left corner of the rectangle used to crop the source image. |
+    | sy      | number                                                       | No        | 0             | Y-coordinate of the upper left corner of the rectangle used to crop the source image. |
+    | sWidth  | number                                                       | No        | 0             | Target width to crop the source image.                       |
+    | sHeight | number                                                       | No        | 0             | Target height to crop the source image.                      |
+    | dx      | number                                                       | Yes       | 0             | X-coordinate of the upper left corner of the drawing area on the canvas. |
+    | dy      | number                                                       | Yes       | 0             | Y-coordinate of the upper left corner of the drawing area on the canvas. |
+    | dWidth  | number                                                       | No        | 0             | Width of the drawing area. If the width of the drawing area is different from that of the cropped image, the latter will be stretched or compressed to the former. |
+    | dHeight | number                                                       | No        | 0             | Height of the drawing area. If the height of the drawing area is different from that of the cropped image, the latter will be stretched or compressed to the former. |
 
 
 - Example
diff --git a/en/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md b/en/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md
index cc6e43dbc45b9c35dcda68aee838d64de2c60802..c520530cb00102c4d30eaf36d1f25b27c5bb968b 100644
--- a/en/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md
+++ b/en/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md
@@ -1,17 +1,17 @@
 # ImageBitmap
 
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-**CanvasImageData** stores pixel data rendered on a canvas.
+An **ImageBitmap** object stores pixel data rendered on a canvas.
 
 
 ## Attributes
 
-| Name | Type | Description | 
+| Name | Type | Description |
 | -------- | -------- | -------- |
 | width | number | Actual width of the rectangle on the canvas, in pixels. |
 | height | number | Actual height of the rectangle on the canvas, in pixels. |
-| data | &lt;Uint8ClampedArray&gt; | A one-dimensional array of color values. The values range from 0 to 255. |
diff --git a/en/application-dev/reference/arkui-ts/ts-container-ability-component.md b/en/application-dev/reference/arkui-ts/ts-container-ability-component.md
new file mode 100644
index 0000000000000000000000000000000000000000..3cd3e3914611b396a1fb5bf1a132374b651a005f
--- /dev/null
+++ b/en/application-dev/reference/arkui-ts/ts-container-ability-component.md
@@ -0,0 +1,114 @@
+# AbilityComponent
+
+>  **NOTE**
+>
+>  This component is supported since API version 9.
+>
+>  The APIs of this module are system APIs and cannot be called by third-party applications.
+
+
+**\<AbilityComponent>** is a container for independently displaying an ability.
+
+## Constraints
+
+Using **\<AbilityComponent>** requires a signature and related permissions.
+
+**\<AbilityComponent>** is rendered independently and cannot be overlaid with other display content.
+
+**\<AbilityComponent>** cannot process input events. Events are directly distributed to the internal ability for processing without passing through the current ability.
+
+Only width and height can be set for **\<AbilityComponent>**. These attributes are mandatory and cannot be dynamically updated.
+
+The ability to be started must be resizeable.
+
+The ability to start must be set not to display on the recent tasks screen.
+
+## Required Permissions
+
+ohos.permission.INFUSE_EVENTS
+
+ohos.permission.CONTROL_ABILITY_STACKS
+
+ohos.permission.INTEGRATED_ABILITY
+
+ohos.permission.INTEGRATED_INTERIOR_WINDOW
+
+
+## Child Components
+
+Not supported
+
+
+## APIs
+
+AbilityComponent(value: {want : Want, controller? : AbilityController})
+
+- Parameters
+  | Name| Type| Mandatory| Default Value| Description|
+  | -------- | -------- | -------- | -------- | -------- |
+  | want | [Want](../../reference/apis/js-apis-application-Want.md) | Yes| - | Description of the default ability to load.|
+  | controller | [AbilityController](#abilityController) | No| - | Ability controller.|
+
+
+## Events
+
+| Name| Description|
+| -------- | -------- |
+| onReady()&nbsp;=&gt;&nbsp;void | Called when this **\<AbilityComponent>** is started. You can then use APIs in the **\<AbilityComponent>**.|
+| onDestroy()&nbsp;=&gt;&nbsp;void | Called when this **\<AbilityComponent>** is destroyed.|
+| onAbilityCreated(name:&nbsp;string)&nbsp;=&gt;&nbsp;void | Called when the specified ability is loaded.|
+| onAbilityMoveToFont()&nbsp;=&gt;&nbsp;void               | Called when this ability is moved to the foreground.|
+| onAbilityWillRemove()&nbsp;=&gt;&nbsp;void | Called when this ability is about to be removed.|
+
+## AbilityController
+
+Implements an ability controller, which provides the control APIs for **\<AbilityComponent>**.
+
+| Name                                   | Description                                                    |
+| --------------------------------------- | ------------------------------------------------------------ |
+| startAbility()&nbsp;=&gt;&nbsp;want     | Loads an ability inside the **\<AbilityComponent>**.<br>**want**: description of the ability to be loaded.|
+| preformBackPress()&nbsp;=&gt;&nbsp;void | Performs a return operation inside the **\<AbilityComponent>**.                        |
+| getStackCount()&nbsp;=&gt;&nbsp;void    | Obtains the number of tasks in the internal task stack of the **\<AbilityComponent>**.                |
+
+
+## Example
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct MyComponent {
+ @State controller: AbilityController = new AbilityController()
+
+  build() {
+      Column() {
+          AbilityComponent({
+              want: {
+                  bundleName: '',
+                  abilityName: ''
+              },
+              controller: this.controller
+          })
+          .onReady(() => {
+              console.log('AbilityComponent ready');
+          })
+          .onDestory(() => {
+              console.log('AbilityComponent destory');
+          })
+          Button("Start New")
+          .onClick(() => {
+              this.controller.startAbility({
+                  bundleName: '',
+                  abilityName: ''
+              });
+          })
+          Button("Back")
+          .onClick(() => {
+              if (this.controller.getStacjCount() > 1) {
+                  this.controller.preformBackPress();
+              }
+          })
+      }
+  }
+}
+```
diff --git a/en/application-dev/reference/arkui-ts/ts-container-list.md b/en/application-dev/reference/arkui-ts/ts-container-list.md
index 5d11634e3bae94e58ac0589451c9076c7c356ecc..adfcea2c3e0b11eb554a0077bb9e794ea1ca6973 100644
--- a/en/application-dev/reference/arkui-ts/ts-container-list.md
+++ b/en/application-dev/reference/arkui-ts/ts-container-list.md
@@ -21,13 +21,14 @@ This component contains the child component [\<ListItem>](ts-container-listitem.
 
 ## APIs
 
-List(value:{space?: number, initialIndex?: number})
+List(value:{space?: number | string, initialIndex?: number, scroller?: Scroller})
 
 - Parameters
   | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | space | number | No | 0 | Spacing between list items. |
-  | initialIndex | number | No | 0 | Item displayed at the beginning of the component when the current list is loaded for the first time, that is, the first item to be displayed. If the configured sequence number is greater than the sequence number of the last item, the setting does not take effect. |
+  | space | number&nbsp;\|&nbsp;string | No | 0 | Spacing between list items. |
+  | initialIndex | number | No | 0 | Item displayed at the beginning of the viewport when the current list is loaded for the first time, that is, the first item to be displayed. If the value set is greater than the sequence number of the last item, the setting does not take effect. |
+  | scroller | [Scroller](ts-container-scroll.md#scroller) | No | - | Controller bound to the list to control the scrolling. |
 
 
 ## Attributes
@@ -36,8 +37,8 @@ List(value:{space?: number, initialIndex?: number})
 | -------- | -------- | -------- | -------- |
 | listDirection | [Axis](ts-appendix-enums.md#axis-enums) | Vertical | Direction in which the list items are arranged. For details, see **Axis** enums. |
 | divider | {<br>strokeWidth: Length,<br>color?:Color,<br>startMargin?: Length,<br>endMargin?: Length<br>} | - | Style of the divider for the list items. By default, there is no divider.<br>**strokeWidth**: stroke width of the divider.<br>**color**: color of the divider.<br>**startMargin**: distance between the divider and the start of the list.<br>**endMargin**: distance between the divider and the end of the list. |
-| editMode | boolean | false | Whether the **&lt;List&gt;** component is in editable mode. |
-| edgeEffect | EdgeEffect | EdgeEffect.Spring | Sliding effect. For details, see EdgeEffect enums. |
+| editMode | boolean | false | Whether the **\<List>** component is in editable mode. |
+| edgeEffect | EdgeEffect | EdgeEffect.Spring | Sliding effect. For details, see **EdgeEffect enums**. |
 | chainAnimation | boolean | false | Whether to display chained animations on this list when it slides or its top and bottom are dragged. The list items are separated with even space, and one item animation starts after the previous animation during basic sliding interactions. The chained animation effect is similar with spring physics.<br>- **false**: No chained animations are displayed.<br>- **true**: Chained animations are displayed. |
 | multiSelectable<sup>8+</sup> | boolean | false | Whether to enable mouse frame selection.<br>- **false**: The mouse frame selection is disabled.<br>- **true**: The mouse frame selection is enabled. |
 | restoreId<sup>8+</sup> | number | - | Migration ID of the component. During application migration, the status of the component is migrated to the component with the same migration ID on the peer end.<br>For a **<\List>** component, the status includes the item serial number displayed at the start position. |
@@ -48,7 +49,7 @@ List(value:{space?: number, initialIndex?: number})
   | Name | Description |
   | -------- | -------- |
   | Spring | Similar to the physical dynamic effect of a spring. After scrolling to the edge, the user can continue to scroll for a distance based on the initial speed or by touching the knob of the scrollbar. After the user releases their hand, the knob is rebounded. |
-  | None | No effect after the scrollbar is moved to the edge. |
+  | None | No effect when the list is scrolled to the edge. |
 
 - ListItemAlign enums
 
@@ -64,7 +65,8 @@ List(value:{space?: number, initialIndex?: number})
 | Name | Description |
 | -------- | -------- |
 | onItemDelete(index: number) =&gt; boolean | Triggered when a list item is deleted. |
-| onScrollIndex(firstIndex: number, lastIndex: number) =&gt; void | Triggered when the start position and end position of the current list are changed. |
+| onScrollBegin<sup>9+</sup>(dx: number, dy: number)&nbsp;=&gt;&nbsp;{ dxRemain: number, dyRemain: number } | Triggered when scrolling starts.<br/>Parameters:<br/>- **dx**: amount by which the list will scroll in the horizontal direction.<br/>- **dy**: amount by which the list will scroll in the vertical direction.<br/>Return value:<br/>- **dxRemain**: remaining amount by which the list can scroll in the horizontal direction.<br/>- **dyRemain**: remaining amount by which the list can scroll in the vertical direction. |
+| onScrollIndex(firstIndex:&nbsp;number,&nbsp;lastIndex:&nbsp;number)&nbsp;=&gt;&nbsp;void | Triggered when the start position and end position of the current list are changed. |
 
 > **NOTE**
 >
@@ -106,9 +108,9 @@ struct ListExample {
             }.editable(true)
           }, item => item)
         }
-        .listDirection(Axis.Vertical) // Arrangement direction
-        .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // Divider line
-        .edgeEffect(EdgeEffect.None) // No effect when sliding to the edge
+        .listDirection(Axis.Vertical) // Direction in which the list items are arranged.
+        .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // Style of the divider for the list items.
+        .edgeEffect(EdgeEffect.None) // No effect when the list is scrolled to the edge.
         .chainAnimation(false) // Chained animations are disabled.
         .onScrollIndex((firstIndex: number, lastIndex: number) => {
           console.info('first' + firstIndex)
@@ -166,7 +168,7 @@ struct ListLanesExample {
       .lanes({ minLength: 40, maxLength: 60 })
       .alignListItem(this.alignListItem)
 
-      Button("Change alignListItem: "+ this.alignListItem).onClick(() => {
+      Button("Change alignListItem:" + this.alignListItem).onClick(() => {
         if (this.alignListItem == ListItemAlign.Start) {
           this.alignListItem = ListItemAlign.Center
         } else if (this.alignListItem == ListItemAlign.Center) {
@@ -179,3 +181,4 @@ struct ListLanesExample {
   }
 }
 ```
+
diff --git a/en/application-dev/reference/arkui-ts/ts-container-refresh.md b/en/application-dev/reference/arkui-ts/ts-container-refresh.md
index 2392680bc520832629d8763fb9eee5e28b946bf7..92aa736e68b028b7c188e12005badf7e967ab8ba 100644
--- a/en/application-dev/reference/arkui-ts/ts-container-refresh.md
+++ b/en/application-dev/reference/arkui-ts/ts-container-refresh.md
@@ -1,9 +1,10 @@
 # Refresh
 
-> **NOTE**<br/>
-> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
+ The **\<Refresh>** component is a container that provides the pull-to-refresh feature.
 
-The **<Refresh\>** component is used to refresh a page through a pull-down gesture.
+>  **NOTE**
+>
+>  This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 ## Required Permissions
 
@@ -19,11 +20,11 @@ Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number | stri
 
 - Parameters
 
-  | Name | Value Type | Mandatory | Default Value | Description |
+  | Name| Value Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | refreshing | boolean | Yes| - | Whether the current component is being refreshed. |
-  | offset | Length | No| 16 | Distance to the top of the parent component from the **<Refresh\>** component that comes to rest after a successful pull-down gesture. |
-  | friction | number | No| 62 | Coefficient of friction, which indicates the **<Refresh\>** component's sensitivity to the pull-down gesture. The value ranges from 0 to 100. <br/>- **0**: The **<Refresh\>** component is not sensitive to the pull-down gesture. <br/>- **100**: The **<Refresh\>** component is highly sensitive to the pull-down gesture. <br/>- Value greater than **100**: The **<Refresh\>** component is much more sensitive to the pull-down gesture. |
+  | refreshing | boolean | Yes| - | Whether the current component is being refreshed.|
+  | offset | Length | No| 16 | Distance to the top of the parent component from the **<Refresh\>** component that comes to rest after a successful pull-down gesture.|
+  | friction | number&nbsp;\|&nbsp;string | No| 62 | Coefficient of friction, which indicates the **<Refresh\>** component's sensitivity to the pull-down gesture. The value ranges from 0 to 100.<br>- **0** indicates that the **\<Refresh>** component is not sensitive to the pull-down gesture.<br>- **100** indicates that the **\<Refresh>** component is highly sensitive to the pull-down gesture.<br>- A larger value indicates a more sensitive response of the **\<Refresh>** component to the pull-down gesture.|
 
 
 
@@ -32,23 +33,24 @@ Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number | stri
 
 | Name| Description|
 | -------- | -------- |
-| onStateChange(callback: (state: RefreshStatus) => void)| Triggered when the refresh status changes. <br/>**state** indicates the refresh status. |
-| onRefreshing(callback: () => void)| Triggered when the component enters the refresh state. |
+| onStateChange(callback: (state: RefreshStatus) => void)| Triggered when the refresh status changes.<br>**state**: refresh status.|
+| onRefreshing(callback: () => void)| Triggered when the component enters the refresh state.|
 
 - RefreshStatus enums
 
-  | Name | Description |
+  | Name| Description|
   | -------- | -------- |
-  | Inactive | The component is not pulled down. This is the default value. |
-  | Drag | The component is being pulled down, but the pulled distance is shorter than the minimum length required to trigger the refresh. |
-  | OverDrag | The component is being pulled down, and the pulled distance exceeds the minimum length required to trigger the refresh. |
-  | Refresh | The pull-down ends, and the component rebounds to the minimum length required to trigger the refresh and enters the refresh state. |
-  | Done | The refresh is complete, and the component returns to the initial state (top). |
+  | Inactive | The component is not pulled down. This is the default value.|
+  | Drag | The component is being pulled down, but the pulled distance is shorter than the minimum length required to trigger the refresh.|
+  | OverDrag | The component is being pulled down, and the pulled distance exceeds the minimum length required to trigger the refresh.|
+  | Refresh | The pull-down ends, and the component rebounds to the minimum length required to trigger the refresh and enters the refresh state.|
+  | Done | The refresh is complete, and the component returns to the initial state (top).|
 
 
 ## Example
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct RefreshExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-container-relativecontainer.md b/en/application-dev/reference/arkui-ts/ts-container-relativecontainer.md
new file mode 100644
index 0000000000000000000000000000000000000000..d5eae8e6a05272aeecf9685a2a87da55cbc8d007
--- /dev/null
+++ b/en/application-dev/reference/arkui-ts/ts-container-relativecontainer.md
@@ -0,0 +1,92 @@
+# RelativeContainer
+
+The **\<RelativeContainer>** component is used for element alignment in complex scenarios.
+
+>  **NOTE**
+>
+>  This component is supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+
+
+
+## Rules 
+
+ * Components in a container are aligned horizontally or vertically. 
+   * Alignment modes in the horizontal direction can be left, center, or right, achieved by the **HorizontalAlign.Start**, **HorizontalAlign.Center**, and **HorizontalAlign.End** attributes of the container, respectively. 
+   * Alignment modes in the vertical direction can be top, center, or bottom, achieved by the **VerticalAlign.Top**, **VerticalAlign.Center**, and **VerticalAlign.Bottom** attributes of the container, respectively.
+ * A child component can set the container or another child component as the anchor point. 
+   * An ID must be set for the child components in the **\<RelativeContainer>**. The container ID is fixed at **__container__**. 
+   * By default, a child component without an ID is positioned in the upper left corner of the container. 
+   * Three positions in a direction of the child component can use three positions in the same direction of the container or another child components as anchor points. When anchor points are set for more than two positions in the same direction, the third position is skipped. 
+   * When anchor points are set for more than two positions in the same direction, the width and height of the child component do not take effect. 
+   * If offset is required after the alignment, it can be set through **offset**. 
+ * Exceptions
+   * When a mutual or circular dependency occurs, all child components in the container are not drawn. 
+   * If anchors are set for more than two positions in the same direction but the anchor positions are reversed, the size of the child component is 0, that is, the child component is not drawn. 
+
+## Required Permissions
+
+None
+
+
+## Child Components
+
+Multiple child components are supported.
+
+
+## APIs
+
+RelativeContainer()
+
+## Example
+
+```ts
+@Entry
+@Component
+struct Index {
+
+  build() {
+    Row() {
+        Button("Extra button").width(100).height(50)
+        RelativeContainer() {
+          Button("Button 1").width(120).height(30)
+            .alignRules({
+              middle: { anchor: "__container__", align: HorizontalAlign.Center },
+            })
+            .id("bt1").borderWidth(1).borderColor(Color.Black)
+          Text("This is text 2").fontSize(20).padding(10)
+            .alignRules({
+              bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
+              top: { anchor: "bt1", align: VerticalAlign.Bottom },
+              right:{ anchor: "bt1", align: HorizontalAlign.Center }
+            }).id("tx2").borderWidth(1).borderColor(Color.Black).height(30)
+
+          LoadingProgress().color(Color.Blue)
+            .alignRules({
+              left: { anchor: "bt1", align: HorizontalAlign.End },
+              top: { anchor: "tx2", align: VerticalAlign.Center },
+              bottom: { anchor: "__container__", align: VerticalAlign.Bottom }
+            }).id("lp3").borderWidth(1).borderColor(Color.Black)
+          .height(30).width(30)
+
+          Gauge({ value: 50, min: 0, max: 100 })
+            .startAngle(210).endAngle(150)
+            .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1], [0xD94838, 1]])
+            .strokeWidth(20)
+            .width(50).height(50)
+            .alignRules({
+              left: { anchor: "tx2", align: HorizontalAlign.End },
+              right:{ anchor: "__container__", align: HorizontalAlign.End },
+              top: { anchor: "__container__", align: VerticalAlign.Top },
+              bottom: { anchor: "lp3", align: VerticalAlign.Top }
+            }).id("g4").borderWidth(1).borderColor(Color.Black)
+
+        }
+        .width(200).height(200)
+        .backgroundColor(Color.Orange)
+
+    }
+    .height('100%')
+  }
+}
+```
+![relative container](figures/relativecontainer.png)
diff --git a/en/application-dev/reference/arkui-ts/ts-container-swiper.md b/en/application-dev/reference/arkui-ts/ts-container-swiper.md
index 0e72a05681396dc2a4bc086c31ce0ff8ed827282..f72c10f4bceb9efde139745d420411703b0e3c9c 100644
--- a/en/application-dev/reference/arkui-ts/ts-container-swiper.md
+++ b/en/application-dev/reference/arkui-ts/ts-container-swiper.md
@@ -2,6 +2,7 @@
 
 
 > **NOTE**<br>
+>
 > This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -23,9 +24,9 @@ This component can contain child components.
 Swiper(value:{controller?: SwiperController})
 
 - Parameters
-  | Name | Type | Mandatory | Default Value | Description | 
+  | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | controller | [SwiperController](#swipercontroller) | No | null | Controller bound to the component to control the page switching. | 
+  | controller | [SwiperController](#swipercontroller) | No | null | Controller bound to the component to control the page switching. |
 
 
 ## Attributes
@@ -36,36 +37,38 @@ Swiper(value:{controller?: SwiperController})
 | autoPlay | boolean | false | Whether to enable automatic playback for child component switching. If this attribute is **true**, the indicator dots do not take effect. |
 | interval | number | 3000 | Interval for automatic playback, in ms. |
 | indicator | boolean | true | Whether to enable the navigation dots. |
-| loop | boolean | true | Whether to enable loop playback. |
+| loop | boolean | true | Whether to enable loop playback.<br>The value **true** means to enable loop playback. When **LazyForEach** is used, it is recommended that the number of the components to load exceed 5. |
 | duration | number | 400 | Duration of the animation for switching child components, in ms. |
 | vertical | boolean | false | Whether vertical swiping is used. |
 | itemSpace | Length | 0 | Space between child components. |
 | cachedCount<sup>8+</sup> | number | 1 | Number of child components to be cached. |
 | disableSwipe<sup>8+</sup> | boolean | false | Whether to disable the swipe feature. |
 | curve<sup>8+</sup> | [Curve](ts-animatorproperty.md) \| Curves | Curve.Ease | Animation curve. The ease-in/ease-out curve is used by default. For details about common curves, see [Curve enums](ts-animatorproperty.md). You can also create custom curves ([interpolation curve objects](ts-interpolation-calculation.md)) by using APIs provided by the interpolation calculation module. |
+| indicatorStyle<sup>8+</sup> | {<br/>left?:&nbsp;Length,<br/>top?:&nbsp;Length,<br/>right?:&nbsp;Length,<br/>bottom?:&nbsp;Length,<br/>size?:&nbsp;Length,<br/>color?:&nbsp;Color,<br/>selectedColor?:&nbsp;Color<br/>} | -          | Style of the navigation dots indicator.<br/>- **left**:&nbsp;distance between the navigation dots indicator and the left edge of the **\<Swiper>** component.<br/>- **top**:&nbsp;distance between the navigation dots indicator and the top edge of the **\<Swiper>** component.<br/>- **right**:&nbsp;distance between the navigation dots indicator and the right edge of the **\<Swiper>** component.<br/>- **bottom**:&nbsp;distance between the navigation dots indicator and the right edge of the **\<Swiper>** component.<br/>- **size**:&nbsp;diameter of the navigation dots indicator.<br/>- **color**:&nbsp;color of the navigation dots indicator.<br/>- **selectedColor**:&nbsp;color of the selected navigation dot. |
 
 
-### SwiperController
+## SwiperController
 
 Controller of the **<Swiper\>** component. You can bind this object to the **<Swiper\>** component and use it to control page switching.
 
-| Name | Description | 
+| Name | Description |
 | -------- | -------- |
-| showNext():void | Turns to the next page. | 
-| showPrevious():void | Turns to the previous page. | 
+| showNext():void | Turns to the next page. |
+| showPrevious():void | Turns to the previous page. |
 
 
 ## Events
 
-| Name | Description | 
+| Name | Description |
 | -------- | -------- |
-| onChange( index: number) =&gt; void | Triggered when the index of the currently displayed component changes. | 
+| onChange( index: number) =&gt; void | Triggered when the index of the currently displayed component changes. |
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 class MyDataSource implements IDataSource {
   private list: number[] = []
   private listener: DataChangeListener
@@ -96,7 +99,7 @@ struct SwiperExample {
   private swiperController: SwiperController = new SwiperController()
   private data: MyDataSource = new MyDataSource([])
 
-  private aboutToAppear(): void {
+  aboutToAppear(): void {
     let list = []
     for (var i = 1; i <= 10; i++) {
       list.push(i.toString());
diff --git a/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md b/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md
index d980bdefeade3492743ebb874675a85ebc34bb75..71c1839a5615a1970668fab8c60f69e2051c8f98 100644
--- a/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md
+++ b/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md
@@ -1,7 +1,8 @@
 # Action Sheet
 
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -17,25 +18,25 @@ None
 
 show(options: { paramObject1})
 
-Defines and shows the action sheet.
+Defines and shows an action sheet.
 
 - paramObject1 parameters
   | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | title | string \|[Resource](../../ui/ts-types.md#resource) | No | None | Title of the dialog box. |
-  | message | string \|[Resource](../../ui/ts-types.md#resource) |  |  | Content of the dialog box. |
+  | title | string \|[Resource](../../ui/ts-types.md) | No | None | Title of the dialog box. |
+  | message | string \|[Resource](../../ui/ts-types.md) |  |  | Content of the dialog box. |
   | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. |
-  | confirm | {<br/>value: string \|[Resource](../../ui/ts-types.md#resource),<br>action: () =&gt; void<br/>} | number | string | Text content of the confirm button and callback upon button clicking.<br/>**value**: button text.<br/>**action**: callback upon button clicking. |
+  | confirm | {<br/>value: string \| [Resource](../../ui/ts-types.md),<br/>action: () =&gt; void<br/>} | No | - | Text content of the confirm button and callback upon button clicking.<br/>**value**: button text.<br/>**action**: callback upon button clicking. |
   | cancel | () =&gt; void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. |
-  | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
-  | offset | {<br/>dx: Length\|[Resource](../../ui/ts-types.md#resource)<br/>dy: Length\|[Resource](../../ui/ts-types.md#resource)<br/>} | No | - | Offset of the dialog box relative to the alignment position. |
-  | sheets | Array&lt;SheetInfo&gt; | Yes | - | Options in the dialog box. Each option supports the image, text, and callback. |
+  | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
+  | offset | {<br/>dx: Length,<br/>dy: Length<br/>} | No | {<br/>dx: 0,<br/>dy: 0<br/>} | Offset of the dialog box relative to the alignment position. |
+  | sheets | Array<SheetInfo&gt; | Yes | - | Options in the dialog box. Each option supports the image, text, and callback. |
 
 - SheetInfo parameters
   | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | title | string | Yes | - | Sheet text. |
-  | icon | string | No | None | Sheet icon. |
+  | title | string \| [Resource](../../ui/ts-types.md) | Yes | - | Sheet text. |
+  | icon | string \| [Resource](../../ui/ts-types.md) | No | None | Sheet icon. |
   | action | ()=&gt;void | Yes | - | Callback when the sheet is selected. |
 
 
@@ -43,10 +44,11 @@ Defines and shows the action sheet.
 
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
-struct ActionSheetExapmle {
+struct ActionSheetExample {
   build() {
     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
       Button('Click to Show ActionSheet')
diff --git a/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md b/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md
index e8330691116919aa6824a67358abe3441af63795..30ea8acfedfb262bc209160405da7bb6bcfaa0fc 100644
--- a/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md
+++ b/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md
@@ -1,8 +1,9 @@
 # Alert Dialog Box
 
 
-> **NOTE**<br>
-> This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
+> **NOTE**
+>
+> This method is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
 The **<AlertDialog\>** component is used to display an alert dialog box. You can set the text content and response callback for an alert dialog box as needed.
@@ -10,40 +11,41 @@ The **<AlertDialog\>** component is used to display an alert dialog box. You can
 
 ## Attributes
 
-| Name | Type | Default Value | Description | 
+| Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| show | options: { paramObject1\| paramObject2} | - | Defines and displays the **<AlertDialog\>** component. | 
+| show | options: { paramObject1 \| paramObject2} | - | Defines and displays the **<AlertDialog\>** component. |
 
 - paramObject1 parameters
     | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | title | string \|[Resource](../../ui/ts-types.md#resource) |  |  | Title of a dialog box. |
-  | message | string \|[Resource](../../ui/ts-types.md#resource) |  |  | Content of the dialog box. |
+  | title | string \| [Resource](../../ui/ts-types.md) | No | - | Title of a dialog box. |
+  | message | string \| [Resource](../../ui/ts-types.md) | Yes | - | Content of the dialog box. |
   | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. |
-  | confirm | {<br/>value: string \|[Resource](../../ui/ts-types.md#resource),<br>fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),<br/>backgroundColor?:Color  \|number\|string\|[Resource](../../ui/ts-types.md#resource),<br>action: () =&gt; void<br/>} <br/> |  |  | Text content, text color, background color, and click callback of the confirm button. |
+  | confirm | {<br/>value: string \| [Resource](../../ui/ts-types.md),<br>fontColor?: Color\| number \| string \| [Resource](../../ui/ts-types.md),<br/>backgroundColor?:Color \| number \| string \| [Resource](../../ui/ts-types.md),<br>action: () =&gt; void<br/>} <br/> | No | - | Text content, text color, background color, and click callback of the confirm button. |
   | cancel | () =&gt; void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. |
-  | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
-  | offset | {<br/>dx: Length \|[Resource](../../ui/ts-types.md#resource),<br/>dy: Length  \|[Resource](../../ui/ts-types.md#resource)<br/>} |  |  | Offset of the dialog box relative to the alignment position. |
+  | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
+  | offset | {<br/>dx: Length \| [Resource](../../ui/ts-types.md),<br/>dy: Length \| [Resource](../../ui/ts-types.md)<br/>} | No | - | Offset of the dialog box relative to the alignment position. |
   | gridCount | number | No | - | Number of grid columns occupied by the width of the dialog box. |
 
 - paramObject2 parameters
   | Name | Type | Mandatory | Default Value | Description |
   | -------- | -------- | -------- | -------- | -------- |
-  | title | string \|[Resource](../../ui/ts-types.md#resource) | No | - | Title of a dialog box. |
-  | message | string \|[Resource](../../ui/ts-types.md#resource) | Yes | - | Content of the dialog box. |
+  | title | string \| [Resource](../../ui/ts-types.md) | No | - | Title of a dialog box. |
+  | message | string \| [Resource](../../ui/ts-types.md) | Yes | - | Content of the dialog box. |
   | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. |
-  | primaryButton | {<br/>value: string \|[Resource](../../ui/ts-types.md#resource),<br>fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),<br/>backgroundColor?:Color  \|number\|string\|[Resource](../../ui/ts-types.md#resource),<br>action: () =&gt; void<br/>} <br/> |  |  | Text content, text color, background color, and click callback of the primary button. |
-  | secondaryButton | {<br/>value: string \|[Resource](../../ui/ts-types.md#resource),<br>fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),<br/>backgroundColor?:Color  \|number\|string\|[Resource](../../ui/ts-types.md#resource),<br>action: () =&gt; void<br/>} <br/> |  |  | Text content, text color, background color, and click callback of the secondary button. |
+  | primaryButton | {<br/>value: string \| [Resource](../../ui/ts-types.md),<br>fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md),<br/>backgroundColor?:Color \| number\| string\| [Resource](../../ui/ts-types.md),<br>action: () =&gt; void<br/>} <br/> | No | - | Text content, text color, background color, and click callback of the primary button. |
+  | secondaryButton | {<br/>value: string \|[Resource](../../ui/ts-types.md),<br>fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md),<br/>backgroundColor?:Color \| number\| string\| [Resource](../../ui/ts-types.md),<br>action: () =&gt; void<br/>} <br/> | No | - | Text content, text color, background color, and click callback of the secondary button. |
   | cancel | () =&gt; void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. |
-  | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
-  | offset | {<br/>dx: Length \|[Resource](../../ui/ts-types.md#resource),<br/>dy: Length  \|[Resource](../../ui/ts-types.md#resource)<br/>} |  |  | Offset of the dialog box relative to the alignment position. |
+  | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. |
+  | offset | {<br/>dx: Length \| [Resource](../../ui/ts-types.md),<br/>dy: Length  \| [Resource](../../ui/ts-types.md)<br/>} | No | - | Offset of the dialog box relative to the alignment position. |
   | gridCount | number | No | - | Number of grid columns occupied by the width of the dialog box. |
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct AlertDialogExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-motion-path-animation.md b/en/application-dev/reference/arkui-ts/ts-motion-path-animation.md
index 67d034e063b70c2447d488356a8b75094e516426..410181d6801fb0a478419b90f7c5e3659ab5715a 100644
--- a/en/application-dev/reference/arkui-ts/ts-motion-path-animation.md
+++ b/en/application-dev/reference/arkui-ts/ts-motion-path-animation.md
@@ -1,12 +1,12 @@
 # Motion Path Animation
 
+You can apply a motion path animation to a component, by setting the motion path of the component in a translation animation.
 
 > **NOTE**
 >
 > This animation is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The attributes below can be used to set the motion path of the component in a translation animation.
 
 
 ## Attributes
@@ -19,7 +19,8 @@ The attributes below can be used to set the motion path of the component in a tr
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MotionPathExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md b/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md
index 4c39157590da1869b95471dea321cd72fbd212fe..0ebc3483be4382bf5d48644fe1e4cedd397a406b 100644
--- a/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md
+++ b/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md
@@ -1,21 +1,20 @@
 # Transition of Shared Elements
 
+Shared element transition can be used for transition between pages, for example, transition from an image on the current page to the next page.
 
 > **NOTE**
+>
 > This animationis supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-Transition of shared elements can be used for transition between pages, for example, transition from an image on the current page to the next page.
-
-
-## Type
+## Attributes
 
 | Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
 | sharedTransition | id: string,<br/>options?: Object | - | If the same ID is configured for a component on the two pages, this shared component is transited. If this parameter is set to an empty string, no shared elements are transited. |
 
 - options parameters
-    | Name | Type | Default Value | Mandatory | Description |
+  | Name | Type | Default Value | Mandatory | Description |
   | -------- | -------- | -------- | -------- | -------- |
   | duration | number | 1000 | No | Animation duration, in ms. The default duration is 1000 ms. |
   | curve | Curve \| Curves | Linear | No | The default curve is linear. For details about the valid values, see **Curve enums**. |
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-background.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
index 160187ab4a3dfce60d7284b42692f6946e488de6..2d898fce4e7f38e51709bd983a6d8092219f5809 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
@@ -1,13 +1,12 @@
 # Background
 
+You can set the background of a component.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The attributes in this topic are used to set the background color of a component.
-
-
 ## Required Permissions
 
 None
@@ -18,24 +17,25 @@ None
 
 | Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| backgroundColor | Color | - | Background color of a component. |
-| backgroundImage | src: string,<br/>repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat-enums) | - | **src**: image address, which can be the address of an Internet or a local image. (SVG images are not supported.)<br/>**repeat**: whether the background image is repeatedly used. By default, the background image is not repeatedly used. |
+| backgroundColor | [ResourceColor](../../ui/ts-types.md) | - | Background color of a component. |
+| backgroundImage | src: [ResourceStr](../../ui/ts-types.md),<br/>repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat-enums) | - | **src**: image address, which can be the address of an Internet or a local image. (SVG images are not supported.)<br/>**repeat**: whether the background image is repeatedly used. By default, the background image is not repeatedly used. |
 | backgroundImageSize | {<br/>width?: Length,<br/>height?: Length<br/>} \| ImageSize | Auto | Width and height of the background image. When the input is a **{width: Length, height: Length}** object, if only one attribute is set, the other attribute is the set value multiplied by the original aspect ratio of the image. By default, the original image aspect ratio remains unchanged. |
 | backgroundImagePosition | {<br/>x?: Length,<br/>y?: Length<br/>} \| [Alignment](ts-appendix-enums.md#alignment-enums) | {<br/>x: 0,<br/>y: 0<br/>} | Position of the background image in the component. |
 
 
 - ImageSize enums
-    | Name | Description | 
+  | Name | Description |
   | -------- | -------- |
-  | Cover | Default value. The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. | 
-  | Contain | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries. | 
-  | Auto | The original image aspect ratio is retained. | 
+  | Cover | Default value. The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. |
+  | Contain | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries. |
+  | Auto | The original image aspect ratio is retained. |
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct BackgroundExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md
new file mode 100644
index 0000000000000000000000000000000000000000..99d6a8384c15983023fde9b5de43de530aa678fc
--- /dev/null
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md
@@ -0,0 +1,95 @@
+# Border Image
+You can draw an image around a component.
+>  **NOTE**
+>
+> The APIs of this module are supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+## Required Permissions
+
+None
+
+
+## Attributes
+
+
+| Name| Type| Default Value| Description|
+| -------- | -------- | -------- | -------- |
+| source | string \| [Resource](../../ui/ts-types.md) \| [linearGradient](ts-universal-attributes-gradient-color.md) | - | Source or gradient color of the border image.|
+| slice | Length \| EdgeWidth | 0 | Slice width of the border image.|
+| width | Length \| EdgeWidth | 0 | Width of the border image.|
+| outset | Length \| EdgeWidth | 0 | Amount by which the border image is extended beyond the border box.|
+| RepeatMode  | RepeatMode | RepeatMode.Stretch | Repeat mode of the border image.|
+| fill | boolean | false | Whether to fill the center of the border image. |
+- EdgeWidth 
+
+   At least one parameter must be passed to reference an **EdgeWidth** object.
+  | Name| Type| Mandatory| Default Value |Description|
+  | -------- | -------- |-------- |-------- |-------- |
+  | left | Length | No| 0 | Distance on the left.|
+  | right | Length | No| 0 | Distance on the right.|
+  | top | Length | No| 0 | Distance at the top.|
+  | bottom | Length | No| 0 | Distance on the bottom.|
+- RepeatMode
+  | Name| Description|
+  | -------- | -------- |
+  | Repeat | The source image's slices are tiled. Tiles beyond the border box will be clipped.|
+  | Stretch | The source image's slices stretched to fill the border box.|
+  | Round | The source image's slices are tiled to fill the border box. Tiles may be compressed when needed.|
+  | Space | The source image's slices are tiled to fill the border box. Extra space will be filled in between tiles.|
+
+## Example
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct Index {
+  build() {
+    Row() {
+      Column() {
+        Text('This is\nborderImage.').textAlign(TextAlign.Center)
+          .borderImage({
+            source: "borderOrigin.png",
+            slice: {top:"31%", bottom:"31%", left:"31%", right:"31%"},
+            width: {top:"20px", bottom:"20px", left:"20px", right:"20px"},
+            outset: {top:"5px", bottom:"5px", left:"5px", right:"5px"},
+            repeat: RepeatMode.Repeat,
+            fill: false
+          });
+      }
+      .width('100%')
+    }
+    .height('100%')
+  }
+}
+```
+
+![zh-cn_image_borderImage](figures/borderImage.png)
+
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct Index {
+  build() {
+    Row() {
+      Column() {
+        Text('This is\ngradient color.').textAlign(TextAlign.Center)
+          .borderImage({
+            source: {angle:90,
+              direction: GradientDirection.Left,
+              colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]]},
+            slice: {top:10, bottom:10, left:10, right:10},
+            width: {top:"10px", bottom:"10px", left: "10px", right:"10px"},
+            repeat: RepeatMode.Stretch,
+            fill: false
+          });
+      }
+      .width('100%')
+    }
+    .height('100%')
+  }
+}
+```
+
+![en-us_image_borderImageGradient](figures/borderImageGradient.png)
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
index f530a14d3a73a1fbd35503c2b6198bb48b77543f..f37f499e123b4b282ed24136951cece34446b314 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
@@ -1,16 +1,20 @@
 # Border
 
-You can set border styles for components.
 >  **NOTE**
 >
 > The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 >
 > The border of a component is displayed above the content of its child components since API version 9.
 
+
+You can set border styles for components.
+
+
 ## Required Permissions
 
 None
 
+
 ## Attributes
 
 
@@ -27,11 +31,25 @@ None
   | -------- | -------- | -------- | -------- | -------- |
   | width | [Length](../../ui/ts-types.md) | 0 | No| Border width.|
   | color | [ResourceColor](../../ui/ts-types.md) | 'Black' | No| Border color.|
-  | radius | [Length](../../ui/ts-types.md) | 0 | No| Border radius.|
+  | radius | [Length](../../ui/ts-types.md)\| EdgeRadiuses<sup>9+</sup> | 0 | No| Border radius.|
   | style | BorderStyle | BorderStyle.Solid | No| Border style.|
 
 
+- EdgeRadiuses<sup>9+</sup>
+  
+  To reference this object, at least one parameter must be passed.
+  
+  | Name       | Type| Mandatory| Default Value| Description            |
+  | ----------- | -------- | ---- | ------ | ---------------- |
+  | topLeft     | length   | No  | 0      | Radius of the upper-left rounded corner.|
+  | topRight    | length   | No  | 0      | Radius of the upper-right rounded corner.|
+  | bottomLeft  | length   | No  | 0      | Radius of the lower-left rounded corner.|
+  | bottomRight | length   | No  | 0      | Radius of the lower-right rounded corner.|
+  
+  
+  
 - BorderStyle enums
+  
   | Name| Description|
   | -------- | -------- |
   | Dotted | Dotted border. The radius of a dot is half of **borderWidth**.|
@@ -52,6 +70,10 @@ struct BorderExample {
       Text('dashed')
         .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE).borderRadius(10)
         .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
+      Text('dashed')
+        .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE)
+        .borderRadius({ topLeft: 10, topRight: 20, bottomLeft: 30, bottomRight: 60 })
+        .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
       // Dotted border
       Text('dotted')
         .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted })
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
index 4e27ab2eb1aaf983c0128787925377339d67ad3e..d049ce9afe2f55887fd50d445ae950f14850f200 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
@@ -1,8 +1,10 @@
 # Component ID
 
+**id** identifies a component uniquely within an application. This module provides APIs for obtaining the attributes of or sending events to the component with the specified ID.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
+>  **NOTE**
+>
+>  The APIs of this module are supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 
 ## Required Permissions
@@ -12,93 +14,250 @@ None
 
 ## Attributes
 
-  | Name | Type | Default Value | Description | 
+| Name| Type| Default Value| Description|
 | -------- | -------- | -------- | -------- |
-| id | string | '' | Unique ID of the component. The uniqueness is ensured by the user. | 
+| id | string | '' | Unique ID you assigned to the component.|
 
 
 ## APIs
 
 
-### getInspectorByKey
+### getInspectorByKey<sup>9+</sup>
 
 getInspectorByKey(id: string): string
 
 Obtains all attributes of the component with the specified ID, excluding the information about child components.
 
 - Parameters
-    | Name | Type | Mandatory | Default Value | Description | 
+  | Name| Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | id | string | Yes | - | ID of the component whose attributes are to be obtained. | 
+  | id | string | Yes| - | ID of the component whose attributes are to be obtained.|
 
 - Return value
-    | Type | Description | 
+  | Type| Description|
   | -------- | -------- |
-  | string | JSON string of the component attribute list. | 
+  | string | JSON string of the component attribute list.|
 
+### getInspectorTree<sup>9+</sup>
 
-### sendEventByKey
+getInspectorTree(): string
+
+Obtains the component tree and component attributes.
+
+- Return value
+
+  | Type  | Description                              |
+  | ------ | ---------------------------------- |
+  | string | JSON string of the component tree and component attribute list.|
+
+### sendEventByKey<sup>9+</sup>
 
 sendEventByKey(id: string, action: number, params: string): boolean
 
 Sends an event to the component with the specified ID.
 
 - Parameters
-    | Name | Type | Mandatory | Default Value | Description | 
+  | Name| Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | id | string | Yes | - | ID of the component for which the event is to be sent. | 
-  | action | number | Yes | - | Type of the event to be sent. The options are as follows:<br/>- Click event: 10.<br/>- LongClick: 11. | 
-  | params | string | Yes | - | Event parameters. If there is no parameter, pass an empty string **""**. | 
+  | id | string | Yes| - | ID of the component to which the event is to be sent.|
+  | action | number | Yes| - | Type of the event to be sent. The options are as follows:<br>- **10**: click event.<br>- **11**: long-click event.|
+  | params | string | Yes| - | Event parameters. If there is no parameter, pass an empty string **""**.|
 
 - Return value
-    | Type | Description | 
+  | Type| Description|
   | -------- | -------- |
-  | boolean | Returns **false** if the component with the specified ID cannot be found; returns **true** otherwise. | 
+  | boolean | Returns **true** if the component with the specified ID is found; returns **false** otherwise.|
+
+### sendTouchEvent<sup>9+</sup>
+
+sendTouchEvent(event: TouchObject): boolean
+
+Sends a touch event.
+
+- Parameters
+
+  | Name | Type       | Mandatory| Default Value| Description                                                        |
+  | ----- | ----------- | ---- | ------ | ------------------------------------------------------------ |
+  | event | TouchObject | Yes  | -      | Location where a touch event is triggered. For details, see [TouchEvent](ts-universal-events-touch.md#touchevent).|
+
+- Return value
+
+  | Type   | Description                                       |
+  | ------- | ------------------------------------------- |
+  | boolean | Returns **true** if the event is sent successfully; returns **false** otherwise.|
+
+### sendKeyEvent<sup>9+</sup>
+
+sendKeyEvent(event: KeyEvent): boolean
+
+Sends a key event.
+
+- Parameters
+
+  | Name | Type    | Mandatory| Default Value| Description                                                        |
+  | ----- | -------- | ---- | ------ | ------------------------------------------------------------ |
+  | event | KeyEvent | Yes  | -      | Key event. For details, see [KeyEvent](ts-universal-events-key.md#keyevent).|
+
+- Return value
+
+  | Type   | Description                                         |
+  | ------- | --------------------------------------------- |
+  | boolean | Returns **true** if the event is sent successfully; returns **false** otherwise.|
+
+### sendMouseEvent<sup>9+</sup>
+
+sendMouseEvent(event: MouseEvent): boolean
+
+Sends a mouse event.
+
+- Parameters
+
+  | Name | Type      | Mandatory| Default Value| Description                                                        |
+  | ----- | ---------- | ---- | ------ | ------------------------------------------------------------ |
+  | event | MouseEvent | Yes  | -      | Mouse event. For details, see [MouseEvent](ts-universal-mouse-key.md#mouseevent).|
+
+- Return value
 
+  | Type   | Description                                         |
+  | ------- | --------------------------------------------- |
+  | boolean | Returns **true** if the event is sent successfully; returns **false** otherwise.|
 
 ## Example
 
-  
-```
+```ts
+// xxx.ets
+class Utils {
+  static rect_left;
+  static rect_top;
+  static rect_right;
+  static rect_bottom;
+  static rect_value;
+
+  static getComponentRect(key) {
+    let strJson = getInspectorByKey(key);
+    let obj = JSON.parse(strJson);
+    console.info("[getInspectorByKey] current component obj is: " + JSON.stringify(obj));
+    let rectInfo = JSON.parse('[' + obj.$rect + ']')
+    console.info("[getInspectorByKey] rectInfo is: " + rectInfo);
+    this.rect_left = JSON.parse('[' + rectInfo[0] + ']')[0]
+    this.rect_top = JSON.parse('[' + rectInfo[0] + ']')[1]
+    this.rect_right = JSON.parse('[' + rectInfo[1] + ']')[0]
+    this.rect_bottom = JSON.parse('[' + rectInfo[1] + ']')[1]
+    return this.rect_value = {
+      "left": this.rect_left, "top": this.rect_top, "right": this.rect_right, "bottom": this.rect_bottom
+    }
+  }
+}
+
 @Entry
 @Component
 struct IdExample {
+  @State text: string = ''
+
   build() {
     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+
       Button() {
-        Text('click')
-          .fontSize(25)
-          .fontWeight(FontWeight.Bold)
-      }
-      .type(ButtonType.Capsule)
-      .margin({
-        top: 20
-      }).onClick(() => {
+        Text('onKeyTab').fontSize(25).fontWeight(FontWeight.Bold)
+      }.margin({ top: 20 }).backgroundColor('#0D9FFB')
+      .onKeyEvent(() => {
+        this.text = "onKeyTab"
+      })
+
+      Button() {
+        Text('click to start').fontSize(25).fontWeight(FontWeight.Bold)
+      }.margin({ top: 20 })
+      .onClick(() => {
         console.info(getInspectorByKey("click"))
         console.info(getInspectorTree())
+        this.text = "Button 'click to start' is clicked"
         setTimeout(() => {
-          sendEventByKey("longclick", 11, "")
+          sendEventByKey("longClick", 11, "")
         }, 2000)
       }).id('click')
 
       Button() {
-        Text('longclick')
-          .fontSize(25)
-          .fontWeight(FontWeight.Bold)
-      }
-      .type(ButtonType.Capsule)
-      .margin({
-        top: 20
-      })
-      .backgroundColor('#0D9FFB')
+        Text('longClick').fontSize(25).fontWeight(FontWeight.Bold)
+      }.margin({ top: 20 }).backgroundColor('#0D9FFB')
       .gesture(
-        LongPressGesture().onActionEnd(() => {
-          console.info('long clicked')
-        }))
-      .id('longclick')
+      LongPressGesture().onActionEnd(() => {
+        console.info('long clicked')
+        this.text = "Button 'longClick' is longclicked"
+        setTimeout(() => {
+          let rect = Utils.getComponentRect('onTouch')
+          let touchPoint: TouchObject = {
+            id: 1,
+            x: rect.left + (rect.right - rect.left) / 2,
+            y: rect.top + (rect.bottom - rect.top) / 2,
+            type: TouchType.Down,
+            screenX: rect.left + (rect.right - rect.left) / 2,
+            screenY: rect.left + (rect.right - rect.left) / 2,
+          }
+          sendTouchEvent(touchPoint)
+          touchPoint.type = TouchType.Up
+          sendTouchEvent(touchPoint)
+        }, 2000)
+      })).id('longClick')
+
+      Button() {
+        Text('onTouch').fontSize(25).fontWeight(FontWeight.Bold)
+      }.type(ButtonType.Capsule).margin({ top: 20 })
+      .onClick(() => {
+        console.info('onTouch is clicked')
+        this.text = "Button 'onTouch' is clicked"
+        setTimeout(() => {
+          let rect = Utils.getComponentRect('onMouse')
+          let mouseEvent: MouseEvent = {
+            button: MouseButton.Left,
+            action: MouseAction.Press,
+            x: rect.left + (rect.right - rect.left) / 2,
+            y: rect.top + (rect.bottom - rect.top) / 2,
+            screenX: rect.left + (rect.right - rect.left) / 2,
+            screenY: rect.top + (rect.bottom - rect.top) / 2,
+            timestamp: 1,
+            target: {
+              area: {
+                width: 1,
+                height: 1,
+                position: {
+                  x: 1,
+                  y: 1
+                },
+                globalPosition: {
+                  x: 1,
+                  y: 1
+                }
+              }
+            },
+            source: SourceType.Mouse
+          }
+          sendMouseEvent(mouseEvent)
+        }, 2000)
+      }).id('onTouch')
+
+      Button() {
+        Text('onMouse').fontSize(25).fontWeight(FontWeight.Bold)
+      }.margin({ top: 20 }).backgroundColor('#0D9FFB')
+      .onMouse(() => {
+        console.info('onMouse')
+        this.text = "Button 'onMouse' in onMouse"
+        setTimeout(() => {
+          let keyEvent: KeyEvent = {
+            type: KeyType.Down,
+            keyCode: 2049,
+            keyText: 'tab',
+            keySource: 4,
+            deviceId: 0,
+            metaKey: 0,
+            timestamp: 0
+          }
+          sendKeyEvent(keyEvent)
+        }, 2000)
+      }).id('onMouse')
+
+      Text(this.text).fontSize(25).padding(15)
     }
-    .width('100%')
-    .height('100%')
+    .width('100%').height('100%')
   }
 }
 ```
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
index abba7c987d32cb45c0fe1513c0d8adeb02a7cc33..934cb61fd75f6508e22d0f10c88507c1ce9c01bc 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
@@ -1,7 +1,9 @@
 # Gradient Color
 
+Create a more gorgeous look for a component by applying a gradient color effect to it.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -15,31 +17,32 @@ None
 
 | Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| linearGradient | {<br/>angle?: [Angle](../../ui/ts-types.md),<br/>direction?:GradientDirection,<br/>colors: Array<[ColorStop](../../ui/ts-types.md)><br/>repeating?: boolean<br/>} | - | Linear gradient.<br/>**angle**: angle of the linear gradient.<br/>**direction**: direction of the linear gradient.<br/>**colors**: description of the gradient colors.<br/>**repeating**: whether the colors are repeated. |
+| linearGradient | {<br/>angle?: [Angle](../../ui/ts-types.md),<br/>direction?:GradientDirection,<br/>colors: Array<[ColorStop](../../ui/ts-types.md)><br/>repeating?: boolean<br/>} | - | Linear gradient.<br/>**angle**: angle of the linear gradient.<br/>**direction**: direction of the linear gradient. It does not take effect when **angle** is set.<br/>**colors**: description of the gradient colors.<br/>**repeating**: whether the colors are repeated. |
 | sweepGradient | {<br/>center: Point,<br/>start?: angle,<br/>end?: angle,<br/>colors: Array<[ColorStop](../../ui/ts-types.md)><br/>repeating?: boolean<br/>} | - | Angle gradient.<br/>**center**: center point of the angle gradient.<br/>**start**: start point of the angle gradient.<br/>**end**: end point of the angle gradient.<br/>**colors**: description of the gradient colors.<br/>**repeating**: whether the colors are repeated. |
 | radialGradient | {<br/>center: Point,<br/>radius: Length,<br/>colors: Array<[ColorStop](../../ui/ts-types.md)><br/>repeating: boolean<br/>} | - | Radial gradient.<br/>**center**: center point of the radial gradient.<br/>**radius**: radius of the radial gradient.<br/>**colors**: description of the gradient colors.<br/>**repeating**: whether the colors are repeated. |
 
+- GradientDirection
 
-- GradientDirection enums
-  **GradientDirection** is used to describe the gradient direction.
+  Enumerates the gradient directions.
 
-    | Name | Description | 
+  | Name | Description |
   | -------- | -------- |
-  | Left | The gradient direction is from right to left. | 
-  | Top | The gradient direction is from bottom to top. | 
-  | Right | The gradient direction is from left to right. | 
-  | Bottom | The gradient direction is from top to bottom. | 
-  | LeftTop | The gradient direction is upper left. | 
-  | LeftBottom | The gradient direction is lower left. | 
-  | RightTop | The gradient direction is upper right. | 
-  | RightBottom | The gradient direction is lower right. | 
-  | None | No gradient. | 
+  | Left | The gradient direction is from right to left. |
+  | Top | The gradient direction is from bottom to top. |
+  | Right | The gradient direction is from left to right. |
+  | Bottom | The gradient direction is from top to bottom. |
+  | LeftTop | The gradient direction is upper left. |
+  | LeftBottom | The gradient direction is lower left. |
+  | RightTop | The gradient direction is upper right. |
+  | RightBottom | The gradient direction is lower right. |
+  | None | No gradient. |
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ColorGradientExample {
@@ -51,7 +54,6 @@ struct ColorGradientExample {
         .height(50)
         .linearGradient({
           angle: 90,
-          direction: GradientDirection.Left,
           colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]]
         })
       Text('sweepGradient').fontSize(12).width('90%').fontColor(0xCCCCCC)
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md
index d37d1d1f1421a570c749484e59fd3f9ef9883952..d322c63560b3fc012d6dd089b6bf7227e7ee8fea 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md
@@ -1,7 +1,10 @@
 # Menu Control
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
+This module provides APIs for binding a menu – a vertical list of items – to a component. This menu is displayed by long-pressing, clicking, or right-clicking the component.
+
+>  **NOTE**
+>
+>  The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
 ## Required Permissions
@@ -12,29 +15,30 @@ None
 ## Attributes
 
 
-| Name                         | Type                                     | Default Value | Description                              |
-| ---------------------------- | ---------------------------------------- | ------------- | ---------------------------------------- |
-| bindMenu                     | Array<MenuItem&gt; \| [CustomBuilder](../../ui/ts-types.md)<sup>8+</sup> | -             | Menu bound to the component, which is displayed when you click the component. Textual and custom menu items are supported. |
-| bindContextMenu<sup>8+</sup> | content: [CustomBuilder](../../ui/ts-types.md)<br>responseType: ResponseType | -             | Context menu bound to the component, which is displayed when you long-press or right-click the component. Only custom menu items are supported. |
+| Name                          | Type                                    | Default Value  | Description                                |
+| ---------------------------- | ---------------------------------------- | ---- | ---------------------------------- |
+| bindMenu                     | Array<MenuItem&gt;&nbsp;\|&nbsp;[CustomBuilder](../../ui/ts-types.md)<sup>8+</sup> | -    | Menu bound to the component, which is displayed when you click the component. Textual and custom menu items are supported.|
+| bindContextMenu<sup>8+</sup> | content:&nbsp;[CustomBuilder](../../ui/ts-types.md),<br>responseType:&nbsp;ResponseType | -    | Context menu bound to the component, which is displayed when you long-press or right-click the component. Only custom menu items are supported. |
 
 
 - MenuItem
-  | Name   | Type          | Description                              |
-  | ------ | ------------- | ---------------------------------------- |
-  | value  | string        | Menu item text.                          |
-  | action | () =&gt; void | Action triggered when a menu item is clicked. |
+  | Name    | Type                     | Description         |
+  | ------ | ----------------------- | ----------- |
+  | value  | string                  | Menu item text.     |
+  | action | ()&nbsp;=&gt;&nbsp;void | Action triggered when a menu item is clicked.|
 
 - ResponseType<sup>8+</sup>
-  | Value      | Description                              |
-  | ---------- | ---------------------------------------- |
-  | LongPress  | The menu is displayed when the component is long-pressed. |
-  | RightClick | The menu is displayed when the component is right-clicked. |
+  | Value       | Description           |
+  | ---------- | ------------- |
+  | LongPress  | The menu is displayed when the component is long-pressed.  |
+  | RightClick | The menu is displayed when the component is right-clicked.|
 
 ## Example
 
 #### Menu with Textual Menu Items
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MenuExample {
@@ -66,7 +70,8 @@ struct MenuExample {
 
 #### Menu with Custom Menu Items
 
-```
+```ts
+// xxx.ets
 import router from '@system.router';
 
 @Entry
@@ -116,7 +121,8 @@ struct MenuExample {
 
 #### Context Menu (Displayed Upon Right-Clicking)
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ContextMenuExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
index 03c5ded62399d33dbc21e73048585e98b5a937ad..8f9d11414c869b9222137b212d56a590feb017d4 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
@@ -1,11 +1,12 @@
 # Opacity
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
-The attributes described in this topic are used to set the opacity of a component.
+You can set the opacity of a component.
 
 
 ## Required Permissions
@@ -16,15 +17,16 @@ None
 ## Attributes
 
 
-  | Name | Type | Default Value | Description | 
+| Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| opacity | number | 1 | Opacity of a component. The value ranges from **0** to **1**. The value **1** means opaque, and **0** means completely transparent. | 
+| opacity | number&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md) | 1 | Opacity of a component. The value ranges from **0** to **1**. The value **1** means opaque, and **0** means completely transparent. |
 
 
 ## Example
 
-  
-```
+
+```ts
+// xxx.ets
 @Entry
 @Component
 struct OpacityExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
index 9d801b2503cc4225907879d5eba7596c120db3b6..5be81d94fdc351f56722eb6a106ca5c0157b658e 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
@@ -1,8 +1,10 @@
 # Popup Control
 
+The popup attribute defines the popup displayed when a component is clicked.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
+>  **NOTE**
+>
+>  This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
 ## Required Permissions
@@ -13,48 +15,52 @@ None
 ## Attributes
 
 
-| Name | Type | Default Value | Description |
+| Name| Type| Default Value| Description|
 | -------- | -------- | -------- | -------- |
-| bindPopup | show: boolean,<br/>popup: PopupOptions \| CustomPopupOptions | - | Settings of the popup bound to a component.<br/>**show**: whether to display the popup on the creation page by default. The default value is **false**.<br/>**popup**: parameters of the current popup. |
+| bindPopup | show: boolean,<br>popup: PopupOptions \| CustomPopupOptions | - | Settings of the popup bound to a component.<br>**show**: whether to display the popup on the creation page by default. The default value is **false**.<br>**popup**: parameters of the popup.|
 
 
-- PopupOptions attributes
-    | Name | Type | Mandatory | Default Value | Description |
+- PopupOptions
+  | Name| Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | message | string | Yes | - | Content of the popup message. |
-  | placementOnTop | boolean | No | false | Whether to display the popup above the component. The default value is **false**. |
-  | primaryButton | {<br/>value: string,<br/>action: () =&gt; void<br/>} | No | - | First button.<br/>**value**: text of the primary button in the popup.<br/>**action**: callback function for clicking the primary button. |
-  | secondaryButton | {<br/>value: string,<br/>action: () =&gt; void<br/>} | No | - | Second button.<br/>**value**: text of the secondary button in the popup.<br/>**action**: callback function for clicking the secondary button. |
-  | onStateChange | (isVisible: boolean) =&gt; void | No | - | Callback for the popup status change event. The parameter **isVisible** indicates the visibility of the popup. |
+  | message | string | Yes| - | Content of the popup message.|
+  | placementOnTop | boolean | No| false | Whether to display the popup above the component. The default value is **false**.|
+  | primaryButton | {<br>value: string,<br>action: () =&gt; void<br>} | No| - | Primary button.<br>**value**: text of the primary button in the popup.<br>**action**: callback for clicking the primary button.|
+  | secondaryButton | {<br>value: string,<br>action: () =&gt; void<br>} | No| - | Secondary button.<br>**value**: text of the secondary button in the popup.<br>**action**: callback for clicking the secondary button.|
+  | onStateChange | (isVisible: boolean) =&gt; void | No| - | Callback for the popup status change event. The parameter **isVisible** indicates whether the popup is visible.|
 
 - CustomPopupOptions<sup>8+</sup>
-    | Name | Type | Mandatory | Default Value | Description |
+  | Name| Type| Mandatory| Default Value| Description|
   | -------- | -------- | -------- | -------- | -------- |
-  | builder | () =&gt; any | Yes | - | Builder of the tooltip content. |
-  | placement | Placement | No | Placement.Bottom | Preferred position of the tooltip component. If the set position is insufficient for holding the component, it will be automatically adjusted. |
-  | maskColor | [Color](../../ui/ts-types.md) | No | - | Color of the tooltip mask. |
-  | popupColor | [Color](../../ui/ts-types.md) | No | - | Color of the tooltip. |
-  | enableArrow | boolean | No | true | Whether to display arrows. Arrows are displayed only for tooltips in the up and down directions. |
-  | autoCancel | boolean | No | true | Whether to automatically close the tooltip when an operation is performed on the page. |
-  | onStateChange | (isVisible: boolean) =&gt; void | No | - | Callback for the popup status change event. The parameter **isVisible** indicates the visibility of the popup. |
+  | builder | () =&gt; any | Yes| - | Builder of the popup content.|
+  | placement | Placement | No| Placement.Bottom | Preferred position of the popup. If the set position is insufficient for holding the popup, it will be automatically adjusted.|
+  | maskColor | [ResourceColor](../../ui/ts-types.md) | No| - | Color of the popup mask.|
+  | popupColor | [ResourceColor](../../ui/ts-types.md) | No| - | Color of the popup.|
+  | enableArrow | boolean | No| true | Whether to display an arrow.<br>Since API version 9, if the location set for the arrow is not large enough, the arrow will not be displayed. For example, if **placement** is set to **Left** and the popup height is less than the arrow width (32 vp), the arrow will not be displayed.|
+  | autoCancel | boolean | No| true | Whether to automatically close the popup when an operation is performed on the page.|
+  | onStateChange | (isVisible: boolean) =&gt; void | No| - | Callback for the popup status change event. The parameter **isVisible** indicates whether the popup is visible.|
 
 - Placement<sup>8+</sup> enums
-    | Name | Description |
+  | Name| Description|
   | -------- | -------- |
-  | Left | The tooltip is on the left of the component. |
-  | Right | The tooltip is on the right of the component. |
-  | Top | The tooltip is on the top of the component. |
-  | Bottom | The tooltip is at the bottom of the component. |
-  | TopLeft | The tooltip is in the upper left corner of the component. |
-  | TopRight | The tooltip is in the upper right corner of the component. |
-  | BottomLeft | The tooltip is in the lower left corner of the component. |
-  | BottomRight | The tooltip is in the lower right corner of the component. |
+  | Left | The popup is on the left of the component, vertically aligned with the component on the left.|
+  | Right | The popup is on the right of the component, vertically aligned with the component on the right.|
+  | Top | The popup is at the top of the component, horizontally aligned with the component at the top.|
+  | Bottom | The popup is at the bottom of the component, horizontally aligned with the component at the bottom.|
+  | TopLeft | The popup is at the top of the component and, since API version 9, aligned with the left of the component.|
+  | TopRight | The popup is at the top of the component and, since API version 9, aligned with the right of the component.|
+  | BottomLeft | The popup is at the bottom of the component and, since API version 9, aligned with the left of the component.|
+  | BottomRight | The popup is at the bottom of the component and, since API version 9, aligned with the right of the component.|
+  | LeftTop<sup>9+</sup> | The popup is on the left of the component and aligned with the top of the component.|
+  | LeftBottom<sup>9+</sup> | The popup is on the left of the component and aligned with the bottom of the component.|
+  | RightTop<sup>9+</sup> | The popup is on the right of the component and aligned with the top of the component.|
+  | RightBottom<sup>9+</sup> | The popup is on the right of the component and aligned with the bottom of the component.|
 
 
 ## Example
 
-
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct PopupExample {
@@ -65,7 +71,7 @@ struct PopupExample {
   @Builder popupBuilder() {
     Row({ space: 2 }) {
       Image('/resource/ic_public_thumbsup.svg').width(24).height(24).margin({ left: -5 })
-      Text('Custom Popup').fontSize(12)
+      Text('Custom Popup').fontSize(10)
     }.width(100).height(50).backgroundColor(Color.White)
   }
 
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md
index e0468dfe5e7d39816efc9e8a6c10a08a3412321c..8fe71bfe50f7c85128ee538c02ff8e63d2a6fda9 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md
@@ -1,7 +1,8 @@
 # Shape Clipping
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -13,16 +14,17 @@ None
 ## Attributes
 
 
-  | Name | Type | Default Value | Description | 
+| Name | Type | Default Value | Description |
 | -------- | -------- | -------- | -------- |
-| clip | Shape \| boolean | false | Specifies a clip mode. The value **Shape** indicates that the current component is cropped based on the specified shape. The value **boolean** specifies whether to clip the component based on the edge outline. | 
-| mask | Shape | - | Adds a mask of the specified shape to the current component. | 
+| clip | Shape \| boolean | false | Clip mode. The value **Shape** indicates that the current component is cropped based on the specified shape. The value **boolean** specifies whether to clip the component based on the edge outline. |
+| mask | Shape | - | Mask of the specified shape for the current component. |
 
 
 ## Example
 
-  
-```
+
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ClipAndMaskExample {
@@ -30,24 +32,24 @@ struct ClipAndMaskExample {
     Column({ space: 5 }) {
       Text('clip').fontSize(9).width('90%').fontColor(0xCCCCCC)
       // Clip the image by using a circle with a diameter of 280px.
-      Image('/comment/bg.jpg')
+      Image($r('app.media.example'))
         .clip(new Circle({ width: 80, height: 80 }))
         .width('500px').height('280px')
 
       Row() {
-        Image('/comment/bg.jpg').width('500px').height('280px')
+        Image($r('app.media.example')).width('500px').height('280px')
       }
       .clip(true)
       .borderRadius(20)
 
       Text('mask').fontSize(9).width('90%').fontColor(0xCCCCCC)
       // Add a 500 px x 280 px mask to the image.
-      Image('/comment/bg.jpg')
+      Image($r('app.media.example'))
         .mask(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray))
         .width('500px').height('280px')
 
       // Add a 280 px x 280 px circle mask to the image.
-      Image('/comment/bg.jpg')
+      Image($r('app.media.example'))
         .mask(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray))
         .width('500px').height('281px')
     }
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md b/en/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md
new file mode 100644
index 0000000000000000000000000000000000000000..578c036839453f869b190c89331efe0a81122555
--- /dev/null
+++ b/en/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md
@@ -0,0 +1,121 @@
+# Visible Area Change Event
+
+The visible area change event of a component refers to the change in the visual portion of a component on the screen. It can be used to determine whether the component is completely or partially displayed on the screen. It is usually applicable to scenarios such as advertisement exposure tracing.
+
+> **NOTE**
+>
+> The APIs of this module are supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+
+## Required Permissions
+
+None
+
+
+## Events
+
+| Name| Description|
+| -------- | -------- |
+| onVisibleAreaChange(ratios: Array\<number>, event: (isVisible: boolean, currentRatio: number) => void) | Called when the visual area of the component changes.<br>- **ratios**: threshold array. Each threshold represents a ratio of the component's visible area (that is, the area of the component that is visible on screen) to the component's total area. This callback is invoked when the ratio of the component's visible area to its total area is greater than or less than the threshold. The value range of the threshold is [0.0, 1.0]. If the threshold set exceeds this range, the value **0.0** or **1.0** will be used.<br>- **isVisible**: indicates whether the ratio of the component's visible area to its total area is greater than the threshold. The value **true** means that the ratio is greater than the threshold, and **false** means that the ratio is less than the threshold.<br>- **currentRatio**: ratio of the component's visible area to its total area when this callback is invoked.|
+
+
+## Example
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct ScrollExample {
+  scroller: Scroller = new Scroller()
+  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+  @State testTextStr: string = "test"
+  @State testRowStr: string = "test"
+
+  build() {
+    Column() {
+      Column() {
+        Text(this.testTextStr)
+          .fontSize(20)
+
+        Text(this.testRowStr)
+          .fontSize(20)
+      }
+      .height(100)
+      .backgroundColor(Color.Gray)
+      .opacity(0.3)
+
+      Scroll(this.scroller) {
+        Column() {
+          Text("Test Text Visible Change")
+            .fontSize(20)
+            .height(200)
+            .margin({ top: 50, bottom: 20 })
+            .backgroundColor(Color.Green)
+            // Set ratios to [0.0, 1.0] to invoke the callback when the component is fully visible or invisible on screen.
+            .onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) => {
+              console.info("Test Text isVisible: " + isVisible + ", currentRatio:" + currentRatio)
+              if (isVisible && currentRatio >= 1.0) {
+                console.info("Test Text is fully visible. currentRatio:" + currentRatio)
+                this.testTextStr = "Test Text is fully visible"
+              }
+
+              if (!isVisible && currentRatio <= 0.0) {
+                console.info("Test Text is completely invisible.")
+                this.testTextStr = "Test Text is completely invisible"
+              }
+            })
+
+          Row() {
+            Text("Test Row Visible  Change")
+              .fontSize(20)
+              .margin({ bottom: 20 })
+
+          }
+          .height(200)
+          .backgroundColor(Color.Yellow)
+          .onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) => {
+            console.info("Test Row isVisible:" + isVisible + ", currentRatio:" + currentRatio)
+            if (isVisible && currentRatio >= 1.0) {
+              console.info("Test Row is fully visible.")
+              this.testRowStr = "Test Row is fully visible"
+            }
+
+            if (!isVisible && currentRatio <= 0.0) {
+              console.info("Test Row is is completely invisible.")
+              this.testRowStr = "Test Row is is completely invisible"
+            }
+          })
+
+          ForEach(this.arr, (item) => {
+            Text(item.toString())
+              .width('90%')
+              .height(150)
+              .backgroundColor(0xFFFFFF)
+              .borderRadius(15)
+              .fontSize(16)
+              .textAlign(TextAlign.Center)
+              .margin({ top: 10 })
+          }, item => item)
+
+        }.width('100%')
+      }
+      .backgroundColor(0x317aff)
+      .scrollable(ScrollDirection.Vertical)
+      .scrollBar(BarState.On)
+      .scrollBarColor(Color.Gray)
+      .scrollBarWidth(30)
+      .onScroll((xOffset: number, yOffset: number) => {
+        console.info(xOffset + ' ' + yOffset)
+      })
+      .onScrollEdge((side: Edge) => {
+        console.info('To the edge')
+      })
+      .onScrollEnd(() => {
+        console.info('Scroll Stop')
+      })
+
+    }.width('100%').height('100%').backgroundColor(0xDCDCDC)
+  }
+}
+```
+
+![en-us_visible_area_change.gif](figures/en-us_visible_area_change.gif)
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-click.md b/en/application-dev/reference/arkui-ts/ts-universal-events-click.md
index 086a32f23befd0ce05d6f925ce99c9216b7c738b..cc1d167f4d0ab24526632050ac5f8c63f0cd4e00 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-events-click.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-events-click.md
@@ -1,10 +1,11 @@
 # Click Event
 
+A click event is triggered when a component is clicked.
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
-
 ## Required Permissions
 
 None
@@ -12,12 +13,12 @@ None
 
 ## Events
 
-| Name | Bubble Supported | Description |
+| Name | Bubbling Supported | Description |
 | -------- | -------- | -------- |
 | onClick(callback: (event?: ClickEvent) =&gt; void) | No | Called when a click event occurs. For details about the event parameters, see [ClickEvent](#clickevent). |
 
 
-### ClickEvent
+## ClickEvent
 
 | Name | Type | Description |
 | -------- | -------- | -------- |
@@ -25,30 +26,30 @@ None
 | screenY | number | Y coordinate of the click relative to the upper edge of the screen. |
 | x | number | X coordinate of the click relative to the left edge of the component being clicked. |
 | y | number | Y coordinate of the click relative to the upper edge of the component being clicked. |
-| target<sup>8+</sup> | EventTarget | Target element that is clicked. |
+| target<sup>8+</sup> | [EventTarget](#eventtarget8) | Target element that is clicked. |
 | timestamp | number | Timestamp of the event. |
 
-- EventTarget<sup>8+</sup> attributes
+## EventTarget<sup>8+</sup>
 
-    | Name | Type | Description |
-    | -------- | -------- | -------- |
-    | area | Area | Area information of the target element.|
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| area | [Area](#area8) | Area information of the target element.|
 
-- Area<sup>8+</sup> attributes
+## Area<sup>8+</sup>
 
-    | Name | Type | Description |
-    | -------- | -------- | -------- |
-    | width | number | Width of the target element, in vp. |
-    | height | number | Height of the target element, in vp. |
-    | position | Position | Position of the upper left corner of the target element relative to that of the parent element. |
-    | globalPosition | Position | Position of the upper left corner of the target element relative to that of the page. |
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| width | number | Width of the target element, in vp. |
+| height | number | Height of the target element, in vp. |
+| position | [Position](#position8) | Position of the upper left corner of the target element relative to that of the parent element. |
+| globalPosition | [Position](#position8) | Position of the upper left corner of the target element relative to that of the page. |
 
-- Position<sup>8+</sup> attributes
+## Position<sup>8+</sup>
 
-    | Name | Type | Description |
-    | -------- | -------- | -------- |
-    | x | number | X-coordinate, in vp. |
-    | y | number | Y-coordinate, in vp. |
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| x | number | X-coordinate, in vp. |
+| y | number | Y-coordinate, in vp. |
 
 
 ## Example
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md b/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
index a08f165f89dd50aeb15d582710a0cbfa58d1baca..be73b9cfd5f7484201fe44544d5d440e35786693 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
@@ -1,30 +1,31 @@
-# Drag/Drop Event
+# Drag Event
 
+A drag event is triggered when a component is dragged.
 
 > **NOTE**
 >
 > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
-## Events
 
-| Name | Bubble Supported | Description |
+| Name | Bubbling Supported | Description |
 | -------- | -------- | -------- |
-| onDragStart(callback: (event: DragEvent, extraParams?: string) =&gt;\|[Custom Builder](../../ui/ts-types.md)) | No | Triggered when the component bound to the event is dragged for the first time.<br/>-**event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>-**extraParams**: additional information about the drag event. For details, see extraParam.<br/>Return value: object being dragged, which is used for prompts displayed when the object is dragged.<br/>**NOTE**<br/>> - A drag event can be triggered by a 150 ms long press.<br/>> - If the duration of a long-press gesture is set to less than or equal to 150 ms, the callback for the long-press gesture takes precedence. Otherwise, the callback for the drag event takes precedence. |
-| onDragEnter(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item enters a valid drop target.<br/>-**event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>-**extraParams**: additional information about the drag event. For details, see extraParam.<br/>**NOTE**<br/>This event is valid only when the **onDrop** event is listened to. |
-| onDragMove(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item moves in a valid drop target.<br/>-**event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>-**extraParams**: additional information about the drag event. For details, see extraParam.<br/>**NOTE**<br/>This event is valid only when the **onDrop** event is listened to. |
-| onDragLeave(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item leaves a valid drop target.<br/>-**event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>-**extraParams**: additional information about the drag event. For details, see extraParam.<br/>**NOTE**<br/>This event is valid only when the **onDrop** event is listened to. |
-| onDrop(callback: (event:DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item is dropped on a valid drop target.<br/>-**event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>-**extraParams**: additional information about the drag event. For details, see extraParam. |
+| onDragStart(callback: (event: DragEvent, extraParams?: string) =&gt;\|[Custom Builder](../../ui/ts-types.md)) | No | Triggered when the component bound to the event is dragged for the first time.<br/>- **event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>- **extraParams**: additional information about the drag event. For details, see **extraParam**.<br/>Return value: object being dragged, which is used for prompts displayed when the object is dragged.<br/>A drag event can be triggered by a 150 ms long press.<br/>If the duration of a long-press gesture is set to less than or equal to 150 ms, the callback for the long-press gesture takes precedence. Otherwise, the callback for the drag event takes precedence. |
+| onDragEnter(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item enters a valid drop target.<br/>- **event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>- **extraParams**: additional information about the drag event. For details, see **extraParam**.<br/>This event is valid only when the **onDrop** event is listened to. |
+| onDragMove(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item moves in a valid drop target.<br/>- **event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>- **extraParams**: additional information about the drag event. For details, see **extraParam**.<br/>This event is valid only when the **onDrop** event is listened to. |
+| onDragLeave(callback: (event: DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item leaves a valid drop target.<br/>- **event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>- **extraParams**: additional information about the drag event. For details, see **extraParam**.<br/>This event is valid only when the **onDrop** event is listened to. |
+| onDrop(callback: (event:DragEvent, extraParams?: string) =&gt; void) | No | Triggered when the dragged item is dropped on a valid drop target.<br/>- **event**: information about the drag event, including the coordinates of the item that is being dragged.<br/>- **extraParams**: additional information about the drag event. For details, see **extraParam**. |
 
 
 - extraParam
+  
   Returns additional information required for dragging an item.
-
+  
   **extraParam** is a string converted from a JSON object. You can obtain the following attributes using the JSON object converted from **Json.parse**.
   
   | Name | Type | Description |
   | -------- | -------- | -------- |
-  | selectedIndex | number | Index of the dragged item in the parent container. The value of **selectedindex** starts from **0**.<br/>**NOTE**<br/>This attribute is valid only in the **ListItem** component. |
-  | insertIndex | number | Index of the element into which the dragged item is dropped in the **List** component. The value of **insertIndex** starts from **0**.<br/>**NOTE**<br/>This attribute is valid only in the drag event of the **List** component. |
+  | selectedIndex | number | Index of the dragged item in the parent container. The value of **selectedIndex** starts from **0**.<br/>This attribute is valid only in the **\<ListItem>** component. |
+  | insertIndex | number | Index of the element into which the dragged item is dropped in the **List** component. The value of **insertIndex** starts from **0**.<br/>This attribute is valid only in the drag event of the **\<List>** component. |
 
 
 ### DragEvent
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-key.md b/en/application-dev/reference/arkui-ts/ts-universal-events-key.md
index ca5694f8efd070b2ed5eab223f44474b03a54bb5..77f563ad5781a1acbd502023a4be8d2e965247a8 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-events-key.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-events-key.md
@@ -1,8 +1,10 @@
 # Key Event
 
+A key event is triggered when a component interacts with a keyboard, remote control, or any other input device with keys.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> This method is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
+> **NOTE**
+>
+> This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
 ## Required Permissions
@@ -12,58 +14,61 @@ None
 
 ## Events
 
-| Name | Bubble Supported | Description |
+| Name | Bubbling Supported | Description |
 | -------- | -------- | -------- |
-| onKeyEvent(event: (event?: KeyEvent) =&gt; void) | Yes | Called when a key event occurs. For details about the event parameters, see [KeyEvent Object](#KeyEvent Object). |
+| onKeyEvent(event: (event?: KeyEvent) =&gt; void) | Yes | Called when a key event occurs. For details about **event**, see [KeyEvent](#keyevent). |
 
 
-### KeyEvent Object
+## KeyEvent
 
 - Attributes
-    | Name | Type | Description | 
+  | Name | Type | Description |
   | -------- | -------- | -------- |
-  | type | KeyType | Type of a key. | 
-  | keyCode | number | Key code. | 
-  | keyText | string | Key value. | 
-  | keySource | KeySource | Type of the input device that triggers the key event. | 
-  | deviceId | number | ID of the input device that triggers the key event. | 
-  | metaKey | number | State of the metakey when the key is pressed. The value **1** means the pressed state, and **0** means the unpressed state. | 
-  | timestamp | number | Timestamp when the key is pressed. | 
+  | type | [KeyType](#keytype-enums) | Type of a key. |
+  | keyCode | number | Key code. |
+  | keyText | string | Key value. |
+  | keySource | [KeySource](#keysource-enums) | Type of the input device that triggers the key event. |
+  | deviceId | number | ID of the input device that triggers the key event. |
+  | metaKey | number | State of the metakey when the key is pressed. The value **1** means the pressed state, and **0** means the unpressed state. |
+  | timestamp | number | Timestamp when the key is pressed. |
 
 - APIs
-    | Name | Description | 
+  | Name | Description |
   | -------- | -------- |
-  | stopPropagation(): void | Stops the event from bubbling upwards or downwards. | 
+  | stopPropagation(): void | Stops the event from bubbling upwards or downwards. |
 
-- KeyType enums
-    | Name | Description | 
-  | -------- | -------- |
-  | Down | The key is pressed. | 
-  | Up | The key is released. | 
+## KeyType Enums
 
+| Name | Description |
+| -------- | -------- |
+| Down | The key is pressed. |
+| Up | The key is released. |
 
-- KeySource enums
-    | Name | Description | 
-  | -------- | -------- |
-  | Unknown | Unknown input device. | 
-  | Keyboard | The input device is a keyboard. | 
 
-- Common KeyCode description
-    | Value | Behavior | Physical Button | 
-  | -------- | -------- | -------- |
-  | 19 | Upward | Up button. | 
-  | 20 | Downward | Down button. | 
-  | 21 | Leftward | Left button. | 
-  | 22 | Rightward | Right button. | 
-  | 23 | OK | **OK** key on a remote control. | 
-  | 66 | OK | **Enter** key on a keyboard. | 
-  | 160 | OK | **Enter** button on the numeric keypad. | 
+## KeySource Enums
+| Name | Description |
+| -------- | -------- |
+| Unknown | Unknown input device. |
+| [KeyCode](#common-keycode-enums) | The input device is a keyboard. |
+
+## Common KeyCode Enums
+
+| Value | Behavior | Physical Button |
+| -------- | -------- | -------- |
+| 19 | Upward | Up button. |
+| 20 | Downward | Down button. |
+| 21 | Leftward | Left button. |
+| 22 | Rightward | Right button. |
+| 23 | OK | **OK** key on a remote control. |
+| 66 | OK | **Enter** key on a keyboard. |
+| 160 | OK | **Enter** button on the numeric keypad. |
 
 
 ## Example
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct KeyEventExample {
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md b/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md
index ea64017630aeb9e7b8ffaa5960a2d18ab9839fa2..58833a25b0ee0a8aa36c37c81c9a31d0954d0bf3 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md
@@ -1,7 +1,9 @@
 # Touch Event
 
+A touch event is triggered when a finger is pressed, slides, or is lifted from a component.
 
-> **NOTE**<br>
+> **NOTE**
+>
 > This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -12,51 +14,51 @@ None
 
 ## Events
 
-| Name | Pop-up | Description |
-| -------- | -------- | -------- |
-| onTouch(callback: (event?: TouchEvent) =&gt; void) | Yes | Invoked when a touch action is triggered. For details about the event parameters, see [TouchEvent](#touchevent). |
+| Name                                      | Bubbling Supported| Description                                    |
+| ---------------------------------------- | ---- | ---------------------------------------- |
+| onTouch(callback:&nbsp;(event?:&nbsp;TouchEvent)&nbsp;=&gt;&nbsp;void) | Yes   | Invoked when a touch action is triggered. For details about **event**, see [TouchEvent](#touchevent).|
 
 
-### TouchEvent
+## TouchEvent
 
 - Attributes
-  | Name | Type | Description |
-  | -------- | -------- | -------- |
-  | type | TouchType | Type of a touch event. |
-  | touches | Array&lt;TouchObject&gt; | All finger information. |
-  | changedTouches | Array&lt;TouchObject&gt; | Finger information changed. |
-  | timestamp | number | Timestamp of the event. |
-  | target<sup>8+</sup> | [EventTarget](ts-universal-events-click.md) | Target of the event. |
+  | Name               | Type                                      | Description          |
+  | ------------------- | ---------------------------------------- | ------------ |
+  | type                | TouchType                                | Type of the touch event.    |
+  | touches             | Array&lt;[TouchObject](#touchobject)&gt; | All finger information.     |
+  | changedTouches      | Array&lt;[TouchObject](#touchobject)&gt; | Finger information changed.|
+  | timestamp           | number                                   | Timestamp of the event.      |
+  | target<sup>8+</sup> | [EventTarget](ts-universal-events-click.md#eventtarget8) | Target of the event.    |
+
 
 - APIs
-  | Name | Description |
-  | -------- | -------- |
-  | stopPropagation(): void | Pop-up of the stop event. |
+  | Name                  | Description   |
+  | ---------------------- | ------- |
+  | stopPropagation(): void| Stops the event from bubbling upwards or downwards.|
 
 
-- TouchObject
-  | Name | Type | Description |
-  | -------- | -------- | -------- |
-  | type | TouchType | Type of a touch event. |
-  | id | number | Unique identifier of a finger. |
-  | screenX | number | X coordinate of the touch point relative to the left edge of the screen. |
-  | screenY | number | Y coordinate of the touch point relative to the upper edge of the device screen. |
-  | x | number | X coordinate of the touch point relative to the left edge of the element to touch. |
-  | y | number | Y coordinate of the touch point relative to the upper edge of the element to touch. |
+## TouchObject
+| Name   | Type                         | Description                 |
+| ------- | --------------------------- | ------------------- |
+| type    | [TouchType](#touchtype-enums) | Type of the touch event.           |
+| id      | number                      | Unique identifier of a finger.           |
+| screenX | number                      | X-coordinate of the touch point relative to the left edge of the screen. |
+| screenY | number                      | Y-coordinate of the touch point relative to the upper edge of the device screen. |
+| x       | number                      | X-coordinate of the touch point relative to the left edge of the element being touched. |
+| y       | number                      | Y-coordinate of the touch point relative to the upper edge of the element being touched. |
 
 
-- TouchType
-  | Name | Description |
-  | -------- | -------- |
-  | Down | Trigger a touch event when a finger is pressed. |
-  | Up | Trigger a touch event when a finger is lifted. |
-  | Move | Trigger a touch event when a finger moves on the screen in pressed state. |
-  | Cancel | Trigger an event when a touch event is canceled. |
+## TouchType Enums
+| Name    | Description             |
+| ------ | --------------- |
+| Down   | A finger is pressed.       |
+| Up     | A finger is lifted.       |
+| Move   | A finger moves on the screen in pressed state.|
+| Cancel | A touch event is canceled.     |
 
 
 ## Example
 
-
 ```ts
 // xxx.ets
 @Entry
diff --git a/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md b/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md
index c7a488006883bf0c32f4693025f41ce7d659b2df..4174d6b266df6c9988aba4224ddabaed16dc7faf 100644
--- a/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md
+++ b/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md
@@ -1,7 +1,9 @@
 # Mouse Event
 
+If an action triggers multiple events, the order of these events is fixed. By default, mouse events are transmitted transparently.
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
+>
 > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
 
 
@@ -12,48 +14,47 @@ None
 
 ## Events
 
-  | Name | Bubble Supported | Description | 
+| Name | Bubbling Supported | Description |
 | -------- | -------- | -------- |
-| onHover(callback: (isHover: boolean) =&gt; void) | No | Triggered when the mouse cursor enters or leaves the component.<br/>**isHover**: whether the mouse cursor hovers over the component. The value **true** means that the mouse cursor enters the component, and the value **false** means that the mouse cursor leaves the component. | 
-| onMouse(callback: (event?: MouseEvent) =&gt; void) | Yes | Triggered when the component is clicked by a mouse button or the mouse cursor moves on the component. The **event** parameter indicates the timestamp, mouse button, action, coordinates of the clicked point on the entire screen, and coordinates of the clicked point relative to the component when the event is triggered. | 
-
-
-### MouseEvent
-
-- Attributes
-    | Name | Type | Description | 
-  | -------- | -------- | -------- |
-  | timestamp | number | Timestamp when the event is triggered. | 
-  | screenX | number | X-coordinate of the clicked point relative to the upper left corner of the screen. | 
-  | screenY | number | Y-coordinate of the clicked point relative to the upper left corner of the screen. | 
-  | x | number | X-coordinate of the clicked point relative to the upper left corner of the component. | 
-  | y | number | Y-coordinate of the clicked point relative to the upper left corner of the component. | 
-  | button | MouseButton | Mouse button. | 
-  | action | MouseAction | Event action. | 
-
-
-- MouseButton attributes
-    | Name | Type | Description | 
-  | -------- | -------- | -------- |
-  | Left | number | Left mouse button. | 
-  | Right | number | Right mouse button. | 
-  | Middle | number | Middle mouse button. | 
-  | Back | number | Back button on the left of the mouse. | 
-  | Forward | number | Forward button on the left of the mouse. | 
-  | None | number | No button. | 
-
-- MouseAction attributes
-    | Name | Type | Description | 
-  | -------- | -------- | -------- |
-  | Press | number | The mouse button is pressed. | 
-  | Release | number | The mouse button is released. | 
-  | Move | number | The mouse cursor moves. | 
+| onHover(callback: (isHover: boolean) =&gt; void) | No | Triggered when the mouse cursor enters or leaves the component.<br/>**isHover**: whether the mouse cursor hovers over the component. The value **true** means that the mouse cursor enters the component, and the value **false** means that the mouse cursor leaves the component. |
+| onMouse(callback: (event?: MouseEvent) =&gt; void) | Yes | Triggered when the component is clicked by a mouse button or the mouse cursor moves on the component. The **event** parameter indicates the timestamp, mouse button, action, coordinates of the clicked point on the entire screen, and coordinates of the clicked point relative to the component when the event is triggered. |
+
+
+## MouseEvent
+
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| timestamp | number | Timestamp when the event is triggered. |
+| screenX | number | X-coordinate of the clicked point relative to the upper left corner of the screen. |
+| screenY | number | Y-coordinate of the clicked point relative to the upper left corner of the screen. |
+| x | number | X-coordinate of the clicked point relative to the upper left corner of the component. |
+| y | number | Y-coordinate of the clicked point relative to the upper left corner of the component. |
+| button | [MouseButton](#mousebutton) | Mouse button. |
+| action | [MouseAction](#mouseaction) | Event action. |
+
+## MouseButton
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| Left | number | Left mouse button. |
+| Right | number | Right mouse button. |
+| Middle | number | Middle mouse button. |
+| Back | number | Back button on the left of the mouse. |
+| Forward | number | Forward button on the left of the mouse. |
+| None | number | No button. |
+
+## MouseAction
+| Name | Type | Description |
+| -------- | -------- | -------- |
+| Press | number | The mouse button is pressed. |
+| Release | number | The mouse button is released. |
+| Move | number | The mouse cursor moves. |
 
 
 ## Example
 
-  
-```
+
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MouseEventExample {
diff --git a/en/application-dev/security/accesstoken-guidelines.md b/en/application-dev/security/accesstoken-guidelines.md
index 0eefcc9175b85437a425d73dd9c7759adf649674..f6ef8fc8ba202071cfa01c1f559e35d4654e5230 100644
--- a/en/application-dev/security/accesstoken-guidelines.md
+++ b/en/application-dev/security/accesstoken-guidelines.md
@@ -24,9 +24,13 @@ The table below lists only the API used in this guide. For more information, see
 
 ## Declaring Permissions
 
-### config.json
+Declare the permissions required by the app one by one in the project configuration file. The app cannot obtain the permissions that are not declared in the configuration file. The ability framework provides two models: Feature Ability (FA) model and stage model. For more information, see [Ability Framework Overview](../ability/ability-brief.md).
 
-Declare the permissions required by the app one by one in the **config.json** file. The app can obtain permissions that have been declared in the **config.json** file.
+Note that the app bundle structure and configuration file vary with the ability framework model.
+
+### FA Model
+
+For the apps based on the FA model, declare the required permissions in the **config.json** file.
 
 **Description of config.json**
 
@@ -40,6 +44,41 @@ Declare the permissions required by the app one by one in the **config.json** fi
 
 **Example**
 
+```json
+{
+    "module" : {
+        "reqPermissions":[
+           {
+                "name" : "ohos.permission.PERMISSION1",
+                "reason": "$string:reason",
+                "usedScene": {
+                     "abilities": [
+                         "FormAbility"
+                     ],
+                     "when":"inuse"
+                }
+            },
+           {
+                "name" : "ohos.permission.PERMISSION2",
+                "reason": "$string:reason",
+                "usedScene": {
+                     "abilities": [
+                         "FormAbility"
+                     ],
+                     "when":"always"
+                }
+            }
+        ],
+    }
+}
+```
+
+### Stage Model
+
+For the apps based on the stage model, declare the required permissions in the **module.json5** file.
+
+**Example**
+
 ```json
 {
     "module" : {
@@ -68,11 +107,12 @@ Declare the permissions required by the app one by one in the **config.json** fi
     }
 }
 ```
+
 ## Declaring the ACL
 
 The permission level of **ohos.permission.PERMISSION2** is **system_basic**, which is higher than the app's APL. In this case, use the ACL.
 
-In addition to declaring all the permissions in the **config.json** file, you must declare the permissions whose levels are higher than the app's APL in the app's [profile](../quick-start/app-provision-structure.md). In this example, declare the permission under the **acls** field:
+In addition to declaring all the permissions in the configuration file, you must declare the permissions whose levels are higher than the app's APL in the app's [profile](../quick-start/app-provision-structure.md). In this example, declare the permission under the **acls** field:
 ```json
 {
     "version-name": "1.0.0",
diff --git a/en/application-dev/security/accesstoken-overview.md b/en/application-dev/security/accesstoken-overview.md
index f4241cadfe3ccb2e42d6ee1ccebcd3c61598fa28..4537e67fa429ba019ae00074e2dc55c283b690e8 100644
--- a/en/application-dev/security/accesstoken-overview.md
+++ b/en/application-dev/security/accesstoken-overview.md
@@ -1,6 +1,5 @@
 # Access Control Overview
 
-## Introduction
 AccessTokenManager (ATM) implements unified app permission management based on access tokens on OpenHarmony.
 
 By default, apps can access limited system resources. However, in some cases, an app needs to access excess data (including personal data) and functions of the system or another app to implement extended functions. The system or apps must also share their data or functions through interfaces in an explicit manner. OpenHarmony uses app permissions to perform access control and prevent improper or malicious use of these data or functions.
@@ -12,9 +11,9 @@ App permissions are used to protect the following objects:
 
 Without the required permissions, an app cannot access or perform operations on the target object. Permissions must be clearly defined for apps. With well-defined app permissions, the system can standardize the behavior of apps and protect user privacy. Before an app accesses the target object, the target object verifies the app's permissions and denies the access if the app does not have required permissions.
 
-Currently, ATM performs app permission verification based on the token identity (Token ID). A token ID identifies an app. The ATM manages app permissions based on the app's token ID.
+Currently, ATM verifies app permissions based on the token identity (Token ID). A token ID identifies an app. The ATM manages app permissions based on the app's token ID.
 
-## How to Develop
+## Permission Workflow
 
 Determine the permissions required for an app to access data or perform an operation. Declare the required permissions in the app installation package.
 
@@ -22,12 +21,34 @@ Determine whether the required permissions need to be authorized by users. If ye
 
 After the user grants permissions to the app, the app can access the data or perform the operation.
 
-The figure below shows the process.
+The figure below shows the permission workflow.
 
 ![](figures/permission-workflow.png)
 
+1. Refer to the figure below for the process of applying for app permissions.
+
+![](figures/permission-application-process.png)
+
+1. For details about the mapping between the application Ability Privilege Level (APL) and permission level, see [Permission Levels](#permission-levels).
+
+2. The permission authorization modes include user_grant (permission granted by the user) and system_grant (permission granted by the system). For details, see [Permission Authorization Modes](#permission-authorization-mode).
+
+3. A low-level app can have a high-level permission by using the Access Control List (ACL). For details, see [ACL](#acl).
+
 ## When to Use
 
+### Basic Principles
+
+Observe the following principles for permission management:
+
+- Provide clear description about the app functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are required. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app.
+- Use the principle of least authority for user permissions. Allow only necessary permissions for service functions.
+- When an app is started for the first time, avoid frequently displaying dialog boxes to request permissions. Allow the app to apply for permissions only when it needs to use the corresponding service functions.
+- If a user rejects to authorize a permission, the user can still use functions irrelevant to this permission and can register and access the app.
+- Provide no more message if a user rejects the authorization required by a function. Provide onscreen instructions to direct the user to grant the permission in **Settings** if the user triggers this function again or needs to use this function.
+
+- All the permissions granted to apps must come from the [Permission List](permission-list.md). Custom permissions are not allowed for apps currently.
+
 ### Scenarios
 
 The following describes two common scenarios.
@@ -46,25 +67,13 @@ The following describes two common scenarios.
 
     ohos.permission.CAMERA (allowing the apps to use the camera to take photos and record videos)
 
-### Basic Principles
-
-Observe the following principles for permission management:
-
-- Provide clear description about the app functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are required. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app.
-- Use the principle of least authority for user permissions. Allow only necessary permissions for service functions.
-- When an app is started for the first time, avoid frequently displaying dialog boxes to request permissions. Allow the app to apply for permissions only when it needs to use the corresponding service functions.
-- If a user rejects to authorize a permission, the user can still use functions irrelevant to this permission and can register and access the app.
-- Provide no more message if a user rejects the authorization required by a function. Provide onscreen instructions to direct the user to grant the permission in **Settings** if the user triggers this function again or needs to use this function.
-
-- All the permissions granted to apps must come from the Permission List. Custom permissions are not allowed for apps currently.
-
 ## Permission Levels
 
 To protect user privacy, ATM defines different permission levels based on the sensitivity of the data involved or the security threat of the ability.
 
-### App APL
+### App APLs
 
-The ability privilege level (APL) defines the priority of the app permission requested. Apps of different APLs can apply for permissions of different levels.
+The APL defines the priority of the app permission requested. Apps of different APLs can apply for permissions of different levels.
 
 The table below describes the APLs.
 
@@ -78,7 +87,7 @@ By default, apps are of the normal APL.
 
 For the app of the system_basic or system_core APL, declare the app APL level in the **apl** field in the app's profile, and use the profile signing tool to generate a certificate when developing the app installation package. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md).
 
-### Permission Levels
+### Levels of Permissions
 
 The permissions open to apps vary with the permission level. The permission levels include the following in ascending order of seniority.
 
@@ -100,33 +109,6 @@ The permissions open to apps vary with the permission level. The permission leve
     
     The permissions of this type are not open to any app currently.
 
-### ACL
-
-As described above, permission levels and app APLs are in one-to-one correspondence. In principle, **an app with a lower APL cannot apply for higher permissions by default**.
-
-The Access Control List (ACL) makes low-level apps have high-level permissions.
-
-**Example**
-
-The APL of app A is normal. App A needs to have permission B (system_basic level) and permission C (normal level).
-
-In this case, you can use the ACL to grant permission B to app A.
-
-For details, see [Using the ACL](#using-the-acl).
-For details about whether the ACL is enabled for a permission, see [Permission List](permission-list.md).
-
-### Using the ACL
-
-If the permission required by an app has higher level than the app's APL, you can use the ACL to grant the permissions required.
-
-In addition to the preceding [authorization processes](#authorization-processes), you must declare the ACL.
-
-In other words, in addition to declaring the required permissions in the **config.json** file, you must declare the high-level permissions in the app's [profile](accesstoken-guidelines.md#declaring-the-acl). The subsequent steps of authorization are the same.
-
-**NOTE**
-
-Declare the target ACL in the **acl** field of the app's profile in the app installation package, and generate a certificate using the profile signing tool. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md).
-
 ## Permission Authorization Modes
 
 Permissions can be classified into the following types based on the authorization mode:
@@ -151,15 +133,15 @@ Permissions can be classified into the following types based on the authorizatio
 
 The process for an app obtaining the required permissions varies depending on the permission authorization mode.
 
-- For a system_grant permission, you need to [declare the permission](accesstoken-guidelines.md) in the **config.json** file. The permission will be pre-granted when the app is installed.
+- For a system_grant permission, you need to [declare the permission](accesstoken-guidelines.md#declaring-permissions) in the configuration file. The permission will be pre-granted when the app is installed.
 
-- For a user_grant permission, you need to [declare the permission](accesstoken-guidelines.md) in the **config.json** file, and a dialog box needs to be displayed to request user authorization during the running of the app.
+- For a user_grant permission, you need to [declare the permission](accesstoken-guidelines.md#declaring-permissions) in the configuration file and trigger user authorization through a dialog box during the running of the app.
 
 ### Permission Authorization Process (user_grant)
 
 The procedure is as follows:
 
-1. In the **config.json** file, declare the permissions required by the app. For details, see [Access Control Development](accesstoken-guidelines.md).
+1. In the configuration file, declare the permissions required by the app. For details, see [Access Control Development](accesstoken-guidelines.md).
 
 2. Associate the object that requires the permissions in the app with the target permissions. In this way, the user knows the operations to be granted with the specified permissions.
 
@@ -170,7 +152,33 @@ The procedure is as follows:
 **Precautions**
 
 - Check the app's permission each time before the operation requiring the permission is performed.
-
 - To check whether a user has granted specific permissions to your app, use the [verifyAccessToken](../reference/apis/js-apis-abilityAccessCtrl.md) method. This method returns [PERMISSION_GRANTED](../reference/apis/js-apis-abilityAccessCtrl.md) or [PERMISSION_DENIED](../reference/apis/js-apis-abilityAccessCtrl.md). For details about the sample code, see [Access Control Development](accesstoken-guidelines.md).
 - Users must be able to understand and control the authorization of user_grant permissions. During the running process, the app requiring user authorization must proactively call the API to dynamically request the authorization. Then, the system displays a dialog box asking the user to grant the requested permission. The user will determine whether to grant the permission based on the running context of the app.
 - The permission authorized is not permanent, because the user may revoke the authorization at any time. Therefore, even if the user has granted the requested permission to the app, the app must check for the permission before calling the API controlled by this permission.
+
+## ACL
+
+As described above, permission levels and app APLs are in one-to-one correspondence. In principle, **an app with a lower APL cannot apply for higher permissions by default**.
+
+The ACL makes low-level apps have high-level permissions.
+
+**Example**
+
+The APL of app A is normal. App A needs to have permission B (system_basic level) and permission C (normal level).
+
+In this case, you can use the ACL to grant permission B to app A.
+
+For details, see [Using the ACL](#using-the-acl).
+For details about whether a permission can be enabled through the ACL, see the [Permission List](permission-list.md).
+
+### Using the ACL
+
+If the permission required by an app has higher level than the app's APL, you can use the ACL to grant the permissions required.
+
+In addition to the preceding [authorization processes](#authorization-processes), you must declare the ACL.
+
+In other words, in addition to declaring the required permissions in the **config.json** file, you must declare the high-level permissions in the app's [profile](accesstoken-guidelines.md#declaring-the-acl). The subsequent steps of authorization are the same.
+
+**NOTE**
+
+Declare the target ACL in the **acl** field of the app's profile in the app installation package, and generate a certificate using the profile signing tool. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md).
diff --git a/en/application-dev/security/figures/permission-workflow.png b/en/application-dev/security/figures/permission-workflow.png
index 03d329c575e822c92f0dc4b9d0323e1a90405073..db44f9d26d422c2eff640ca123a4d2ede0b91b72 100644
Binary files a/en/application-dev/security/figures/permission-workflow.png and b/en/application-dev/security/figures/permission-workflow.png differ
diff --git a/en/application-dev/security/permission-list.md b/en/application-dev/security/permission-list.md
index 0d9fc7021fe8972192d01483183e8237f0174b35..9578c8d43b2a216171ec36c2f5056600d4e3ab9f 100644
--- a/en/application-dev/security/permission-list.md
+++ b/en/application-dev/security/permission-list.md
@@ -1,14 +1,8 @@
 # Permission List
 
-On the basis of the [principles for app permission management](accesstoken-overview.md#basic-principles), apply for permissions for an app by following the procedure illustrated in the figure below.
+Before applying for required permissions, read and understand the [permission workflow](accesstoken-overview.md#permission-workflow). Then, determine whether the app can apply for the target permissions based on the table below.
 
-![](figures/permission-application-process.png)
-
-1. For details about the mapping between the app's ability privilege level (APL) and permission level, see [Permission Levels](accesstoken-overview.md#permission-levels).
-2. Permissions can be authorized by the user (user_grant) or the system (system_grant). For details, see [Permission Authorization Modes](accesstoken-overview.md#permission-authorization-modes).
-3. In principle, an app with a lower APL cannot apply for higher permissions by default. The Access Control List (ACL) makes low-level apps have high-level permissions. For details, see [ACL](accesstoken-overview.md#acl).
-
-The following lists the permissions defined by the system. For details about permission usage examples, see [Access Control Development](accesstoken-guidelines.md).
+For details about permission usage examples, see [Access Control Development](accesstoken-guidelines.md).
 
 | Permission                                                  | APL    | Authorization Mode    | Enable ACL| Description                                                    |
 | -------------------------------------------------------- | ------------ | ------------ | ------- | ------------------------------------------------------------ |
@@ -26,10 +20,7 @@ The following lists the permissions defined by the system. For details about per
 | ohos.permission.REMOVE_CACHE_FILES                       | system_basic | system_grant | TRUE    | Allows the cache of the specified app to be cleared.                                    |
 | ohos.permission.REBOOT                                   | system_basic | system_grant | TRUE    | Allows an app to restart the device.                                          |
 | ohos.permission.RUNNING_LOCK                             | normal       | system_grant | TRUE    | Allows an app to obtain a running lock.              |
-| ohos.permission.ENROLL_BIOMETRIC                         | system_core  | system_grant | FALSE   | Allows an app to add or remove biometric data.                            |
 | ohos.permission.ACCESS_BIOMETRIC                         | normal       | system_grant | FALSE   | Allows an app to use biometric recognition for identity authentication.                  |
-| ohos.permission.ACCESS_BIOMETRIC_INTERNAL                | system_core  | system_grant | FALSE   | Allows an app to apply for or release biometric recognition resources.                      |
-| ohos.permission.RESET_BIOMETRIC_LOCKOUT                  | system_core  | system_grant | FALSE   | Allows an app to reset the maximum number of failures allowed before biometric authentication is locked.                    |
 | ohos.permission.SET_TIME                                 | system_basic | system_grant | TRUE    | Allows an app to set the system time.                                      |
 | ohos.permission.SET_TIME_ZONE                            | system_basic | system_grant | TRUE    | Allows an app to set the system time zone.                                      |
 | ohos.permission.DOWNLOAD_SESSION_MANAGER                 | system_core  | system_grant | TRUE    | Allows an app to manage the download sessions.                                  |
@@ -106,7 +97,7 @@ The following lists the permissions defined by the system. For details about per
 | ohos.permission.EDM_MANAGE_DATETIME                      | normal       | system_grant | FALSE   | Allows the device administrator app to set the system time.                            |
 | ohos.permission.NFC_TAG                                  | normal       | system_grant | FALSE   | Allows an app to read NFC tag information.                                       |
 | ohos.permission.NFC_CARD_EMULATION                       | normal       | system_grant | FALSE   | Allows an app to implement card emulation.                                    |
-| ohos.permission.PERMISSION_USED_STATS                    | system_core  | system_grant | TRUE    | Allows a system application to access the permission usage records.                              |
+| ohos.permission.PERMISSION_USED_STATS                    | system_basic | system_grant | TRUE    | Allows a system application to access the permission usage records.                              |
 | ohos.permission.NOTIFICATION_AGENT_CONTROLLER            | system_core  | system_grant | TRUE    | Allows an app to send agent-powered notifications.                                      |
 | ohos.permission.ANSWER_CALL                              | system_basic | user_grant   | TRUE    | Allows an app to answer incoming calls.                                          |
 | ohos.permission.READ_CALENDAR                            | normal       | user_grant   | TRUE    | Allows an app to read calendar data.                                      |
@@ -136,3 +127,7 @@ The following lists the permissions defined by the system. For details about per
 | ohos.permission.SET_DEFAULT_APPLICATION                  | system_core  | system_grant | TRUE    | Allows an app to set and reset default apps.                                |
 | ohos.permission.MANAGE_DISPOSED_APP_STATUS               | system_core  | system_grant | TRUE    | Allows an app to set and query the app handling state.                              |
 | ohos.permission.ACCESS_IDS                               | system_core  | system_grant | TRUE    | Allows an app to query the unique identifier of a device.                              |
+| ohos.permission.DUMP                                     | system_core  | system_grant | TRUE    | Allows the basic system information and SA service information to be exported.                              |
+| ohos.permission.DISTRIBUTED_SOFTBUS_CENTER               | system_basic | system_grant | FALSE   | Allows networking between different devices.                                  |
+| ohos.permission.ACCESS_DLP_FILE                          | system_core  | system_grant | TRUE    | Allows configuration and management of the permissions on .dlp files.                               |
+| ohos.permission.PROVISIONING_MESSAGE                     | system_core  | system_grant | TRUE    | Allows activiation of the Super Device Manager application.                                    |
diff --git a/en/application-dev/ui/Readme-EN.md b/en/application-dev/ui/Readme-EN.md
index acc4bd0613c1741db03277fffecce33195c592df..ffe375386fc9f02537b5d522ecb4df6dade55f5e 100644
--- a/en/application-dev/ui/Readme-EN.md
+++ b/en/application-dev/ui/Readme-EN.md
@@ -1,6 +1,79 @@
 # UI Development
 
 - [ArkUI Overview](arkui-overview.md)
+- TypeScript-based Declarative Development Paradigm
+    - [Overview](ui-ts-overview.md)
+    - Framework Overview
+        - File Organization
+            - [Directory Structure](ts-framework-directory.md)
+            - [Rules for Accessing Application Code Files](ts-framework-file-access-rules.md)
+        - ["js" Tag](ts-framework-js-tag.md)
+        - Resource Management
+            - [Resource File Categories](ui-ts-basic-resource-file-categories.md)
+            - [Accessing Resources](ts-resource-access.md)
+        - [Pixel Units](ts-pixel-units.md)
+        - [Types](ts-types.md)
+    - Declarative Syntax
+        - [Overview](ts-syntax-intro.md)
+        - General UI Description Specifications
+            - [Basic Concepts](ts-general-ui-concepts.md)
+            - Declarative UI Description Specifications
+                - [Configuration Without Parameters](ts-parameterless-configuration.md)
+                - [Configuration with Mandatory Parameters](ts-configuration-with-mandatory-parameters.md)
+
+                - [Attribute Configuration](ts-attribution-configuration.md)
+                - [Event Configuration](ts-event-configuration.md)
+                - [Child Component Configuration](ts-child-component-configuration.md)
+            - Componentization
+                - [@Component](ts-component-based-component.md)
+                - [@Entry](ts-component-based-entry.md)
+                - [@Preview](ts-component-based-preview.md)
+                - [@Builder](ts-component-based-builder.md)
+                - [@Extend](ts-component-based-extend.md)
+                - [@CustomDialog](ts-component-based-customdialog.md)
+                - [@Styles](ts-component-based-styles.md)
+        - About UI State Management
+            - [Basic Concepts](ts-ui-state-mgmt-concepts.md)
+            - Managing Component States
+                - [@State](ts-component-states-state.md)
+                - [@Prop](ts-component-states-prop.md)
+                - [@Link](ts-component-states-link.md)
+            - Managing Application States
+                - [AppStorage](ts-application-states-appstorage.md)
+                - [LocalStorage](ui-ts-local-storage.md)
+                - [PersistentStorage](ts-application-states-apis-persistentstorage.md)
+                - [Environment](ts-application-states-apis-environment.md)
+            - Managing Other States
+                - [@Observed and @ObjectLink](ts-other-states-observed-objectlink.md)
+                - [@Consume and @Provide](ts-other-states-consume-provide.md)
+                - [@Watch](ts-other-states-watch.md)
+            - About Rendering Control Syntax
+                - [if/else](ts-rending-control-syntax-if-else.md)
+                - [ForEach](ts-rending-control-syntax-foreach.md)
+                - [LazyForEach](ts-rending-control-syntax-lazyforeach.md)
+        - About @Component
+            - [build Function](ts-function-build.md)
+            - [Initialization of Custom Components' Member Variables](ts-custom-component-initialization.md)
+            - [Custom Component Lifecycle Callbacks](ts-custom-component-lifecycle-callbacks.md)
+            - [Component Creation and Re-initialization](ts-component-creation-re-initialization.md)
+        - [About Syntactic Sugar](ts-syntactic-sugar.md)
+    - Common Component Development Guidelines
+        - [Button](ui-ts-basic-components-button.md)
+        - [Web](ui-ts-components-web.md)
+    - Common Layout Development Guidelines
+        - [Flex Layout](ui-ts-layout-flex.md)
+        - [Grid Layout](ui-ts-layout-grid-container.md)
+        - [Media Query](ui-ts-layout-mediaquery.md)
+    - Experiencing the Declarative UI
+        - [Creating a Declarative UI Project](ui-ts-creating-project.md)
+        - [Getting to Know Components](ui-ts-components.md)
+        - [Creating a Simple Page](ui-ts-creating-simple-page.md)
+    - Defining Page Layout and Connection
+        - [Building a Food Data Model](ui-ts-building-data-model.md)
+        - [Building a Food Category List Layout](ui-ts-building-category-list-layout.md)
+        - [Building a Food Category Grid Layout](ui-ts-building-category-grid-layout.md)
+        - [Implementing Page Redirection and Data Transmission](ui-ts-page-redirection-data-transmission.md)
+
 - JavaScript-based Web-like Development Paradigm
     - [Overview](ui-js-overview.md)
     - Framework
@@ -73,74 +146,3 @@
                 - [Animation Effect](ui-js-animate-dynamic-effects.md)
                 - [Animation Frame](ui-js-animate-frame.md)
     - [Custom Components](ui-js-custom-components.md)
-- TypeScript-based Declarative Development Paradigm
-    - [Overview](ui-ts-overview.md)
-    - Framework Overview
-        - File Organization
-            - [Directory Structure](ts-framework-directory.md)
-            - [Rules for Accessing Application Code Files](ts-framework-file-access-rules.md)
-        - ["js" Tag](ts-framework-js-tag.md)
-        - Resource Access
-            - [Accessing Application Resources](ts-application-resource-access.md)
-            - [Accessing System Resources](ts-system-resource-access.md)
-            - [Media Resource Types](ts-media-resource-type.md)
-        - [Pixel Units](ts-pixel-units.md)
-        - [Types](ts-types.md)
-    - Declarative Syntax
-        - [Overview](ts-syntax-intro.md)
-        - General UI Description Specifications
-            - [Basic Concepts](ts-general-ui-concepts.md)
-            - Declarative UI Description Specifications
-                - [Configuration Without Parameters](ts-parameterless-configuration.md)
-                - [Configuration with Mandatory Parameters](ts-configuration-with-mandatory-parameters.md)
-                - [Attribute Configuration](ts-attribution-configuration.md)
-                - [Event Configuration](ts-event-configuration.md)
-                - [Child Component Configuration](ts-child-component-configuration.md)
-            - Componentization
-                - [@Component](ts-component-based-component.md)
-                - [@Entry](ts-component-based-entry.md)
-                - [@Preview](ts-component-based-preview.md)
-                - [@Builder](ts-component-based-builder.md)
-                - [@Extend](ts-component-based-extend.md)
-                - [@CustomDialog](ts-component-based-customdialog.md)
-                - [@Styles](ts-component-based-styles.md)
-        - About UI State Management
-            - [Basic Concepts](ts-ui-state-mgmt-concepts.md)
-            - Managing Component States
-                - [@State](ts-component-states-state.md)
-                - [@Prop](ts-component-states-prop.md)
-                - [@Link](ts-component-states-link.md)
-            - Managing Application States
-                - [AppStorage](ts-application-states-appstorage.md)
-                - [PersistentStorage](ts-application-states-apis-persistentstorage.md)
-                - [Environment](ts-application-states-apis-environment.md)
-            - Managing Other States
-                - [@Observed and @ObjectLink](ts-other-states-observed-objectlink.md)
-                - [@Consume and @Provide](ts-other-states-consume-provide.md)
-                - [@Watch](ts-other-states-watch.md)
-            - About Rendering Control Syntax
-                - [if/else](ts-rending-control-syntax-if-else.md)
-                - [ForEach](ts-rending-control-syntax-foreach.md)
-                - [LazyForEach](ts-rending-control-syntax-lazyforeach.md)
-        - About @Component
-            - [build Function](ts-function-build.md)
-            - [Initialization of Custom Components' Member Variables](ts-custom-component-initialization.md)
-            - [Custom Component Lifecycle Callbacks](ts-custom-component-lifecycle-callbacks.md)
-            - [Component Creation and Re-initialization](ts-component-creation-re-initialization.md)
-        - [About Syntactic Sugar](ts-syntactic-sugar.md)
-    - Common Component Development Guidelines
-        - [Button](ui-ts-basic-components-button.md)
-        - [Web](ui-ts-components-web.md)
-    - Common Layout Development Guidelines
-        - [Flex Layout](ui-ts-layout-flex.md)
-        - [Grid Layout](ui-ts-layout-grid-container.md)
-        - [Media Query](ui-ts-layout-mediaquery.md)
-    - Experiencing the Declarative UI
-        - [Creating a Declarative UI Project](ui-ts-creating-project.md)
-        - [Getting to Know Components](ui-ts-components.md)
-        - [Creating a Simple Page](ui-ts-creating-simple-page.md)
-    - Defining Page Layout and Connection
-        - [Building a Food Data Model](ui-ts-building-data-model.md)
-        - [Building a Food Category List Layout](ui-ts-building-category-list-layout.md)
-        - [Building a Food Category Grid Layout](ui-ts-building-category-grid-layout.md)
-        - [Implementing Page Redirection and Data Transmission](ui-ts-page-redirection-data-transmission.md)
diff --git a/en/application-dev/ui/figures/create-resource-file-1.png b/en/application-dev/ui/figures/create-resource-file-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d82caac558cd58b78aba3014b6ac60148f6bc8
Binary files /dev/null and b/en/application-dev/ui/figures/create-resource-file-1.png differ
diff --git a/en/application-dev/ui/figures/create-resource-file-2.png b/en/application-dev/ui/figures/create-resource-file-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4d23e8dc15bafbb08ca691575ce2ea9fe989e91
Binary files /dev/null and b/en/application-dev/ui/figures/create-resource-file-2.png differ
diff --git a/en/application-dev/ui/figures/create-resource-file-3.png b/en/application-dev/ui/figures/create-resource-file-3.png
new file mode 100644
index 0000000000000000000000000000000000000000..566653c5e49753e1f04d0d6b5b5c3e931f4354b5
Binary files /dev/null and b/en/application-dev/ui/figures/create-resource-file-3.png differ
diff --git a/en/application-dev/ui/figures/en-us_image_tab.gif b/en/application-dev/ui/figures/en-us_image_tab.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fde104516f23c4dcc56b3c9f54334d7ee40925a6
Binary files /dev/null and b/en/application-dev/ui/figures/en-us_image_tab.gif differ
diff --git a/en/application-dev/ui/ts-application-states-appstorage.md b/en/application-dev/ui/ts-application-states-appstorage.md
index 66f9e82115b072ad38370fce857bf3009ed81146..ac77b40dd5c85a7494e094b8dc698715786413f8 100644
--- a/en/application-dev/ui/ts-application-states-appstorage.md
+++ b/en/application-dev/ui/ts-application-states-appstorage.md
@@ -62,7 +62,7 @@ struct ComponentA {
   @StorageProp('languageCode') lang: string = 'en'
   private label: string = 'count'
 
-  private aboutToAppear() {
+  aboutToAppear() {
     this.label = (this.lang === 'en') ? 'Number' : 'Count'
   }
 
diff --git a/en/application-dev/ui/ts-component-based-builder.md b/en/application-dev/ui/ts-component-based-builder.md
index a07b244ffdc2bd9105102058e6881b14289fdf34..d626bde6074c5e3db373a00f3a78bf6e554cf46f 100644
--- a/en/application-dev/ui/ts-component-based-builder.md
+++ b/en/application-dev/ui/ts-component-based-builder.md
@@ -4,16 +4,17 @@
 The **@Builder** decorated method is used to define the declarative UI description of a component and quickly generate multiple layouts in a custom component. The functionality and syntax of the **@Builder** decorator are the same as those of the [build Function](ts-function-build.md).
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct CompA {
-  size : number = 100;
+  size1 : number = 100;
 
   @Builder SquareText(label: string) {
     Text(label)
-      .width(1 * this.size)
-      .height(1 * this.size)
+      .width(1 * this.size1)
+      .height(1 * this.size1)
   }
 
   @Builder RowOfSquareTexts(label1: string, label2: string) {
@@ -21,8 +22,8 @@ struct CompA {
       this.SquareText(label1)
       this.SquareText(label2)
     }
-    .width(2 * this.size)
-    .height(1 * this.size)
+    .width(2 * this.size1)
+    .height(1 * this.size1)
   }
 
   build() {
@@ -32,12 +33,12 @@ struct CompA {
         this.SquareText("B")
         // or as long as tsc is used
       }
-      .width(2 * this.size)
-      .height(1 * this.size)
+      .width(2 * this.size1)
+      .height(1 * this.size1)
       this.RowOfSquareTexts("C", "D")
     }
-    .width(2 * this.size)
-    .height(2 * this.size)
+    .width(2 * this.size1)
+    .height(2 * this.size1)
   }
 }
 ```
@@ -51,7 +52,8 @@ In certain circumstances, you may need to add a specific function, such as a cli
 ### Component Initialization Through Parameters
 When initializing a custom component through parameters, assign a **@Builder** decorated method to the **@BuilderParam** decorated attribute — **content**, and call the value of **content** in the custom component. If no parameter is passed when assigning a value to the **@BuilderParam** decorated attribute (for example, `content: this.specificParam`), define the type of the attribute as a function without a return value (for example, `@BuilderParam content: () => void`). If any parameter is passed when assigning a value to the **@BuilderParam** decorated attribute (for example, `callContent: this.specificParam1("111")`), define the type of the attribute as `any` (for example,`@BuilderParam callContent: any;`).
 
-```
+```ts
+// xxx.ets
 @Component
 struct CustomContainer {
   header: string = "";
@@ -100,7 +102,8 @@ struct CustomContainerUser {
 In a custom component, use the **@BuilderParam** decorated attribute to receive a trailing closure. When the custom component is initialized, the component name is followed by a pair of braces ({}) to form a trailing closure (`CustomComponent(){}`). You can consider a trailing closure as a container and add content to it. For example, you can add a component (`{Column(){Text("content")}`) to a trailing closure. The syntax of the closure is the same as that of [build](../ui/ts-function-build.md). In this scenario, the custom component has one and only one **@BuilderParam** decorated attribute.
 
 Example: Add a **\<Column>** component and a click event to the closure, and call the **specificParam** method decorated by **@Builder** in the new **\<Column>** component. After the **\<Column>** component is clicked, the value of the component's `header` attribute will change to `changeHeader`. In addition, when the component is initialized, the content of the trailing closure will be assigned to the `closer` attribute decorated by **@BuilderParam**.
-```
+```ts
+// xxx.ets
 @Component
 struct CustomContainer {
   header: string = "";
diff --git a/en/application-dev/ui/ts-component-based-component.md b/en/application-dev/ui/ts-component-based-component.md
index f247caa2887a59cdbb96e33ba23f22f7ed3137de..ad484fb9561da9cee1b4a57825c1228a8ee2c092 100644
--- a/en/application-dev/ui/ts-component-based-component.md
+++ b/en/application-dev/ui/ts-component-based-component.md
@@ -13,16 +13,17 @@ A struct decorated by @Component has the componentization capability and can ser
 - Data-driven update: The UI of custom components can be automatically updated based on the data of state variables.
 
 
-For details about componentization, see [About @Component](ts-function-build.md).
+For details about componentization, see [About @Component](ts-custom-component-initialization.md).
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**:
-> - The build method must be defined for a custom component.
-> 
+> **NOTE**
+>
+> - The **build** method must be defined for a custom component.
+>
 > - Custom constructors are prohibited for custom components.
 
 
-The following code illustrates how to create a custom component named MyComponent:
+The following code illustrates how to create a custom component named **MyComponent**:
 
 ```
 @Component
@@ -37,10 +38,10 @@ struct MyComponent {
 ```
 
 
-The build method of MyComponent is executed during initial rendering. When the component status changes, the build method will be executed again.
+The **build** method of **MyComponent** is executed during initial rendering. When the component status changes, the build method will be executed again.
 
 
-The following code illustrates how to use MyComponent:
+The following code illustrates how to use **MyComponent**:
 
 ```
 @Component
@@ -55,8 +56,7 @@ struct ParentComponent {
 }
 ```
 
-
-MyComponent can be applied multiple times and reused in different components, as shown in the code below:
+**MyComponent** can be applied multiple times and reused in different components, as shown in the code below:
 
 ```
 @Component
@@ -76,11 +76,11 @@ struct ParentComponent {
         }
     }
 
-    private aboutToAppear() {
+    aboutToAppear() {
         console.log('ParentComponent: Just created, about to become rendered first time.')
     }
 
-    private aboutToDisappear() {
+    aboutToDisappear() {
         console.log('ParentComponent: About to be removed from the UI.')
     }
 }
diff --git a/en/application-dev/ui/ts-custom-component-initialization.md b/en/application-dev/ui/ts-custom-component-initialization.md
index 2dcb83e536762e8ca424a346c1132bcc2380fefd..9c68e81b41aeac32ff00f545a70df3f69c64fcd4 100644
--- a/en/application-dev/ui/ts-custom-component-initialization.md
+++ b/en/application-dev/ui/ts-custom-component-initialization.md
@@ -6,14 +6,14 @@ The member variables of a component can be initialized in either of the followin
 
 - Local initialization. For example:
     
-  ```
+  ```ts
   @State counter: Counter = new Counter()
   ```
 
 - Initialization using constructor parameters. For example:
     
-  ```
-  MyComponent(counter: $myCounter)
+  ```ts
+  MyComponent({counter: $myCounter})
   ```
 
 
@@ -73,43 +73,57 @@ As indicated by the preceding table:
 ## Example
 
   
-```
+```ts
+// xxx.ets
+class ClassA {
+  public a:number
+  constructor(a: number) {
+    this.a = a
+  }
+}
 @Entry
 @Component
 struct Parent {
-    @State parentState: ClassA = new ClassA()
-    build() {
-        Row() {
-            CompA({aState: new ClassA, aLink: $parentState}) // valid
-            CompA({aLink: $parentState})   // valid
-            CompA()                 // invalid, @Link aLink remains uninitialized
-            CompA({aLink: new ClassA}) // invalid, @Link aLink must be a reference ($) to either @State or @Link variable
-        }
+  @State parentState: ClassA = new ClassA(1)
+  
+  build() {
+    Column() {
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aState: new ClassA(2), aLink: $parentState })
+      }
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aLink: $parentState })
+      }
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aState: new ClassA(3), aLink: $parentState })
+      }
     }
+  }
 }
 
 @Component
 struct CompA {
-    @State aState: boolean = false   // must initialize locally
-    @Link aLink: ClassA              // must not initialize locally
-
-    build() {
-        Row() {
-            CompB({bLink: $aLink,         // valid init a @Link with reference of another @Link,
-                bProp: this.aState})    // valid init a @Prop with value of a @State
-            CompB({aLink: $aState,  // invalid: type mismatch expected ref to ClassA, provided reference to boolean
-                bProp: false})           // valid init a @Prop by constants value
-        }
+  @State aState: any = false
+  @Link aLink: ClassA
+  
+  build() {
+    Column() {
+      CompB({ bLink: $aLink, bProp: this.aState })
+      CompB({ bLink: $aState, bProp: false })
     }
+  }
 }
 
 @Component
 struct CompB {
-    @Link bLink: ClassA = new ClassA()       // invalid, must not initialize locally
-    @Prop bProp: boolean = false      // invalid must not initialize locally
-
-    build() {
-        ...
-    }
+  @Link bLink: ClassA
+  @Prop bProp: boolean
+  
+  build() {
+    Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+      Text(JSON.stringify(this.bLink.a)).fontSize(30)
+      Text(JSON.stringify(this.bProp)).fontSize(30).fontColor(Color.Red)
+     }.margin(10)
+  }
 }
 ```
diff --git a/en/application-dev/ui/ts-media-resource-type.md b/en/application-dev/ui/ts-media-resource-type.md
deleted file mode 100644
index cd64dcc25e64e0d1b4923be2c0bd3c23ccfcad4b..0000000000000000000000000000000000000000
--- a/en/application-dev/ui/ts-media-resource-type.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Media Resource Types
-
-
-
-- Image resource types
-  | Format| File Name Extension| 
-  | -------- | -------- |
-  | JPEG | .jpg | 
-  | PNG | .png | 
-  | GIF | .gif | 
-  | SVG | .svg | 
-  | WEBP | .webp | 
-  | BMP | .bmp |
-
-- Audio and video resource types
-  | Format| File Name Extension| 
-  | -------- | -------- |
-  | H.263 | .3gp <br>.mp4 | 
-  | H.264 AVC <br> Baseline Profile (BP) | .3gp <br>.mp4 | 
-  | MPEG-4 SP | .3gp | 
-  | VP8 | .webm <br> .mkv | 
diff --git a/en/application-dev/ui/ts-application-resource-access.md b/en/application-dev/ui/ts-resource-access.md
similarity index 57%
rename from en/application-dev/ui/ts-application-resource-access.md
rename to en/application-dev/ui/ts-resource-access.md
index 037607029e6b842b1f4c32bf2ed2657f1dd64a94..82d53954d3fc86878a48222e449428faf1a341d1 100644
--- a/en/application-dev/ui/ts-application-resource-access.md
+++ b/en/application-dev/ui/ts-resource-access.md
@@ -1,61 +1,72 @@
 # Accessing Application Resources
 
 
-## Resource Definition
+## Accessing Application Resources
 
-Application resources are defined in the project's **resources** directory, which is organized as follows:
+To reference an application resource in a project, use the `"$r('app.type.name')"` format. **app** indicates the resource defined in the **resources** directory of the application. **type** indicates the resource type (or the location where the resource is stored). The value can be **color**, **float**, **string**, **plural**, or **media**. **name** indicates the resource name, which you set when defining the resource.
 
-- Level-1: **base** sub-directory, qualifiers sub-directories, and **rawfile** sub-directory
-  - The **base** sub-directory is a default directory. If no qualifiers sub-directories in the **resources** directory of the application match the device status, the resource file in the **base** sub-directory will be automatically referenced.
-  - You need to create qualifiers sub-directories on your own. The name of a qualifiers sub-directory consists of one or more qualifiers that represent the application scenarios or device characteristics, covering the mobile country code (MCC), mobile network code (MNC), language, script, country or region, screen orientation, device type, color mode, and screen density. The qualifiers are separated using underscores (_) or hyphens (-).
-  - When the resources in the **rawfile** sub-directory are referenced, resource files will not be matched based on the device status. You can directly store resource files in the **rawfile** sub-directory.
+When referencing resources in the **rawfile** sub-directory, use the `"$rawfile('filename')"` format. Currently, **$rawfile** allows only the **\<Image>** component to reference image resources. **filename** indicates the relative path of a file in the **rawfile** directory, and the file name must contain the file name extension. Note that the relative path cannot start with a slash (/).
 
-- Level-2: resource sub-directories
-  - Resource sub-directories store basic elements such as character strings, colors, and floating point numbers, and resource files such as media files.
-  - Supported files and resource types are listed in the table below.
-       | File Name| Resource Type|
-     | -------- | -------- |
-     | color.json | Color resource.|
-     | float.json | Resources such as spacing, rounded corners, and fonts.|
-     | string.json | String resource.|
-     | plural.json | String resource.|
-     | media directory| Image resource.|
+> **NOTE**
+> Resource descriptors accept only strings, such as `'app.type.name'`, and cannot be combined.
 
+  In the **.ets** file, you can use the resources defined in the **resources** directory.
 
-## Referencing Resources
+```ts
+Text($r('app.string.string_hello'))
+    .fontColor($r('app.color.color_hello'))
+    .fontSize($r('app.float.font_hello'))
+}
 
-To reference an application resource in a project, use the `"$r('app.type.name')"` format. **app** indicates the resource defined in the **resources** directory of the application. **type** indicates the resource type (or the location where the resource is stored). The value can be **color**, **float**, **string**, **plural**, or **media**. **name** indicates the resource name, which you set when defining the resource.
+Text($r('app.string.string_world'))
+    .fontColor($r('app.color.color_world'))
+    .fontSize($r('app.float.font_world'))
+}
 
-When referencing resources in the **rawfile** sub-directory, use the `"$rawfile('filename')"` format. Currently, **$rawfile** allows only the **\<Image>** component to reference image resources. **filename** indicates the relative path of a file in the **rawfile** directory, and the file name must contain the file name extension. Note that the relative path cannot start with a slash (/).
+Text($r('app.string.message_arrive', "five of the clock")) // Reference string resources. The second parameter of $r is used to replace %s.
+    .fontColor($r('app.color.color_hello'))
+    .fontSize($r('app.float.font_hello'))
+}
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> Resource descriptors accept only strings, such as `'app.type.name'`, and cannot be combined.
+Text($r('app.plural.eat_apple', 5, 5)) // Reference plural resources. The first parameter indicates the plural resource, and the second parameter indicates the number of plural resources. The third parameter indicates the substitute of %d.
+    .fontColor($r('app.color.color_world'))
+    .fontSize($r('app.float.font_world'))
+}
+
+Image($r('app.media.my_background_image')) // Reference media resources.
+
+Image($rawfile('test.png')) // Reference an image in the rawfile directory.
 
+Image($rawfile('newDir/newTest.png')) // Reference an image in the rawfile directory.
+```
 
-## Example
 
-Some custom resources in the **base** sub-directory are as follows:
+## Accessing System Resources
 
 
+System resources include colors, rounded corners, fonts, spacing, character strings, and images. By using system resources, you can develop different applications with the same visual style.
+
+
+To reference a system resource, use the "$r('sys.type.resource_id')" format. Wherein: sys indicates a system resource; type indicates the resource type, which can be color, float, string, or media; resource_id indicates the resource ID, which is determined when the system resource is provided. For details about available system resource IDs.
+
+```ts
+Text('Hello')
+    .fontColor($r('sys.color.ohos_id_color_emphasize'))
+    .fontSize($r('sys.float.ohos_id_text_size_headline1'))
+    .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
+    .backgroundColor($r('sys.color.ohos_id_color_palette_aux1'))
+Image($r('sys.media.ohos_app_icon'))
+    .border({color: $r('sys.color.ohos_id_color_palette_aux1'), radius: $r('sys.float.ohos_id_corner_radius_button'), width: 2})
+    .margin({top: $r('sys.float.ohos_id_elements_margin_horizontal_m'), bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')})
+    .height(200)
+    .width(300)
 ```
-    resources
-      ├─ base 
-      │    ├─ element 
-      │    │   ├─ color.json
-      │    │   ├─ string.json
-      │    │   └─ float.json
-      │    └─ media
-      │       └─ my_background_image.png
-      └─ rawfile
-           ├─ test.png
-           └─ newDir
-               └─ newTest.png  
-```
+## Resource File Examples
 
 The content of the **color.json** file is as follows:
 
 
-```
+```json
 {
     "color": [
         {
@@ -73,7 +84,7 @@ The content of the **color.json** file is as follows:
 The content of the **float.json** file is as follows:
 
 
-```
+```json
 {
     "float":[
         {
@@ -91,7 +102,7 @@ The content of the **float.json** file is as follows:
 The content of the **string.json** file is as follows:
 
 
-```
+```json
 {
     "string":[
         {
@@ -113,7 +124,7 @@ The content of the **string.json** file is as follows:
 The content of the **plural.json** file is as follows:
 
 
-```
+```json
 {
     "plural":[
         {
@@ -132,40 +143,3 @@ The content of the **plural.json** file is as follows:
     ]
 }
 ```
-
-  In the **.ets** file, you can use the resources defined in the **resources** directory.
-
-```
-Text($r('app.string.string_hello'))
-    .fontColor($r('app.color.color_hello'))
-    .fontSize($r('app.float.font_hello'))
-}
-
-Text($r('app.string.string_world'))
-    .fontColor($r('app.color.color_world'))
-    .fontSize($r('app.float.font_world'))
-}
-
-Text($r('app.string.message_arrive', "five of the clock")) // Reference string resources. The second parameter of $r is used to replace %s.
-    .fontColor($r('app.color.color_hello'))
-    .fontSize($r('app.float.font_hello'))
-}
-
-Text($r('app.plural.eat_apple', 5, 5)) // Reference plural resources. The first parameter indicates the plural resource, and the second parameter indicates the number of plural resources. The third parameter indicates the substitute of %d.
-    .fontColor($r('app.color.color_world'))
-    .fontSize($r('app.float.font_world'))
-}
-
-Image($r('app.media.my_background_image')) // Reference media resources.
-
-Image($rawfile('test.png')) // Reference an image in the rawfile directory.
-
-Image($rawfile('newDir/newTest.png')) // Reference an image in the rawfile directory.
-```
-
-
-## Samples
-
-The following sample is provided to help you better understand how to access application resources:
-
-- [`ResourceManager`: eTS Resource Management (API 7)](https://gitee.com/openharmony/app_samples/tree/master/common/ResourceManager)
diff --git a/en/application-dev/ui/ts-system-resource-access.md b/en/application-dev/ui/ts-system-resource-access.md
deleted file mode 100644
index 185817fe20bb30af764179facf9cc43fa740d0a4..0000000000000000000000000000000000000000
--- a/en/application-dev/ui/ts-system-resource-access.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Accessing System Resources
-
-
-System resources include colors, rounded corners, fonts, spacing, character strings, and images. By using system resources, you can develop different applications with the same visual style.
-
-
-To reference a system resource, use the "$r('sys.type.resource_id')" format. Wherein: sys indicates a system resource; type indicates the resource type, which can be color, float, string, or media; resource_id indicates the resource ID, which is determined when the system resource is provided. For details about available system resource IDs.
-
-```
-Text('Hello')
-    .fontColor($r('sys.color.ohos_id_color_emphasize'))
-    .fontSize($r('sys.float.ohos_id_text_size_headline1'))
-    .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
-    .backgroundColor($r('sys.color.ohos_id_color_palette_aux1'))
-Image($r('sys.media.ohos_app_icon'))
-    .border({color: $r('sys.color.ohos_id_color_palette_aux1'), radius: $r('sys.float.ohos_id_corner_radius_button'), width: 2})
-    .margin({top: $r('sys.float.ohos_id_elements_margin_horizontal_m'), bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')})
-    .height(200)
-    .width(300)
-```
diff --git a/en/application-dev/ui/ui-js-animate-transform.md b/en/application-dev/ui/ui-js-animate-transform.md
index 3b6fe35a82a50468f5321d3d97eb98a55a3c87ff..a9b74278cc196e9150bdcd6d15983efe5bbcac12 100644
--- a/en/application-dev/ui/ui-js-animate-transform.md
+++ b/en/application-dev/ui/ui-js-animate-transform.md
@@ -586,16 +586,4 @@ You can set multiple transform attributes at the same time to apply different tr
 > 
 > - When using the shorthand notion, note that the animation effect varies according to the sequence of the style values.
 > 
-> - The style values in the transform attribute used when the animation starts and ends must be in one-to-one mapping. Only the styles that have value mappings are played.
-## Samples
-
-The following samples are provided to help you better understand how to develop animations with the **transform** attribute: 
-
-- [`JsAnimation`: Animation App (JavaScript, API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsAnimation)
-- [`JsAnimationStyle`: JS Animation and Custom Font Styles (API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsAnimationStyle)
-
-- [`Clock`: Clock (JavaScript, API 8)](https://gitee.com/openharmony/app_samples/tree/master/common/Clock)
-
-- [Animation Styles (JavaScaript)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/AnimationDemo)
-
-- [Common Image Operations](https://gitee.com/openharmony/codelabs/tree/master/Media/ImageJsDemo)
\ No newline at end of file
+> - The style values in the transform attribute used when the animation starts and ends must be in one-to-one mapping. Only the styles that have value mappings are played.
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-component-tabs.md b/en/application-dev/ui/ui-js-component-tabs.md
index 9583e28c33e486ed92bef6289ed7c43ccad364d1..fe3f9f0cf1463d5b42a7e0840c6112c957d2b53b 100644
--- a/en/application-dev/ui/ui-js-component-tabs.md
+++ b/en/application-dev/ui/ui-js-component-tabs.md
@@ -319,11 +319,4 @@ export default {
 }
 ```
 
-![en-us_image_tab.gif](figures/en-us_image_tab.gif)
-
-
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;tabs&gt;** component:
-
-[`Tabs`: Tabs (JavaScript, API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Tabs)
\ No newline at end of file
+![en-us_image_tab.gif](figures/en-us_image_tab.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-canvas.md b/en/application-dev/ui/ui-js-components-canvas.md
index f1d935f866c29f06ee98109bbea1adf659003995..3c6f3c174c10ac4596cd86e9fe9045991922b34a 100644
--- a/en/application-dev/ui/ui-js-components-canvas.md
+++ b/en/application-dev/ui/ui-js-components-canvas.md
@@ -139,10 +139,3 @@ export default {
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br/>
 > The **&lt;canvas&gt;** component cannot be created in **onInit** or **onReady**.
-
-## Samples
-
-The following sample is provided to help you better understand how to develop the **\<canvas>** component:
-
-[`JsCanvas`: \<canvas> (JavaScript, API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsCanvas)
-
diff --git a/en/application-dev/ui/ui-js-components-chart.md b/en/application-dev/ui/ui-js-components-chart.md
index 9db89430bdc5ce1f214a38aaef75a058b193adcf..3d23a4f275d8701bcd398094ff2cd191526aa47f 100644
--- a/en/application-dev/ui/ui-js-components-chart.md
+++ b/en/application-dev/ui/ui-js-components-chart.md
@@ -615,9 +615,4 @@ export default {
 
 ```
 
-![en-us_image_0000001232162328](figures/en-us_image_0000001232162328.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;chart&gt;** component:
-
-[`Chart`: chart (JavaScript, API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/chart)
\ No newline at end of file
+![en-us_image_0000001232162328](figures/en-us_image_0000001232162328.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-dialog.md b/en/application-dev/ui/ui-js-components-dialog.md
index c13d5ce75c14622fee913049508c71d67e6902d1..024dcf2ecdc7b175bc42a0d95dd034a964d9e324 100644
--- a/en/application-dev/ui/ui-js-components-dialog.md
+++ b/en/application-dev/ui/ui-js-components-dialog.md
@@ -328,9 +328,4 @@ export default {
 ```
 
 
-![en-us_image_0000001223127756](figures/en-us_image_0000001223127756.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;dialog&gt;** component:
-
-[`JsDialog`: JS Dialog Box (API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsDialog)
\ No newline at end of file
+![en-us_image_0000001223127756](figures/en-us_image_0000001223127756.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-list.md b/en/application-dev/ui/ui-js-components-list.md
index 8981d4f7c0f1f61bd65e50c1f10a5513837a7dd0..ee26a8b65886736e619c65defbd038e121682e12 100644
--- a/en/application-dev/ui/ui-js-components-list.md
+++ b/en/application-dev/ui/ui-js-components-list.md
@@ -318,9 +318,4 @@ export default {
 ```
 
 
-![en-us_image_0000001267767861](figures/en-us_image_0000001267767861.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;list&gt;** component:
-
-[`JsList`: JSList Offerings (API 7)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsList)
\ No newline at end of file
+![en-us_image_0000001267767861](figures/en-us_image_0000001267767861.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-stepper.md b/en/application-dev/ui/ui-js-components-stepper.md
index caccc7f25503e11f2ac4a4da450524d7b89f052d..4ab5951f921892c6576bce38a8c9f64525967631 100644
--- a/en/application-dev/ui/ui-js-components-stepper.md
+++ b/en/application-dev/ui/ui-js-components-stepper.md
@@ -411,9 +411,4 @@ export default {
 }
 ```
 
-![en-us_image_0000001267887817](figures/en-us_image_0000001267887817.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;stepper&gt;** component:
-
-[`StepNavigator`: StepNavigator (JavaScript, API 7)](https://gitee.com/openharmony/app_samples/tree/master/UI/StepNavigator)
\ No newline at end of file
+![en-us_image_0000001267887817](figures/en-us_image_0000001267887817.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-swiper.md b/en/application-dev/ui/ui-js-components-swiper.md
index d240e96baa6d8d1765d9af5a506855838f483547..7a5514ed2c330c0be3882718247fc92ddf1a6c24 100644
--- a/en/application-dev/ui/ui-js-components-swiper.md
+++ b/en/application-dev/ui/ui-js-components-swiper.md
@@ -368,9 +368,4 @@ export default {
 }
 ```
 
-![en-us_image_0000001231843132](figures/en-us_image_0000001231843132.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;swiper&gt;** component:
-
-- [`Swiper`: Swiper (JavaScript, API 7)](https://gitee.com/openharmony/app_samples/tree/master/UI/Swiper)
+![en-us_image_0000001231843132](figures/en-us_image_0000001231843132.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-js-components-text.md b/en/application-dev/ui/ui-js-components-text.md
index f058773e25d50b45a0adb6a3fc1860ea1d3e480b..76a777c7ddb20c58120f25bcc6d8a4277c557142 100644
--- a/en/application-dev/ui/ui-js-components-text.md
+++ b/en/application-dev/ui/ui-js-components-text.md
@@ -286,9 +286,4 @@ export default {
 }
 ```
 
-![en-us_image_0000001267887849](figures/en-us_image_0000001267887849.gif)
-## Samples
-
-The following sample is provided to help you better understand how to develop the **&lt;text&gt;** component:
-
-- [`JsTextComponents`:  JavaScript Basic Components (API 8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsBasicComponents)
+![en-us_image_0000001267887849](figures/en-us_image_0000001267887849.gif)
\ No newline at end of file
diff --git a/en/application-dev/ui/ui-ts-basic-resource-file-categories.md b/en/application-dev/ui/ui-ts-basic-resource-file-categories.md
new file mode 100644
index 0000000000000000000000000000000000000000..4187772091b33aafc9eb0cd7f4d9747757b165e1
--- /dev/null
+++ b/en/application-dev/ui/ui-ts-basic-resource-file-categories.md
@@ -0,0 +1,127 @@
+# Resource File Categories
+
+
+## resources Directory
+
+All the application resource files, such as strings, images, and audio files, are stored in the **resources** directory, allowing you to easily access, use, and maintain them. The **resources** directory consists of two types of sub-directories: the **base** sub-directory and qualifiers sub-directories, and the **rawfile** sub-directory. For details, see Categories of the **resources** directory.
+
+Example of the **resources** directory:
+
+```
+resources
+|---base  // Default sub-directory
+|   |---element
+|   |   |---string.json
+|   |---media
+|   |   |---icon.png
+|---en_GB-vertical-car-mdpi // Example of a qualifiers sub-directory, which needs to be created on your own
+|   |---element
+|   |   |---string.json
+|   |---media
+|   |   |---icon.png
+|---rawfile  // Default sub-directory
+```
+
+**Table 1** Categories of the **resources** directory
+
+| Category    | base and Qualifiers Sub-directories      | rawfile Sub-directory                    |
+| ----------- | ---------------------------------------- | ---------------------------------------- |
+| Structure   | Sub-directories are structured in two levels. The directory name must comply with specified naming conventions so that its target resource file in the correct directory can be matched based on the device status.<br>  The **base** sub-directory and qualifiers sub-directories are the first level of sub-directories under **resources**.<br>- The **base** sub-directory is generated by default. If no qualifiers sub-directories in the **resources** directory of the application match the device status, the resource file in the **base** sub-directory will be automatically referenced.<br>- You need to create qualifiers sub-directories on your own. Each directory name consists of one or more qualifiers that represent the application scenarios or device characteristics. For details, see [Qualifiers Sub-directories](#qualifiers-sub-directories).<br>Resource group sub-directories are located at the second level of sub-directories to store basic elements such as strings, colors, and boolean values, as well as resource files such as media, animations, and layouts. For details, see [Resource Group Sub-directories](#resource-group-sub-directories). | You can create multiple levels of sub-directories with custom directory names. They can be used to store various resource files.<br>However, resource files in the **rawfile** sub-directory will not be matched based on the device status. |
+| Compilation | Resource files in the sub-directories are compiled into binary files, and each resource file is assigned an ID. | Resource files in the sub-directory are directly packed into the application without being compiled, and no IDs will be assigned to the resource files. |
+| Reference   | Resource files in the sub-directories are referenced based on the resource type and resource name. | Resource files in the sub-directories are referenced based on the specified file path and file name. |
+
+
+## Qualifiers Sub-directories
+
+The name of a qualifiers sub-directory consists of one or more qualifiers that represent the application scenarios or device characteristics, covering the mobile country code (MCC), mobile network code (MNC), language, script, country or region, screen orientation, device type, color mode, and screen density. The qualifiers are separated using underscores (_) or hyphens (-). When creating a qualifiers sub-directory, you need to understand the directory naming conventions and the rules for matching qualifiers sub-directories and the device status.
+
+**Naming Conventions for Qualifiers Sub-directories**
+
+- Qualifiers are ordered in the following sequence: *MCC*MNC-language_script_country/region-screen orientation-device type-color mode-screen density_. You can select one or multiple qualifiers to name your sub-directory based on your application scenarios and device characteristics.
+
+- Separation between qualifiers: The language, script, and country/region qualifiers are separated using underscores (\_); the MNC and MCC qualifiers are also separated using underscores (\_); other qualifiers are separated using hyphens (-). For example, **zh_Hant_CN** and **zh_CN-car-ldpi**.
+
+- Value range of qualifiers: The value of each qualifier must meet the requirements. Otherwise, the resource files in the sub-directory cannot be matched.
+
+  **Table 2** Requirements for qualifier values
+
+  | Qualifier Type     | Description and Value Range              |
+  | ------------------ | ---------------------------------------- |
+  | MCC&amp;MNC        | Indicates the MCC and MNC, which are obtained from the network where the device is registered. The MCC can be either followed by the MNC with an underscore (*) in between or be used independently. For example, **mcc460** represents China, and **mcc460*mnc00** represents China Mobile.<br>For details about the value range, refer to **ITU-T E.212** (the international identification plan for public networks and subscriptions). |
+  | Language           | Indicates the language used by the device. The value consists of two or three lowercase letters, for example, **zh** indicates Chinese, **en** indicates English, and **mai** indicates Maithili.<br>For details about the value range, refer to **ISO 639** (codes for the representation of names of languages). |
+  | Script             | Indicates the script type used by the device. The value starts with one uppercase letter followed by three lowercase letters, for example, **Hans** indicates simplified Chinese and **Hant** indicates traditional Chinese.<br>For details about the value range, refer to **ISO 15924** (codes for the representation of names of scripts). |
+  | Country/Region     | Indicates the country or region where a user is located. The value consists of two or three uppercase letters or three digits, for example, **CN** indicates China and **GB** indicates the United Kingdom.<br>For details about the value range, refer to **ISO 3166-1** (codes for the representation of names of countries and their subdivisions). |
+  | Screen orientation | Indicates the screen orientation of the device. The value can be:<br>- **vertical**: portrait orientation<br>- **horizontal**: landscape orientation |
+  | Device type        | Indicates the device type. The value can be:<br>- **car**: head units<br>- **tv**: smart TVs<br>- **wearable**: wearables |
+  | Color mode         | Indicates the color mode of the device. The value can be:<br>- **dark**: dark mode<br>- **light**: light mode |
+  | Screen density     | Indicates the screen density of the device, in dpi. The value can be:<br>- **sdpi**: screen density with small-scale dots per inch (SDPI). This value is applicable for devices with a DPI range of (0, 120].<br>- **mdpi**: screen density with medium-scale dots per inch (MDPI). This value is applicable for devices with a DPI range of (120, 160].<br>- **ldpi**: screen density with large-scale dots per inch (LDPI). This value is applicable for devices with a DPI range of (160, 240].<br>- **xldpi**: screen density with extra-large-scale dots per inch (XLDPI). This value is applicable for devices with a DPI range of (240, 320].<br>- **xxldpi**: screen density with extra-extra-large-scale dots per inch (XXLDPI). This value is applicable for devices with a DPI range of (320, 480].<br>- **xxxldpi**: screen density with extra-extra-extra-large-scale dots per inch (XXXLDPI). This value is applicable for devices with a DPI range of (480, 640]. |
+
+**Rules for Matching Qualifiers Sub-directories and Device Resources**
+
+- Qualifiers are matched with the device resources in the following priorities: MCC&amp;MNC &gt; locale (options: language, language_script, language_country/region, and language_script_country/region) &gt; screen orientation &gt; device type &gt; color mode &gt; screen density
+
+- If the qualifiers sub-directories contain the **MCC, MNC, language, script, screen orientation, device type, and color mode** qualifiers, their values must be consistent with the current device status so that the sub-directories can be used for matching the device resources. For example, the qualifiers sub-directory **zh_CN-car-ldpi** cannot be used for matching the resource files labeled **en_US**.
+
+
+## Resource Group Sub-directories
+
+You can create resource group sub-directories (including element, media, animation, layout, graphic, and profile) in the **base** and qualifiers sub-directories to store resource files of specific types. For details, see Resource group sub-directories.
+
+**Table 3** Resource group sub-directories
+
+| Resource Group Sub-directory | Description                                                  | Resource File                                                |
+| ---------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| element                      | Element resources. Each type of data is represented by a JSON file. The options are as follows:<br>- **boolean**: boolean data<br>- **color**: color data<br>- **float**: floating-point data<br>- **intarray**: array of integer<br>- **integer**: integer data<br>- **pattern**: pattern data<br>- **plural**: plural form data<br>- **strarray**: array of strings<br>- **string**: string data | It is recommended that files in the **element** sub-directory be named the same as the following files, each of which can contain only data of the same type:<br>- boolean.json<br>- color.json<br>- float.json<br>- intarray.json<br>- integer.json<br>- pattern.json<br>- plural.json<br>- strarray.json<br>- string.json |
+| media                        | Media resources, including non-text files such as images, audios, and videos. | The file name can be customized, for example, **icon.png**.  |
+| profile                      | Other types of files, which are stored in their raw formats. | The file name can be customized.                             |
+
+### Media Resource Types
+
+Table 4 Image resource types
+| Format| File Name Extension|
+| -------- | -------- |
+| JPEG | .jpg |
+| PNG | .png |
+| GIF | .gif |
+| SVG | .svg |
+| WEBP | .webp |
+| BMP | .bmp |
+
+Table 5 Audio and video resource types
+| Format| File Name Extension|
+| -------- | -------- |
+| H.263 | .3gp <br>.mp4 |
+| H.264 AVC <br> Baseline Profile (BP) | .3gp <br>.mp4 |
+| MPEG-4 SP | .3gp |
+| VP8 | .webm <br> .mkv |
+## Creating a Resource File
+
+You can create a sub-directory and its files under the **resources** directory based on the above descriptions of the qualifiers sub-directories and resource group sub-directories.
+
+DevEco Studio provides a wizard for you to create resource directories and resource files.
+
+- Creating a Resource Directory and Resource File
+
+  Right-click the **resources** directory and choose **New > Resource File**.
+
+  If no qualifier is selected, the file is created in a resource type sub-directory under **base**. If one or more qualifiers are selected, the system automatically generates a sub-directory and creates the file in this sub-directory.
+
+  The created sub-directory is automatically named in the format of **Qualifiers.Resource type**. For example, if you create a sub-directory by setting **Orientation** to **Vertical** and **Resource type** to **Graphic**, the system automatically generates a sub-directory named **vertical.graphic**.
+
+  ![create-resource-file-1](figures/create-resource-file-1.png)
+
+- Creating a Resource Directory
+
+  Right-click the **resources** directory and choose **New > Resource Directory**. This operation creates a sub-directory only.
+
+  Select a resource group type and set qualifiers. Then the system automatically generates the sub-directory name. The sub-directory is automatically named in the format of **Qualifiers.Resource group**. For example, if you create a sub-directory by setting **Orientation** to **Vertical** and **Resource type** to **Graphic**, the system automatically generates a sub-directory named **vertical.graphic**.
+
+  ![create-resource-file-2](figures/create-resource-file-2.png)
+
+- Creating a Resource File
+
+  Right-click a sub-directory under **resources** and choose **New > XXX Resource File**. This operation creates a resource file under this sub-directory.
+
+  For example, you can create an element resource file in the **element** sub-directory.
+
+  ![create-resource-file-3](figures/create-resource-file-3.png)
diff --git a/en/application-dev/ui/ui-ts-creating-simple-page.md b/en/application-dev/ui/ui-ts-creating-simple-page.md
index 4e9ee4b92152eade3066c4a79cb328cf8b998a57..6c934f4c56b2c66f59d746fc1752e4acf24131bf 100644
--- a/en/application-dev/ui/ui-ts-creating-simple-page.md
+++ b/en/application-dev/ui/ui-ts-creating-simple-page.md
@@ -7,7 +7,8 @@ In this section, we will develop an infographic food details page, by building c
 ## Building the Stack Layout
 
 1. Create a food name.
-   Delete the code of the build method in the project template, create a &lt;Stack&gt; component, and place the **\<Text>** component in the braces of the **\<Stack>** component so that the &lt;Text&gt; component becomes a child component of the &lt;Stack&gt; component. A **\<Stack>** component consists of one or more child components. The latter child component overwrites the former one.
+   
+   Delete the code of the **build** method in the project template, create a **\<Stack>** component, and place the **\<Text>** component in the braces of the **\<Stack>** component. When the **\<Stack>** component contains multiple child components, the latter child component overwrites the former one.
 
    ```
    @Entry
@@ -23,10 +24,11 @@ In this section, we will develop an infographic food details page, by building c
    }
    ```
 
-   ![en-us_image_0000001222967780](figures/en-us_image_0000001222967780.png)
+![en-us_image_0000001222967780](figures/en-us_image_0000001222967780.png)
 
 2. Display food pictures.
-   Create an **\<Image>** component and specify a URL for it. The **\<Image>** and **\<Text>** components are mandatory. To display the **\<Text>** component above the **\<Image>** component, you need to declare the **\<Image>** component first. Image resources are stored in the **rawfile** folder in **resources**. When referencing the resources in the **rawfile** folder, use the `"$rawfile('filename')"` format, where filename indicates the relative path of the file in the **rawfile** folder. Currently, `$rawfile` only allows the **\<Image>** component to reference image resources.
+
+   Create an **\<Image>** component and specify a URL for it. The **\<Image>** and **\<Text>** components are mandatory. To display the **\<Text>** component above the **\<Image>** component, you need to declare the **\<Image>** component first. Image resources are stored in the **rawfile** folder in **resources**. When referencing the resources in the **rawfile** folder, use the `"$rawfile('filename')"` format, where **filename** indicates the relative path of the file in the **rawfile** folder. Currently, `$rawfile` only allows the **\<Image>** component to reference image resources.
 
    ```
    @Entry
@@ -46,9 +48,10 @@ In this section, we will develop an infographic food details page, by building c
    ![en-us_image_0000001267887861](figures/en-us_image_0000001267887861.png)
 
 3. Access images through resources.
-   In addition to specifying the image path, you can also use the media resource symbol $r to reference resources based on the resource qualifier rules in the resources folder. Right-click the resources folder, choose **New** &gt; **Resource Directory**, and set **Resource Type** to **Media (image resource)**. Place Tomato.png in the media folder.
 
-   You can then can reference the application resource in the ` "$r('app.type.name')"`  format, that is, `$r('app.media.Tomato')`.
+   In addition to specifying the image path, you can also use the media resource symbol `$r` to reference resources in the **resources** folder based on the resource qualifier rules. Right-click the **resources** folder, choose **New** &gt; **Resource Directory**, and set **Resource Type** to **Media (image resource)**.
+
+   Place **Tomato.png** in the **media** folder. You can then can reference the application resource in the `$r('app.type.name')` format, that is, `$r('app.media.Tomato')`.
 
 
    ```
@@ -68,30 +71,31 @@ In this section, we will develop an infographic food details page, by building c
    }
    ```
 
-4. Set the width and height of the image, and set the objectFit attribute of the image to ImageFit.Contain, which means to keep the aspect ratio of the image to ensure that the image is completely displayed within the boundary.If the image fills the entire screen, the possible causes are as follows:
+4. Set the width and height of the image, and set the **objectFit** attribute of the image to **ImageFit.Contain**, which means to keep the aspect ratio of the image to ensure that the image is completely displayed within the boundary. If the image fills the entire screen, the possible causes are as follows:
+   
      1. The width and height of the image are not set.
      2. The default attribute of **objectFit** of the image is **ImageFit.Cover**, that is, the image is zoomed in or zoomed out to fill the entire display boundary with the aspect ratio locked.
-
-   ```
-   @Entry
-   @Component
-   struct MyComponent {
-     build() {
-       Stack() {
-           Image($r('app.media.Tomato'))
-               .objectFit(ImageFit.Contain)
-               .height(357)
-           Text('Tomato')
-               .fontSize(26)
-               .fontWeight(500)
+     
+     ```
+     @Entry
+     @Component
+     struct MyComponent {
+       build() {
+         Stack() {
+             Image($r('app.media.Tomato'))
+                 .objectFit(ImageFit.Contain)
+                 .height(357)
+             Text('Tomato')
+                 .fontSize(26)
+                 .fontWeight(500)
+         }
        }
      }
-   }
-   ```
+     ```
 
 ![en-us_image_0000001223127732](figures/en-us_image_0000001223127732.png)
 ​     
-5. Set the food image and name layout. Set the alignment mode of the stack to bottom alignment. By default, the stack is center aligned. Set **alignContent** to **Alignment.BottomStart**. Similar to **FontWeight**, **Alignment** is a built-in enumeration type provided by the framework.
+5. Set the food image and name layout. Set **alignContent** to **Alignment.BottomStart**. Similar to **FontWeight**, **Alignment** is a built-in enumeration type provided by the framework.
 
 ```
    @Entry
@@ -112,9 +116,9 @@ In this section, we will develop an infographic food details page, by building c
 
    ![en-us_image_0000001267647873](figures/en-us_image_0000001267647873.png)
 
-6. You can change the background color of the food image by setting the background color of the stack. You can set the background color in either of the following ways:
-   1. By using the built-in enumeration value of Color provided by the framework. For example, **backgroundColor(Color.Red)** indicates that the background color is set to red.
-   2. By using the parameter of the string type. The supported color formats are rgb, rgba, and HEX. For example, you can set the background color to blue by setting **backgroundColor(??\#0000FF??)** and set the background color to white by setting **backgroundColor(??rgb(255, 255, 255)??)**.
+6. You can change the background color of the food image by setting the background color of the **\<Stack>** component in either of the following ways:
+   1. Using the built-in **Color** enums provided by the framework. For example, **backgroundColor(Color.Red)** indicates that the background color is set to red.
+   2. Using the string-type parameter. The supported color formats are rgb, rgba, and HEX. For example, you can set the background color to blue by setting **backgroundColor(??\#0000FF??)** and set the background color to white by setting **backgroundColor(??rgb(255, 255, 255)??)**.
 
 
    ```
@@ -163,7 +167,7 @@ In this section, we will develop an infographic food details page, by building c
 
    ![en-us_image_0000001222967776](figures/en-us_image_0000001222967776.png)
 
-8. Adjust the structure between components and semanticize component names. Create the FoodDetail page entry component, create a column in **FoodDetail**, and set the alignment to **alignItems(HorizontalAlign.Center)**. Change the name of the **MyComponent** component to **FoodImageDisplay**, which is a child component of the **FoodDetail** component.
+8. Adjust the structure between components and semanticize component names. Create the **FoodDetail** page entry component, create a column in **FoodDetail**, and set the alignment to **alignItems(HorizontalAlign.Center)**. Change the name of the **MyComponent** component to **FoodImageDisplay**, which is a child component of the **FoodDetail** component.
    
    A column is a container component whose child components are vertically arranged. It is a linear layout in essence. Therefore, only the alignment in the cross axis direction can be set.
 
@@ -202,7 +206,7 @@ In this section, we will develop an infographic food details page, by building c
 
 You can use the Flex layout to build a food composition table. In this way you do not need to worry about the width and height calculation. The size of different cells can be flexibly set based on the proportion.
 
-1. Create a **ContentTable** component as a child component of the FoodDetail component.
+1. Create a **ContentTable** component as a child component of the **FoodDetail** component.
 
    ```
    @Component
@@ -239,13 +243,13 @@ You can use the Flex layout to build a food composition table. In this way you d
    }
    ```
 
-2. Create a Flex component to display two food composition categories in the tomato: Calories and Nutrition.
+2. Create a Flex component to display two food composition categories in the tomato: **Calories** and **Nutrition**.
    
-Calories contains information about calories. Nutrition contains information about protein, fat, carbohydrates, and vitamin C.
+   **Calories** contains information about calories. **Nutrition** contains information about protein, fat, carbohydrates, and vitamin C.
    
-Create the Calories class. Create a Flex component and set its height to 280, and the top, right, and left margins to 30. The Flex component contains three Text child components, which represent the category name (Calories), content name (Calories), and contain value (17 kcal), respectively. By default, child components in the Flex component are arranged horizontally.
+   Create the **Calories** class. Create a Flex component and set its height to 280, and the top, right, and left margins to 30. The Flex component contains three **\<Text>** child components, which represent the category name (**Calories**), content name (**Calories**), and contain value (**17 kcal**), respectively. By default, child components in the Flex component are arranged horizontally.
    
-   In the following example, code of FoodImageDisplay is omitted, and only code of ContentTable is provided.
+   In the following example, code of **FoodImageDisplay** is omitted, and only code of **ContentTable** is provided.
 
 
    ```
@@ -281,14 +285,14 @@ Create the Calories class. Create a Flex component and set its height to 280, an
 
    ![en-us_image_0000001267767869](figures/en-us_image_0000001267767869.png)
 
-3. Adjust the layout and set the proportion (layoutWeight) of each part. Set the proportion of the category name to **1**, and the total proportion of content name and content value to **2**. The content name and content value are in a same Flex, and the content name occupies all remaining space flexGrow(1).
+3. Adjust the layout and set the proportion (**layoutWeight**) of each part. Set the proportion of the category name to **1**, and the total proportion of content name and content value to **2**. The content name and content value are in a same Flex, and the content name occupies all remaining space **flexGrow(1)**.
 
    ```
    @Component
    struct FoodImageDisplay {
      build() {
        Stack({ alignContent: Alignment.BottomStart }) {
-         Image($m('Tomato.png'))
+         Image($r('app.media.Tomato'))
            .objectFit(ImageFit.Contain)
            .height(357)
          Text('Tomato')
@@ -337,7 +341,7 @@ Create the Calories class. Create a Flex component and set its height to 280, an
 
    ![en-us_image_0000001267607901](figures/en-us_image_0000001267607901.png)
 
-4. Create the **Nutrient** class in a similar process. Nutrition consists of four parts: Protein, Fat, Carbohydrates, and VitaminC. The names of the last three parts are omitted in the table and represented by spaces.
+4. Create the **Nutrient** class in a similar process. **Nutrition** consists of four parts: **Protein**, **Fat**, **Carbohydrates**, and **VitaminC**. The names of the last three parts are omitted in the table and represented by spaces.
    
    Set **FlexDirection.Column**, **FlexAlign.SpaceBetween**, and **ItemAlign.Start**.
 
@@ -442,7 +446,7 @@ Create the Calories class. Create a Flex component and set its height to 280, an
 
    Currently, all food groups are declared, resulting in code duplication and redundancy. You can use @Builder to build a custom method and abstract the same UI structure declaration. The @Builder decorated method and the build method for the @Component decorated component are used to declare some UI rendering structures and comply with the same eTS syntax. You can define one or more methods decorated by @Builder, but a component decorated by @Component can have only one build method.
 
-   Declare the IngredientItem method decorated by @Builder in ContentTable to declare the UI descriptions for the category name, content name, and content value.
+   Declare the **IngredientItem** method decorated by @Builder in **ContentTable** to declare the UI descriptions for the category name, content name, and content value.
 
 
    ```
@@ -455,9 +459,6 @@ Create the Calories class. Create a Flex component and set its height to 280, an
            .fontWeight(FontWeight.Bold)
            .layoutWeight(1)
          Flex({ alignItems: ItemAlign.Center }) {
-           Circle({width: 6, height: 6})
-             .margin({right: 12})
-             .fill(colorValue)
            Text(name)
              .fontSize(17.4)
              .flexGrow(1)
@@ -470,7 +471,7 @@ Create the Calories class. Create a Flex component and set its height to 280, an
    }
    ```
 
-When the  ` IngredientItem` API is called in the build method of ContentTable,  ` this `  needs to be used to invoke the method in the scope of the component to distinguish the global method call.
+   When the `IngredientItem` API is called in the **build** method of **ContentTable**, `this` needs to be used to invoke the method in the scope of the component to distinguish the global method call.
 
 
    ```
@@ -491,7 +492,7 @@ When the  ` IngredientItem` API is called in the build method of ContentTable,
    }
    ```
 
-The overall code of the ContentTable component is as follows:
+   The overall code of the **ContentTable** component is as follows:
 
 
    ```
diff --git a/en/application-dev/ui/ui-ts-local-storage.md b/en/application-dev/ui/ui-ts-local-storage.md
new file mode 100644
index 0000000000000000000000000000000000000000..5be4242deb84d124be1cc9c1323f10885ce6adb1
--- /dev/null
+++ b/en/application-dev/ui/ui-ts-local-storage.md
@@ -0,0 +1,345 @@
+# LocalStorage
+
+> **NOTE**
+>
+> This component is supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
+
+**LocalStorage** is a storage unit in an application. Its lifecycle is determined by the ability to which it is bound. **LocalStorage** provides storage for variable and non-variable state attributes within the scope of an application. The variable and non-variable state attributes work together to build an application UI, including the UI of abilities.
+
+Application layer: Multiple **LocalStorage** instances can be created for an application. Each ability of an application corresponds to a **LocalStorage** instance.
+
+Ability: An application can have multiple abilities. Only one **LocalStorage** instance can be allocated to the child components of an ability. Once allocated a **LocalStorage** instance, the child components have access to objects stored in the **LocalStorage**.
+
+A component can access only one **LocalStorage** instance, and a **LocalStorage** instance can be allocated to multiple components.
+
+## @LocalStorageLink Decorator
+
+Two-way data binding can be established between a component and the **LocalStorage** through the component's state variable decorated by **@LocalStorageLink(*key*)**. Wherein, **key** is the attribute key value in the **LocalStorage**. When a component that contains a **@LocalStorageLink** decorated state variable is created, the state variable is initialized with the initial value of the **LocalStorage**. If no initial value is assigned for the **LocalStorage**, the state variable will use the value defined by **@LocalStorageLink**. Changes made to this variable in the component will be first synchronized to the **LocalStorage**, and then to other components of the bound ability.
+
+## @LocalStorageProp Decorator
+
+One-way data binding can be established between a component and the **LocalStorage** through the component's state variable decorated by **@LocalStorageLink(*key*)**. Wherein, **key** is the attribute key value in the **LocalStorage**. When a component that contains a **@LocalStorageProp** decorated state variable is created, the state variable is initialized with the value predefined in the **LocalStorage**. Changes made to the value in the **LocalStorage** will cause all UI components of the bound ability to update the state.
+
+> **NOTE**
+>
+>  If a **LocalStorage** instance has initial values assigned when being created, these values will be used for the **@LocalStorageLink** and **@LocalStorageProp** decorated state variables in the component. Otherwise, the initial values assigned for **@LocalStorageLink** and **@LocalStorageProp** will be used instead.
+
+## LocalStorage APIs
+
+### constructor  
+
+constructor(initializingProperties?: Object)
+
+Creates and initializes a **LocalStorage** instance.
+
+**Parameters**
+
+| Name                | Type  | Mandatory| Default Value| Description                                                    |
+| ---------------------- | ------ | :--: | ------ | ------------------------------------------------------------ |
+| initializingProperties | Object |  No | -      | Object attributes and their values returned by **object.keys(obj)**.|
+
+
+
+### has
+
+has(propName: string): boolean
+
+Checks whether the **LocalStorage** contains the specified attribute value.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description      |
+| -------- | ------ | :--: | ------ | -------------- |
+| propName | string |  Yes | -      | Attribute value.|
+
+**Return value**
+
+| Type   | Description                      |
+| ------- | -------------------------- |
+| boolean | Whether the attribute value is contained.|
+
+
+
+### get
+
+get\<T>(propName: string): T
+
+Obtains the value corresponding to the given key.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description           |
+| -------- | ------ | :--: | ------ | ------------------- |
+| propName | string |  Yes | -      | Key of the value to obtain.|
+
+**Return value**
+
+| Type          | Description                                                   |
+| -------------- | ------------------------------------------------------- |
+| T \| undefined | Returns the value if it is found; returns **undefined** otherwise.|
+
+
+
+### set
+
+set\<T>(propName: string, newValue: T): boolean
+
+Sets the value for the given key.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description         |
+| -------- | ------ | :--: | ------ | ----------------- |
+| propName | string |  Yes | -      | Key of the value to set.  |
+| newValue | T      |  Yes | -      | Value to set.|
+
+**Return value**
+
+| Type   | Description                                                 |
+| ------- | ----------------------------------------------------- |
+| boolean | Returns **true** if the value is successfully set for the key; returns **false** otherwise.|
+
+
+
+### setOrCreate
+
+setOrCreate\<T>(propName: string, newValue: T): boolean
+
+Creates or updates the value for the given key.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description               |
+| -------- | ------ | :--: | ------ | ----------------------- |
+| propName | string |  Yes | -      | Key of the value to create or update.|
+| newValue | T      |  Yes | -      | Value to create or update.|
+
+**Return value**
+
+| Type   | Description                                                        |
+| ------- | ------------------------------------------------------------ |
+| boolean | Updates the value of the attribute and returns **true** if an attribute that has the same name as the specified key exists; creates an attribute with the specified value as its default value and returns **false** otherwise. **true** cannot be returned for **undefined** or **null**.|
+
+
+
+### link
+
+link\<T>(propName: string): T
+
+Establishes two-way data binding between an attribute and this **LocalStorage** instance.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description              |
+| -------- | ------ | :--: | ------ | ---------------------- |
+| propName | string |  Yes | -      | Key of the target attribute.|
+
+**Return value**
+
+| Type| Description                                                        |
+| ---- | ------------------------------------------------------------ |
+| T    | Returns the two-way data binding if an attribute that has the same name as the specified key exists; returns **undefined** otherwise.|
+
+
+
+### setAndLink
+
+setAndLink\<T>(propName: string, defaultValue: T): T
+
+Establishes two-way data binding between an attribute and this **LocalStorage** instance.
+
+**Parameters**
+
+| Name      | Type  | Mandatory| Default Value| Description            |
+| ------------ | ------ | :--: | ------ | -------------------- |
+| propName     | string |  Yes | -      | Key of the target attribute. |
+| defaultValue | T      |  Yes | -      | Default value of the target attribute to set.|
+
+**Return value**
+
+| Type                                 | Description                                                        |
+| ------------------------------------- | ------------------------------------------------------------ |
+| [@Link](ts-component-states-link.md)| Returns the two-way data binding if an attribute that has the same name as the specified key exists; creates an attribute with the specified value as its default value and returns the attribute otherwise.|
+
+
+
+### prop
+
+prop\<T>(propName: string): T
+
+Establishes one-way data binding with an attribute to update its status.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description               |
+| -------- | ------ | :--: | ------ | ----------------------- |
+| propName | string |  Yes | -      | Key of the target attribute.|
+
+**Return value**
+
+| Type                                | Description                                                        |
+| ------------------------------------ | ------------------------------------------------------------ |
+| [@Prop](ts-component-states-prop.md) | Returns the one-way data binding if an attribute that has the same name as the specified key exists; returns **undefined** otherwise. Note that the variables returned are immutable variables, which are applicable to variable and immutable state variables.|
+
+
+
+### setAndProp
+
+setAndProp\<T>(propName: string, defaultValue: T): T
+
+Works in a way similar to the **Prop** API and sets up one-way data binding with the **localStorage**.
+
+**Parameters**
+
+| Name      | Type  | Mandatory| Default Value| Description                   |
+| ------------ | ------ | :--: | ------ | --------------------------- |
+| propName     | string |  Yes | -      | Key value in the key-value pair to be saved.|
+| defaultValue | T      |  Yes | -      | Default value created.             |
+
+**Return value**
+
+| Type                                | Description                                                        |
+| ------------------------------------ | ------------------------------------------------------------ |
+| [@Prop](ts-component-states-prop.md) | Returns the value corresponding to the key if the current key is stored in the **LocalStorage**; creates and returns a **Prop** instance corresponding to the default value if the key has not been created.|
+
+
+
+### delete
+
+delete(propName: string): boolean
+
+Deletes the key-value pair specified by key.
+
+**Parameters**
+
+| Name  | Type  | Mandatory| Default Value| Description             |
+| -------- | ------ | :--: | ------ | --------------------- |
+| propName | string |  Yes | -      | Key value of the attribute to be deleted.|
+
+**Return value**
+
+| Type   | Description                                                        |
+| ------- | ------------------------------------------------------------ |
+| boolean | Deletes the key-value pair for the specified key. Returns **true** if the key-value pair exists and is successfully deleted; returns **false** otherwise.|
+
+
+
+### keys
+
+keys(): IterableIterator\<string>
+
+Searches for all keys.
+
+**Return value**
+
+| Type         | Description                        |
+| ------------- | ---------------------------- |
+| array\<string> | Returns an array of strings containing all keys.|
+
+
+
+### size
+
+size(): number
+
+Number of existing key-value pairs.
+
+**Return value**
+
+| Type  | Description              |
+| ------ | ------------------ |
+| number | Number of key-value pairs.|
+
+
+
+### Clear
+
+clear(): boolean
+
+Deletes all attributes.
+
+**Return value**
+
+| Type   | Description                                                        |
+| ------- | ------------------------------------------------------------ |
+| boolean | Deletes all attributes. If any of the attributes is being referenced by a state variable, **false** is returned.|
+
+### Example 1 (Creating a LocalStorage in an Ability)
+
+```javascript
+import Ability from '@ohos.appLication.Ability'
+export default class MainAbility extends Ability {    
+  storage : LocalStorage    
+  onCreate(want) {    
+    this.storage = new LocalStorage();
+    this.storage.setOrCreate("storageSimpleProp",121);    
+    console.log("[Demo MainAbility onCreate]");    
+    globalThis.abilityWant = want;   
+  }  
+  onDestroy() {    
+    console.log("[Demo MainAbility onDestroy]")  
+  }    
+  onWindowStageCreate(windowStage) {
+    windowStage.setUIContent(this.context,"pages/index",this.storage)    
+  }    
+  onWindowStageDestroy() {
+    console.log("[Demo] MainAbility onWindoeStageDestroy")   
+  }    
+  onForeground() {
+    console.log("[Demo] MainAbility onForeground")   
+  }    
+  onBackground() {
+    console.log("[Demo] MainAbility onBackground")    
+  }
+}
+```
+
+The @Component decorated component obtains data.
+
+```
+let storage = LocalStorage.GetShared()
+@Entry(storage)
+@Component
+struct LocalStorageComponent {
+  @LocalStorageLink("storageSimpleProp") simpleVarName: number = 0
+  build() {
+    Column(){
+      Text(this.simpleVarName.toString())
+        .onClick(()=>{
+          this.simpleVarName +=1;
+        })
+      Text(JSON.stringify(this.simpleVarName))
+        .fontSize(50)
+    }
+    .height(500)
+  }
+}
+```
+
+### Example 2 (Defining LocalStorage on the Entry Page)
+
+```
+let storage = new LocalStorage({"PropA":47});
+@Entry(storage)
+@Component 
+struct ComA {    
+  @LocalStorageLink("PropA") storLink : number = 1;    
+  build() {    
+	Column() {        
+	  Text(`Parent from LocalStorage $(this.storLink)`)            				                 
+        .onClick(()=>this.storLink+=1)            
+	    Child()    
+ 	  }    
+  }
+}
+
+
+@Component
+struct Child{    
+  @LocalStorageLink("PropA") storLink : number = 1;    
+  build() {    
+	Text(`Parent from LocalStorage $(this.storLink)`)        
+	  .onClick(()=>this.storLink1+=1)    
+  }
+}
+```
diff --git a/en/application-dev/website.md b/en/application-dev/website.md
index 0395b61b66797ddc7409bde4239fcb0d650a9fbb..0726f2d6fc16127147536e0a1c260db5a7a1c06d 100644
--- a/en/application-dev/website.md
+++ b/en/application-dev/website.md
@@ -11,8 +11,8 @@
   - Development Fundamentals
     - [Application Package Structure Configuration File (FA Model)](quick-start/package-structure.md)
     - [Application Package Structure Configuration File (Stage Model)](quick-start/stage-structure.md)
-    - [Resource File Categories](quick-start/basic-resource-file-categories.md)
     - [SysCap](quick-start/syscap.md)
+    - [HarmonyAppProvision Configuration File](quick-start/app-provision-structure.md)
 - Development
   - Ability Development
     - [Ability Framework Overview](ability/ability-brief.md)
@@ -22,7 +22,7 @@
       - [Page Ability Development](ability/fa-pageability.md)
       - [Service Ability Development](ability/fa-serviceability.md)
       - [Data Ability Development](ability/fa-dataability.md)
-      - [FA Widget Development](ability/fa-formability.md)    
+      - [FA Widget Development](ability/fa-formability.md)
     - Stage Model
       - [Stage Model Overview](ability/stage-brief.md)
       - [Ability Development](ability/stage-ability.md)
@@ -36,7 +36,78 @@
       - [Test Framework Usage](ability/ability-delegator.md)
   - UI Development
     - [ArkUI Overview](ui/arkui-overview.md)
-    - JavaScript-based Web-Like Development Paradigm
+    - TypeScript-based Declarative Development Paradigm
+      - [Overview](ui/ui-ts-overview.md)
+      - Framework Overview
+        - File Organization
+          - [Directory Structure](ui/ts-framework-directory.md)
+          - [Rules for Accessing Application Code Files](ui/ts-framework-file-access-rules.md)
+        - ["js" Tag](ui/ts-framework-js-tag.md)
+        - Resource Management
+          - [Resource File Categories](ui/ui-ts-basic-resource-file-categories.md)
+          - [Accessing Resources](ui/ts-resource-access.md)
+        - [Pixel Units](ui/ts-pixel-units.md)
+        - [Types](ui/ts-types.md)
+      - Declarative Syntax
+        - [Overview](ui/ts-syntax-intro.md)
+        - General UI Description Specifications
+          - [Basic Concepts](ui/ts-general-ui-concepts.md)
+          - Declarative UI Description Specifications
+            - [Configuration Without Parameters](ui/ts-parameterless-configuration.md)
+            - [Configuration with Mandatory Parameters](ui/ts-configuration-with-mandatory-parameters.md)
+            - [Attribute Configuration](ui/ts-attribution-configuration.md)
+            - [Event Configuration](ui/ts-event-configuration.md)
+            - [Child Component Configuration](ui/ts-child-component-configuration.md)
+          - Componentization
+            - [@Component](ui/ts-component-based-component.md)
+            - [@Entry](ui/ts-component-based-entry.md)
+            - [@Preview](ui/ts-component-based-preview.md)
+            - [@Builder](ui/ts-component-based-builder.md)
+            - [@Extend](ui/ts-component-based-extend.md)
+            - [@CustomDialog](ui/ts-component-based-customdialog.md)
+            - [@Styles](ui/ts-component-based-styles.md)
+        - About UI State Management
+          - [Basic Concepts](ui/ts-ui-state-mgmt-concepts.md)
+          - Managing Component States
+            - [@State](ui/ts-component-states-state.md)
+            - [@Prop](ui/ts-component-states-prop.md)
+            - [@Link](ui/ts-component-states-link.md)
+          - Managing Application States
+            - [AppStorage](ui/ts-application-states-appstorage.md)
+            - [LocalStorage](ui/ui-ts-local-storage.md)
+            - [PersistentStorage](ui/ts-application-states-apis-persistentstorage.md)
+            - [Environment](ui/ts-application-states-apis-environment.md)
+          - Managing Other States
+            - [@Observed and @ObjectLink](ui/ts-other-states-observed-objectlink.md)
+            - [@Consume and @Provide](ui/ts-other-states-consume-provide.md)
+            - [@Watch](ui/ts-other-states-watch.md)
+          - About Rendering Control Syntax
+            - [if/else](ui/ts-rending-control-syntax-if-else.md)
+            - [ForEach](ui/ts-rending-control-syntax-foreach.md)
+            - [LazyForEach](ui/ts-rending-control-syntax-lazyforeach.md)
+        - About @Component
+          - [build Function](ui/ts-function-build.md)
+          - [Initialization of Custom Components' Member Variables](ui/ts-custom-component-initialization.md)
+          - [Custom Component Lifecycle Callbacks](ui/ts-custom-component-lifecycle-callbacks.md)
+          - [Component Creation and Re-initialization](ui/ts-component-creation-re-initialization.md)
+        - [About Syntactic Sugar](ui/ts-syntactic-sugar.md)
+      - Common Component Development Guidelines
+        - [Button](ui/ui-ts-basic-components-button.md)
+        - [Web](ui/ui-ts-components-web.md)
+      - Common Layout Development Guidelines
+        - [Flex Layout](ui/ui-ts-layout-flex.md)
+        - [Grid Layout](ui/ui-ts-layout-grid-container.md)
+        - [Media Query](ui/ui-ts-layout-mediaquery.md)
+      - Experiencing the Declarative UI
+        - [Creating a Declarative UI Project](ui/ui-ts-creating-project.md)
+        - [Getting to Know Components](ui/ui-ts-components.md)
+        - [Creating a Simple Page](ui/ui-ts-creating-simple-page.md)
+      - Defining Page Layout and Connection
+        - [Building a Food Data Model](ui/ui-ts-building-data-model.md)
+        - [Building a Food Category List Layout](ui/ui-ts-building-category-list-layout.md)
+        - [Building a Food Category Grid Layout](ui/ui-ts-building-category-grid-layout.md)
+        - [Implementing Page Redirection and Data Transmission](ui/ui-ts-page-redirection-data-transmission.md)
+    - JavaScript-based Web-like Development Paradigm
       - [Overview](ui/ui-js-overview.md)
       - Framework
         - [File Organization](ui/js-framework-file.md)
@@ -59,7 +130,7 @@
           - [Adding a Container](ui/ui-js-building-ui-layout-external-container.md)
         - [Adding Interactions](ui/ui-js-building-ui-interactions.md)
         - [Developing Animations](ui/ui-js-building-ui-animation.md)
-        - [Defining Events](ui/ui-js-building-ui-event.md)
+        - [Defining Gesture Events](ui/ui-js-building-ui-event.md)
         - [Defining Page Routes](ui/ui-js-building-ui-routes.md)
       - Common Component Development Guidelines
         - Container Components
@@ -108,435 +179,278 @@
             - [Animation Effect](ui/ui-js-animate-dynamic-effects.md)
             - [Animation Frame](ui/ui-js-animate-frame.md)
       - [Custom Components](ui/ui-js-custom-components.md)
-    - TypeScript-based Declarative Development Paradigm
-      - [Overview](ui/ui-ts-overview.md)
-      - Framework Overview
-        - File Organization
-          - [Directory Structure](ui/ts-framework-directory.md)
-          - [Rules for Accessing Application Code Files](ui/ts-framework-file-access-rules.md)
-        - ["js" Tag](ui/ts-framework-js-tag.md)
-        - Resource Access
-          - [Accessing Application Resources](ui/ts-application-resource-access.md)
-          - [Accessing System Resources](ui/ts-system-resource-access.md)
-          - [Media Resource Types](ui/ts-media-resource-type.md)
-        - [Pixel Units](ui/ts-pixel-units.md)
-        - [Types](ui/ts-types.md)
-      - Declarative Syntax
-        - [Overview](ui/ts-syntax-intro.md)
-        - General UI Description Specifications
-          - [Basic Concepts](ui/ts-general-ui-concepts.md)
-          - Declarative UI Description Specifications
-            - [Configuration Without Parameters](ui/ts-parameterless-configuration.md)
-            - [Configuration with Mandatory Parameters](ui/ts-configuration-with-mandatory-parameters.md)
-            - [Attribution Configuration](ui/ts-attribution-configuration.md)
-            - [Event Configuration](ui/ts-event-configuration.md)
-            - [Child Component Configuration](ui/ts-child-component-configuration.md)
-          - Componentization
-            - [@Component](ui/ts-component-based-component.md)
-            - [@Entry](ui/ts-component-based-entry.md)
-            - [@Preview](ui/ts-component-based-preview.md)
-            - [@Builder](ui/ts-component-based-builder.md)
-            - [@Extend](ui/ts-component-based-extend.md)
-            - [@CustomDialog](ui/ts-component-based-customdialog.md)
-            - [@Styles](ui/ts-component-based-styles.md)
-        - About UI State Management
-          - [Basic Concepts](ui/ts-ui-state-mgmt-concepts.md)
-          - Managing Component States
-            - [@State](ui/ts-component-states-state.md)
-            - [@Prop](ui/ts-component-states-prop.md)
-            - [@Link](ui/ts-component-states-link.md)
-          - Managing Application States
-            - [AppStorage](ui/ts-application-states-appstorage.md)
-            - [PersistentStorage](ui/ts-application-states-apis-persistentstorage.md)
-            - [Environment](ui/ts-application-states-apis-environment.md)
-          - Managing Other States
-            - [@observed and @objectLink](ui/ts-other-states-observed-objectlink.md)
-            - [@Consume and @Provide](ui/ts-other-states-consume-provide.md)
-            - [@Watch](ui/ts-other-states-watch.md)
-        - About Rendering Control Syntax
-          - [if/else](ui/ts-rending-control-syntax-if-else.md)
-          - [ForEach](ui/ts-rending-control-syntax-foreach.md)
-          - [LazyForEach](ui/ts-rending-control-syntax-lazyforeach.md)
-        - About @Component
-          - [build Function](ui/ts-function-build.md)
-          - [Initialization of Custom Components' Member Variables](ui/ts-custom-component-initialization.md)
-          - [Custom Component Lifecycle Callbacks](ui/ts-custom-component-lifecycle-callbacks.md)
-          - [Example: Component Creation and Re-Initialization](ui/ts-component-creation-re-initialization.md)
-        - [Syntactic Sugar](ui/ts-syntactic-sugar.md)
-      - Common Component Development Guidelines
-        - [Button](ui/ui-ts-basic-components-button.md)
-        - [Web](ui/ui-ts-components-web.md)
-      - Common Layout Development Guidelines
-        - [Flex Layout](ui/ui-ts-layout-flex.md)
-        - [Grid Layout](ui/ui-ts-layout-grid-container.md)
-        - [Media Query](ui/ui-ts-layout-mediaquery.md)
-      - Experiencing the Declarative UI
-        - [Creating a Declarative UI Project](ui/ui-ts-creating-project.md)
-        - [Getting to Know Components](ui/ui-ts-components.md)
-        - [Creating a Simple Page](ui/ui-ts-creating-simple-page.md)
-      - Defining Page Layout and Connection
-        - [Building a Food Data Model](ui/ui-ts-building-data-model.md)
-        - [Building a Food Category List Layout](ui/ui-ts-building-category-list-layout.md)
-        - [Building a Food Category Grid Layout](ui/ui-ts-building-category-grid-layout.md)
-        - [Implementing Page Redirection and Data Transmission](ui/ui-ts-page-redirection-data-transmission.md)
-  - Basic Functions
-    - Common Event and Notification
-      - [Common Event and Notification Overview](notification/notification-brief.md)
-      - Common Event
-        - [Common Event Development](notification/common-event.md)
-      - Notification
-        - [Notification Development](notification/notification.md)
-      - Debugging Tools
-        - [Debugging Assistant Usage](notification/assistant-guidelines.md)
-    - Window Manager
-      - Window
-        - [Window Overview](windowmanager/window-overview.md)
-        - [Window Development](windowmanager/window-guidelines.md)
-      - Display
-        - [Display Overview](windowmanager/display-overview.md)
-        - [Display Development](windowmanager/display-guidelines.md)
-      - Screenshot
-        - [Screenshot Overview](windowmanager/screenshot-overview.md)
-        - [Screenshot Development](windowmanager/screenshot-guidelines.md)
-    - WebGL
-      - [WebGL Overview](webgl/webgl-overview.md)
-      - [WebGL Development](webgl/webgl-guidelines.md)
-    - Media
-      - Audio
-        - [Audio Overview](media/audio-overview.md)
-        - [Audio Playback Development](media/audio-playback.md)
-        - [Audio Recording Development](media/audio-recorder.md)
-        - [Audio Rendering Development](media/audio-renderer.md)
-        - [Audio Capture Development](media/audio-capturer.md)
-      - Video
-        - [Video Playback Development](media/video-playback.md)
-        - [Video Recording Development](media/video-recorder.md)
-      - Image
-        - [Image Development](media/image.md)
-    - Security
-      - User Authentication
-        - [User Authentication Overview](security/userauth-overview.md)
-        - [User Authentication Development](security/userauth-guidelines.md)
-      - Key Management
-        - [HUKS Overview](security/huks-overview.md)
-        - [HUKS Development](security/huks-guidelines.md)
-      - hapsigner
-        - [hapsigner Guide](security/hapsigntool-guidelines.md)
-      - Access Control
-        - [Access Control Overview](security/accesstoken-overview.md)
-        - [Access Control Development](security/accesstoken-guidelines.md)
-    - Connectivity
-      - Network Management
-        - [Network Management Overview](connectivity/net-mgmt-overview.md)
-        - [HTTP Data Request](connectivity/http-request.md)
-        - [WebSocket Connection](connectivity/websocket-connection.md)
-        - [Socket Connection](connectivity/socket-connection.md)
-      - IPC & RPC
-        - [IPC & RPC Overview](connectivity/ipc-rpc-overview.md)
-        - [IPC & RPC Development](connectivity/ipc-rpc-development-guideline.md)
-        - [Subscribing to State Changes of a Remote Object](connectivity/subscribe-remote-state.md)
-    - Telephony
-      - [Telephony Service Overview](telephony/telephony-overview.md)
-      - [Redirecting to the Dial Screen](telephony/jumping-to-the-dial-screen.md)
-      - [Obtaining Current Cellular Network Signal Information](telephony/cellular-network-signal-info.md)
-    - Data Management
-      - Distributed Data Service
-        - [Distributed Data Service Overview](database/database-mdds-overview.md)
-        - [Distributed Data Service Development](database/database-mdds-guidelines.md)
-      - Relational Database
-        - [RDB Overview](database/database-relational-overview.md)
-        - [RDB Development](database/database-relational-guidelines.md)
-      - Lightweight Data Store
-        - [Lightweight Data Store Overview](database/database-preference-overview.md)
-        - [Lightweight Data Store Development](database/database-preference-guidelines.md)
-      - Distributed Data Object
-        - [Distributed Data Object Overview](database/database-distributedobject-overview.md)
-        - [Distributed Data Object Development](database/database-distributedobject-guidelines.md)
+  - Common Event and Notification
+
+    - [Common Event and Notification Overview](notification/notification-brief.md)
+    - [Common Event Development](notification/common-event.md)
+    - [Notification Development](notification/notification-guidelines.md)
     - Agent-Powered Scheduled Reminder
-      - [Agent-Powered Scheduled Reminder Overview](background-agent-scheduled-reminder/background-agent-scheduled-reminder-overview.md)
-      - [Agent-Powered Scheduled Reminder Development](background-agent-scheduled-reminder/background-agent-scheduled-reminder-guide.md)
+      - [Agent-Powered Scheduled Reminder Overview](notification/background-agent-scheduled-reminder-overview.md)
+      - [Agent-Powered Scheduled Reminder Development](notification/background-agent-scheduled-reminder-guide.md)
+    - [Debugging Assistant Usage](notification/assistant-guidelines.md)
+  - Window Manager
+    - Window
+      - [Window Overview](windowmanager/window-overview.md)
+      - [Window Development](windowmanager/window-guidelines.md)
+    - Display
+      - [Display Overview](windowmanager/display-overview.md)
+      - [Display Development](windowmanager/display-guidelines.md)
+    - Screenshot
+      - [Screenshot Overview](windowmanager/screenshot-overview.md)
+      - [Screenshot Development](windowmanager/screenshot-guidelines.md)
+  - WebGL
+    - [WebGL Overview](webgl/webgl-overview.md)
+    - [WebGL Development](webgl/webgl-guidelines.md)
+  - Media
+
+    - Audio
+      - [Audio Overview](media/audio-overview.md)
+      - [Audio Playback Development](media/audio-playback.md)
+      - [Audio Recording Development](media/audio-recorder.md)
+      - [Audio Rendering Development](media/audio-renderer.md)
+      - [Audio Capture Development](media/audio-capturer.md)
+      - [OpenSL ES Audio Playback Development](media/opensles-playback.md)
+      - [OpenSL ES Audio Recording Development](media/opensles-capture.md)
+      - [Audio Interruption Mode Development](media/audio-interruptmode.md)
+    - Video
+      - [Video Playback Development](media/video-playback.md)
+      - [Video Recording Development](media/video-recorder.md)
+    - Image
+      - [Image Development](media/image.md)
+    - Camera
+      - [Camera Development](media/camera.md)
+  - Security
+
+    - Access Control
+      - [Access Control Overview](security/accesstoken-overview.md)
+      - [Access Control Development](security/accesstoken-guidelines.md)
+      - [Permission List](security/permission-list.md)
+    - User Authentication
+      - [User Authentication Overview](security/userauth-overview.md)
+      - [User Authentication Development](security/userauth-guidelines.md)
+    - Key Management
+      - [HUKS Overview](security/huks-overview.md)
+      - [HUKS Development](security/huks-guidelines.md)
+    - hapsigner
+      - [hapsigner Overview](security/hapsigntool-overview.md)
+      - [hapsigner Guide](security/hapsigntool-guidelines.md)
+  - Connectivity
+    - Network Management
+      - [Network Management Overview](connectivity/net-mgmt-overview.md)
+      - [HTTP Data Request](connectivity/http-request.md)
+      - [WebSocket Connection](connectivity/websocket-connection.md)
+      - [Socket Connection](connectivity/socket-connection.md)
+    - IPC & RPC
+      - [IPC & RPC Overview](connectivity/ipc-rpc-overview.md)
+      - [IPC & RPC Development](connectivity/ipc-rpc-development-guideline.md)
+      - [Subscribing to State Changes of a Remote Object](connectivity/subscribe-remote-state.md)
+  - Telephony
+    - [Telephony Service Overview](telephony/telephony-overview.md)
+    - [Redirecting to the Dial Screen](telephony/jumping-to-the-dial-screen.md)
+    - [Obtaining Current Cellular Network Signal Information](telephony/cellular-network-signal-info.md)
+  - Data Management 
+    - Distributed Data Service
+      - [Distributed Data Service Overview](database/database-mdds-overview.md)
+      - [Distributed Data Service Development](database/database-mdds-guidelines.md)
+    - Relational Database
+      - [RDB Overview](database/database-relational-overview.md)
+      - [RDB Development](database/database-relational-guidelines.md)
+    - Preferences
+      - [Preferences Overview](database/database-preference-overview.md)
+      - [Preferences Development](database/database-preference-guidelines.md)
+    - Distributed Data Object
+      - [Distributed Data Object Overview](database/database-distributedobject-overview.md)
+      - [Distributed Data Object Development](database/database-distributedobject-guidelines.md)
+  - Task Management
     - Background Task Management
-      - [Background Task Management Overview](background-task-management/background-task-overview.md)
-      - [Background Task Management Development](background-task-management/background-task-dev-guide.md)
+      - [Background Task Management Overview](task-management/background-task-overview.md)
+      - [Background Task Management Development](task-management/background-task-dev-guide.md)
     - Work Scheduler
-      - [Work Scheduler Overview](work-scheduler/work-scheduler-overview.md)
-      - [Work Scheduler Development](work-scheduler/work-scheduler-dev-guide.md)
-    - Device
-      - USB Service
-        - [USB Service Overview](device/usb-overview.md)
-        - [USB Service Development](device/usb-guidelines.md)
-      - Location
-        - [Location Overview](device/device-location-overview.md)
-        - [Obtaining Device Location Information](device/device-location-info.md)
-        - [Geocoding and Reverse Geocoding Capabilities](device/device-location-geocoding.md)
-      - Sensor
-        - [Sensor Overview](device/sensor-overview.md)
-        - [Sensor Development](device/sensor-guidelines.md)
-      - Vibrator
-        - [Vibrator Overview](device/vibrator-overview.md)
-        - [Vibrator Development](device/vibrator-guidelines.md)
-      - Update
-        - [Sample Server Overview](device/sample-server-overview.md)
-        - [Sample Server Development](device/sample-server-guidelines.md)
-    - Device Usage Statistics
-      - [Device Usage Statistics Overview](device-usage-statistics/device-usage-statistics-overview.md)
-      - [Device Usage Statistics Development](device-usage-statistics/device-usage-statistics-dev-guide.md)
-    - DFX
-      - Application Event Logging
-        - [Overview of Application Event Logging](dfx/hiappevent-overview.md)
-        - [Development of Application Event Logging](dfx/hiappevent-guidelines.md)
-      - Performance Tracing
-        - [Overview of Performance Tracing](dfx/hitracemeter-overview.md)
-        - [Development of Performance Tracing](dfx/hitracemeter-guidelines.md)
-      - Distributed Call Chain Tracing
-        - [Overview of Distributed Call Chain Tracing](dfx/hitracechain-overview.md)
-        - [Development of Distributed Call Chain Tracing](dfx/hitracechain-guidelines.md)
-    - Internationalization
-      - [Internationalization Overview](internationalization/international-overview.md)
-      - [Internationalization Development (intl)](internationalization/intl-guidelines.md)
-      - [Internationalization Development (i18n)](internationalization/i18n-guidelines.md)
-    - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md)
-    - Native APIs
-      - [Using Native APIs in Application Projects](napi/napi-guidelines.md) 
+      - [Work Scheduler Overview](task-management/work-scheduler-overview.md)
+      - [Work Scheduler Development](task-management/work-scheduler-dev-guide.md)
+  - Device
+    - USB Service
+      - [USB Service Overview](device/usb-overview.md)
+      - [USB Service Development](device/usb-guidelines.md)
+    - Location
+      - [Location Overview](device/device-location-overview.md)
+      - [Obtaining Device Location Information](device/device-location-info.md)
+      - [Geocoding and Reverse Geocoding Capabilities](device/device-location-geocoding.md)
+    - Sensor
+      - [Sensor Overview](device/sensor-overview.md)
+      - [Sensor Development](device/sensor-guidelines.md)
+    - Vibrator
+      - [Vibrator Overview](device/vibrator-overview.md)
+      - [Vibrator Development](device/vibrator-guidelines.md)
+    - Update Service
+      - [Sample Server Overview](device/sample-server-overview.md)
+      - [Sample Server Development](device/sample-server-guidelines.md)
+  - Device Usage Statistics
+    - [Device Usage Statistics Overview](device-usage-statistics/device-usage-statistics-overview.md)
+    - [Device Usage Statistics Development](device-usage-statistics/device-usage-statistics-dev-guide.md)
+  - DFX
+    - Application Event Logging
+      - [Overview of Application Event Logging](dfx/hiappevent-overview.md)
+      - [Development of Application Event Logging](dfx/hiappevent-guidelines.md)
+    - Performance Tracing
+      - [Overview of Performance Tracing](dfx/hitracemeter-overview.md)
+      - [Development of Performance Tracing](dfx/hitracemeter-guidelines.md)
+    - Distributed Call Chain Tracing
+      - [Overview of Distributed Call Chain Tracing](dfx/hitracechain-overview.md)
+      - [Development of Distributed Call Chain Tracing](dfx/hitracechain-guidelines.md)
+    - Error Management
+      - [Development of Error Manager](dfx/errormanager-guidelines.md)
+  - Internationalization
+    - [Internationalization Overview](internationalization/international-overview.md)
+    - [Internationalization Development (intl)](internationalization/intl-guidelines.md)
+    - [Internationalization Development (i18n)](internationalization/i18n-guidelines.md)
+  - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md)
+  - Native APIs
+    - [Using Native APIs in Application Projects](napi/napi-guidelines.md)
+    - [Drawing Development](napi/drawing-guidelines.md)
+    - [Native Window Development](napi/native-window-guidelines.md)
+    - [Raw File Development](napi/rawfile-guidelines.md)
 - Tools
   - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md)
 - Hands-On Tutorials
   - [Samples](https://gitee.com/openharmony/app_samples/blob/master/README.md)
   - [Codelabs](https://gitee.com/openharmony/codelabs)
 - API References
-  - Component Reference (JavaScript-based Web-like Development Paradigm)
-    - Components
-      - Common
-        - [Universal Attributes](reference/arkui-js/js-components-common-attributes.md)
-        - [Universal Styles](reference/arkui-js/js-components-common-styles.md)
-        - [Universal Events](reference/arkui-js/js-components-common-events.md)
-        - [Universal Methods](reference/arkui-js/js-components-common-methods.md)
-        - [Animation Styles](reference/arkui-js/js-components-common-animation.md)
-        - [Gradient Styles](reference/arkui-js/js-components-common-gradient.md)
-        - [Transition Styles](reference/arkui-js/js-components-common-transition.md)
-        - [Media Query](reference/arkui-js/js-components-common-mediaquery.md)
-        - [Custom Font Styles](reference/arkui-js/js-components-common-customizing-font.md)
-        - [Atomic Layout](reference/arkui-js/js-components-common-atomic-layout.md)
-      - Container Components
-        - [badge](reference/arkui-js/js-components-container-badge.md)
-        - [dialog](reference/arkui-js/js-components-container-dialog.md)
-        - [div](reference/arkui-js/js-components-container-div.md)
-        - [form](reference/arkui-js/js-components-container-form.md)
-        - [list](reference/arkui-js/js-components-container-list.md)
-        - [list-item](reference/arkui-js/js-components-container-list-item.md)
-        - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md)
-        - [panel](reference/arkui-js/js-components-container-panel.md)
-        - [popup](reference/arkui-js/js-components-container-popup.md)
-        - [refresh](reference/arkui-js/js-components-container-refresh.md)
-        - [stack](reference/arkui-js/js-components-container-stack.md)
-        - [stepper](reference/arkui-js/js-components-container-stepper.md)
-        - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md)
-        - [swiper](reference/arkui-js/js-components-container-swiper.md)
-        - [tabs](reference/arkui-js/js-components-container-tabs.md)
-        - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md)
-        - [tab-content](reference/arkui-js/js-components-container-tab-content.md)
-      - Basic Components
-        - [button](reference/arkui-js/js-components-basic-button.md)
-        - [chart](reference/arkui-js/js-components-basic-chart.md)
-        - [divider](reference/arkui-js/js-components-basic-divider.md)
-        - [image](reference/arkui-js/js-components-basic-image.md)
-        - [image-animator](reference/arkui-js/js-components-basic-image-animator.md)
-        - [input](reference/arkui-js/js-components-basic-input.md)
-        - [label](reference/arkui-js/js-components-basic-label.md)
-        - [marquee](reference/arkui-js/js-components-basic-marquee.md)
-        - [menu](reference/arkui-js/js-components-basic-menu.md)
-        - [option](reference/arkui-js/js-components-basic-option.md)
-        - [picker](reference/arkui-js/js-components-basic-picker.md)
-        - [picker-view](reference/arkui-js/js-components-basic-picker-view.md)
-        - [piece](reference/arkui-js/js-components-basic-piece.md)
-        - [progress](reference/arkui-js/js-components-basic-progress.md)
-        - [qrcode](reference/arkui-js/js-components-basic-qrcode.md)
-        - [rating](reference/arkui-js/js-components-basic-rating.md)
-        - [richtext](reference/arkui-js/js-components-basic-richtext.md)
-        - [search](reference/arkui-js/js-components-basic-search.md)
-        - [select](reference/arkui-js/js-components-basic-select.md)
-        - [slider](reference/arkui-js/js-components-basic-slider.md)
-        - [span](reference/arkui-js/js-components-basic-span.md)
-        - [switch](reference/arkui-js/js-components-basic-switch.md)
-        - [text](reference/arkui-js/js-components-basic-text.md)
-        - [textarea](reference/arkui-js/js-components-basic-textarea.md)
-        - [toolbar](reference/arkui-js/js-components-basic-toolbar.md)
-        - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md)
-        - [toggle](reference/arkui-js/js-components-basic-toggle.md)
-        - [web](reference/arkui-js/js-components-basic-web.md)
-      - Media Components
-        - [video](reference/arkui-js/js-components-media-video.md)
-      - Canvas Components
-        - [canvas](reference/arkui-js/js-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md)
-        - [Image](reference/arkui-js/js-components-canvas-image.md)
-        - [CanvasGradient](reference/arkui-js/js-components-canvas-canvasgradient.md)
-        - [ImageData](reference/arkui-js/js-components-canvas-imagedata.md)
-        - [Path2D](reference/arkui-js/js-components-canvas-path2d.md)
-        - [ImageBitmap](reference/arkui-js/js-components-canvas-imagebitmap.md)
-        - [OffscreenCanvas](reference/arkui-js/js-components-canvas-offscreencanvas.md)
-        - [OffscreenCanvasRenderingContext2D](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md)
-      - Grid
-        - [Basic Concepts](reference/arkui-js/js-components-grid-basic-concepts.md)
-        - [grid-container](reference/arkui-js/js-components-grid-container.md)
-        - [grid-row](reference/arkui-js/js-components-grid-row.md)
-        - [grid-col](reference/arkui-js/js-components-grid-col.md)
-      - SVG Components
-        - [Universal Attributes](reference/arkui-js/js-components-svg-common-attributes.md)
-        - [svg](reference/arkui-js/js-components-svg.md)
-        - [rect](reference/arkui-js/js-components-svg-rect.md)
-        - [circle](reference/arkui-js/js-components-svg-circle.md)
-        - [ellipse](reference/arkui-js/js-components-svg-ellipse.md)
-        - [path](reference/arkui-js/js-components-svg-path.md)
-        - [line](reference/arkui-js/js-components-svg-line.md)
-        - [polyline](reference/arkui-js/js-components-svg-polyline.md)
-        - [polygon](reference/arkui-js/js-components-svg-polygon.md)
-        - [text](reference/arkui-js/js-components-svg-text.md)
-        - [tspan](reference/arkui-js/js-components-svg-tspan.md)
-        - [textPath](reference/arkui-js/js-components-svg-textpath.md)
-        - [animate](reference/arkui-js/js-components-svg-animate.md)
-        - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md)
-        - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md)
-    - Custom Components
-      - [Basic Usage](reference/arkui-js/js-components-custom-basic-usage.md)
-      - [Custom Events](reference/arkui-js/js-components-custom-events.md)
-      - [props](reference/arkui-js/js-components-custom-props.md)
-      - [Event Parameter](reference/arkui-js/js-components-custom-event-parameter.md)
-      - [slot](reference/arkui-js/js-components-custom-slot.md)
-      - [Lifecycle Definition](reference/arkui-js/js-components-custom-lifecycle.md)
-    - Appendix 
-      - [Type Attributes](reference/arkui-js/js-appendix-types.md)
   - Component Reference (TypeScript-based Declarative Development Paradigm)
-    - Components
-      - Universal Components
-        - Universal Events
-          - [Click Event](reference/arkui-ts/ts-universal-events-click.md)
-          - [Touch](reference/arkui-ts/ts-universal-events-touch.md)
-          - [Show/Hide Event](reference/arkui-ts/ts-universal-events-show-hide.md)
-          - [Drag/Drop Event](reference/arkui-ts/ts-universal-events-drag-drop.md)
-          - [Key Event](reference/arkui-ts/ts-universal-events-key.md)
-          - [Focus Event](reference/arkui-ts/ts-universal-focus-event.md)
-          - [Mouse Event](reference/arkui-ts/ts-universal-mouse-key.md)
-          - [Component Area Change Event](reference/arkui-ts/ts-universal-component-area-change-event.md)
-        - Universal Attributes
-          - [Size](reference/arkui-ts/ts-universal-attributes-size.md)
-          - [Location](reference/arkui-ts/ts-universal-attributes-location.md)
-          - [Layout Constraints](reference/arkui-ts/ts-universal-attributes-layout-constraints.md)
-          - [Flex Layout](reference/arkui-ts/ts-universal-attributes-flex-layout.md)
-          - [Border Configuration](reference/arkui-ts/ts-universal-attributes-border.md)
-          - [Background](reference/arkui-ts/ts-universal-attributes-background.md)
-          - [Opacity](reference/arkui-ts/ts-universal-attributes-opacity.md)
-          - [Visibility](reference/arkui-ts/ts-universal-attributes-visibility.md)
-          - [Enable/Disable](reference/arkui-ts/ts-universal-attributes-enable.md)
-          - [Overlay](reference/arkui-ts/ts-universal-attributes-overlay.md)
-          - [Z-order Control](reference/arkui-ts/ts-universal-attributes-z-order.md)
-          - [Transformation](reference/arkui-ts/ts-universal-attributes-transformation.md)
-          - [Image Effect Configuration](reference/arkui-ts/ts-universal-attributes-image-effect.md)
-          - [Shape Clipping](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md)
-          - [Text Style](reference/arkui-ts/ts-universal-attributes-text-style.md)
-          - [Grid](reference/arkui-ts/ts-universal-attributes-grid.md)
-          - [Gradient Color](reference/arkui-ts/ts-universal-attributes-gradient-color.md)
-          - [Popup Control](reference/arkui-ts/ts-universal-attributes-popup.md)
-          - [Menu Control](reference/arkui-ts/ts-universal-attributes-menu.md)
-          - [Click Control](reference/arkui-ts/ts-universal-attributes-click.md)
-          - [Focus Control](reference/arkui-ts/ts-universal-attributes-focus.md)
-          - [Hover Effect](reference/arkui-ts/ts-universal-attributes-hover-effect.md)
-          - [Component ID](reference/arkui-ts/ts-universal-attributes-component-id.md)
-          - [Touch Target](reference/arkui-ts/ts-universal-attributes-touch-target.md)
-          - [Polymorphic Style](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)
-        - Gesture Processing
-          - [Gesture Binding Methods](reference/arkui-ts/ts-gesture-settings.md)
-          - Basic Gestures
-            - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md)
-            - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md)
-            - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md)
-            - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md)
-            - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md)
-            - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md)
-          - [Combined Gestures](reference/arkui-ts/ts-combined-gestures.md)
-      - Basic Components
-        - [Blank](reference/arkui-ts/ts-basic-components-blank.md)
-        - [Button](reference/arkui-ts/ts-basic-components-button.md)
-        - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md)
-        - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md)
-        - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md)
-        - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md)
-        - [Divider](reference/arkui-ts/ts-basic-components-divider.md)
-        - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md)
-        - [Image](reference/arkui-ts/ts-basic-components-image.md)
-        - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md)
-        - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md)
-        - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md)
-        - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md)
-        - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md)
-        - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md)
-        - [Progress](reference/arkui-ts/ts-basic-components-progress.md)
-        - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md)
-        - [Radio](reference/arkui-ts/ts-basic-components-radio.md)
-        - [Rating](reference/arkui-ts/ts-basic-components-rating.md)
-        - [RichText](reference/arkui-ts/ts-basic-components-richtext.md)
-        - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md)
-        - [Search](reference/arkui-ts/ts-basic-components-search.md)
-        - [Select](reference/arkui-ts/ts-basic-components-select.md)
-        - [Slider](reference/arkui-ts/ts-basic-components-slider.md)
-        - [Span](reference/arkui-ts/ts-basic-components-span.md)
-        - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md)
-        - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md)
-        - [Text](reference/arkui-ts/ts-basic-components-text.md)
-        - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md)
-        - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md)
-        - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md)
-        - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md)
-        - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md)
-        - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md)
-        - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md)
-        - [Web](reference/arkui-ts/ts-basic-components-web.md)
-        - [XComponent](reference/arkui-ts/ts-basic-components-xcomponent.md)
-      - Container Components
-        - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md)
-        - [Badge](reference/arkui-ts/ts-container-badge.md)
-        - [Column](reference/arkui-ts/ts-container-column.md)
-        - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md)
-        - [Counter](reference/arkui-ts/ts-container-counter.md)
-        - [Flex](reference/arkui-ts/ts-container-flex.md)
-        - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md)
-        - [Grid](reference/arkui-ts/ts-container-grid.md)
-        - [GridItem](reference/arkui-ts/ts-container-griditem.md)
-        - [List](reference/arkui-ts/ts-container-list.md)
-        - [ListItem](reference/arkui-ts/ts-container-listitem.md)
-        - [Navigator](reference/arkui-ts/ts-container-navigator.md)     
-        - [Panel](reference/arkui-ts/ts-container-panel.md)
-        - [Refresh](reference/arkui-ts/ts-container-refresh.md)
-        - [Row](reference/arkui-ts/ts-container-row.md)
-        - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md)
-        - [Scroll](reference/arkui-ts/ts-container-scroll.md)
-        - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md)
-        - [Stack](reference/arkui-ts/ts-container-stack.md)
-        - [Swiper](reference/arkui-ts/ts-container-swiper.md)
-        - [Tabs](reference/arkui-ts/ts-container-tabs.md)
-        - [TabContent](reference/arkui-ts/ts-container-tabcontent.md)
-      - Media Components
-        - [Video](reference/arkui-ts/ts-media-components-video.md)
-      - Drawing Components
-        - [Circle](reference/arkui-ts/ts-drawing-components-circle.md)
-        - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md)
-        - [Line](reference/arkui-ts/ts-drawing-components-line.md)
-        - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md)
-        - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md)
-        - [Path](reference/arkui-ts/ts-drawing-components-path.md)
-        - [Rect](reference/arkui-ts/ts-drawing-components-rect.md)
-        - [Shape](reference/arkui-ts/ts-drawing-components-shape.md)
-      - Canvas Components
-        - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D](reference/arkui-ts/ts-canvasrenderingcontext2d.md)
-        - [OffscreenCanvasRenderingConxt2D](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md)
-        - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md)
-        - [Path2D](reference/arkui-ts/ts-components-canvas-path2d.md)
-        - [CanvasGradient](reference/arkui-ts/ts-components-canvas-canvasgradient.md)
-        - [ImageBitmap](reference/arkui-ts/ts-components-canvas-imagebitmap.md)
-        - [ImageData](reference/arkui-ts/ts-components-canvas-imagedata.md)
+    - Universal Component Information
+      - Universal Events
+        - [Click Event](reference/arkui-ts/ts-universal-events-click.md)
+        - [Touch Event](reference/arkui-ts/ts-universal-events-touch.md)
+        - [Show/Hide Event](reference/arkui-ts/ts-universal-events-show-hide.md)
+        - [Drag/Drop Event](reference/arkui-ts/ts-universal-events-drag-drop.md)
+        - [Key Event](reference/arkui-ts/ts-universal-events-key.md)
+        - [Focus Event](reference/arkui-ts/ts-universal-focus-event.md)
+        - [Mouse Event](reference/arkui-ts/ts-universal-mouse-key.md)
+        - [Component Area Change Event](reference/arkui-ts/ts-universal-component-area-change-event.md)
+        - [Visible Area Change Event](reference/arkui-ts/ts-universal-component-visible-area-change-event.md)
+      - Universal Attributes
+        - [Size](reference/arkui-ts/ts-universal-attributes-size.md)
+        - [Location](reference/arkui-ts/ts-universal-attributes-location.md)
+        - [Layout Constraints](reference/arkui-ts/ts-universal-attributes-layout-constraints.md)
+        - [Flex Layout](reference/arkui-ts/ts-universal-attributes-flex-layout.md)
+        - [Border](reference/arkui-ts/ts-universal-attributes-border.md)
+        - [Border Image](reference/arkui-ts/ts-universal-attributes-border-image.md)
+        - [Background](reference/arkui-ts/ts-universal-attributes-background.md)
+        - [Opacity](reference/arkui-ts/ts-universal-attributes-opacity.md)
+        - [Visibility](reference/arkui-ts/ts-universal-attributes-visibility.md)
+        - [Enable/Disable](reference/arkui-ts/ts-universal-attributes-enable.md)
+        - [Overlay](reference/arkui-ts/ts-universal-attributes-overlay.md)
+        - [Z-order Control](reference/arkui-ts/ts-universal-attributes-z-order.md)
+        - [Transformation](reference/arkui-ts/ts-universal-attributes-transformation.md)
+        - [Image Effect Configuration](reference/arkui-ts/ts-universal-attributes-image-effect.md)
+        - [Shape Clipping](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md)
+        - [Text Style](reference/arkui-ts/ts-universal-attributes-text-style.md)
+        - [Grid](reference/arkui-ts/ts-universal-attributes-grid.md)
+        - [Gradient Color](reference/arkui-ts/ts-universal-attributes-gradient-color.md)
+        - [Popup Control](reference/arkui-ts/ts-universal-attributes-popup.md)
+        - [Menu Control](reference/arkui-ts/ts-universal-attributes-menu.md)
+        - [Click Control](reference/arkui-ts/ts-universal-attributes-click.md)
+        - [Focus Control](reference/arkui-ts/ts-universal-attributes-focus.md)
+        - [Hover Effect](reference/arkui-ts/ts-universal-attributes-hover-effect.md)
+        - [Component ID](reference/arkui-ts/ts-universal-attributes-component-id.md)
+        - [Touch Target](reference/arkui-ts/ts-universal-attributes-touch-target.md)
+        - [Polymorphic Style](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)
+      - Gesture Processing
+        - [Gesture Binding Methods](reference/arkui-ts/ts-gesture-settings.md)
+        - Basic Gestures
+          - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md)
+          - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md)
+          - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md)
+          - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md)
+          - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md)
+          - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md)
+        - [Combined Gestures](reference/arkui-ts/ts-combined-gestures.md)
+    - Basic Components
+      - [Blank](reference/arkui-ts/ts-basic-components-blank.md)
+      - [Button](reference/arkui-ts/ts-basic-components-button.md)
+      - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md)
+      - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md)
+      - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md)
+      - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md)
+      - [Divider](reference/arkui-ts/ts-basic-components-divider.md)
+      - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md)
+      - [Image](reference/arkui-ts/ts-basic-components-image.md)
+      - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md)
+      - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md)
+      - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md)
+      - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md)
+      - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md)
+      - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md)
+      - [Progress](reference/arkui-ts/ts-basic-components-progress.md)
+      - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md)
+      - [Radio](reference/arkui-ts/ts-basic-components-radio.md)
+      - [Rating](reference/arkui-ts/ts-basic-components-rating.md)
+      - [RemoteWindow](reference/arkui-ts/ts-basic-components-remotewindow.md)
+      - [RichText](reference/arkui-ts/ts-basic-components-richtext.md)
+      - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md)
+      - [Search](reference/arkui-ts/ts-basic-components-search.md)
+      - [Select](reference/arkui-ts/ts-basic-components-select.md)
+      - [Slider](reference/arkui-ts/ts-basic-components-slider.md)
+      - [Span](reference/arkui-ts/ts-basic-components-span.md)
+      - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md)
+      - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md)
+      - [Text](reference/arkui-ts/ts-basic-components-text.md)
+      - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md)
+      - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md)
+      - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md)
+      - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md)
+      - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md)
+      - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md)
+      - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md)
+      - [Web](reference/arkui-ts/ts-basic-components-web.md)
+      - [XComponent](reference/arkui-ts/ts-basic-components-xcomponent.md)
+    - Container Components
+      - [AbilityComponent](reference/arkui-ts/ts-container-ability-component.md)
+      - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md)
+      - [Badge](reference/arkui-ts/ts-container-badge.md)
+      - [Column](reference/arkui-ts/ts-container-column.md)
+      - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md)
+      - [Counter](reference/arkui-ts/ts-container-counter.md)
+      - [Flex](reference/arkui-ts/ts-container-flex.md)
+      - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md)
+      - [Grid](reference/arkui-ts/ts-container-grid.md)
+      - [GridItem](reference/arkui-ts/ts-container-griditem.md)
+      - [List](reference/arkui-ts/ts-container-list.md)
+      - [ListItem](reference/arkui-ts/ts-container-listitem.md)
+      - [Navigator](reference/arkui-ts/ts-container-navigator.md)
+      - [Panel](reference/arkui-ts/ts-container-panel.md)
+      - [Refresh](reference/arkui-ts/ts-container-refresh.md)
+      - [RelativeContainer](reference/arkui-ts/ts-container-relativecontainer.md)
+      - [Row](reference/arkui-ts/ts-container-row.md)
+      - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md)
+      - [Scroll](reference/arkui-ts/ts-container-scroll.md)
+      - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md)
+      - [Stack](reference/arkui-ts/ts-container-stack.md)
+      - [Swiper](reference/arkui-ts/ts-container-swiper.md)
+      - [Tabs](reference/arkui-ts/ts-container-tabs.md)
+      - [TabContent](reference/arkui-ts/ts-container-tabcontent.md)
+    - Media Components
+      - [Video](reference/arkui-ts/ts-media-components-video.md)
+    - Drawing Components
+      - [Circle](reference/arkui-ts/ts-drawing-components-circle.md)
+      - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md)
+      - [Line](reference/arkui-ts/ts-drawing-components-line.md)
+      - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md)
+      - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md)
+      - [Path](reference/arkui-ts/ts-drawing-components-path.md)
+      - [Rect](reference/arkui-ts/ts-drawing-components-rect.md)
+      - [Shape](reference/arkui-ts/ts-drawing-components-shape.md)
+    - Canvas Components
+      - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md)
+      - [CanvasRenderingContext2D](reference/arkui-ts/ts-canvasrenderingcontext2d.md)
+      - [OffscreenCanvasRenderingConxt2D](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md)
+      - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md)
+      - [Path2D](reference/arkui-ts/ts-components-canvas-path2d.md)
+      - [CanvasGradient](reference/arkui-ts/ts-components-canvas-canvasgradient.md)
+      - [ImageBitmap](reference/arkui-ts/ts-components-canvas-imagebitmap.md)
+      - [ImageData](reference/arkui-ts/ts-components-canvas-imagedata.md)
     - Animation
-      - [Attribute Animation](reference/arkui-ts/ts-animatorproperty.md)
+      - [AnimatorProperty](reference/arkui-ts/ts-animatorproperty.md)
       - [Explicit Animation](reference/arkui-ts/ts-explicit-animation.md)
       - Transition Animation
         - [Page Transition](reference/arkui-ts/ts-page-transition-animation.md)
@@ -546,7 +460,7 @@
       - [Matrix Transformation](reference/arkui-ts/ts-matrix-transformation.md)
       - [Interpolation Calculation](reference/arkui-ts/ts-interpolation-calculation.md)
     - Global UI Methods
-      - Dialog Box
+      - Pop-up Window
         - [Alert Dialog Box](reference/arkui-ts/ts-methods-alert-dialog-box.md)
         - [Action Sheet](reference/arkui-ts/ts-methods-action-sheet.md)
         - [Custom Dialog Box](reference/arkui-ts/ts-methods-custom-dialog-box.md)
@@ -554,52 +468,160 @@
         - [Time Picker Dialog Box](reference/arkui-ts/ts-methods-timepicker-dialog.md)
         - [Text Picker Dialog Box](reference/arkui-ts/ts-methods-textpicker-dialog.md)
       - [Menu](reference/arkui-ts/ts-methods-menu.md)
-  - [Built-in Enums](reference/arkui-ts/ts-appendix-enums.md)
+    - [Built-in Enums](reference/arkui-ts/ts-appendix-enums.md)
+  - Component Reference (JavaScript-based Web-like Development Paradigm)
+    - Universal Component Information
+      - [Universal Attributes](reference/arkui-js/js-components-common-attributes.md)
+      - [Universal Styles](reference/arkui-js/js-components-common-styles.md)
+      - [Universal Events](reference/arkui-js/js-components-common-events.md)
+      - [Universal Methods](reference/arkui-js/js-components-common-methods.md)
+      - [Animation Styles](reference/arkui-js/js-components-common-animation.md)
+      - [Gradient Styles](reference/arkui-js/js-components-common-gradient.md)
+      - [Transition Styles](reference/arkui-js/js-components-common-transition.md)
+      - [Media Query](reference/arkui-js/js-components-common-mediaquery.md)
+      - [Custom Font Styles](reference/arkui-js/js-components-common-customizing-font.md)
+      - [Atomic Layout](reference/arkui-js/js-components-common-atomic-layout.md)
+    - Container Component
+      - [badge](reference/arkui-js/js-components-container-badge.md)
+      - [dialog](reference/arkui-js/js-components-container-dialog.md)
+      - [div](reference/arkui-js/js-components-container-div.md)
+      - [form](reference/arkui-js/js-components-container-form.md)
+      - [list](reference/arkui-js/js-components-container-list.md)
+      - [list-item](reference/arkui-js/js-components-container-list-item.md)
+      - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md)
+      - [panel](reference/arkui-js/js-components-container-panel.md)
+      - [popup](reference/arkui-js/js-components-container-popup.md)
+      - [refresh](reference/arkui-js/js-components-container-refresh.md)
+      - [stack](reference/arkui-js/js-components-container-stack.md)
+      - [stepper](reference/arkui-js/js-components-container-stepper.md)
+      - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md)
+      - [swiper](reference/arkui-js/js-components-container-swiper.md)
+      - [tabs](reference/arkui-js/js-components-container-tabs.md)
+      - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md)
+      - [tab-content](reference/arkui-js/js-components-container-tab-content.md)
+    - Basic Components
+      - [button](reference/arkui-js/js-components-basic-button.md)
+      - [chart](reference/arkui-js/js-components-basic-chart.md)
+      - [divider](reference/arkui-js/js-components-basic-divider.md)
+      - [image](reference/arkui-js/js-components-basic-image.md)
+      - [image-animator](reference/arkui-js/js-components-basic-image-animator.md)
+      - [input](reference/arkui-js/js-components-basic-input.md)
+      - [label](reference/arkui-js/js-components-basic-label.md)
+      - [marquee](reference/arkui-js/js-components-basic-marquee.md)
+      - [menu](reference/arkui-js/js-components-basic-menu.md)
+      - [option](reference/arkui-js/js-components-basic-option.md)
+      - [picker](reference/arkui-js/js-components-basic-picker.md)
+      - [picker-view](reference/arkui-js/js-components-basic-picker-view.md)
+      - [piece](reference/arkui-js/js-components-basic-piece.md)
+      - [progress](reference/arkui-js/js-components-basic-progress.md)
+      - [qrcode](reference/arkui-js/js-components-basic-qrcode.md)
+      - [rating](reference/arkui-js/js-components-basic-rating.md)
+      - [richtext](reference/arkui-js/js-components-basic-richtext.md)
+      - [search](reference/arkui-js/js-components-basic-search.md)
+      - [select](reference/arkui-js/js-components-basic-select.md)
+      - [slider](reference/arkui-js/js-components-basic-slider.md)
+      - [span](reference/arkui-js/js-components-basic-span.md)
+      - [switch](reference/arkui-js/js-components-basic-switch.md)
+      - [text](reference/arkui-js/js-components-basic-text.md)
+      - [textarea](reference/arkui-js/js-components-basic-textarea.md)
+      - [toolbar](reference/arkui-js/js-components-basic-toolbar.md)
+      - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md)
+      - [toggle](reference/arkui-js/js-components-basic-toggle.md)
+      - [web](reference/arkui-js/js-components-basic-web.md)
+      - [xcomponent](reference/arkui-js/js-components-basic-xcomponent.md)
+    - Media Components
+      - [video](reference/arkui-js/js-components-media-video.md)
+    - Canvas Components
+      - [canvas](reference/arkui-js/js-components-canvas-canvas.md)
+      - [CanvasRenderingContext2D](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md)
+      - [Image](reference/arkui-js/js-components-canvas-image.md)
+      - [CanvasGradient](reference/arkui-js/js-components-canvas-canvasgradient.md)
+      - [ImageData](reference/arkui-js/js-components-canvas-imagedata.md)
+      - [Path2D](reference/arkui-js/js-components-canvas-path2d.md)
+      - [ImageBitmap](reference/arkui-js/js-components-canvas-imagebitmap.md)
+      - [OffscreenCanvas](reference/arkui-js/js-components-canvas-offscreencanvas.md)
+      - [OffscreenCanvasRenderingContext2D](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md)
+    - Grid Components
+      - [Basic Concepts](reference/arkui-js/js-components-grid-basic-concepts.md)
+      - [grid-container](reference/arkui-js/js-components-grid-container.md)
+      - [grid-row](reference/arkui-js/js-components-grid-row.md)
+      - [grid-col](reference/arkui-js/js-components-grid-col.md)
+    - SVG Components
+      - [Universal Attributes](reference/arkui-js/js-components-svg-common-attributes.md)
+      - [svg](reference/arkui-js/js-components-svg.md)
+      - [rect](reference/arkui-js/js-components-svg-rect.md)
+      - [circle](reference/arkui-js/js-components-svg-circle.md)
+      - [ellipse](reference/arkui-js/js-components-svg-ellipse.md)
+      - [path](reference/arkui-js/js-components-svg-path.md)
+      - [line](reference/arkui-js/js-components-svg-line.md)
+      - [polyline](reference/arkui-js/js-components-svg-polyline.md)
+      - [polygon](reference/arkui-js/js-components-svg-polygon.md)
+      - [text](reference/arkui-js/js-components-svg-text.md)
+      - [tspan](reference/arkui-js/js-components-svg-tspan.md)
+      - [textPath](reference/arkui-js/js-components-svg-textpath.md)
+      - [animate](reference/arkui-js/js-components-svg-animate.md)
+      - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md)
+      - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md)
+    - Custom Components
+      - [Basic Usage](reference/arkui-js/js-components-custom-basic-usage.md)
+      - [Style Inheritance](reference/arkui-js/js-components-custom-style.md)
+      - [Custom Events](reference/arkui-js/js-components-custom-events.md)
+      - [props](reference/arkui-js/js-components-custom-props.md)
+      - [Event Parameter](reference/arkui-js/js-components-custom-event-parameter.md)
+      - [slot](reference/arkui-js/js-components-custom-slot.md)
+      - [Lifecycle Definition](reference/arkui-js/js-components-custom-lifecycle.md)
+    - [Data Type Attributes](reference/arkui-js/js-appendix-types.md)
   - APIs
+    - [API Reference Document Description](reference/apis/development-intro.md)
     - Ability Framework
-      - [@ohos.ability.dataUriUtils](reference/apis/js-apis-DataUriUtils.md)
-      - [@ohos.ability.errorCode ](reference/apis/js-apis-ability-errorCode.md)
-      - [@ohos.ability.wantConstant](reference/apis/js-apis-ability-wantConstant.md)
-      - [@ohos.application.Ability](reference/apis/js-apis-application-ability.md)
-      - [@ohos.application.AbilityConstant](reference/apis/js-apis-application-abilityConstant.md)
-      - [@ohos.application.abilityDelegatorRegistry](reference/apis/js-apis-abilityDelegatorRegistry.md)
-      - [@ohos.application.AbilityStage ](reference/apis/js-apis-application-abilitystage.md)
-      - [@ohos.application.appManager](reference/apis/js-apis-appmanager.md)
-      - [@ohos.application.Configuration](reference/apis/js-apis-configuration.md)
-      - [@ohos.application.ConfigurationConstant](reference/apis/js-apis-configurationconstant.md)
-      - [@ohos.ability.featureAbility](reference/apis/js-apis-featureAbility.md)
-      - [@ohos.application.formBindingData](reference/apis/js-apis-formbindingdata.md)
-      - [@ohos.application.FormExtension](reference/apis/js-apis-formextension.md)
-      - [@ohos.application.formError](reference/apis/js-apis-formerror.md)
-      - [@ohos.application.formHost](reference/apis/js-apis-formhost.md)
-      - [@ohos.application.formInfo](reference/apis/js-apis-formInfo.md)
-      - [@ohos.application.missionManager](reference/apis/js-apis-missionManager.md)
-      - [@ohos.application.formProvider](reference/apis/js-apis-formprovider.md)
-      - [@ohos.ability.particleAbility](reference/apis/js-apis-particleAbility.md)
-      - [@ohos.application.ServiceExtensionAbility](reference/apis/js-apis-service-extension-ability.md)
-      - [@ohos.application.StartOptions](reference/apis/js-apis-application-StartOptions.md)
-      - [@ohos.application.StaticSubscriberExtensionAbility](reference/apis/js-apis-application-staticSubscriberExtensionAbility.md)
-      - [@ohos.application.uriPermissionManager](reference/apis/js-apis-uripermissionmanager.md)
-      - [@ohos.application.Want](reference/apis/js-apis-application-Want.md)
-      - [@ohos.wantAgent](reference/apis/js-apis-wantAgent.md)
-      - [dataAbilityHelper](reference/apis/js-apis-dataAbilityHelper.md)
-      - [context](reference/apis/js-apis-Context.md)
-      - [AbilityContext](reference/apis/js-apis-ability-context.md)
-      - [abilityDelegator](reference/apis/js-apis-application-abilityDelegator.md)
-      - [abilityDelegatorArgs](reference/apis/js-apis-application-abilityDelegatorArgs.md)
-      - [abilityMonitor](reference/apis/js-apis-application-abilityMonitor.md)
-      - [AbilityRunningInfo](reference/apis/js-apis-abilityrunninginfo.md)
-      - [AbilityStageContext](reference/apis/js-apis-abilitystagecontext.md)
-      - [Context](reference/apis/js-apis-application-context.md)
-      - [ExtensionContext](reference/apis/js-apis-extension-context.md)
-      - [ExtensionRunningInfo](reference/apis/js-apis-extensionrunninginfo.md)
-      - [FormExtensionContext](reference/apis/js-apis-formextensioncontext.md)
-      - [MissionSnapshot](reference/apis/js-apis-application-MissionSnapshot.md)
-      - [PermissionRequestResult](reference/apis/js-apis-permissionrequestresult.md)
-      - [ProcessRunningInfo](reference/apis/js-apis-processrunninginfo.md)
-      - [ServiceExtensionContext](reference/apis/js-apis-service-extension-context.md) 
-      - [shellCmdResult](reference/apis/js-apis-application-shellCmdResult.md)
-  - Common Event and Notification
+      - FA Model
+        - [@ohos.ability.featureAbility](reference/apis/js-apis-featureAbility.md)
+        - [@ohos.ability.particleAbility](reference/apis/js-apis-particleAbility.md)
+        - [dataAbilityHelper](reference/apis/js-apis-dataAbilityHelper.md)
+        - [context](reference/apis/js-apis-Context.md)
+      - Stage Model
+        - [@ohos.application.Ability](reference/apis/js-apis-application-ability.md)
+        - [@ohos.application.AbilityConstant](reference/apis/js-apis-application-abilityConstant.md)
+        - [@ohos.application.AbilityStage](reference/apis/js-apis-application-abilitystage.md)
+        - [@ohos.application.abilityLifecycleCallback](reference/apis/js-apis-application-abilityLifecycleCallback.md)
+        - [@ohos.application.DataShareExtensionAbility](reference/apis/js-apis-application-DataShareExtensionAbility.md)
+        - [@ohos.application.FormExtension](reference/apis/js-apis-formextension.md)
+        - [@ohos.application.ServiceExtensionAbility](reference/apis/js-apis-service-extension-ability.md)
+        - [@ohos.application.StartOptions](reference/apis/js-apis-application-StartOptions.md)
+        - [@ohos.application.StaticSubscriberExtensionAbility](reference/apis/js-apis-application-staticSubscriberExtensionAbility.md)
+        - [AbilityContext](reference/apis/js-apis-ability-context.md)
+        - [ApplicationContext](reference/apis/js-apis-application-applicationContext.md)
+        - [AbilityStageContext](reference/apis/js-apis-abilitystagecontext.md)
+        - [Context](reference/apis/js-apis-application-context.md)
+        - [ExtensionContext](reference/apis/js-apis-extension-context.md)
+        - [FormExtensionContext](reference/apis/js-apis-formextensioncontext.md)
+        - [PermissionRequestResult](reference/apis/js-apis-permissionrequestresult.md)
+        - [ServiceExtensionContext](reference/apis/js-apis-service-extension-context.md)
+      - FA and Stage Models
+        - [@ohos.ability.dataUriUtils](reference/apis/js-apis-DataUriUtils.md)
+        - [@ohos.ability.errorCode](reference/apis/js-apis-ability-errorCode.md)
+        - [@ohos.ability.wantConstant](reference/apis/js-apis-ability-wantConstant.md)
+        - [@ohos.application.abilityDelegatorRegistry](reference/apis/js-apis-abilityDelegatorRegistry.md)
+        - [@ohos.application.appManager](reference/apis/js-apis-appmanager.md)
+        - [@ohos.application.Configuration](reference/apis/js-apis-configuration.md)
+        - [@ohos.application.ConfigurationConstant](reference/apis/js-apis-configurationconstant.md)
+        - [@ohos.application.formBindingData](reference/apis/js-apis-formbindingdata.md)
+        - [@ohos.application.formError](reference/apis/js-apis-formerror.md)
+        - [@ohos.application.formHost](reference/apis/js-apis-formhost.md)
+        - [@ohos.application.formInfo](reference/apis/js-apis-formInfo.md)
+        - [@ohos.application.missionManager](reference/apis/js-apis-missionManager.md)
+        - [@ohos.application.formProvider](reference/apis/js-apis-formprovider.md)
+        - [@ohos.application.Want](reference/apis/js-apis-application-Want.md)
+        - [@ohos.wantAgent](reference/apis/js-apis-wantAgent.md)
+        - [abilityDelegator](reference/apis/js-apis-application-abilityDelegator.md)
+        - [abilityDelegatorArgs](reference/apis/js-apis-application-abilityDelegatorArgs.md)
+        - [abilityMonitor](reference/apis/js-apis-application-abilityMonitor.md)
+        - [AbilityRunningInfo](reference/apis/js-apis-abilityrunninginfo.md)
+        - [ExtensionRunningInfo](reference/apis/js-apis-extensionrunninginfo.md)
+        - [MissionSnapshot](reference/apis/js-apis-application-MissionSnapshot.md)
+        - [ProcessRunningInfo](reference/apis/js-apis-processrunninginfo.md)
+        - [shellCmdResult](reference/apis/js-apis-application-shellCmdResult.md)
+    - Common Event and Notification
       - [@ohos.commonEvent](reference/apis/js-apis-commonEvent.md)
       - [@ohos.events.emitter](reference/apis/js-apis-emitter.md)
       - [@ohos.notification](reference/apis/js-apis-notification.md)
@@ -607,15 +629,25 @@
       - [EventHub](reference/apis/js-apis-eventhub.md)
     - Bundle Management
       - [@ohos.bundle](reference/apis/js-apis-Bundle.md)
-      - [@ohos.bundleState ](reference/apis/js-apis-deviceUsageStatistics.md)
+      - [@ohos.bundle.defaultAppManager](reference/apis/js-apis-bundle-defaultAppManager.md)
+      - [@ohos.bundleState](reference/apis/js-apis-deviceUsageStatistics.md)
       - [@ohos.zlib](reference/apis/js-apis-zlib.md)
+      - [AbilityInfo](reference/apis/js-apis-bundle-AbilityInfo.md)
+      - [ApplicationInfo](reference/apis/js-apis-bundle-ApplicationInfo.md)
+      - [BundleInfo](reference/apis/js-apis-bundle-BundleInfo.md)
+      - [CustomizeData](reference/apis/js-apis-bundle-CustomizeData.md)
+      - [ElementName](reference/apis/js-apis-bundle-ElementName.md)
+      - [ExtensionAbilityInfo](reference/apis/js-apis-bundle-ExtensionAbilityInfo.md)
+      - [HapModuleInfo](reference/apis/js-apis-bundle-HapModuleInfo.md)
+      - [Metadata](reference/apis/js-apis-bundle-Metadata.md)
+      - [ModuleInfo](reference/apis/js-apis-bundle-ModuleInfo.md)
     - UI Page
       - [@ohos.animator](reference/apis/js-apis-animator.md)
       - [@ohos.mediaquery](reference/apis/js-apis-mediaquery.md)
       - [@ohos.prompt](reference/apis/js-apis-prompt.md)
       - [@ohos.router](reference/apis/js-apis-router.md)
     - Graphics
-      - [@ohos.display ](reference/apis/js-apis-display.md)
+      - [@ohos.display](reference/apis/js-apis-display.md)
       - [@ohos.screenshot](reference/apis/js-apis-screenshot.md)
       - [@ohos.window](reference/apis/js-apis-window.md)
       - [webgl](reference/apis/js-apis-webgl.md)
@@ -630,25 +662,30 @@
       - [@ohos.i18n](reference/apis/js-apis-i18n.md)
       - [@ohos.intl](reference/apis/js-apis-intl.md)
       - [@ohos.resourceManager](reference/apis/js-apis-resource-manager.md)
-    - Resource Scheduling 
+    - Resource Scheduling
       - [@ohos.backgroundTaskManager](reference/apis/js-apis-backgroundTaskManager.md)
-      - [@ohos.workScheduler ](reference/apis/js-apis-workScheduler.md)
+      - [@ohos.workScheduler](reference/apis/js-apis-workScheduler.md)
       - [@ohos.WorkSchedulerExtensionAbility](reference/apis/js-apis-WorkSchedulerExtensionAbility.md)
     - Custom Management
       - [@ohos.configPolicy](reference/apis/js-apis-config-policy.md)
       - [@ohos.enterpriseDeviceManager](reference/apis/js-apis-enterprise-device-manager.md)
+      - [@ohos.EnterpriseAdminExtensionAbility](reference/apis/js-apis-EnterpriseAdminExtensionAbility.md)
     - Security
       - [@ohos.abilityAccessCtrl](reference/apis/js-apis-abilityAccessCtrl.md)
-      - [@ohos.security.huks ](reference/apis/js-apis-huks.md)
-      - [@ohos.userIAM.userAuth ](reference/apis/js-apis-useriam-userauth.md)
+      - [@ohos.privacyManager](reference/apis/js-apis-privacyManager.md)
+      - [@ohos.security.huks](reference/apis/js-apis-huks.md)
+      - [@ohos.userIAM.userAuth](reference/apis/js-apis-useriam-userauth.md)
       - [@system.cipher](reference/apis/js-apis-system-cipher.md)
     - Data Management
-      - [@ohos.data.dataAbility ](reference/apis/js-apis-data-ability.md)
+      - [@ohos.data.dataAbility](reference/apis/js-apis-data-ability.md)
+      - [@ohos.data.dataShare](reference/apis/js-apis-data-dataShare.md)
+      - [@ohos.data.dataSharePredicates](reference/apis/js-apis-data-dataSharePredicates.md)
+      - [@ohos.data.dataShareResultSet](reference/apis/js-apis-data-DataShareResultSet.md)
       - [@ohos.data.distributedData](reference/apis/js-apis-distributed-data.md)
       - [@ohos.data.distributedDataObject](reference/apis/js-apis-data-distributedobject.md)
       - [@ohos.data.preferences](reference/apis/js-apis-data-preferences.md)
       - [@ohos.data.rdb](reference/apis/js-apis-data-rdb.md)
-      - [@ohos.settings](reference/apis/js-apis-settings.md)
+      - [@ohos.data.ValuesBucket](reference/apis/js-apis-data-ValuesBucket.md)
       - [resultSet](reference/apis/js-apis-data-resultset.md)
     - File Management
       - [@ohos.document](reference/apis/js-apis-document.md)
@@ -658,7 +695,8 @@
       - [@ohos.statfs](reference/apis/js-apis-statfs.md)
       - [@ohos.storageStatistics](reference/apis/js-apis-storage-statistics.md)
       - [@ohos.volumeManager](reference/apis/js-apis-volumemanager.md)
-    - Telephony
+      - [@ohos.securityLabel](reference/apis/js-apis-securityLabel.md)
+    - Telephony Service
       - [@ohos.contact](reference/apis/js-apis-contact.md)
       - [@ohos.telephony.call](reference/apis/js-apis-call.md)
       - [@ohos.telephony.observer](reference/apis/js-apis-observer.md)
@@ -671,10 +709,13 @@
       - [@ohos.net.http](reference/apis/js-apis-http.md)
       - [@ohos.request](reference/apis/js-apis-request.md)
       - [@ohos.net.socket](reference/apis/js-apis-socket.md)
-      - [@ohos.net.webSocket](reference/apis/js-apis-webSocket.md) 
+      - [@ohos.net.webSocket](reference/apis/js-apis-webSocket.md)
     - Connectivity
       - [@ohos.bluetooth](reference/apis/js-apis-bluetooth.md)
       - [@ohos.connectedTag](reference/apis/js-apis-connectedTag.md)
+      - [@ohos.nfc.cardEmulation](reference/apis/js-apis-cardEmulation.md)
+      - [@ohos.nfc.controller](reference/apis/js-apis-nfcController.md)
+      - [@ohos.nfc.tag](reference/apis/js-apis-nfcTag.md)
       - [@ohos.rpc](reference/apis/js-apis-rpc.md)
       - [@ohos.wifi](reference/apis/js-apis-wifi.md)
       - [@ohos.wifiext](reference/apis/js-apis-wifiext.md)
@@ -685,6 +726,7 @@
       - [@ohos.hichecker](reference/apis/js-apis-hichecker.md)
       - [@ohos.hidebug](reference/apis/js-apis-hidebug.md)
       - [@ohos.hilog](reference/apis/js-apis-hilog.md)
+      - [@ohos.hiSysEvent](reference/apis/js-apis-hisysevent.md)
       - [@ohos.hiTraceChain](reference/apis/js-apis-hitracechain.md)
       - [@ohos.hiTraceMeter](reference/apis/js-apis-hitracemeter.md)
       - [@ohos.inputMethod](reference/apis/js-apis-inputmethod.md)
@@ -695,18 +737,24 @@
       - [@ohos.wallpaper](reference/apis/js-apis-wallpaper.md)
       - [Timer](reference/apis/js-apis-timer.md)
     - Device Management
-      - [@ohos.batteryInfo ](reference/apis/js-apis-battery-info.md)
+      - [@ohos.batteryInfo](reference/apis/js-apis-battery-info.md)
       - [@ohos.brightness](reference/apis/js-apis-brightness.md)
       - [@ohos.deviceInfo](reference/apis/js-apis-device-info.md)
       - [@ohos.distributedHardware.deviceManager](reference/apis/js-apis-device-manager.md)
       - [@ohos.geolocation](reference/apis/js-apis-geolocation.md)
       - [@ohos.multimodalInput.inputConsumer](reference/apis/js-apis-inputconsumer.md)
       - [@ohos.multimodalInput.inputDevice](reference/apis/js-apis-inputdevice.md)
+      - [@ohos.multimodalInput.inputEvent](reference/apis/js-apis-inputevent.md)
       - [@ohos.multimodalInput.inputEventClient](reference/apis/js-apis-inputeventclient.md)
       - [@ohos.multimodalInput.inputMonitor](reference/apis/js-apis-inputmonitor.md)
+      - [@ohos.multimodalInput.keyCode](reference/apis/js-apis-keycode.md)
+      - [@ohos.multimodalInput.keyEvent](reference/apis/js-apis-keyevent.md)
+      - [@ohos.multimodalInput.mouseEvent](reference/apis/js-apis-mouseevent.md)
+      - [@ohos.multimodalInput.touchEvent](reference/apis/js-apis-touchevent.md)
       - [@ohos.power](reference/apis/js-apis-power.md)
       - [@ohos.runningLock](reference/apis/js-apis-runninglock.md)
       - [@ohos.sensor](reference/apis/js-apis-sensor.md)
+      - [@ohos.settings](reference/apis/js-apis-settings.md)
       - [@ohos.systemParameter](reference/apis/js-apis-system-parameter.md)
       - [@ohos.thermal](reference/apis/js-apis-thermal.md)
       - [@ohos.update](reference/apis/js-apis-update.md)
diff --git a/en/contribute/OpenHarmony-hdf-coding-guide.md b/en/contribute/OpenHarmony-hdf-coding-guide.md
index 84deab62a8cea60e9cd9febfe50ab8df0b3dc2f7..2349d0148c5b4c2bd3128afbe5e4b5f026ae5222 100644
--- a/en/contribute/OpenHarmony-hdf-coding-guide.md
+++ b/en/contribute/OpenHarmony-hdf-coding-guide.md
@@ -190,7 +190,7 @@ root {
 
 [Description] The HDF places the same type of devices in the same host. You can develop and deploy the driver functionalities of the host by layer, so that one driver has multiple nodes. The following figure shows the HDF driver model.
 
-![HDFDriverModel.png]( ../device-dev/driver/figures/HDFDriverModel.png)
+![hdf-driver-model.png]( ../device-dev/driver/figures/hdf-driver-model.png)
 
 Place devices of the same type in the same host. When adding a device, check whether the host of the same type already exists. If such a host already exists, configure the device in the host. Do not configure the same host again. A device belongs to only one driver. Therefore, do not configure the same device in different hosts.
 
diff --git a/en/contribute/documentation-contribution.md b/en/contribute/documentation-contribution.md
index 8a5eb74e52b929e155418875cef25dfde9ebdc15..430587fe0ffa3386cf17d64f49af4f9d7f1e2bd4 100755
--- a/en/contribute/documentation-contribution.md
+++ b/en/contribute/documentation-contribution.md
@@ -17,7 +17,7 @@ OpenHarmony has the right to modify the adopted content according to the communi
 
 [Creative Commons License version 4.0](https://creativecommons.org/licenses/by/4.0/legalcode)
 
-## Contribution Methods<a name = contribution-methods></a>
+## Contribution Methods
 
 ### Submitting Issues for Existing Documents
 
@@ -65,7 +65,7 @@ You are welcome to contribute documents to the release. For details, see [Writin
 
 You are welcome to share your experience and expertise with other developers to help them get started. For example, you can contribute tutorials and FAQs by using the following templates:
 
--   [Tutorial Template](template/tutorial-template.md). You can contribute tutorials in the `contribute/tutorial` folder.
--   [FAQ Template](template/faq-template.md). You can contribute FAQs in the `contribute/faqs` folder.
+-   [Tutorial Template](https://gitee.com/openharmony/docs/blob/master/en/contribute/template/tutorial-template.md). You can contribute tutorials in the `contribute/tutorial` folder.
+-   [FAQ Template](https://gitee.com/openharmony/docs/blob/master/en/contribute/template/faq-template.md). You can contribute FAQs in the `contribute/faqs` folder.
 
 More writing templates are available in the **contribute** folder in the **Docs** repository.
diff --git a/en/contribute/template/concept-overview-template.md b/en/contribute/template/concept-overview-template.md
deleted file mode 100644
index 76b46ec93252db454751976d43397c821ea20f4e..0000000000000000000000000000000000000000
--- a/en/contribute/template/concept-overview-template.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# Overview Template
-
-## Basic Concepts
-
-***[Writing Requirements]***
-
-*Mandatory. Describe basic concepts related to a development task to help developers better understand the task. The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
-
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Common concepts in the industry are not described.|  |
-| Common terms in the industry, rather than internal terms, are used.|  |
-
-
-***[Example]***
-
-
-The XX system provides the audio module for your application to implement audio-related features, including audio playback, recording, and volume management.
-
-
-It is considered good practice that you understand the following concepts before starting application development:
-
-
-- Sampling
-  Sampling is a process where analog signals are converted into digital signals that can be represented by 0101.
-
-- Sampling rate
-  Sampling rate is the number of samples extracted from a continuous signal per second to form a discrete signal. It is measured in Hz. Generally, human hearing range is from 20 Hz to 20 kHz. Common audio sampling rates include 8 kHz, 11.025 kHz, 22.05 kHz, 16 kHz, 37.8 kHz, 44.1 kHz, 48 kHz, 96 kHz, and 192 kHz.
-
-- Channel
-  Channels refer to different spatial positions where independent audio signals are recorded or played. The number of channels is the number of audio sources used during audio recording, or the number of speakers used for audio playback.
-
-- Audio frame
-  Audio data is in stream form. For the convenience of audio algorithm processing and transmission, it is generally agreed that a data amount in a unit of 2.5 to 60 milliseconds is one audio frame. This unit is called sampling time, and its length is specific to codecs and the application requirements.
-
-
-## Working Principles
-
-***[Writing Requirements]***
-
-*Optional. You can delete this section if the working principles are simple and the basic concepts in the **Overview** section are enough for understanding.*  
-
-*Describe the implementation principles, for example, the time for calling the APIs and triggering callbacks related to key steps, to help developers better understand the basic operation principles, carry out development tasks, and locate problems.*  
-
-*The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
-
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Only principles related to the development task are described.|  |
-| Supplementary graphics are used, such as sequence diagrams and flowcharts. The text description is consistent with the figure description.|  |
-
-***[Example 1]***
-
-- Semaphore initialization: The system allocates memory for the semaphores configured (the value of *N* can be configured by users and is limited by the memory), initializes all semaphores to be unused semaphores, and adds them to a linked list for the system to use.
-
-- Semaphore creation: The system obtains a semaphore from the linked list of unused semaphores and assigns an initial value to the semaphore.
-
-- Semaphore request: If the counter value is greater than 0, the system allocates a semaphore, decreases the value by 1, and returns a success message. Otherwise, the system blocks the task and adds the task to the end of a task queue waiting for semaphores. The wait timeout period can be set.
-
-- When a semaphore is released, if there is no task waiting for it, the counter is increased by 1. Otherwise, the first task in the wait queue is woken up.
-
-- Semaphore deletion: The system sets a semaphore in use to the unused state and inserts it to the linked list of unused semaphores.
-
-- Semaphore allows only a specified number of tasks to access a shared resource at a time. When the number of tasks accessing the resource reaches the limit, other tasks will be blocked until the semaphore is released.
-  
-
-***[Example 2]***
-
-**Working Principles of Mutexes**
-
-In a multi-task environment, multiple tasks may access the same shared resource. However, certain shared resources are not shared, and can only be accessed exclusively by tasks. A mutex can be used to address this issue.
-
-When non-shared resources are accessed by a task, the mutex is locked. Other tasks will be blocked until the mutex is released by the task. The mutex allows only one task to access the shared resources at a time, ensuring integrity of operations on the shared resources.
-
-
-
-## Limitations and Constraints
-
-***[Writing Requirements]***
-
-*Mandatory. Describe the constraints of the development task and the negative impact of the constraints, including but not limited to the following:*
-
-- ***Function Limitations***
-  - *Application scope of the function (specify scenarios that are not supported)*
-  - *Specification limitations*
-
-- ***Operation Limitations***
-
-  - *Operations on known issues*
-  - *Potentially risky operations (such as performance deterioration)*
-  - *Operations that may cause performance deterioration*
-
-*The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*
-
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| The function limitations or operation restrictions are clearly specified.|  |
-| Only constraints that affect task development or user experience are described.|  |
-| Operations that are prone to errors are described in the procedure but not described in this section.|  |
-
-***[Example]***
-
-**Limitations and Constraints on Mutexes:**
-
-- Two tasks cannot lock the same mutex. If a task attempts to lock a mutex held by another task, the task will be blocked until the mutex is unlocked.
-
-- Mutexes cannot be used in the interrupt service program.
-
-- When using the LiteOS-A kernel, the xx system must ensure real-time task scheduling and avoid long-time task blocking. Therefore, a mutex must be released as soon as possible.
-
-- When a mutex is held by a task, the task priority cannot be changed by using APIs such as **LOS_TaskPriSet**.
diff --git a/en/contribute/template/figures/how-distributedobject-works.png b/en/contribute/template/figures/how-distributedobject-works.png
new file mode 100644
index 0000000000000000000000000000000000000000..33785a3fd4c66624b298b1aa36959dbf635d2343
Binary files /dev/null and b/en/contribute/template/figures/how-distributedobject-works.png differ
diff --git a/en/contribute/template/guide-template.md b/en/contribute/template/guide-template.md
index 90b5133d0817050586903c8514ddb5e2b838a324..c497b984ff363a56376a5e1d470a177d9e540003 100644
--- a/en/contribute/template/guide-template.md
+++ b/en/contribute/template/guide-template.md
@@ -1,158 +1,405 @@
-# Development Guidelines
+# Development Guide Writing Template
 
-***[Writing Requirements]***
 
+> **NOTE**
+>
+> *1. This template provides the recommended development guide document framework and writing instructions for typical knowledge points. In your writing, complete the development task scenario analysis and development guide outline design based on the specific **solution/feature/function/module**, and then write the content based on this template.*
+>
+> *2. Do not add any content between level-1 title (marked with #) and level-2 title (marked with ##).*
+>
+> *3. Delete all the writing instructions in italics from your formal documents.*
+
+
+## *Example* Overview
+
+*Mandatory. Based on the scenario division of the solution/feature/function/module, you need to provide either "Example Overview" or "Example Task Scenario Overview", or both of them.*
+
+*1. "Example Overview" provides an overview that is common to all task scenarios of this solution/feature/function/module and that developers need to understand. If there is nothing in common, delete it.*
+
+*2. "Example Task Scenario Overview" describes the contents directly related to a task scenario. The knowledge points and key writing points are the same as those in "Example Overview". In this section, you need to introduce this specific task scenario and describe basic concepts, working principles, constraints, and samples that are directly related to the task scenario. If there is no specific task scenario, delete it.*
+
+***[General Instructions for Writing the Development Guide]***
+
+***1. Target audience**: internal and external developers (including product managers). Guidelines for UX designers are usually carried by UX design specifications and are not covered in the development guide. If UX design specifications need to be mentioned in the development guide, use hyperlinks.*
+
+***2. Content positioning**: Introduce what the solution/feature/function/module is, why it is required, and how to design, develop, and release related applications/devices. The development guide aims to help developers learn necessary knowledge and achieve specified task objectives in actual development activities.*
 
-*Mandatory. Describe how a developer completes tasks in a specific scenario. Include one scenario in each section. The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
+***3. User-oriented****: Always provide developer-concerned, perceptible, and useful content from the perspective of developers.*
 
+***4. Task-oriented****: Focus on actual tasks of developers, and provide complete, correct guidance that is easy to follow.*
 
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Each section covers only one scenario. If there are multiple scenarios, provide development guidelines for each scenario in separate sections. For example, you can use the following sections in **Audio**: **Development Guidelines on Audio Playback**, **Development Guidelines on Volume Management**, and **Development Guidelines on Sound Playback**.|  |
-| Use verbs + nouns to describe task operations in titles.|  |
+*5. This template only provides the basic document framework. You can adjust the content based on the actual requirements.*
 
 
-## When to Use
+### Introduction
+
+*Mandatory.*
+
+***[Developers' Concerns]***
+
+*What is the solution/feature/function/module (definition)? What problems can it solve or what benefits can it bring (purpose/customer benefits - why)? *
+
+***[Key Writing Points]***
+
+- *Provide easy-to-understand and scenario-specific descriptions. Refer to the SCQA method below to introduce the scenarios and characteristics of the solution/feature/function/module.*
+  - *S: situation. Introduce a familiar scenario.*
+  - *C: complication. Describe the conflict between the situation and requirement.*
+  - *Q: question. Ask a question. What can I do in such a case?*
+  - *A: answer. Describe the solution.*
+
+- *Visualize abstract concepts. You can provide content from the perspective of consumers for better understanding, for example, scenario effect in UX.*
 
 ***[Writing Requirements]***
 
-*Mandatory. Describe in which scenario, what problem is solved, and what the final effect is. Use the SCQA method.*
+- *Provide clear content. Avoid vague, obscure, and ambiguous expressions.*
+
+- *Use only necessary terms, acronyms, abbreviations, and proper nouns, and provide explanations or links to the glossary.*
+
+- *Use consistent terms, acronyms, abbreviations, and proper nouns throughout the document.*
+
 
-- *S: situation. Introduce a familiar scenario.*
+### Basic Concepts
 
-- *C: complication. Describe the conflict between the situation and requirement.*
+*Optional. Describe the basic concepts that are common to all task scenarios.*
 
-- *Q: question. Ask a question. What can I do in such a case?*
+***[Developers' Concerns]***
 
-- *A: answer. Describe the solution.*
+*What are the unique concepts that I need to know when using the solution/feature/function/module?*
 
-*The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
+***[Key Writing Points]***
 
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Clearly describe the background, what operations are done when and where, what problems are solved, and what benefits are delivered.|  |
+- *Provide only the concepts that are mandatory in development tasks.*
+
+- *Describe here concepts used in multiple chapters such as the operation mechanism, restrictions, and development process. If a concept is used only in a chapter, describe the concept in that chapter only.*
+
+- *Do not describe common concepts in the industry. Use common terms in the industry instead of jargon.*
+
+- *If there are logical relationships between concepts, you are advised to use figures to describe the relationships.*
+
+***[Writing Requirements]***
+
+- *Provide clear content. Avoid vague, obscure, and ambiguous expressions.*
+
+- *Use only necessary terms, acronyms, abbreviations, and proper nouns, and provide explanations or links to the glossary.*
+
+- *Use consistent terms, acronyms, abbreviations, and proper nouns throughout the document.*
 
 ***[Example]***
 
-You can use APIs described in this section to convert audio data into audible analog signals, play the audio signals using output devices, and manage playback tasks.
+Before developing relational databases, you must understand the following basic concepts:
+
+- **RDB**
+  
+A type of database based on the relational model of data. The RDB stores data in rows and columns. An RDB is also called RDB store.
+  
+- **Predicate**
+
+  Property or feature of a data entity, or the relationship between data entities. It is mainly used to define operation conditions.
+
+- **Result set**
+
+  A set of query results used to access the data. You can access the required data in a result set in flexible modes.
+
+
+### Working Principles
+
+*Optional. Describe the working principles that are common to all task scenarios.*
+
+***[Developers' Concerns]***
+
+*How does the solution/feature/function/module work? What are the API calling and triggering time of key steps? I want to understand its principles for better use and debugging.*
 
+***[Key Writing Points]***
 
-## Available APIs
+- *If the principle is simple and can be understood from the content under "Basic Concepts", do not provide this section.*
+
+- *Describe only the mechanisms and principles that are visible in the development tasks (use or access). Do not provide internal implementation that is invisible to developers.*
+
+- *If necessary, use sequence diagrams and flowcharts. Ensure that the text description matches the figure description.*
+
+- *Be careful not to disclose internal information.*
 
 ***[Writing Requirements]***
 
-*Mandatory. Describe APIs involved in the development guideline to help developers have a general understanding of the APIs, thereby improving development efficiency. The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
+- *Provide clear content. Avoid vague, obscure, and ambiguous expressions.*
+
+- *Use only necessary terms, acronyms, abbreviations, and proper nouns, and provide explanations or links to the glossary.*
+
+- *Use consistent terms, acronyms, abbreviations, and proper nouns throughout the document.*
+
+***[Example]***
+
+The distributed data objects are encapsulated into JS objects in distributed in-memory databases, which allows the distributed data objects to be operated in the same way as local variables. The system automatically implements cross-device data synchronization.
+
+**Figure 1** Working mechanism
 
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Include only APIs relevant to the development task.|  |
-| If there are more than 10 APIs, you can provide only main APIs.|  |
+![how-distributedobject-works](figures/how-distributedobject-works.png)
+
+
+### Constraints
+
+*Optional. Describe constraints that are common to all task scenarios.*
+
+***[Developers' Concerns]***
+
+*What are the constraints for using the solution/feature/function/module? How well is the solution/feature/function/module implemented? Can it meet my requirements?*
+
+***[Key Writing Points]***
+
+- *Describe perceptible constraints that affect development activities, including but not limited to the following:*
+  - ***Function constraints***
+     - *Application scope of the solution/feature/function/module (Specify scenarios that are not supported.)*
+     - *Specification constraints*
+  - ***Operation constraints***
+     - *Operations on known issues*
+     - *Potentially risky operations (such as performance deterioration)*
+
+- *Describe operations that are prone to errors in the procedure, but not in this section.*
 
 ***[Example]***
 
-The **AudioRenderer** class provides open audio playback capabilities. For details about the APIs, see the API reference.
+- Data synchronization can be implemented across devices only for the applications with the same bundleName.
+
+- Each distributed data object occupies 100 KB to 150 KB of memory. Therefore, you are advised not to create too many distributed data objects.
 
-**Table 1** Audio playback APIs
+- The maximum size of a distributed data object is 500 KB.
 
-| API| Description|
-| -------- | -------- |
-| AudioRenderer(AudioRendererInfo audioRendererInfo, PlayMode pm) throws IllegalArgumentException | A constructor used to create an **AudioRenderer** instance based on the specified playback parameters, the specified playback mode, and the default playback device.|
-| AudioRenderer(AudioRendererInfo audioRendererInfo, PlayMode pm, AudioDeviceDescriptor outputDevice) throws IllegalArgumentException | A constructor used to create an **AudioRenderer** instance based on the specified playback parameters, playback mode, and playback device.|
-| boolean play() | Plays audio streams.|
-| boolean write(byte[] data, int offset, int size) | Writes audio data in the specified byte array into an audio receiver for playback.|
 
+### Samples
 
-## How to Develop
+*Optional. Provide samples that are common to all task scenarios.*
+
+***[Developers' Concerns]***
+
+*What sample code, codelabs, and demo projects are available?*
+
+***[Key Writing Points]***
+
+*Provide links (generally Gitee links) to the released sample code, codelabs, and demo projects. Do not include project packages into the document as an attachment.*
+
+***[Example]***
+
+The following sample is provided to help you better understand how to develop abilities:
+
+- [Intra- and Inter-page Navigation](https://gitee.com/openharmony/codelabs/tree/master/Ability/PageAbility)
+
+
+## Setting Up the Environment
+
+*Optional.*
+
+*Based on the analysis and breakdown of a specific task scenario, you can place the environment setup content under "Prerequisites" or "Preparations" and close to the "How to Develop" of the specific scenario.*
+
+*Specify how to prepare the development environment, including software and hardware configuration requirements, tool requirements, and device requirements.*
+
+*Delete this section if no special requirements are involved.*
+
+
+### Environment Requirements
 
 ***[Writing Requirements]***
 
- *Mandatory. Describe the overall process to help developers quickly complete the task. The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.*  
-
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| **Writing a Development Procedure**|  |
-| Complete: All mandatory steps are provided.|  |
-| Clear: The logic of the writing is clear and reasonable. The overview, preparations, and operations in the document are described by following certain logic, and the chapters are not broken or contradictory.|  |
-| Sentence pattern for tasks: Use verbs + nouns to describe actions in titles or sentences.|  |
-| Prevention in advance: Describe the restrictions, error-prone operations, and potential risks in advance. Use general icons and styles.|  |
-| Clear steps-1: Describe the purpose of each step, no matter whether it is simple or not.|  |
-| Clear steps-2: Specify the environment, tools, operations, and how-to.|  |
-| If an operation is optional, specify the optional conditions.|  |
-| After the development procedure is complete, specify the expected results.|  |
-| **Writing a Code Segment**|  |
-| If a code segment involves commands to be copied by developers, display the commands in editable mode, instead of using screenshots. Use code snippets to wrap the commands.|  |
-| Highlight key code segments in blue (RGB: 0.0.255), and comment out key steps.|  |
-| The code display meets the code indentation requirements.|  |
-| If an API call is involved in a step, provide the API and its usage description or sample code. The code comes from specific instances.|  |
+*Describe the software and hardware configurations required by the development environment so that developers can prepare the environment in advance. You can use subtitles if there is a large amount of content.*
 
 ***[Example]***
 
-1. Use **AudioStreamInfo.Builder** to create an **AudioStreamInfo** instance for audio stream parameters. The following example uses the default values of the input parameters for **AudioStreamInfo.Builder**. You need to set the parameters based on the audio stream specification.
-   ```
-   AudioStreamInfo audioStreamInfo = new AudioStreamInfo.Builder()
-    .sampleRate(AudioStreamInfo.SAMPLE_RATE_UNSPECIFIED)
-    .audioStreamFlag(AudioStreamInfo.AudioStreamFlag.AUDIO_STREAM_FLAG_NONE)
-    .encodingFormat(AudioStreamInfo.EncodingFormat.ENCODING_INVALID)
-    .channelMask(AudioStreamInfo.ChannelMask.CHANNEL_INVALID)
-    .streamUsage(AudioStreamInfo.StreamUsage.STREAM_USAGE_UNKNOWN)
-    .build();
-   ```
+The following table describes the environment configuration requirements specific to the Hi3861 development board.
+
+  **Table 1** Hi3861 development environment-specific requirements
+
+| Platform Type| Development Tool| Function| How to Obtain|
+| -------- | -------- | -------- | -------- |
+| Linux server| SCons3.0.4+ | Executes script compilation.| Internet|
+| Linux server| build-essential | Provides a basic software package for compilation and building.| Internet|
+
+
+### Setting Up the Environment
+
+***[Writing Requirements]***
+
+*Describe the procedure for setting up the development environment. If there is a large amount of content, use subtitles, for example, "Setting Up the Basic Build Environment" and "Setting Up the Compilation Tool Environment".*
+
+***[Example]***
+
+1. Start a Linux server.
 
-   Example code for playing a PCM stream:
+2. Run the following command to install the tool installation package:
+   
    ```
-   AudioStreamInfo audioStreamInfo = new AudioStreamInfo.Builder().sampleRate(44100)// 44.1 kHz
-    .audioStreamFlag(AudioStreamInfo.AudioStreamFlag.AUDIO_STREAM_FLAG_MAY_DUCK)// Set audio ducking.
-    .encodingFormat(AudioStreamInfo.EncodingFormat.ENCODING_PCM_16BIT)//16-bit PCM
-    .channelMask(AudioStreamInfo.ChannelMask.CHANNEL_OUT_STEREO)// Set the dual output channel.
-    .streamUsage(AudioStreamInfo.StreamUsage.STREAM_USAGE_MEDIA)// Set the stream to be used for media.    
-    .build();
+   xxxxx
    ```
-2. Build the playback parameter structure via **AudioRendererInfo** for the audio stream created in Step 1, and use **AudioRendererInfo.Builder** to create an instance. The following example uses the default parameter values of the **AudioRendererInfo.Builder** instance. You need to set the playback parameters based on the audio playback specification.
+
+3. Run the following command to check whether the tool is successfully installed.
+   
    ```
-   AudioRendererInfo audioRendererInfo = new AudioRendererInfo.Builder()
-    .audioStreamInfo(audioStreamInfo)
-    .audioStreamOutputFlag(AudioRendererInfo.AudioStreamOutputFlag.AUDIO_STREAM_OUTPUT_FLAG_NONE)    
-    .bufferSizeInBytes(0)    
-    .distributedDeviceId("")    
-    .isOffload(false)
-    .sessionID(AudioRendererInfo.SESSION_ID_UNSPECIFIED)    
-    .build();
+   xxxxx
    ```
 
-    Example code for playing a PCM stream:
-      ```
-   AudioRendererInfo audioRendererInfo = new AudioRendererInfo.Builder()
-    .audioStreamInfo(audioStreamInfo)
-    .audioStreamOutputFlag(AudioRendererInfo.AudioStreamOutputFlag.AUDIO_STREAM_OUTPUT_FLAG_DIRECT_PCM)// Set direct PCM output.
-    .bufferSizeInBytes(100)    
-    .distributedDeviceId("E54***5E8")// Use distributed device E54***5E8 for playback.   
-    .isOffload(false)// Value false indicates that the audio stream is transmitted to the buffer on a segment-by-segment basis for several times and then played. Value true indicates that the audio stream is transmitted to the HAL layer at a time.
-    .build();
-      ```
-   
-3. Specify the playback mode based on the audio stream to be played. The playback modes differ only in the data writing process. Create an **AudioRenderer** instance using a constructor that fits your need.
 
-4. After the playback task is complete, call the **release()** method on the **AudioRenderer** instance to release resources.
+### Verifying the Environment
+
+***[Writing Requirements]***
+
+*Optional. Provide the criteria for checking whether the environment is set up successfully. You can also provide the criteria along with the environment setup procedure, as provided in the preceding example.*
+
+
+## *Example Task Scenario* Development (Use a specific scenario name. If there is only one scenario, use the solution/feature/function/module name.)
+
+*Mandatory.*
+
+***[Developers' Concerns]***
+
+*How do I use or access the solution/feature/function/module?*
+
+***[Key Writing Points]***
+
+*Provide scenarios that are close to actual development scenarios.*
+
+- *Task scenarios are what developers need to use to achieve development objectives.*
+
+- *There can be one or more task scenarios. You can use multiple "Development Guidelines" sections. Follow the hierarchical logic when writing the guidelines, that is, a task scenario -> a subtask scenario -> task logic ("Development Process") -> operation procedure ("How to Develop").*
+
+### *Example Task Scenario* Overview
+
+*Based on the scenario division of the solution/feature/function/module, you can provide either "Example Task Scenario Overview" or "Example Overview", or both of them.*
+
+*1. "Example Overview" provides an overview that is common to all task scenarios of this solution/feature/function/module and that developers need to understand. If there is nothing in common, delete it.*
+
+*2. "Example Task Scenario Overview" describes the contents directly related to a task scenario. The knowledge points and key writing points are the same as those in "Example Overview". In this section, you need to introduce this specific task scenario and describe basic concepts, working principles, constraints, and samples that are directly related to the task scenario. If there is no specific task scenario, delete it.*
+
+### Development Process
+
+***[Key Writing Points]***
+
+- *Optional. If there are many development steps (five or more core operations) or complex logical relationships between steps, provide the development process so that developers can have a panoramic view of the operations to be performed.*
+
+- *Provide flowcharts and tables if necessary.*
 
 
-## (Optional) Commissioning and Verification
+### Available APIs
 
 ***[Writing Requirements]***
 
-*Optional. After the development is complete, perform commissioning and verification to ensure that the operation is successful. The operation procedure requirements are the same as those in **Development Guidelines**. Other specific writing requirements are as follows. After finishing the writing, check your content against these requirements one by one.*  
+- *Optional. Describe the key APIs in the development steps and provide the API introduction, so that developers can have a general understanding of development.*
 
-| Requirement| Satisfied or Not|
-| -------- | -------- |
-| Describe the final service commissioning process. The operation result of each step should be verified after the corresponding development task is complete.|  |
-| Specify the criteria for development success.|  |
+- *If there are more than 10 APIs, provide the main APIs only.*
+
+- *Ensure that the APIs and their functions of the corresponding version are supported when the document is released.*
+
+***[Example]***
+
+Certain APIs can be called only by system applications that have been granted the **SystemCapability.Notification.Notification** permission. The APIs use either a callback or promise to return the result. The tables below list the APIs that use a callback, which provide the same functions as their counterparts that use a promise. For details about the APIs, see the [API document](https://gitee.com/openharmony/docs/blob/master/en/application-dev/reference/apis/js-apis-notification.md).
+
+**Table 1** APIs for notification enabling
+
+| API                                                      | Description            |
+| ------------------------------------------------------------ | ---------------- |
+| isNotificationEnabled(bundle: BundleOption, callback: AsyncCallback\<boolean>): void | Checks whether notification is enabled.|
+| enableNotification(bundle: BundleOption, enable: boolean, callback: AsyncCallback\<void>): void | Sets whether to enable notification.    |
+
+
+### How to Develop
+
+***[Writing Requirements]***
+
+*Mandatory.*
+
+- *Completeness and Correctness*
+  - *Describe the complete development process (for example, steps related to the code, resources, third-party libraries, and application configuration files in the HAP) so that developers can correctly complete the development. Do not omit key configuration operations.*
+  - *Ensure that the code snippet provided in the document can be built with the context in DevEco Studio.*
+  - *Ensure that the complete sample code provided in the document can be run in DevEco Studio, and the execution result is the same as that described in the document.*
+
+- *Clarity*
+  - *Provide a clear execution owner (who), operation purpose (why), operation content (what/how), and scenario (when/where) for each step. Use imperative sentence to describe steps.*
+  - *Clearly provide the APIs (if involved) in steps, as well as their usage description and sample code.*
+  - *Provide development suggestions or precautions for key steps and sample code (comments for sample code).*
+       *Think about what questions may be raised when developers are performing the operations.* *These problems are obstacles to developers.* *Provide support information in the document to help them handle these obstacles.* *Examples of support information:*
+     - *Branch selection principle. Provide principles or suggestions for selecting branches and parameters.*
+     
+     - *Necessary supplementary description. Describe possible special operations, required operation permissions, high efficiency skills, and concise and clear background knowledge.*
+     
+     - *Precautions. Describe operations that may adversely affect other functions or system performance and reliability, and operations that may cause data loss or security problems.* *Provide this type of information in a style different from that of the body prior to the operation procedure.*
+     
+     - *Error prevention/correction information. Provide guidance for preventing, locating, or rectifying typical problems that may occur in the development process.* *This type of information can be provided in "How to Develop" or "FAQs", depending on the content amount.*
+
+- *Standardization*
+  - *Provide both logically and syntactically correct sample code and write it in a standard manner. Anonymize sensitive information, such as mobile numbers, ID cards, and account names, for example, 186\*\*\*\*\*\*\*\*. Use private IP addresses or a corresponding format, for example, xx.xx.xx.xx and www.example.com, rather than real IP addresses and domain names.*
+  - *Provide code that complies with the code indentation requirements. Do not use the **Tab** key to indent code. Instead, use four spaces, to avoid incorrect display.*
+
+**[Example (Excerpt)]**
+
+1. Import the required modules.
+
+   ```javascript
+   import formBindingData from '@ohos.application.formBindingData'
+   import formInfo from '@ohos.application.formInfo'
+   import formProvider from '@ohos.application.formProvider'
+   ```
+   
+2. Implement the lifecycle callbacks of **LifecycleForm**.
+
+   ```javascript
+   export default {
+       onCreate(want) {
+           console.log('FormAbility onCreate');
+           // Persistently store widget information for subsequent use, such as widget instance retrieval or update.
+           let obj = {
+               "title": "titleOnCreate",
+               "detail": "detailOnCreate"
+           };
+           let formData = formBindingData.createFormBindingData(obj);
+           return formData;
+       },
+       onCastToNormal(formId) {
+           // Called when the widget host converts the temporary widget into a normal one. The widget provider should do something to respond to the conversion.
+           console.log('FormAbility onCastToNormal');
+       },
+   }
+   ```
+
+
+### Verification
 
-## Development Example
 ***[Writing Requirements]***
 
-*Provide a complete sample, briefly describe the principle and implementation of the sample, and provide a link to the source code repository.*  
+- *Optional. After the development is complete, provide a guide to check whether the operation is successful if there is an independent commissioning and verification operation. The operation procedure is the same as that described in "How to Develop."*
+
+- *Provide only the final service commissioning. You are advised to verify the operation result of each subtask after the development is complete.*
+
+
+## FAQs
+
+*Optional.*
+
+***[Developers' Concerns]***
+
+*What are the typical problems that may occur in the development process of the solution/feature/function/module? How do I locate and solve these problems?*
+
+***[Key Writing Points]***
+
+*Describe the problems that may occur during the development and the solutions to them.*
+
+- *Delete this section if there are no common problems.*
+
+- *It is recommended that common problems in each task scenario be described in a separate chapter. Common problems related to a single task scenario be described in the corresponding chapter.*
+
+
+
+### 1. XX problem (simple problem)
+
+XXX
+
+
+### 2. XX problem (complex problem)
+
+**Symptom**
+
+XXX
+
+**Possible Causes**
 
-The following sample is provided to help you better understand how to xx:
+XXX
 
-- xxx (A link to the source code repository)
+**Solution**
 
- This sample xxx.
+XXX
diff --git a/en/contribute/template/js-template.md b/en/contribute/template/js-template.md
index fddf204b85f3fc9a981476e2a00b3c3556ed4d43..a77adb292bbea3de8ba9ce39d91c781a083007fb 100644
--- a/en/contribute/template/js-template.md
+++ b/en/contribute/template/js-template.md
@@ -1,251 +1,277 @@
-# JS API Reference Template
-
-> *Writing Instructions*
->
-> 0.1 - Delete all writing instructions after you finish the writing.
->
-> 0.2 - Upload JS API reference documents to **docs/en/application-dev/reference/apis**. If these documents contain figures, upload the figures to the **figures** folder.
->
-> 0.3 - Use a .d.ts file for a JS API reference document. **The file name must be in the following format: js-apis-<moduleName>.md**. Examples:
-> 	For @ohos.multimedia.audio in the Media subsystem, the file name is **js-apis-audio.md**.
-> 	For @ohos.telephony.sms in the Telephony subsystem, the file name is **js-apis-sms.md**.
->
-> 0.4 - After uploading a JS API reference document, update the **Readme-EN.md** file in **docs/en/application-dev/reference/apis**.
->
-> 0.5 - **Document Title**: Use phrases that summarize the module functionalities.
->
-> 0.6 - Use the document title as the level-1 heading. Use the attributes, functions, classes, interfaces, enums, and types under the namespace as level-2 headings. Use the attributes and functions under classes as level-3 headings.
->
-> **Version Description**
->
-> 0.7 - **When introducing an API to an existing module, use the \<sup> tag to mark its earliest version.**
-> 	Example: For an existing module of API 6, if an attribute is added in API 7, suffix the \<sup> tag to the name of the new attribute, for example, **newAttribute<sup>7+</sup>**.
-> 	If a method is added, suffix the \<sup> tag to the method name, for example, **sim.getSimIccId<sup>7+</sup>**. The processing of new interfaces, classes, and enums is similar.
->
-> 0.8 - **Deprecated content**: Do not delete the deprecated content directly from the document. Instead, suffix **deprecated** as a superscript to the content, and use the greater-than symbol (>) to introduce the substitute method plus the corresponding link.
-> 	Example: abandonmentMethod<sup>(deprecated) </sup>
->
-> > This APIs is no longer maintained since API version 7. You are advised to use [newMethod](#newMethod) instead.
->
-> 0.9 - For **empty APIs that will be implemented only in the MR version**, add the following information to the interface description:
-> This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.
->
-> **Required Permissions, System Capabilities, and System APIs**
->
-> 0.10 - **Required permissions**: Maintain consistency with the code implementation. State the required permissions at the level of methods, enumerations, and attributes. Format:
->      (Permissions that can be requested by all applications) **Required permissions**: ohos.permission.xxxx  
->      (Permissions that can be requested only by system applications) **Required permissions**: ohos.permission.xxxx (available only to system applications)
->
-> 0.11 - **System capabilities**:
->   Add the following information for each function: **System capability**: SystemCapability.xxx.xxx
->   There are two cases for the information about system capabilities added to each table (attributes, enums, constants, and variables).
->   Add the following description if all the items in a table require the same system capabilities:
->   SystemCapability.xxx.xxx
->   Add the following description if the items in a table require different system capabilities:
->   The items in the table below require different system capabilities. For details, see the table.
->
-> 0.12 - **System APIs**: Add the following description for system APIs: This is a system API and cannot be called by third-party applications.
-> The following describes the instructions for writing a specific API.
+# API Reference Template
+
+## General Writing Instructions
+
+|      | Item                           | Writing Instruction                                                        |
+| ---- | --------------------------------- | ------------------------------------------------------------ |
+| 1    | Customer-oriented writing               | **Stand in the shoes of developers and clearly describe the use cases, parameter selection principles, recommendations/tips, and sample code.**|
+| 2    |                                   | **Delete all writing instructions from your document after you finish the writing.**                |
+| 3    | Upload path                         | Upload markdown files to `docs/en/application-dev/reference/apis`.<br>Upload images to `docs/en/application-dev/reference/apis/figures`. In addition, reference the image path in the markdown file as follows: `![](figures/exampleImage.jpg)`, `![](figures/exampleImage.png)`, or `![](figures/exampleImage.gif)`.|
+| 4    | File name                         | Provide one JS API reference document for each d.ts file. Name the file in the format of `js-apis-exampleModule.md`, where `exampleModule` is a variable and must be the same as the actual module name.<br>Examples:<br>For @ohos.multimedia.audio in the Multimedia subsystem, the JS API file name is `js-apis-audio.md`.<br>For @ohos.telephony.sms in the Telephony subsystem, the JS API file name is `js-apis-sms.md`.|
+| 5    | Directory update                         | After uploading an API reference document, update the `Readme-EN.md` file in `docs/en/application-dev/reference/apis`.|
+| 6    | Document structure                         | - Module description<br>- Initial version description<br>- Modules to Import/Usage description<br>- API description (attributes, methods, enums, and custom types)<br>  The order in which APIs are described in the document must be consistent with that in which they appear in the code. If some APIs have a logical sequence, pay attention to their sequence in the API reference document.|
+| 7    | API version description                     | 1. Use the greater-than sign (`>`) followed by a space to indent the description about the initial version of the module. Unless otherwise marked, all APIs in the module have the same initial version.<br>2. When introducing an API to an existing module, use the `<sup>` tag to mark its earliest version. The format is `<sup>versionNumber+</sup>`, for example, `<sup>7+</sup>`.<br>    If an attribute of API version 7 is added to an existing module, suffix the `<sup>7+</sup>` tag to the name of the new attribute, for example, `newAttribute<sup>7+</sup>`.<br>    If a method is added to an existing module, suffix the `<sup>` tag to the method name, for example, `sim.getSimIccId<sup>7+</sup>`. The same rule applies to new interfaces, classes, and enums. |
+| 8    | Deprecated API description                     | Do not delete the deprecated content from the document. Instead, suffix `deprecated` as a superscript to the content, and use the greater-than sign (`>`) to introduce the substitute API plus a link to the API description.<br>Example: abandonmentMethod<sup>(deprecated)</sup><br>> This API is no longer maintained since API version 7. You are advised to use [newMethod]\(#newmethod) instead.|
+| 9    | Permission description                         | Provide the same permission description as that defined in the code for each method, enum, and attribute.<br>1. If a specific permission required for using an API can be requested only by system applications, provide the description in the following format:<br>    **Required permissions**: ohos.permission.examplePermission (available only to system applications)<br>2. If a specific permission required for using an API can be requested by all applications, provide the description in the following format:<br>    **Required permissions**: ohos.permission.examplePermission<br>3. If multiple permissions are required for using an API, provide the permissions with `and` or `or` in the following format:<br>    **Required permissions**: ohos.permission.examplePermissionA and ohos.permission.examplePermissionB<br>    **Required permissions**: ohos.permission.examplePermissionA or ohos.permission.examplePermissionB|
+| 10   | @syscap                           | 1. Provide a description for every API in the following format, wherein *A.B* indicates a specific system capability.<br>    **System capability**: SystemCapability.*A.B*<br>2. There are two cases for adding system capability information to a table (of attributes, enums, constants, or variables).<br>    1) If all the items in a table require the same system capability, add the following information to the front of the table:<br>          **System capability**: SystemCapability.*A.B*<br>    2) If the items in a table require different system capabilities,<br>          list the system capability for each item in the table.           |
+| 11   | @system api                       | 1. If all APIs of a module are system APIs, add the following sentence to the next line of the initial version description:<br>    The APIs provided by this module are system APIs.<br>2. If an API is a system API that can be used only by original equipment manufacturers (OEMs), add the following sentence to the API description:<br>    This is a system API. |
+| 12   | @FAModelOnly<br>@StageModelOnly  | 1. If a module is implemented only for a specific ability model, add the following sentence to the next line of the initial version description:<br>    - The APIs of this module can be used only in the FA model.<br>Or<br>    - The APIs of this module can be used only in the stage model.<br>2. If an API is implemented only for a specific ability model, add the following sentence to the API description:<br>    - This API can be used only in the FA model.<br>Or<br>    - This API can be used only in the stage model.|
+| 13   | Asynchronous methods (callback and promise)| Use the following sentences for callback methods.<br>Method introduction: *Describe the method.* This API uses an asynchronous callback to return the result.<br>Parameter description:<br>**callback\<boolean>**: Callback used to return the result. The value `true` indicates *something*, and `false` indicates the opposite.<br>**callback\<Object>**: Callback used to return *something*. Example: Callback used to return the `AudioCapturer` object.   <br>**AsyncCallback\<void>**: Callback used to return the result. If the operation (or a specific operation description) is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.<br>**AsyncCallback\<Object x>**: Callback used to return the result. If the operation (or a specific operation description) is successful, `err` is `undefined`, and `data` is the *x* object obtained; otherwise, `err` is an `Error` object.<br>Use the following sentences for promise methods.<br>Method introduction: *Describe the method.* This API uses a promise to return the result.<br>Parameter description:<br>**Promise\<boolean>**: Promise used to return the result. The value `true` indicates *something*, and `false` indicates the opposite.<br>**Promise\<Object>**: Promise used to return *something*. Example: Promise used to return the `AudioCapturer` object.   <br>**Promise\<void>**: Promise that returns no value. |
+| 14   | Sample code programming language                     | Use code blocks to provide sample code and mark the programming language.<br>Use `js` as the mark if both JS and eTS can be used, and use `ts` if only eTS can be used.|
+| 15   | Link                         | Link format: [Link text]\(Link content)<br>Cross-folder link format: [markdown file name]\(\.\./../xxx/xxx.md). One `./` indicates one upper-level folder.<br>Intra-topic link: [Interface A<sup>7+</sup>]\(#xxxa7). The text in the intra-topic link must be the same as the title to be linked. In the link, all letters must be in lowercase, and no special character or label is included.|
+
+The following describes the instructions for writing a specific API reference document.
 
 ***
+
+# Document Title
+
 > *Writing Instructions*
 >
-> 1.1 - Use the greater-than symbol (>) to describe the initial version of an API.
->
-> 1.2 - A module has only one initial version.
->
-> 1.3 - Use the following sentence: "The initial APIs of this module are supported since API version ***x***. Newly added APIs will be marked with a superscript to indicate their earliest API version." Change ***x*** to the actual version.
+> 1. **Document title**: Use phrases that summarize the module functionalities. Examples: `Ability` and `SIM Card Management`
+> 2. **Heading levels**: Use the document title as the level-1 heading, which is prefixed with `#` followed by a space. Use the attributes, functions, classes, interfaces, enums, and types under the namespace as level-2 headings, which are prefixed with `##` followed by a space. Use the attributes and functions under classes as level-3 headings, which are prefixed with `###` followed by a space.
+> 3. **Initial version description**: Use the greater-than symbol (`>`) to indent the description about the initial version of the module. Use a line break after **NOTE**. <br>Place the version description after the module description. A module has only one initial version. <br>Use the following sentence: "The initial APIs of this module are supported since API version *x*. Newly added APIs will be marked with a superscript to indicate their earliest API version." Change ***x*** to the actual version number.
 
+Describe the module from its functionalities, use cases, and recommendations in this section. 
 
+**Example 1**: description of the background task management module
 
-> **Note**
->
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+This module provides background task management.
+If a service needs to be continued when the application or service module is running in the background (not visible to users), the application or service module can request a transient task or continuous task for delayed suspension based on the service type.
+
+**Example 2**: description of the call module
 
-Describe the module from its functionalities, use cases, and use suggestions in this section.
+The call module provides call management functions, including making calls, redirecting to the dial screen, obtaining the call status, and formatting phone numbers.
+To subscribe to the call state, use observer.on('callStateChange').
 
+**Example 3**: description of the distributed data management module
 
+The distributed data management module provides collaboration between databases of different devices for applications.
+The APIs provided by distributed data management can be used to save data to the distributed database and perform operations such as adding, deleting, modifying, querying, and synchronizing data in the distributed database.
+
+**Example 4**: description of the linear container ArrayList module
+
+`ArrayList` is a linear data structure that is implemented based on arrays. `ArrayList` can dynamically adjust the capacity based on project requirements. It increases the capacity by 50% each time.
+Similar to `ArrayList`, `Vector` is also implemented based on arrays and can dynamically adjust the capacity. It increases the capability by 100% each time.
+When compared with `LinkedList`, `ArrayList` is more efficient in random access but less efficient in the addition or removal operation, because its addition or removal operation affects the position of other elements in the container.
+You are advised to use `ArrayList` when elements in a container need to be frequently read.
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
 
 ## Modules to Import
 
 > *Writing Instructions*
 >
-> 2.1 - Write the modules to import based on the actual conditions. Provide the **import** statement in the form of a code segment.
+> 1. Write the modules to import based on the actual conditions. Provide the **import** statement in the form of a code block.
 >
-> 2.2 - If no module needs to be imported, change "Modules to Import" to "How to Use" and provide a usage description.
-> 	Example of **How to Use**:
-> 	Before using the **AbilityContext**, obtain the **Context** object through **[getContext()]**(***API-reference***.md).
+> 2. If no module needs to be imported, change "Modules to Import" to "Usage" and provide a usage description. <br>Example of **Usage**:<br>
+>    Before using the `AbilityContext`, obtain the `Context` object through [getContext()]\(*API-reference*.md).
 >
 > ```js
-> import ability_featureAbility from '@ohos.ability.featureAbility';
-> var context = ability_featureAbility.getContext();
+>    import ability_featureAbility from '@ohos.ability.featureAbility';
+>    var context = ability_featureAbility.getContext();
 > ```
 
 ```js
 import call from '@ohos.telephony.call';
 ```
 
-
 ## Attributes
 
 > *Writing Instructions*
 >
-> 4.1 - Optional. Delete this heading if there is no attribute.
+> 1. Optional. Delete this heading if there is no attribute.
 >
-> 4.2 - If an attribute is of a custom type, create a link to the corresponding interface or enum.
+> 2. If an attribute is of a custom type, create a link to the corresponding interface or enum.
 >
-> 4.3 - For a readable attribute, if it has a limited number of values with special meanings, enumerate the values.
+> 3. For a readable attribute, if it has a limited number of values with special meanings, enumerate the values.
 >
-> 4.4 - For a writable attribute, if only fixed fields are supported, describe them.
->
-> 4.5 - If the items in the table require different system capabilities, add the following description: The items in the table below require different system capabilities. For details, see the table. Then, describe the system capabilities for each item. See [Enums](#enums).
+> 4. For a writable attribute, if only fixed fields are supported, describe them.
 
-**System capability**: SystemCapability.xxx.xxx (Mandatory)
+**System capability**: SystemCapability.*A.B* (Mandatory)
 
 | Name            | Type                                     | Readable| Writable| Description                                      |
 | ---------------- | ----------------------------------------- | ---- | ---- | ------------------------------------------ |
-| pluggedType      | [BatteryPluggedType](#BatteryPluggedType) | Yes  | No  | Charger type of the current device.            |
+| pluggedType      | [BatteryPluggedType](#batterypluggedtype) | Yes  | No  | Charger type of the current device.            |
 | isBatteryPresent | boolean                                   | Yes  | No  | Whether the battery is supported or present.|
 
-## Enums
-
-> *Writing Instructions*
->
-> 5.1 - Optional. Delete this heading if there is no enum. If there are multiple enums, describe them in separate level-2 headings. To create a level-2 heading, use two number signs (#).
->
-> 5.2 - Use the actual enum name as the level-2 heading, for example, **BatteryHealthState**.
-
-Provide a brief description of the enum type. Example: Enumerates charger types.
-
-**System capability**: The items in the table below require different system capabilities. For details, see the table. (Mandatory)
-
-| Name| Value  | Description                                                        |
-| ---- | ---- | ------------------------------------------------------------ |
-| NONE | 1    | Unknown type.<br>**System capability**: SystemCapability.xxx.xxx (mandatory)|
-
 ## Methods
 
 > *Writing Instructions*
 >
-> 6.1 - Optional. Delete this heading if there is no method. If there are multiple methods, describe them in separate level-2 headings. To create a level-2 heading, use two number signs (#).
+> 1. Optional. Delete this heading if there is no method. If there are multiple methods, describe them in separate level-2 headings, prefixed with `##` followed by a space.
+>
+> 2. Use the actual method name, in the format of ClassName.methodName, as the level-2 heading. For a subscription method, add the subscription event to the method name.
 >
-> 6.2 - Use the actual method name, in the format of ClassName.methodName, as the level-2 heading. For a subscription method, add the subscription event to the method name.
-> 	Example of a common method: sim.getSimIccId
-> 	Example of a subscription method: sim.on('exampleEvent')
+>    Example of a common method: sim.getSimIccId
+>    
+>    Example of a subscription method: sim.on('exampleEvent')
 >
-> 6.3 - **Method calling mode**: The description must be the same as that in the .d.ts file. The description must include the parameter type, parameter name, and return value type.
-> 	Example: getNetworkState(slotId: number, callback: AsyncCallback\<NetworkState>): void
-> 	Note: The angle bracket (<>) may be identified as a label and not displayed. To ensure normal display, you can either add a backslash (\\) (in the format of "\\<>") or use escape characters \&lt; and \&gt;.
+> 3. **Method calling mode**: The description must be the same as that in the .d.ts file and include the parameter type, parameter name, and return value type.
+>    Example: getNetworkState(slotId: number, callback: AsyncCallback\<NetworkState>): void
+>    Note: The angle bracket (<>) may be identified as a label and not displayed. To ensure normal display, you can either add a backslash (\\) (in the format of "\\<>") or use escape characters \&lt; and \&gt;.
 >
-> 6.4.1 - **Method description**: Describe the features implemented by the method and include the prerequisites for using the method, the impact of the method, and the permissions and system capabilities required to use the method. (*Example of prerequisites: This method can be called only after the xx method is called; you must ensure that the connection to the Internet is normal. Example of impact: xx does not take effect after this method is called.*)
+> 4. **Method description**: Describe the features implemented by the method and include the prerequisites for using the method, the impact of the method, and the permissions and system capabilities required to use the method. (*Example of prerequisites: This method can be called only after the xx method is called; you must ensure that the connection to the Internet is normal. Example of impact: xx does not take effect after this method is called.*)
 >
-> 6.4.2 - **Asynchronous method**: If there are asynchronous methods, describe their return type in the method description. The return type can be a callback function or a **Promise** instance.
+> 5. **Asynchronous methods**: If there are asynchronous methods, describe their return type in the method description. For details, see item 14 in "General Writing Instructions."
 >
-> 6.4.3 - **Line feed in a table**: Use \<br> for line feed.
+> 6. **Line feed in a table**: Use \<br> for line feed.
 
-Provide the method name in the following format: (**static** if it is a static method) methodName (parameterName1: parameterType1, parameterName2: parameterType2, ...): returnValueType
+Provide the method name in the following format: (`static` if it is a static method) methodName (parameterName1: parameterType1, parameterName2: parameterType2, ...): returnValueType
 
-Describe the method. For details, see 6.4.1 and 6.4.2.
+Describe the method. For details, see the fourth and fifth points in "Writing Instructions" above.
 
-**Required permissions**: ohos.permission.xxx (Delete this part if no permission is involved. If a system permission is required, specify it.)
+This API can be used only in the stage model. (optional)
 
-**System capability**: SystemCapability.xxx.xxx (mandatory)
+This is a system API. (optional)
 
-**Parameters** (Optional. Delete this heading if there is no parameter.)
+**Required permissions**: ohos.permission.examplePermission (Delete this part if no permission is involved. If a system permission is required, specify it.)
+
+**System capability**: SystemCapability.*A.B* (mandatory)
+
+**Parameters** (Optional. Delete this part if there is no parameter.)
 
 | Name      | Type                                         | Mandatory| Description                                                        |
 | ------------ | --------------------------------------------- | ---- | ------------------------------------------------------------ |
-| parameterOne | number \| string \| [CustomType](#CustomType) | Yes  | Describe the parameter. Provide the value range and recommended value. If there is a fixed format, provide a format example, especially for the URI.<br>Provide a link for each custom parameter type.|
-| callback     | Callback\<Array<[CustomType](#CustomType)>>   | No  | Describe the parameter. For an optional parameter, describe the consequences if it is not specified.<br>Example: If this parameter is not set, this method unsubscribes from all callbacks corresponding to **type**.|
+| parameterOne | number \| string \| [CustomType](#customtype) | Yes  | Describe the parameter. Provide the value range and recommended value. If there is a fixed format, provide a format example, especially for the URI.<br>Provide a link for each custom parameter type.|
+| callback     | Callback\<Array<[CustomType](#customtype)>>   | No  | Describe the parameter. For an optional parameter, describe the consequences if it is not specified.<br>Example: If this parameter is not set, this method unsubscribes from all callbacks corresponding to **type**.<br>For details about how to write callback methods, see item 14 in "General Writing Instructions."|
 
-**Return value** (Optional. Delete this heading if there is no return value.)
+**Return value** (Optional. Delete this part if there is no return value.)
 
-| Type                                      | Description                                        |
-| ------------------------------------------ | -------------------------------------------- |
-| string                                     | Describe the return value, for example, what can be done after the return value is obtained.|
-| Promise\<Array<[CustomType](#CustomType)>> | Describe the return value, for example, what is obtained through the **Promise** instance.         |
+| Type                                      | Description                                           |
+| ------------------------------------------ | ----------------------------------------------- |
+| string                                     | Describe the return value, for example, what can be done after the return value is obtained.   |
+| Promise\<Array<[CustomType](#CustomType)>> | Describe the return value. For details about how to write promise methods, see item 14 in "General Writing Instructions."|
 
 **Example**
 
 ```js
 // This part is mandatory.
+
 // Check all sample code provided in the example.
 // Minor errors such as missing symbols and variable inconsistency are unacceptable.
 // Declare all variables that are used.
-// Write an actual case that can be easily used, rather than the parameter names themselves.
-// Use comments to describe the content that are not user-defined.
+
+// Write an actual case that can be easily used, rather than the parameter names themselves. Use comments to describe the content that are not user-defined.
 // Example: var result = xxx.createExample(parameterOne); // parameterOne is automatically obtained by scanning.
+
+// Provide clear and concise comments in the following typical scenarios:
+// 1. The meaning of a variable name or the code logic is not self-explanatory.
+// 2. A complex algorithm or special syntax is involved.
 ```
 
-## Classes/Interfaces
+## On and Off Subscription Methods
 
 > *Writing Instructions*
 >
-> 7.1 - Optional. Delete this heading if there is no class or interface. If there are multiple classes or interfaces, describe them in multiple level-2 headings. To create a level-2 heading, use two number signs (#).
+> 1. The basic requirements are the same as those provided in [Methods](#methods). The following describes only the differences.
 >
-> 7.2 - Use the actual class or interface name as the level-2 heading.
->
-> 7.3 - If the class or interface contains both attributes and methods, write the attributes above the methods. Write their actual names in separate level-3 headings.
-> 	If the class of interface contains only attributes, you do not need to create a level-3 heading. Instead, use a table to display the attributes. For details, see [CustomType](#CustomType).
-
-Describe the class or interface. If there are usage restrictions, describe them as well, for example, whether there is a prerequisite and whether an instance needs to be created by using any method.
-
-### Attributes
-
-> *Writing Instructions*
+> 2. Use the actual method name, in the format of ClassName.methodName plus the subscription event, as the level-2 heading.
+>    Examples: `sim.on(?exampleEvent?)` and `on('play' | 'pause' | 'stop' | 'reset')`
 >
-> Except that a level-3 heading is used, other instructions are the same as those listed under [Attributes](#Attributes).
+> 3. **Method calling mode**: The description must be the same as that in the .d.ts file and include the parameter type, event name, parameter name, and return value type.
+>    Example: `on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void`
+>    Note: The angle bracket (<>) may be identified as a label and not displayed. To ensure normal display, you can either add a backslash (\\) (in the format of "\\<>") or use escape characters \&lt; and \&gt;.
 
-### Methods in Classes/Interfaces
+Provide the method name in the following format: (`static` if it is a static method) methodName (parameterName1: parameterType1, parameterName2: parameterType2, ...): returnValueType
 
-> *Writing Instructions*
->
-> 7.4 - Use the actual method name as the level-3 heading. **Do not add a prefix**. For a subscription method, add the corresponding subscription event to the method name.
-> 	Example of a common method: getSimIccId
-> 	Example of a subscription method: on('exampleEvent')
-> The other instructions are the same as those stipulated in [Methods](#Methods).
+Describe the method. For details, see the fourth and fifth points in "Writing Instructions" under [Methods](#methods).
 
-Describe the method calling mode. For details, see 6.3.
+This API can be used only in the stage model. (optional)
 
-Describe the method. For details, see 6.4.1 and 6.4.2.
+This is a system API. (optional)
 
-**Required permissions**: ohos.permission.xxx (Delete this part if no permission is involved. If a system permission is required, specify it.)
+**Required permissions**: ohos.permission.examplePermission (Delete this part if no permission is involved. If a system permission is required, specify it.)
 
-**System capability**: SystemCapability.xxx.xxx (mandatory)
+**System capability**: SystemCapability.*A.B* (mandatory)
 
 **Parameters** (Optional. Delete this heading if there is no parameter.)
 
-| Name      | Type                                         | Mandatory| Description                                                        |
-| ------------ | --------------------------------------------- | ---- | ------------------------------------------------------------ |
-| parameterOne | number \| string \| [CustomType](#CustomType) | Yes  | Describe the parameter. Provide the value range and recommended value. If there is a fixed format, provide a format example, especially for the URI.<br>Provide a link for each custom parameter type.|
-| callback     | Callback\<Array<[CustomType](#CustomType)>>   | No  | Describe the parameter. For an optional parameter, describe the consequences if it is not specified.<br>Example: If this parameter is not set, this method unsubscribes from all callbacks corresponding to **type**.|
+| Name  | Type                                | Mandatory| Description                                                        |
+| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
+| type     | string                               | Yes  | Describe the event and when or how it will be triggered. If a method involves multiple events, describe them separately.<br>**Example 1 (single event):**<br>Type of the event. The `'play'` event is triggered when the `play()` API is called and audio playback starts.<br>**Example 2 (multiple events)**:<br>Type of the event. The following events are supported:<br/>- 'play': triggered when the play() API is called and audio playback starts.<br/>- 'dataLoad': triggered when the audio data is loaded, that is, when the `src` attribute is configured.<br/>- 'finish': triggered when the audio playback is finished. |
+| callback | Callback\<[CustomType](#CustomType)> | No  | Describe the parameter. The instructions are the same as those provided under [Methods](#methods).                         |
 
 **Return value** (Optional. Delete this heading if there is no return value.)
 
-| Type                                      | Description                                        |
-| ------------------------------------------ | -------------------------------------------- |
-| string                                     | Describe the return value, for example, what can be done after the return value is obtained.|
-| Promise\<Array<[CustomType](#CustomType)>> | Describe the return value, for example, what is obtained through the **Promise** instance.         |
+| Type  | Description                                 |
+| ------ | ------------------------------------- |
+| string | Describe the return value. The instructions are the same as those provided under [Methods](#methods).|
 
 **Example**
 
 ```js
-// This part is mandatory.
+// Mandatory. The instructions are the same as those provided under [Methods](#methods).
+
 // Check all sample code provided in the example.
 // Minor errors such as missing symbols and variable inconsistency are unacceptable.
 // Declare all variables that are used.
-// Write an actual case that can be easily used, rather than the parameter names themselves.
-// Use comments to describe the content that are not user-defined.
+
+// Write an actual case that can be easily used, rather than the parameter names themselves. Use comments to describe the content that are not user-defined.
 // Example: var result = xxx.createExample(parameterOne); // parameterOne is automatically obtained by scanning.
+
+// Provide clear and concise comments in the following typical scenarios:
+// 1. The meaning of a variable name or the code logic is not clearly stated in the code.
+// 2. A complex algorithm or special syntax is involved.
 ```
 
+## Classes/Interfaces
+
+> *Writing Instructions*
+>
+> 1. Optional. Delete this heading if there is no class or interface. If there are multiple classes or interfaces, describe them in multiple level-2 headings, prefixed with `##` followed by a space.
+>
+> 2. Use the actual class or interface name as the level-2 heading.
+>
+> 3. If the class or interface contains both attributes and methods, write the attributes above the methods. Write their actual names in separate level-3 headings.
+>    If the class or interface contains only attributes, you do not need to create a level-3 heading. Instead, use a table to display the attributes. For details, see [CustomType](#customtype).
+
+Describe the class or interface. If there are usage restrictions, describe them as well, for example, whether there is a prerequisite and whether an instance needs to be created by using any method.
+
+### Attributes in Classes/Interfaces
+
+> *Writing Instructions*
+>
+> Except that a level-3 heading is used for attributes in classes/interfaces, other instructions are the same as those provided under [Attributes](#attributes).
+
+### Methods in Classes/Interfaces
+
+> *Writing Instructions*
+>
+> 1. Use the actual method name as the **level-3 heading**. **Do not add a prefix.** For a subscription method, add the corresponding subscription event to the method name.
+>    Example of a common method: getSimIccId
+>    Example of a subscription method: on('exampleEvent')
+> 2. Other instructions are the same as those provided under [Methods](#methods).
+
+## Enums
+
+> *Writing Instructions*
+>
+> 1. Optional. Delete this heading if there is no enum. If there are multiple enums, describe them in separate level-2 headings, prefixed with `##` followed by a space.
+>
+> 2. Use the actual enum name as the level-2 heading, for example, `BatteryHealthState`.
+
+Provide a brief description of the enum type. Example: Enumerates the charger types.
+
+**System capability**: SystemCapability.xxx.xxx (mandatory)
+
+| Name| Value  | Description                      |
+| ---- | ---- | -------------------------- |
+| NONE | 1    | Unknown type.|
+
 ## CustomType
 
 The following is an example of the custom type of a key-value pair.
-**System capability**: SystemCapability.xxx.xxx (Mandatory)
+**System capability**: SystemCapability.*A.B* (mandatory)
 
 | Name        | Type               | Readable| Writable| Description                                                        |
 | ------------ | ------------------- | ---- | ---- | ------------------------------------------------------------ |
-| parameterUrl | string              | Yes  | Yes  | Media output URI. The following types of URIs are supported:<br>1. Relative path whose protocol type is internal. Examples:<br>Temporary directory: internal://cache/test.mp4<br><br>2. Absolute path. Examples:<br>file:///data/data/ohos.xxx.xxx/files/test.mp4<br> |
-| parameterOne | [CustomEnum](#enums) | Yes  | Yes  | Describe the attributes. The requirements are similar to those for the parameter description.                              |
+| parameterUrl | string              | Yes  | Yes  | Media output URI. Supported: 1. Relative path whose protocol type is `internal`. Example: <br/>Temporary directory: internal://cache/test.mp4<br/> 2. Absolute path. Example:<br/> file:///data/data/ohos.xxx.xxx/files/test.mp4|
+| parameterOne | [CustomEnum](#Enumeration)| Yes  | Yes  | Describe the attributes. The requirements are similar to those for the parameter description.                              |
 
+## Change History
+| Change Description| Date|
+| -------- | ---- |
+| 1. Provided the general writing instructions in a table.<br>2. Added the description about how to reference an image in "Upload path".<br>3. Added the "Document structure" item to describe the sequence of nodes in the API reference document.<br>4. Added the description for multiple permissions in "Permission description".<br>5. Added the description of @FAModelOnly and @StageModelOnly in the API reference document.<br>6. Added the description of asynchronous methods (callback and promise).<br>7. Added the standards and specifications for the sample code programming language.<br>8. Added the standard format for links used in the API reference document.<br>9. Added examples for "Module description".<br>10. Added the description of on and off subscription methods.<br>11. Updated the description of @syscap.<br>12. Updated the description of @systemapi. Now only the sentence "This is a system API." is used.  <br>13. Deleted the MR version description.|2022-06-24|
diff --git a/en/design/OpenHarmony-API-governance.md b/en/design/OpenHarmony-API-governance.md
index a5784cb05d2b876d1713b4785573804cf4e3e895..ede0bcff97b48f692d5c08da76c81f491d9f71ac 100644
--- a/en/design/OpenHarmony-API-governance.md
+++ b/en/design/OpenHarmony-API-governance.md
@@ -2,7 +2,7 @@
 
 ## Introduction
 
-To help the OpenHarmony ecosystem develop and evolve in a healthy and orderly way, this Charter defines the governance process and lifecycle (create, change, deprecate, and delete) of OpenHarmony APIs. It also specifies basic design requirements of OpenHarmony APIs.
+To help the OpenHarmony ecosystem develop and evolve in a healthy and orderly way, this Charter defines the governance process and lifecycle (creation, change, deprecation, and deletion) of OpenHarmony APIs. It also specifies basic design requirements of OpenHarmony APIs.
 
 This Charter is formulated by the API SIG and approved by the PMC for release. Any revision to this Charter will be released only after being reviewed by the API SIG and approved by the PMC.
 
@@ -16,14 +16,14 @@ The OpenHarmony software stack contains multiple roles. Naturally, OpenHarmony A
 
 Different types of APIs have different compatibility requirements, as described in the table below.
 
-| Type| Prepared By| Used By| Compatibility Requirement| Guarding Method|
-|---|---|---|---|---|
-| Public API | System and framework| All application developers| 5 API versions| X test suite (XTS)|
-| Test API | Test framework| All application developers| 3 API versions| To be built|
-| System API |  System and framework|System application developers|Not guaranteed| To be built|
-| HDI | HDF| System services| 4 API versions| XTS |
-| Driver API | HDF | Driver developers| Not guaranteed| None|
-| Inner API | System parts| System parts| Not guaranteed| None|
+ | Type | Prepared By | Used By | Compatibility Requirement | Guarding Method |
+ |--- |--- |--- |--- |--- |
+ | Public API | System and framework | All application developers | Five API versions | X test suite (XTS) |
+ | Test API | Test framework | All application developers | Three API versions | To be built |
+ | System API |  System and framework |System application developers |Not guaranteed | To be built |
+ | HDI | HDF | System services | Four API versions | XTS |
+ | Driver API | HDF | Driver developers | Not guaranteed | None |
+ | Inner API | System parts | System parts | Not guaranteed | None |
 
 The APIs are described as follows:
 
@@ -48,13 +48,13 @@ The content described in this Charter is irrelevant to the programming language
 
 ### Roles and Responsibilities
 
-|**Role**|**Responsibilities in API Governance**|
-| - | - |
-|Contributor|Commit API code and design documents.|
-|Committer|Review the code and submit a pre-review comment on an API commit.|
-|Domain SIG|Comment on the commits of new API code, so the passed commits can be merged. <br/>Submit a pre-review comment on updated API code.|
-|API SIG|Comment on updated API code.|
-|PMC|Release API version plans. Review amendments of this Charter, revise the terms, and publish this Charter.|
+ | Role | Responsibilities in API Governance |
+ | --- | --- |
+ | Contributor | Commit API code and design documents. |
+ | Committer | Review the code and submit a pre-review comment on an API commit. |
+ | Domain SIG | Comment on the commits of new API code, so the passed commits can be merged. <br/>Submit a pre-review comment on updated API code. |
+ | API SIG | Comment on updated API code. |
+ | PMC | Release API version plans. Review amendments of this Charter, revise the terms, and publish this Charter. |
 
 ### API Review Process
 The API review process is as follows:
@@ -66,7 +66,7 @@ The main process is as follows:
 1. Initiate API review and commit code (contributor). If any APIs are added or modified, the contributor must additionally submit an API review application to specify the API requirement source, usage scenario, permission design, and privacy protection design. For details, see "API Review Application Composites" below. To avoid rework, the contributor can send an email to submit the API design document to the committer, domain SIG, and API SIG for pre-review before the formal API review application and code commit.
 1. Review code (committer). After the code review is approved, the committer should submit the APIs to the domain SIG. If the API code involves multiple domains, they should be submitted to the committers of the corresponding domains. The next review step can be performed only after all committers review and approve the code.
 1. Review APIs (domain SIG). The code of new APIs can be merged only after being reviewed and approved by the domain SIG. If there are changes to existing APIs, the domain SIG should submit them to the API SIG. If the new APIs involve multiple domains, they should be submitted to the SIGs of the corresponding domains. The code can be merged after being reviewed and approved by one of the domain SIGs. If the changed APIs involve multiple domains, they should be submitted to the SIGs of the corresponding domains. The next review step can be performed only after all domain SIGs approve the APIs.
-1. Review API changes (owner: API SIG): The code of changed APIs can be merged only after being reviewed and approved by the API SIG.
+1. Review API changes (API SIG). The code of changed APIs can be merged only after being reviewed and approved by the API SIG.
 1. The review is complete.
 
 ### API Review Application Composites
@@ -175,18 +175,18 @@ Design APIs from the perspective of their users rather than providers.
 
 ### Performance
 1. Respond in a timely manner to avoid callers waiting. If an API call takes a long time, use an asynchronous API.
-2. Pay attention to the impact of the API call timing and frequency on the RAM usage.
-3. Pay attention to the impact of the API call timing and frequency on power consumption.
+2. Make sure that the impact of API call timing and frequency on the RAM usage is under control.
+3. Make sure that the impact of API call timing and frequency on the power consumption is under control.
 4. Resources must be released in a timely manner when APIs that use resources are called. A fault tolerance mechanism must be provided for abnormal scenarios to ensure timely resource release.
 
 ### Power Consumption
 
-1. Evaluate the impact of the API call timing and frequency on power consumption, and perform related design if there is any impact.
-2. The power consumption should not deteriorate during version evolution.
+1. Evaluate the impact of the API call timing and frequency on power consumption, and optimize the design if there is any impact.
+2. Make sure that the power consumption does not deteriorate during version evolution.
 
 ### Reliability
 
-1. APIs cannot crash due to external input (such as input parameters, system status, and external data), internal status, or data exceptions. It must return a specific error code or throw a predefined exception.
+1. APIs shall not crash due to external input (such as input parameters, system status, and external data), internal status, or data exceptions. It must return a specific error code or throw a predefined exception.
 2. It must be specified whether an API is called synchronously or asynchronously. If an API is called synchronously, specify the timeout duration or allow the caller to set the timeout duration to prevent service response failure caused by call suspension.
 3. APIs must support multi-thread reentrant.
 4. APIs must meet the idempotence requirement, which means that the same effect should be obtained for one or multiple API call requests with the same service meaning (except that API call depends on external resource changes). For reentrant API call, avoid introducing time-varying factors, such as system ticks, static variables, and global variables without mutual exclusion protection. For repeated call of the same client, **contextID**, **clientToken**, and **sequenceNo** can be used as input parameters.
diff --git a/en/design/OpenHarmony-part-design.md b/en/design/OpenHarmony-part-design.md
index 75487ee8848e878bc66e531b177880153245f5da..e5d73b5ea6d61e7863ad53b1cc582814e5cb3811 100644
--- a/en/design/OpenHarmony-part-design.md
+++ b/en/design/OpenHarmony-part-design.md
@@ -4,7 +4,7 @@
 
 For easy software design and management, OpenHarmony decouples software from physical components, parts, and modules. A **component** can be independently deployed and reused at the binary level. A **part** can be independently developed, built, and tested. A **module** can be reused at the code level.
 
-OpenHarmony abstracts system capabilities as parts, so you can customize OSs for different devices by assembling and configuring these parts.
+OpenHarmony abstracts system capabilities as parts, so you can assemble and configure these parts to customize an OS for different devices.
 
 ## Part Definition
 
@@ -12,7 +12,7 @@ A part is the basic unit of system capabilities. Divided based on source code, e
 
 ## Part Division
 
-Follow the following rules for part classification:
+Observe the following rules for part classification:
 
 - A part must have an independent code directory for compiling libraries or executable files.
 
@@ -50,7 +50,7 @@ Comply with the following rules and recommendations during parts design and deve
 
 #### **Part Name**
 
-The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used.
+The name must reflect the key function of a part and must be globally unique in the system. It can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used.
 
 #### **Repository Name**
 
@@ -96,21 +96,23 @@ The addition, deletion, and modification of parts must be reviewed by the archit
 
 Table 1 Part attribute review form
 
-| Part Attribute| Description|
+| Part Attribute | Description |
 | ------------ | ------------------------------------------------------------ |
-| Part name| The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used.|
-| Subsystem| Subsystem to which the part belongs.|
-| Function description| Brief description of the functions of the part in one or two sentences.|
-| Configurable features| Features that can be configured externally.|
-| Applicable systems| Mini system, small system, standard system, or their combinations.|
-| Source code directory| Root directory of the source code of the part.|
-| ROM          | ROM baseline value of the part.|
-| RAM          | RAM baseline value of the part.|
-| Dependencies| Parts and open source software on which the part depends.|
+| Part name | The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used. |
+| Subsystem | Subsystem to which the part belongs. |
+| Function description | Brief description of the functions of the part in one or two sentences. |
+| Configurable features | Features that can be configured externally. |
+| Applicable systems | Mini system, small system, standard system, or their combinations. |
+| Source code directory | Root directory of the source code of the part. |
+| ROM          | ROM baseline value of the part. |
+| RAM          | RAM baseline value of the part. |
+| Dependencies | Parts and open source software on which the part depends. |
 
 
 2. Send an email to the architecture SIG (dev@openharmony.io) and the [related domain SIG leaders](https://gitee.com/openharmony/community/blob/master/sig/sigs_subsystem_list.md) for review. Use "Application for Adding/Deleting/Modifying OpenHarmony Parts" as the email subject, and include the filled-in **Table 1 Part Attribute Review Form** in the email body.
 
-> Note: For modified parts, provide a before and after comparison of the part attributes. For deleted parts, provide the plan for stopping part maintenance. Exercise caution when deleting or modifying parts and evaluate the impact on existing versions.
+> Note: 
+>
+> For modified parts, provide a before and after comparison of the part attributes. For deleted parts, provide the plan for stopping part maintenance. Exercise caution when deleting or modifying parts and evaluate the impact on existing versions.
 
 3. After the review is passed, create a part repository and modify the manifest according to [SIG Management Regulations](https://gitee.com/openharmony/community/blob/master/sig/README-EN.md). After the SIG is incubated, incorporate it into the main code library of OpenHarmony.
diff --git a/en/design/figures/HDI-Review-Process.png b/en/design/figures/HDI-Review-Process.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ba581237d86b0de4b6f6ec68bc066b3714adbbd
Binary files /dev/null and b/en/design/figures/HDI-Review-Process.png differ
diff --git a/en/design/hdi-design-specifications.md b/en/design/hdi-design-specifications.md
new file mode 100644
index 0000000000000000000000000000000000000000..dcaf228795c5ffb81a5ddfc90a24aaaf9c7a8237
--- /dev/null
+++ b/en/design/hdi-design-specifications.md
@@ -0,0 +1,483 @@
+# OpenHarmony HDI Design Specifications
+
+## Overview
+
+Hardware device interface (HDI) provides a set of interfaces that function as a bridge between drivers and system services for data transmission. They have a direct impact on system efficiency, stability, compatibility, and reliability, as well as data accuracy and integrity. This document aims to standardize the design and development of OpenHarmony HDI interfaces, thereby ensuring consistent styles and complete functionalities for the interfaces.
+This document is developed by the [driver SIG](https://gitee.com/openharmony/community/blob/master/sig/sig-driver/sig_driver.md) and approved by the [PMC](https://gitee.com/link?target=https%3A%2F%2Fwww.openharmony.cn%2Fcommunity%2Fpmc%2F). Any revision to this document must be reviewed by the driver SIG and approved by the PMC.
+
+**Acronyms**
+
+| Acronym | Full Spelling                           |
+| --- | ------------------------------ |
+| HDI | Hardware Device Interface      |
+| IDL | Interface Description Language |
+
+**Conventions**
+
+**Rule**: a convention that must be complied with
+
+**Rec**: a convention that should be considered
+
+**Note**: an explanation to a rule or rec
+
+**Change History**
+| Version | Change Description              |
+| ---  | --------------------- |
+| v1.0 Beta | This issue is the initial version.              |
+| v1.0  | This issue is the official version.              |
+
+
+## Scope and Definition
+
+![](https://gitee.com/openharmony/docs/raw/master/en/design/figures/API-Category.png)
+
+Located between the system service layer and the device driver layer, HDI provides unified device function abstract interfaces for device developers. It shields the differences of devices from system services.
+
+## General Rules
+
+### Version Control
+
+The HDI version number must be in the format of `major.minor`, where `major` must be an integer increased in ascending order and `minor` is a one-digit integer.
+
+- A change in `major` indicates architecture adjustment or interface definition that is not backward compatible. 
+
+- A change in `minor` indicates enhanced or extended interface definitions that are backward compatible.
+
+When `major` changes, `minor` is reset to `0`.
+
+[Example]
+
+For released vibrator interfaces:
+
+```cpp
+package ohos.hdi.vibrator.v1_0;
+interface IVibrator {
+   ...
+   SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int frequency);
+   ...
+}
+```
+
+If the update to the existing interfaces does not affect version compatibility, for example, adding a function, adding an enum definition, or changing a variable name, change only `minor`, for example, to `ohos.hdi.vibrator.v1_1`, as follows:
+
+```cpp
+package ohos.hdi.vibrator.v1_1;
+interface IVibrator {
+   ...
+   SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int freq);
+   ...
+}
+```
+
+If the original interface is renamed or the variable list is modified, change `major`, for example, to `ohos.hdi.vibrator.v2_0`, as follows:
+
+```cpp
+package ohos.hdi.vibrator.v2_0;
+interface IVibrator {
+   ...
+   SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int frequency, [int] time);
+   ...
+}
+```
+
+### Review and Control
+
+HDI interfaces are provided to implement upper-layer system service requirements and perform hardware operations (such as initialization). New and updated interfaces must be fully reviewed and strictly controlled. Only interfaces that meet universal requirements can be added.
+
+Table 1 Interface review and control roles
+
+| **Role**   | **Responsibility**                                   |
+| ----------- | ------------------------------------------------ |
+| Contributor | Write HDI code and submit the code and design documents for review.                   |
+| Committer   | Review the HDI code, and submit the code to the domain SIG for further review.                           |
+| Domain SIG    | Review the new or updated HDI code.|
+| Driver SIG  | Review the new or updated HDI code.                                 |
+| PMC         | Revise and publish this design specifications.                 |
+
+### Release
+
+- HDI review process
+
+    ![](figures/HDI-Review-Process.png)
+
+    The main process is as follows:
+
+    1. The contributor commits code and initiates a review. In addition to the code of new or updated HDI interfaces, the contributor must provide information about the HDI requirement source, usage scenario, permission design, and privacy protection design. For details, see "Review application composites" below. To increase the review efficiency, the contributor can email the design documents to the committer, domain SIG, and driver SIG before submitting the review application.
+    2. The committer reviews the code and HDI interfaces.
+    3. The domain SIG reviews the new or updated HDI interfaces.
+    4. The driver SIG reviews and approves the new or updated HDI interfaces.
+    5. The review is complete, and the code is merged.
+
+- Review application composites
+
+    After the HDI design is complete, the domain SIG must organize an effective review and provide the following documents before HDI release:
+
+    - Complete and reasonable test cases
+
+    - **HDI version differences, with a clear addition or change scope**
+
+    - Complete interface context, which must be provided in the design document to specify when and how to use each interface
+
+    - Resource status transition diagram in the design document for resource-oriented interfaces
+
+    - Compliance with the HDI design constraints proposed in this document
+
+- Requirements
+
+    1. Change `major` for any release that is incompatible with earlier versions.
+
+    2. Change `minor` for any interface released for function extension.
+
+    3. To deprecate any released interface:
+
+        - The `deprecated` flag must be provided.
+
+        - The deprecated interfaces must be retained in at least four OpenHarmony HDI versions.
+
+## HDI Design Constraints
+
+### Consistency
+
+#### [Rule] Use consistent nouns for terms.
+
+Multiple nouns with similar semantic meanings are not allowed to represent the same service object. Similarly, to avoid confusion, it is not allowed to use the same noun or linguistically close nouns for different service objects.
+
+#### [Rule] Keep the parameter sequence consistent.
+
+The sequence of a parameter or parameter group in multiple interfaces must be the same.
+
+For object-oriented C programming, place the interface object as the first parameter by convention.
+
+#### [Rule] Keep the memory ownership consistent.
+
+If the memory (storage data) passed through the input parameter (in) or output parameter (out) is allocated by the caller, the memory must be released by the caller. If the memory is allocated by the callee, it must be released by the callee. Regardless of whether data is passed from a service to a driver or received from a driver, the ownership of the data should not be changed, which must always be the memory allocator.
+
+[Example]
+
+```cpp
+int (*OpenLayer)(uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId);
+```
+
+When **OpenLayer** is called, the graphics layer data memory is allocated based on the input parameter **layerInfo**, and a layer ID is returned.
+
+```cpp
+int (*CloseLayer)(uint32_t devId, uint32_t layerId);
+```
+
+A **CloseLayer** interface must be provided to release the graphics layer data memory when the caller finishes the operation.
+
+#### [Rule] Provide a specific return value for every synchronous interface.
+
+When defining a synchronous interface, you must define the return value and provide necessary invocation status information to specify whether the invocation is successful. If the invocation fails, specify the cause of the failure. You can define a return value based on the actual error cause.
+
+[Exceptions]
+
+If an interface is unidirectional, which means that a value can be returned without waiting for the interface to be executed, use the keyword `one way` in the comment. Example:
+
+```cpp
+/* one way */
+void WriteReady();
+```
+
+### Naming
+
+#### [Rule] Name an interface in the format of "I" + "*interface name*".
+Interface names must be concise, easy to understand, and accurate. Avoid redundant and misleading words, or rare abbreviations.
+
+[Example]
+```
+    /* Good */
+    interface IBattery {
+        ...
+    }
+
+   /* Bad: The Interface suffix is redundant. */
+    interface IBatteryInterface {
+        ...
+    }
+```
+#### [Rule] Name the HDI package in the format of "package ohos.hdi.[interface_name].v[major_version]_[minor_version]".
+[Example]
+```
+    /* Good */
+    package ohos.hdi.battery.v1_0;
+    interface IBattery {
+        ...
+    }
+
+   /* Bad: The hdi namespace and version information are missing. */
+   package ohos.battery;
+    interface IBattery {
+        ...
+    }
+```
+#### [Rule] Name classes, structs, functions, and parameters in camel case.
+**Camel case style**
+Camel case is the practice of writing words without spaces. It indicates the separation of words with a single capitalized letter, and the first word starts with either case, bringing about **UpperCamelCase** and **lowerCamelCase**.
+
+
+| Type                                      | Style     |
+| ---------------------------------------- | --------- |
+| Interface types, functions, struct types, enum types, and union types      | UpperCamelCase      |
+| Parameters, and member variables in a struct or union| lowerCamelCase      |
+| Constants and enums                 | All uppercase letters, separated by underscores (_)|
+
+#### [Rule] Use the interface class name as the interface file name and `.idl` as the file name extension.
+- An independent interface file must be provided for every interface class, and the file name must be the same as that of the interface class (UpperCamelCase) and end with `.idl`.
+- The description file of the type definition must be named `Types.idl` or `ExampleTypes.idl`.
+
+[Example]
+
+```
+    package ohos.hdi.battery.v1_0;
+    interface IBattery {
+        ...
+    }
+```
+   The interface description file must be named `IBattery.idl`.
+
+### Ease to Use
+
+#### [Rule] Follow the single responsibility principle.
+
+The functionalities of each interface must be stable and clear, and the trigger source of interface changes must be unique.
+
+[Example]
+
+When the device status consists of the power status and port status, use two interfaces rather than one.
+
+**Correct Example**
+
+```cpp
+int UpdatePowerState(int_t deviceId, int status); // This interface is used to update the power status of the device.
+
+int UpdatePortStatus(int deviceId, int status); // This interface is used to update the port status of the device.
+```
+
+**Incorrect Example**
+
+```cpp
+int UpdateDeviceStatus(int deviceId, int powerStatus, int portStatus);
+```
+
+#### [Rule] Consider cohesion during interface parameter design.
+
+When defining an interface parameter, consider whether to pass the parameter separately or encapsulate the parameter in a struct based on the following factors:
+
+1. Is there a meaningful encapsulation boundary?
+
+    If there is obvious cohesion or association between parameters, you can encapsulate these parameters in a struct.
+
+2. Is there any other use of this struct if structured parameters are used?
+
+    If no, pass the parameter separately.
+
+3. Does a parameter group occur in multiple interfaces?
+
+    If yes, you can pass these parameters as a struct. In this case, you also need to consider whether these parameter groups are cohesive.
+
+4. Is there a large number of optional parameters, or do they usually be assigned a default value?
+
+    If yes, you can use a struct to simplify the invocation.
+
+[Example]
+
+Audio sampling attributes include the sampling format, sampling frequency, and number of channels. These attributes are also sampling related and can be passed as a struct.
+
+```cpp
+struct AudioSampleAttributes
+{
+    enum AudioFormat format;
+    uint32_t sampleRate;
+    uint32_t channelCount;
+};
+```
+
+#### [Rule] Make interfaces of different device types independent from each other.
+
+Interfaces are managed by driver type, such as `Camera`, `Input`, `Display`, `Audio`, `Sensor`, and `Storage`. Interfaces of different device types should not depend on each other. It is recommended that common capabilities that may be used by more than two types of driver modules be abstracted as common interfaces and archived to the common interface capability library for management.
+
+[Exceptions]
+
+There is no restriction on the interfaces that provide common capabilities. For example, the definition of primitive types and the declaration of interfaces can be referenced by all interfaces.
+
+### Privacy Protection
+
+### [Rule] Consider privacy security.
+
+System services can access data such as device information and identifiers through drivers. Certain information, such as device names, serial numbers, and device addresses, is sensitive data defined in privacy protection specifications. During HDI design, pay attention to the use of these fields and review them carefully and thoroughly to ensure that the interfaces will never expose sensitive information.
+
+[Example]
+
+`Bluetooth` addresses are mainly used in device discovery and connection scenarios. When a device is discoverable, the `Bluetooth` address could be used for personal tracking.
+
+The major purpose of obtaining a `Bluetooth` address is to uniquely identify a device. Therefore, you can convert the `Bluetooth` address into a unique identifier for invocation or restrict the application scope of this interface.
+
+### Permission Control
+
+#### [Rule] Minimize the interface permissions.
+
+All behaviors across application sandboxes must be controlled by permissions. A specific permission can be granted only to applications that have legitimate service requirements.
+
+### Performance
+
+#### [Rule] Consider data transmission efficiency.
+
+Drivers have a large number of data transmission interfaces. Data transmission may involve inter-process communication (IPC), which increases system overheads or even trigger system scheduling. Therefore, you need to consider all situations when defining interfaces. For the data that must be transmitted between processes with low overhead and low latency, you can use the shared memory or message queue.
+
+[Example]
+
+Define a data transmission interface for a driver module as follows:
+
+```cpp
+// IPC is not involved (direct interface calling).
+int WriteData (...); // Define the data address pointer and data length as input parameters.
+
+/*
+ * IPC is involved.
+ *
+ * Define a shared memory or message queue object as the input parameter.
+ * In this way, data can be efficiently transmitted (since repetitive operations can be minimized).
+ */
+int PrepareWriteData(…);
+```
+
+#### [Rec] Consider the interface execution time.
+
+To improve IPC performance, you are advised to use asynchronous processing for time-consuming services on the server. If the client needs to wait for the result synchronously, you are advised to add a block on the client and use the asynchronous callback mode so that the IPC channel can be released in time.
+
+[Example]
+
+The `Camera` driver provides a device initialization interface, the execution of which takes more than 150 ms due to software and hardware reasons. If this interface uses synchronous mode, the camera HDI service IPC thread may be occupied for a long time, and other requests fail to be responded in time. It is more reasonable to design this interface as an asynchronous one. A callback can be used to return the initialization result to the client. If the client needs to wait for the return value before continuing other operations, it can block the process and wait for the callback result.
+
+#### [Rec] Minimize the number of new process entities.
+
+To reduce the system overhead, interfaces of the same type in the same subsystem must be deployed in the same process. Add processes only when they are necessary.
+
+### Power Consumption
+
+#### [Rule] Consider system power consumption.
+
+When the caller releases hardware resources, the corresponding driver module should release the wake lock so the system will not be prevented from sleeping.
+
+### Reliability
+
+#### [Rule] Mutual dependency is forbidden for the lifecycle of interface parameters.
+
+The lifecycle of interface parameters must be independent. Mutual dependency is prohibited. Pointer parameters should not point to the memory of other objects, for example, the serialized memory. This is because when the serialized memory is passed to the peer function, the memory block lifecycle disappears after the parameter is parsed, but the pointer may be passed between different functions, resulting in vulnerabilities such as Used After Free (UAF).
+
+[Example]
+
+Both `ReadUnpadBuffer` and `ReadCString` return a pointer variable that points to the internal memory of the serialized object. When the server callback is triggered, the serialized object used to pass the parameters is destroyed and the memory is free. If other processes on the server still use the pointers returned by the two interfaces, crash may occur due to the UAF.
+
+The correct practice is to copy the data to the memory managed by the service before using the data after the service response interface returns the data.
+
+#### [Rule] Consider reentrancy.
+
+Interfaces often need to support multiple clients, and a single client may have concurrent requests. Therefore, you must consider reentrancy during HDI design. To ensure correct processing of reentrant interfaces, use locks or semaphores to protect critical resources.
+
+[Example]
+
+A driver service provides resource request and release interfaces. When two clients request resources at the same time, if reentrancy is not considered for critical resources on the server, resources may be released in advance or cannot be released due to management data read/write competition. The correct practice is to lock critical resources.
+
+#### [Rec] Consider the transmission buffer capability.
+
+No flow control is posed on the amount of data sent in an interface or callback. However, if the data volume of an interface exceeds the maximum transmission buffer size, consider using a block until the resource is available.
+
+[Example]
+
+When memory application fails, you can use a semaphore to block the current thread until the memory is available.
+
+#### [Rule] Do not pass function pointers across address spaces.
+
+Virtual address space isolation is used between processes. Passing function pointers through IPC will cause access exceptions. Therefore, do not pass function pointers. To implement a callback function, use a callback object instead.
+
+[Example]
+
+The Wi-Fi module provides an interface to receive a callback triggered when the client accepts the server request. An incorrect practice is to write the function pointer implemented by the client to the serialized object, which causes a crash when the function pointer is called on the server.
+
+The correct practice is to design and implement the callback interface using a callback object, and pass the callback object to the server through the serialization interface, so the server can trigger the callback when needed.
+
+### Compatibility
+
+#### [Rule] Verify the version number before the client calls an interface.
+
+Due to the independent component update policy, the version number of an interface on the client may be different from that on the server. This requires the client to verify the version number on the server and use the matching version to call the interface on the server.
+
+[Example]
+
+Assume that the TP module provides interfaces of versions 1.0 and 1.1. The later version has new interfaces. The components on the client have updated to 1.1, and the server still uses 1.0. If the client directly calls an interface of 1.1 on the server, an error may occur. Instead, the client must use the service version query interface to check the server version. If the server version is 1.0, the client must use the interface of 1.0 to call the server.
+
+#### [Rule] Release HDI interfaces in .idl format.
+
+Currently, Unix-like drivers use virtual file system (VFS) interfaces to expose internal interfaces. The user mode and kernel mode communicate with each other using system calls. They are packed in different images, and two sets of interfaces are maintained separately. To ensure the consistency of the interface definition and parameter format between the two and consider the design objective of cross-kernel hardware driver foundation (HDF) deployment, release interfaces in .idl format and use a tool to generate interfaces of the target form. In addition, the user-mode caller is not allowed to operate the driver VFS interfaces through the file interface. This causes the framework to strongly depend on the kernel and violates the principle of depending on the interface instead of the implementation.
+
+Recommended practice: The driver provides interfaces in .idl format and encapsulates the access to the kernel device in the interface implementation.
+
+[Example]
+
+An input device provides query interfaces for attributes such as the device type and data precision. The input service should not directly access the VFS interface created by the kernel in open-ioctl mode. Instead, the input driver should provide an interface to abstract the input device as an object. Then the input service calls this interface to implement the required functionalities.
+
+### Documentation
+
+#### [Rule] Release HDI interfaces in .idl format.
+To ensure interface compatibility and consistency, release interfaces in .idl format. It is prohibited to directly release interfaces in C/C++ header files.
+
+
+#### [Rule] Provide an interface description during interface release.
+The interface description must contain the interface functionality, parameter value range, return values, and precautions. The description text must be placed above the interface description in the .idl file and released with the interface.
+
+[Example]
+
+```
+/**
+    * @brief Obtains the executor information.
+    *
+    * @param executorInfo Indicates the executor information. For details, see {@link ExecutorInfo}.
+    *
+    * @return Returns <b>0</b> if the operation is successful.
+    * @return Returns a non-zero value if the operation fails.
+    */
+GetExecutorInfo([out] struct ExecutorInfo executorInfo);
+```
+
+### Programming Languages
+
+To ensure data interworking between interfaces implemented in different programming languages, follow the restrictions below when using data types in the interface description.
+
+#### Constraints on using basic data types
+
+| IDL Data Type | C++ Data Type | C Data Type       | Data Length (Bytes)|
+| -------------- | ----------- | --------------- | ----------- |
+| void           | void        | void            | NA          |
+| boolean        | bool        | bool            | 1           |
+| byte           | int8_t      | int8_t          | 1           |
+| short          | int16_t     | int16_t         | 2           |
+| int            | int32_t     | int32_t         | 4           |
+| long           | int64_t     | int64_t         | 8           |
+| float          | float       | float           | 4           |
+| double         | double      | double          | 8           |
+| String         | std::string | char*, int size | NA          |
+| unsigned char  | uint8_t     | uint8_t         | 1           |
+| unsigned short | uint16_t    | uint16_t        | 2           |
+| unsigned int   | uint32_t    | uint32_t        | 4           |
+| unsigned long  | uint64_t    | uint64_t        | 8           |
+
+#### Constraints on Using Container Types
+
+| IDL Container Data Type| C++ Data Type     | C Data Type      |
+| ----------- | ------------ | ----------- |
+| List<T>     | std::list<T> | T*,int size |
+
+#### Constraints on Using Array Types
+
+| IDL Array Data Type | C++ Data Type       | C Data Type      |
+| --------- | -------------- | ----------- |
+| T[]       | std::vector<T> | T*,int size |
+
+#### Constraints on Using Custom Types
+
+| IDL Custom Data Type| C++ Data Type| C Data Type |
+| ------- | ------- | ------ |
+| struct  | struct  | struct |
+| enum    | enum    | enum   |
diff --git a/en/device-dev/device-dev-guide.md b/en/device-dev/device-dev-guide.md
index 01a4430c3b51bbf5589007615b5f69c9ced0a469..65f1bdf8e5afcdaa4c8d092f68d87eb6ad406693 100644
--- a/en/device-dev/device-dev-guide.md
+++ b/en/device-dev/device-dev-guide.md
@@ -36,7 +36,7 @@ In addition, OpenHarmony provides a wide array of system components that can be
 | Getting started       | Getting started with setup, build, burning, debugging, and running of OpenHarmony         | - [Mini and Small System Overview](quick-start/quickstart-ide-lite-overview.md)|
 | Basic capabilities   | Using basic capabilities of OpenHarmony                               | - [Kernel for Mini System](kernel/kernel-mini-overview.md)<br>- [Kernel for Small System](kernel/kernel-small-overview.md)<br>- [HDF](driver/driver-hdf-overview.md)<br>- [Subsystems](subsystems/subsys-build-mini-lite.md)<br>- [Security Guidelines](security/security-guidelines-overall.md)<br>- [Privacy Protection](security/security-privacy-protection.md)|
 | Advanced development       | Developing smart devices based on system capabilities                                    | - [WLAN-connected Products](guide/device-wlan-led-control.md)<br>- [Cameras Without a Screen](guide/device-iotcamera-control-overview.md)<br>- [Cameras with a Screen](guide/device-camera-control-overview.md) |
-| Porting and adaptation       | - Porting and adapting OpenHarmony to an SoC<br>- Porting and adapting OpenHarmony to a third-party library<br>- Third-party vendor porting cases<br>| - [Mini System SoC Porting Guide](porting/porting-minichip.md)<br>- [Small System SoC Porting Guide](porting/porting-smallchip-prepare-needs.md)<br>- [Third-Party Library Porting Guide for Mini and Small Systems](porting/porting-thirdparty-overview.md) <br>   - [Mini-System Devices with Screens — Bestechnic SoC Porting Case](porting-bes2600w-on-minisystem-display-demo.md)<br>    - [Combo Solution – ASR Chip Porting Case](porting/porting-asr582x-combo-demo.md)<br> |
+| Porting and adaptation       | - Porting and adapting OpenHarmony to an SoC<br>- Porting and adapting OpenHarmony to a third-party library<br>- Third-party vendor porting cases<br>| - [Mini System SoC Porting Guide](porting/porting-minichip.md)<br>- [Small System SoC Porting Guide](porting/porting-smallchip-prepare-needs.md)<br>- [Third-Party Library Porting Guide for Mini and Small Systems](porting/porting-thirdparty-overview.md) <br>   - [Mini-System Devices with Screens — Bestechnic SoC Porting Case](porting/porting-bes2600w-on-minisystem-display-demo.md)<br>    - [Combo Solution – ASR Chip Porting Case](porting/porting-asr582x-combo-demo.md)<br> |
 | Contributing components       | Contributing components to OpenHarmony                                   | - [HPM Part Overview](hpm-part/hpm-part-about.md)<br>- [HPM Part Development](hpm-part/hpm-part-development.md)<br>- [HPM Part Reference](hpm-part/hpm-part-reference.md) |
 | Reference | Referring to development specifications | [FAQs](faqs/faqs-overview.md) |
 
diff --git a/en/device-dev/driver/driver-peripherals-lcd-des.md b/en/device-dev/driver/driver-peripherals-lcd-des.md
index 06941d7c81bcd714357cb6a9e5e22997aa91a2ad..d5ba25a559c9c255a829ac083e869c0b28db9b00 100644
--- a/en/device-dev/driver/driver-peripherals-lcd-des.md
+++ b/en/device-dev/driver/driver-peripherals-lcd-des.md
@@ -319,7 +319,7 @@ static struct PanelInfo g_panelInfo = {
     .vsw = VERTICAL_SYNC_WIDTH,         /* vertical sync width */
     .frameRate = FRAME_RATE,            /* frame rate */
     .intfType = MIPI_DSI,               /* panel interface type */
-    .intfSync = OUTPUT_USER,            /* output timming type */
+    .intfSync = OUTPUT_USER,            /* output timing type */
     /* MIPI configuration */
     .mipi = { DSI_2_LANES, DSI_VIDEO_MODE, VIDEO_BURST_MODE, FORMAT_RGB_24_BIT },
     /* backlight config info */
diff --git a/en/device-dev/driver/driver-platform-adc-des.md b/en/device-dev/driver/driver-platform-adc-des.md
index f7075aa1d07a13320c429b23de01b41e5e18f25a..76c73fb3e947e45190831c6f060ae1c1ac1d97db 100644
--- a/en/device-dev/driver/driver-platform-adc-des.md
+++ b/en/device-dev/driver/driver-platform-adc-des.md
@@ -1,64 +1,79 @@
-# ADC<a name="1"></a>
+# ADC
 
-## Overview<a name="section1"></a>
+## Overview
+
+### Function
 
 An analog-to-digital converter (ADC) is a device that converts analog signals into digital signals.
 
 The ADC APIs provide a set of common functions for ADC data transfer, including:
-- Opening or closing an ADC device
+-  Opening or closing an ADC device
+-  Obtaining the analog-to-digital (AD) conversion result
+
+### Basic Concepts
+
+The ADC converts analog parameters into digital parameters for easy storage and computing. The technical specifications of the ADC include the following:
+
+- Resolution
+  
+  The number of binary bits that can be converted by an ADC. A greater number of bits indicates a higher resolution.
+- Conversion error
+  
+  Difference between the actual and theoretical digital values output by an ADC. It is expressed by a multiple of the least significant bit. Generally, the maximum output error is used.
+- Transition time
+  
+  Time required by an ADC to perform a complete conversion.
+
+### Working Principles
+
+In the Hardware Driver Foundation (HDF), the ADC module uses the unified service mode for API adaptation. In this mode, a service is used as the ADC manager to handle external access requests in a unified manner. The unified service mode applies when the system has multiple device objects of the same type. If the independent service mode is used in this case, more device nodes need to be configured and more memory resources will be consumed.
+
+The ADC module is divided into the following layers:
+
+- Interface layer: provides APIs for opening or closing a device and writing data.
+- Core layer: provides the capabilities of binding, initializing, and releasing devices.
+- Adaptation layer: implements driver-specific functions.
+
+In addition to the power and ground cables, the ADC requires only one cable to connect to the target device. The figure below shows the physical connection.
 
--   Obtaining the analog-to-digital (AD) conversion result
+**Figure 1** ADC physical connection
 
-    **Figure 1** ADC physical connection
-	
-    ![](figures/ADC_physical_connection.png "ADC_physical_connection")
 
-## Available APIs<a name="section2"></a>
+![](figures/ADC_physical_connection.png "ADC_physical_connection")
+
+### Constraints
+
+Currently, the ADC module supports only the kernels (LiteOS) of mini and small systems.
+
+## Usage Guidelines
+
+### When to Use
+
+An ADC is usually used to convert an analog voltage into a digital parameter, for example, it is used with a microphone to collect sound, used with an NTC resistor to measure temperature, or converts the output of analog sensors into digital parameters.
+
+### Available APIs
+
+The table below describes the APIs of the ADC module. For more details, see API Reference.
 
 **Table 1** APIs of the ADC driver
 
-<a name="table1"></a>
-
-<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="18.63%"><p>Category</p>
-</th>
-<th class="cellrowborder" valign="top" width="28.03%"><p>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="53.339999999999996%"><p>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr><td class="cellrowborder" bgcolor="#ffffff" rowspan="2" valign="top" width="18.63%"><p>Managing ADC devices</p>
-</td>
-<td class="cellrowborder" valign="top" width="28.03%"><p>AdcOpen</p>
-</td>
-<td class="cellrowborder" valign="top" width="53.339999999999996%">Opens an ADC device.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top"><p>AdcClose</p>
-</td>
-<td valign="top"><p>Closes an ADC device.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" bgcolor="#ffffff" valign="top" width="18.63%"><p>Obtaining the conversion result</p>
-</td>
-<td class="cellrowborder" valign="top" width="28.03%"><p>AdcRead</p>
-</td>
-<td class="cellrowborder" valign="top" width="53.339999999999996%"><p>Reads the AD conversion result.</p>
-</td>
-</tr>
-</table>
-
-## Usage Guidelines<a name="section3"></a>
-
-### How to Use<a name="section4"></a>
-
-The figure below illustrates how to use the APIs.
-
- **Figure 2** Using ADC driver APIs
-
-![](figures/using-ADC-process.png "using-ADC-process.png")
-
-### Opening an ADC Device<a name="section5"></a>
+
+| API  | Description            |
+| -------- | ---------------- |
+| AdcOpen  | Opens an ADC device.     |
+| AdcClose | Closes an ADC device.     |
+| AdcRead  | Obtains the AD conversion result.|
+
+### How to Develop
+
+The figure below shows the general development process.
+
+ **Figure 2** Process of using ADC APIs 
+
+![](figures/using-ADC-process.png)
+
+
+#### Opening an ADC Device.
 
 Call **AdcOpen** to open an ADC device.
 
@@ -68,43 +83,20 @@ DevHandle AdcOpen(int16_t number);
 
 **Table 2** Description of AdcOpen
 
-<a name="table2"></a>
-
-<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="20.66%"><p> Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="79.34%"><p><strong>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr><td class="cellrowborder" valign="top" width="20.66%"><p>number</p>
-</td>
-<td class="cellrowborder" valign="top" width="79.34%"><p>ADC device number.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="20.66%"><p><strong>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="79.34%"><p><strong>Description</strong></p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="20.66%"><p>NULL</p>
-</td>
-<td class="cellrowborder" valign="top" width="79.34%"><p>Failed to open the ADC device.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="20.66%"><p>Device handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="79.34%"><p>Handle of the ADC device opened.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-For example, open device 1 of the two ADCs (numbered 0 and 1) in the system.
+
+| Parameter      | Description         |
+| ---------- | ----------------- |
+| number     | ADC device number.        |
+| **Return Value**| **Description**   |
+| NULL       | The operation failed.  |
+| Device handle  | The operation is successful. The handle of the ADC device opened is returned.|
+
+Example: Open device 1 of the two ADCs (numbered 0 and 1) in the system.
 
 ```c
 DevHandle adcHandle = NULL; /* ADC device handle /
 
-/* Open the ADC device. */
+/* Open ADC device 1. */
 adcHandle = AdcOpen(1);
 if (adcHandle == NULL) {
     HDF_LOGE("AdcOpen: failed\n");
@@ -112,7 +104,7 @@ if (adcHandle == NULL) {
 }
 ```
 
-### Obtaining the AD Conversion Result<a name="section6"></a>
+#### Obtaining the AD Conversion Result
 
 ```c
 int32_t AdcRead(DevHandle handle, uint32_t channel, uint32_t *val);
@@ -120,48 +112,30 @@ int32_t AdcRead(DevHandle handle, uint32_t channel, uint32_t *val);
 
 **Table 3** Description of AdcRead
 
-<a name="table3"></a>
-
-<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="50%"><p><strong> Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="50%"><p><strong>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr><td class="cellrowborder" valign="top" width="50%"><p>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>ADC device handle.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p>channel</p>
-</td>
-<td class="cellrowborder"valign="top" width="50%"><p>ADC device channel number.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p>val</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>AD conversion result.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p><strong>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p><strong>Description</strong></p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>The operation is successful.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p>Negative number</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>Failed to obtain the AC conversion result.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-### Closing an ADC Device<a name="section7"></a>
+
+| Parameter      | Description      |
+| ---------- | -------------- |
+| handle     | ADC device handle.   |
+| channel    | ADC device channel number. |
+| val        | Pointer to the AD conversion result.    |
+| **Return Value**| **Description**|
+| 0          | The operation is successful.      |
+| Negative value      | The operation failed.      |
+
+Example: Obtain the AD conversion result of channel 1.
+
+```c
+uint32_t value;
+int32_t ret;
+
+ret = AdcRead(adcHandle, 1, &value);
+if (ret != 0) {
+    HDF_LOGE("ADC read fail!\n");
+    return;
+}
+```
+
+#### Closing an ADC Device
 
 Call **AdcClose** to close the ADC device after the ADC communication is complete.
 ```c
@@ -169,31 +143,12 @@ void AdcClose(DevHandle handle);
 ```
 **Table 4** Description of AdcClose
 
-<a name="table4"></a>
-
-<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="50%"><p> Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="50%"><p>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr><td class="cellrowborder" valign="top" width="50%"><p>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>ADC device handle.</p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p><strong>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p><strong>Description</strong></p>
-</td>
-</tr>
-<tr><td class="cellrowborder" valign="top" width="50%"><p>None</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p>No value is returned if the ADC device is closed.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+| Parameter  | Description   |
+| ------ | ----------- |
+| handle | ADC device handle.|
+| **Return Value**| **Description** |
+| N/A    | N/A         |
 
 Example:
 
@@ -201,9 +156,9 @@ Example:
 AdcClose(adcHandle); /* Close the ADC device. */
 ```
 
-## Example<a name="section8"></a>
+### Example
 
-This following example shows how to use ADC APIs to manage an ADC device on a Hi3516D V300 development board.
+This following example shows how to use ADC APIs to manage an ADC device on a Hi3516D V300 board.
 
 The basic hardware information is as follows:
 
@@ -242,7 +197,7 @@ static int32_t TestCaseAdc(void)
     for (i = 0; i < 30; i++) {
         ret = AdcRead(adcHandle, ADC_CHANNEL_NUM, &readBuf[i]);
         if (ret != HDF_SUCCESS) {
-            HDF_LOGE("%s: tp ADC write reg fail!:%d", __func__, ret);
+            HDF_LOGE("%s: Failed to read ADC!:%d", __func__, ret);
             AdcClose(adcHandle);
             return -1;
         }
diff --git a/en/device-dev/driver/driver-platform-dac-des.md b/en/device-dev/driver/driver-platform-dac-des.md
index 45cd858317a5affefb3bb285322f73c92b0b380c..4cffd91b8618ab4f466ce32f1ff0ca3e959f1e6b 100644
--- a/en/device-dev/driver/driver-platform-dac-des.md
+++ b/en/device-dev/driver/driver-platform-dac-des.md
@@ -1,6 +1,5 @@
 # DAC
 
-
 ## Overview
 
 ### DAC
@@ -8,11 +7,9 @@
 A digit-to-analog converter (DAC) is a device that converts a digital signal into an analog signal in electronics.
 
 The DAC APIs provide a set of methods for DAC data transfer, including:
-
 - Opening or closing a DAC device
 - Setting the target digital-to-analog (DA) value
 
-
 ### Basic Concepts
 
 The DAC module provides the output channel for the process control computer system. It connects to the executor to implement automatic control of the production process. It is also an important module in the analog-to-digital converter using feedback technologies.
@@ -35,29 +32,31 @@ The DAC module provides the output channel for the process control computer syst
 
 ### Working Principles
 
-In the Hardware Driver Foundation (HDF), the DAC module uses the unified service mode for API adaptation. In this mode, a device service is used as the DAC manager to handle access requests from the devices of the same type in a unified manner. The unified service mode applies to the scenario where there are many device objects of the same type. If the independent service mode is used, more device nodes need to be configured and memory resources will be consumed by services. The figure below shows the unified service mode.
+In the Hardware Driver Foundation (HDF), the DAC module uses the unified service mode for API adaptation. In this mode, a service is used as the DAC manager to handle external access requests in a unified manner. The unified service mode applies when the system has multiple device objects of the same type. If the independent service mode is used in this case, more device nodes need to be configured and more memory resources will be consumed. The figure below shows the unified service mode.
 
 The DAC module is divided into the following layers:
-- The interface layer provides APIs for opening or closing a device and writing data.
-- The core layer provides the capabilities of binding, initializing, and releasing devices.
-- The adaptation layer implements other functions.
 
->![](../public_sys-resources/icon-note.gif) **NOTE**<br>
->The core layer can call the functions of the interface layer and uses the hook to call functions of the adaptation layer. In this way, the adaptation layer can indirectly call the functions of the interface layer, but the interface layer cannot call the functions of the adaptation layer.
+- Interface layer: provides APIs for opening or closing a device and writing data.
+- Core layer: provides the capabilities of binding, initializing, and releasing devices.
+- Adaptation layer: implements driver-specific functions.
+
+>![](../public_sys-resources/icon-note.gif) **NOTE**
+> 
+> The core layer can call the functions of the interface layer and uses a hook to call functions of the adaptation layer. In this way, the adaptation layer can indirectly call the functions of the interface layer, but the interface layer cannot call the functions of the adaptation layer.
 
 **Figure 1** Unified service mode
 
-![](figures/unified-service-mode.png "DAC-unified-service-mode")
+![](figures/unified-service-mode.png "DAC unified service mode")
 
 ### Constraints
 
- Currently, the DAC module supports only the kernels (LiteOS) of mini and small systems.
+Currently, the DAC module supports only the kernels (LiteOS) of mini and small systems.
 
-## Development Guidelines
+## Usage Guidelines
 
 ### When to Use
 
- The DAC module converts digital signals into analog signals in the form of current, voltage, or charge. It is mainly used in audio devices. Audio players and headsets use the DAC module as the digital-to-analog conversion channels.
+The DAC module converts digital signals into analog signals in the form of current, voltage, or charge. It is mainly used in audio devices. Audio players and headsets use the DAC module as the digital-to-analog conversion channels.
 
 ### Available APIs
 
@@ -65,45 +64,44 @@ The table below describes the APIs of the DAC module. For more details, see API
 
 **Table 1** DAC driver APIs
 
-| API                                                     | Description        |
-| :------------------------------------------------------------| :------------ |
-| DevHandle DacOpen(uint32_t number)                           | Opens a DAC device. |
-| void DacClose(DevHandle handle)                              | Closes a DAC device. |
-| int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val) | Sets a target DA value. |
+| API                                                             | Description         |
+| ------------------------------------------------------------------ | ------------ |
+| DevHandle DacOpen(uint32_t number)                                 | Opens a DAC device. |
+| void DacClose(DevHandle handle)                                    | Closes a DAC device. |
+| int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val) | Sets a target DA value.|
 
 ### How to Develop
 
-The figure below illustrates how to use the APIs.
+The figure below shows the general development process.
+
+**Figure 2** Process of using DAC APIs
 
-**Figure 2** Using DAC driver APIs
 
-![](figures/using-DAC-process.png "using-DAC-process.png")
+![](figures/using-DAC-process.png)
 
 #### Opening a DAC Device
 
 Call **DacOpen()** to open a DAC device before performing the DA conversion.
 
-```
+```c++
 DevHandle DacOpen(uint32_t number);
 ```
 
 **Table 2** Description of DacOpen
 
-| **Parameter**     | Description         |
-| ---------- | ----------------- |
-| number     | DAC device number.        |
-| **Return Value**| **Description**  |
-| NULL       | Failed to open the DAC device.  |
-| Device handle  | Handle of the DAC device opened.|
-
-
+| Parameter      | Description         |
+| --------- | ---------------- |
+| number    | DAC device number.       |
+| **Return Value**| **Description**    |
+| NULL      | The operation failed. |
+| Device handle  | The operation is successful. The handle of the DAC device opened is returned.|
 
-Open device 1 of the two ADC devices (numbered 0 and 1) in the system.
+Example: Open device 1 of the two DAC devices (numbered 0 and 1) in the system.
 
-```
+```c++
 DevHandle dacHandle = NULL; /* DAC device handle /
 
-/* Open the DAC device. */
+/* Open DAC device 1. */
 dacHandle = DacOpen(1);
 if (dacHandle == NULL) {
     HDF_LOGE("DacOpen: failed\n");
@@ -113,23 +111,22 @@ if (dacHandle == NULL) {
 
 #### Setting a Target DA Value
 
-```
+```c++
 int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val);
 ```
 
 **Table 3** Description of DacWrite
 
-
-| **Parameter**     | Description      |
-| ---------- | -------------- |
-| handle     | DAC device handle.   |
-| channel    | DAC channel number. |
-| val        | DA value to set.    |
+| Parameter      | Description     |
+| --------- | ------------ |
+| handle    | DAC device handle. |
+| channel   | DAC channel number.|
+| val       | DA value to set.  |
 | **Return Value**| **Description**|
-| 0          | The operation is successful.      |
-| Negative value      | The operation failed.      |
+| 0         | The operation is successful.    |
+| Negative value      | The operation failed.    |
 
-```
+```c++
 /* Write the target DA value through the DAC_CHANNEL_NUM channel. */
     ret = DacWrite(dacHandle, DAC_CHANNEL_NUM, val);
     if (ret != HDF_SUCCESS) {
@@ -142,28 +139,25 @@ int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val);
 #### Closing a DAC Device
 
 After the DAC communication is complete, call **DacClose()** to close the DAC device.
-```
+```c++
 void DacClose(DevHandle handle);
 ```
 
 **Table 4** Description of DacClose
 
-
-| **Parameter**     | Description      |
-| ---------- | -------------- |
-| handle     | DAC device handle.   |
+| Parameter      | Description     |
+| --------- | ------------ |
+| handle    | DAC device handle. |
 | **Return Value**| **Description**|
-| void       | -            |
-
-
+| void      | -          |
 
 Example:
 
-```
+```c++
 DacClose(dacHandle); /* Close the DAC device. */
 ```
 
-## Development Example
+## Example
 
 The procedure is as follows:
 
@@ -173,8 +167,8 @@ The procedure is as follows:
 
 You can obtain the operation result by printing the log information based on the **val**.
 
-```
-#include "hdmi_if.h"          /* Header file for DAC APIs */
+```c++
+#include "dac_if.h"          /* Header file for DAC APIs */
 #include "hdf_log.h"         /* Header file for log APIs */
 
 /* Define device 0, channel 1. */
@@ -209,4 +203,4 @@ static int32_t TestCaseDac(void)
 
     return 0;
 }
-```
\ No newline at end of file
+```
diff --git a/en/device-dev/driver/driver-platform-i2c-des.md b/en/device-dev/driver/driver-platform-i2c-des.md
index 0cd8cc6526887c83dd25f67bddb0b82e6bce26d2..9ba71d09003c5598ca4636eed7fe718406a1f960 100644
--- a/en/device-dev/driver/driver-platform-i2c-des.md
+++ b/en/device-dev/driver/driver-platform-i2c-des.md
@@ -64,7 +64,7 @@ The figure below illustrates how to use the APIs.
 
 **Figure  2**  Using I2C driver APIs
 
-![](figures/using-i2c-process.png "process-of-using-an-i2c-device")
+![](figures/using-I2C-process.png "process-of-using-an-i2c-device")
 
 ### Opening an I2C Controller<a name="section13751110132914"></a>
 
diff --git a/en/device-dev/driver/driver-platform-mmc-develop.md b/en/device-dev/driver/driver-platform-mmc-develop.md
index 10445936ef0e8f53cc95968c40f1c9dd2aae29c7..b222b2081ea95ca1c17fe48e4d1e9413ff44f139 100644
--- a/en/device-dev/driver/driver-platform-mmc-develop.md
+++ b/en/device-dev/driver/driver-platform-mmc-develop.md
@@ -3,7 +3,7 @@
 
 ## Overview
 
-In the Hardware Driver Foundation (HDF), the MultiMedia Card (MMC) uses the independent service mode for API adaptation.  In this mode, each device independently publishes a service to process external access requests. When receiving an access request, the HDF DeviceManager extracts parameters from the request to call the internal APIs of the target device. In the independent service mode, the HDF DeviceManager provides service management capabilities. However, you need to configure a node for each device, which increases memory usage.
+In the Hardware Driver Foundation (HDF), the MultiMedia Card (MMC) uses the independent service mode for API adaptation. In this mode, each device independently publishes a service to process external access requests. When receiving an access request, the HDF DeviceManager extracts parameters from the request to call the internal APIs of the target device. In the independent service mode, the HDF DeviceManager provides service management capabilities. However, you need to configure a node for each device, which increases memory usage.
 
   **Figure 1** Independent service mode
 
@@ -14,7 +14,7 @@ In the Hardware Driver Foundation (HDF), the MultiMedia Card (MMC) uses the inde
 
 **MmcCntlrOps**:
 
-
+  
 ```
 struct MmcCntlrOps {
   int32_t (*request)(struct MmcCntlr *cntlr, struct MmcCmd *cmd);
@@ -37,23 +37,23 @@ struct MmcCntlrOps {
 
   **Table 1** Description of callback functions in MmcCntlrOps
 
-| Function| Input Parameter| Return Value| Description|
+| Function| Input Parameter| Return Value| Description| 
 | -------- | -------- | -------- | -------- |
-| doRequest | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**cmd**: structure pointer to the command to execute.| HDF_STATUS| Processes the request.|
-| setClock | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**clock**: clock frequency to set.| HDF_STATUS| Sets the clock frequency.|
-| setPowerMode | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**mode**: power consumption mode, which is an enumerated value.| HDF_STATUS| Sets the power consumption mode.|
-| setBusWidth | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**width**: bus width, which is an enumerated value.| HDF_STATUS| Sets the bus width.|
-| setBusTiming | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**timing**: bus timing, which is an enumerated value.| HDF_STATUS| Sets the bus timing.|
-| setSdioIrq | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**enable**: whether to enable Secure Digital Input Output (SDIO) interrupts.| HDF_STATUS| Enables or disables SDIO interrupts.|
-| hardwareReset | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Resets hardware.|
-| systemInit | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Performs system initialization.|
-| setEnhanceSrobe | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**enable**: whether to enable the enhanced strobe feature.| HDF_STATUS| Sets the enhanced strobe feature.|
-| switchVoltage | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**volt**: voltage to set, which can be 3.3 V, 1.8 V, or 1.2 V.| HDF_STATUS| Sets the voltage.|
-| devReadOnly | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is read-only.|
-| cardPluged | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is removed.|
-| devBusy | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is being used.|
-| tune | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**cmdCode**: command code of the uint32_t type.| HDF_STATUS| Tunes the oscillator circuit frequency. |
-| rescanSdioDev | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Scans and adds an SDIO device.|
+| doRequest | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**cmd**: structure pointer to the command to execute.| HDF_STATUS| Processes the request.| 
+| setClock | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**clock**: clock frequency to set.| HDF_STATUS| Sets the clock frequency.| 
+| setPowerMode | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**mode**: power consumption mode, which is an enumerated value.| HDF_STATUS| Sets the power consumption mode.| 
+| setBusWidth | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**width**: bus width, which is an enumerated value.| HDF_STATUS| Sets the bus width.| 
+| setBusTiming | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**timing**: bus timing, which is an enumerated value.| HDF_STATUS| Sets the bus timing.| 
+| setSdioIrq | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**enable**: whether to enable Secure Digital Input Output (SDIO) interrupts.| HDF_STATUS| Enables or disables SDIO interrupts.| 
+| hardwareReset | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Resets hardware.| 
+| systemInit | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Performs system initialization.| 
+| setEnhanceSrobe | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**enable**: whether to enable the enhanced strobe feature.| HDF_STATUS| Sets the enhanced strobe feature.| 
+| switchVoltage | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**volt**: voltage to set, which can be 3.3 V, 1.8 V, or 1.2 V.| HDF_STATUS| Sets the voltage.| 
+| devReadOnly | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is read-only.| 
+| cardPluged | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is removed.| 
+| devBusy | **cntlr**: structure pointer to the MMC controller at the core layer.| Boolean value| Checks whether the device is being used.| 
+| tune | **cntlr**: structure pointer to the MMC controller at the core layer.<br>**cmdCode**: command code of the uint32_t type.| HDF_STATUS| Tunes the oscillator circuit frequency.| 
+| rescanSdioDev | **cntlr**: structure pointer to the MMC controller at the core layer.| HDF_STATUS| Scans and adds an SDIO device.| 
 
 
 ## How to Develop
@@ -75,7 +75,6 @@ The MMC module adaptation involves the following steps:
       > For details about the functions in **MmcCntlrOps**, see [Available APIs](#available-apis).
 
 4. Debug the driver.
-   
    (Optional) For new drivers, verify the basic functions, for example, check the information returned after the **MmcCntlrOps** instance is attached and whether the device starts successfully.
 
 
@@ -88,7 +87,7 @@ The following uses **himci.c** as an example to present the information required
    Generally, the HDF calls the **Bind** function and then the **Init** function to load a driver. If **Init** fails to be called, the HDF calls **Release** to release driver resources and exit.
 
      MMC driver entry example:
-   
+     
    ```
    struct HdfDriverEntry g_mmcDriverEntry = {
        .moduleVersion = 1,
@@ -106,7 +105,7 @@ The following uses **himci.c** as an example to present the information required
    
    - **device_info.hcs** configuration example
    
-     
+       
      ```
      root {
        device_info {
@@ -147,7 +146,7 @@ The following uses **himci.c** as an example to present the information required
    
    - **mmc_config.hcs** configuration example
    
-     
+       
      ```
      root {
        platform {
@@ -196,15 +195,15 @@ The following uses **himci.c** as an example to present the information required
            }
          }
        }
-       }
-       ```
-     
+     }
+     ```
+
 3. Initialize the **MmcCntlr** object at the core layer, including defining a custom structure (to pass parameters and data) and implementing the **HdfDriverEntry** member functions (**Bind**, **Init**, and **Release**) to instantiate **MmcCntlrOps** in **MmcCntlr** (so that the underlying driver functions can be called).
    - Defining a custom structure
 
       To the driver, the custom structure holds parameters and data. The **DeviceResourceIface** method provided by the HDF reads the values in the **mmc_config.hcs** file to initialize the members in the custom structure and passes important parameters to the **MmcCntlr** object at the core layer.
 
-      
+        
       ```
       struct HimciHost {
           struct MmcCntlr *mmc;// (Mandatory) Core layer structure
@@ -257,7 +256,7 @@ The following uses **himci.c** as an example to present the information required
 
    - Instantiating **MmcCntlrOps** in **MmcCntlr** (other members are initialized by **Bind**)
 
-     
+        
       ```
       static struct MmcCntlrOps g_himciHostOps = {
           .request        = HimciDoRequest,
@@ -300,7 +299,7 @@ The following uses **himci.c** as an example to present the information required
 
       Initializes the custom structure **HimciHost** object and **MmcCntlr**, and calls the **MmcCntlrAdd** function at the core layer. **MmcCntlr**, **HimciHost**, and **HdfDeviceObject** assign values with each other so that other functions can be converted successfully.
 
-      
+        
       ```
       static int32_t HimciMmcBind(struct HdfDeviceObject *obj)
       {
@@ -347,7 +346,7 @@ The following uses **himci.c** as an example to present the information required
 
       Implements **ProcMciInit**.
 
-      
+        
       ```
       static int32_t HimciMmcInit(struct HdfDeviceObject *obj)
       {
@@ -377,7 +376,7 @@ The following uses **himci.c** as an example to present the information required
 
       Releases the memory and deletes the controller. This function assigns values to the **Release** function in the driver entry structure. If the HDF fails to call the **Init** function to initialize the driver, the **Release** function can be called to release driver resources. All forced conversion operations for obtaining the corresponding object can be successful only when the **Init** function has the value assignment operations.
 
-      
+        
       ```
       static void HimciMmcRelease(struct HdfDeviceObject *obj)
       {
diff --git a/en/device-dev/driver/driver-platform-regulator-develop.md b/en/device-dev/driver/driver-platform-regulator-develop.md
index 960c3b88bfaf225ec1f911a22be8ffad0b25037b..022df8b238b518c4560789843391f751b1fabb5a 100644
--- a/en/device-dev/driver/driver-platform-regulator-develop.md
+++ b/en/device-dev/driver/driver-platform-regulator-develop.md
@@ -5,23 +5,18 @@
 
 ### Regulator
 
-The regulator module controls the voltage and current supplies of some devices in the system.
-
-### Basic Concepts
-
 The regulator module controls the voltage and current supplies of some devices in the system. In an embedded system (especially a mobile phone), it is important to control the power consumption, which directly affects the battery endurance. You can use a regulator to shut down the power supply to an idle module in the system or reduce the voltage and current for the module.
 
 ### Working Principles
 
-In the Hardware Driver Foundation (HDF), the regulator module uses the unified service mode for API adaptation. In this mode, a device service is used as the regulator manager to handle external access requests in a unified manner, which is reflected in the configuration file. The unified service mode applies to the scenario where there are many device objects of the same type, for example, when the regulator has more than 10 controllers. If the independent service mode is used, more device nodes need to be configured and more memory resources will be consumed by services.
+In the Hardware Driver Foundation (HDF), the regulator module uses the unified service mode for API adaptation. In this mode, a device service is used as the regulator manager to handle external access requests in a unified manner, which is reflected in the configuration file. The unified service mode applies when there are many device objects of the same type, for example, when the regulator has more than 10 controllers. If the independent service mode is used, more device nodes need to be configured and more memory resources will be consumed by services.
 
 The regulator module is divided into the following layers:
+- Interface layer: provides APIs for opening or closing a device and writing data.
+- Core layer: provides the capabilities of binding, initializing, and releasing devices.
+- Adaptation layer: implements other functions.
 
-- The interface layer provides APIs for opening or closing a device and writing data.
-- The core layer provides the capabilities of binding, initializing, and releasing devices.
-- The adaptation layer implements other functions.
-
-![](../public_sys-resources/icon-note.gif)NOTE<br/>The core layer can call the functions of the interface layer and uses the hook to call functions of the adaptation layer. In this way, the adaptation layer can indirectly call the functions of the interface layer, but the interface layer cannot call the functions of the adaptation layer.
+![](../public_sys-resources/icon-note.gif)NOTE<br/>The core layer can call the APIs of the interface layer and uses hooks to call APIs of the adaptation layer. In this way, the adaptation layer can indirectly call the APIs of the interface layer, but the interface layer cannot call the APIs of the adaptation layer.
 
 **Figure 1** Unified service mode
 
@@ -33,13 +28,12 @@ The regulator module is divided into the following layers:
 
 Currently, the regulator module supports only the kernels (LiteOS) of mini and small systems.
 
-## Development Guidelines
 
 ### When to Use
 
 The regulator module controls the voltage and current supplies of some devices in the system.
 
-### Available APIs
+## Available APIs
 
 The functions in **RegulatorMethod** are used to call the corresponding regulator driver functions:
 
@@ -65,31 +59,34 @@ struct RegulatorMethod {
 
 
 | Method    | Input Parameter                                                        | Return Value            | Description            |
-| ------------ | ------------------------------------------------------------ | ------------------ | ---------------- |
+| ------------ | ----------------------------------------------------------- | ----------------- | ---------------- |
 | open         | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Opens a device.        |
 | close        | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Closes a device.        |
 | release      | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Releases a device handle.    |
-| enable       | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Enabling a Regulator            |
-| disable      | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Disabling a Regulator            |
-| forceDisable | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Forcibly Disabling a Regulator        |
+| enable       | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Enables a regulator.            |
+| disable      | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Disables a regulator.            |
+| forceDisable | **node**: structure pointer to the regulator node at the core layer.                 | HDF_STATUS| Forcibly disables a regulator.        |
 | setVoltage   | **node**: structure pointer to the regulator node at the core layer.<br>**minUv**: minimum voltage to set. It is a uint32_t variable.<br>**maxUv**: maximum voltage to set. It is a uint32_t variable.| HDF_STATUS| Sets the output voltage range.|
-| getVoltage   | **node**: structure pointer to the regulator node at the core layer.<br>**voltage**: pointer to the output voltage value.| HDF_STATUS| Obtains the voltage.        |
+| getVoltage   | **node**: structure pointer to the regulator node at the core layer.<br>**voltage**: pointer to the output voltage.| HDF_STATUS| Obtains the voltage.        |
 | setCurrent   | **node**: structure pointer to the regulator node at the core layer.<br>**minUa**: minimum current to set. It is a uint32_t variable.<br>**maxUa**: maximum current to set. It is a uint32_t variable.| HDF_STATUS| Sets the output current range.|
 | getCurrent   | **node**: structure pointer to the regulator node at the core layer.<br>**regCurrent**: pointer to the output current, which is of the uint32_t type.| HDF_STATUS| Obtains the current.        |
 | getStatus    | **node**: structure pointer to the regulator node at the core layer.<br>**status**: pointer to the output status, which is of the uint32_t type.| HDF_STATUS| Obtains the device status.    |
 
-### How to Develop
+
+## How to Develop
 
 The regulator module adaptation procedure is as follows:
 
-- Instantiate the driver entry.
-- Configure attribute files.
-- Instantiate the core layer APIs.
-- Debug the driver.
+1. Instantiate the driver entry.
+2. Configure attribute files.
+3. Instantiate the core layer APIs.
+4. Debug the driver.
+
+## Development Example
 
 1.  Instantiate the driver entry.
 
-    Instantiate the driver entry. The driver entry must be a global variable of the **HdfDriverEntry** type (defined in **hdf_device_desc.h**), and the value of **moduleName** must be the same as that in **device_info.hcs**. In the HDF, the start address of each **HdfDriverEntry** object of all loaded drivers are collected to form a segment address space similar to an array for the upper layer to invoke.
+    The driver entry must be a global variable of the **HdfDriverEntry** type (defined in **hdf_device_desc.h**), and the value of **moduleName** must be the same as that in **device_info.hcs**. In the HDF, the start address of each **HdfDriverEntry** object of all loaded drivers is collected to form a segment address space similar to an array for the upper layer to invoke.
     
     Generally, the HDF calls the **Init()** function to load the driver. If **Init()** fails to be called, the HDF calls **Release** to release driver resources and exit.
     
@@ -100,7 +97,7 @@ The regulator module adaptation procedure is as follows:
         .Init = VirtualRegulatorInit,
         .Release = VirtualRegulatorRelease,
     };
-    // Call HDF_INIT to register the driver entry with the HDF framework.
+    // Call HDF_INIT to register the driver entry with the HDF.
     HDF_INIT(g_regulatorDriverEntry);
     ```
     
@@ -115,15 +112,15 @@ The regulator module adaptation procedure is as follows:
      | Member         | Value                                                          |
      | --------------- | ------------------------------------------------------------ |
      | policy          | **0**, which indicates that no service is published.                                     |
-     | priority        | Driver startup priority. The value range is 0 to 200. A larger value indicates a lower priority. If the priorities are the same, the device loading sequence is not ensured.|
+     | priority        | Driver startup priority, which ranges form 0 to 200. A larger value indicates a lower priority. If the priorities are the same, the device loading sequence is not ensured.|
      | permission      | Driver permission.                                                    |
-     | moduleName      | The value is **HDF_PLATFORM_REGULATOR_MANAGER**.                       |
-     | serviceName     | The value is **HDF_PLATFORM_REGULATOR_MANAGER**.                        |
-     | deviceMatchAttr | Reserved.                                            |
+     | moduleName      | **HDF_PLATFORM_REGULATOR_MANAGER**                       |
+     | serviceName     | **HDF_PLATFORM_REGULATOR_MANAGER**                        |
+     | deviceMatchAttr | This parameter is reserved.                          |
 
      Configure regulator controller information from the second node. This node specifies a type of regulator controllers rather than a specific regulator controller. In this example, there is only one regulator device. If there are multiple regulator devices, you need to add the **deviceNode** information to the **device_info** file and add the corresponding device attributes to the **regulator\_config** file.
 
-    - **device_info.hcs** configuration reference
+    - **device_info.hcs** configuration example
 
        ```
        root {
@@ -132,14 +129,14 @@ The regulator module adaptation procedure is as follows:
            hostName = "platform_host";
            priority = 50;
            device_regulator :: device {
-               device0 :: deviceNode {	// Configure an HDF device node for each regulator controller.
-                   policy = 1;	        // 2: visible in user mode; 1: visible in kernel mode; 0: no service required.
-                   priority = 50;	// Driver startup priority.
-                   permission = 0644;	// Permission to create device nodes of the driver.
+               device0:: deviceNode {   // Set an HDF device node for each regulator controller.
+                   policy = 1;	         // Policy for the driver to publish services.
+                   priority = 50;       // Driver startup priority.
+                   permission = 0644;   // Permission to create device nodes for the driver.
                    /* (Mandatory) Driver name, which must be the same as the moduleName in the driver entry. */
                    moduleName = "HDF_PLATFORM_REGULATOR_MANAGER";		
                    serviceName = "HDF_PLATFORM_REGULATOR_MANAGER";		// (Mandatory) Unique name of the service published by the driver.
-                  /* (Mandatory) Set the controller private data, which must be same as that in regulator_config.hcs. */
+                   /* (Mandatory) Set the controller private data, which must be same as that in regulator_config.hcs. */
                    deviceMatchAttr = "hdf_platform_regulator_manager";
                }
                device1 :: deviceNode {
@@ -155,7 +152,7 @@ The regulator module adaptation procedure is as follows:
        }
        ```
 
-    - **regulator\_config.hcs** reference:
+    - **regulator\_config.hcs** configuration example:
 
       ```
       root {
@@ -184,7 +181,7 @@ The regulator module adaptation procedure is as follows:
                   minUa = 0;
                   maxUa = 0;
                   }
-              /* Each regulator controller corresponds to a controller node. If there are multiple regulator controllers, add the corresponding controller nodes one by one.*/
+              /* Each regulator controller corresponds to a controller node. If there are multiple regulator controllers, add the corresponding controller nodes one by one. */
               controller_0x130d0001 :: regulator_controller {
                   device_num = 1;
                   name = "regulator_adapter_2";
@@ -201,146 +198,152 @@ The regulator module adaptation procedure is as follows:
       }
       ```
 
-3.  Instantiate the APIs of the core layer. 
-    
-    - Initialize the **RegulatorNode** object at the core layer, including initializing the vendor custom structure (passing parameters and data), instantiating **RegulatorMethod** (used to call underlying functions of the driver) in **PinCntlr**, and implementing the **HdfDriverEntry** member functions (**Bind**, **Init**, and **Release**).
-    
-    - Initializing the vendor custom structure
+3. Instantiate the APIs of the core layer. 
 
-        The **RegulatorNode** structure holds parameters and data for the driver. The HDF obtains the values in **regulator\_config.hcs** using **DeviceResourceIface**.
-    
-        ```
-        // RegulatorNode is the controller structure at the core layer. Its members are assigned with values by using the Init function.
-        struct RegulatorNode {
-            struct RegulatorDesc regulatorInfo;
-            struct DListHead node;
-            struct RegulatorMethod *ops;
-            void *priv;
-            struct OsalMutex lock;
-        };
-        
-        struct RegulatorDesc {
-            const char *name;              /* Regulator name. */
-            const char *parentName;        /* Regulator parent node name. */
-            struct RegulatorConstraints constraints;    /* Regulator constraint information. */
-            uint32_t minUv;                  /* Minimum output voltage. */
-            uint32_t maxUv;                  /* Maximum output voltage. */
-            uint32_t minUa;                  /* Minimum output current. */
-            uint32_t maxUa;                  /* Maximum output current. */
-            uint32_t status;                  /* Regulator status, which can be on or off. */
-            int useCount;
-            int consumerRegNums;             /* Number of regulator consumers. */
-            RegulatorStatusChangecb cb;      /* Variable used to notify the regulator status changes. */
-        };
-        
-        struct RegulatorConstraints {
-            uint8_t alwaysOn;     /* Whether the regulator is always on. */
-            uint8_t mode;         /* Voltage or current. */
-            uint32_t minUv;       /* Minimum output voltage allowed. */
-            uint32_t maxUv;       /* Maximum output voltage allowed. */
-            uint32_t minUa;     /* Minimum output current allowed. */
-            uint32_t maxUa;       /* Maximum output current allowed. */
-        };
-        ```
-    
+   Initialize the **RegulatorNode** object at the core layer, including defining a custom structure (to pass parameters and data) and implementing the **HdfDriverEntry** member functions (**Bind**, **Init**, and **Release**) to instantiate **RegulatorMethod** in **RegulatorNode** (so that the underlying driver functions can be called).
+
+   - Defining a custom structure
+
+       The **RegulatorNode** structure holds parameters and data for the driver. The HDF obtains the values in **regulator_config.hcs** using **DeviceResourceIface**.
+
+       
+       
+       ```
+       // RegulatorNode is the core layer controller structure. The Init function assigns values to the members of RegulatorNode.
+       struct RegulatorNode {
+           struct RegulatorDesc regulatorInfo;
+           struct DListHead node;
+           struct RegulatorMethod *ops;
+           void *priv;
+           struct OsalMutex lock;
+       };
+       
+       struct RegulatorDesc {
+           const char *name;               /* Regulator name. */
+           const char *parentName;         /* Regulator parent node name. */
+           struct RegulatorConstraints constraints;    /* Regulator constraint information. */
+           uint32_t minUv;                  /* Minimum output voltage. */
+           uint32_t maxUv;                  /* Maximum output voltage. */
+           uint32_t minUa;                  /* Minimum output current. */
+           uint32_t maxUa;                  /* Maximum output current. */
+           uint32_t status;                  /* Regulator status, which can be on or off. */
+           int useCount;
+           int consumerRegNums;             /* Number of regulator consumers. */
+           RegulatorStatusChangecb cb;      /* Variable used to notify the regulator status changes. */
+       };
+       
+       struct RegulatorConstraints {
+           uint8_t alwaysOn;     /* Whether the regulator is always on. */
+           uint8_t mode;         /* Voltage or current. */
+           uint32_t minUv;       /* Minimum output voltage allowed. */
+           uint32_t maxUv;       /* Maximum output voltage allowed. */
+           uint32_t minUa;       /* Minimum output current allowed. */
+           uint32_t maxUa;       /* Maximum output current allowed. */
+       };
+       ```
+
+     
+
+   - Instantiating **RegulatorMethod** (other members are initialized by **Init**)
+
+     ```c
+     // Example of regulator_virtual.c: Instantiate the hooks.
+     static struct RegulatorMethod g_method = {
+         .enable = VirtualRegulatorEnable,
+         .disable = VirtualRegulatorDisable,
+         .setVoltage = VirtualRegulatorSetVoltage,
+         .getVoltage = VirtualRegulatorGetVoltage,
+         .setCurrent = VirtualRegulatorSetCurrent,
+         .getCurrent = VirtualRegulatorGetCurrent,
+         .getStatus = VirtualRegulatorGetStatus,
+     };
+     ```
+     
+
+
+   - **Init** function
+
+      Input parameter:
+
+      **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs information.
       
-    
-    - Instantiating **RegulatorMethod** (other members are initialized by **Init**)
-    
+      Return value:
+      
+      **HDF\_STATUS**
+      
+      The table below lists some states. For more details, see **HDF\_STATUS** in **/drivers/framework/include/utils/hdf\_base.h**.
+
+      **Table 2** HDF_STATUS
+      
+      | State              | Description         |
+      | ---------------------- | -------------- |
+      | HDF_ERR_INVALID_OBJECT | Invalid controller object.|
+      | HDF_ERR_MALLOC_FAIL    | Failed to allocate memory.  |
+      | HDF_ERR_INVALID_PARAM  | Invalid parameter.      |
+      | HDF_ERR_IO             | I/O error.      |
+      | HDF_SUCCESS            | Initialization successful.    |
+      | HDF_FAILURE            | Initialization failed.    |
+
+      Function description:
+      
+      Initializes the custom structure and **RegulatorNode** members, and adds the regulator controller by calling the **RegulatorNodeAdd** function at the core layer.
+
+
       ```c
-      // Example of regulator_virtual.c: Instantiate the hook.
-      static struct RegulatorMethod g_method = {
-          .enable = VirtualRegulatorEnable,
-          .disable = VirtualRegulatorDisable,
-          .setVoltage = VirtualRegulatorSetVoltage,
-          .getVoltage = VirtualRegulatorGetVoltage,
-          .setCurrent = VirtualRegulatorSetCurrent,
-          .getCurrent = VirtualRegulatorGetCurrent,
-          .getStatus = VirtualRegulatorGetStatus,
-      };
+      static int32_t VirtualRegulatorInit(struct HdfDeviceObject *device)
+      {
+          int32_t ret;
+          const struct DeviceResourceNode *childNode = NULL;
+          ...
+          DEV_RES_NODE_FOR_EACH_CHILD_NODE(device->property, childNode) {
+          ret = VirtualRegulatorParseAndInit(device, childNode);// (Mandatory) The implementation is as follows:
+          ...
+          }
+          ...
+      }
+   
+      static int32_t VirtualRegulatorParseAndInit(struct HdfDeviceObject *device, const struct DeviceResourceNode *node)
+      {
+          int32_t ret;
+          struct RegulatorNode *regNode = NULL;
+          (void)device;
+   
+          regNode = (struct RegulatorNode *)OsalMemCalloc(sizeof(*regNode));// Load the .hcs file.
+          ...
+          ret = VirtualRegulatorReadHcs(regNode, node);// Read .hcs information.
+          ...
+          regNode->priv = (void *)node;     // Instantiate the node.
+          regNode->ops = &g_method;     // Instantiate OPS.
+   
+          ret = RegulatorNodeAdd(regNode);     // Add the node.
+          ...
+      }
       ```
-      
-    
-    
-    - **Init** function
-    
-       Input parameters:
-    
-      **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs configuration.
+
+   -   **Release** function
        
-       Return value:
+        Input parameter:
        
-      **HDF\_STATUS** (The following table lists some states. For more details, see **HDF\_STATUS** in **/drivers/framework/include/utils/hdf\_base.h**.)
+        **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs information.
        
-      **Table 2** HDF\_STATUS
-    
-       | State              | Description      |
-       | ---------------------- | -------------- |
-       | HDF_ERR_INVALID_OBJECT | Invalid controller object.|
-       | HDF_ERR_MALLOC_FAIL    | Failed to allocate memory.  |
-       | HDF_ERR_INVALID_PARAM  | Invalid parameter.      |
-       | HDF_ERR_IO             | I/O error.      |
-       | HDF_SUCCESS            | Initialization successful.    |
-       | HDF_FAILURE            | Initialization failed.    |
-    
-       Function description:
-    
-       Initializes the custom structure and **RegulatorNode** members, and adds the regulator controller by calling the **RegulatorNodeAdd** function at the core layer.
-    
-
+        Return value:
+       
+        No value is return.
+       
+        Function description:
+       
+        Releases the memory and deletes the controller. This function assigns values to the **Release** function in the driver entry structure. If the HDF fails to call the **Init** function to initialize the driver, the **Release** function can be called to release driver resources.
+     
        ```c
-       static int32_t VirtualRegulatorInit(struct HdfDeviceObject *device)
+       static void VirtualRegulatorRelease(struct HdfDeviceObject *device)
        {
-           int32_t ret;
-           const struct DeviceResourceNode *childNode = NULL;
-           ...
-           DEV_RES_NODE_FOR_EACH_CHILD_NODE(device->property, childNode) {
-           ret = VirtualRegulatorParseAndInit(device, childNode);// (Mandatory) The implementation is as follows:
-           ...
-           }
-           ...
-       }
-    
-       static int32_t VirtualRegulatorParseAndInit(struct HdfDeviceObject *device, const struct DeviceResourceNode *node)
-       {
-           int32_t ret;
-           struct RegulatorNode *regNode = NULL;
-           (void)device;
-    
-           regNode = (struct RegulatorNode *)OsalMemCalloc(sizeof(*regNode));// Load the .hcs file.
-           ...
-           ret = VirtualRegulatorReadHcs(regNode, node);// Read .hcs information.
-           ...
-           regNode->priv = (void *)node;     // Instantiate the node.
-           regNode->ops = &g_method;     // Instantiate OPS.
-    
-           ret = RegulatorNodeAdd(regNode);     // Add the node.
            ...
+           RegulatorNodeRemoveAll();// (Mandatory) Call the function at the core layer to release regulator controller devices and services.
        }
        ```
-    
-    -  **Release** function
-        
-         Input parameters:
-        
-        **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs configuration.
-        
-         Return value:
-        
-         –
-        
-         Function description:
-        
-         Releases memory and deletes the controller. This function assigns a value to the **Release** API in the driver entry structure. If the HDF fails to call the **Init()** function to initialize the driver, the **Release()** function can be called to release driver resources.
-      
-        ```c
-        static void VirtualRegulatorRelease(struct HdfDeviceObject *device)
-        {
-            ...
-            RegulatorNodeRemoveAll();// (Mandatory) Call the function at the core layer to release regulator controller devices and services.
-        }
-        ```
-    
-4. (Optional) Debug the driver.
 
-   Verify the basic functions of the new driver, for example, whether the test cases are successful after the driver is loaded.
\ No newline at end of file
+4. Debug the driver.
+
+   (Optional) Verify the basic functions of the new driver, for example, check whether the test cases are successful after the driver is loaded.
+
+   
diff --git a/en/device-dev/driver/driver-platform-spi-des.md b/en/device-dev/driver/driver-platform-spi-des.md
index 066b92ea231bf86f8a0b2688b1119ef3bd832f84..696087ee948f1d8ac9747942551c1a166fd7cabd 100644
--- a/en/device-dev/driver/driver-platform-spi-des.md
+++ b/en/device-dev/driver/driver-platform-spi-des.md
@@ -1,160 +1,101 @@
-# SPI<a name="EN-US_TOPIC_0000001206171293"></a>
+# SPI
 
-## Overview<a name="section193356154511"></a>
 
-Serial Peripheral Interface \(SPI\) is a serial bus specification used for high-speed, full-duplex, and synchronous communication.
-SPI is developed by Motorola. It is commonly used for communication with flash memory, real-time clocks, sensors, and analog-to-digital \(A/D\) converters.
+## **Overview**
+
+Serial Peripheral Interface (SPI) is a serial bus specification used for high-speed, full-duplex, and synchronous communication. SPI is developed by Motorola. It is commonly used for communication with flash memory, real-time clocks, sensors, and analog-to-digital (A/D) converters.
+
 SPI works in controller/device mode. Generally, there is one SPI controller that controls one or more SPI devices. They are connected via four wires:
--   SCLK: clock signals output from the SPI controller
--   MOSI: data output from the SPI controller and input into an SPI device
--   MISO: data output from an SPI device and input into the SPI controller
--   CS: signals enabled by an SPI device and controlled by the SPI controller
-
-
-[Figure 1](#fig89085710359)  shows the connection between one SPI controller and two SPI devices \(device A and device B\). In this figure, device A and device B share three pins \(SCLK, MISO, and MOSI\) of the controller. CS0 of device A and CS1 of device B are connected to CS0 and CS1 of the controller, respectively.
-
-**Figure  1** SPI controller/device connection<a name="fig89085710359"></a>  
-![](figures/spi-controller-device-connection.png "spi-controller-device-connection")
-
-SPI communication is usually initiated by the SPI controller and is operated as follows:
-
-1.  A single SPI device is selected at a time via the CS to communicate with the SPI controller.
-2.  Clock signals are provided for the selected SPI device via the SCLK.
-3.  The SPI controller sends data to SPI devices via the MOSI, and receives data from SPI devices via the MISO.
-
--   SPI can work in one of the following four modes, equivalent to one of the four possible states for Clock Polarity \(CPOL\) and Clock Phase \(CPHA\):
-    -   If both CPOL and CPHA are **0**, the clock signal level is low in the idle state and data is sampled on the first clock edge.
-    -   If CPOL is **0** and CPHA is **1**, the clock signal level is low in the idle state and data is sampled on the second clock edge.
-    -   If CPOL is **1** and CPHA is **0**, the clock signal level is high in the idle state and data is sampled on the first clock edge.
-    -   If both CPOL and CPHA are **1**, the clock signal level is high in the idle state and data is sampled on the second clock edge.
-
-
--   SPI defines a set of common functions for operating an SPI device, including those for:
-    -   Obtaining and releasing the handle of an SPI device.
-    -   Reading or writing data of a specified length from or into an SPI device.
-    -   Customizing data reading or writing via **SpiMsg**.
-    -   Obtaining and setting SPI device configuration parameters.
-
-
->![](../public_sys-resources/icon-note.gif) **NOTE**<br>
->Currently, these functions are only applicable in the communication initiated by the SPI controller.
-
-## Available APIs<a name="section1325964832615"></a>
-
-**Table  1** APIs for the SPI driver
-
-<a name="table1731550155318"></a>
-<table><thead align="left"><tr id="row4419501537"><th class="cellrowborder" align="left" valign="top" width="20.857914208579142%" id="mcps1.2.4.1.1"><p id="p641050105320"><a name="p641050105320"></a><a name="p641050105320"></a><strong id="b17365506414"><a name="b17365506414"></a><a name="b17365506414"></a>Capability</strong></p>
-</th>
-<th class="cellrowborder" align="left" valign="top" width="23.36766323367663%" id="mcps1.2.4.1.2"><p id="p54150165315"><a name="p54150165315"></a><a name="p54150165315"></a><strong id="b191701618154210"><a name="b191701618154210"></a><a name="b191701618154210"></a>Function</strong></p>
-</th>
-<th class="cellrowborder" align="left" valign="top" width="55.77442255774422%" id="mcps1.2.4.1.3"><p id="p941150145313"><a name="p941150145313"></a><a name="p941150145313"></a><strong id="b64281840104214"><a name="b64281840104214"></a><a name="b64281840104214"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1651292212306"><td class="cellrowborder" rowspan="2" valign="top" width="20.857914208579142%" headers="mcps1.2.4.1.1 "><p id="p1387414255305"><a name="p1387414255305"></a><a name="p1387414255305"></a>SPI device handle obtaining/releasing</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.36766323367663%" headers="mcps1.2.4.1.2 "><p id="p8874825143014"><a name="p8874825143014"></a><a name="p8874825143014"></a>SpiOpen</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.77442255774422%" headers="mcps1.2.4.1.3 "><p id="p1087432513307"><a name="p1087432513307"></a><a name="p1087432513307"></a>Obtains an SPI device handle.</p>
-</td>
-</tr>
-<tr id="row1429083612305"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1956614106311"><a name="p1956614106311"></a><a name="p1956614106311"></a>SpiClose</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p829111362306"><a name="p829111362306"></a><a name="p829111362306"></a>Releases an SPI device handle.</p>
-</td>
-</tr>
-<tr id="row34145016535"><td class="cellrowborder" rowspan="3" valign="top" width="20.857914208579142%" headers="mcps1.2.4.1.1 "><p id="p229610227124"><a name="p229610227124"></a><a name="p229610227124"></a>SPI reading/writing</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.36766323367663%" headers="mcps1.2.4.1.2 "><p id="p19389143041518"><a name="p19389143041518"></a><a name="p19389143041518"></a>SpiRead</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.77442255774422%" headers="mcps1.2.4.1.3 "><p id="p8738101941716"><a name="p8738101941716"></a><a name="p8738101941716"></a>Reads data of a specified length from an SPI device.</p>
-</td>
-</tr>
-<tr id="row5632152611414"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p143890309153"><a name="p143890309153"></a><a name="p143890309153"></a>SpiWrite</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p573815197171"><a name="p573815197171"></a><a name="p573815197171"></a>Writes data of a specified length into an SPI device.</p>
-</td>
-</tr>
-<tr id="row1766145611414"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p183904373018"><a name="p183904373018"></a><a name="p183904373018"></a>SpiTransfer</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1639011313303"><a name="p1639011313303"></a><a name="p1639011313303"></a>Transfers SPI data.</p>
-</td>
-</tr>
-<tr id="row1020919129159"><td class="cellrowborder" rowspan="2" valign="top" width="20.857914208579142%" headers="mcps1.2.4.1.1 "><p id="p82092126154"><a name="p82092126154"></a><a name="p82092126154"></a>SPI device configuration</p>
-<p id="p6794153701111"><a name="p6794153701111"></a><a name="p6794153701111"></a></p>
-</td>
-<td class="cellrowborder" valign="top" width="23.36766323367663%" headers="mcps1.2.4.1.2 "><p id="p1739013012154"><a name="p1739013012154"></a><a name="p1739013012154"></a>SpiSetCfg</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.77442255774422%" headers="mcps1.2.4.1.3 "><p id="p073910197173"><a name="p073910197173"></a><a name="p073910197173"></a>Sets configuration parameters for an SPI device.</p>
-</td>
-</tr>
-<tr id="row379443710118"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p4333154919111"><a name="p4333154919111"></a><a name="p4333154919111"></a>SpiGetCfg</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p11333649171117"><a name="p11333649171117"></a><a name="p11333649171117"></a>Obtains configuration parameters of an SPI device.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->All functions provided in this document can be called only in kernel space.
-
-## Usage Guidelines<a name="section71363452477"></a>
-
-### How to Use<a name="section32846814820"></a>
-
-The figure below illustrates how to use the APIs.
-
-**Figure  2** Using SPI driver APIs<a name="fig1586912310348"></a>  
-![](figures/using-spi-process.png "process-of-using-an-spi-device")
-
-### Obtaining an SPI Device Handle<a name="section1927265711481"></a>
-
-Before performing SPI communication, obtain an SPI device handle by calling **SpiOpen**. This function returns an SPI device handle with a specified bus number and CS number.
-
-DevHandle SpiOpen\(const struct SpiDevInfo \*info\);
-
-**Table  2** Description of SpiOpen
-
-<a name="table7603619123820"></a>
-<table><tbody><tr id="row1060351914386"><td class="cellrowborder" valign="top" width="50%"><p id="p14603181917382"><a name="p14603181917382"></a><a name="p14603181917382"></a><strong id="b139290298482"><a name="b139290298482"></a><a name="b139290298482"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p36031519183819"><a name="p36031519183819"></a><a name="p36031519183819"></a><strong id="b17557183010484"><a name="b17557183010484"></a><a name="b17557183010484"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row1960431983813"><td class="cellrowborder" valign="top" width="50%"><p id="p3604719123817"><a name="p3604719123817"></a><a name="p3604719123817"></a>info</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1560441923818"><a name="p1560441923818"></a><a name="p1560441923818"></a>Pointer to the SPI device descriptor.</p>
-</td>
-</tr>
-<tr id="row380484160"><td class="cellrowborder" valign="top" width="50%"><p id="p460381915385"><a name="p460381915385"></a><a name="p460381915385"></a><strong id="b1431414320486"><a name="b1431414320486"></a><a name="b1431414320486"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p96031619153812"><a name="p96031619153812"></a><a name="p96031619153812"></a><strong id="b164533311485"><a name="b164533311485"></a><a name="b164533311485"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row5793818161"><td class="cellrowborder" valign="top" width="50%"><p id="p1060418195389"><a name="p1060418195389"></a><a name="p1060418195389"></a>NULL</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p760471912388"><a name="p760471912388"></a><a name="p760471912388"></a>Failed to obtain an SPI device handle.</p>
-</td>
-</tr>
-<tr id="row187914871618"><td class="cellrowborder" valign="top" width="50%"><p id="p5604719133811"><a name="p5604719133811"></a><a name="p5604719133811"></a>Device handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p3604181933818"><a name="p3604181933818"></a><a name="p3604181933818"></a>Returns the pointer to the SPI device handle.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-The following example shows how to obtain an SPI device handle based on the assumption that both the bus number and CS number of the SPI device are **0**.
+  - SCLK: clock signal output from the SPI controller
+  - MOSI: data output from the SPI controller to a device
+  - MISO: data output from an SPI device to the controller
+  - Chip select (CS): output from the SPI controller to indicate that data is being sent. It is controlled by the SPI controller.
+
+The figure below shows the connection between one controller and two devices (device A and device B). Device A and device B share three pins (SCLK, MISO, and MOSI) of the controller. CS 0 of device A and CS 1 of device B are connected to CS 0 and CS 1 of the controller, respectively.
+
+  **Figure 1** Connection between the SPI controller and devices
+
+  ![image](figures/spi-controller-device-connection.png)
+
+- SPI communication is usually initiated by the controller and is performed as follows:
+  1. The SPI controller selects a device to communicate on the select line. Only one device can be selected at a time.
+  2. SCLK provides clock signals to the selected device.
+  3. The SPI controller sends data to the device via MOSI, and receives data from the devices via MISO.
+
+- SPI can work in one of the following modes according to the combination of Clock Polarity (CPOL) and Clock Phase (CPHA) of the clock signal:
+  - If both CPOL and CPHA are **0**, the clock signal level is low in the idle state and data is sampled on the first clock edge.
+  - If CPOL is **0** and CPHA is **1**, the clock signal level is low in the idle state and data is sampled on the second clock edge.
+  - If CPOL is **1** and CPHA is **0**, the clock signal level is high in the idle state and data is sampled on the first clock edge.
+  - If both CPOL and CPHA are **1**, the clock signal level is high in the idle state and data is sampled on the second clock edge.
+
+- SPI defines a set of common functions for operating an SPI device, including those for:
+  - Obtaining and releasing an SPI device handle.
+  - Reading or writing data of the specified length from or into an SPI device.
+  - Customizing data reading or writing via **SpiMsg**.
+  - Obtaining and setting SPI device attributes.
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> Currently, these functions are only applicable in the communication initiated by the SPI controller.
+
+
+## **Available APIs**
+
+  **Table 1** SPI driver APIs
+
+| API| Description|
+| -------- | -------- |
+| SpiOpen | Opens an SPI device handle.|
+| SpiClose | Closes an SPI device handle.|
+| SpiRead | Reads data of the specified length from a device.|
+| SpiWrite | Writes data of the specified length to a device.|
+| SpiTransfer | Transfers SPI data.|
+| SpiSetCfg | Sets SPI device attributes.|
+| SpiGetCfg | Obtains SPI device attributes.|
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> All APIs described in this document can be called only in kernel mode.
+
+
+## Usage Guidelines
+
+
+### How to Use
+
+The figure below shows the general process of using SPI.
+
+  **Figure 2** Process of using SPI APIs
+
+  ![](figures/using-SPI-process.png)
+
+
+### Opening an SPI Device Handle
 
+Before performing SPI communication, call **SpiOpen** to open the SPI device handle. This function returns the device handle of the SPI based on the specified bus number and CS number.
+
+
+```
+DevHandle SpiOpen(const struct SpiDevInfo *info); 
 ```
-struct SpiDevInfo spiDevinfo;       /* SPI device descriptor */
-DevHandle spiHandle = NULL; /* SPI device handle */
-spiDevinfo.busNum = 0;              /* SPI device bus number */
-spiDevinfo.csNum = 0;               /* SPI device CS number */
 
-/* Obtain an SPI device handle. */
+  **Table 2** Description of SpiOpen
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| info | Pointer to the SPI device descriptor.|
+| **Return Value**| **Description**|
+| NULL | The operation failed.|
+| Device handle| The operation is successful. The SPI device handle obtained is returned.|
+
+For example, open the handle of the SPI device, whose bus number and the CS number are both **0**.
+
+
+```
+struct SpiDevInfo spiDevinfo;       /* SPI device descriptor. */
+DevHandle spiHandle = NULL;         /* SPI device handle */
+spiDevinfo.busNum = 0;              /* SPI device bus number. */
+spiDevinfo.csNum = 0;               /* SPI device CS number. */
+
+/* Obtain the SPI device handle. */
 spiHandle = SpiOpen(&spiDevinfo);
 if (spiHandle == NULL) {
     HDF_LOGE("SpiOpen: failed\n");
@@ -162,324 +103,201 @@ if (spiHandle == NULL) {
 }
 ```
 
-### Obtaining SPI Device Configuration Parameters<a name="section541133418493"></a>
-
-After obtaining the SPI device handle, obtain the SPI device configuration parameters by calling the following function:
-
-int32\_t SpiGetCfg\(DevHandle handle, struct SpiCfg \*cfg\);
-
-**Table  3** Description of SpiGetCfg
-
-<a name="table14209152141313"></a>
-<table><tbody><tr id="row1420918529133"><td class="cellrowborder" valign="top" width="50%"><p id="p42091852141314"><a name="p42091852141314"></a><a name="p42091852141314"></a><strong id="b6279123012486"><a name="b6279123012486"></a><a name="b6279123012486"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p202099523137"><a name="p202099523137"></a><a name="p202099523137"></a><strong id="b18243194818"><a name="b18243194818"></a><a name="b18243194818"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row142091352171310"><td class="cellrowborder" valign="top" width="50%"><p id="p1520915529131"><a name="p1520915529131"></a><a name="p1520915529131"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p720995291310"><a name="p720995291310"></a><a name="p720995291310"></a>SPI device handle.</p>
-</td>
-</tr>
-<tr id="row6209152161314"><td class="cellrowborder" valign="top" width="50%"><p id="p720916522139"><a name="p720916522139"></a><a name="p720916522139"></a>cfg</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p172091452131319"><a name="p172091452131319"></a><a name="p172091452131319"></a>Pointer to SPI device configuration parameters.</p>
-</td>
-</tr>
-<tr id="row12092522139"><td class="cellrowborder" valign="top" width="50%"><p id="p18209125211134"><a name="p18209125211134"></a><a name="p18209125211134"></a><strong id="b16646173219483"><a name="b16646173219483"></a><a name="b16646173219483"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p420975231318"><a name="p420975231318"></a><a name="p420975231318"></a><strong id="b184316334486"><a name="b184316334486"></a><a name="b184316334486"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row8209155251310"><td class="cellrowborder" valign="top" width="50%"><p id="p13210145291312"><a name="p13210145291312"></a><a name="p13210145291312"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p152101952141315"><a name="p152101952141315"></a><a name="p152101952141315"></a>Succeeded in obtaining SPI device configuration parameters.</p>
-</td>
-</tr>
-<tr id="row102101452121320"><td class="cellrowborder" valign="top" width="50%"><p id="p10210175219134"><a name="p10210175219134"></a><a name="p10210175219134"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p72101252101312"><a name="p72101252101312"></a><a name="p72101252101312"></a>Failed to obtain SPI device configuration parameters.</p>
-</td>
-</tr>
-</tbody>
-</table>
 
-```
-int32_t ret;
-struct SpiCfg cfg = {0};                /* SPI configuration information */
-ret = SpiGetCfg(spiHandle, &cfg);       /* Obtain SPI device configuration parameters. */
-if (ret != 0) {
-    HDF_LOGE("SpiGetCfg: failed, ret %d\n", ret);
-}
-```
+### Obtaining SPI Device Attributes
+
+After obtaining the SPI device handle, you need to configure the device attributes. Before configuring the device attributes, you can call **SpiGetCfg** to obtain the device attributes.
 
-### Setting SPI Device Configuration Parameters<a name="section7870106145010"></a>
-
-After obtaining the SPI device handle, set SPI device configuration parameters by calling the following function:
-
-int32\_t SpiSetCfg\(DevHandle handle, struct SpiCfg \*cfg\);
-
-**Table  4** Description of SpiSetCfg
-
-<a name="table219052945210"></a>
-<table><tbody><tr id="row14191192918522"><td class="cellrowborder" valign="top" width="50%"><p id="p17424155016529"><a name="p17424155016529"></a><a name="p17424155016529"></a><strong id="b11281163011480"><a name="b11281163011480"></a><a name="b11281163011480"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p942512508520"><a name="p942512508520"></a><a name="p942512508520"></a><strong id="b1330312487"><a name="b1330312487"></a><a name="b1330312487"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row219152915524"><td class="cellrowborder" valign="top" width="50%"><p id="p2191122985218"><a name="p2191122985218"></a><a name="p2191122985218"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1519162913524"><a name="p1519162913524"></a><a name="p1519162913524"></a>SPI device handle.</p>
-</td>
-</tr>
-<tr id="row1719110297526"><td class="cellrowborder" valign="top" width="50%"><p id="p181911292523"><a name="p181911292523"></a><a name="p181911292523"></a>cfg</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p91911729155216"><a name="p91911729155216"></a><a name="p91911729155216"></a>Pointer to SPI device configuration parameters.</p>
-</td>
-</tr>
-<tr id="row036524131716"><td class="cellrowborder" valign="top" width="50%"><p id="p6425165035214"><a name="p6425165035214"></a><a name="p6425165035214"></a><strong id="b96476326489"><a name="b96476326489"></a><a name="b96476326489"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p18425650165215"><a name="p18425650165215"></a><a name="p18425650165215"></a><strong id="b17432193311481"><a name="b17432193311481"></a><a name="b17432193311481"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row43653411178"><td class="cellrowborder" valign="top" width="50%"><p id="p1319132918520"><a name="p1319132918520"></a><a name="p1319132918520"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1719117292522"><a name="p1719117292522"></a><a name="p1719117292522"></a>Succeeded in setting SPI device configuration parameters.</p>
-</td>
-</tr>
-<tr id="row536594171715"><td class="cellrowborder" valign="top" width="50%"><p id="p719119296522"><a name="p719119296522"></a><a name="p719119296522"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p20191192925212"><a name="p20191192925212"></a><a name="p20191192925212"></a>Failed to set SPI device configuration parameters.</p>
-</td>
-</tr>
-</tbody>
-</table>
 
 ```
-int32_t ret;
-struct SpiCfg cfg = {0};                     /* SPI configuration information */
-cfg.mode = SPI_MODE_LOOP;                    /* Communication in loopback mode */
-cfg.transferMode = PAL_SPI_POLLING_TRANSFER; /* Communication in polling mode */
-cfg.maxSpeedHz = 115200;                     /* Maximum transmission frequency */
-cfg.bitsPerWord = 8;                         /* The width of per word to be read or written is 8 bits. */
-ret = SpiSetCfg(spiHandle, &cfg);            /* Set SPI device configuration parameters. */
-if (ret != 0) {
-    HDF_LOGE("SpiSetCfg: failed, ret %d\n", ret);
-}
+int32_t SpiGetCfg(DevHandle handle, struct SpiCfg *cfg);
 ```
 
-### Performing SPI Communication<a name="section13324155195013"></a>
-
--   Writing data of a specific length into an SPI device
-
-To write data into an SPI device only once, call the following function:
-
-int32\_t SpiWrite\(DevHandle handle, uint8\_t \*buf, uint32\_t len\);
-
-**Table  5** Description of SpiWrite
-
-<a name="table1018490043"></a>
-<table><tbody><tr id="row31848013417"><td class="cellrowborder" valign="top" width="50%"><p id="p1415816132411"><a name="p1415816132411"></a><a name="p1415816132411"></a><strong id="b42810303484"><a name="b42810303484"></a><a name="b42810303484"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p11158111316410"><a name="p11158111316410"></a><a name="p11158111316410"></a><strong id="b03103112484"><a name="b03103112484"></a><a name="b03103112484"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row10184701945"><td class="cellrowborder" valign="top" width="50%"><p id="p104891871157"><a name="p104891871157"></a><a name="p104891871157"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p204891671156"><a name="p204891671156"></a><a name="p204891671156"></a>SPI device handle.</p>
-</td>
-</tr>
-<tr id="row928111518418"><td class="cellrowborder" valign="top" width="50%"><p id="p4282955412"><a name="p4282955412"></a><a name="p4282955412"></a>buf</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p7282752412"><a name="p7282752412"></a><a name="p7282752412"></a>Pointer to the data to write.</p>
-</td>
-</tr>
-<tr id="row149041113651"><td class="cellrowborder" valign="top" width="50%"><p id="p139051213357"><a name="p139051213357"></a><a name="p139051213357"></a>len</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p16905313854"><a name="p16905313854"></a><a name="p16905313854"></a>Length of the data to write.</p>
-</td>
-</tr>
-<tr id="row1148818622017"><td class="cellrowborder" valign="top" width="50%"><p id="p8158313248"><a name="p8158313248"></a><a name="p8158313248"></a><strong id="b9649732154818"><a name="b9649732154818"></a><a name="b9649732154818"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p161591413741"><a name="p161591413741"></a><a name="p161591413741"></a><strong id="b12433113344813"><a name="b12433113344813"></a><a name="b12433113344813"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row14488762202"><td class="cellrowborder" valign="top" width="50%"><p id="p103191916578"><a name="p103191916578"></a><a name="p103191916578"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1231981611712"><a name="p1231981611712"></a><a name="p1231981611712"></a>Succeeded in writing data into an SPI device.</p>
-</td>
-</tr>
-<tr id="row164881464201"><td class="cellrowborder" valign="top" width="50%"><p id="p531916166716"><a name="p531916166716"></a><a name="p531916166716"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p93191161174"><a name="p93191161174"></a><a name="p93191161174"></a>Failed to write data into an SPI device.</p>
-</td>
-</tr>
-</tbody>
-</table>
+  **Table 3** Description of SpiGetCfg
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle     | SPI device handle.|
+| cfg        | Pointer to the SPI device attributes.|
+| **Return Value**| **Description**|
+| 0          | The operation is successful.|
+| Negative value      | The operation failed.|
+
 
 ```
 int32_t ret;
-uint8_t wbuff[4] = {0x12, 0x34, 0x56, 0x78};
-/* Write data of a specific length into an SPI device. */
-ret = SpiWrite(spiHandle, wbuff, 4);
+struct SpiCfg cfg = {0};                /* SPI configuration. */
+ret = SpiGetCfg(spiHandle, &cfg);       /* Obtain SPI device attributes. */
 if (ret != 0) {
-    HDF_LOGE("SpiWrite: failed, ret %d\n", ret);
+    HDF_LOGE("SpiGetCfg: failed, ret %d\n", ret);
 }
 ```
 
--   Reading data of a specific length from an SPI device
-
-To read data from an SPI device only once, call the following function:
-
-int32\_t SpiRead\(DevHandle handle, uint8\_t \*buf, uint32\_t len\);
-
-**Table  6** Description of SpiRead
-
-<a name="table0265191412124"></a>
-<table><tbody><tr id="row42651914141213"><td class="cellrowborder" valign="top" width="50%"><p id="p1483184123"><a name="p1483184123"></a><a name="p1483184123"></a><strong id="b528223019480"><a name="b528223019480"></a><a name="b528223019480"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p9831871216"><a name="p9831871216"></a><a name="p9831871216"></a><strong id="b3416318489"><a name="b3416318489"></a><a name="b3416318489"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row1926651415123"><td class="cellrowborder" valign="top" width="50%"><p id="p389183129"><a name="p389183129"></a><a name="p389183129"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p168151817124"><a name="p168151817124"></a><a name="p168151817124"></a>SPI device handle.</p>
-</td>
-</tr>
-<tr id="row202661414201220"><td class="cellrowborder" valign="top" width="50%"><p id="p158161821210"><a name="p158161821210"></a><a name="p158161821210"></a>buf</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p98131811126"><a name="p98131811126"></a><a name="p98131811126"></a>Pointer to the data to read.</p>
-</td>
-</tr>
-<tr id="row1926621451212"><td class="cellrowborder" valign="top" width="50%"><p id="p2918182124"><a name="p2918182124"></a><a name="p2918182124"></a>len</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p169718191220"><a name="p169718191220"></a><a name="p169718191220"></a>Length of the data to read.</p>
-</td>
-</tr>
-<tr id="row05841310206"><td class="cellrowborder" valign="top" width="50%"><p id="p38171818128"><a name="p38171818128"></a><a name="p38171818128"></a><strong id="b1364973254814"><a name="b1364973254814"></a><a name="b1364973254814"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p881918161220"><a name="p881918161220"></a><a name="p881918161220"></a><strong id="b04341333484"><a name="b04341333484"></a><a name="b04341333484"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row15584173192016"><td class="cellrowborder" valign="top" width="50%"><p id="p14871820128"><a name="p14871820128"></a><a name="p14871820128"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p88118101211"><a name="p88118101211"></a><a name="p88118101211"></a>Succeeded in reading data from an SPI device.</p>
-</td>
-</tr>
-<tr id="row1058418317204"><td class="cellrowborder" valign="top" width="50%"><p id="p10841817125"><a name="p10841817125"></a><a name="p10841817125"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p986183127"><a name="p986183127"></a><a name="p986183127"></a>Failed to read data from an SPI device.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Setting SPI Device Attributes
+
+After obtaining the SPI device handle, call **SpiSetCfg** to set SPI device attributes.
+
 
 ```
-int32_t ret;
-uint8_t rbuff[4] = {0};
-/* Read data of a specific length from an SPI device. */
-ret = SpiRead(spiHandle, rbuff, 4);
-if (ret != 0) {
-    HDF_LOGE("SpiRead: failed, ret %d\n", ret);
-}
+int32_t SpiSetCfg(DevHandle handle, struct SpiCfg *cfg);
 ```
 
--   Launching a custom transfer
-
-To launch a custom transfer, call the following function:
-
-int32\_t SpiTransfer\(DevHandle handle, struct SpiMsg \*msgs, uint32\_t count\);
-
-**Table  7** Description of SpiTransfer
-
-<a name="table1934414174212"></a>
-<table><tbody><tr id="row1134415176216"><td class="cellrowborder" valign="top" width="50%"><p id="p13295152320217"><a name="p13295152320217"></a><a name="p13295152320217"></a><strong id="b1628393012482"><a name="b1628393012482"></a><a name="b1628393012482"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1295112352115"><a name="p1295112352115"></a><a name="p1295112352115"></a><strong id="b175931204814"><a name="b175931204814"></a><a name="b175931204814"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row5344101702113"><td class="cellrowborder" valign="top" width="50%"><p id="p19295132382111"><a name="p19295132382111"></a><a name="p19295132382111"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p829510232213"><a name="p829510232213"></a><a name="p829510232213"></a>SPI device handle.</p>
-</td>
-</tr>
-<tr id="row17344171722117"><td class="cellrowborder" valign="top" width="50%"><p id="p9295122332113"><a name="p9295122332113"></a><a name="p9295122332113"></a>msgs</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p202951238218"><a name="p202951238218"></a><a name="p202951238218"></a>Pointer to the message array to be transferred.</p>
-</td>
-</tr>
-<tr id="row45812466213"><td class="cellrowborder" valign="top" width="50%"><p id="p1659246112117"><a name="p1659246112117"></a><a name="p1659246112117"></a>count</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p259124622119"><a name="p259124622119"></a><a name="p259124622119"></a>Number of messages in the message array.</p>
-</td>
-</tr>
-<tr id="row45187318214"><td class="cellrowborder" valign="top" width="50%"><p id="p17295142322113"><a name="p17295142322113"></a><a name="p17295142322113"></a><strong id="b5650532164818"><a name="b5650532164818"></a><a name="b5650532164818"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p142959232211"><a name="p142959232211"></a><a name="p142959232211"></a><strong id="b84349335480"><a name="b84349335480"></a><a name="b84349335480"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row175186313217"><td class="cellrowborder" valign="top" width="50%"><p id="p929532313211"><a name="p929532313211"></a><a name="p929532313211"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p829512237217"><a name="p829512237217"></a><a name="p829512237217"></a>Succeeded in launching the custom transfer.</p>
-</td>
-</tr>
-<tr id="row1451803152114"><td class="cellrowborder" valign="top" width="50%"><p id="p12958234217"><a name="p12958234217"></a><a name="p12958234217"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p1295192312112"><a name="p1295192312112"></a><a name="p1295192312112"></a>Failed to launch the custom transfer.</p>
-</td>
-</tr>
-</tbody>
-</table>
+  **Table 4** Description of SpiSetCfg
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle     | SPI device handle.|
+| cfg        | Pointer to the SPI device attributes.|
+| **Return Value**| **Description**|
+| 0          | The operation is successful.|
+| Negative value      | The operation failed.|
+
 
 ```
 int32_t ret;
-uint8_t wbuff[1] = {0x12};
-uint8_t rbuff[1] = {0};
-struct SpiMsg msg;        /* Custom message to be transferred */
-msg.wbuf = wbuff;         /* Pointer to the data to write */
-msg.rbuf = rbuff;         /* Pointer to the data to read */
-msg.len = 1;              /* The length of the data to read or write is 1 bit. */
-msg.csChange = 1;         /* Disable the CS before the next transfer. */
-msg.delayUs = 0;          /* No delay before the next transfer */
-msg.speed = 115200;       /* Speed of this transfer */
-/* Launch a custom transfer. The number of messages to be transferred is 1. */
-ret = SpiTransfer(spiHandle, &msg, 1);
+struct SpiCfg cfg = {0};                     /* SPI configuration. */
+cfg.mode = SPI_MODE_LOOP;                    /* Communicate in loop mode. */
+cfg.transferMode = PAL_SPI_POLLING_TRANSFER; /* Communicate in polling mode. */
+cfg.maxSpeedHz = 115200;                     /* Maximum transfer frequency. */
+cfg.bitsPerWord = 8;                         /* The width of per word to be read or written is 8 bits. */
+ret = SpiSetCfg(spiHandle, &cfg);            /* Set SPI device attributes. */
 if (ret != 0) {
-    HDF_LOGE("SpiTransfer: failed, ret %d\n", ret);
+    HDF_LOGE("SpiSetCfg: failed, ret %d\n", ret);
 }
 ```
 
-### Destroying the SPI Device Handle<a name="section19661632135117"></a>
 
-After the SPI communication, destroy the SPI device handle by calling the following function:
+### Performing SPI Communication
+
+- Write data to an SPI device
+
+  Call **SpiWrite()** to write data to an SPI device only once.
+
+
+  ```
+  int32_t SpiWrite(DevHandle handle, uint8_t *buf, uint32_t len);
+  ```
+
+  **Table 5** Description of SpiWrite
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle     | SPI device handle.|
+| buf        | Pointer to the data to write.|
+| len        | Length of the data to write.|
+| **Return Value**| **Description**|
+| 0          | The operation is successful.|
+| Negative value      | The operation failed.|
+
+
+  ```
+  int32_t ret;
+  uint8_t wbuff[4] = {0x12, 0x34, 0x56, 0x78};
+  /* Write data of the specified length to an SPI device. */
+  ret = SpiWrite(spiHandle, wbuff, 4);
+  if (ret != 0) {
+      HDF_LOGE("SpiWrite: failed, ret %d\n", ret);
+  }
+  ```
+
+- Read data from an SPI device
+
+  Call **SpiRead()** to read data from an SPI device only once.
+
 
-void SpiClose\(DevHandle handle\);
+  ```
+  int32_t SpiRead(DevHandle handle, uint8_t *buf, uint32_t len); 
+  ```
 
-This function will release the resources previously obtained.
+  **Table 6** Description of SpiRead
 
-**Table  8** Description of SpiClose
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | SPI device handle.|
+| buf | Pointer to the data to read.|
+| len | Length of the data to read.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
+
+  ```
+  int32_t ret;
+  uint8_t rbuff[4] = {0};
+  /* Read data of the specified length from an SPI device. */
+  ret = SpiRead(spiHandle, rbuff, 4);
+  if (ret != 0) {
+      HDF_LOGE("SpiRead: failed, ret %d\n", ret);
+  }
+  ```
+
+- Perform a custom transfer
+
+  Call **SpiTransfer()** to perform a custom transfer.
+
+
+  ```
+  int32_t SpiTransfer(DevHandle handle, struct SpiMsg *msgs, uint32_t count);
+  ```
+
+  **Table 7** Description of SpiTransfer
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | SPI device handle.|
+| msgs | Pointer to the message array to be transferred.|
+| count | Number of messages in the message array.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
+
+  ```
+  int32_t ret;
+  uint8_t wbuff[1] = {0x12};
+  uint8_t rbuff[1] = {0};
+  struct SpiMsg msg;        /* Custom message to be transferred. */
+  msg.wbuf = wbuff;         /* Data to write. */
+  msg.rbuf = rbuff;         /* Data to read. */
+  msg.len = 1;              /* The length of the data to read or write is 1 bit. */
+  msg.csChange = 1;         /* Close the CS before the next transfer. */
+  msg.delayUs = 0;          /* No delay before the next transfer. */
+  msg.speed = 115200;       /* Transfer speed. */
+  /* Perform a custom transfer. The number of messages to be transferred is 1. */
+  ret = SpiTransfer(spiHandle, &msg, 1);
+  if (ret != 0) {
+      HDF_LOGE("SpiTransfer: failed, ret %d\n", ret);
+  }
+  ```
+
+
+### Closing an SPI Device Handle
+
+After the SPI communication, call **SpiClose()** to close the SPI device handle.
 
-<a name="table72517953115"></a>
-<table><tbody><tr id="row1525793312"><td class="cellrowborder" valign="top" width="50%"><p id="p115402031153111"><a name="p115402031153111"></a><a name="p115402031153111"></a><strong id="b1728493044820"><a name="b1728493044820"></a><a name="b1728493044820"></a>Parameter</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p65406313319"><a name="p65406313319"></a><a name="p65406313319"></a><strong id="b176133134814"><a name="b176133134814"></a><a name="b176133134814"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row1926109193116"><td class="cellrowborder" valign="top" width="50%"><p id="p105419317318"><a name="p105419317318"></a><a name="p105419317318"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="50%"><p id="p16541153110317"><a name="p16541153110317"></a><a name="p16541153110317"></a>SPI device handle.</p>
-</td>
-</tr>
-</tbody>
-</table>
 
 ```
-SpiClose(spiHandle); /* Destroy the SPI device handle. */
+void SpiClose(DevHandle handle);
 ```
 
-## Usage Example<a name="section06541058155120"></a>
+This function releases the resources requested by **MipiDsiOpen**.
+
+  **Table 8** Description of SpiClose
 
-The following example shows how to obtain an SPI device handle, set the configuration parameters, and then read or write data from or into the SPI device, and finally destroy the SPI device handle.
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | SPI device handle.|
+
+
+```
+SpiClose(spiHandle); /* Close the SPI device handle. */
+```
+
+
+## Example
+
+The following example shows how to obtain an SPI device handle, set device attributes, and then read or write data from or into the SPI device, and finally close the SPI device handle.
 
 ```
 #include "hdf_log.h"
@@ -488,61 +306,61 @@ The following example shows how to obtain an SPI device handle, set the configur
 void SpiTestSample(void)
 {
     int32_t ret;
-    struct SpiCfg cfg;                  /* SPI device configuration information */
-    struct SpiDevInfo spiDevinfo;       /* SPI device descriptor */
-    DevHandle spiHandle = NULL; /* SPI device handle */
-    struct SpiMsg msg;                  /* Custom message to be transferred */
+    struct SpiCfg cfg;                  /* SPI device configuration. */
+    struct SpiDevInfo spiDevinfo;       /* SPI device descriptor. */
+    DevHandle spiHandle = NULL; /* SPI device handle. */
+    struct SpiMsg msg;                  /* Custom message to be transferred. */
     uint8_t rbuff[4] = { 0 };
     uint8_t wbuff[4] = { 0x12, 0x34, 0x56, 0x78 };
     uint8_t wbuff2[4] = { 0xa1, 0xb2, 0xc3, 0xd4 };
 
-    spiDevinfo.busNum = 0;              /* SPI device bus number */
-    spiDevinfo.csNum = 0;               /* SPI device CS number */
-    spiHandle = SpiOpen(&spiDevinfo);   /* Obtain an SPI device handle based on spiDevinfo. */
+    spiDevinfo.busNum = 0;              /* SPI device bus number. */
+    spiDevinfo.csNum = 0;               /* SPI device CS number. */
+    spiHandle = SpiOpen(&spiDevinfo);   /* Open the SPI device handle based on spiDevinfo. */
     if (spiHandle == NULL) {
         HDF_LOGE("SpiOpen: failed\n");
         return;
     }
-    /* Obtain configuration parameters of an SPI device. */
+    /* Obtain SPI attributes. */
     ret = SpiGetCfg(spiHandle, &cfg);
     if (ret != 0) {
         HDF_LOGE("SpiGetCfg: failed, ret %d\n", ret);
         goto err;
     }
-    cfg.maxSpeedHz = 115200;                /* Change the maximum clock frequency to 115200. */
-    cfg.bitsPerWord = 8;                    /* Change the word width to 8 bits. */
-    /* Set configuration parameters for an SPI device. */
+    cfg.maxSpeedHz = 115200;                /* Set the maximum clock frequency to 115200. */
+    cfg.bitsPerWord = 8;                    /* Set the word width to 8 bits. */
+    /* Set SPI attributes. */
     ret = SpiSetCfg(spiHandle, &cfg);
     if (ret != 0) {
         HDF_LOGE("SpiSetCfg: failed, ret %d\n", ret);
         goto err;
     }
-    /* Write specified length of data into an SPI device. */
+    /* Write data of the specified length to an SPI device. */
     ret = SpiWrite(spiHandle, wbuff, 4);
     if (ret != 0) {
         HDF_LOGE("SpiWrite: failed, ret %d\n", ret);
         goto err;
     }
-    /* Read data of a specific length from an SPI device. */
+    /* Read data of the specified length from an SPI device. */
     ret = SpiRead(spiHandle, rbuff, 4);
     if (ret != 0) {
         HDF_LOGE("SpiRead: failed, ret %d\n", ret);
         goto err;
     }
-    msg.wbuf = wbuff2;  /* Pointer to the data to write */
-    msg.rbuf = rbuff;   /* Pointer to the data to read */
-    msg.len = 4;        /* The length of the data to read or write is 4 bits. */
-    msg.csChange = 1;   /* Disable the CS before the next transfer. */
-    msg.delayUs = 0;    /* No delay before the next transfer */
-    msg.speed = 115200; /* Speed of this transfer */
-    /* Launch a custom transfer. The number of messages to be transferred is 1. */
+    msg.wbuf = wbuff2;  /* Data to write. */
+    msg.rbuf = rbuff;   /* Data to read. */
+    msg.len = 4;        /* Set the length of the data to read or write to 4 bits. */
+    msg.csChange = 1;   /* Close the CS before the next transfer. */
+    msg.delayUs = 0;    /* No delay before the next transfer. */
+    msg.speed = 115200; /* Transfer speed. */
+    /* Perform a custom transfer. The number of messages to be transferred is 1. */
     ret = SpiTransfer(spiHandle, &msg, 1);
     if (ret != 0) {
         HDF_LOGE("SpiTransfer: failed, ret %d\n", ret);
         goto err;
     }
 err:
-    /* Destroy the SPI device handle. */
+    /* Close the SPI device handle. */
     SpiClose(spiHandle);
 }
-```
\ No newline at end of file
+```
diff --git a/en/device-dev/driver/driver-platform-spi-develop.md b/en/device-dev/driver/driver-platform-spi-develop.md
index 40ed76d02446262f32d8d6e55eba044eca88fd89..992424e32ed99b6cbc5dba998871a9d46f3660e6 100644
--- a/en/device-dev/driver/driver-platform-spi-develop.md
+++ b/en/device-dev/driver/driver-platform-spi-develop.md
@@ -1,16 +1,18 @@
-# SPI<a name="EN-US_TOPIC_0000001199690327"></a>
+# SPI
 
 
-## Overview<a name="section84922229152909"></a>
+## Overview
 
-In the Hardware Driver Foundation \(HDF\), the Serial Peripheral Interface \(SPI\) uses the independent service mode for API adaptation. In this mode, each device independently publishes a device service to handle external access requests. After receiving an access request from an API, the device manager extracts the parameters in the request to call the internal method of the target device. In the independent service mode, the service management capabilities of the HDFDeviceManager can be directly used. However, you need to configure a device node for each device, which increases the memory usage.
+Serial Peripheral Interface (SPI) is a serial bus specification used for high-speed, full-duplex, and synchronous communication. In the Hardware Driver Foundation (HDF), the SPI module uses the independent service mode for API adaptation. In this mode, each device independently publishes a service to process external access requests. When receiving an access request, the HDF DeviceManager extracts parameters from the request to call the internal APIs of the target device. In the independent service mode, the HDF DeviceManager provides service management capabilities. However, you need to configure a node for each device, which increases memory usage.
 
-**Figure  1** Independent service mode<a name="fig666465313303"></a>  
-![](figures/independent-service-mode.png "SPI-independent-service-mode")
+  **Figure 1** Independent service mode
 
-## Available APIs<a name="section752964871810"></a>
+  ![image](figures/independent-service-mode.png)
+
+## **Available APIs**
+
+**SpiCntlrMethod**:
 
-SpiCntlrMethod:
 
 ```
 struct SpiCntlrMethod {
@@ -21,422 +23,348 @@ struct SpiCntlrMethod {
   int32_t (*Close)(struct SpiCntlr *cntlr);
 };
 ```
-**Table  1** Callbacks for the members in the SpiCntlrMethod structure
-
-<a name="table7167123615321"></a>
-<table><thead align="left"><tr id="row816783615326"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p8167193643218"><a name="p8167193643218"></a><a name="p8167193643218"></a>Callback</p>
-</th>
-<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p31672362325"><a name="p31672362325"></a><a name="p31672362325"></a>Input Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="24.98%" id="mcps1.2.5.1.3"><p id="p51673367328"><a name="p51673367328"></a><a name="p51673367328"></a>Return Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="25.019999999999996%" id="mcps1.2.5.1.4"><p id="p1116883619322"><a name="p1116883619322"></a><a name="p1116883619322"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row816883693214"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p11683369329"><a name="p11683369329"></a><a name="p11683369329"></a>Transfer</p>
-</td>
-<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p0671913132514"><a name="p0671913132514"></a><a name="p0671913132514"></a><strong id="b19675134258"><a name="b19675134258"></a><a name="b19675134258"></a>cntlr</strong>: structure pointer to the SPI controller at the core layer.</p>
-<p id="p192109186258"><a name="p192109186258"></a><a name="p192109186258"></a><strong id="b1921051810258"><a name="b1921051810258"></a><a name="b1921051810258"></a>msg</strong>: structure pointer to the SPI message.</p>
-<p id="p6168736173213"><a name="p6168736173213"></a><a name="p6168736173213"></a><strong id="b92627310191"><a name="b92627310191"></a><a name="b92627310191"></a>count</strong>: number of messages. The value is of the uint32_t type.</p>
-</td>
-<td class="cellrowborder" valign="top" width="24.98%" headers="mcps1.2.5.1.3 "><p id="p19168736113216"><a name="p19168736113216"></a><a name="p19168736113216"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.019999999999996%" headers="mcps1.2.5.1.4 "><p id="p18168236143218"><a name="p18168236143218"></a><a name="p18168236143218"></a>Transfers messages.</p>
-</td>
-</tr>
-<tr id="row3168113633211"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p4168636193212"><a name="p4168636193212"></a><a name="p4168636193212"></a>SetCfg</p>
-</td>
-<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p242632402513"><a name="p242632402513"></a><a name="p242632402513"></a><strong id="b742642452513"><a name="b742642452513"></a><a name="b742642452513"></a>cntlr</strong>: structure pointer to the SPI controller at the core layer.</p>
-<p id="p11168163643217"><a name="p11168163643217"></a><a name="p11168163643217"></a><strong id="b1283910558207"><a name="b1283910558207"></a><a name="b1283910558207"></a>cfg</strong>: structure pointer to the SPI attributes.</p>
-</td>
-<td class="cellrowborder" valign="top" width="24.98%" headers="mcps1.2.5.1.3 "><p id="p101683367325"><a name="p101683367325"></a><a name="p101683367325"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.019999999999996%" headers="mcps1.2.5.1.4 "><p id="p1216815368329"><a name="p1216815368329"></a><a name="p1216815368329"></a>Sets SPI controller attributes.</p>
-</td>
-</tr>
-<tr id="row13168183683215"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p11168436123220"><a name="p11168436123220"></a><a name="p11168436123220"></a>GetCfg</p>
-</td>
-<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p9698153182520"><a name="p9698153182520"></a><a name="p9698153182520"></a><strong id="b19698131162510"><a name="b19698131162510"></a><a name="b19698131162510"></a>cntlr</strong>: structure pointer to the SPI controller at the core layer.</p>
-<p id="p3168936133218"><a name="p3168936133218"></a><a name="p3168936133218"></a><strong id="b11555148182113"><a name="b11555148182113"></a><a name="b11555148182113"></a>cfg</strong>: structure pointer to the SPI attributes.</p>
-</td>
-<td class="cellrowborder" valign="top" width="24.98%" headers="mcps1.2.5.1.3 "><p id="p18169036193219"><a name="p18169036193219"></a><a name="p18169036193219"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.019999999999996%" headers="mcps1.2.5.1.4 "><p id="p3169136173219"><a name="p3169136173219"></a><a name="p3169136173219"></a>Obtains SPI controller attributes.</p>
-</td>
-</tr>
-<tr id="row9169133643218"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p13169163615320"><a name="p13169163615320"></a><a name="p13169163615320"></a>Open</p>
-</td>
-<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p181697365327"><a name="p181697365327"></a><a name="p181697365327"></a><strong id="b1876822162218"><a name="b1876822162218"></a><a name="b1876822162218"></a>cntlr</strong>: structure pointer to the SPI controller at the core layer. </p>
-</td>
-<td class="cellrowborder" valign="top" width="24.98%" headers="mcps1.2.5.1.3 "><p id="p1169163693216"><a name="p1169163693216"></a><a name="p1169163693216"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.019999999999996%" headers="mcps1.2.5.1.4 "><p id="p1116963693218"><a name="p1116963693218"></a><a name="p1116963693218"></a>Enables the SPI.</p>
-</td>
-</tr>
-<tr id="row11169436153214"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p0169736153219"><a name="p0169736153219"></a><a name="p0169736153219"></a>Close</p>
-</td>
-<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p31691936193210"><a name="p31691936193210"></a><a name="p31691936193210"></a><strong id="b16798152112239"><a name="b16798152112239"></a><a name="b16798152112239"></a>cntlr</strong>: structure pointer to the SPI controller at the core layer. </p>
-</td>
-<td class="cellrowborder" valign="top" width="24.98%" headers="mcps1.2.5.1.3 "><p id="p2169123617322"><a name="p2169123617322"></a><a name="p2169123617322"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.019999999999996%" headers="mcps1.2.5.1.4 "><p id="p1169636103220"><a name="p1169636103220"></a><a name="p1169636103220"></a>Disables the SPI.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## How to Develop<a name="section799667984152909"></a>
+
+  **Table 1** Description of the callback functions in SpiCntlrMethod
+
+| Function| Input Parameter| Return Value| Description|
+| -------- | -------- | -------- | -------- |
+| Transfer | **cntlr**: structure pointer to the SPI controller at the core layer.<br>**msg**: structure pointer to the SPI message.<br>**count**: number of messages. The value is of the uint32_t type.| HDF_STATUS| Transfers messages.|
+| SetCfg | **cntlr**: structure pointer to the SPI controller at the core layer.<br>**cfg**: structure pointer to the SPI attributes.| HDF_STATUS| Sets SPI controller attributes.|
+| GetCfg | **cntlr**: structure pointer to the SPI controller at the core layer.<br>**cfg**: structure pointer to the SPI attributes.| HDF_STATUS| Obtains SPI controller attributes.|
+| Open | **cntlr**: structure pointer to the SPI controller at the core layer.| HDF_STATUS| Opens an SPI device.|
+| Close | **cntlr**: structure pointer to the SPI controller at the core layer.| HDF_STATUS| Closes an SPI device.|
+
+
+## How to Develop
 
 The SPI module adaptation involves the following steps:
 
-1.  Instantiate the driver entry.
-    -   Instantiate the **HdfDriverEntry** structure.
-    -   Call **HDF\_INIT** to register the **HdfDriverEntry** instance with the HDF.
-
-2.  Configure attribute files.
-    -   Add the **deviceNode** information to the **device\_info.hcs** file.
-    -   \(Optional\) Add the **spi\_config.hcs** file.
-
-3.  Instantiate the SPI controller object.
-    -   Initialize **SpiCntlr**.
-    -   Instantiate **SpiCntlrMethod** in the **SpiCntlr** object.
-
-        For details, see [Available APIs](#section752964871810). 
-
- 4.  \(Optional\) Debug the driver.
-     For new drivers, verify the basic functions, such as the SPI control status and response to interrupts.
-
-
-## Development Example<a name="section956157227152909"></a>
-
-The following uses **spi\_hi35xx.c** as an example to present the contents that need to be provided by the vendor to implement device functions.
-
-1.  Instantiate the driver entry. The driver entry must be a global variable of the **HdfDriverEntry** type \(defined in **hdf\_device\_desc.h**\), and the value of **moduleName** must be the same as that in **device\_info.hcs**. In the HDF, the start address of each **HdfDriverEntry** object of all loaded drivers is collected to form a segment address space similar to an array for the upper layer to invoke.
-
-    Generally, HDF calls the **Bind** function and then the **Init** function to load a driver. If **Init** fails to be called, HDF calls **Release** to release driver resources and exit.
-
-    -   SPI driver entry reference
-
-        ```
-        struct HdfDriverEntry g_hdfSpiDevice = {
-            .moduleVersion = 1,
-            .moduleName = "HDF_PLATFORM_SPI",// (Mandatory) The value must be the same as that of moduleName in the .hcs file.
-                .Bind = HdfSpiDeviceBind,   // See the Bind function.
-         .Init = HdfSpiDeviceInit, // See the Init function.
-             .Release = HdfSpiDeviceRelease,  //See the Release function.
-        };
-        // Call HDF_INIT to register the driver entry with the HDF.
-        HDF_INIT(g_hdfSpiDevice);
-        ```
-
-2.  Add the **deviceNode** information to the **device\_info.hcs** file and configure the device attributes in the **spi\_config.hcs** file. The **deviceNode** information is related to registration of the driver entry. The device attribute values are closely related to the default values or value ranges of the **SpiCntlr** members at the core layer.
-
-    In this example, there is only one SPI controller. If there are multiple SPI controllers, you need to add the **deviceNode** information to the **device\_info** file and add the corresponding device attributes to the **spi\_config** file.
-
-    -  **device\_info.hcs** configuration reference
-
-        ```
-        root {
-        device_info {
-            match_attr = "hdf_manager";
-            platform :: host {
-            hostName = "platform_host";
-            priority = 50;
-            device_spi :: device {// Configure an HDF device node for each SPI controller.
-                device0 :: deviceNode {
-                policy = 1;
-                priority = 60;
-                permission = 0644;
-                moduleName = "HDF_PLATFORM_SPI";
-                serviceName = "HDF_PLATFORM_SPI_0";
-                deviceMatchAttr = "hisilicon_hi35xx_spi_0";
-                }
-                device1 :: deviceNode {
-                policy = 1;
-                priority = 60;
-                permission = 0644;
-                moduleName = "HDF_PLATFORM_SPI"; // (Mandatory) Driver name, which must be the same as that of moduleName in the driver entry structure.
-                   serviceName = "HDF_PLATFORM_SPI_1"; // (Mandatory) Unique name of the service published by the driver
-                deviceMatchAttr = "hisilicon_hi35xx_spi_1";// The value must be the same as that of match_attr in the .hcs file.
-                }
-                ...
-            }
-            }
-        }
-        }
-        ```
-
-    -  **spi\_config.hcs** configuration reference
-
-        ```
-        root {
-        platform {
-            spi_config {// Configure private data for each SPI controller.
-              template spi_controller {// Template configuration. In the template, you can configure the common parameters shared by service nodes.
-                serviceName = "";
-                match_attr = "";
-                transferMode = 0; // Data transfer mode, which can be interrupt transfer (0), flow control transfer (1), or DMA transfer (2).
-                busNum = 0; // Bus number
-                clkRate = 100000000;
-                bitsPerWord = 8; // Bit width of the data transferred
-                mode = 19; // SPI data input/output mode
-                maxSpeedHz = 0; // Maximum clock frequency
-                minSpeedHz = 0;  // Minimum clock frequency
-                speed = 2000000; // Current message transfer speed
-                fifoSize = 256; // FIFO size
-                numCs = 1; // Chip select (CS) number
-                regBase = 0x120c0000; // Used for address mapping.
-                irqNum = 100; // Interruption number
-                REG_CRG_SPI = 0x120100e4;       // CRG_REG_BASE(0x12010000) + 0x0e4
-                CRG_SPI_CKEN = 0;
-                CRG_SPI_RST = 0;
-                REG_MISC_CTRL_SPI = 0x12030024; // MISC_REG_BASE(0x12030000) + 0x24
-                MISC_CTRL_SPI_CS = 0;
-                MISC_CTRL_SPI_CS_SHIFT = 0;
-            }      
-            controller_0x120c0000 :: spi_controller {
-                busNum = 0; // (Mandatory) Bus number
-                CRG_SPI_CKEN = 0x10000;    // (0x1 << 16) 0:close clk, 1:open clk 
-                CRG_SPI_RST = 0x1;         // (0x1 << 0) 0:cancel reset, 1:reset 
-                  match_attr = "hisilicon_hi35xx_spi_0";// (Mandatory) The value must be the same as that of deviceMatchAttr in device_info.hcs.
-            }      
-            controller_0x120c1000 :: spi_controller {
-                busNum = 1;
-                CRG_SPI_CKEN = 0x20000;    // (0x1 << 17) 0:close clk, 1:open clk
-                CRG_SPI_RST = 0x2;         // (0x1 << 1) 0:cancel reset, 1:reset 
-                match_attr = "hisilicon_hi35xx_spi_1"; 
-                regBase = 0x120c1000; // (Mandatory) Used for address mapping.
-                   irqNum = 101; // (Mandatory) Interrupt number
-            }
-            ...
-            //(Optional) Add nodes to the device_info.hcs file as required.
-            }
-        }
-        }
-        ```
-
-3.  Initialize the **SpiCntlr** object at the core layer, including initializing the vendor custom structure \(transferring parameters and data\), instantiating **SpiCntlrMethod** \(used to call underlying functions of the driver\) in **SpiCntlr**, and implementing the **HdfDriverEntry** member functions \(**Bind**, **Init**, and **Release**\).
-    -   Custom structure reference
-
-        To the driver, the custom structure carries parameters and data. The values in the **spi\_config.hcs** file are read by HDF, and the structure members are initialized through **DeviceResourceIface**. Some important values, such as the device number and bus number, are also passed to the object at the core layer.
-
-        ```
-        struct Pl022 {// Corresponds to parameters in .hcs.
-            struct SpiCntlr *cntlr;
-            struct DListHead deviceList;
-            struct OsalSem sem;
-            volatile unsigned char *phyBase;
-            volatile unsigned char *regBase;
-            uint32_t irqNum;
-            uint32_t busNum;
-            uint32_t numCs;
-            uint32_t curCs;
-            uint32_t speed;
-            uint32_t fifoSize;
-            uint32_t clkRate;
-            uint32_t maxSpeedHz;
-            uint32_t minSpeedHz;
-            uint32_t regCrg;
-            uint32_t clkEnBit;
-            uint32_t clkRstBit;
-            uint32_t regMiscCtrl;
-            uint32_t miscCtrlCsShift;
-            uint32_t miscCtrlCs;
-            uint16_t mode;
-            uint8_t bitsPerWord;
-            uint8_t transferMode;
-        };
-        
-        // SpiCntlr is the core layer controller structure. Its members are assigned with values by using the Init function.
-        struct SpiCntlr {
-            struct IDeviceIoService service;
-            struct HdfDeviceObject *device;
-            uint32_t busNum;
-            uint32_t numCs;
-            uint32_t curCs;
-            struct OsalMutex lock;
-            struct SpiCntlrMethod *method;
-            struct DListHead list;
-            void *priv;
-        };
-        ```
-
-    -   Instantiate the callback function structure **SpiCntlrMethod** in **SpiCntlr**. Other members are initialized by using the **Init** function.
-
-        ```
-        // Example in spi_hi35xx.c: instantiate the hook.
-        struct SpiCntlrMethod g_method = {
-            .Transfer = Pl022Transfer,
-            .SetCfg = Pl022SetCfg,
-            .GetCfg = Pl022GetCfg,
-            .Open = Pl022Open,
-            .Close = Pl022Close,
-        };
-        ```
-
-    -   Bind function
-
-        Input parameters:
-
-       **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs configuration file information.
-
-        Return values:
-
-        HDF\_STATUS
-
-        Function description:
-
-        Associates the **SpiCntlr** object with **HdfDeviceObject**.
-
-        ```
-        static int32_t HdfSpiDeviceBind(struct HdfDeviceObject *device)
-        {
-            ...
-            return (SpiCntlrCreate(device) == NULL) ? HDF_FAILURE : HDF_SUCCESS;
-        }
-        
-        struct SpiCntlr *SpiCntlrCreate(struct HdfDeviceObject *device)
-        {
-            struct SpiCntlr *cntlr = NULL; // Create the SpiCntlr object of the core layer.
-            ...
-             cntlr = (struct SpiCntlr *)OsalMemCalloc(sizeof(*cntlr));// Allocate memory.
-            ...
-            cntlr->device = device; // Enable conversion between HdfDeviceObject and SpiCntlr.
-             device->service = &(cntlr->service); // Enable conversion between HdfDeviceObject and SpiCntlr.
-            (void)OsalMutexInit(&cntlr->lock); // Initialize the lock.
-            DListHeadInit(&cntlr->list); // Add the corresponding node.
-            cntlr->priv = NULL;
-            return cntlr;
-        }
-        ```
-
-    -   Init function
-
-        Input parameters:
-
-       **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs configuration file information.
-
-        Return values:
-
-        HDF\_STATUS \(The following table lists some status. For details about other status, see **HDF\_STATUS** in the **/drivers/framework/include/utils/hdf\_base.h** file.\)
-
-       **Table  2** Input parameters and return values of the init function
-
-        <a name="table4311552173914"></a>
-        <table><thead align="left"><tr id="row8314152103916"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p331413523392"><a name="p331413523392"></a><a name="p331413523392"></a>Status (Value)</p>
-        </th>
-        <th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p7314145220390"><a name="p7314145220390"></a><a name="p7314145220390"></a>Description</p>
-        </th>
-        </tr>
-        </thead>
-        <tbody><tr id="row93142052183918"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p93141252123914"><a name="p93141252123914"></a><a name="p93141252123914"></a>HDF_ERR_INVALID_OBJECT</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p331485215390"><a name="p331485215390"></a><a name="p331485215390"></a>Invalid controller object</p>
-        </td>
-        </tr>
-        <tr id="row331445211399"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p83141352183917"><a name="p83141352183917"></a><a name="p83141352183917"></a>HDF_ERR_MALLOC_FAIL</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p15314175220397"><a name="p15314175220397"></a><a name="p15314175220397"></a>Failed to allocate memory</p>
-        </td>
-        </tr>
-        <tr id="row20314175213918"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p9314352113917"><a name="p9314352113917"></a><a name="p9314352113917"></a>HDF_ERR_INVALID_PARAM</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p131535273910"><a name="p131535273910"></a><a name="p131535273910"></a>Invalid parameter</p>
-        </td>
-        </tr>
-        <tr id="row1431565233911"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p0315052103915"><a name="p0315052103915"></a><a name="p0315052103915"></a>HDF_ERR_IO</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1831585215398"><a name="p1831585215398"></a><a name="p1831585215398"></a>I/O error</p>
-        </td>
-        </tr>
-        <tr id="row2315152193914"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p7315185263919"><a name="p7315185263919"></a><a name="p7315185263919"></a>HDF_SUCCESS</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1731585213910"><a name="p1731585213910"></a><a name="p1731585213910"></a>Initialization successful</p>
-        </td>
-        </tr>
-        <tr id="row5315752163916"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p6315105211392"><a name="p6315105211392"></a><a name="p6315105211392"></a>HDF_FAILURE</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p83157528399"><a name="p83157528399"></a><a name="p83157528399"></a>Initialization failed</p>
-        </td>
-        </tr>
-        </tbody>
-        </table>
-
-        Function description:
-
-        Initializes the custom structure object and **SpiCntlr**.
-
-        ```
-        static int32_t HdfSpiDeviceInit(struct HdfDeviceObject *device)
-        {
-        int32_t ret;
-        struct SpiCntlr *cntlr = NULL;
-        ...
-            cntlr = SpiCntlrFromDevice(device);// Forcibly convert HdfDeviceObject to SpiCntlr by using service. For details about the value assignment, see the Bind function.
-                                            //return (device == NULL) ? NULL : (struct SpiCntlr *)device->service;
-        ...
-        ret = Pl022Init(cntlr, device);// (Mandatory) Instantiate the operation object customized by the vendor. The following is an example:
-        ...
-        ret = Pl022Probe(cntlr->priv);
-        ...
-        return ret;
-        }
-        
-        static int32_t Pl022Init(struct SpiCntlr *cntlr, const struct HdfDeviceObject *device)
-        {
-        int32_t ret;
-        struct Pl022 *pl022 = NULL;
-        ...
-        pl022 = (struct Pl022 *)OsalMemCalloc(sizeof(*pl022));// Apply for memory.
-        ...
-        ret = SpiGetBaseCfgFromHcs(pl022, device->property); // Initialize busNum, numCs, speed, fifoSize, clkRate, mode, bitsPerWord, and transferMode.
-        ...
-        ret = SpiGetRegCfgFromHcs(pl022, device->property); // Initialize regBase, phyBase, irqNum, regCrg, clkEnBit ,clkRstBit, regMiscCtrl, miscCtrlCs, and miscCtrlCsShift.
-        ...
-        // Calculate the frequencies corresponding to the maximum and minimum speeds.
-        pl022->maxSpeedHz = (pl022->clkRate) / ((SCR_MIN + 1) * CPSDVSR_MIN);
-        pl022->minSpeedHz = (pl022->clkRate) / ((SCR_MAX + 1) * CPSDVSR_MAX);
-        DListHeadInit(&pl022->deviceList);// Initialize the DList linked list.
-        pl022->cntlr = cntlr;                // Enable conversion between Pl022 and SpiCntlr.
-        cntlr->priv = pl022;              // Enable conversion between Pl022 and SpiCntlr.
-        cntlr->busNum = pl022->busNum;    // Assign a value to busNum in SpiCntlr.
-        cntlr->method = &g_method;        // Connect to the SpiCntlrMethod instance.
-        ...
-        ret = Pl022CreatAndInitDevice(pl022);
-        if (ret != 0) {
-            Pl022Release(pl022);             // Release the Pl022 object if the initialization fails.
-            return ret;
-        }
-        return 0;
-        }
-        ```
-		
-    -   Release function
-
-        Input parameters:
-
-       **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs configuration file information.
-
-        Return values:
-
-        –
-
-        Function description:
-
-        Releases the memory and deletes the controller. This function assigns a value to the **Release** API in the driver entry structure. When the HDF fails to call the **Init** function to initialize the driver, the **Release** function can be called to release driver resources. All forced conversion operations for obtaining the corresponding object can be successful only when the **Init** function has the corresponding value assignment operations.
-
-        ```
-        static void HdfSpiDeviceRelease(struct HdfDeviceObject *device)
-        {
-            struct SpiCntlr *cntlr = NULL;
-            ...
-            cntlr = SpiCntlrFromDevice(device);// Forcibly convert HdfDeviceObject to SpiCntlr by using service. For details about the value assignment, see the Bind function.
-                                            // return (device==NULL) ?NULL:(struct SpiCntlr *)device->service;
-            ...
-            if (cntlr->priv != NULL) {
-                Pl022Remove((struct Pl022 *)cntlr->priv);// A forced conversion from SpiCntlr to Pl022 is involved. 
-            }
-            SpiCntlrDestroy(cntlr);                         // Release the Pl022 object.
-        }
-        ```
\ No newline at end of file
+1. Instantiate the driver entry.
+   - Instantiate the **HdfDriverEntry** structure.
+   - Call **HDF_INIT** to register the **HdfDriverEntry** instance with the HDF.
+
+2. Configure attribute files.
+   - Add the **deviceNode** information to the **device_info.hcs** file.
+   - (Optional) Add the **spi_config.hcs** file.
+
+3. Instantiate the SPI controller object.
+   - Initialize **SpiCntlr**.
+   - Instantiate **SpiCntlrMethod** in the **SpiCntlr** object.
+      > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+      > For details about the functions in **SpiCntlrMethod**, see [Available APIs](#available-apis).
+
+4. Debug the driver.<br>
+   (Optional) For new drivers, verify the basic functions, such as the SPI status control and response to interrupts.
+
+
+## Development Example
+
+The following uses **spi_hi35xx.c** as an example to present the information required for implementing device functions.
+
+1. Instantiate the driver entry.<br/>The driver entry must be a global variable of the **HdfDriverEntry** type (defined in **hdf_device_desc.h**), and the value of **moduleName** must be the same as that in **device_info.hcs**. In the HDF framework, the start address of each **HdfDriverEntry** object of all loaded drivers is collected to form a segment address space similar to an array for the upper layer to invoke.
+   Generally, the HDF calls the **Bind** function and then the **Init** function to load a driver. If **Init** fails to be called, the HDF calls **Release** to release driver resources and exit.
+
+     SPI driver entry example:
+   
+   ```
+   struct HdfDriverEntry g_hdfSpiDevice = {
+       .moduleVersion = 1,
+       .moduleName = "HDF_PLATFORM_SPI",// (Mandatory) The value must be the same as that of moduleName in the .hcs file.
+       .Bind = HdfSpiDeviceBind,        // See the Bind function.
+       .Init = HdfSpiDeviceInit,        // See the Init function.
+       .Release = HdfSpiDeviceRelease,  //See the Release function.
+   };
+   // Call HDF_INIT to register the driver entry with the HDF.
+   HDF_INIT(g_hdfSpiDevice);
+   ```
+
+2. Add the **deviceNode** information to the **device_info.hcs** file and configure the device attributes in the **spi_config.hcs** file. 
+     
+   The **deviceNode** information is related to registration of the driver entry. The device attribute values are closely related to the default values or value ranges of the **SpiCntlr** members at the core layer.
+   
+   In this example, there is only one SPI controller. If there are multiple SPI controllers, you need to add the **deviceNode** information to the **device_info** file and add the corresponding device attributes to the **spi_config** file for each controller.
+   
+   - **device_info.hcs** configuration example
+   
+     
+     ```
+     root {
+     device_info {
+         match_attr = "hdf_manager";
+         platform :: host {
+         hostName = "platform_host";
+         priority = 50;
+         device_spi :: device {                           // Configure an HDF device node for each SPI controller.
+             device0 :: deviceNode {
+             policy = 1;
+             priority = 60;
+             permission = 0644;
+             moduleName = "HDF_PLATFORM_SPI";
+             serviceName = "HDF_PLATFORM_SPI_0";
+             deviceMatchAttr = "hisilicon_hi35xx_spi_0";
+             }
+             device1 :: deviceNode {
+             policy = 1;
+             priority = 60;
+             permission = 0644;
+             moduleName = "HDF_PLATFORM_SPI";             // (Mandatory) Driver name, which must be the same as that of moduleName in the driver entry structure.
+             serviceName = "HDF_PLATFORM_SPI_1";          // (Mandatory) Unique name of the service published by the driver.
+             deviceMatchAttr = "hisilicon_hi35xx_spi_1";// The value must be the same as that of match_attr in the .hcs file.
+             }
+             ...
+         }
+         }
+     }
+     }
+     ```
+   
+   - **spi_config.hcs** configuration example
+   
+     
+     ```
+     root {
+     platform {
+         spi_config {// Configure private data for each SPI controller.
+         template spi_controller {  // Template configuration. In the template, you can configure the common parameters shared by device nodes.
+             serviceName = "";
+             match_attr = "";
+             transferMode = 0; // Data transfer mode. The value **0** indicates interrupt transfer, **1** indicates flow control transfer, and **2** indicates DMA transfer.
+             busNum = 0;           // Bus number.
+             clkRate = 100000000;
+             bitsPerWord = 8      // Number of bits per word.
+             mode = 19;            // SPI data input/output mode.
+             maxSpeedHz = 0;       // Maximum clock frequency.
+             minSpeedHz = 0;       // Minimum clock frequency.
+             speed = 2000000;      // Current message transfer speed.
+             fifoSize = 256;       // FIFO size.
+             numCs = 1;            // Chip select (CS) number.
+             regBase = 0x120c0000; // Used for address mapping.
+             irqNum = 100;         // Interrupt request (IRQ) number.
+             REG_CRG_SPI = 0x120100e4;       // CRG_REG_BASE(0x12010000) + 0x0e4
+             CRG_SPI_CKEN = 0;
+             CRG_SPI_RST = 0;
+             REG_MISC_CTRL_SPI = 0x12030024; // MISC_REG_BASE(0x12030000) + 0x24
+             MISC_CTRL_SPI_CS = 0;
+             MISC_CTRL_SPI_CS_SHIFT = 0;
+         }      
+         controller_0x120c0000 :: spi_controller {
+             busNum = 0;                // (Mandatory) Bus number.
+             CRG_SPI_CKEN = 0x10000;    // (0x1 << 16) 0:close clk, 1:open clk 
+             CRG_SPI_RST = 0x1;         // (0x1 << 0) 0:cancel reset, 1:reset 
+             match_attr = "hisilicon_hi35xx_spi_0";// (Mandatory) The value must be the same as that of deviceMatchAttr in device_info.hcs.
+         }      
+         controller_0x120c1000 :: spi_controller {
+             busNum = 1;
+             CRG_SPI_CKEN = 0x20000;    // (0x1 << 17) 0:close clk, 1:open clk
+             CRG_SPI_RST = 0x2;         // (0x1 << 1) 0:cancel reset, 1:reset 
+             match_attr = "hisilicon_hi35xx_spi_1"; 
+             regBase = 0x120c1000;      // (Mandatory) Used for address mapping.
+             irqNum = 101;              // (Mandatory) IRQ number.
+         }
+         ...
+         //(Optional) Add nodes to the device_info.hcs file as required.
+      }
+       }
+       }
+       ```
+     
+3. Initialize the **SpiCntlr** object at the core layer, including defining a custom structure (to pass parameters and data) and implementing the **HdfDriverEntry** member functions (**Bind**, **Init**, and **Release**) to instantiate **SpiCntlrMethod** in **SpiCntlr** (so that the underlying driver functions can be called).
+   - Defining a custom structure
+
+      To the driver, the custom structure holds parameters and data. The **DeviceResourceIface** method provided by the HDF reads the values in the **spi_config.hcs** file to initialize the members in the custom structure and passes important parameters, such as the device number and bus number, to the **SpiCntlr** object at the core layer.
+
+      
+      ```
+      struct Pl022 {// Corresponds to parameters in .hcs.
+          struct SpiCntlr *cntlr;
+          struct DListHead deviceList;
+          struct OsalSem sem;
+          volatile unsigned char *phyBase;
+          volatile unsigned char *regBase;
+          uint32_t irqNum;
+          uint32_t busNum;
+          uint32_t numCs;
+          uint32_t curCs;
+          uint32_t speed;
+          uint32_t fifoSize;
+          uint32_t clkRate;
+          uint32_t maxSpeedHz;
+          uint32_t minSpeedHz;
+          uint32_t regCrg;
+          uint32_t clkEnBit;
+          uint32_t clkRstBit;
+          uint32_t regMiscCtrl;
+          uint32_t miscCtrlCsShift;
+          uint32_t miscCtrlCs;
+          uint16_t mode;
+          uint8_t bitsPerWord;
+          uint8_t transferMode;
+      };
+      
+      // SpiCntlr is the core layer controller structure. The Init function assigns values to the members of SpiCntlr.
+      struct SpiCntlr {
+          struct IDeviceIoService service;
+          struct HdfDeviceObject *device;
+          uint32_t busNum;
+          uint32_t numCs;
+          uint32_t curCs;
+          struct OsalMutex lock;
+          struct SpiCntlrMethod *method;
+          struct DListHead list;
+          void *priv;
+      };
+      ```
+
+   - Instantiating **SpiCntlrMethod** in **SpiCntlr** (other members are initialized by **Init**)
+
+     
+      ```
+      // Example in spi_hi35xx.c: instantiate the hooks.
+      struct SpiCntlrMethod g_method = {
+          .Transfer = Pl022Transfer,
+          .SetCfg = Pl022SetCfg,
+          .GetCfg = Pl022GetCfg,
+          .Open = Pl022Open,
+          .Close = Pl022Close,
+      };
+      ```
+
+   - **Bind** function
+
+      Input parameter:
+
+      **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs information.
+
+      Return value:
+
+      HDF_STATUS
+
+      Function description:
+
+      Associates the **SpiCntlr** object with **HdfDeviceObject**.
+
+      
+      ```
+      static int32_t HdfSpiDeviceBind(struct HdfDeviceObject *device)
+      {
+          ...
+          return (SpiCntlrCreate(device) == NULL) ? HDF_FAILURE : HDF_SUCCESS;
+      }
+      
+      struct SpiCntlr *SpiCntlrCreate(struct HdfDeviceObject *device)
+      {
+          struct SpiCntlr *cntlr = NULL; // Create the SpiCntlr object at the core layer.
+          ...
+          cntlr = (struct SpiCntlr *)OsalMemCalloc(sizeof(*cntlr));// Allocate memory.
+          ...
+          cntlr->device = device;             // Prerequisites for conversion between HdfDeviceObject and SpiCntlr.
+          device->service = &(cntlr->service); // Prerequisites for conversion between HdfDeviceObject and SpiCntlr.
+          (void)OsalMutexInit(&cntlr->lock); // Initialize the lock.
+          DListHeadInit(&cntlr->list);        // Add the corresponding nodes.
+          cntlr->priv = NULL;
+          return cntlr;
+      }
+      ```
+
+   - **Init** function
+
+      Input parameter:
+
+      **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs information.
+
+      Return value:
+
+      HDF_STATUS
+
+      The table below lists some status. For more information, see **HDF_STATUS** in the /drivers/framework/include/utils/hdf_base.h file.
+      
+        **Table 2** HDF_STATUS
+      
+      | Status| Description|
+      | -------- | -------- |
+      | HDF_ERR_INVALID_OBJECT | Invalid controller object.|
+      | HDF_ERR_MALLOC_FAIL | Failed to allocate memory.|
+      | HDF_ERR_INVALID_PARAM | Invalid parameter.|
+      | HDF_ERR_IO | I/O error.|
+      | HDF_SUCCESS | Initialization successful.|
+      | HDF_FAILURE | Initialization failed.|
+
+      Function description:
+
+      Initializes the custom structure object and **SpiCntlr**.
+      
+      
+      ```
+      static int32_t HdfSpiDeviceInit(struct HdfDeviceObject *device)
+      {
+      int32_t ret;
+      struct SpiCntlr *cntlr = NULL;
+      ...
+      cntlr = SpiCntlrFromDevice(device); // Use service to forcibly convert HdfDeviceObject to SpiCntlr. For details about the value assignment, see the Bind function.
+                                          // return (device == NULL) ? NULL : (struct SpiCntlr *)device->service;
+      ...
+      ret = Pl022Init(cntlr, device);     // (Mandatory) Instantiate the operation object customized by the vendor. The following is an example:
+      ...
+      ret = Pl022Probe(cntlr->priv);
+      ...
+      return ret;
+      }
+      
+      static int32_t Pl022Init(struct SpiCntlr *cntlr, const struct HdfDeviceObject *device)
+      {
+      int32_t ret;
+      struct Pl022 *pl022 = NULL;
+      ...
+      pl022 = (struct Pl022 *)OsalMemCalloc(sizeof(*pl022));// Request memory.
+      ...
+      ret = SpiGetBaseCfgFromHcs(pl022, device->property); // Initialize busNum, numCs, speed, fifoSize, clkRate, mode, bitsPerWord, and transferMode.
+      ...
+      ret = SpiGetRegCfgFromHcs(pl022, device->property); // Initialize regBase, phyBase, irqNum, regCrg, clkEnBit, clkRstBit, regMiscCtrl, miscCtrlCs, and miscCtrlCsShift.
+      ...
+      // Calculate the frequencies corresponding to the maximum and minimum speeds.
+      pl022->maxSpeedHz = (pl022->clkRate) / ((SCR_MIN + 1) * CPSDVSR_MIN);
+      pl022->minSpeedHz = (pl022->clkRate) / ((SCR_MAX + 1) * CPSDVSR_MAX);
+      DListHeadInit(&pl022->deviceList);// Initialize the DList linked list.
+      pl022->cntlr = cntlr;              // Prerequisite for conversion between Pl022 and SpiCntlr.
+      cntlr->priv = pl022;               // Prerequisite for conversion between Pl022 and SpiCntlr.
+      cntlr->busNum = pl022->busNum;     // Assign a value to busNum in SpiCntlr.
+      cntlr->method = &g_method;         // Attach the SpiCntlrMethod instance.
+      ...
+      ret = Pl022CreatAndInitDevice(pl022);
+      if (ret != 0) {
+          Pl022Release(pl022);           // Release the Pl022 object if the initialization fails.
+          return ret;
+      }
+      return 0;
+      }
+      ```
+      
+   - **Release** function
+
+      Input parameter:
+
+      **HdfDeviceObject**, an interface parameter exposed by the driver, contains the .hcs information.
+
+      Return value:
+
+      No value is returned.
+
+      Function description:
+
+      Releases the memory and deletes the controller. This function assigns values to the **Release** function in the driver entry structure. If the HDF fails to call the **Init** function to initialize the driver, the **Release** function can be called to release driver resources. All forced conversion operations for obtaining the corresponding object can be successful only when the **Init** function has the value assignment operations.
+
+      
+      ```
+      static void HdfSpiDeviceRelease(struct HdfDeviceObject *device)
+      {
+          struct SpiCntlr *cntlr = NULL;
+          ...
+          cntlr = SpiCntlrFromDevice(device); // Use service to forcibly convert HdfDeviceObject to SpiCntlr. For details about the value assignment, see the Bind function.
+                                              // return (device==NULL) ?NULL:(struct SpiCntlr *)device->service;
+          ...
+          if (cntlr->priv != NULL) {
+              Pl022Remove((struct Pl022 *)cntlr->priv);// A forced conversion from SpiCntlr to Pl022 is involved.
+          }
+          SpiCntlrDestroy(cntlr);                         // Release the Pl022 object.
+      }
+      ```
diff --git a/en/device-dev/driver/driver-platform-uart-des.md b/en/device-dev/driver/driver-platform-uart-des.md
index 20340bfd49d68136a9ca711cca35ca5c2cdb0834..5c52adac895044791d673de7e48ef4c4ead18943 100644
--- a/en/device-dev/driver/driver-platform-uart-des.md
+++ b/en/device-dev/driver/driver-platform-uart-des.md
@@ -106,7 +106,7 @@ The UART interface defines a set of common functions for operating a UART port,
 The figure below illustrates how to use the APIs.
 
 **Figure  3** Using UART driver APIs<a name="fig99673244388"></a>  
-![](figures/using-uart-process.png "process-of-using-a-uart-device")
+![](figures/using-UART-process.png "process-of-using-a-uart-device")
 
 ### Obtaining a UART Device Handle<a name="section124512065617"></a>
 
diff --git a/en/device-dev/driver/driver-platform-watchdog-des.md b/en/device-dev/driver/driver-platform-watchdog-des.md
index deb85133a3dde4f11cfb03762f4f4fd9d656d51b..aa00d54869576d625e05eead5cbe237a81d560e8 100644
--- a/en/device-dev/driver/driver-platform-watchdog-des.md
+++ b/en/device-dev/driver/driver-platform-watchdog-des.md
@@ -1,124 +1,60 @@
-# Watchdog<a name="EN-US_TOPIC_0000001206372825"></a>
-
-## Overview<a name="section14918241977"></a>
-
-A watchdog, also called a watchdog timer, is a hardware timing device. If an error occurs in the main program of the system and fails to reset the watchdog timer, the watchdog timer sends a reset signal to restore the system to a normal state.
-
-## Available APIs<a name="section1180575010271"></a>
-
-**Table  1** Watchdog APIs
-
-<a name="table1731550155318"></a>
-<table><thead align="left"><tr id="row4419501537"><th class="cellrowborder" valign="top" width="26.619999999999997%" id="mcps1.2.4.1.1"><p id="p641050105320"><a name="p641050105320"></a><a name="p641050105320"></a>Capability</p>
-</th>
-<th class="cellrowborder" valign="top" width="32.800000000000004%" id="mcps1.2.4.1.2"><p id="p54150165315"><a name="p54150165315"></a><a name="p54150165315"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="40.58%" id="mcps1.2.4.1.3"><p id="p941150145313"><a name="p941150145313"></a><a name="p941150145313"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row837081981712"><td class="cellrowborder" rowspan="2" valign="top" width="26.619999999999997%" headers="mcps1.2.4.1.1 "><p id="p681292481718"><a name="p681292481718"></a><a name="p681292481718"></a>Open/Close</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.800000000000004%" headers="mcps1.2.4.1.2 "><p id="p183701419141710"><a name="p183701419141710"></a><a name="p183701419141710"></a>WatchdogOpen</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.58%" headers="mcps1.2.4.1.3 "><p id="p17370161911710"><a name="p17370161911710"></a><a name="p17370161911710"></a>Opens a watchdog.</p>
-</td>
-</tr>
-<tr id="row5610415171719"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p661171510173"><a name="p661171510173"></a><a name="p661171510173"></a>WatchdogClose</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p11611715161713"><a name="p11611715161713"></a><a name="p11611715161713"></a>Closes a watchdog.</p>
-</td>
-</tr>
-<tr id="row337105133315"><td class="cellrowborder" rowspan="2" valign="top" width="26.619999999999997%" headers="mcps1.2.4.1.1 "><p id="p07631557153319"><a name="p07631557153319"></a><a name="p07631557153319"></a>Start/Stop</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.800000000000004%" headers="mcps1.2.4.1.2 "><p id="p163765113337"><a name="p163765113337"></a><a name="p163765113337"></a>WatchdogStart</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.58%" headers="mcps1.2.4.1.3 "><p id="p18376517332"><a name="p18376517332"></a><a name="p18376517332"></a>Starts a watchdog.</p>
-</td>
-</tr>
-<tr id="row18399184610337"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1740010461335"><a name="p1740010461335"></a><a name="p1740010461335"></a>WatchdogStop</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p19400194633318"><a name="p19400194633318"></a><a name="p19400194633318"></a>Stops a watchdog.</p>
-</td>
-</tr>
-<tr id="row34145016535"><td class="cellrowborder" rowspan="2" valign="top" width="26.619999999999997%" headers="mcps1.2.4.1.1 "><p id="p229610227124"><a name="p229610227124"></a><a name="p229610227124"></a>Timeout duration</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.800000000000004%" headers="mcps1.2.4.1.2 "><p id="p8296182221219"><a name="p8296182221219"></a><a name="p8296182221219"></a>WatchdogSetTimeout</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.58%" headers="mcps1.2.4.1.3 "><p id="p16297172213125"><a name="p16297172213125"></a><a name="p16297172213125"></a>Sets the watchdog timeout duration.</p>
-</td>
-</tr>
-<tr id="row11585016539"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1095722493616"><a name="p1095722493616"></a><a name="p1095722493616"></a>WatchdogGetTimeout</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15297162215122"><a name="p15297162215122"></a><a name="p15297162215122"></a>Obtains the watchdog timeout duration.</p>
-</td>
-</tr>
-<tr id="row105701653185811"><td class="cellrowborder" valign="top" width="26.619999999999997%" headers="mcps1.2.4.1.1 "><p id="p2571145325819"><a name="p2571145325819"></a><a name="p2571145325819"></a>Status</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.800000000000004%" headers="mcps1.2.4.1.2 "><p id="p175711953195814"><a name="p175711953195814"></a><a name="p175711953195814"></a>WatchdogGetStatus</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.58%" headers="mcps1.2.4.1.3 "><p id="p331961319210"><a name="p331961319210"></a><a name="p331961319210"></a>Obtains the watchdog status.</p>
-</td>
-</tr>
-<tr id="row1028182217215"><td class="cellrowborder" valign="top" width="26.619999999999997%" headers="mcps1.2.4.1.1 "><p id="p182818227214"><a name="p182818227214"></a><a name="p182818227214"></a>Feeding</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.800000000000004%" headers="mcps1.2.4.1.2 "><p id="p17281223219"><a name="p17281223219"></a><a name="p17281223219"></a>WatchdogFeed</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.58%" headers="mcps1.2.4.1.3 "><p id="p62815221125"><a name="p62815221125"></a><a name="p62815221125"></a>Feeds a watchdog, or resets a watchdog timer.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
->![](../public_sys-resources/icon-note.gif) **NOTE**<br>
->All watchdog functions provided in this document can be called only in kernel mode.
-
-## Usage Guidelines<a name="section10103184312813"></a>
-
-### How to Use<a name="section10181195910815"></a>
-
-The figure below illustrates how to use the APIs.
-
-**Figure  1** Using watchdog driver APIs  
-![](figures/using-watchdog-process.png "process-of-using-a-watchdog")
-
-### Opening a Watchdog<a name="section66089201107"></a>
-
-Use **WatchdogOpen** to open a watchdog. A system may have multiple watchdogs. You can open the specified watchdog by using the ID.
-
-int32\_t WatchdogOpen\(int16\_t wdtId\); 
-
-**Table  2** Description of WatchdogOpen
-
-<a name="table1413702552814"></a>
-<table><thead align="left"><tr id="row131371325142819"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p191372254283"><a name="p191372254283"></a><a name="p191372254283"></a><strong id="b9239182472212"><a name="b9239182472212"></a><a name="b9239182472212"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p113819255284"><a name="p113819255284"></a><a name="p113819255284"></a><strong id="b2595142572219"><a name="b2595142572219"></a><a name="b2595142572219"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row813812259282"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p101381625162813"><a name="p101381625162813"></a><a name="p101381625162813"></a>wdtId</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p191381425142813"><a name="p191381425142813"></a><a name="p191381425142813"></a>Watchdog ID.</p>
-</td>
-</tr>
-<tr id="row2138202515281"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p141387252287"><a name="p141387252287"></a><a name="p141387252287"></a><strong id="b185321027172216"><a name="b185321027172216"></a><a name="b185321027172216"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p12138192512281"><a name="p12138192512281"></a><a name="p12138192512281"></a><strong id="b29359286226"><a name="b29359286226"></a><a name="b29359286226"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row9138182519287"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p5138102532814"><a name="p5138102532814"></a><a name="p5138102532814"></a>NULL</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p3138192512815"><a name="p3138192512815"></a><a name="p3138192512815"></a>Failed to open the watchdog.</p>
-</td>
-</tr>
-<tr id="row15138192518283"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p1850115512916"><a name="p1850115512916"></a><a name="p1850115512916"></a><strong id="b17275323221"><a name="b17275323221"></a><a name="b17275323221"></a>DevHandle</strong> pointer</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p16138122512817"><a name="p16138122512817"></a><a name="p16138122512817"></a>Pointer to the watchdog handle.</p>
-</td>
-</tr>
-</tbody>
-</table>
+# Watchdog
+
+
+## **Overview**
+
+A watchdog, also called a watchdog timer, is a hardware timing device used to facilitate automatic correction of temporary hardware faults or recover from system malfunctions. If an error occurs in the main program of the system and the watchdog timer is not cleared in time, the watchdog timer sends a reset signal to restore the system to the normal state.
+
+
+## Available APIs
+
+**Table 1** Watchdog APIs
+
+| API| Description|
+| -------- | -------- |
+| WatchdogOpen | Opens a watchdog.|
+| WatchdogClose | Closes a watchdog.|
+| WatchdogStart | Starts a watchdog.|
+| WatchdogStop | Stops a watchdog.|
+| WatchdogSetTimeout | Sets the watchdog timeout duration.|
+| WatchdogGetTimeout | Obtains the watchdog timeout duration.|
+| WatchdogGetStatus | Obtains the watchdog status.|
+| WatchdogFeed | Feeds a watchdog or resets a watchdog timer.|
+
+> ![](../public_sys-resources/icon-note.gif) **NOTE**
+>
+> All watchdog APIs provided in this document can be called only in kernel mode.
+
+
+## Usage Guidelines
+
+
+### How to Use
+
+The figure below shows how to use the watchdog APIs.
+
+Figure 1 Using watchdog APIs
+
+![image](figures/using-watchdog-process.png)
+
+
+### Opening a Watchdog
+
+Use **WatchdogOpen()** to open a watchdog. A system may have multiple watchdogs. You need to specify the ID of the watchdog to open.
+
+```
+DevHandle WatchdogOpen(int16_t wdtId);
+```
+
+**Table 2** Description of WatchdogOpen
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| wdtId | Watchdog ID.|
+| **Return Value**| **Description**|
+| NULL | The operation failed.|
+| **DevHandle** pointer| The operation is successful. The pointer to the watchdog device handle is returned.|
+
 
 ```
 DevHandle handle = NULL;
@@ -129,46 +65,23 @@ if (handle == NULL) {
 }
 ```
 
-### Obtaining the Watchdog Status<a name="section786624341011"></a>
-
-int32\_t WatchdogGetStatus\(DevHandle handle, int32\_t \*status\); 
-
-**Table  3** Description of WatchdogGetStatus
-
-<a name="table1018490043"></a>
-<table><thead align="left"><tr id="row31848013417"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p1415816132411"><a name="p1415816132411"></a><a name="p1415816132411"></a><strong id="b8395121072312"><a name="b8395121072312"></a><a name="b8395121072312"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p11158111316410"><a name="p11158111316410"></a><a name="p11158111316410"></a><strong id="b20193201115238"><a name="b20193201115238"></a><a name="b20193201115238"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row3264122711222"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p15264727182211"><a name="p15264727182211"></a><a name="p15264727182211"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p2026452772210"><a name="p2026452772210"></a><a name="p2026452772210"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row928111518418"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p4282955412"><a name="p4282955412"></a><a name="p4282955412"></a>status</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p7282752412"><a name="p7282752412"></a><a name="p7282752412"></a>Pointer to the watchdog status.</p>
-</td>
-</tr>
-<tr id="row17393154515328"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p8158313248"><a name="p8158313248"></a><a name="p8158313248"></a><strong id="b12817162152319"><a name="b12817162152319"></a><a name="b12817162152319"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p161591413741"><a name="p161591413741"></a><a name="p161591413741"></a><strong id="b112451923142314"><a name="b112451923142314"></a><a name="b112451923142314"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row339324593215"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p103191916578"><a name="p103191916578"></a><a name="p103191916578"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p1231981611712"><a name="p1231981611712"></a><a name="p1231981611712"></a>The watchdog status is obtained.</p>
-</td>
-</tr>
-<tr id="row15393184519323"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p531916166716"><a name="p531916166716"></a><a name="p531916166716"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p93191161174"><a name="p93191161174"></a><a name="p93191161174"></a>Failed to obtain the watchdog status.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Obtaining the Watchdog Status
+
+```
+int32_t WatchdogGetStatus(DevHandle handle, int32_t *status); 
+```
+
+**Table 3** Description of WatchdogGetStatus
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Watchdog device handle.|
+| status | Pointer to the watchdog status obtained.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
@@ -181,51 +94,28 @@ if (ret != 0) {
 }
 ```
 
-### Setting the Timeout Duration<a name="section182386137111"></a>
-
-int32\_t WatchdogSetTimeout\(PalHandle \*handle, uint32\_t seconds\); 
-
-**Table  4** Description of WatchdogSetTimeout
-
-<a name="table9159112182210"></a>
-<table><thead align="left"><tr id="row1216012212212"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p1416017262215"><a name="p1416017262215"></a><a name="p1416017262215"></a><strong id="b16573184672318"><a name="b16573184672318"></a><a name="b16573184672318"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p16160182192213"><a name="p16160182192213"></a><a name="p16160182192213"></a><strong id="b8612347182320"><a name="b8612347182320"></a><a name="b8612347182320"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row199536232314"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p17685481236"><a name="p17685481236"></a><a name="p17685481236"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p196852811232"><a name="p196852811232"></a><a name="p196852811232"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row141601729228"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p191601126226"><a name="p191601126226"></a><a name="p191601126226"></a>seconds</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p5160172182214"><a name="p5160172182214"></a><a name="p5160172182214"></a>Timeout duration, in seconds.</p>
-</td>
-</tr>
-<tr id="row18160192172212"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p101601123222"><a name="p101601123222"></a><a name="p101601123222"></a><strong id="b12598352112317"><a name="b12598352112317"></a><a name="b12598352112317"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p17160192182212"><a name="p17160192182212"></a><a name="p17160192182212"></a><strong id="b145511753122319"><a name="b145511753122319"></a><a name="b145511753122319"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row171600202220"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p121601226224"><a name="p121601226224"></a><a name="p121601226224"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p151607218222"><a name="p151607218222"></a><a name="p151607218222"></a>The setting is successful.</p>
-</td>
-</tr>
-<tr id="row916012252211"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p19160026224"><a name="p19160026224"></a><a name="p19160026224"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p816092142210"><a name="p816092142210"></a><a name="p816092142210"></a>Setting failed.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Setting the Timeout Duration
+
+```
+int32_t WatchdogSetTimeout(DevHandle *handle, uint32_t seconds); 
+```
+
+**Table 4** Description of WatchdogSetTimeout
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Pointer to the watchdog device handle.|
+| seconds | Timeout duration to set, in seconds.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
 uint32_t timeOut = 60;
-/* Set the timeout duration, in seconds. */
+/* Set the timeout duration to 60 seconds. */
 ret = WatchdogSetTimeout(handle, timeOut);
 if (ret != 0) {
     HDF_LOGE("WatchdogSetTimeout: failed, ret %d\n", ret);
@@ -233,46 +123,23 @@ if (ret != 0) {
 }
 ```
 
-### Obtaining the Timeout Duration<a name="section1883310371114"></a>
-
-int32\_t WatchdogGetTimeout\(PalHandle \*handle, uint32\_t \*seconds\); 
-
-**Table  5** Description of WatchdogGetTimeout
-
-<a name="table10147164819233"></a>
-<table><thead align="left"><tr id="row14147848142313"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p4147124892316"><a name="p4147124892316"></a><a name="p4147124892316"></a><strong id="b1387481413247"><a name="b1387481413247"></a><a name="b1387481413247"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p12147144817232"><a name="p12147144817232"></a><a name="p12147144817232"></a><strong id="b7800151515242"><a name="b7800151515242"></a><a name="b7800151515242"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row8147124819230"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p21471248142313"><a name="p21471248142313"></a><a name="p21471248142313"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p12147134815233"><a name="p12147134815233"></a><a name="p12147134815233"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row514754818232"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p1614713484235"><a name="p1614713484235"></a><a name="p1614713484235"></a>seconds</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p71478484238"><a name="p71478484238"></a><a name="p71478484238"></a>Pointer to the timeout duration, in seconds.</p>
-</td>
-</tr>
-<tr id="row214784814239"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p5147848152314"><a name="p5147848152314"></a><a name="p5147848152314"></a><strong id="b2468182016249"><a name="b2468182016249"></a><a name="b2468182016249"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p914724811236"><a name="p914724811236"></a><a name="p914724811236"></a><strong id="b18272182132419"><a name="b18272182132419"></a><a name="b18272182132419"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row714744892312"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p1014764832315"><a name="p1014764832315"></a><a name="p1014764832315"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p1314824872310"><a name="p1314824872310"></a><a name="p1314824872310"></a>The watchdog status is obtained.</p>
-</td>
-</tr>
-<tr id="row1514884815230"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p10148114822319"><a name="p10148114822319"></a><a name="p10148114822319"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p1314864822311"><a name="p1314864822311"></a><a name="p1314864822311"></a>Failed to obtain the watchdog status.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Obtaining the Timeout Duration
+
+```
+int32_t WatchdogGetTimeout(DevHandle *handle, uint32_t *seconds);
+```
+
+**Table 5** Description of WatchdogGetTimeout
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Pointer to the watchdog device handle.|
+| seconds | Pointer to the timeout duration, in seconds.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
@@ -285,41 +152,22 @@ if (ret != 0) {
 }
 ```
 
-### Starting a Watchdog<a name="section82501405123"></a>
-
-int32\_t WatchdogStart\(DevHandle handle\); 
-
-**Table  6** Description of WatchdogStart
-
-<a name="table529165182515"></a>
-<table><thead align="left"><tr id="row92915122513"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p5292582517"><a name="p5292582517"></a><a name="p5292582517"></a><strong id="b99151951162417"><a name="b99151951162417"></a><a name="b99151951162417"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p929554258"><a name="p929554258"></a><a name="p929554258"></a><strong id="b121171651142418"><a name="b121171651142418"></a><a name="b121171651142418"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row629852250"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p22975122515"><a name="p22975122515"></a><a name="p22975122515"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p7290515256"><a name="p7290515256"></a><a name="p7290515256"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row183035162514"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p8302511255"><a name="p8302511255"></a><a name="p8302511255"></a><strong id="b1190315442414"><a name="b1190315442414"></a><a name="b1190315442414"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p16307522515"><a name="p16307522515"></a><a name="p16307522515"></a><strong id="b333525652414"><a name="b333525652414"></a><a name="b333525652414"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row12305552510"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p1730175132513"><a name="p1730175132513"></a><a name="p1730175132513"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p630754259"><a name="p630754259"></a><a name="p630754259"></a>The watchdog is started.</p>
-</td>
-</tr>
-<tr id="row4306516252"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p15304502515"><a name="p15304502515"></a><a name="p15304502515"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p0301559254"><a name="p0301559254"></a><a name="p0301559254"></a>Failed to start the watchdog.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Starting a Watchdog
+
+```
+int32_t WatchdogStart(DevHandle handle);
+```
+
+**Table 6** Description of WatchdogStart
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Watchdog device handle.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
@@ -331,41 +179,22 @@ if (ret != 0) {
 }
 ```
 
-### Feeding a Watchdog<a name="section3547530101211"></a>
-
-int32\_t WatchdogFeed\(DevHandle handle\);
-
-**Table  7** Description of WatchdogFeed
-
-<a name="table091163515394"></a>
-<table><thead align="left"><tr id="row891133515393"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p1911143513918"><a name="p1911143513918"></a><a name="p1911143513918"></a><strong id="b16850010142518"><a name="b16850010142518"></a><a name="b16850010142518"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p1191173553917"><a name="p1191173553917"></a><a name="p1191173553917"></a><strong id="b8711511102516"><a name="b8711511102516"></a><a name="b8711511102516"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row189111635143918"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p189111435173917"><a name="p189111435173917"></a><a name="p189111435173917"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p11911143511397"><a name="p11911143511397"></a><a name="p11911143511397"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row15911835173916"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p7911123516396"><a name="p7911123516396"></a><a name="p7911123516396"></a><strong id="b11359914162517"><a name="b11359914162517"></a><a name="b11359914162517"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p169118356399"><a name="p169118356399"></a><a name="p169118356399"></a><strong id="b7180915162512"><a name="b7180915162512"></a><a name="b7180915162512"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row189119352393"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p1391113513917"><a name="p1391113513917"></a><a name="p1391113513917"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p149111435143911"><a name="p149111435143911"></a><a name="p149111435143911"></a>The watchdog is fed.</p>
-</td>
-</tr>
-<tr id="row5911123520392"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p49111335143920"><a name="p49111335143920"></a><a name="p49111335143920"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p1891216356391"><a name="p1891216356391"></a><a name="p1891216356391"></a>Failed to feed the watchdog.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Feeding a Watchdog
+
+```
+int32_t WatchdogFeed(DevHandle handle);
+```
+
+**Table 7** Description of WatchdogFeed
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Watchdog device handle.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
@@ -377,41 +206,22 @@ if (ret != 0) {
 }
 ```
 
-### Stopping a Watchdog<a name="section944595841217"></a>
-
-int32\_t WatchdogStop\(DevHandle handle\); 
-
-**Table  8** Description of WatchdogStop
-
-<a name="table1286810515254"></a>
-<table><thead align="left"><tr id="row28687517259"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p6868185120254"><a name="p6868185120254"></a><a name="p6868185120254"></a><strong id="b204221347152519"><a name="b204221347152519"></a><a name="b204221347152519"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p15868185114252"><a name="p15868185114252"></a><a name="p15868185114252"></a><strong id="b8153154862516"><a name="b8153154862516"></a><a name="b8153154862516"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1868165114256"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p6869105115256"><a name="p6869105115256"></a><a name="p6869105115256"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p19869951202513"><a name="p19869951202513"></a><a name="p19869951202513"></a>Watchdog handle.</p>
-</td>
-</tr>
-<tr id="row68696510259"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p2869165114256"><a name="p2869165114256"></a><a name="p2869165114256"></a><strong id="b2116105210253"><a name="b2116105210253"></a><a name="b2116105210253"></a>Return Value</strong></p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p158691551142517"><a name="p158691551142517"></a><a name="p158691551142517"></a><strong id="b8888115292518"><a name="b8888115292518"></a><a name="b8888115292518"></a>Description</strong></p>
-</td>
-</tr>
-<tr id="row9869851192516"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p686916516252"><a name="p686916516252"></a><a name="p686916516252"></a>0</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p7869115192510"><a name="p7869115192510"></a><a name="p7869115192510"></a>The watchdog is stopped.</p>
-</td>
-</tr>
-<tr id="row15869951122519"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p486925112518"><a name="p486925112518"></a><a name="p486925112518"></a>Negative value</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p086945172518"><a name="p086945172518"></a><a name="p086945172518"></a>Stopping the watchdog failed.</p>
-</td>
-</tr>
-</tbody>
-</table>
+
+### Stopping a Watchdog
+
+```
+int32_t WatchdogStop(DevHandle handle);
+```
+
+**Table 8** Description of WatchdogStop
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Watchdog device handle.|
+| **Return Value**| **Description**|
+| 0 | The operation is successful.|
+| Negative value| The operation failed.|
+
 
 ```
 int32_t ret;
@@ -423,44 +233,38 @@ if (ret != 0) {
 }
 ```
 
-### Closing a Watchdog<a name="section96561824121311"></a>
 
-If the watchdog is no longer required, call **WatchdogClose** to close the watchdog handle.
+### Closing a Watchdog
 
-void WatchdogClose\(DevHandle handle\);
+If a watchdog is no longer required, call **WatchdogClose()** to close it.
 
-**Table  9** Description of WatchdogClose
+```
+void WatchdogClose(DevHandle handle);
+```
+
+**Table 9** Description of WatchdogClose
+
+| **Parameter**| **Description**|
+| -------- | -------- |
+| handle | Watchdog device handle.|
 
-<a name="table1017315185320"></a>
-<table><thead align="left"><tr id="row417314182327"><th class="cellrowborder" valign="top" width="44.99%" id="mcps1.2.3.1.1"><p id="p117310184320"><a name="p117310184320"></a><a name="p117310184320"></a><strong id="b97421847122514"><a name="b97421847122514"></a><a name="b97421847122514"></a>Parameter</strong></p>
-</th>
-<th class="cellrowborder" valign="top" width="55.010000000000005%" id="mcps1.2.3.1.2"><p id="p7173191812324"><a name="p7173191812324"></a><a name="p7173191812324"></a><strong id="b14503748122514"><a name="b14503748122514"></a><a name="b14503748122514"></a>Description</strong></p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1617331823211"><td class="cellrowborder" valign="top" width="44.99%" headers="mcps1.2.3.1.1 "><p id="p17173191811326"><a name="p17173191811326"></a><a name="p17173191811326"></a>handle</p>
-</td>
-<td class="cellrowborder" valign="top" width="55.010000000000005%" headers="mcps1.2.3.1.2 "><p id="p538814308323"><a name="p538814308323"></a><a name="p538814308323"></a>Watchdog handle.</p>
-</td>
-</tr>
-</tbody>
-</table>
 
 ```
 /* Close the watchdog. */
 ret = WatchdogClose(handle);
 ```
 
-## Usage Example<a name="section1724514523135"></a>
 
-This example provides a complete process for using a watchdog.
+## Example
 
-In this example, open a watchdog, set the timeout duration, and start the watchdog.
+The following example provides the complete development process.
 
--   Feed the watchdog periodically to ensure that the system is not reset due to timer expiry.
--   Stop feeding the watchdog and check whether the system is reset after the timer expires.
+1. Open a watchdog, set the timeout duration, and start the watchdog.
 
-Example:
+2. Feed the watchdog periodically to ensure that the system is not reset due to timer expiry.
+3. Stop feeding the watchdog and check whether the system is reset after the timer expires.
+
+Sample code:
 
 ```
 #include "watchdog_if.h"
@@ -481,7 +285,7 @@ static int32_t TestCaseWatchdog(void)
     /* Open watchdog 0. */
     handle = WatchdogOpen(0);
     if (handle == NULL) {
-        HDF_LOGE("Open watchdog fail!");
+        HDF_LOGE("Open watchdog failed!");
         return -1;
     }
 
@@ -493,7 +297,7 @@ static int32_t TestCaseWatchdog(void)
         return ret;
     }
 
-    /* Obtain the configured timeout duration. */
+    /* Obtain the timeout duration. */
     ret = WatchdogGetTimeout(handle, &timeout);
     if (ret != HDF_SUCCESS) {
         HDF_LOGE("%s: get timeout fail! ret:%d\n", __func__, ret);
@@ -505,14 +309,14 @@ static int32_t TestCaseWatchdog(void)
     /* Start the watchdog. The timer starts. */
     ret = WatchdogStart(handle);
     if (ret != HDF_SUCCESS) {
-        HDF_LOGE("%s: satrt fail! ret:%d\n", __func__, ret);
+        HDF_LOGE("%s: start fail! ret:%d\n", __func__, ret);
         WatchdogClose(handle);
         return ret;
     }
 
-    /* Feed the watchdog every 1s. */
+    /* Feed the watchdog every other second. */
     for (i = 0; i < WATCHDOG_TEST_FEED_TIME; i++) {
-        HDF_LOGE("%s: feeding watchdog %d times... \n", __func__, i);
+        HDF_LOGI("%s: feeding watchdog %d times... \n", __func__, i);
         ret = WatchdogFeed(handle);
         if (ret != HDF_SUCCESS) {
             HDF_LOGE("%s: feed dog fail! ret:%d\n", __func__, ret);
@@ -522,17 +326,17 @@ static int32_t TestCaseWatchdog(void)
         OsalSleep(1);
     }
     /* Because the interval for feeding the watchdog is shorter than the timeout duration, the system does not reset, and logs can be printed normally. */
-    HDF_LOGE("%s: no reset ... feeding test OK!!!\n", __func__);
+    HDF_LOGI("%s: no reset ... feeding test OK!!!\n", __func__);
 
-    /* Enable the timer to expire by stopping feeding the watchdog. */
+    /* Stop feeding the watchdog to make the timer expire. */
     for (i = 0; i < WATCHDOG_TEST_FEED_TIME; i++) {
-        HDF_LOGE("%s: watiting dog buck %d times... \n", __func__, i);
+        HDF_LOGI("%s: waiting dog buck %d times... \n", __func__, i);
         OsalSleep(1);
     }
 
-    /* The system resets when the timer expires. If the code is correct, the log below is not displayed. */
-    HDF_LOGE("%s: dog has't buck!!! \n", __func__, i);
+    /* The system resets when the timer expires. Theoretically, this log is not displayed. */
+    HDF_LOGI("%s: dog hasn't back!!! \n", __func__, i);
     WatchdogClose(handle);
     return -1;
 }
-```
\ No newline at end of file
+```
diff --git a/en/device-dev/driver/driver-platform-watchdog-develop.md b/en/device-dev/driver/driver-platform-watchdog-develop.md
index 13898cfeaafd8803834c5b62f819e56ecfde96e7..d153a4ae1788127dd08a0cf8c084c3cecc1b73fd 100644
--- a/en/device-dev/driver/driver-platform-watchdog-develop.md
+++ b/en/device-dev/driver/driver-platform-watchdog-develop.md
@@ -1,16 +1,21 @@
-# Watchdog<a name="EN-US_TOPIC_0000001199821009"></a>
+# Watchdog
 
 
-## Overview<a name="section1315827527160117"></a>
+## **Overview**
 
-In the Hardware Driver Foundation \(HDF\), the Watchdog \(also called Watchdog timer\) module uses the independent service mode for API adaptation. In this mode, each device independently publishes a device service to handle external access requests. After receiving an access request from an API, the device manager extracts the parameters in the request to call the internal method of the target device. In the independent service mode, the service management capabilities of the HDF Device Manager can be directly used. However, you need to configure a device node for each device, which increases the memory usage.
+A watchdog, also called a watchdog timer, is a hardware timing device used to facilitate automatic correction of temporary hardware faults or recover from system malfunctions. 
 
-**Figure  1** Independent service mode<a name="fig61584136211"></a>  
-![](figures/independent-service-mode.png "independent-service-mode-15")
+In the Hardware Driver Foundation (HDF), the watchdog uses the independent service mode for API adaptation. In this mode, each device independently publishes a service to process external access requests. When receiving an access request, the HDF DeviceManager extracts parameters from the request to call the internal APIs of the target device. In the independent service mode, the HDF DeviceManager provides service management capabilities. However, you need to configure a node for each device, which increases memory usage.
 
-## Available APIs<a name="section1180575010271"></a>
+  **Figure 1** Independent service mode
+
+  ![image](figures/independent-service-mode.png "Watchdog independent service mode")
+
+
+## **Available APIs**
+
+**WatchdogMethod**:
 
-WatchdogMethod
 
 ```
 struct WatchdogMethod {
@@ -25,334 +30,250 @@ struct WatchdogMethod {
 };
 ```
 
-**Table  1** Callbacks for the members in the WatchdogMethod structure
-
-<a name="table1370451732"></a>
-<table><thead align="left"><tr id="row370511435"><th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.1"><p id="p170681939"><a name="p170681939"></a><a name="p170681939"></a>Callback</p>
-</th>
-<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.2"><p id="p870641434"><a name="p870641434"></a><a name="p870641434"></a>Input Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.3"><p id="p27061011739"><a name="p27061011739"></a><a name="p27061011739"></a>Output Parameter</p>
-</th>
-<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.4"><p id="p10707618315"><a name="p10707618315"></a><a name="p10707618315"></a>Return Value</p>
-</th>
-<th class="cellrowborder" valign="top" width="20%" id="mcps1.2.6.1.5"><p id="p37071516316"><a name="p37071516316"></a><a name="p37071516316"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row18707191835"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p970720118311"><a name="p970720118311"></a><a name="p970720118311"></a>getStatus</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p124968261413"><a name="p124968261413"></a><a name="p124968261413"></a><strong id="b13481135102819"><a name="b13481135102819"></a><a name="b13481135102819"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p17071515316"><a name="p17071515316"></a><a name="p17071515316"></a><strong id="b142021397417"><a name="b142021397417"></a><a name="b142021397417"></a>status</strong>: int32_t pointer indicating the watchdog status (started or stopped).</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p5707319312"><a name="p5707319312"></a><a name="p5707319312"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p2707511312"><a name="p2707511312"></a><a name="p2707511312"></a>Obtains the watchdog status.</p>
-</td>
-</tr>
-<tr id="row27071911538"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p370701533"><a name="p370701533"></a><a name="p370701533"></a>start</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p117071316317"><a name="p117071316317"></a><a name="p117071316317"></a><strong id="b136901310133110"><a name="b136901310133110"></a><a name="b136901310133110"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p127071411735"><a name="p127071411735"></a><a name="p127071411735"></a>–</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p19707111331"><a name="p19707111331"></a><a name="p19707111331"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p170811111319"><a name="p170811111319"></a><a name="p170811111319"></a>Starts a watchdog.</p>
-</td>
-</tr>
-<tr id="row17708191130"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p11708113315"><a name="p11708113315"></a><a name="p11708113315"></a>stop</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p870841138"><a name="p870841138"></a><a name="p870841138"></a><strong id="b14846151912249"><a name="b14846151912249"></a><a name="b14846151912249"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p770841533"><a name="p770841533"></a><a name="p770841533"></a>–</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p18708115313"><a name="p18708115313"></a><a name="p18708115313"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p3708121738"><a name="p3708121738"></a><a name="p3708121738"></a>Stops a watchdog.</p>
-</td>
-</tr>
-<tr id="row107081818310"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p10708181136"><a name="p10708181136"></a><a name="p10708181136"></a>setTimeout</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p2021212409407"><a name="p2021212409407"></a><a name="p2021212409407"></a><strong id="b1521224016409"><a name="b1521224016409"></a><a name="b1521224016409"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-<p id="p1870801834"><a name="p1870801834"></a><a name="p1870801834"></a><strong id="b721091763217"><a name="b721091763217"></a><a name="b721091763217"></a>seconds</strong>: input time value, which is of the uint32_t type.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p77081011731"><a name="p77081011731"></a><a name="p77081011731"></a>–</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p470871436"><a name="p470871436"></a><a name="p470871436"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p57091717315"><a name="p57091717315"></a><a name="p57091717315"></a>Sets the timeout period (in seconds) for a watchdog. Ensure that the actual watchdog running time complies with this setting.</p>
-</td>
-</tr>
-<tr id="row3709911938"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p2070911932"><a name="p2070911932"></a><a name="p2070911932"></a>getTimeout</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p47091711732"><a name="p47091711732"></a><a name="p47091711732"></a><strong id="b88511419192416"><a name="b88511419192416"></a><a name="b88511419192416"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p57091411632"><a name="p57091411632"></a><a name="p57091411632"></a><strong id="b3906135871316"><a name="b3906135871316"></a><a name="b3906135871316"></a>seconds</strong>: output time value, which is of the uint32_t type.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p1470941838"><a name="p1470941838"></a><a name="p1470941838"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p17091511139"><a name="p17091511139"></a><a name="p17091511139"></a>Obtains the timeout period of a watchdog.</p>
-</td>
-</tr>
-<tr id="row1770919112319"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.1 "><p id="p1270913116313"><a name="p1270913116313"></a><a name="p1270913116313"></a>feed</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.2 "><p id="p570971736"><a name="p570971736"></a><a name="p570971736"></a><strong id="b1854319172417"><a name="b1854319172417"></a><a name="b1854319172417"></a>wdt</strong>: structure pointer to the Watchdog controller at the core layer.</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.3 "><p id="p67091517315"><a name="p67091517315"></a><a name="p67091517315"></a>–</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.4 "><p id="p1670915111312"><a name="p1670915111312"></a><a name="p1670915111312"></a>HDF_STATUS</p>
-</td>
-<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.6.1.5 "><p id="p10709818316"><a name="p10709818316"></a><a name="p10709818316"></a>Feeds a watchdog. </p>
-</td>
-</tr>
-</tbody>
-</table>
-
-
-## How to Develop<a name="section477974542160117"></a>
-
-The Watchdog module adaptation involves the following steps:
-
-1.  Instantiate the driver entry.
-    -   Instantiate the **HdfDriverEntry** structure.
-    -   Call **HDF\_INIT** to register the **HdfDriverEntry** instance with the HDF.
-
-2.  Configure attribute files.
-    -   Add the **deviceNode** information to the **device\_info.hcs** file.
-    -   \(Optional\) Add the **watchdog\_config.hcs** file.
-
-3.  Instantiate the Watchdog controller object.
-    -   Initialize **WatchdogCntlr**.
-    -   Instantiate **WatchdogMethod** in the **WatchdogCntlr** object.
-
-        For details, see [Available APIs](#available-apis).
-
-4.  \(Optional\) Debug the driver.
-
-    For new drivers, verify basic functions, for example, verify the information returned after the connect operation and whether the watchdog timer is successfully set.
-
-
-## Development Example<a name="section1832270347160117"></a>
-
-The following uses **watchdog\_hi35xx.c** as an example to present the contents that need to be provided by the vendor to implement device functions.
-
-1.  Instantiate the driver entry. The driver entry must be a global variable of the **HdfDriverEntry** type \(defined in **hdf\_device\_desc.h**\), and the value of **moduleName** must be the same as that in **device\_info.hcs**. In the HDF, the start address of each **HdfDriverEntry** object of all loaded drivers is collected to form a segment address space similar to an array for the upper layer to invoke.
-
-    Generally, HDF calls the **Bind** function and then the **Init** function to load a driver. If **Init** fails to be called, HDF calls **Release** to release driver resources and exit.
-
-    -   Watchdog driver entry reference
-
-        ```
-        struct HdfDriverEntry g_watchdogDriverEntry = {
-        .moduleVersion = 1,
-           .Bind = Hi35xxWatchdogBind, // See the Bind function.
-        .Init = Hi35xxWatchdogInit,  // See the Init function.
-        .Release = Hi35xxWatchdogRelease, //See the Release function.
-        .moduleName = "HDF_PLATFORM_WATCHDOG",// (Mandatory) The value must be the same as that of moduleName in the .hcs file.
-        };
-        HDF_INIT(g_watchdogDriverEntry);// Call HDF_INIT to register the driver entry with the HDF.
-        ```
-
-2.  Add the **deviceNode** information to the **device\_info.hcs** file and configure the component attributes in the **watchdog\_config.hcs** file. The **deviceNode** information is related to registration of the driver entry. The device attribute values are closely related to the default values or value ranges of the **WatchdogCntlr** members at the core layer.
-
-    In this example, there is only one Watchdog controller. If there are multiple Watchdog controllers, you need to add the **deviceNode** information to the **device\_info** file and add the corresponding device attributes to the **watchdog\_config** file.
-
-    -  **device\_info.hcs** configuration reference
-
-        ```
-        root {
-          device_info {
-            match_attr = "hdf_manager";
-            device_watchdog :: device {// Device node
-              device0:: deviceNode {// DeviceNode of the driver
-                The policy = 1; // The value 1 indicates that the driver publishes kernel-mode services. The value 2 indicates that the driver publishes user-mode services.
-         priority = 20; // Driver startup priority
-         permission = 0644; // Permission to create device nodes for the driver
-                moduleName = "HDF_PLATFORM_WATCHDOG";             
-                // (Mandatory) Driver name. The value must be the same as that of moduleName in the driver entry structure.
-                serviceName = "HDF_PLATFORM_WATCHDOG_0";          
-               // (Mandatory) Unique name of the service published by the driver.
-                deviceMatchAttr = "hisilicon_hi35xx_watchdog_0";  
-               // (Mandatory) Keyword matching the private data of the driver. The value must be the same as that of match_attr in the private data configuration table of the driver.
-              } 
-            }
-          }
-        }
-        ```
-
-    -  **watchdog\_config.hcs** configuration reference
-
-        ```
-        root {
-          platform {
-               template watchdog_controller {// Template configuration. In the template, you can configure the common parameters shared by service nodes.
-              id = 0;
-              match_attr = "";
-              regBase = 0x12050000; // (Mandatory) Used for address mapping.
-                regStep = 0x1000;   // (Mandatory) Used for address mapping.
-            }
-            controller_0x12050000 :: watchdog_controller {// (Mandatory) Keyword for matching the private data of the device driver.
-                match_attr = "hisilicon_hi35xx_watchdog_0"; // (Mandatory) The value must be the same as that of deviceMatchAttr in device_info.hcs.
-              }
-              // Configure this parameter when there are multiple watchdogs.
-              ...  
-            }
-        }
-        ```
-
-3.  Initialize the **WatchdogCntlr** object at the core layer, including initializing the vendor custom structure \(passing parameters and data\), instantiating **WatchdogMethod** \(used to call underlying functions of the driver\) in **WatchdogCntlr**, and implementing the **HdfDriverEntry** member functions \(**Bind**, **Init**, and **Release**\).
-    -   Custom structure reference
-
-        To the driver, the custom structure carries parameters and data. The values in the **watchdog\_config.hcs** file are read by HDF, and the structure members are initialized through **DeviceResourceIface**. Some important values, such as the index and the number of pins, are also passed to the **WatchdogCntlr** object at the core layer.
-
-        ```
-        struct Hi35xxWatchdog {
-          struct WatchdogCntlr wdt; // (Mandatory) Carrier that connects the upper and underlying layers. For details, see the following description.
-          OsalSpinlock lock;
-          volatile unsigned char *regBase;// [Mandatory] Used for address mapping.
-                 uint32_t phyBase;   // (Mandatory) Used for address mapping.
-              uint32_t regStep;  // (Mandatory) Used for address mapping.
-        };
-        // WatchdogCntlr is the core layer controller structure. Its members are assigned with values by using the Init function.
-        struct WatchdogCntlr {
-          struct IDeviceIoService service;// Driver service
-          struct HdfDeviceObject *device; // Drive device
-          OsalSpinlock lock; // This variable implements the spinlock function.
-          struct WatchdogMethod *ops; // Interface callback
-          int16_t wdtId; // ID of the watchdog device
-          void *priv; // Save the pointer.
-        };
-        ```
-
-    -   Instantiate the callback function structure **WatchdogMethod** in **WatchdogCntlr**. Other members are initialized by using the **Init** and **Bind** functions.
-
-        ```
-        static struct WatchdogMethod g_method = {
-            .getStatus = Hi35xxWatchdogGetStatus,
-            .start = Hi35xxWatchdogStart,
-            .stop = Hi35xxWatchdogStop,
-            .setTimeout = Hi35xxWatchdogSetTimeout,
-            .getTimeout = Hi35xxWatchdogGetTimeout,
-            .feed = Hi35xxWatchdogFeed,
-        };
-        ```
-
-    -   Init and Bind functions
-
-        Input parameters:
-
-       **HdfDeviceObject**: device object created by the HDF for each driver. It stores device-related private data and service APIs.
-
-        Return values:
-
-        HDF\_STATUS \(The following table lists some status. For details about other status, see **HDF\_STATUS** in the **//drivers/framework/include/utils/hdf\_base.h** file.\)
-
-       **Table  2** Input parameters and return values of the Init and Bind functions
-
-        <a name="table86931033998"></a>
-        <table><thead align="left"><tr id="row10694203319911"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p1669433319918"><a name="p1669433319918"></a><a name="p1669433319918"></a>Status (Value)</p>
-        </th>
-        <th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p06945331911"><a name="p06945331911"></a><a name="p06945331911"></a>Description</p>
-        </th>
-        </tr>
-        </thead>
-        <tbody><tr id="row869417338918"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p96941433391"><a name="p96941433391"></a><a name="p96941433391"></a>HDF_ERR_INVALID_OBJECT</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p4694333395"><a name="p4694333395"></a><a name="p4694333395"></a>Failed to locate the watchdog device</p>
-        </td>
-        </tr>
-        <tr id="row136941833091"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p66941336920"><a name="p66941336920"></a><a name="p66941336920"></a>HDF_ERR_MALLOC_FAIL</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1694133395"><a name="p1694133395"></a><a name="p1694133395"></a>Failed to allocate memory</p>
-        </td>
-        </tr>
-        <tr id="row469443317913"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p116951933293"><a name="p116951933293"></a><a name="p116951933293"></a>HDF_ERR_IO</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p969511331918"><a name="p969511331918"></a><a name="p969511331918"></a>I/O error</p>
-        </td>
-        </tr>
-        <tr id="row369533318911"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p669511331891"><a name="p669511331891"></a><a name="p669511331891"></a>HDF_SUCCESS</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p136951233699"><a name="p136951233699"></a><a name="p136951233699"></a>Initialization successful</p>
-        </td>
-        </tr>
-        <tr id="row17695633596"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1469583314910"><a name="p1469583314910"></a><a name="p1469583314910"></a>HDF_FAILURE</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p10695193311919"><a name="p10695193311919"></a><a name="p10695193311919"></a>Initialization failed</p>
-        </td>
-        </tr>
-        </tbody>
-        </table>
-
-        Function description:
-
-        Initializes the custom structure object and **WatchdogCntlr**, and calls the **WatchdogCntlrAdd** function at the core layer.
-
-        ```
-        // Generally, the Init function initializes the members of the Hi35xxWatchdog structure based on the attribute values of the input parameter (HdfDeviceObject).
-        // In this example, the Bind function initializes the Hi35xxWatchdog structure.
-        static int32_t Hi35xxWatchdogInit(struct HdfDeviceObject *device)
-        {
-        (void)device;
-        return HDF_SUCCESS;
-        }
-        
-        static int32_t Hi35xxWatchdogBind(struct HdfDeviceObject *device)
-        {
-        int32_t ret;
-        struct Hi35xxWatchdog *hwdt = NULL;
-        ...
-        hwdt = (struct Hi35xxWatchdog *)OsalMemCalloc(sizeof(*hwdt));// Apply for memory for the Hi35xxWatchdog structure.
-        ...
-        hwdt->regBase = OsalIoRemap(hwdt->phyBase, hwdt->regStep); // Address mapping
-        ...
-        hwdt->wdt.priv = (void *)device->property;// (Optional) Assign the device attribute values to priv. However, priv is not called subsequently.
-                                                    //If priv needs to be called, instantiate the getPriv and releasePriv member functions in WatchdogMethod.
-        hwdt->wdt.ops = &g_method; // (Mandatory) Assign the instantiated objects to the ops member so that the top layer can invoke the WatchdogMethod member functions.
-        hwdt->wdt.device = device; // (Mandatory) Enable conversion between HdfDeviceObject and WatchdogcCntlr.
-        ret = WatchdogCntlrAdd(&hwdt->wdt);   // (Mandatory) Call this function to initialize the structure of the core layer. The driver accesses the platform core layer only after a success signal is returned.
-        if (ret != HDF_SUCCESS) {// If the operation fails, release the resources used by the Init function.
-            OsalIoUnmap((void *)hwdt->regBase);
-            OsalMemFree(hwdt);
-            return ret;
-        }    
-        return HDF_SUCCESS;
-        }
-        ```
-
-    -   Release function
-
-        Input parameters:
-
-       **HdfDeviceObject**: device object created by the HDF for each driver. It stores device-related private data and service APIs.
-
-        Return values:
-
-        –
-
-        Function description:
-
-        Releases the memory and deletes the controller. This function assigns a value to the **Release** API in the driver entry structure. When the HDF fails to call the **Init** function to initialize the driver, the **Release** function can be called to release driver resources. All forced conversion operations for obtaining the corresponding object can be successful only when the **Init** function has the corresponding value assignment operations.
-
-        ```
-        static void Hi35xxWatchdogRelease(struct HdfDeviceObject *device)
-        {
-        struct WatchdogCntlr *wdt = NULL;
-        struct Hi35xxWatchdog *hwdt = NULL;
-        ...
-        wdt = WatchdogCntlrFromDevice(device);// Convert HdfDeviceObject to WatchdogCntlr by the service member.
-                                                //return (device == NULL) ? NULL : (struct WatchdogCntlr *)device->service;
-        if (wdt == NULL) {
-            return;
-        }
-        WatchdogCntlrRemove(wdt); // Core layer function used to execute wdt->device->service = NULL and release cntlr->lock.
-        hwdt = (struct Hi35xxWatchdog *)wdt; // Convert WatchdogCntlr to HimciHost.
-        if (hwdt->regBase != NULL) {// Remove address mapping.
-            OsalIoUnmap((void *)hwdt->regBase);
-            hwdt->regBase = NULL;
-        }
-        OsalMemFree(hwdt); // Release the memory occupied by the vendor-defined objects.
-        }
-        ```
\ No newline at end of file
+  **Table 1** Description of the callback functions in WatchdogMethod
+
+| Function| Input Parameter| Output Parameter| Return Value| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| getStatus | **wdt**: structure pointer to the watchdog controller at the core layer.| **status**: int32_t pointer to the watchdog status (started or stopped).| HDF_STATUS| Obtains the watchdog status.|
+| start | **wdt**: structure pointer to the watchdog controller at the core layer.| –| HDF_STATUS| Starts a watchdog.|
+| stop | **wdt**: structure pointer to the watchdog controller at the core layer.| –| HDF_STATUS   | Stops a watchdog.|
+| setTimeout | **wdt**: structure pointer to the watchdog controller at the core layer.<br/>**seconds**: Timeout duration to set, in seconds. The value is of the uint32_t type. | – | HDF_STATUS | Sets the timeout duration for a watchdog. |
+| getTimeout | **wdt**: structure pointer to the watchdog controller at the core layer.| **seconds**: Pointer to the watchdog timeout duration obtained. The value is of the uint32_t type. | HDF_STATUS| Obtains the timeout duration of a watchdog.|
+| feed | **wdt**: structure pointer to the watchdog controller at the core layer.| –| HDF_STATUS| Feeds a watchdog. |
+
+
+## How to Develop
+
+The watchdog module adaptation involves the following steps:
+
+1. Instantiate the driver entry.
+   - Instantiate the **HdfDriverEntry** structure.
+   - Call **HDF_INIT** to register the **HdfDriverEntry** instance with the HDF.
+
+2. Configure attribute files.
+   - Add the **deviceNode** information to the **device_info.hcs** file.
+   - (Optional) Add the **watchdog_config.hcs** file.
+
+3. Instantiate the watchdog controller object.
+   - Initialize **WatchdogCntlr**.
+   - Instantiate **WatchdogMethod** in the **WatchdogCntlr** object.
+   
+
+   > ![](../public_sys-resources/icon-note.gif) **NOTE** 
+   > 
+   > For details about the functions in **WatchdogMethod**, see [Available APIs](#available-apis).
+
+4. Debug the driver.
+   
+   (Optional) For new drivers, verify basic functions, for example, check the information returned after the driver is attached and whether the watchdog timer is successfully set.
+
+
+## Development Example
+
+The following uses **watchdog_hi35xx.c** as an example to present the information required for implementing device functions.
+
+1. Instantiate the driver entry.
+   
+   The driver entry must be a global variable of the **HdfDriverEntry** type (defined in **hdf_device_desc.h**), and the value of **moduleName** must be the same as that in **device_info.hcs**. In the HDF, the start address of each **HdfDriverEntry** object of all loaded drivers is collected to form a segment address space similar to an array for the upper layer to invoke.
+   
+   Generally, the HDF calls the **Bind** function and then the **Init** function to load a driver. If **Init** fails to be called, the HDF calls **Release** to release driver resources and exit.
+   
+   Watchdog driver entry example:
+
+   ```
+   struct HdfDriverEntry g_watchdogDriverEntry = {
+   .moduleVersion = 1,
+   .Bind = Hi35xxWatchdogBind,           // See the Bind function.
+   .Init = Hi35xxWatchdogInit,           // See the Init function.
+   .Release = Hi35xxWatchdogRelease,     // See the Release function.
+   .moduleName = "HDF_PLATFORM_WATCHDOG",// (Mandatory) The value must be the same as that of moduleName in the .hcs file.
+   };
+   HDF_INIT(g_watchdogDriverEntry);// Call HDF_INIT to register the driver entry with the HDF.
+   ```
+  
+2. Add the **deviceNode** information to the **device_info.hcs** file and configure the component attributes in the **watchdog_config.hcs** file. 
+
+   The **deviceNode** information is related to registration of the driver entry. The device attribute values are closely related to the default values or value ranges of the **WatchdogCntlr** members at the core layer.
+
+   In this example, there is only one watchdog controller. If there are multiple watchdog controllers, you need to add the **deviceNode** information to the **device_info** file and add the corresponding device attributes to the **watchdog_config** file for each controller.
+
+   - **device_info.hcs** configuration example:
+
+     
+     ```
+     root {
+       device_info {
+         match_attr = "hdf_manager";
+         device_watchdog :: device {// Device node.
+           device0:: deviceNode {   // Device node of the driver.
+             policy = 1;             // Policy for the driver to provide services.
+             priority = 20;          // Driver startup priority.
+             permission = 0644;    // Permission to create device nodes for the driver.
+             moduleName = "HDF_PLATFORM_WATCHDOG";             
+              // (Mandatory) Driver name. The value must be the same as that of moduleName in the driver entry structure.
+             serviceName = "HDF_PLATFORM_WATCHDOG_0";          
+             // (Mandatory) Unique name of the service published by the driver.
+             deviceMatchAttr = "hisilicon_hi35xx_watchdog_0";  
+             // (Mandatory) Keyword matching the private data of the driver. The value must be the same as that of match_attr in the private data configuration table of the driver.
+           } 
+         }
+       }
+     }
+     ```
+
+   - **watchdog_config.hcs** configuration example:
+
+     
+     ```
+     root {
+       platform {
+         template watchdog_controller {// (Mandatory) Template configuration. In the template, you can configure the common parameters shared by device nodes.
+           id = 0;
+           match_attr = "";
+           regBase = 0x12050000;       //  (Mandatory) Used for address mapping.
+           regStep = 0x1000;           // (Mandatory) Used for address mapping.
+         }
+         controller_0x12050000 :: watchdog_controller {// (Mandatory) Keyword for matching the private data of the device driver.
+           match_attr = "hisilicon_hi35xx_watchdog_0"; // (Mandatory) The value must be the same as that of deviceMatchAttr in device_info.hcs.
+           }
+           // Configure this parameter when there are multiple watchdogs.
+           ...  
+         }
+     }
+     ```
+
+3. Initialize the **WatchdogCntlr** object at the core layer, including defining a custom structure (to pass parameters and data) and implementing the **HdfDriverEntry** member functions (**Bind**, **Init**, and **Release**) to instantiate **WatchdogMethod** in **WatchdogCntlr** (so that the underlying driver functions can be called).
+   - Defining a custom structure
+
+      To the driver, the custom structure holds parameters and data. The **DeviceResourceIface** method provided by the HDF reads the values in the **watchdog_config.hcs** file to initialize the members in the custom structure and passes important parameters, such as the index and the number of pins, to the **WatchdogCntlr** object at the core layer.
+
+      
+      ```
+      struct Hi35xxWatchdog {
+        struct WatchdogCntlr wdt; // (Mandatory) Carrier that connects the upper and underlying layers. For details, see the following description.
+        OsalSpinlock lock;
+        volatile unsigned char *regBase;// [Mandatory] Used for address mapping.
+        uint32_t phyBase;               // (Mandatory) Used for address mapping.
+        uint32_t regStep;               // (Mandatory) Used for address mapping.
+      };
+      // WatchdogCntlr is the core layer controller structure. The Init function assigns values to the members of WatchdogCntlr.
+      struct WatchdogCntlr {
+        struct IDeviceIoService service;// Driver service.
+        struct HdfDeviceObject *device; // Driver device.
+        OsalSpinlock lock;              // This variable is called by the HDF core layer to implement the spinlock function.
+        struct WatchdogMethod *ops;     // Callbacks.
+        int16_t wdtId                  // ID of the watchdog device.
+        void *priv;                    // Pointer to the driver's private data.
+      };
+      ```
+      
+   - Instantiating **WatchdogMethod** in **WatchdogCntlr** (other members are initialized by **Init** and **Bind**)
+
+     
+      ```
+      static struct WatchdogMethod g_method = {
+          .getStatus = Hi35xxWatchdogGetStatus,
+          .start = Hi35xxWatchdogStart,
+          .stop = Hi35xxWatchdogStop,
+          .setTimeout = Hi35xxWatchdogSetTimeout,
+          .getTimeout = Hi35xxWatchdogGetTimeout,
+          .feed = Hi35xxWatchdogFeed,
+      };
+      ```
+
+   - **Init** and **Bind** functions
+
+      Input parameter:
+
+      **HdfDeviceObject**, a device object created by the HDF for each driver, holds device-related private data and service APIs.
+
+      Return value:
+
+      HDF_STATUS
+
+      The table below lists some status. For more information, see **HDF_STATUS** in the /drivers/framework/include/utils/hdf_base.h file.
+      
+        **Table 2** HDF_STATUS
+      
+      | Status| Description|
+      | -------- | -------- |
+      | HDF_ERR_INVALID_OBJECT | Failed to locate the watchdog device.|
+      | HDF_ERR_MALLOC_FAIL | Failed to allocate memory.|
+      | HDF_ERR_IO | I/O error.|
+      | HDF_SUCCESS | Initialization successful.|
+      | HDF_FAILURE | Initialization failed.|
+
+      Function description:
+
+      Initializes the custom structure object and **WatchdogCntlr**, and calls the **WatchdogCntlrAdd** function at the core layer.
+      
+      
+      ```
+      // Generally, the Init function initializes the members of the Hi35xxWatchdog structure based on the attribute values in **HdfDeviceObject**.
+      // In this example, the Bind function initializes the Hi35xxWatchdog structure.
+      static int32_t Hi35xxWatchdogInit(struct HdfDeviceObject *device)
+      {
+      (void)device;
+      return HDF_SUCCESS;
+      }
+      
+      static int32_t Hi35xxWatchdogBind(struct HdfDeviceObject *device)
+      {
+      int32_t ret;
+      struct Hi35xxWatchdog *hwdt = NULL;
+      ...
+      hwdt = (struct Hi35xxWatchdog *)OsalMemCalloc(sizeof(*hwdt));// Apply for memory for the Hi35xxWatchdog structure.
+      ...
+      hwdt->regBase = OsalIoRemap(hwdt->phyBase, hwdt->regStep); // Address mapping
+      ...
+      hwdt->wdt.priv = (void *)device->property;// (Optional) Assign the device attribute values to priv. However, priv is not called subsequently.
+                                                  //If the priv member is required, instantiate getPriv() and releasePriv() of WatchdogMethod.
+      hwdt->wdt.ops = &g_method;                // (Mandatory) Assign the instantiated objects to the ops members so that the top layer can invoke the WatchdogMethod functions.
+      hwdt->wdt.device = device;                // (Mandatory) Enable conversion between HdfDeviceObject and WatchdogcCntlr.
+      ret = WatchdogCntlrAdd(&hwdt->wdt);       // (Mandatory) Call this function to initialize the structure of the core layer. The driver accesses the platform core layer only after a success signal is returned.
+      if (ret != HDF_SUCCESS) {                 // If the operation fails, release the resources used by Init().
+          OsalIoUnmap((void *)hwdt->regBase);
+          OsalMemFree(hwdt);
+          return ret;
+      }    
+      return HDF_SUCCESS;
+      }
+      ```
+      
+   - **Release** function
+
+      Input parameter:
+
+      **HdfDeviceObject**, a device object created by the HDF for each driver, holds device-related private data and service APIs.
+
+      Return value:
+
+      No value is returned.
+
+      Function description:
+
+      Releases driver resources. This function assigns values to **Release()** in the driver entry structure. When the HDF fails to call the **Init** function to initialize the driver, **Release()** can be called to release driver resources. The **Release()** function must contain the operations for releasing the memory and deleting the controller. 
+
+      All forced conversion operations for obtaining the corresponding object can be successful only when **Init()** has the corresponding value assignment operations.
+      
+      
+      ```
+      static void Hi35xxWatchdogRelease(struct HdfDeviceObject *device)
+      {
+      struct WatchdogCntlr *wdt = NULL;
+      struct Hi35xxWatchdog *hwdt = NULL;
+      ...
+      wdt = WatchdogCntlrFromDevice(device);// Use service to convert HdfDeviceObject to WatchdogCntlr.
+                                              // return (device == NULL) ? NULL : (struct WatchdogCntlr *)device->service;
+      if (wdt == NULL) {
+          return;
+      }
+      WatchdogCntlrRemove(wdt);                // Core layer function used to execute wdt->device->service = NULL and release cntlr->lock.
+      hwdt = (struct Hi35xxWatchdog *)wdt; // Convert WatchdogCntlr to HimciHost.
+      if (hwdt->regBase != NULL) {            // Unmap addresses.
+          OsalIoUnmap((void *)hwdt->regBase);
+          hwdt->regBase = NULL;
+      }
+      OsalMemFree(hwdt);                    // Release the memory occupied by the vendor-defined objects.
+      }
+      ```
diff --git a/en/device-dev/driver/figures/ADC_physical_connection.png b/en/device-dev/driver/figures/ADC_physical_connection.png
index da94f3b486edb6b269ef341b12b1816f23036c32..d3cddfb92b63afc8ae1b3f8d02e4ac9c7aeb9edd 100644
Binary files a/en/device-dev/driver/figures/ADC_physical_connection.png and b/en/device-dev/driver/figures/ADC_physical_connection.png differ
diff --git a/en/device-dev/driver/figures/spi-controller-device-connection.png b/en/device-dev/driver/figures/spi-controller-device-connection.png
index 96f68d24918dacf9244e0ad020f2e99d77f589c4..7a467a4d7278415cbd1174706b12cb9f598369b8 100644
Binary files a/en/device-dev/driver/figures/spi-controller-device-connection.png and b/en/device-dev/driver/figures/spi-controller-device-connection.png differ
diff --git a/en/device-dev/driver/figures/using-ADC-process.png b/en/device-dev/driver/figures/using-ADC-process.png
index 6aebca249fa9d7948eca5f0047cea6ac4074c731..691adc1e3454170d4c0f16f60739560ef2e3ea9f 100644
Binary files a/en/device-dev/driver/figures/using-ADC-process.png and b/en/device-dev/driver/figures/using-ADC-process.png differ
diff --git a/en/device-dev/get-code/gettools-acquire.md b/en/device-dev/get-code/gettools-acquire.md
index de4acc2188103623732bcd5bf241344352f18425..444283316c4eafd12cc98e5b0af20b999482c243 100644
--- a/en/device-dev/get-code/gettools-acquire.md
+++ b/en/device-dev/get-code/gettools-acquire.md
@@ -138,7 +138,7 @@ hb set
 1.  Obtain the Docker image.
 
     ```
-    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:1.0.0
+    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
     ```
 
 2.  Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment:
diff --git a/en/device-dev/guide/device-camera-visual-run.md b/en/device-dev/guide/device-camera-visual-run.md
index d48ed33058c15611ecfc6d9fe0b10da038f2107f..fd583adfc26355621fae774b2f2745827f481abd 100644
--- a/en/device-dev/guide/device-camera-visual-run.md
+++ b/en/device-dev/guide/device-camera-visual-run.md
@@ -1,6 +1,6 @@
 # Running on the Device<a name="EN-US_TOPIC_0000001054809161"></a>
 
-Before you install the application and run it on the development board, install the DevEco Device Tool by following operations provided in  [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). Burn OpenHarmony into the development board, and run it on the board. For details about how to compile, burn, and run an image, see the  [Hi3516 Development Board](../quick-start/quickstart-lite-introduction-hi3516.md#section26131214194212). After the image is running normally and the system is started properly, perform the following steps to install or uninstall the application:
+Before you install the application and run it on the development board, install the DevEco Device Tool by following operations provided in  [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). Burn OpenHarmony into the development board, and run it on the board. For details about how to compile, burn, and run an image, see the  [Hi3516 Development Board](../quick-start/Readme-EN.md). After the image is running normally and the system is started properly, perform the following steps to install or uninstall the application:
 
 1.  Store the compiled unsigned application installation package and installation tool in an SD card and insert the SD card into the development board slot. The installation tool is in  **dev\_tools**  of the directory where the image file is generated.
 2.  Run the following command to disable signature verification, which is enabled by default for application installation:
diff --git a/en/device-dev/guide/device-iotcamera-control-example.md b/en/device-dev/guide/device-iotcamera-control-example.md
index 0d2fbf23bf92862441b826088fbc42b55ba3beea..e13ad94f9036eba83d7d9bf157d72dbe127a3d6a 100644
--- a/en/device-dev/guide/device-iotcamera-control-example.md
+++ b/en/device-dev/guide/device-iotcamera-control-example.md
@@ -1,6 +1,6 @@
 # Use Case<a name="EN-US_TOPIC_0000001055686082"></a>
 
--   For details about the development board, compilation, burning, and image running, see  [Hi3518 Development Board](../quick-start/quickstart-lite-introduction-hi3518.md#section14815247616). A compilation result file of sample code is stored in  **out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample**. You can copy the file to a TF card, or modify the compilation script of  **camera\_sample**  to copy the result to  **rootfs.img**.
+-   For details about the development board, compilation, burning, and image running, see  [Quick Start](../quick-start/Readme-EN.md). A compilation result file of sample code is stored in  **out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample**. You can copy the file to a TF card, or modify the compilation script of  **camera\_sample**  to copy the result to  **rootfs.img**.
 
     Modify  **output\_dir**  in  **applications/sample/camera/media/BUILD.gn**.
 
diff --git a/en/device-dev/kernel/kernel-basic-mini-time.md b/en/device-dev/kernel/kernel-basic-mini-time.md
index 586349d0c4683c5b782b61ea2cd0b714e7b1b4b1..375e481f4c04354b83d1e043cac3d3f7f0a83c0c 100644
--- a/en/device-dev/kernel/kernel-basic-mini-time.md
+++ b/en/device-dev/kernel/kernel-basic-mini-time.md
@@ -1,8 +1,7 @@
-# Time Management<a name="EN-US_TOPIC_0000001078876462"></a>
+# Time Management
 
 
-
-## Basic Concepts<a name="section36251149131120"></a>
+## Basic Concepts
 
 Time management provides all time-related services for applications based on the system clock.
 
@@ -12,67 +11,79 @@ People use second or millisecond as the time unit, while the operating system us
 
 The time management module of the OpenHarmony LiteOS-M kernel provides time conversion and statistics functions.
 
-## Time Unit<a name="section97172532397"></a>
 
--   Cycle
+## Time Unit
+
+- Cycle
+  
+  Cycle is the minimum time unit in the system. The cycle duration is determined by the system clock frequency, that is, the number of cycles per second.
+- Tick
+  
+  Tick is the basic time unit of the operating system and is determined by the number of ticks per second configured by the user.
 
-    Cycle is the minimum time unit in the system. The cycle duration is determined by the system clock frequency, that is, the number of cycles per second.
 
--   Tick
+## Available APIs
 
-    Tick is the basic time unit of the operating system and is determined by the number of ticks per second configured by the user.
+The following table describes APIs available for OpenHarmony LiteOS-M time management. For more details about the APIs, see the API reference.
 
+**Table 1** APIs of the time management module
 
-## Available APIs<a name="section158501652121514"></a>
+| API| Description|
+| -------- | -------- |
+| LOS_MS2Tick | Converts milliseconds into ticks.|
+| LOS_Tick2MS | Converts ticks into milliseconds.|
+| OsCpuTick2MS | Converts cycles into milliseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.|
+| OsCpuTick2US | Converts cycles into microseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.|
 
-The following table describes APIs available for the OpenHarmony LiteOS-M time management. For more details about the APIs, see the API reference.
+**Table 2** APIs for time statistics
 
-**Table  1**  APIs of the time management module
+| API| Description|
+| -------- | -------- |
+| LOS_SysClockGet | Obtains the system clock.|
+| LOS_TickCountGet | Obtains the number of ticks since the system starts.|
+| LOS_CyclePerTickGet | Obtains the number of cycles for each tick.|
 
-| Category| API| Description|
-| -------- | -------- | -------- |
-| Time conversion| LOS_MS2Tick | Converts milliseconds into ticks.|
-|  | LOS_Tick2MS | Converts ticks into milliseconds.|
-|  | OsCpuTick2MS | Converts cycles into milliseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.|
-|  | OsCpuTick2US | Converts cycles into microseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.|
-| Time statistics| LOS_SysClockGet | Obtains the system clock.|
-|  | LOS_TickCountGet | Obtains the number of ticks since the system starts.|
-|  | LOS_CyclePerTickGet | Obtains the number of cycles for each tick.|
-|  | LOS_CurrNanosec |Obtains the number of nanoseconds since the system starts.|
-| Delay management| LOS_UDelay |Performs busy waiting in μs, which can be preempted by a task with a higher priority.|
-|  | LOS_MDelay |Performs busy waiting in ms, which can be preempted by a task with a higher priority.|
 
-## How to Develop<a name="section783435801510"></a>
+## How to Develop
 
 The typical development process of time management is as follows:
 
-1.  Complete board configuration and adaptation as required, and configure the system clock frequency \(**OS\_SYS\_CLOCK**  in Hz and  **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**\). The default value of  **OS\_SYS\_CLOCK**  varies with the hardware platform.
-2.  Call the clock conversion and statistics APIs.
+1. Complete board configuration and adaptation as required, and configure the system clock frequency (**OS_SYS_CLOCK** in Hz and **LOSCFG_BASE_CORE_TICK_PER_SECOND**). The default value of **OS_SYS_CLOCK** varies with the hardware platform.
 
->![](../public_sys-resources/icon-note.gif) **NOTE** 
+2. Call the clock conversion and statistics APIs.
+
+>![](../public_sys-resources/icon-note.gif) **NOTE**
 >
->-   The time management module depends on  **OS\_SYS\_CLOCK**  and  **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**.
->-   The number of system ticks is not counted when the interrupt feature is disabled. Therefore, the number of ticks cannot be used as the accurate time.
->-   The configuration options are maintained in the  **target\_config.h**  file of the development board project.
+> - The time management module depends on **OS_SYS_CLOCK** and **LOSCFG_BASE_CORE_TICK_PER_SECOND**.
+> 
+> - The number of system ticks is not counted when the interrupt feature is disabled. Therefore, the number of ticks cannot be used as the accurate time.
+> 
+> - The configuration options are maintained in the **target_config.h** file of the development board project.
+
 
-## Development Example<a name="section460018317164"></a>
+## Development Example
 
-### Example Description<a name="section127752801718"></a>
+
+### Example Description
 
 The following example describes basic time management methods, including:
 
 - Time conversion: convert milliseconds to ticks or convert ticks to milliseconds.
+
 - Time statistics: obtain the number of cycles per tick, number of ticks since system startup, and number of delayed ticks.
 
-### Sample Code<a name="section321653551711"></a>
+
+### Sample Code
 
 Prerequisites
 
--   The default value of  **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**  is  **100**.
--   The system clock frequency  **OS\_SYS\_CLOCK**  is configured.
+- The default value of **LOSCFG_BASE_CORE_TICK_PER_SECOND** is **100**.
+
+- The system clock frequency **OS_SYS_CLOCK** is configured.
 
 Time conversion:
 
+
 ```
 VOID Example_TransformTime(VOID)
 {
@@ -88,6 +99,7 @@ VOID Example_TransformTime(VOID)
 
 Time statistics and delay:
 
+
 ```
 VOID Example_GetTime(VOID)
 {
@@ -112,12 +124,14 @@ VOID Example_GetTime(VOID)
 }
 ```
 
-### Verification<a name="section4366193318167"></a>
+
+### Verification
 
 The development is successful if the return result is as follows:
 
 Time conversion:
 
+
 ```
 tick = 1000
 ms = 1000
@@ -125,6 +139,7 @@ ms = 1000
 
 Time statistics and delay:
 
+
 ```
 LOS_CyclePerTickGet = 495000 
 LOS_TickCountGet = 1 
diff --git a/en/device-dev/kernel/kernel-mini-basic-soft.md b/en/device-dev/kernel/kernel-mini-basic-soft.md
index ec8e10ec130d2feb0d5c931b1ffbcccca56a7818..e6bb601669fcc6fd7403c25ccea520323eeea70d 100644
--- a/en/device-dev/kernel/kernel-mini-basic-soft.md
+++ b/en/device-dev/kernel/kernel-mini-basic-soft.md
@@ -1,5 +1,6 @@
 # Software Timer
 
+
 ## Basic Concepts
 
 The software timer is a software-simulated timer based on system tick interrupts. When the preset tick counter value has elapsed, the user-defined callback will be invoked. The timing precision is related to the cycle of the system tick clock.
@@ -8,144 +9,132 @@ Due to the limitation in hardware, the number of hardware timers cannot meet use
 
 The software timer supports the following functions:
 
--   Disabling the software timer using a macro
--   Creating a software timer
--   Starting a software timer
--   Stopping a software timer
--   Deleting a software timer
--   Obtaining the number of remaining ticks of a software timer
+- Disabling the software timer using a macro
 
-## Working Principles
+- Creating a software timer
 
-The software timer is a system resource. When modules are initialized, a contiguous section of memory is allocated for software timers. The maximum number of timers supported by the system is configured by the **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** macro in **los\_config.h**.
+- Starting a software timer
 
-Software timers use a queue and a task resource of the system. The software timers are triggered based on the First In First Out \(FIFO\) rule. A timer with a shorter value is always closer to the queue head than a timer with a longer value, and is preferentially triggered.
+- Stopping a software timer
 
-The software timer counts time in ticks. When a software timer is created and started, the OpenHarmony LiteOS-M kernel determines the timer expiry time based on the current system time \(in ticks\) and the timing interval set by the user, and adds the timer control structure to the global timing list.
+- Deleting a software timer
 
-When a tick interrupt occurs, the tick interrupt handler scans the global timing list for expired timers. If such timers are found, the timers are recorded.
+- Obtaining the number of remaining ticks of a software timer
 
-When the tick interrupt handling function is complete, the software timer task \(with the highest priority\) is woken up. In this task, the timeout callback function for the recorded timer is called.
 
-### Timer States
+## Working Principles
 
--   OS\_SWTMR\_STATUS\_UNUSED
+The software timer is a system resource. When modules are initialized, a contiguous section of memory is allocated for software timers. The maximum number of timers supported by the system is configured by the **LOSCFG_BASE_CORE_SWTMR_LIMIT** macro in **los_config.h**.
 
-    The timer is not in use. When the timer module is initialized, all timer resources in the system are set to this state.
+Software timers use a queue and a task resource of the system. The software timers are triggered based on the First In First Out (FIFO) rule. A timer with a shorter value is always closer to the queue head than a timer with a longer value, and is preferentially triggered.
 
+The software timer counts time in ticks. When a software timer is created and started, the OpenHarmony LiteOS-M kernel determines the timer expiry time based on the current system time (in ticks) and the timing interval set by the user, and adds the timer control structure to the global timing list.
 
--   OS\_SWTMR\_STATUS\_CREATED
+When a tick interrupt occurs, the tick interrupt handler scans the global timing list for expired timers. If such timers are found, the timers are recorded.
 
-    The timer is created but not started or the timer is stopped. When **LOS\_SwtmrCreate** is called for a timer that is not in use or **LOS\_SwtmrStop** is called for a newly started timer, the timer changes to this state.
+When the tick interrupt handling function is complete, the software timer task (with the highest priority) is woken up. In this task, the timeout callback function for the recorded timer is called.
 
 
--   OS\_SWTMR\_STATUS\_TICKING
+### Timer States
 
-    The timer is running \(counting\). When **LOS\_SwtmrStart** is called for a newly created timer, the timer enters this state.
+- OS_SWTMR_STATUS_UNUSED
+  
+  The timer is not in use. When the timer module is initialized, all timer resources in the system are set to this state.
+- OS_SWTMR_STATUS_CREATED
+  
+  The timer is created but not started or the timer is stopped. When **LOS_SwtmrCreate** is called for a timer that is not in use or **LOS_SwtmrStop** is called for a newly started timer, the timer changes to this state.
+  
+- OS_SWTMR_STATUS_TICKING
+  
+  The timer is running (counting). When **LOS_SwtmrStart** is called for a newly created timer, the timer enters this state.
 
 
-### Timer Modes<a name="section137521353175010"></a>
+### Timer Modes
 
-The OpenHarmony LiteOS-M kernel provides three types of software timers:
+The OpenHarmony LiteOS-M kernel provides the following types of software timers:
+
+- One-shot timer: Once started, the timer is automatically deleted after triggering only one timer event.
+
+- Periodic timer: This type of timer periodically triggers timer events until it is manually stopped.
+
+- One-shot timer deleted by calling an API
 
--   One-shot timer: Once started, the timer is automatically deleted after triggering only one timer event.
--   Periodic timer: This type of timer periodically triggers timer events until it is manually stopped.
--   One-shot timer deleted by calling an API
 
 ## Available APIs
 
 The following table describes APIs available for the OpenHarmony LiteOS-M software timer module. For more details about the APIs, see the API reference.
 
-**Table 1** Software timer APIs
-
-<a name="table14277123518139"></a>
-<table><thead align="left"><tr id="row152771935131315"><th class="cellrowborder" valign="top" width="17.77177717771777%" id="mcps1.2.4.1.1"><p id="p1127733591316"><a name="p1127733591316"></a><a name="p1127733591316"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="23.782378237823785%" id="mcps1.2.4.1.2"><p id="p22771357138"><a name="p22771357138"></a><a name="p22771357138"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="58.44584458445845%" id="mcps1.2.4.1.3"><p id="p327714358130"><a name="p327714358130"></a><a name="p327714358130"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row159539510586"><td class="cellrowborder" rowspan="2" valign="top" width="17.77177717771777%" headers="mcps1.2.4.1.1 "><p id="p1194410585810"><a name="p1194410585810"></a><a name="p1194410585810"></a>Creating or deleting timers</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.782378237823785%" headers="mcps1.2.4.1.2 "><p id="p10944105115814"><a name="p10944105115814"></a><a name="p10944105115814"></a>LOS_SwtmrCreate</p>
-</td>
-<td class="cellrowborder" valign="top" width="58.44584458445845%" headers="mcps1.2.4.1.3 "><p id="p9944105175818"><a name="p9944105175818"></a><a name="p9944105175818"></a>Creates a software timer.</p>
-</td>
-</tr>
-<tr id="row17953454580"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p094419505814"><a name="p094419505814"></a><a name="p094419505814"></a>LOS_SwtmrDelete</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p39445585817"><a name="p39445585817"></a><a name="p39445585817"></a>Deletes a software timer.</p>
-</td>
-</tr>
-<tr id="row79531357589"><td class="cellrowborder" rowspan="2" valign="top" width="17.77177717771777%" headers="mcps1.2.4.1.1 "><p id="p139443595820"><a name="p139443595820"></a><a name="p139443595820"></a>Starting or stopping timers</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.782378237823785%" headers="mcps1.2.4.1.2 "><p id="p1894435175815"><a name="p1894435175815"></a><a name="p1894435175815"></a>LOS_SwtmrStart</p>
-</td>
-<td class="cellrowborder" valign="top" width="58.44584458445845%" headers="mcps1.2.4.1.3 "><p id="p1194415518581"><a name="p1194415518581"></a><a name="p1194415518581"></a>Starts a software timer.</p>
-</td>
-</tr>
-<tr id="row1095320545814"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p20944355589"><a name="p20944355589"></a><a name="p20944355589"></a>LOS_SwtmrStop</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p169441515816"><a name="p169441515816"></a><a name="p169441515816"></a>Stop a software timer.</p>
-</td>
-</tr>
-<tr id="row119525513581"><td class="cellrowborder" valign="top" width="17.77177717771777%" headers="mcps1.2.4.1.1 "><p id="p109442053586"><a name="p109442053586"></a><a name="p109442053586"></a>Obtaining remaining ticks of a software timer</p>
-</td>
-<td class="cellrowborder" valign="top" width="23.782378237823785%" headers="mcps1.2.4.1.2 "><p id="p9944354585"><a name="p9944354585"></a><a name="p9944354585"></a>LOS_SwtmrTimeGet</p>
-</td>
-<td class="cellrowborder" valign="top" width="58.44584458445845%" headers="mcps1.2.4.1.3 "><p id="p39441257586"><a name="p39441257586"></a><a name="p39441257586"></a>Obtaining remaining ticks of a software timer</p>
-</td>
-</tr>
-</tbody>
-</table>
+  **Table 1** Software timer APIs
+
+| API| Description|
+| -------- | -------- |
+| LOS_SwtmrCreate| Creates a timer.|
+| LOS_SwtmrDelete| Deletes a timer.|
+| LOS_SwtmrStart| Starts a timer.|
+| LOS_SwtmrStop| Stops a timer.|
+| LOS_SwtmrTimeGet| Obtains the remaining ticks of a software timer.|
+
 
 ## How to Develop
 
 The typical development process of software timers is as follows:
 
-1.  Configure the software timer.
-    -   Check that **LOSCFG\_BASE\_CORE\_SWTMR** and **LOSCFG\_BASE\_IPC\_QUEUE** are set to **1**.
-    -   Configure **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** \(maximum number of software timers supported by the system\).
-    -   Configure **OS\_SWTMR\_HANDLE\_QUEUE\_SIZE** \(maximum length of the software timer queue\).
+1. Configure the software timer.
+   - Check that **LOSCFG_BASE_CORE_SWTMR** and **LOSCFG_BASE_IPC_QUEUE** are set to **1**.
+   - Configure **LOSCFG_BASE_CORE_SWTMR_LIMIT** (maximum number of software timers supported by the system).
+   - Configure **OS_SWTMR_HANDLE_QUEUE_SIZE** (maximum length of the software timer queue).
+
+2. Call **LOS_SwtmrCreate** to create a software timer.
+   - Create a software timer with the specified timing duration, timeout handling function, and triggering mode.
+   - Return the function execution result (success or failure).
 
-2.  Call **LOS\_SwtmrCreate** to create a software timer.
-    -   Create a software timer with the specified timing duration, timeout handling function, and triggering mode.
-    -   Return the function execution result \(success or failure\).
+3. Call **LOS_SwtmrStart** to start the software timer.
 
-3.  Call **LOS\_SwtmrStart** to start the software timer.
-4.  Call **LOS\_SwtmrTimeGet** to obtain the remaining number of ticks of the software timer.
-5.  Call **LOS\_SwtmrStop** to stop the software timer.
-6.  Call **LOS\_SwtmrDelete** to delete the software timer.
+4. Call **LOS_SwtmrTimeGet** to obtain the remaining number of ticks of the software timer.
+
+5. Call **LOS_SwtmrStop** to stop the software timer.
+
+6. Call **LOS_SwtmrDelete** to delete the software timer.
+
+>![](../public_sys-resources/icon-note.gif) **NOTE**
+> - Avoid too many operations in the callback function of the software timer. Do not use APIs or perform operations that may cause task suspension or blocking.
+> 
+> - The software timers use a queue and a task resource of the system. The priority of the software timer tasks is set to **0** and cannot be changed.
+> 
+> - The number of software timer resources that can be configured in the system is the total number of software timer resources available to the entire system, not the number of software timer resources available to users. For example, if the system software timer occupies one more resource, the number of software timer resources available to users decreases by one.
+> 
+> - If a one-shot software timer is created, the system automatically deletes the timer and reclaims resources after the timer times out and the callback function is executed.
+> 
+> - For a one-shot software timer that will not be automatically deleted after expiration, you need to call **LOS_SwtmrDelete** to delete it and reclaim the timer resource to prevent resource leakage.
 
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->-   Avoid too many operations in the callback function of the software timer. Do not use APIs or perform operations that may cause task suspension or blocking.
->-   The software timers use a queue and a task resource of the system. The priority of the software timer tasks is set to **0** and cannot be changed.
->-   The number of software timer resources that can be configured in the system is the total number of software timer resources available to the entire system, not the number of software timer resources available to users. For example, if the system software timer occupies one more resource, the number of software timer resources available to users decreases by one.
->-   If a one-shot software timer is created, the system automatically deletes the timer and reclaims resources after the timer times out and the callback function is executed.
->-   For a one-shot software timer that will not be automatically deleted after expiration, you need to call **LOS\_SwtmrDelete** to delete it and reclaim the timer resource to prevent resource leakage.
 
 ## Development Example
 
+
 ### Example Description
 
 The following programming example demonstrates how to:
 
-1.  Create, start, delete, pause, and restart a software timer.
-2.  Use a one-shot software timer and a periodic software timer
+1. Create, start, delete, pause, and restart a software timer.
+
+2. Use a one-shot software timer and a periodic software timer
+
 
 ### Sample Code
 
 Prerequisites
 
--   In **los\_config.h**, **LOSCFG\_BASE\_CORE\_SWTMR** is enabled.
--   In **los\_config.h**, **LOSCFG\_BASE\_CORE\_SWTMR\_ALIGN** is disabled. The sample code does not involve timer alignment.
--   The maximum number of software timers supported by the system \(**LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT**\) is configured.
--   The maximum length of the software timer queue \(OS\_SWTMR\_HANDLE\_QUEUE\_SIZE\) is configured.
+- In **los_config.h**, **LOSCFG_BASE_CORE_SWTMR** is enabled.
+
+- In **los_config.h**, **LOSCFG_BASE_CORE_SWTMR_ALIGN** is disabled. The sample code does not involve timer alignment.
+
+- The maximum number of software timers supported by the system (**LOSCFG_BASE_CORE_SWTMR_LIMIT**) is configured.
+
+- The maximum length of the software timer queue (OS_SWTMR_HANDLE_QUEUE_SIZE) is configured.
 
 The sample code is as follows:
 
+
 ```
 #include "los_swtmr.h"
 
@@ -156,7 +145,7 @@ UINT32 g_timerCount2 = 0;
 /* Task ID*/
 UINT32 g_testTaskId01;
 
-void Timer1_Callback(UINT32 arg) //Callback function 1
+void Timer1_Callback(UINT32 arg) //Callback 1
 {
     UINT32 tick_last1;
     g_timerCount1++;
@@ -164,7 +153,7 @@ void Timer1_Callback(UINT32 arg) //Callback function 1
     printf("g_timerCount1=%d, tick_last1=%d\n", g_timerCount1, tick_last1);
 }  
 
-void Timer2_Callback(UINT32 arg) //Callback function 2
+void Timer2_Callback(UINT32 arg) //Callback 2
 {
     UINT32 tick_last2;
     tick_last2 = (UINT32)LOS_TickCountGet();
@@ -237,10 +226,12 @@ UINT32 Example_TaskEntry(VOID)
 }
 ```
 
+
 ### Verification
 
 The output is as follows:
 
+
 ```
 create Timer1 success
 start Timer1 success
@@ -261,4 +252,3 @@ g_timerCount2=9 tick_last2=2113
 g_timerCount2=10 tick_last2=2213
 delete Timer2 success
 ```
-
diff --git a/en/device-dev/kernel/kernel-mini-basic-task.md b/en/device-dev/kernel/kernel-mini-basic-task.md
index b431d06f674446fe4d0ac7c990eea128d641f7af..e2b71e961f6335ce9da5485e8b025b0df88e7308 100644
--- a/en/device-dev/kernel/kernel-mini-basic-task.md
+++ b/en/device-dev/kernel/kernel-mini-basic-task.md
@@ -1,65 +1,68 @@
 # Task Management
 
+
 ## Basic Concepts
 
 From the perspective of the operating system, tasks are the minimum running units that compete for system resources. They can use or wait for CPUs, use system resources such as memory, and run independently.
 
 The task module of the OpenHarmony LiteOS-M provides multiple tasks and supports switching between tasks, helping users manage business process procedures. The task module has the following features:
 
--   Multiple tasks are supported.
--   A task represents a thread.
--   The preemptive scheduling mechanism is used for tasks. High-priority tasks can interrupt low-priority tasks. Low-priority tasks can be scheduled only after high-priority tasks are blocked or complete.
--   Time slice round-robin is used to schedule tasks with the same priority.
--   A total of 32 \(**0** to **31**\) priorities are defined. **0** is the highest priority, and **31** is the lowest.
-
-### Task-related Concepts
-
-**Task States**
-
-A task has multiple states. After the system initialization is complete, the created tasks can compete for certain resources in the system according to the scheduling procedure regulated by the kernel.
-
-A task can be in any of the following states:
-
--   Ready: The task is in the ready queue, waiting for execution by a CPU.
--   Running: The task is being executed.
--   Blocked: The task is not in the ready queue. The task may be suspended, delayed, waiting for a semaphore, waiting to read from or write into a queue, or reading from or writing into an event.
--   Dead: The task execution is complete and waiting for the system to reclaim resources.
-
-**Task State Transitions**
-
-**Figure 1** Task state transitions<a name="fig186971918162613"></a>  
-![](figures/task-state-transitions.png "task-state-transitions")
-
-The task transition process is as follows:
+- Multiple tasks are supported.
 
--   Ready → Running
+- A task represents a thread.
 
-    A task enters Ready state once created. When task switching occurs, the task with the highest priority in the Ready queue will be executed. The task being executed enters the Running state and is removed from the Ready queue.
+- The preemptive scheduling mechanism is used for tasks. High-priority tasks can interrupt low-priority tasks. Low-priority tasks can be scheduled only after high-priority tasks are blocked or complete.
 
--   Running → Blocked
+- Time slice round-robin is used to schedule tasks with the same priority.
 
-    When a running task is blocked \(suspended, delayed, or reading semaphores\), it will be inserted to the blocked task queue and changes from the Running state to the Blocked state. Then, task switching is triggered to run the task with the highest priority in the Ready queue.
+- A total of 32 (**0** to **31**) priorities are defined. **0** is the highest priority, and **31** is the lowest.
 
--   Blocked → Ready \(Blocked → Running\)
 
-    When a blocked task is recovered \(for example, the task is resumed, the delay period or semaphore read period times out, or the task successfully reads a semaphore\), the task will be added to the Ready queue and change from the Blocked state to the Ready state. If the priority of the recovered task is higher than that of the running task, task switching will be triggered to run the recovered task. Then, the task changes from the Ready state to the Running state.
+### Task-related Concepts
 
--   Ready → Blocked
+**Task States**
 
-    When a task in the Ready state is blocked \(suspended\), the task changes to the Blocked state and is deleted from the Ready queue. The blocked task will not be scheduled until it is recovered.
+A task has multiple states. After the system initialization is complete, the created tasks can compete for certain resources in the system according to the scheduling procedure regulated by the kernel.
 
--   Running → Ready
+A task can be in any of the following states:
 
-    When a task with a higher priority is created or recovered, tasks will be scheduled. The task with the highest priority in the Ready queue changes to the Running state. The originally running task changes to the Ready state and remains in the Ready queue.
+- Ready: The task is in the ready queue, waiting for execution by a CPU.
 
--   Running → Dead
+- Running: The task is being executed.
 
-    When a running task is complete, it changes to the Dead state. The Dead state includes normal exit state as the task is complete and the Invalid state. For example, if a task is complete but is not automatically deleted, the task is in the Invalid state.
+- Blocked: The task is not in the ready queue. The task may be suspended, delayed, waiting for a semaphore, waiting to read from or write into a queue, or reading from or writing into an event.
 
--   Blocked → Dead
+- Dead: The task execution is complete and waiting for the system to reclaim resources.
 
-    If an API is called to delete a blocked task, the task state change from Blocked to Dead.
+**Task State Transitions**
 
+**Figure 1** Task state transition<br>
+
+  ![](figures/task-state-transitions.png "task-state-transitions")
+
+The task state transition process is as follows:
+
+- Ready → Running
+  
+  A task enters Ready state once created. When task switching occurs, the task with the highest priority in the Ready queue will be executed. The task being executed enters the Running state and is removed from the Ready queue.
+- Running → Blocked
+  
+  When a running task is blocked (suspended, delayed, or reading semaphores), it will be inserted to the blocked task queue and changes from the Running state to the Blocked state. Then, task switching is triggered to run the task with the highest priority in the Ready queue.
+- Blocked → Ready (Blocked → Running)
+  
+  When a blocked task is recovered (for example, the task is resumed, the delay period or semaphore read period times out, or the task successfully reads a semaphore), the task will be added to the Ready queue and change from the Blocked state to the Ready state. If the priority of the recovered task is higher than that of the running task, task switching will be triggered to run the recovered task. Then, the task changes from the Ready state to the Running state.
+- Ready → Blocked
+  
+  When a task in the Ready state is blocked (suspended), the task changes to the Blocked state and is deleted from the Ready queue. The blocked task will not be scheduled until it is recovered.
+- Running → Ready
+  
+  When a task with a higher priority is created or recovered, tasks will be scheduled. The task with the highest priority in the Ready queue changes to the Running state. The originally running task changes to the Ready state and remains in the Ready queue.
+- Running → Dead
+  
+  When a running task is complete, it changes to the Dead state. The Dead state includes normal exit state as the task is complete and the Invalid state. For example, if a task is complete but is not automatically deleted, the task is in the Invalid state.
+- Blocked → Dead
+  
+  If an API is called to delete a blocked task, the task state change from Blocked to Dead.
 
 **Task ID**
 
@@ -83,81 +86,84 @@ Resources, such as registers, used during the running of a task. When a task is
 
 **Task Control Block**
 
-Each task has a task control block \(TCB\). A TCB contains task information, such as context stack pointer, state, priority, ID, name, and stack size. The TCB reflects the running status of a task.
+Each task has a task control block (TCB). A TCB contains task information, such as context stack pointer, state, priority, ID, name, and stack size. The TCB reflects the running status of a task.
 
 **Task Switching**
 
 Task switching involves actions, such as obtaining the task with the highest priority in the Ready queue, saving the context of the switched-out task, and restoring the context of the switched-in task.
 
-### Task Running Mechanism<a name="section123321315152219"></a>
+
+### Task Running Mechanism
 
 When a task is created, the system initializes the task stack and presets the context. The system places the task entry function in the corresponding position so that the function is executed when the task enters the running state for the first time.
 
+
 ## Available APIs
 
 The following table describes APIs available for the OpenHarmony LiteOS-M task module. For more details about the APIs, see the API reference.
 
-**Table 1** APIs of the task management module
-
-| Category| API| Description|
-| -------- | -------- | -------- |
-| Creating or deleting a task| LOS_TaskCreateOnly | Creates a task and suspends the task to disable scheduling of the task. To enable scheduling of the task, call **LOS_TaskResume** to make the task enter the Ready state.|
-|  | LOS_TaskCreate | Creates a task and places the task in the Ready state. If there is no task with a higher priority in the Ready queue, the task will be executed.|
-|  | LOS_TaskDelete | Deletes a task.|
-| Controlling task status| LOS_TaskResume | Resumes a suspended task to place it in the Ready state.|
-|  | LOS_TaskSuspend | Suspends the specified task and performs task switching.|
-|  | LOS_TaskJoin | Suspends this task till the specified task is complete and the task control block resources are reclaimed.|
-| | LOS_TaskDetach | Changes the task attribute from **joinable** to **detach**. After the task of the **detach** attribute is complete, the task control block resources will be automatically reclaimed.|
-|  | LOS_TaskDelay | Makes a task wait for a period of time (in ticks) and releases CPU resources. When the delay time expires, the task enters the Ready state again. The input parameter is the number of ticks.|
-|  | LOS_Msleep | Converts the input number of milliseconds into number of ticks, and use the result to call **LOS_TaskDelay**.|
-|  | LOS_TaskYield | Sets the time slice of the current task to **0** to release CPU resources and schedule the task with the highest priority in the Ready queue to run.|
-| Controlling task scheduling| LOS_TaskLock | Locks task scheduling. However, tasks can still be interrupted.|
-|  | LOS_TaskUnlock | Unlocks task scheduling.|
-|  | LOS_Schedule | Triggers task scheduling|
-| Controlling task priority| LOS_CurTaskPriSet | Sets the priority for the current task.|
-|  | LOS_TaskPriSet | Sets the priority for a specified task.|
-|  | LOS_TaskPriGet | Obtains the priority of a specified task.|
-| Obtaining Job information| LOS_CurTaskIDGet | Obtains the ID of the current task.|
-|  | LOS_NextTaskIDGet | Obtains the ID of the task with the highest priority in the Ready queue.|
-|  | LOS_NewTaskIDGet | Same as **LOS_NextTaskIDGet**.|
-|  | LOS_CurTaskNameGet | Obtains the name of the current task.|
-|  | LOS_TaskNameGet | Obtains the name of a specified task.|
-|  | LOS_TaskStatusGet | Obtains the state of a specified task.|
-|  | LOS_TaskInfoGet | Obtains information about a specified task, including the task state, priority, stack size, stack pointer (SP), task entry function, and used stack space.|
-|  | LOS_TaskIsRunning | Checks whether the task module has started scheduling.|
-| Updating task information| LOS_TaskSwitchInfoGet | Obtains task switching information. The macro **LOSCFG_BASE_CORE_EXC_TSK_SWITCH** must be enabled.|
-| Reclaiming task stack resources| LOS_TaskResRecycle | Reclaims all task stack resources.|
+  **Table 1** APIs of the task management module
+
+| Category| Description|
+| -------- | -------- |
+| Creating or deleting a task| **LOS_TaskCreateOnly**: creates a task and places the task in the Ready state. If there is no task with a higher priority in the Ready queue, the task will be executed.<br>**LOS_TaskCreate**: creates a task and places the task in the Ready state. If there is no task with a higher priority in the Ready queue, the task will be executed.<br>**LOS_TaskDelete**: deletes a task.|
+| Controlling task status| **LOS_TaskResume**: resumes a suspended task to place the task in the Ready state.<br>**LOS_TaskSuspend**: suspends the specified task and performs task switching.<br>**LOS_TaskJoin**: suspends this task till the specified task is complete and the task control block resources are reclaimed.<br>**LOS_TaskDelay**: makes a task wait for a period of time (in ticks) and releases CPU resources. When the delay timer expires, the task enters the Ready state again. The input parameter is the number of ticks.<br>**LOS_Msleep**: converts the input parameter number of milliseconds into number of ticks, and use the result to call **LOS_TaskDelay**.<br>**LOS_TaskYield**: sets the time slice of the current task to **0** to release CPU resources and schedule the task with the highest priority in the Ready queue to run.|
+| Controlling task scheduling| **LOS_TaskLock**: locks task scheduling. However, tasks can still be interrupted.<br>**LOS_TaskUnlock**: unlocks task scheduling.<br>**LOS_Schedule**: triggers task scheduling.|
+| Controlling task priority| **LOS_CurTaskPriSet**: sets the priority for the current task.<br>**LOS_TaskPriSet**: sets the priority for a specified task.<br>**LOS_TaskPriGet**: obtains the priority of a specified task.|
+| Obtaining Job information| **LOS_CurTaskIDGet**: obtains the ID of the current task.<br>**LOS_NextTaskIDGet**: obtains the ID of the task with the highest priority in the Ready queue.<br>**LOS_NewTaskIDGet**: equivalent to **LOS_NextTaskIDGet**.<br>**LOS_CurTaskNameGet**: obtains the name of the current task.<br>**LOS_TaskNameGet**: obtains the name of a task.<br>**LOS_TaskStatusGet**: obtains the state of a task.<br>**LOS_TaskInfoGet**: obtains information about a specified task, including the task state, priority, stack size, stack pointer (SP), task entry function, and used stack space.<br>**LOS_TaskIsRunning**: checks whether the task module has started scheduling.|
+| Updating task information| **LOS_TaskSwitchInfoGet**: obtains task switching information. The macro **LOSCFG_BASE_CORE_EXC_TSK_SWITCH** must be enabled.|
 
 
 ## How to Develop
 
 The typical development process of the task module is as follows:
 
-1.  Use **LOS\_TaskLock** to lock task scheduling and prevent high-priority tasks from being scheduled.
-2.  Use **LOS\_TaskCreate** to create a task.
-3.  Use **LOS\_TaskUnlock** to unlock task scheduling so that tasks can be scheduled by priority.
-4.  Use **LOS\_TaskDelay** to delay a task.
-5.  Use **LOS\_TaskSuspend** to suspend a task.
-6.  Use **LOS\_TaskResume** to resume the suspended task.
-
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->-   Running idle tasks reclaims the TCBs and stacks in the to-be-recycled linked list.
->-   The task name is a pointer without memory space allocated. When setting the task name, do not assign the local variable address to the task name pointer.
->-   The task stack size is 8-byte aligned. Follow the "nothing more and nothing less" principle while determining the task stack size.
->-   A running task cannot be suspended if task scheduling is locked.
->-   Idle tasks and software timer tasks cannot be suspended or deleted.
->-   In an interrupt handler or when a task is locked, the operation of calling **LOS\_TaskDelay** fails.
->-   Locking task scheduling does not disable interrupts. Tasks can still be interrupted while task scheduling is locked.
->-   Locking task scheduling must be used together with unlocking task scheduling.
->-   Task scheduling may occur while a task priority is being set.
->-   The maximum number of tasks that can be set for the operating system is the total number of tasks of the operating system, not the number of tasks available to users. For example, if the system software timer occupies one more task resource, the number of task resources available to users decreases by one.
->-   **LOS\_CurTaskPriSet** and **LOS\_TaskPriSet** cannot be used in interrupts or used to modify the priorities of software timer tasks.
->-   If the task corresponding to the task ID sent to **LOS\_TaskPriGet** has not been created or the task ID exceeds the maximum number of tasks, **-1** will be returned.
->-   Resources such as a mutex or a semaphore allocated to a task must have been released before the task is deleted.
+1. Use **LOS_TaskLock** to lock task scheduling and prevent high-priority tasks from being scheduled.
+
+2. Use **LOS_TaskCreate** to create a task.
+
+3. Use **LOS_TaskUnlock** to unlock task scheduling so that tasks can be scheduled by priority.
+
+4. Use **LOS_TaskDelay** to delay a task.
+
+5. Use **LOS_TaskSuspend** to suspend a task.
+
+6. Use **LOS_TaskResume** to resume the suspended task.
+
+>![](../public_sys-resources/icon-note.gif) **NOTE**<br/>
+> - Running idle tasks reclaims the TCBs and stacks in the to-be-recycled linked list.
+> 
+> - The task name is a pointer without memory space allocated. When setting the task name, do not assign the local variable address to the task name pointer.
+> 
+> - The task stack size is 8-byte aligned. Follow the "nothing more and nothing less" principle while determining the task stack size.
+> 
+> - A running task cannot be suspended if task scheduling is locked.
+> 
+> - Idle tasks and software timer tasks cannot be suspended or deleted.
+> 
+> - In an interrupt handler or when a task is locked, the operation of calling **LOS_TaskDelay** fails.
+> 
+> - Locking task scheduling does not disable interrupts. Tasks can still be interrupted while task scheduling is locked.
+> 
+> - Locking task scheduling must be used together with unlocking task scheduling.
+> 
+> - Task scheduling may occur while a task priority is being set.
+> 
+> - The maximum number of tasks that can be set for the operating system is the total number of tasks of the operating system, not the number of tasks available to users. For example, if the system software timer occupies one more task resource, the number of task resources available to users decreases by one.
+> 
+> - **LOS_CurTaskPriSet** and **LOS_TaskPriSet** cannot be used in interrupts or used to modify the priorities of software timer tasks.
+> 
+> - If the task corresponding to the task ID sent to **LOS_TaskPriGet** has not been created or the task ID exceeds the maximum number of tasks, **-1** will be returned.
+> 
+> - Resources such as a mutex or a semaphore allocated to a task must have been released before the task is deleted.
+
 
 ## Development Example
 
-This example describes the priority-based task scheduling and use of task-related APIs, including creating, delaying, suspending, and resuming two tasks with different priorities, and locking/unlocking task scheduling. The sample code is as follows:
+This example describes the priority-based task scheduling and use of task-related APIs, including creating, delaying, suspending, and resuming two tasks with different priorities, and locking/unlocking task scheduling. 
+
+The sample code is as follows:
+
 
 ```
 UINT32 g_taskHiId;
@@ -249,7 +255,7 @@ UINT32 Example_TskCaseEntry(VOID)
     initParam.pcName = "TaskLo";
     initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;
 
-    /*Create a low-priority task. The task will not be executed immediately after being created, because task scheduling is locked. */
+    /* Create a low-priority task. The task will not be executed immediately after being created, because task scheduling is locked. */
     ret = LOS_TaskCreate(&g_taskLoId, &initParam);
     if (ret != LOS_OK) {
         LOS_TaskUnlock();
@@ -271,10 +277,12 @@ UINT32 Example_TskCaseEntry(VOID)
 }
 ```
 
+
 ### Verification
 
 The development is successful if the return result is as follows:
 
+
 ```
 LOS_TaskLock() Success!
 Example_TaskHi create Success!
diff --git a/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md
index 1bf198e1fa337518d06a4062c74a2cf290630b4c..3e6ab8c31e41128a1f15f10a2d396cb74dd7bc7f 100644
--- a/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md
+++ b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md
@@ -1,17 +1,26 @@
 # Dynamic Loading
 
+
 ## Basic Concepts
 
-In small devices with limited hardware resources, dynamic algorithm deployment capability is required to solve the problem that multiple algorithms cannot be deployed at the same time. The LiteOS-M kernel uses the Executable and Linkable Format \(ELF\) loading because it is easy to use and compatible with a wide variety of platforms. The LiteOS-M provides APIs similar to **dlopen** and **dlsym**. Apps can load and unload required algorithm libraries by using the APIs provided by the dynamic loading module. As shown in the following figure, the app obtains the corresponding information output through the API required by the third-party algorithm library. The third-party algorithm library depends on the basic APIs provided by the kernel, such as **malloc**. After the app loads the API and relocates undefined symbols, it can call the API to complete the function. The dynamic loading component supports only the Arm architecture. In addition, the signature and source of the shared library to be loaded must be verified to ensure system security.
+In small devices with limited hardware resources, dynamic algorithm deployment capability is required to allow multiple algorithms to     be deployed at the same time. The LiteOS-M kernel uses the Executable and Linkable Format (ELF) loading because it is easy to use and compatible with a wide variety of platforms. 
+
+The LiteOS-M provides APIs similar to **dlopen** and **dlsym**. Apps can load and unload required algorithm libraries by using the APIs provided by the dynamic loading module. As shown in the following figure, the app obtains the corresponding information output through the API required by the third-party algorithm library. The third-party algorithm library depends on the basic APIs provided by the kernel, such as **malloc**. After the app loads the API and relocates undefined symbols, it can call the API to complete the function. 
+
+The dynamic loading component supports only the Arm architecture. In addition, the signature and source of the shared library to be loaded must be verified to ensure system security.
+
+  **Figure 1** LiteOS-M kernel dynamic loading architecture
+
+  ![](figures/liteos-m-kernel-dynamic-loading-architecture.png "liteos-m-kernel-dynamic-loading-architecture")
 
-**Figure 1** LiteOS-M kernel dynamic loading architecture 
-![](figures/liteos-m-kernel-dynamic-loading-architecture.png "liteos-m-kernel-dynamic-loading-architecture")
 
 ## Working Principles
 
+
 ### Exporting the Symbol Table
 
-The kernel needs to proactively expose the API required by the dynamic library when the shared library calls a kernel API, as shown in the following figure. This mechanism compiles the symbol information to the specified section and calls the **SYM\_EXPORT** macro to export information of the specified symbol. The symbol information is described in the structure **SymInfo**. Its members include the symbol name and symbol address information. The macro **SYM\_EXPORT** imports the symbol information to the **.sym.\*** section by using the **\_\_attribute\_\_** compilation attribute.
+The kernel needs to proactively expose the API required by the dynamic library when the shared library calls a kernel API, as shown in the following figure. This mechanism compiles the symbol information to the specified section and calls the **SYM_EXPORT** macro to export information of the specified symbol. The symbol information is described in the structure **SymInfo**, which includes the symbol name and address information. The macro **SYM_EXPORT** imports the symbol information to the **.sym.*** section by using **__attribute__**.
+
 
 ```
 typedef struct {
@@ -26,12 +35,15 @@ const SymInfo sym_##func __attribute__((section(".sym."#func))) = { \
 };
 ```
 
-**Figure 2** Exported symbol table information 
-![](figures/exported-symbol-table-information.png "exported-symbol-table-information")
+  **Figure 2** Exported symbol table
+
+  ![](figures/exported-symbol-table-information.png "exported-symbol-table-information")
+
 
 ### Loading an ELF File
 
-During the loading process, the LOAD section to be loaded to the memory is obtained based on the ELF file handle and the section offset of the program header table. Generally, there are two sections: read-only section and read-write section. You can run the **readelf -l** command to view the LOAD section information of the ELF file. The physical memory is requested according to the related alignment attributes. Then, a code section or a data segment is written into the memory based on the loading base address and an offset of each section.
+The **LOAD** section to be loaded to the memory can be obtained based on the ELF file handle and the section offset of the program header table. Generally, there are two sections: read-only and read-write. You can run the **readelf -l** command to view the LOAD section information of the ELF file. The physical memory is requested according to the related alignment attributes. Then, a code section or a data segment is written into the memory based on the loading base address and an offset of each section.
+
 
 ```
 $ readelf -l lib.so
@@ -43,8 +55,7 @@ There are 4 program headers, starting at offset 52
 Program Headers:
   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
   EXIDX          0x000760 0x00000760 0x00000760 0x00008 0x00008 R   0x4
-  LOAD           0x000000 0x00000000 0x00000000 0x0076c 0x0076c R E 0x10000
-  LOAD           0x00076c 0x0001076c 0x0001076c 0x0010c 0x00128 RW  0x10000
+  LOAD           0x000000 0x00000000 0x00000000 0x0076c 0x0076c R E 0x10000LOAD           0x00076c 0x0001076c 0x0001076c 0x0010c 0x00128 RW  0x10000
   DYNAMIC        0x000774 0x00010774 0x00010774 0x000c8 0x000c8 RW  0x4
 
  Section to Segment mapping:
@@ -55,29 +66,45 @@ Program Headers:
    03     .dynamic
 ```
 
-**Figure 3** Process of loading an ELF file 
-![](figures/process-of-loading-an-elf-file.png "process-of-loading-an-elf-file")
+  **Figure 3** Process of loading an ELF file<br>
+  ![](figures/process-of-loading-an-elf-file.png "process-of-loading-an-elf-file")
+
 
-### ELF File Link
+### ELF File Linking
 
 A relocation table is obtained by using a **.dynamic** section of the ELF file. Each entry that needs to be relocated in the table is traversed. Then, the symbol is searched, based on the symbol name that needs to be relocated, in the shared library and the exported symbol table provided by the kernel. The relocation information is updated based on the symbol found.
 
-**Figure 4** ELF file linking process 
-![](figures/elf-file-linking-process.png "elf-file-linking-process")
+  **Figure 4** ELF file linking process
+
+  ![](figures/elf-file-linking-process.png "elf-file-linking-process")
+
 
 ## ELF Specifications
 
+
 ### ELF Type
 
-When compiling a shared library, you can add **-fPIC** \(a compilation option\) to compile location-independent code. The shared library file type is **ET\_DYN**, which can be loaded to any valid address range.
+When compiling a shared library, you can add **-fPIC** (a compilation option) to compile location-independent code. The shared library file type is **ET_DYN**, which can be loaded to any valid address range.
 
 Example: **arm-none-eabi-gcc -fPIC –shared –o lib.so lib.c**
 
+
 ### Options for Linking
 
-1.  **-nostdlib**: Do not use the lib library in the compiler when linking.
-2.  **-nostartfiles**: Do not use the startup files in the compiler when linking.
-3.  **-fPIC**: compiles location-independent shared libraries.
-4.  **-z max-page-size=4**: sets the number of alignment bytes of the loadable sections in the binary file to **4**. This setting saves memory and can be used for a dynamic library.
-5.  **-mcpu=** specifies the CPU architecture.
+- **-nostdlib**: Do not use the lib library in the compiler when linking.
+
+- **-nostartfiles**: Do not use the startup files in the compiler when linking.
+
+- **-fPIC**: compiles location-independent shared libraries.
+
+- **-z max-page-size=4**: sets the number of alignment bytes of the loadable sections in the binary file to **4**. This setting saves memory and can be used for a dynamic library.
+
+- **-mcpu=** specifies the CPU architecture.
+
+
+## Constraints
+
 
+- Applications cannot be loaded. Only shared libraries can be loaded.
+- The shared library to be loaded cannot depend on the libc library or other shared libraries in the compiler. It can depend only on the external APIs provided by the kernel (provided by the exported symbol table).
+- This feature depends on the cross compiler and file system.
diff --git a/en/device-dev/kernel/kernel-mini-extend-file-fat.md b/en/device-dev/kernel/kernel-mini-extend-file-fat.md
index 5f191076a6e75743b254e0b8611698de701bb8e0..b7a9bffdd5e106d1afedff3f960b4f29d9b8dca2 100644
--- a/en/device-dev/kernel/kernel-mini-extend-file-fat.md
+++ b/en/device-dev/kernel/kernel-mini-extend-file-fat.md
@@ -1,20 +1,27 @@
 # FAT
 
+
 ## Basic Concepts
 
-File Allocation Table \(FAT\) is a file system developed for personal computers. It consists of the DOS Boot Record \(DBR\) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, number of the next cluster of the file, whether the file ends with the cluster. The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bits per cluster within the FAT, respectively. The FAT file system supports multiple media, especially removable media \(such as USB flash drives, SD cards, and removable hard drives\). The FAT file system ensures good compatibility between embedded devices and desktop systems \(such as Windows and Linux\) and facilitates file management.
+File Allocation Table (FAT) is a file system developed for personal computers. It consists of the DOS Boot Record (DBR) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, number of the next cluster of the file, whether the file ends with the cluster. 
+
+The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bits per cluster within the FAT, respectively. The FAT file system supports multiple media, especially removable media (such as USB flash drives, SD cards, and removable hard drives). The FAT file system ensures good compatibility between embedded devices and desktop systems (such as Windows and Linux) and facilitates file management.
 
 The OpenHarmony kernel supports FAT12, FAT16, and FAT32 file systems. These file systems require a tiny amount of code to implement, use less resources, support a variety of physical media, and are tailorable and compatible with Windows and Linux systems. They also support identification of multiple devices and partitions. The kernel supports multiple partitions on hard drives and allows creation of the FAT file system on the primary partition and logical partition.
 
+
 ## Development Guidelines
 
-### Adaptation of Drivers
 
-The use of the FAT file system requires support from the underlying MultiMediaCard \(MMC\) drivers. To run FatFS on a board with an MMC storage device, you must:
+### Driver Adaptation
+
+The use of the FAT file system requires support from the underlying MultiMedia Card (MMC) drivers. To run FatFS on a board with an MMC storage device, you must:
 
-1. Implement the **disk\_status**, **disk\_initialize**, **disk\_read**, **disk\_write**, and **disk\_ioctl** APIs to adapt to the embedded MMC \(eMMC\) drivers on the board.
+1. Implement the **disk_status**, **disk_initialize**, **disk_read**, **disk_write**, and **disk_ioctl** APIs to adapt to the embedded MMC (eMMC) drivers on the board.
+2. Add the **fs_config.h** file with information such as **FS_MAX_SS** (maximum sector size of the storage device) and **FF_VOLUME_STRS** (partition names) configured. 
+
+The following is an example:
 
-2. Add the **fs\_config.h** file with information such as **FS\_MAX\_SS** \(maximum sector size of the storage device\) and **FF\_VOLUME\_STRS** \(partition names\) configured. The following is an example:
 
 ```
 #define FF_VOLUME_STRS     "system", "inner", "update", "user"
@@ -22,63 +29,70 @@ The use of the FAT file system requires support from the underlying MultiMediaCa
 #define FAT_MAX_OPEN_FILES 50
 ```
 
+
 ### How to Develop
 
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->-   Note the following when managing FatFS files and directories:
->    -   A file cannot exceed 4 GB.
->    -   **FAT\_MAX\_OPEN\_FILES** specifies the maximum number files you can open at a time, and **FAT\_MAX\_OPEN\_DIRS** specifies the maximum number of folders you can open at a time.
->    -   Root directory management is not supported. File and directory names start with the partition name. For example, **user/testfile** indicates the file or directory **testfile** in the **user** partition.
->    -   To open a file multiple times, use **O\_RDONLY** \(read-only mode\). **O\_RDWR** or **O\_WRONLY** \(writable mode\) can open a file only once.
->    -   The read and write pointers are not separated. If a file is open in **O\_APPEND** mode, the read pointer is also at the end of the file. If you want to read the file from the beginning, you must manually set the position of the read pointer.
->    -   File and directory permission management is not supported.
->    -   The **stat** and **fstat** APIs do not support query of the modification time, creation time, and last access time. The Microsoft FAT protocol does not support time before A.D. 1980.
->-   Note the following when mounting and unmounting FatFS partitions:
->    -   Partitions can be mounted with the read-only attribute. When the input parameter of the **mount** function is **MS\_RDONLY**, all APIs with the write attribute, such as **write**, **mkdir**, **unlink**, and **open** with **non-O\_RDONLY** attributes, will be rejected.
->    -   You can use the **MS\_REMOUNT** flag with **mount** to modify the permission for a mounted partition.
->    -   Before unmounting a partition, ensure that all directories and files in the partition are closed.
->    -   You can use **umount2** with the **MNT\_FORCE** parameter to forcibly close all files and folders and unmount the partition. However, this may cause data loss. Therefore, exercise caution when running **umount2**.
->-   The FAT file system supports re-partitioning and formatting of storage devices using **fatfs\_fdisk** and **fatfs\_format**.
->    -   If a partition is mounted before being formatted using **fatfs\_format**, you must close all directories and files in the partition and unmount the partition first.
->    -   Before calling **fatfs\_fdisk**, ensure that all partitions in the device are unmounted.
->    -   Using **fatfs\_fdisk** and **fatfs\_format** may cause data loss. Exercise caution when using them.
+> ![](public_sys-resources/icon-note.gif) **NOTE**<br>
+>
+> Note the following when managing FatFS files and directories:
+> - A file cannot exceed 4 GB.
+> - **FAT\_MAX\_OPEN\_FILES** specifies the maximum number files you can open at a time, and **FAT\_MAX\_OPEN\_DIRS** specifies the maximum number of folders you can open at a time.
+> - Root directory management is not supported. File and directory names start with the partition name. For example, **user/testfile** indicates the file or directory **testfile** in the **user** partition.
+> - To open a file multiple times, use **O_RDONLY** (read-only mode).  **O_RDWR** or **O_WRONLY** (writable mode) can open a file only once.
+> - The read and write pointers are not separated. If a file is open in **O_APPEND** mode, the read pointer is also at the end of the file. If you want to read the file from the beginning, you must manually set the position of the read pointer.
+> - File and directory permission management is not supported.
+> - The **stat** and **fstat** APIs do not support query of the modification time, creation time, and last access time. The Microsoft FAT protocol does not support time before A.D. 1980.
+>
+> Note the following when mounting and unmounting FatFS partitions:
+> - Partitions can be mounted with the read-only attribute. When the input parameter of the **mount** function is **MS_RDONLY**, all APIs with the write attribute, such as **write**, **mkdir**, **unlink**, and **open** with **non-O_RDONLY** attributes, will be rejected.
+> - You can use the **MS_REMOUNT** flag with **mount** to modify the permission for a mounted partition.
+> - Before unmounting a partition, ensure that all directories and files in the partition are closed.
+> - You can use **umount2** with the **MNT_FORCE** parameter to forcibly close all files and folders and unmount the partition. However, this may cause data loss. Therefore, exercise caution when running **umount2**.
+>
+> The FAT file system supports re-partitioning and formatting of storage devices using **fatfs_fdisk** and **fatfs_format**.
+> - If a partition is mounted before being formatted using **fatfs_format**, you must close all directories and files in the partition and unmount the partition first.
+> - Before calling **fatfs_fdisk**, ensure that all partitions in the device are unmounted.
+> - Using **fatfs_fdisk** and **fatfs_format** may cause data loss. Exercise caution when using them.
+
 
 ## Development Example
 
+
 ### Example Description
 
 This example implements the following:
 
-1.  Create the **user/test** directory.
-2.  Create the **file.txt** file in the **user/test** directory.
-3.  Write "Hello OpenHarmony!" at the beginning of the file.
-4.  Save the update of the file to the device.
-5.  Set the offset to the beginning of the file.
-6.  Read the file.
-7.  Close the file.
-8.  Delete the file.
-9.  Delete the directory.
+1. Create the **user/test** directory.
+2. Create the **file.txt** file in the **user/test** directory.
+3. Write **Hello OpenHarmony!** at the beginning of the file.
+4. Save the file to a device.
+5. Set the offset to the start position of the file.
+6. Read the file.
+7. Close the file.
+8. Delete the file.
+9. Delete the directory.
+
 
 ### Sample Code
 
-Prerequisites
+**Prerequisites**
 
--   The MMC device partition is mounted to the **user** directory.
+The MMC device partition is mounted to the **user** directory.
 
-The sample code is as follows:
+ The sample code is as follows:
 
-```
-#include <stdio.h>
-#include <string.h>
-#include "sys/stat.h"
-#include "fcntl.h"
-#include "unistd.h"
+  ```
+  #include <stdio.h>
+  #include <string.h>
+  #include "sys/stat.h"
+  #include "fcntl.h"
+  #include "unistd.h"
 
-#define LOS_OK 0
-#define LOS_NOK -1
+  #define LOS_OK 0
+  #define LOS_NOK -1
 
-int FatfsTest(void) 
-{     
+  int FatfsTest(void) 
+  {     
     int ret;
     int fd = -1;
     ssize_t len;
@@ -88,14 +102,14 @@ int FatfsTest(void)
     char writeBuf[20] = "Hello OpenHarmony!";
     char readBuf[20] = {0};
 
-    /* Create the user/test directory.*/
+    /* Create the user/test directory. */
     ret = mkdir(dirName, 0777);
     if (ret != LOS_OK) {
         printf("mkdir failed.\n");
         return LOS_NOK;
     }
 
-    /* Create the file user/test/file.txt and make it readable and writable.*/
+    /* Create a readable and writable file named file.txt in the user/test/ directory. */
     fd = open(fileName, O_RDWR | O_CREAT, 0777);
     if (fd < 0) {
         printf("open file failed.\n");
@@ -109,21 +123,21 @@ int FatfsTest(void)
         return LOS_NOK;
     }
 
-    /* Save the update of the file to the device.*/
+    /* Save the file to a storage device. */
     ret = fsync(fd);
     if (ret != LOS_OK) {
         printf("fsync failed.\n");
         return LOS_NOK;
     }
 
-    /* Move the read/write pointer to the file header. */
+    /* Move the read/write pointer to the beginning of the file. */
     off = lseek(fd, 0, SEEK_SET);
     if (off != 0) {
         printf("lseek failed.\n");
         return LOS_NOK;
     }
 
-    /* Read the file content, with the same size as readBuf, to readBuf.*/
+    /* Read the file content with the length of readBuf to readBuf. */
     len = read(fd, readBuf, sizeof(readBuf));
     if (len != strlen(writeBuf)) {
         printf("read file failed.\n");
@@ -138,14 +152,14 @@ int FatfsTest(void)
         return LOS_NOK;
     }
 
-    /*Delete the file user/test/file.txt.*/
+    /* Delete the file file.txt from the user/test directory. */
     ret = unlink(fileName);
     if (ret != LOS_OK) {
         printf("unlink failed.\n");
         return LOS_NOK;
     }
 
-    /*Delete the user/test directory.*/
+    /* Delete the user/test directory. */
     ret = rmdir(dirName);
     if (ret != LOS_OK) {
         printf("rmdir failed.\n");
@@ -153,14 +167,15 @@ int FatfsTest(void)
     }
 
     return LOS_OK;
-}
-```
+    }
+  ```
+
 
 ### Verification
 
 The development is successful if the return result is as follows:
 
+
 ```
 Hello OpenHarmony!
 ```
-
diff --git a/en/device-dev/kernel/kernel-mini-extend-file-lit.md b/en/device-dev/kernel/kernel-mini-extend-file-lit.md
index 7d51b76ab3167951eeaa72d839481a4630ec2390..599c94b5a12ea632374a03fcf0ca3e03afea7d8b 100644
--- a/en/device-dev/kernel/kernel-mini-extend-file-lit.md
+++ b/en/device-dev/kernel/kernel-mini-extend-file-lit.md
@@ -1,15 +1,17 @@
 # LittleFS
 
+
 ## Basic Concepts
 
-LittleFS is a small file system designed for flash. By combining the log-structured file system and the copy-on-write \(COW\) file system, LittleFS stores metadata in log structure and data in the COW structure. This special storage empowers LittleFS high power-loss resilience. LittleFS uses the statistical wear leveling algorithm when allocating COW data blocks, effectively prolonging the service life of flash devices. LittleFS is designed for small-sized devices with limited resources, such as ROM and RAM. All RAM resources are allocated through a buffer with the fixed size \(configurable\). That is, the RAM usage does not grow with the file system.
+LittleFS is a small file system designed for flash. By combining the log-structured file system and the copy-on-write (COW) file system, LittleFS stores metadata in log structure and data in the COW structure. This special storage empowers LittleFS high power-loss resilience. LittleFS uses the statistical wear leveling algorithm when allocating COW data blocks, effectively prolonging the service life of flash devices. LittleFS is designed for small-sized devices with limited resources, such as ROM and RAM. All RAM resources are allocated through a buffer with the fixed size (configurable). That is, the RAM usage does not grow with the file system.
 
 LittleFS is a good choice when you look for a flash file system that is power-cut resilient and has wear leveling support on a small device with limited resources.
 
 ## Development Guidelines
 
-When porting LittleFS to a new hardware device, you need to declare  **lfs\_config**:
+When porting LittleFS to a new hardware device, you need to declare **lfs_config**:
 
+  
 ```
 const struct lfs_config cfg = {
     // block device operations
@@ -29,20 +31,21 @@ const struct lfs_config cfg = {
 };
 ```
 
-**.read**,  **.prog**,  **.erase**, and  **.sync**  correspond to the read, write, erase, and synchronization APIs at the bottom layer of the hardware platform, respectively.
+**.read**, **.prog**, **.erase**, and **.sync** correspond to the read, write, erase, and synchronization APIs at the bottom layer of the hardware platform, respectively.
 
-**read\_size**  indicates the number of bytes read each time. You can set it to a value greater than the physical read unit to improve performance. This value determines the size of the read cache. However, if the value is too large, more memory is consumed.
+**read_size** indicates the number of bytes read each time. You can set it to a value greater than the physical read unit to improve performance. This value determines the size of the read cache. However, if the value is too large, more memory is consumed.
 
-**prog\_size**  indicates the number of bytes written each time. You can set it to a value greater than the physical write unit to improve performance. This value determines the size of the write cache and must be an integral multiple of  **read\_size**. However, if the value is too large, more memory is consumed.
+**prog_size** indicates the number of bytes written each time. You can set it to a value greater than the physical write unit to improve performance. This value determines the size of the write cache and must be an integral multiple of **read_size**. However, if the value is too large, more memory is consumed.
 
-**block\_size**: indicates the number of bytes in each erase block. The value can be greater than that of the physical erase unit. However, a smaller value is recommended because each file occupies at least one block. The value must be an integral multiple of  **prog\_size**.
+**block_size**: indicates the number of bytes in each erase block. The value can be greater than that of the physical erase unit. However, a smaller value is recommended because each file occupies at least one block. The value must be an integral multiple of **prog_size**.
 
-**block\_count**  indicates the number of blocks that can be erased, which depends on the capacity of the block device and the size of the block to be erased \(**block\_size**\).
+**block_count** indicates the number of blocks that can be erased, which depends on the capacity of the block device and the size of the block to be erased (**block_size**).
 
-## Sample Code
 
-The sample code is as follows:
+## Sample Code
 
+  The sample code is as follows:
+  
 ```
 #include "lfs.h"
 #include "stdio.h"
@@ -89,11 +92,12 @@ int main(void) {
 }
 ```
 
-### Verification
+
+ **Verification**
 
 The development is successful if the return result is as follows:
 
+  
 ```
 Say hello 1 times.
 ```
-
diff --git a/en/device-dev/kernel/kernel-mini-memory-perf.md b/en/device-dev/kernel/kernel-mini-memory-perf.md
index 3da1dd5dc276a844ed393af9b7d73bed23a4b767..95d097792307376342a55eefcfde96f7f921952b 100644
--- a/en/device-dev/kernel/kernel-mini-memory-perf.md
+++ b/en/device-dev/kernel/kernel-mini-memory-perf.md
@@ -3,7 +3,8 @@
 
 ## Basic Concepts
 
-perf is a performance analysis tool. It uses the performance monitoring unit \(PMU\) to count sampling events and collect context information and provides hot spot distribution and hot paths.
+perf is a performance analysis tool. It uses the performance monitoring unit (PMU) to count sampling events and collect context information and provides hot spot distribution and hot paths.
+
 
 ## Working Principles
 
@@ -13,227 +14,142 @@ perf provides two working modes: counting mode and sampling mode.
 
 In counting mode, perf collects only the number of event occurrences and duration. In sampling mode, perf also collects context data and stores the data in a circular buffer. The IDE then analyzes the data and provides information about hotspot functions and paths.
 
+
 ## Available APIs
 
+
 ### Kernel Mode
 
-The perf module of the OpenHarmony LiteOS-A kernel provides the following APIs. For more details about the APIs, see the  [API](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_perf.h)  reference.
-
-**Table  1**  perf module APIs
-
-<a name="table209384411409"></a>
-<table><thead align="left"><tr id="row49387411909"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p142345517111"><a name="p142345517111"></a><a name="p142345517111"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p16234751114"><a name="p16234751114"></a><a name="p16234751114"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p1823555614"><a name="p1823555614"></a><a name="p1823555614"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row17146213111"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p3136111817"><a name="p3136111817"></a><a name="p3136111817"></a>Starting or stopping perf sampling</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p7136415111"><a name="p7136415111"></a><a name="p7136415111"></a>LOS_PerfStart</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p16136111512"><a name="p16136111512"></a><a name="p16136111512"></a>Starts sampling.</p>
-</td>
-</tr>
-<tr id="row5146111214"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p201361616119"><a name="p201361616119"></a><a name="p201361616119"></a>LOS_PerfStop</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1313611114117"><a name="p1313611114117"></a><a name="p1313611114117"></a>Stops sampling.</p>
-</td>
-</tr>
-<tr id="row61461611314"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p7136171816"><a name="p7136171816"></a><a name="p7136171816"></a>Configuring perf sampling events</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p161364119113"><a name="p161364119113"></a><a name="p161364119113"></a>LOS_PerfConfig</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p41361218111"><a name="p41361218111"></a><a name="p41361218111"></a>Sets the type and period of a sampling event.</p>
-</td>
-</tr>
-<tr id="row19146619113"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p21362119112"><a name="p21362119112"></a><a name="p21362119112"></a>Reading sampling data</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p113618119118"><a name="p113618119118"></a><a name="p113618119118"></a>LOS_PerfDataRead</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1113711612"><a name="p1113711612"></a><a name="p1113711612"></a>Reads the sampling data to a specified address.</p>
-</td>
-</tr>
-<tr id="row201465110113"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p121376114114"><a name="p121376114114"></a><a name="p121376114114"></a>Registering a hook for the sampling data buffer</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p71371011513"><a name="p71371011513"></a><a name="p71371011513"></a>LOS_PerfNotifyHookReg</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p16137618118"><a name="p16137618118"></a><a name="p16137618118"></a>Registers the hook to be called when the buffer waterline is reached.</p>
-</td>
-</tr>
-<tr id="row13145911019"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p6137317113"><a name="p6137317113"></a><a name="p6137317113"></a>LOS_PerfFlushHookReg</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p613715120114"><a name="p613715120114"></a><a name="p613715120114"></a>Registers the hook for flushing the cache in the buffer.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-1.  The structure of the perf sampling event is  **PerfConfigAttr**. For details, see  **kernel\\include\\los\_perf.h**.
-2.  The sampling data buffer is a circular buffer, and only the region that has been read in the buffer can be overwritten.
-3.  The buffer has limited space. You can register a hook to provide a buffer overflow notification or perform buffer read operation when the buffer waterline is reached. The default buffer waterline is 1/2 of the buffer size. The sample code is as follows:
-
-    ```
-    VOID Example_PerfNotifyHook(VOID)
-    {
-        CHAR buf[LOSCFG_PERF_BUFFER_SIZE] = {0};
-        UINT32 len;
-        PRINT_DEBUG("perf buffer reach the waterline!\n");
-        len = LOS_PerfDataRead(buf, LOSCFG_PERF_BUFFER_SIZE);
-        OsPrintBuff(buf, len); /* print data */
-    }
-    LOS_PerfNotifyHookReg(Example_PerfNotifyHook);
-    ```
+The Perf module of the OpenHarmony LiteOS-A kernel provides the following functions. For details about the interfaces, see the [API reference](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_perf.h).
 
-4.  If the buffer sampled by perf involves caches across CPUs, you can register a hook for flushing the cache to ensure cache consistency. The sample code is as follows:
+  **Table 1** APIs of the perf module
 
-    ```
-    VOID Example_PerfFlushHook(VOID *addr, UINT32 size)
-    {
-        OsCacheFlush(addr, size); /* platform interface */
-    }
-    LOS_PerfNotifyHookReg(Example_PerfFlushHook);
-    ```
+| API| Description|
+| -------- | -------- |
+| LOS_PerfStart| Starts sampling.|
+| LOS_PerfStop| Stops sampling.|
+| LOS_PerfConfig| Sets the event type and sampling interval.|
+| LOS_PerfDataRead| Reads the sampling data.|
+| LOS_PerfNotifyHookReg| Registers the hook to be called when the buffer waterline is reached.|
+| LOS_PerfFlushHookReg| Registers the hook for flushing the cache in the buffer.|
+
+- The structure of the perf sampling event is **PerfConfigAttr**. For details, see **kernel\include\los_perf.h**.
+
+- The sampling data buffer is a circular buffer, and only the region that has been read in the buffer can be overwritten.
 
-    The API for flushing the cache is configured based on the platform.
+- The buffer has limited space. You can register a hook to provide a buffer overflow notification or perform buffer read operation when the buffer waterline is reached. The default buffer waterline is 1/2 of the buffer size. 
+
+   Example:
+
+   ```
+   VOID Example_PerfNotifyHook(VOID)
+   {
+       CHAR buf[LOSCFG_PERF_BUFFER_SIZE] = {0};
+       UINT32 len;
+       PRINT_DEBUG("perf buffer reach the waterline!\n");
+       len = LOS_PerfDataRead(buf, LOSCFG_PERF_BUFFER_SIZE);
+       OsPrintBuff(buf, len); /* print data */
+   }
+   LOS_PerfNotifyHookReg(Example_PerfNotifyHook);
+   ```
+
+- If the buffer sampled by perf involves caches across CPUs, you can register a hook for flushing the cache to ensure cache consistency. 
+
+   Example:
+
+   ```
+   VOID Example_PerfFlushHook(VOID *addr, UINT32 size)
+   {
+       OsCacheFlush(addr, size); /* platform interface */
+   }
+   LOS_PerfNotifyHookReg(Example_PerfFlushHook);
+   ```
+
+   The API for flushing the cache is configured based on the platform.
 
 
 ### User Mode
 
-The perf character device is located in  **/dev/perf**. You can read, write, and control the user-mode perf by running the following commands on the device node:
 
--   **read**: reads perf data in user mode.
--   **write**: writes user-mode sampling events.
--   **ioctl**: controls the user-mode perf, which includes the following:
+The perf character device is located in **/dev/perf**. You can read, write, and control the user-mode perf by running the following commands on the device node:
+
 
-    ```
-    #define PERF_IOC_MAGIC     'T'
-    #define PERF_START         _IO(PERF_IOC_MAGIC, 1)
-    #define PERF_STOP          _IO(PERF_IOC_MAGIC, 2)
-    ```
+- **read**: reads perf data in user mode.
 
-    The operations correspond to  **LOS\_PerfStart**  and  **LOS\_PerfStop**.
+- **write**: writes user-mode sampling events.
 
+- **ioctl**: controls the user-mode perf, which includes the following:
+  
+  ```
+  #define PERF_IOC_MAGIC     'T'
+  #define PERF_START         _IO(PERF_IOC_MAGIC, 1)
+  #define PERF_STOP          _IO(PERF_IOC_MAGIC, 2)
+  ```
 
-For more details, see  [User-mode Development Example](#user-mode-development-example).
+  The operations correspond to **LOS_PerfStart** and **LOS_PerfStop**.
 
-## Development Guidelines
 
-### Kernel-mode Development Process
+For details, see [User-Mode Development Example](#user-mode-development-example).
+
+
+## How to Develop
+
+
+### Kernel-Mode Development Process
 
 The typical process of enabling perf is as follows:
 
-1.  Configure the macros related to the perf module.
-
-    Configure the perf control macro  **LOSCFG\_KERNEL\_PERF**, which is disabled by default. In the  **kernel/liteos\_a**  directory, run the  **make update\_config**  command, choose  **Kernel**, and select  **Enable Perf Feature**.
-
-    <a name="table06964569614"></a>
-    <table><thead align="left"><tr id="row1697105618610"><th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.1"><p id="p669715610619"><a name="p669715610619"></a><a name="p669715610619"></a>Macro</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.2"><p id="p0697105612614"><a name="p0697105612614"></a><a name="p0697105612614"></a>menuconfig Option</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.3"><p id="p5697175610610"><a name="p5697175610610"></a><a name="p5697175610610"></a>Description</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.4"><p id="p1269712561866"><a name="p1269712561866"></a><a name="p1269712561866"></a>Value</p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row48579520718"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p138411959715"><a name="p138411959715"></a><a name="p138411959715"></a>LOSCFG_KERNEL_PERF</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p6841151471"><a name="p6841151471"></a><a name="p6841151471"></a>Enable Perf Feature</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p128411551271"><a name="p128411551271"></a><a name="p128411551271"></a>Whether to enable perf.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p1584116513713"><a name="p1584116513713"></a><a name="p1584116513713"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row14856135172"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p10841145172"><a name="p10841145172"></a><a name="p10841145172"></a>LOSCFG_PERF_CALC_TIME_BY_TICK</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p6841751173"><a name="p6841751173"></a><a name="p6841751173"></a>Time-consuming Calc Methods-&gt;By Tick</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p188417515713"><a name="p188417515713"></a><a name="p188417515713"></a>Whether to use tick as the perf timing unit.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p28421251079"><a name="p28421251079"></a><a name="p28421251079"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row08561858720"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p2842195177"><a name="p2842195177"></a><a name="p2842195177"></a>LOSCFG_PERF_CALC_TIME_BY_CYCLE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p148421551373"><a name="p148421551373"></a><a name="p148421551373"></a>Time-consuming Calc Methods-&gt;By Cpu Cycle</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p148421751575"><a name="p148421751575"></a><a name="p148421751575"></a>Whether to use cycle as the perf timing unit.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p7842551970"><a name="p7842551970"></a><a name="p7842551970"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row168562511717"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p18842205871"><a name="p18842205871"></a><a name="p18842205871"></a>LOSCFG_PERF_BUFFER_SIZE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p128421655716"><a name="p128421655716"></a><a name="p128421655716"></a>Perf Sampling Buffer Size</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p88424511719"><a name="p88424511719"></a><a name="p88424511719"></a>Size of the buffer used for perf sampling.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p28421455716"><a name="p28421455716"></a><a name="p28421455716"></a>INT</p>
-    </td>
-    </tr>
-    <tr id="row685645671"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p1084245472"><a name="p1084245472"></a><a name="p1084245472"></a>LOSCFG_PERF_HW_PMU</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p11842651976"><a name="p11842651976"></a><a name="p11842651976"></a>Enable Hardware Pmu Events for Sampling</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p5842651971"><a name="p5842651971"></a><a name="p5842651971"></a>Whether to enable hardware PMU events. The target platform must support the hardware PMU.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p17842350713"><a name="p17842350713"></a><a name="p17842350713"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row2085695779"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p148421951574"><a name="p148421951574"></a><a name="p148421951574"></a>LOSCFG_PERF_TIMED_PMU</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p16842115373"><a name="p16842115373"></a><a name="p16842115373"></a>Enable Hrtimer Period Events for Sampling</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p11842135973"><a name="p11842135973"></a><a name="p11842135973"></a>Whether to enable high-precision periodical events. The target platform must support the high precision event timer (HPET).</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p1784205875"><a name="p1784205875"></a><a name="p1784205875"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row108562511719"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p684218515717"><a name="p684218515717"></a><a name="p684218515717"></a>LOSCFG_PERF_SW_PMU</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p284275473"><a name="p284275473"></a><a name="p284275473"></a>Enable Software Events for Sampling</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p184214514715"><a name="p184214514715"></a><a name="p184214514715"></a>Whether to enable software events. <strong id="b947154317012"><a name="b947154317012"></a><a name="b947154317012"></a>LOSCFG_KERNEL_HOOK</strong> must also be enabled.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p16896951459"><a name="p16896951459"></a><a name="p16896951459"></a>YES/NO</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
-
-2.  Call  **LOS\_PerfConfig**  to configure the events to be sampled.
-
-    perf provides two working modes and three types of events.
-
-    Two modes: counting mode \(counts only the number of event occurrences\) and sampling mode \(collects context information such as task IDs, PC, and backtrace\)
-
-    Three types of events: CPU hardware events \(such as cycle, branch, icache, and dcache\), high-precision periodical events \(such as CPU clock\), and OS software events \(such as task switch, mux pend, and IRQ\)
-
-3.  Call  **LOS\_PerfStart\(UINT32 sectionId\)**  at the start of the code to be sampled. The input parameter  **sectionId**  specifies different sampling session IDs.
-4.  Call  **LOS\_PerfStop**  at the end of the code to be sampled.
-5.  Call  **LOS\_PerfDataRead**  to read the sampling data and use IDE to analyze the collected data.
-
-## Kernel-mode Development Example
+1. Configure the macros related to the perf module.
+   
+   Configure the perf control macro **LOSCFG_KERNEL_PERF**, which is disabled by default. In the **kernel/liteos_a** directory, run the **make update_config** command, choose **Kernel**, and select **Enable Perf Feature**.
+
+  | Item| menuconfig Option| Description| Value|
+  | -------- | -------- | -------- | -------- |
+  | LOSCFG_KERNEL_PERF | Enable Perf Feature | Whether to enable perf.| YES/NO |
+  | LOSCFG_PERF_CALC_TIME_BY_TICK | Time-consuming Calc Methods-&gt;By Tick | Whether to use tick as the perf timing unit.| YES/NO |
+  | LOSCFG_PERF_CALC_TIME_BY_CYCLE | Time-consuming Calc Methods-&gt;By Cpu Cycle | Whether to use cycle as the perf timing unit.| YES/NO |
+  | LOSCFG_PERF_BUFFER_SIZE | Perf Sampling Buffer Size | Size of the buffer used for perf sampling.| INT |
+  | LOSCFG_PERF_HW_PMU | Enable Hardware Pmu Events for Sampling | Whether to enable hardware PMU events. The target platform must support the hardware PMU.| YES/NO |
+  | LOSCFG_PERF_TIMED_PMU | Enable Hrtimer Period Events for Sampling | Whether to enable high-precision periodical events. The target platform must support the high precision event timer (HPET).| YES/NO |
+  | LOSCFG_PERF_SW_PMU | Enable Software Events for Sampling | Whether to enable software events. **LOSCFG_KERNEL_HOOK** must also be enabled.| YES/NO |
+
+2. Call **LOS_PerfConfig** to configure the events to be sampled.
+
+   perf provides two working modes and three types of events.
+
+   Working modes: counting mode (counts only the number of event occurrences) and sampling mode (collects context information such as task IDs, PC, and backtrace)
+
+   Events: CPU hardware events (such as cycle, branch, icache, and dcache), high-precision periodical events (such as CPU clock), and OS software events (such as task switch, mux pend, and IRQ)
+
+3. Call **LOS_PerfStart(UINT32 sectionId)** at the start of the code to be sampled. The input parameter **sectionId** specifies different sampling session IDs.
+
+4. Call **LOS_PerfStop** at the end of the code to be sampled.
+
+5. Call **LOS_PerfDataRead** to read the sampling data and use IDE to analyze the collected data.
+
+
+####  Kernel-Mode Development Example
 
 This example implements the following:
 
-1.  Create a perf task.
-2.  Configure sampling events.
-3.  Start perf.
-4.  Execute algorithms for statistics.
-5.  Stop perf.
-6.  Export the result. 
+1. Create a perf task.
 
-## Kernel-mode Sample Code
+2. Configure sampling events.
 
-Prerequisites: The perf module configuration is complete in  **menuconfig**.
+3. Start perf.
 
-The code is as follows:
+4. Execute algorithms for statistics.
+
+5. Stop perf.
+
+6. Export the result. 
+
+
+####  Kernel-Mode Sample Code
+
+Prerequisites: The perf module configuration is complete in **menuconfig**.
+
+The sample code is as follows:
 
 ```
 #include "los_perf.h"
@@ -299,10 +215,10 @@ STATIC VOID perfTestHwEvent(VOID)
 UINT32 Example_Perf_test(VOID){
     UINT32 ret;    
     TSK_INIT_PARAM_S perfTestTask;    
-    /* Create a perf task.*/
+    /* Create a perf task. */   
     memset(&perfTestTask, 0, sizeof(TSK_INIT_PARAM_S));    
     perfTestTask.pfnTaskEntry = (TSK_ENTRY_FUNC)perfTestHwEvent;    
-    perfTestTask.pcName       = "TestPerfTsk";    /* Task name.*/
+    perfTestTask.pcName = "TestPerfTsk";    /* Test task name. */   				     
     perfTestTask.uwStackSize  = 0x800;    
     perfTestTask.usTaskPrio   = 5;    
     perfTestTask.uwResved   = LOS_TASK_STATUS_DETACHED;    
@@ -316,9 +232,10 @@ UINT32 Example_Perf_test(VOID){
 LOS_MODULE_INIT(perfTestHwEvent, LOS_INIT_LEVEL_KMOD_EXTENDED);
 ```
 
-### Kernel-mode Verification
 
-The output is as follows:
+#### Kernel-Mode Verification
+
+  The output is as follows:
 
 ```
 --------count mode----------
@@ -330,48 +247,50 @@ num:  00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 hex:  00 ef ef ef 00 00 00 00 14 00 00 00 60 00 00 00 00 00 00 00 70 88 36 40 08 00 00 00 6b 65 72 6e 65 6c 00 00 01 00 00 00 cc 55 30 40 08 00 00 00 6b 65 72 6e 65 6c 00 00
 ```
 
--   For the counting mode, the following information is displayed after perf is stopped:
-
-    Event name \(cycles\), event type \(0xff\), and number of event occurrences \(5466989440\)
+- For the counting mode, the following information is displayed after perf is stopped:
+  Event name (cycles), event type (0xff), and number of event occurrences (5466989440)
 
-    For hardware PMU events, the displayed event type is the hardware event ID, not the abstract type defined in  **enum PmuHWId**.
+  For hardware PMU events, the displayed event type is the hardware event ID, not the abstract type defined in **enum PmuHWId**.
 
--   For the sampling mode, the address and length of the sampled data will be displayed after perf is stopped:
+- For the sampling mode, the address and length of the sampled data will be displayed after perf is stopped:
+  dump section data, addr: (0x8000000) length: (0x5000)
 
-    dump section data, addr: \(0x8000000\) length: \(0x5000\)
+  You can export the data using the JTAG interface and then use the IDE offline tool to analyze the data.
 
-    You can export the data using the JTAG interface and then use the IDE offline tool to analyze the data.
+  You can also call **LOS_PerfDataRead** to read data to a specified address for further analysis. In the example, **OsPrintBuff** is a test API, which prints the sampled data by byte. **num** indicates the sequence number of the byte, and **hex** indicates the value in the byte.
 
-    You can also call  **LOS\_PerfDataRead**  to read data to a specified address for further analysis. In the example,  **OsPrintBuff**  is a test API, which prints the sampled data by byte.  **num**  indicates the sequence number of the byte, and  **hex**  indicates the value in the byte.
 
+### User-Mode Development Process
 
-### User-mode Development Process
+Choose **Driver** > **Enable PERF DRIVER** in **menuconfig** to enable the perf driver. This option is available in **Driver** only after **Enable Perf Feature** is selected in the kernel.
 
-Choose  **Driver**  \>  **Enable PERF DRIVER**  in  **menuconfig**  to enable the perf driver. This option is available in  **Driver**  only after  **Enable Perf Feature**  is selected in the kernel.
+1. Open the **/dev/perf** file and perform read, write, and ioctl operations.
 
-1.  Open the  **/dev/perf**  file and perform read, write, and ioctl operations.
-2.  Run the  **perf**  commands in user mode in the  **/bin**  directory. After running  **cd bin**, you can use the following commands:
-    -   **./perf start \[_id_\]**: starts perf sampling.  _id_  is optional and is  **0**  by default.
-    -   **./perf stop**: stops perf sampling.
-    -   **./perf read <_nBytes_\>**: reads n-byte data from the sampling buffer and displays the data.
-    -   **./perf list**: lists the events supported by  **-e**.
-    -   **./perf stat/record \[_option_\] <_command_\>**: sets counting or sampling parameters.
-        -   The \[_option_\] can be any of the following:
-            -   **-e**: sets sampling events. Events of the same type listed in  **./perf list**  can be used.
-            -   **-p**: sets the event sampling interval.
-            -   **-o**: specifies the path of the file for saving the perf sampling data.
-            -   **-t**: specifies the task IDs for data collection. Only the contexts of the specified tasks are collected. If this parameter is not specified, all tasks are collected by default.
-            -   **-s**: specifies the context type for sampling. For details, see  **PerfSampleType**  defined in  **los\_perf.h**.
-            -   **-P**: specifies the process IDs for data collection. Only the contexts of the specified processes are collected. If this parameter is not specified, all processes are collected by default.
-            -   **-d**: specifies whether to divide the frequency \(the value is incremented by 1 each time an event occurs 64 times\). This option is valid only for hardware cycle events.
-
-        -   _command_  specifies the program to be checked by perf.
+2. Run the **perf** commands in user mode in the **/bin** directory. 
+   
+   After running **cd bin**, you can use the following commands:
+   
+   - **./perf start [*id*]**: starts perf sampling. *id* is optional and is **0** by default.
+   - **./perf stop**: stops perf sampling.
+   - **./perf read <*nBytes*>**: reads n-byte data from the sampling buffer and displays the data.
+   - **./perf list**: lists the events supported by **-e**.
+   - **./perf stat/record [*option*] <*command*>**: sets counting or sampling parameters.
+      - The [*option*] can be any of the following:
+         - -**-e**: sets sampling events. Events of the same type listed in **./perf list** can be used.
+         - -**-p**: sets the event sampling interval.
+         - -**-o**: specifies the path of the file for saving the perf sampling data.
+         - -**-t**: specifies the task IDs for data collection. Only the contexts of the specified tasks are collected. If this parameter is not specified, all tasks are collected by default.
+         - -**-s**: specifies the context type for sampling. For details, see **PerfSampleType** defined in **los_perf.h**.
+         - -**-P**: specifies the process IDs for data collection. Only the contexts of the specified processes are collected. If this parameter is not specified, all processes are collected by default.
+         - -**-d**: specifies whether to divide the frequency (the value is incremented by 1 each time an event occurs 64 times). This option is valid only for hardware cycle events.
+      - *command* specifies the program to be checked by perf.
 
+Examples:
 
+Run the **./perf list** command to display available events. 
 
-Examples:
+The output is as follows:
 
-Run the  **./perf list**  command to display available events. The output is as follows:
 
 ```
 cycles                                 [Hardware event]
@@ -389,7 +308,10 @@ mem-alloc                              [Software event]
 mux-pend                               [Software event]
 ```
 
-Run  **./perf stat -e cycles os\_dump**. The output is as follows:
+Run **./perf stat -e cycles os_dump**. 
+
+The output is as follows:
+
 
 ```
 type: 0
@@ -406,7 +328,10 @@ time used: 0.058000(s)
 [cycles] eventType: 0xff [core 1]: 13583830
 ```
 
-Run  **./perf record -e cycles os\_dump**. The output is as follows:
+Run **./perf record -e cycles os_dump**. 
+
+The output is as follows:
+
 
 ```
 type: 0
@@ -423,22 +348,28 @@ time used: 0.059000(s)
 save perf data success at /storage/data/perf.data
 ```
 
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->After running the  **./perf stat/record**  command, you can run the  **./perf start**  and  **./perf stop**  commands multiple times. The sampling event configuration is as per the parameters set in the latest  **./perfstat/record**  command.
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> After running the **./perf stat/record** command, you can run the **./perf start** and **./perf stop** commands multiple times. The sampling event configuration is as per the parameters set in the latest **./perfstat/record** command.
+
 
-### User-mode Development Example
+#### User-Mode Development Example
 
 This example implements the following:
 
-1.  Open the perf character device.
-2.  Write the perf events.
-3.  Start perf.
-4.  Stop perf.
-5.  Read the perf sampling data.
+1. Open the perf character device.
+
+2. Write the perf events.
 
-### User-Mode Sample Code
+3. Start perf.
 
-The code is as follows:
+4. Stop perf.
+
+5. Read the perf sampling data.
+
+
+#### User-Mode Sample Code
+
+  The code is as follows:
 
 ```
 #include "fcntl.h"
@@ -506,13 +437,13 @@ int main(int argc, char **argv)
 }
 ```
 
-### User-mode Verification
 
-The output is as follows:
+#### User-Mode Verification
+
+  The output is as follows:
 
 ```
 [EMG] dump section data, addr: 0x8000000 length: 0x800000
 num:  00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ...
 hex:  00 ef ef ef 00 00 00 00 14 00 00 00 60 00 00 00 00 00 00 00 70 88 36 40 08 00 00 00 6b 65 72 6e 65 6c 00 00 01 00 00 00 cc 55 30 40 08 00 00 00 6b 65 72 6e 65 6c 00 00
 ```
-
diff --git a/en/device-dev/kernel/kernel-mini-overview.md b/en/device-dev/kernel/kernel-mini-overview.md
index 7b86f1a82028e03366eb3441d6257eb7791764c3..a1b7902c802ad44bac6477e73757955d4611aecf 100644
--- a/en/device-dev/kernel/kernel-mini-overview.md
+++ b/en/device-dev/kernel/kernel-mini-overview.md
@@ -1,59 +1,35 @@
 # Kernel Overview
 
+
 ## Overview
 
-The OpenHarmony LiteOS-M kernel is a lightweight operating system \(OS\) kernel designed for the IoT field. It features small size, low power consumption, and high performance. The LiteOS-M kernel has simple code structure, including the minimum function set, kernel abstraction layer \(KAL\), optional components, and project directory. It supports the Hardware Driver Foundation \(HDF\), which provides unified driver standards and access mode for device vendors to simplify porting of drivers and allow one-time development for multi-device deployment.
+The OpenHarmony LiteOS-M kernel is a lightweight operating system (OS) kernel designed for the IoT field. It features small size, low power consumption, and high performance. The LiteOS-M kernel has simple code structure, including the minimum function set, kernel abstraction layer (KAL), optional components, and project directory. It supports the Hardware Driver Foundation (HDF), which provides unified driver standards and access mode for device vendors to simplify porting of drivers and allow one-time development for multi-device deployment.
+
+The OpenHarmony LiteOS-M kernel architecture consists of the hardware layer and hardware-irrelevant layers, as shown in the figure below. The hardware layer is classified based on the compiler toolchain and chip architecture, and provides a unified Hardware Abstraction Layer (HAL) interface to improve hardware adaptation and facilitate the expansion of various types of AIoT hardware and compilation toolchains. The other modules are irrelevant to the hardware. The basic kernel module provides basic kernel capabilities. The extended modules provide capabilities of components, such as the network and file systems, as well as exception handling and debug tools. The KAL provides unified standard APIs.
 
-The OpenHarmony LiteOS-M kernel architecture consists of the hardware layer and hardware-irrelevant layers, as shown in the figure below. The hardware layer is classified based on the compiler toolchain and chip architecture, and provides a unified Hardware Abstraction Layer \(HAL\) interface to improve hardware adaptation and facilitate the expansion of various types of AIoT hardware and compilation toolchains. The other modules are irrelevant to the hardware. The basic kernel module provides basic kernel capabilities. The extended modules provide capabilities of components, such as the network and file systems, as well as exception handling and debug tools. The KAL provides unified standard APIs.
+  **Figure 1** Kernel architecture
 
-**Figure  1**  Kernel architecture
-![](figures/kernel-architecture.png "kernel-architecture")
+  ![](figures/kernel-architecture.png "kernel-architecture")
 
-### CPU Architecture Support
+
+## CPU Architecture Support
 
 The CPU architecture includes two layers: general architecture definition layer and specific architecture definition layer. The former provides interfaces supported and implemented by all architectures. The latter is specific to an architecture. For a new architecture to be added, the general architecture definition layer must be implemented first and the architecture-specific functions can be implemented at the specific architecture definition layer.
 
-**Table  1**  CPU architecture rules
-
-<a name="table577192233214"></a>
-<table><thead align="left"><tr id="row977192213323"><th class="cellrowborder" valign="top" width="21.592159215921594%" id="mcps1.2.4.1.1"><p id="p15771422123213"><a name="p15771422123213"></a><a name="p15771422123213"></a>Rule</p>
-</th>
-<th class="cellrowborder" valign="top" width="34.713471347134714%" id="mcps1.2.4.1.2"><p id="p57782211323"><a name="p57782211323"></a><a name="p57782211323"></a>General Architecture Definition Layer</p>
-</th>
-<th class="cellrowborder" valign="top" width="43.694369436943695%" id="mcps1.2.4.1.3"><p id="p977132223217"><a name="p977132223217"></a><a name="p977132223217"></a>Specific Architecture Definition Layer</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1577522103217"><td class="cellrowborder" valign="top" width="21.592159215921594%" headers="mcps1.2.4.1.1 "><p id="p378152243213"><a name="p378152243213"></a><a name="p378152243213"></a>Header file location</p>
-</td>
-<td class="cellrowborder" valign="top" width="34.713471347134714%" headers="mcps1.2.4.1.2 "><p id="p37819227320"><a name="p37819227320"></a><a name="p37819227320"></a>arch/include</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.694369436943695%" headers="mcps1.2.4.1.3 "><p id="p9783225321"><a name="p9783225321"></a><a name="p9783225321"></a>arch/&lt;arch&gt;/&lt;arch&gt;/&lt;toolchain&gt;/</p>
-</td>
-</tr>
-<tr id="row16781422193218"><td class="cellrowborder" valign="top" width="21.592159215921594%" headers="mcps1.2.4.1.1 "><p id="p978112283215"><a name="p978112283215"></a><a name="p978112283215"></a>Header file name</p>
-</td>
-<td class="cellrowborder" valign="top" width="34.713471347134714%" headers="mcps1.2.4.1.2 "><p id="p2781322193210"><a name="p2781322193210"></a><a name="p2781322193210"></a>los_&lt;function&gt;.h</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.694369436943695%" headers="mcps1.2.4.1.3 "><p id="p912752623513"><a name="p912752623513"></a><a name="p912752623513"></a>los_arch_&lt;function&gt;.h</p>
-</td>
-</tr>
-<tr id="row207882213215"><td class="cellrowborder" valign="top" width="21.592159215921594%" headers="mcps1.2.4.1.1 "><p id="p10789229321"><a name="p10789229321"></a><a name="p10789229321"></a>Function name</p>
-</td>
-<td class="cellrowborder" valign="top" width="34.713471347134714%" headers="mcps1.2.4.1.2 "><p id="p1778202218329"><a name="p1778202218329"></a><a name="p1778202218329"></a>Halxxxx</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.694369436943695%" headers="mcps1.2.4.1.3 "><p id="p207817224327"><a name="p207817224327"></a><a name="p207817224327"></a>Halxxxx</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-LiteOS-M supports mainstream architectures, such as ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, ARM Cortex-M33, and RISC-V. If you need to expand the CPU architecture, see [Chip Architecture Adaptation](../porting/porting-chip-kernel-overview.md#section137431650339).
-
-### Working Principles
-
-Configure the system clock and number of ticks per second in the  **target\_config.h**  file of the development board. Configure the task, memory, inter-process communication \(IPC\), and exception handling modules based on service requirements. When the system boots, the modules are initialized based on the configuration. The kernel startup process includes peripheral initialization, system clock configuration, kernel initialization, and OS boot, as shown in the figure below.
-
-**Figure  2**  Kernel startup process  
-![](figures/kernel-startup-process.png "kernel-startup-process")
+  **Table 1** CPU architecture rules
+
+| Rule| General Architecture Layer| Specific Architecture Layer|
+| -------- | -------- | -------- |
+| Header file location| arch/include | arch/&lt;arch&gt;/&lt;arch&gt;/&lt;toolchain&gt;/ |
+| Header file name| los_&lt;function&gt;.h | los_arch_&lt;function&gt;.h |
+| Function name| Halxxxx | Halxxxx |
+
+LiteOS-M supports mainstream architectures, such as ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, ARM Cortex-M33, and RISC-V. If you need to expand the CPU architecture, see [Chip Architecture Adaptation](../porting/porting-chip-kernel-overview.md).
+
+
+## Working Principles
+
+In the  **target\_config.h**  file of the development board, configure the system clock and number of ticks per second, and configure the task, memory, inter-process communication (IPC), and exception handling modules based on service requirements. When the system boots, the modules are initialized based on the configuration. The kernel startup process includes peripheral initialization, system clock configuration, kernel initialization, and OS boot, as shown in the figure below.
 
+  **Figure 2** Kernel startup process<br>
+  ![](figures/kernel-startup-process.png "kernel-startup-process")
diff --git a/en/device-dev/kernel/kernel-small-apx-dll.md b/en/device-dev/kernel/kernel-small-apx-dll.md
index 2e7bb0d0fadcf92e14ea957b89728e240542c18a..e33e8e55d65e6a5e39fbb33e154557e2751148e9 100644
--- a/en/device-dev/kernel/kernel-small-apx-dll.md
+++ b/en/device-dev/kernel/kernel-small-apx-dll.md
@@ -1,178 +1,69 @@
 # Doubly Linked List
 
 
-
 ## Basic Concepts
 
-A doubly linked list is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains a pointer to the previous node and a pointer to the next node in the sequence of nodes. The pointer head is unique. A doubly linked list allows access from a list node to its next node and also the previous node on the list. This data structure facilitates data search, especially traversal of a large amount of data. The symmetry of the doubly linked list also makes operations, such as insertion and deletion, easy. However, pay attention to the pointer direction when performing operations.
+A doubly linked list (DLL) is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains a pointer to the previous node and a pointer to the next node in the sequence of nodes. The pointer head is unique. A DLL allows access from a list node to its next node and also the previous node on the list. This data structure facilitates data search, especially traversal of a large amount of data.  The symmetry of the DLL also makes operations, such as insertion and deletion, easy. However, pay attention to the pointer direction when performing operations.
+
 
 ## Available APIs
 
-The following table describes APIs available for the doubly linked list. For more details about the APIs, see the API reference.
-
-<a name="table9827162254713"></a>
-<table><tbody><tr id="row2089515228470"><td class="cellrowborder" valign="top" width="8.14%"><p id="p4895182214473"><a name="p4895182214473"></a><a name="p4895182214473"></a>Function</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p58951922124713"><a name="p58951922124713"></a><a name="p58951922124713"></a>API</p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p5895122134719"><a name="p5895122134719"></a><a name="p5895122134719"></a>Description</p>
-</td>
-</tr>
-<tr id="row20895152284710"><td class="cellrowborder" rowspan="2" valign="top" width="8.14%"><p id="p18951922144714"><a name="p18951922144714"></a><a name="p18951922144714"></a>Initializing a linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p789516220474"><a name="p789516220474"></a><a name="p789516220474"></a><span>LOS_ListInit</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p38951422144710"><a name="p38951422144710"></a><a name="p38951422144710"></a>Initializes a specified node as a doubly linked list node.</p>
-</td>
-</tr>
-<tr id="row289552216475"><td class="cellrowborder" valign="top"><p id="p11895222194718"><a name="p11895222194718"></a><a name="p11895222194718"></a><span>LOS_DL_LIST_HEAD</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p3895222184710"><a name="p3895222184710"></a><a name="p3895222184710"></a>Defines a node and initializes it as a doubly linked list node.</p>
-</td>
-</tr>
-<tr id="row1689522210476"><td class="cellrowborder" rowspan="3" valign="top" width="8.14%"><p id="p12896132294720"><a name="p12896132294720"></a><a name="p12896132294720"></a>Adding a node</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p789611221477"><a name="p789611221477"></a><a name="p789611221477"></a><span>LOS_ListAdd</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p9896122134715"><a name="p9896122134715"></a><a name="p9896122134715"></a>Inserts the specified node to the head of a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row191212010315"><td class="cellrowborder" valign="top"><p id="p14135012318"><a name="p14135012318"></a><a name="p14135012318"></a>LOS_ListHeadInsert</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p4138202417318"><a name="p4138202417318"></a><a name="p4138202417318"></a>Inserts the specified node to the head of a doubly linked list. It is the same as <strong id="b1391981116212"><a name="b1391981116212"></a><a name="b1391981116212"></a>LOS_ListAdd</strong>.</p>
-</td>
-</tr>
-<tr id="row188961225475"><td class="cellrowborder" valign="top"><p id="p18961122154718"><a name="p18961122154718"></a><a name="p18961122154718"></a><span>LOS_ListTailInsert</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p188961322144712"><a name="p188961322144712"></a><a name="p188961322144712"></a>Inserts the specified node to the end of a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row15357444193310"><td class="cellrowborder" rowspan="3" valign="top" width="8.14%"><p id="p1692010363413"><a name="p1692010363413"></a><a name="p1692010363413"></a>Adding a linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p1735715449336"><a name="p1735715449336"></a><a name="p1735715449336"></a>LOS_ListAddList</p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p6622934203610"><a name="p6622934203610"></a><a name="p6622934203610"></a>Inserts the head of a specified linked list into the head of a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row15195047123311"><td class="cellrowborder" valign="top"><p id="p17195124711336"><a name="p17195124711336"></a><a name="p17195124711336"></a>LOS_ListHeadInsertList</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p185641532153916"><a name="p185641532153916"></a><a name="p185641532153916"></a>Inserts the head of a specified linked list into the head of a doubly linked list. It is the same as <strong id="b14274399311"><a name="b14274399311"></a><a name="b14274399311"></a>LOS_ListAddList</strong>.</p>
-</td>
-</tr>
-<tr id="row144801751153310"><td class="cellrowborder" valign="top"><p id="p1048055153313"><a name="p1048055153313"></a><a name="p1048055153313"></a>LOS_ListTailInsertList</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p13855544153914"><a name="p13855544153914"></a><a name="p13855544153914"></a>Inserts the end of a specified linked list into the head of a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row5896112264710"><td class="cellrowborder" rowspan="2" valign="top" width="8.14%"><p id="p28961122174717"><a name="p28961122174717"></a><a name="p28961122174717"></a>Deleting a node</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p28961422154710"><a name="p28961422154710"></a><a name="p28961422154710"></a><span>LOS_ListDelete</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p289610224473"><a name="p289610224473"></a><a name="p289610224473"></a>Deletes the specified node from a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row3896522124711"><td class="cellrowborder" valign="top"><p id="p0896152213471"><a name="p0896152213471"></a><a name="p0896152213471"></a><span>LOS_ListDelInit</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p48965226475"><a name="p48965226475"></a><a name="p48965226475"></a>Deletes the specified node from the linked list and uses the node to initialize the linked list.</p>
-</td>
-</tr>
-<tr id="row1689602294714"><td class="cellrowborder" rowspan="3" valign="top" width="8.14%"><p id="p18961222164716"><a name="p18961222164716"></a><a name="p18961222164716"></a>Determining a doubly linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p78961522184715"><a name="p78961522184715"></a><a name="p78961522184715"></a><span>LOS_ListEmpty</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p16896172254720"><a name="p16896172254720"></a><a name="p16896172254720"></a>Checks whether a linked list is empty.</p>
-</td>
-</tr>
-<tr id="row18516729174116"><td class="cellrowborder" valign="top"><p id="p17517829184112"><a name="p17517829184112"></a><a name="p17517829184112"></a>LOS_DL_LIST_IS_END</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p6517142944113"><a name="p6517142944113"></a><a name="p6517142944113"></a>Checks whether the specified linked list node is at the end of the linked list.</p>
-</td>
-</tr>
-<tr id="row893214104211"><td class="cellrowborder" valign="top"><p id="p149321243429"><a name="p149321243429"></a><a name="p149321243429"></a>LOS_DL_LIST_IS_ON_QUEUE</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p393211444212"><a name="p393211444212"></a><a name="p393211444212"></a>Checks whether the linked list node is in a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row128977221474"><td class="cellrowborder" rowspan="5" valign="top" width="8.14%"><p id="p138971322174717"><a name="p138971322174717"></a><a name="p138971322174717"></a>Obtaining structure information</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p138971922194712"><a name="p138971922194712"></a><a name="p138971922194712"></a><span>LOS_OFF_SET_OF</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p08971022144720"><a name="p08971022144720"></a><a name="p08971022144720"></a>Obtains the offset of a member in a specified structure relative to the start address of the structure.</p>
-</td>
-</tr>
-<tr id="row17897102264718"><td class="cellrowborder" valign="top"><p id="p222185817011"><a name="p222185817011"></a><a name="p222185817011"></a><span>LOS_DL_LIST_ENTRY</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p165524542002"><a name="p165524542002"></a><a name="p165524542002"></a>Obtains the address of the structure that contains the first node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure.</p>
-</td>
-</tr>
-<tr id="row15461471406"><td class="cellrowborder" valign="top"><p id="p1889792218473"><a name="p1889792218473"></a><a name="p1889792218473"></a>LOS_ListPeekHeadType</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p111876351019"><a name="p111876351019"></a><a name="p111876351019"></a>Obtains the address of the structure that contains the first node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Return Null if the linked list is empty.</p>
-</td>
-</tr>
-<tr id="row203104014114"><td class="cellrowborder" valign="top"><p id="p18321540016"><a name="p18321540016"></a><a name="p18321540016"></a>LOS_ListRemoveHeadType</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p913828651"><a name="p913828651"></a><a name="p913828651"></a>Obtains the address of the structure that contains the first node in the linked list, and deletes the first node from the list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Return Null if the linked list is empty.</p>
-</td>
-</tr>
-<tr id="row745116416618"><td class="cellrowborder" valign="top"><p id="p1645217411963"><a name="p1645217411963"></a><a name="p1645217411963"></a>LOS_ListNextType</p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p972412565619"><a name="p972412565619"></a><a name="p972412565619"></a>Obtains the address of the structure that contains the next node of the specified node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the specified node, the third parameter indicates the name of the structure to be obtained, and the fourth input parameter indicates the name of the linked list in the structure. If the next node of the linked list node is the head node and is empty, NULL is returned.</p>
-</td>
-</tr>
-<tr id="row4897192254715"><td class="cellrowborder" rowspan="2" valign="top" width="8.14%"><p id="p3897922164714"><a name="p3897922164714"></a><a name="p3897922164714"></a>Traversing a doubly linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p58971222194713"><a name="p58971222194713"></a><a name="p58971222194713"></a><span>LOS_DL_LIST_FOR_EACH</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p28971222194714"><a name="p28971222194714"></a><a name="p28971222194714"></a>Traverses a doubly linked list.</p>
-</td>
-</tr>
-<tr id="row589792254710"><td class="cellrowborder" valign="top"><p id="p689792264718"><a name="p689792264718"></a><a name="p689792264718"></a><span>LOS_DL_LIST_FOR_EACH_SAFE</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p148975222479"><a name="p148975222479"></a><a name="p148975222479"></a>Traverses a doubly linked list, and stores the next node of the current node for security verification.</p>
-</td>
-</tr>
-<tr id="row208971622174718"><td class="cellrowborder" rowspan="2" valign="top" width="8.14%"><p id="p168977224474"><a name="p168977224474"></a><a name="p168977224474"></a>Traversing the structure that contains the doubly linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="32.09%"><p id="p1489752216479"><a name="p1489752216479"></a><a name="p1489752216479"></a><span>LOS_DL_LIST_FOR_EACH_ENTRY</span></p>
-</td>
-<td class="cellrowborder" valign="top" width="59.77%"><p id="p10897522194717"><a name="p10897522194717"></a><a name="p10897522194717"></a>Traverses the specified doubly linked list and obtains the address of the structure that contains the linked list node.</p>
-</td>
-</tr>
-<tr id="row10897622104713"><td class="cellrowborder" valign="top"><p id="p2897112215478"><a name="p2897112215478"></a><a name="p2897112215478"></a><span>LOS_DL_LIST_FOR_EACH_ENTRY_SAFE</span></p>
-</td>
-<td class="cellrowborder" valign="top"><p id="p13898102220475"><a name="p13898102220475"></a><a name="p13898102220475"></a>Traverses the specified doubly linked list, obtains the structure address of the node that contains the linked list, and stores the structure address that contains the next node of the current node.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## How to Develop<a name="section01781261552"></a>
-
-The typical development process of the doubly linked list is as follows:
-
-1.  Call  **LOS\_ListInit/LOS\_DL\_LIST\_HEAD**  to initialize a doubly linked list.
-2.  Call  **LOS\_ListAdd**  to insert a node to the list.
-3.  Call  **LOS\_ListTailInsert**  to insert a node to the end of the list.
-4.  Call  **LOS\_ListDelete**  to delete the specified node.
-5.  Call  **LOS\_ListEmpty**  to check whether a linked list is empty.
-6.  Call  **LOS\_ListDelInit**  to delete a specified node, and initialize the linked list based on this node.
-
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->-   Pay attention to the operations of the front and back pointer of the node.
->-   The linked list operation APIs are underlying APIs and do not check whether the input parameters are empty. You must ensure that the input parameters are valid.
->-   If the memory of a linked list node is dynamically requested, release the memory after deleting the node.
-
-### Development Example<a name="section8354175218128"></a>
+The table below describes the DLL APIs. For more details about the APIs, see the API reference.
+
+| **Category**| **API**|
+| -------- | -------- |
+| Initializing a DLL| - **LOS_ListInit**: initializes a node as a DLL node.<br>- **LOS_DL_LIST_HEAD**: defines a node and initializes it as a DLL node.|
+| Adding a node| - **LOS_ListAdd**: adds a node to the head of a DLL.<br>- **LOS_ListHeadInsert**: same as **LOS_ListAdd**.<br>- **LOS_ListTailInsert**: inserts a node to the tail of a DLL.|
+| Adding a DLL| - **LOS_ListAddList**: adds the head of a DLL to the head of this DLL.<br>- **LOS_ListHeadInsertList**: inserts the head of a DLL to the head of this DLL.<br>- **LOS_ListTailInsertList**: Inserts the end of a DLL to the head of this DLL.|
+| Deleting a node| - **LOS_ListDelete**: deletes a node from this DLL.<br>- **LOS_ListDelInit**: deletes a node from this DLL and uses this node to initialize the DLL.|
+| Checking a DLL| - **LOS_ListEmpty**: checks whether a DLL is empty.<br>- **LOS_DL_LIST_IS_END**: checks whether a node is the tail of the DLL.<br>- **LOS_DL_LIST_IS_ON_QUEUE**: checks whether a node is in the DLL.|
+| Obtains structure information.| - **LOS_OFF_SET_OF**: obtains the offset of a member in the specified structure relative to the start address of the structure.<br>- **LOS_DL_LIST_ENTRY**: obtains the address of the structure that contains the first node in the DLL. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure.<br>- **LOS_ListPeekHeadType**: obtains the address of the structure that contains the first node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Null will be returned if the DLL is empty.<br>- **LOS_ListRemoveHeadType**: obtains the address of the structure that contains the first node in the linked list, and deletes the first node from the list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Null will be returned if the DLL is empty.<br>- **LOS_ListNextType**: obtains the address of the structure that contains the next node of the specified node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the specified node, the third parameter indicates the name of the structure to be obtained, and the fourth input parameter indicates the name of the linked list in the structure. If the next node of the linked list node is the head node and is empty, NULL will be returned.|
+| Traversing a DLL| - **LOS_DL_LIST_FOR_EACH**: traverses a DLL.<br>- **LOS_DL_LIST_FOR_EACH_SAFE**: traverses the DLL and stores the subsequent nodes of the current node for security verification.|
+| Traversing the structure that contains the DLL| - **LOS_DL_LIST_FOR_EACH_ENTRY**: traverses a DLL and obtains the address of the structure that contains the linked list node.<br>- **LOS_DL_LIST_FOR_EACH_ENTRY_SAFE**: traverses a DLL, obtains the address of the structure that contains the linked list node, and stores the address of the structure that contains the subsequent node of the current node.|
+
+
+## How to Develop
+
+The typical development process of the DLL is as follows:
+
+1. Call **LOS_ListInit** or **LOS_DL_LIST_HEAD** to initialize a DLL.
+
+2. Call **LOS_ListAdd** to add a node into the DLL.
+
+3. Call **LOS_ListTailInsert** to insert a node to the tail of the DLL.
+
+4. Call **LOS_ListDelete** to delete the specified node.
+
+5. Call **LOS_ListEmpty** to check whether the DLL is empty.
+
+6. Call **LOS_ListDelInit** to delete the specified node and initialize the DLL based on the node.
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> - Pay attention to the operations operations of the front and back pointer of the node.
+> 
+> - The DLL APIs are underlying interfaces and do not check whether the input parameters are empty. You must ensure that the input parameters are valid.
+> 
+> - If the memory of a linked list node is dynamically allocated, release the memory when deleting the node.
+
+
+ **Development Example**
 
 **Example Description**
 
+
 This example implements the following:
 
-1.  Initialize a doubly linked list.
-2.  Add nodes.
-3.  Delete nodes.
-4.  Check the operation result.
+
+1. Initialize a DLL.
+
+2. Add nodes.
+
+3. Delete nodes.
+
+4. Check the operation result.
+
+
 
 ```
 #include "stdio.h"
@@ -184,7 +75,7 @@ static UINT32 ListSample(VOID)
     LOS_DL_LIST listNode1 = {NULL,NULL};
     LOS_DL_LIST listNode2 = {NULL,NULL};
 
-    // Initialize the linked list.
+    // Initialize the DLL.
     PRINTK("Initial head\n");
     LOS_ListInit(&listHead);
 
@@ -203,7 +94,7 @@ static UINT32 ListSample(VOID)
     LOS_ListDelete(&listNode1);
     LOS_ListDelete(&listNode2);
 
-    // Check that the linked list is empty.
+    // Check whether the DLL is empty.
     if (LOS_ListEmpty(&listHead)) {
         PRINTK("Delete success\n");
     }
@@ -212,8 +103,10 @@ static UINT32 ListSample(VOID)
 }
 ```
 
+
 **Verification**
 
+
 The development is successful if the return result is as follows:
 
 ```
@@ -222,4 +115,3 @@ Add listNode1 success
 Tail insert listNode2 success
 Delete success
 ```
-
diff --git a/en/device-dev/kernel/kernel-small-basic-memory-virtual.md b/en/device-dev/kernel/kernel-small-basic-memory-virtual.md
index 1c3b440fd5ecc5741b2cad1a49ef59b90d9082aa..bcef2eb5c93bf3ba1b15552d055a5cfa7dc9405b 100644
--- a/en/device-dev/kernel/kernel-small-basic-memory-virtual.md
+++ b/en/device-dev/kernel/kernel-small-basic-memory-virtual.md
@@ -1,322 +1,129 @@
 # Virtual Memory Management
 
 
-## Basic Concepts<a name="section650193717411"></a>
+## Basic Concepts
 
 Virtual memory management is a technology used by computer systems to manage memory. Each process has a continuous virtual address space. The size of the virtual address space is determined by the number of CPU bits. The maximum addressing space for a 32-bit hardware platform ranges from 0 GiB to 4 GiB. The 4 GiB space is divided into two parts: 3 GiB higher-address space for the LiteOS-A kernel and 1 GiB lower-address space for user-mode processes. The virtual address space of each process space is independent, and the code and data do not affect each other.
 
-The system divides the virtual memory into memory blocks called virtual pages. The size of a virtual page is generally 4 KiB or 64 KiB. The virtual page of the LiteOS-A kernel is 4 KiB by default. You can configure memory management units \(MMUs\) as required. The minimum unit of the virtual memory management is a page. A virtual address region in the LiteOS-A kernel can contain one virtual page or multiple virtual pages with contiguous addresses. Similarly, the physical memory is also divided by page, and each memory block is called page frame. The virtual address space is divided as follows: 3 GiB \(**0x40000000**  to  **0xFFFFFFFF**\) for the kernel space and 1 GiB \(**0x01000000**  to  **0x3F000000**\) for the user space. The following tables describe the virtual address plan. You can view or configure virtual addresses in  **los\_vm\_zone.h**.
-
-**Table  1**  Kernel-mode addresses
-
-<a name="table9988174163613"></a>
-<table><thead align="left"><tr id="row164675173616"><th class="cellrowborder" valign="top" width="19.99%" id="mcps1.2.4.1.1"><p id="p046752361"><a name="p046752361"></a><a name="p046752361"></a>Zone</p>
-</th>
-<th class="cellrowborder" valign="top" width="43.13%" id="mcps1.2.4.1.2"><p id="p0461651361"><a name="p0461651361"></a><a name="p0461651361"></a>Description</p>
-</th>
-<th class="cellrowborder" valign="top" width="36.88%" id="mcps1.2.4.1.3"><p id="p446195183611"><a name="p446195183611"></a><a name="p446195183611"></a>Property</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row94619516367"><td class="cellrowborder" valign="top" width="19.99%" headers="mcps1.2.4.1.1 "><p id="p1846553363"><a name="p1846553363"></a><a name="p1846553363"></a>DMA zone</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.13%" headers="mcps1.2.4.1.2 "><p id="p3461158364"><a name="p3461158364"></a><a name="p3461158364"></a>Addresses for direct memory access (DMA) of I/O devices.</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p10461152363"><a name="p10461152363"></a><a name="p10461152363"></a>Uncache</p>
-</td>
-</tr>
-<tr id="row246551361"><td class="cellrowborder" valign="top" width="19.99%" headers="mcps1.2.4.1.1 "><p id="p3461259362"><a name="p3461259362"></a><a name="p3461259362"></a>Normal zone</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.13%" headers="mcps1.2.4.1.2 "><p id="p1546056362"><a name="p1546056362"></a><a name="p1546056362"></a>Addresses for loading the kernel code segment, data segment, heap, and stack.</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p646125143613"><a name="p646125143613"></a><a name="p646125143613"></a>Cache</p>
-</td>
-</tr>
-<tr id="row646165133613"><td class="cellrowborder" valign="top" width="19.99%" headers="mcps1.2.4.1.1 "><p id="p114675183615"><a name="p114675183615"></a><a name="p114675183615"></a>high mem zone</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.13%" headers="mcps1.2.4.1.2 "><p id="p194611583613"><a name="p194611583613"></a><a name="p194611583613"></a>Addresses for allocating contiguous virtual memory. The mapped physical memory blocks may not be contiguous.</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p8461153369"><a name="p8461153369"></a><a name="p8461153369"></a>Cache</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-**Table  2**  User-mode virtual addresses
-
-<a name="table19965411366"></a>
-<table><thead align="left"><tr id="row646185183618"><th class="cellrowborder" valign="top" width="20%" id="mcps1.2.4.1.1"><p id="p3466593612"><a name="p3466593612"></a><a name="p3466593612"></a>Zone</p>
-</th>
-<th class="cellrowborder" valign="top" width="43.120000000000005%" id="mcps1.2.4.1.2"><p id="p84645143613"><a name="p84645143613"></a><a name="p84645143613"></a>Description</p>
-</th>
-<th class="cellrowborder" valign="top" width="36.88%" id="mcps1.2.4.1.3"><p id="p1146115203615"><a name="p1146115203615"></a><a name="p1146115203615"></a>Property</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row7462511363"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2467516363"><a name="p2467516363"></a><a name="p2467516363"></a>Code segment</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.120000000000005%" headers="mcps1.2.4.1.2 "><p id="p7472523618"><a name="p7472523618"></a><a name="p7472523618"></a>User-mode code segment address range</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p14476563611"><a name="p14476563611"></a><a name="p14476563611"></a>Cache</p>
-</td>
-</tr>
-<tr id="row34755153614"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p194735173612"><a name="p194735173612"></a><a name="p194735173612"></a>Heap</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.120000000000005%" headers="mcps1.2.4.1.2 "><p id="p114720518362"><a name="p114720518362"></a><a name="p114720518362"></a>User-mode heap address range</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p9474515364"><a name="p9474515364"></a><a name="p9474515364"></a>Cache</p>
-</td>
-</tr>
-<tr id="row9476518368"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p34714516369"><a name="p34714516369"></a><a name="p34714516369"></a>Stack</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.120000000000005%" headers="mcps1.2.4.1.2 "><p id="p74705163612"><a name="p74705163612"></a><a name="p74705163612"></a>User-mode stack address range</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p144775143613"><a name="p144775143613"></a><a name="p144775143613"></a>Cache</p>
-</td>
-</tr>
-<tr id="row1047353364"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p1947145163615"><a name="p1947145163615"></a><a name="p1947145163615"></a>Shared library</p>
-</td>
-<td class="cellrowborder" valign="top" width="43.120000000000005%" headers="mcps1.2.4.1.2 "><p id="p24745193617"><a name="p24745193617"></a><a name="p24745193617"></a>Address range for loading the user-mode shared library, including the address range mapped by mmap.</p>
-</td>
-<td class="cellrowborder" valign="top" width="36.88%" headers="mcps1.2.4.1.3 "><p id="p11472510363"><a name="p11472510363"></a><a name="p11472510363"></a>Cache</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Working Principles<a name="section072885512412"></a>
+The system divides the virtual memory into memory blocks called virtual pages. The size of a virtual page is generally 4 KiB or 64 KiB. The virtual page of the LiteOS-A kernel is 4 KiB by default. You can configure memory management units (MMUs) as required. The minimum unit of the virtual memory management is a page. A virtual address region in the LiteOS-A kernel can contain one virtual page or multiple virtual pages with contiguous addresses. Similarly, the physical memory is also divided by page, and each memory block is called page frame. The virtual address space is divided as follows: 3 GiB (**0x40000000** to **0xFFFFFFFF**) for the kernel space and 1 GiB (**0x01000000** to **0x3F000000**) for the user space. The following tables describe the virtual address plan. You can view or configure virtual addresses in **los_vm_zone.h**.
+
+**Table 1** Kernel-mode addresses
+
+| Zone| Description| Property|
+| -------- | -------- | -------- |
+| DMA&nbsp;zone | Addresses for direct memory access (DMA) of I/O devices.| Uncache |
+| Normal&nbsp;zone | Addresses for loading the kernel code segment, data segment, heap, and stack.| Cache |
+| high&nbsp;mem&nbsp;zone | Addresses for allocating contiguous virtual memory. The mapped physical memory blocks may not be contiguous.| Cache |
+
+**Table 2** User-mode virtual addresses
+
+| Zone| Description| Property|
+| -------- | -------- | -------- |
+| Code snippet| User-mode code segment address range.| Cache |
+| Heap| User-mode heap address range.| Cache |
+| Stack| User-mode stack address range.| Cache |
+| Shared databases| Address range for loading the user-mode shared library, including the address range mapped by mmap.| Cache |
+
+
+## Working Principles
 
 In virtual memory management, the virtual address space is contiguous, but the mapped physical memory is not necessarily contiguous, as depicted in the following figure. When an executable program is loaded and runs, the CPU accesses the code or data in the virtual address space in the following two cases:
 
--   If the page \(for example, V0\) containing the virtual address accessed by the CPU is mapped to a physical page \(for example, P0\), the CPU locates the page table entry corresponding to the process \(for details, see  [Virtual-to-Physical Mapping](kernel-small-basic-inner-reflect.md)"\), accesses the physical memory based on the physical address information in the page table entry, and returns the content.
--   If the page \(for example, V2\) containing the virtual address accessed by the CPU is not mapped to a physical page, the system triggers a page missing fault, requests a physical page, copies the corresponding information to the physical page, and updates the start address of the physical page to the page table entry. Then, the CPU can access specific code or data by executing the instruction for accessing the virtual memory again.
-
-**Figure  1**  Mapping between the virtual and physical memory addresses<a name="fig144371159135620"></a>  
-![](figures/mapping-between-the-virtual-and-physical-memory-addresses.png "mapping-between-the-virtual-and-physical-memory-addresses")
-
-## Development Guidelines<a name="section20956116050"></a>
-
-### Available APIs<a name="section166137221657"></a>
-
-**Table  3**  APIs of the virtual memory management module
-
-<a name="table1415203765610"></a>
-<table><thead align="left"><tr id="row134151837125611"><th class="cellrowborder" valign="top" width="12.811281128112812%" id="mcps1.2.4.1.1"><p id="p16415637105612"><a name="p16415637105612"></a><a name="p16415637105612"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="29.84298429842984%" id="mcps1.2.4.1.2"><p id="p11415163718562"><a name="p11415163718562"></a><a name="p11415163718562"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="57.34573457345735%" id="mcps1.2.4.1.3"><p id="p1641533755612"><a name="p1641533755612"></a><a name="p1641533755612"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row0415737175610"><td class="cellrowborder" rowspan="5" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p4917132105710"><a name="p4917132105710"></a><a name="p4917132105710"></a>Obtaining process memory space</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p341513372561"><a name="p341513372561"></a><a name="p341513372561"></a>LOS_CurrSpaceGet</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p74151037185617"><a name="p74151037185617"></a><a name="p74151037185617"></a>Obtains the pointer to the current process space structure.</p>
-</td>
-</tr>
-<tr id="row1841519376561"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p64151837155618"><a name="p64151837155618"></a><a name="p64151837155618"></a>LOS_SpaceGet</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p441516379562"><a name="p441516379562"></a><a name="p441516379562"></a>Obtains the pointer to the process space structure corresponding to the virtual address.</p>
-</td>
-</tr>
-<tr id="row536885134010"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p236819594010"><a name="p236819594010"></a><a name="p236819594010"></a>LOS_GetKVmSpace</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p736918564019"><a name="p736918564019"></a><a name="p736918564019"></a>Obtains the pointer to the kernel process space structure.</p>
-</td>
-</tr>
-<tr id="row11567448194112"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p0568204814115"><a name="p0568204814115"></a><a name="p0568204814115"></a>LOS_GetVmallocSpace</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p05681348204114"><a name="p05681348204114"></a><a name="p05681348204114"></a>Obtains the pointer to the vmalloc space structure.</p>
-</td>
-</tr>
-<tr id="row1141513373562"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p17765212416"><a name="p17765212416"></a><a name="p17765212416"></a>LOS_GetVmSpaceList</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1972971913115"><a name="p1972971913115"></a><a name="p1972971913115"></a>Obtains the pointer to the process space linked list.</p>
-</td>
-</tr>
-<tr id="row137812054195014"><td class="cellrowborder" rowspan="15" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p15344719152113"><a name="p15344719152113"></a><a name="p15344719152113"></a>Operations related to the virtual address region</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p97821654195014"><a name="p97821654195014"></a><a name="p97821654195014"></a>LOS_RegionFind</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p137821854205011"><a name="p137821854205011"></a><a name="p137821854205011"></a>Searches for and returns the virtual address region corresponding to the specified address in the process space.</p>
-</td>
-</tr>
-<tr id="row254713575505"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p954785720501"><a name="p954785720501"></a><a name="p954785720501"></a>LOS_RegionRangeFind</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p20547557175013"><a name="p20547557175013"></a><a name="p20547557175013"></a>Searches for and returns the virtual address region corresponding to the specified address range in the process space.</p>
-</td>
-</tr>
-<tr id="row1692045119"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1510110115114"><a name="p1510110115114"></a><a name="p1510110115114"></a>LOS_IsRegionFileValid</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p61011045112"><a name="p61011045112"></a><a name="p61011045112"></a>Checks whether the virtual address region is mapped to a file.</p>
-</td>
-</tr>
-<tr id="row186701424548"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1967018210546"><a name="p1967018210546"></a><a name="p1967018210546"></a>LOS_RegionAlloc</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p196701221548"><a name="p196701221548"></a><a name="p196701221548"></a>Requests a free virtual address region.</p>
-</td>
-</tr>
-<tr id="row1955586175412"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p555626195420"><a name="p555626195420"></a><a name="p555626195420"></a>LOS_RegionFree</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p85568612547"><a name="p85568612547"></a><a name="p85568612547"></a>Releases a specific region in the process space.</p>
-</td>
-</tr>
-<tr id="row259111510282"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p3591135110288"><a name="p3591135110288"></a><a name="p3591135110288"></a>LOS_RegionEndAddr</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p4675183817474"><a name="p4675183817474"></a><a name="p4675183817474"></a>Obtains the end address of the specified address region.</p>
-</td>
-</tr>
-<tr id="row12894115716285"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p889418577280"><a name="p889418577280"></a><a name="p889418577280"></a>LOS_RegionSize</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p68941757112813"><a name="p68941757112813"></a><a name="p68941757112813"></a>Obtains the size of a region.</p>
-</td>
-</tr>
-<tr id="row14931456182812"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1293135611287"><a name="p1293135611287"></a><a name="p1293135611287"></a>LOS_IsRegionTypeFile</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1393185613288"><a name="p1393185613288"></a><a name="p1393185613288"></a>Checks whether the address region is a file memory mapping.</p>
-</td>
-</tr>
-<tr id="row12153854132814"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p115335452819"><a name="p115335452819"></a><a name="p115335452819"></a>LOS_IsRegionPermUserReadOnly</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1415314545285"><a name="p1415314545285"></a><a name="p1415314545285"></a>Checks whether the address region is read-only in the user space.</p>
-</td>
-</tr>
-<tr id="row29249497282"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1492415495284"><a name="p1492415495284"></a><a name="p1492415495284"></a>LOS_IsRegionFlagPrivateOnly</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1392434982817"><a name="p1392434982817"></a><a name="p1392434982817"></a>Checks whether the address region has private attributes.</p>
-</td>
-</tr>
-<tr id="row1233194042814"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p3339401289"><a name="p3339401289"></a><a name="p3339401289"></a>LOS_SetRegionTypeFile</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p193317409285"><a name="p193317409285"></a><a name="p193317409285"></a>Sets the file memory mapping attribute.</p>
-</td>
-</tr>
-<tr id="row178971473283"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p4898184782815"><a name="p4898184782815"></a><a name="p4898184782815"></a>LOS_IsRegionTypeDev</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p11898144722818"><a name="p11898144722818"></a><a name="p11898144722818"></a>Checks whether the address region is device memory mapping.</p>
-</td>
-</tr>
-<tr id="row11137546152811"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p20137194672812"><a name="p20137194672812"></a><a name="p20137194672812"></a>LOS_SetRegionTypeDev</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p81384462287"><a name="p81384462287"></a><a name="p81384462287"></a>Sets the device memory mapping attribute. </p>
-</td>
-</tr>
-<tr id="row1023564216285"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p92351842162819"><a name="p92351842162819"></a><a name="p92351842162819"></a>LOS_IsRegionTypeAnon</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p6235842132818"><a name="p6235842132818"></a><a name="p6235842132818"></a>Checks whether the address region is an anonymous mapping.</p>
-</td>
-</tr>
-<tr id="row1646364402813"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p44631644152814"><a name="p44631644152814"></a><a name="p44631644152814"></a>LOS_SetRegionTypeAnon</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p174631844182818"><a name="p174631844182818"></a><a name="p174631844182818"></a>Sets the anonymous mapping attribute. </p>
-</td>
-</tr>
-<tr id="row038233717288"><td class="cellrowborder" rowspan="5" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p6820331185317"><a name="p6820331185317"></a><a name="p6820331185317"></a>Verifying address</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p838383720282"><a name="p838383720282"></a><a name="p838383720282"></a>LOS_IsUserAddress</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p12383837102818"><a name="p12383837102818"></a><a name="p12383837102818"></a>Checks whether the address is in the user space.</p>
-</td>
-</tr>
-<tr id="row61506354284"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p2151113517288"><a name="p2151113517288"></a><a name="p2151113517288"></a>LOS_IsUserAddressRange</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p615123552814"><a name="p615123552814"></a><a name="p615123552814"></a>Checks whether the address region is in the user space.</p>
-</td>
-</tr>
-<tr id="row18301515194210"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p19301141519421"><a name="p19301141519421"></a><a name="p19301141519421"></a>LOS_IsKernelAddress</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p730110154427"><a name="p730110154427"></a><a name="p730110154427"></a>Checks whether the address is in the kernel space.</p>
-</td>
-</tr>
-<tr id="row191211718204213"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1112121812423"><a name="p1112121812423"></a><a name="p1112121812423"></a>LOS_IsKernelAddressRange</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p6122101814219"><a name="p6122101814219"></a><a name="p6122101814219"></a>Checks whether the address region is in the kernel space.</p>
-</td>
-</tr>
-<tr id="row774964092115"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p17152102415416"><a name="p17152102415416"></a><a name="p17152102415416"></a>LOS_IsRangeInSpace</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p115218248547"><a name="p115218248547"></a><a name="p115218248547"></a>Checks whether the address region is in the process space.</p>
-</td>
-</tr>
-<tr id="row179196525521"><td class="cellrowborder" rowspan="3" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p153501191535"><a name="p153501191535"></a><a name="p153501191535"></a>vmalloc operations</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p152945155531"><a name="p152945155531"></a><a name="p152945155531"></a>LOS_VMalloc</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p1229461512535"><a name="p1229461512535"></a><a name="p1229461512535"></a>Requests memory using <strong id="b2981120154115"><a name="b2981120154115"></a><a name="b2981120154115"></a>vmalloc</strong>.</p>
-</td>
-</tr>
-<tr id="row1934135935211"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p162941115155315"><a name="p162941115155315"></a><a name="p162941115155315"></a>LOS_VFree</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p12294171516536"><a name="p12294171516536"></a><a name="p12294171516536"></a>Releases memory using <strong id="b1911793812416"><a name="b1911793812416"></a><a name="b1911793812416"></a>vmalloc</strong>.</p>
-</td>
-</tr>
-<tr id="row944214919304"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p644229163016"><a name="p644229163016"></a><a name="p644229163016"></a>LOS_IsVmallocAddress</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1344220993011"><a name="p1344220993011"></a><a name="p1344220993011"></a>Checks whether the address is requested by using <strong id="b11623210425"><a name="b11623210425"></a><a name="b11623210425"></a>vmalloc</strong>.</p>
-</td>
-</tr>
-<tr id="row72131845145315"><td class="cellrowborder" rowspan="4" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p84847816543"><a name="p84847816543"></a><a name="p84847816543"></a>Requesting memory</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p8787345546"><a name="p8787345546"></a><a name="p8787345546"></a>LOS_KernelMalloc</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p17787444543"><a name="p17787444543"></a><a name="p17787444543"></a>Allocates memory from the heap memory pool if the requested memory is less than 16 KiB; allocates multiple contiguous physical pages for memory allocation if the requested memory is greater than 16 KiB.</p>
-</td>
-</tr>
-<tr id="row48491549145311"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p14787149541"><a name="p14787149541"></a><a name="p14787149541"></a>LOS_KernelMallocAlign</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p478719411543"><a name="p478719411543"></a><a name="p478719411543"></a>Allocates memory with alignment attributes. The allocation rule is the same as that of the <strong id="b13365164915813"><a name="b13365164915813"></a><a name="b13365164915813"></a>LOS_KernelMalloc</strong> API.</p>
-</td>
-</tr>
-<tr id="row151093538536"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p15787134185412"><a name="p15787134185412"></a><a name="p15787134185412"></a>LOS_KernelFree</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p878712410546"><a name="p878712410546"></a><a name="p878712410546"></a>Releases the memory requested by <strong id="b426742412595"><a name="b426742412595"></a><a name="b426742412595"></a>LOS_KernelMalloc</strong> and <strong id="b20812228205916"><a name="b20812228205916"></a><a name="b20812228205916"></a>LOS_KernelMallocAlign</strong>.</p>
-</td>
-</tr>
-<tr id="row5126856205319"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p197871646545"><a name="p197871646545"></a><a name="p197871646545"></a>LOS_KernelRealloc</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p378813416547"><a name="p378813416547"></a><a name="p378813416547"></a>Reallocates the memory requested by <strong id="b161871016807"><a name="b161871016807"></a><a name="b161871016807"></a>LOS_KernelMalloc</strong> and <strong id="b1368514211001"><a name="b1368514211001"></a><a name="b1368514211001"></a>LOS_KernelMallocAlign</strong>.</p>
-</td>
-</tr>
-<tr id="row12397132718549"><td class="cellrowborder" rowspan="4" valign="top" width="12.811281128112812%" headers="mcps1.2.4.1.1 "><p id="p112971954115419"><a name="p112971954115419"></a><a name="p112971954115419"></a>Others</p>
-</td>
-<td class="cellrowborder" valign="top" width="29.84298429842984%" headers="mcps1.2.4.1.2 "><p id="p2777034145414"><a name="p2777034145414"></a><a name="p2777034145414"></a>LOS_PaddrQuery</p>
-</td>
-<td class="cellrowborder" valign="top" width="57.34573457345735%" headers="mcps1.2.4.1.3 "><p id="p13777834115413"><a name="p13777834115413"></a><a name="p13777834115413"></a>Obtains the physical address based on the virtual address.</p>
-</td>
-</tr>
-<tr id="row5558122119542"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p9558421155418"><a name="p9558421155418"></a><a name="p9558421155418"></a>LOS_VmSpaceFree</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p755852119545"><a name="p755852119545"></a><a name="p755852119545"></a>Releases the process space, including the virtual memory region and page table.</p>
-</td>
-</tr>
-<tr id="row15860142919544"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p168603298547"><a name="p168603298547"></a><a name="p168603298547"></a>LOS_VmSpaceReserve</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p12860429185410"><a name="p12860429185410"></a><a name="p12860429185410"></a>Reserves a memory space in the process space.</p>
-</td>
-</tr>
-<tr id="row394217543569"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p11943125419566"><a name="p11943125419566"></a><a name="p11943125419566"></a>LOS_VaddrToPaddrMmap</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p16943954105613"><a name="p16943954105613"></a><a name="p16943954105613"></a>Maps the physical address region with the specified length to a virtual address region. You need to request the physical address region before the operation.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-### How to Develop<a name="section8752103914513"></a>
+- If the page (for example, V0) containing the virtual address accessed by the CPU is mapped to a physical page (for example, P0), the CPU locates the page table entry corresponding to the process (for details, see  [Virtual-to-Physical Mapping](kernel-small-basic-inner-reflect.md)"), accesses the physical memory based on the physical address information in the page table entry, and returns the content.
 
-To use APIs related to virtual memory:
+- If the page (for example, V2) containing the virtual address accessed by the CPU is not mapped to a physical page, the system triggers a page missing fault, requests a physical page, copies the corresponding information to the physical page, and updates the start address of the physical page to the page table entry. Then, the CPU can access specific code or data by executing the instruction for accessing the virtual memory again.
+
+  **Figure 1** Mapping between the virtual and physical memory addresses<br>
+
+  ![](figures/mapping-between-the-virtual-and-physical-memory-addresses.png "mapping-between-the-virtual-and-physical-memory-addresses")
+
+
+## Development Guidelines
+
+
+### Available APIs
+
+**Table 3** APIs of the virtual memory management module
 
-1.  Obtain the process space structure using the APIs for obtaining the process space, and access the structure information.
-2.  Perform the following operations on the virtual address region:
-    -   Call  **LOS\_RegionAlloc**  to request a virtual address region.
+| API| Description|
+| -------- | -------- |
+|  LOS_CurrSpaceGet | Obtains the pointer to the current process space structure.|
+| LOS_SpaceGet | Obtains the pointer to the process space structure corresponding to the virtual address.|
+| LOS_GetKVmSpace | Obtains the pointer to the kernel process space structure.|
+| LOS_GetVmallocSpace | Obtains the pointer to the vmalloc space structure.|
+| LOS_GetVmSpaceList | Obtains the pointer to the process space linked list.|
 
-    -   Call  **LOS\_RegionFind**  and  **LOS\_RegionRangeFind**  to check whether the corresponding address region exists.
-    -   Call  **LOS\_RegionFree**  to release a virtual address region.
+**Table 4** Operations related to the virtual address region
+
+| API| Description|
+| -------- | -------- |
+| LOS_RegionFind | Searches for and returns the virtual address region corresponding to the specified address in the process space.|
+| LOS_RegionRangeFind | Searches for and returns the virtual address region corresponding to the specified address range in the process space.|
+| LOS_IsRegionFileValid | Checks whether the virtual address region is mapped to a file.|
+| LOS_RegionAlloc | Requests a free virtual address region.|
+| LOS_RegionFree | Releases a specific region in the process space.|
+| LOS_RegionEndAddr | Obtains the end address of the specified address region.|
+| LOS_RegionSize | Obtains the size of a region.|
+| LOS_IsRegionTypeFile | Checks whether the address region is a file memory mapping.|
+| LOS_IsRegionPermUserReadOnly | Checks whether the address region is read-only in the user space.|
+| LOS_IsRegionFlagPrivateOnly | Checks whether the address region has private attributes.|
+| LOS_SetRegionTypeFile | Sets the file memory mapping attributes. |
+| LOS_IsRegionTypeDev | Checks whether the address region is device memory mapping.|
+| LOS_SetRegionTypeDev | Sets the device memory mapping attributes. |
+| LOS_IsRegionTypeAnon | Checks whether the address region is an anonymous mapping.|
+| LOS_SetRegionTypeAnon | Sets the anonymous mapping attributes. |
+
+**Table 5** APIs for address verification
+
+| API| Description|
+| -------- | -------- |
+| LOS_IsUserAddress | Checks whether the address is in the user space.|
+| LOS_IsUserAddressRange | Checks whether the address region is in the user space.|
+| LOS_IsKernelAddress | Checks whether the address is in the kernel space.|
+| LOS_IsKernelAddressRange | Checks whether the address region is in the kernel space.|
+| LOS_IsRangeInSpace | Checks whether the address region is in the process space.|
+
+**Table 6** APIs for vmalloc operations
+
+| API| Description|
+| -------- | -------- |
+| LOS_VMalloc | Requests memory using **vmalloc**.|
+| LOS_VFree | Releases memory using **vmalloc**.|
+| LOS_IsVmallocAddress | Checks whether the address is requested using **vmalloc**. |
+
+**Table 7** APIs for memory allocation
+
+| API| Description|
+| -------- | -------- |
+| LOS_KernelMalloc | Allocates memory from the heap memory pool if the requested memory is less than 16 KiB; allocates multiple contiguous physical pages if the requested memory is greater than 16 KiB. |
+| LOS_KernelMallocAlign | Allocates memory with alignment attributes. The allocation rule is the same as that of the **LOS_KernelMalloc** API.|
+| LOS_KernelFree | Releases the memory requested by **LOS_KernelMalloc** and **LOS_KernelMallocAlign**.|
+| LOS_KernelRealloc | Reallocates the memory requested by **LOS_KernelMalloc** and **LOS_KernelMallocAlign**.|
+
+**Table 8** Other APIs
+
+| API | Description |
+| -------- | -------- |
+| LOS_PaddrQuery | Obtains the physical address based on the virtual address. |
+| LOS_VmSpaceFree | Releases the process space, including the virtual memory region and page table. |
+| LOS_VmSpaceReserve | Reserves a memory space in the process space. |
+| LOS_VaddrToPaddrMmap | Maps the physical address region with the specified length to a virtual address region. You need to request the physical address region before the operation. |
+
+
+### How to Develop
+
+To use APIs related to virtual memory:
 
-3.  Call  **vmalloc**  and memory requesting APIs to apply for memory in the kernel as demanded.
+1. Obtain the process space structure using the APIs for obtaining the process space, and access the structure information.
+2. Perform the following operations on the virtual address region: 
+   - Call **LOS_RegionAlloc** to request a virtual address region.
+   - Call **LOS_RegionFind** and **LOS_RegionRangeFind** to check whether the corresponding address region exists.
+   - Call **LOS_RegionFree** to release a virtual address region.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->The physical memory requested by using the memory requesting APIs must be contiguous. If the system cannot provide a large number of contiguous memory blocks, the request fails. Therefore, the memory requesting APIs are recommended for requesting small memory blocks.  **vmalloc**  is recommended for requesting non-contiguous physical memory. However, the memory is allocated in the unit of pages \(4096 bytes/page in the current system\). If you want memory that is an integer multiple of a page, you can use  **vmalloc**. For example, you can use  **vmalloc**  to request memory for file reading in a file system, which demands a large cache.
+3. Call **vmalloc** APIs (see table 6) and memory allocation APIs (see table 7) to apply for memory in the kernel as required.
 
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> 
+> The physical memory requested by using the memory allocation APIs must be contiguous. If the system cannot provide a large number of contiguous memory blocks, the request fails. Therefore, the memory allocation APIs are recommended for requesting small memory blocks. 
+>
+> **vmalloc** APIs are recommended for requesting non-contiguous physical memory. However, the memory is allocated in the unit of pages (4096 bytes/page in the current system). If you want memory that is an integer multiple of a page, you can use **vmalloc** APIs. For example, you can use **vmalloc** to request memory for file reading in a file system, which demands a large cache.
diff --git a/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md b/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md
index 97f8b77622ee03c6701df1e0b426778c8a956ddd..18558986daf9a5cf45e72a771aa8dc6e98454876 100644
--- a/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md
+++ b/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md
@@ -1,128 +1,85 @@
 # RW Lock
 
 
-## Basic Concepts<a name="section4692105214260"></a>
+## Basic Concepts
 
-Similar to a mutex, a read-write lock \(RW lock\) can be used to synchronize tasks in the same process. Different from a mutex, an RW lock allows concurrent access for read operations and exclusive access for write operations.
+Similar to a mutex, a read-write lock (RW lock) can be used to synchronize tasks in the same process. Different from a mutex, an RW lock allows concurrent access for read operations and exclusive access for write operations.
 
 An RW lock has three states: locked in read mode, locked in write mode, and unlocked.
 
 Observe the following rules when using RW locks:
 
--   If there is no lock in write mode in the protected area, any task can add a lock in read mode.
--   A lock in write mode can be added only when the protected area is in the unlocked state.
+- If there is no lock in write mode in the protected area, any task can add a lock in read mode.
+
+- A lock in write mode can be added only when the protected area is in the unlocked state.
 
 In a multi-task environment, multiple tasks may access the same shared resource. A lock in read mode allows access to a protected area in shared mode, and a lock in a write mode allows exclusive access to the shared resource.
 
 This sharing-exclusive manner is suitable for a multi-task environment where the data read operations are far more than data write operations. It can improve multi-task concurrency of the application.
 
-## Working Principles<a name="section1239111562720"></a>
+
+## Working Principles
 
 How does an RW lock implement lock in read mode and lock in write mode to control read/write access of multiple tasks?
 
--   If task A acquires the lock in write mode for the first time, other tasks cannot acquire or attempt to acquire the lock in read mode.
-
--   If task A acquires the lock in read mode, the RW lock count increments by 1 when a task acquires or attempts to acquire the lock in read mode.
-
-## Development Guidelines<a name="section11643194275"></a>
-
-### Available APIs<a name="section15335332122717"></a>
-
-**Table  1**  Read/write lock module APIs
-
-<a name="table37108292611"></a>
-<table><thead align="left"><tr id="row8711112919610"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p3711102912617"><a name="p3711102912617"></a><a name="p3711102912617"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p1671110293610"><a name="p1671110293610"></a><a name="p1671110293610"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p87114292617"><a name="p87114292617"></a><a name="p87114292617"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row37115291166"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1795312108911"><a name="p1795312108911"></a><a name="p1795312108911"></a>Creating and deleting an RW lock</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1671120293611"><a name="p1671120293611"></a><a name="p1671120293611"></a>LOS_RwlockInit</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p171112291967"><a name="p171112291967"></a><a name="p171112291967"></a>Creates an RW lock.</p>
-</td>
-</tr>
-<tr id="row17711329268"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p071114291864"><a name="p071114291864"></a><a name="p071114291864"></a>LOS_RwlockDestroy</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p137111129965"><a name="p137111129965"></a><a name="p137111129965"></a>Deletes the specified RW lock.</p>
-</td>
-</tr>
-<tr id="row5711192912616"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p86087143910"><a name="p86087143910"></a><a name="p86087143910"></a>Requesting a lock in read mode</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1171112295614"><a name="p1171112295614"></a><a name="p1171112295614"></a>LOS_RwlockRdLock</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1271110291969"><a name="p1271110291969"></a><a name="p1271110291969"></a>Requests the specified lock in read mode.</p>
-</td>
-</tr>
-<tr id="row1571162918615"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1564192618292"><a name="p1564192618292"></a><a name="p1564192618292"></a>LOS_RwlockTryRdLock</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p107118291660"><a name="p107118291660"></a><a name="p107118291660"></a>Attempts to request the specified lock in read mode.</p>
-</td>
-</tr>
-<tr id="row189551130172817"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p7951153082815"><a name="p7951153082815"></a><a name="p7951153082815"></a>Requesting a lock in write mode</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p111591404308"><a name="p111591404308"></a><a name="p111591404308"></a>LOS_RwlockWrLock</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p11951183013281"><a name="p11951183013281"></a><a name="p11951183013281"></a>Requests the specified lock in write mode.</p>
-</td>
-</tr>
-<tr id="row199551530122820"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p32171573014"><a name="p32171573014"></a><a name="p32171573014"></a>LOS_RwlockTryWrLock</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p5951123092819"><a name="p5951123092819"></a><a name="p5951123092819"></a>Attempts to request the specified lock in write mode.</p>
-</td>
-</tr>
-<tr id="row1642820328301"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1542823210305"><a name="p1542823210305"></a><a name="p1542823210305"></a>Releasing an RW lock</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p174281324308"><a name="p174281324308"></a><a name="p174281324308"></a>LOS_RwlockUnLock</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1342810327309"><a name="p1342810327309"></a><a name="p1342810327309"></a>Releases the specified RW lock.</p>
-</td>
-</tr>
-<tr id="row11318134133111"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p73182345312"><a name="p73182345312"></a><a name="p73182345312"></a>Verifying RW lock validity</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1031813416318"><a name="p1031813416318"></a><a name="p1031813416318"></a>LOS_RwlockIsValid</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p43187342311"><a name="p43187342311"></a><a name="p43187342311"></a>Checks the validity of an RW lock.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-### How to Develop<a name="section14774114882714"></a>
+- If task A acquires the lock in write mode for the first time, other tasks cannot acquire or attempt to acquire the lock in read mode.
+
+- If task A acquires the lock in read mode, the RW lock count increments by 1 when a task acquires or attempts to acquire the lock in read mode.
+
+
+## Development Guidelines
+
+
+### Available APIs
+
+**Table 1** APIs of the RW lock module
+
+| API| Description|
+| -------- | -------- |
+| LOS_RwlockInit| Creates an RW lock.|
+| LOS_RwlockDestroy| Deletes an RW lock.|
+| LOS_RwlockRdLock| Requests the specified lock in read mode.|
+| LOS_RwlockTryRdLock| Attempts to request a lock in read mode.|
+| LOS_RwlockWrLock| Requests the specified lock in write mode.|
+| LOS_RwlockTryWrLock| Attempts to request a lock in write mode.|
+| LOS_RwlockUnLock| Releases the specified RW lock.|
+| LOS_RwlockIsValid| Checks the validity of an RW lock.|
+
+
+### How to Develop
 
 The typical development process is as follows: 
 
-1. Call  **LOS\_RwlockInit**  to create an RW lock.
+1. Call **LOS_RwlockInit** to create an RW lock.
 
-2. Call  **LOS\_RwlockRdLock**  to request a lock in read mode or call  **LOS\_RwlockWrLock**  to request a lock in write mode.
+2. Call **LOS_RwlockRdLock** to request a lock in read mode or call **LOS_RwlockWrLock** to request a lock in write mode.
 
-If a lock in read mode is requested:
+   If a lock in read mode is requested:
 
--   If the lock is not held, the read task can acquire the lock.
--   If the lock is held, the read task acquires the lock and is executed based on the task priority.
--   If the lock in write mode is held by another task, the task cannot acquire the lock until the lock in write mode is released.
+   - If the lock is not held, the read task can acquire the lock.
 
-If a lock in write mode is requested:
+   - If the lock is held, the read task acquires the lock and is executed based on the task priority.
 
--   If the lock is not held or if the task that holds the lock in read mode is the one that requests the lock in write mode, the task acquires the lock in write mode immediately.
--   If the lock already has a lock in read mode and the read task has a higher priority, the current task is suspended until the lock in read mode is released.
+   - If the lock in write mode is held by another task, the task cannot acquire the lock until the lock in write mode is released.
 
-3. There are three types of locks in read mode and write mode: non-block mode, permanent block mode, and scheduled block mode. The difference lies in the task suspension time.
+   If a lock in write mode is requested:
+
+   - If the lock is not held or if the task that holds the lock in read mode is the one that requests the lock in write mode, the task acquires the lock in write mode immediately.
 
-4. Call  **LOS\_RwlockUnLock**  to release an RW lock.
+   - If the lock already has a lock in read mode and the read task has a higher priority, the current task is suspended until the lock in read mode is released.
 
--   If tasks are blocked by the specified RW lock, the task with the highest priority is woken up, enters the Ready state, and is scheduled.
+3. There are three types of locks in read mode and write mode: non-block mode, permanent block mode, and scheduled block mode. The difference lies in the task suspension time.
 
--   If no task is blocked by the specified RW lock, the RW lock is released.
+4. Call **LOS_RwlockUnLock** to release an RW lock.
 
-5. Call  **LOS\_RwlockDestroy**  to delete an RW lock.
+   - If tasks are blocked by the specified RW lock, the task with the highest priority is woken up, enters the Ready state, and is scheduled.
+   - If no task is blocked by the specified RW lock, the RW lock is released.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->-   The RW lock cannot be used in the interrupt service program.
->-   When using the LiteOS-A kernel, the OpenHarmony must ensure real-time task scheduling and avoid long-time task blocking. Therefore, an RW lock must be released as soon as possible after use.
->-   When an RW lock is held by a task, the task priority cannot be changed by using APIs such as  **LOS\_TaskPriSet**.
+5. Call **LOS_RwlockDestroy** to delete an RW lock.
 
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+   > - The RW lock cannot be used in the interrupt service program.
+   > 
+   > - The LiteOS-A kernel used in the RTOS must ensure real-time task scheduling and avoid long-time task blocking. Therefore, RW locks must be released as soon as possible after use.
+   > 
+   > - When an RW lock is held by a task, the task priority cannot be changed by using APIs, such as **LOS_TaskPriSet**.
diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md
index d82858014b528de1c82b4313cfc3a0e0312a9540..e2bf8109175e2498239134fd959f71326d263bf9 100644
--- a/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md
+++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md
@@ -1,40 +1,49 @@
 # FAT
 
 
-## Basic Concepts<a name="section621393911385"></a>
+## Basic Concepts
 
-File Allocation Table \(FAT\) is a file system developed for personal computers. It consists of the DOS Boot Record \(DBR\) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, the number of the next cluster of the file, and whether the file ends with the cluster. The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bits per cluster within the FAT, and also restrict the maximum file size in the system. The FAT file system supports multiple media, especially removable media \(such as USB flash drives, SD cards, and removable hard drives\). The FAT file system ensures good compatibility between embedded devices and desktop systems \(such as Windows and Linux\) and facilitates file management.
+File Allocation Table (FAT) is a file system developed for personal computers. It consists of the DOS Boot Record (DBR) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, number of the next cluster of the file, whether the file ends with the cluster. The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bits per cluster within the FAT, and also restrict the maximum file size in the system. The FAT file system supports multiple media, especially removable media (such as USB flash drives, SD cards, and removable hard drives). The FAT file system ensures good compatibility between embedded devices and desktop systems (such as Windows and Linux) and facilitates file management.
 
 The OpenHarmony kernel supports FAT12, FAT16, and FAT32 file systems. These file systems require a tiny amount of code to implement, use less resources, support a variety of physical media, and are tailorable and compatible with Windows and Linux systems. They also support identification of multiple devices and partitions. The kernel supports multiple partitions on hard drives and allows creation of the FAT file system on the primary partition and logical partition.
 
-## Working Principles<a name="section10796155213381"></a>
+
+## Working Principles
 
 This document does not include the FAT design and physical layout. You can find a lot of reference on the Internet.
 
-The OpenHarmony LiteOS-A kernel uses block cache \(Bcache\) to improve FAT performance. When read and write operations are performed, Bcache caches the sectors close to the read and write sectors to reduce the number of I/Os and improve performance. The basic cache unit of Bcache is block. The size of each block is the same. By default, there are 28 blocks, and each block caches data of 64 sectors. When the Bcache dirty block rate \(number of dirty sectors/total number of sectors\) reaches the threshold, writeback is triggered and cached data is written back to disks. You can manually call  **sync**  and  **fsync**  to write data to disks if you want. Some FAT APIs \(such as  **close**  and  **umount**\) may also trigger writeback operations. However, you are advised not to use them to trigger writeback.
+The OpenHarmony LiteOS-A kernel uses block cache (Bcache) to improve FAT performance. When read and write operations are performed, Bcache caches the sectors close to the read and write sectors to reduce the number of I/Os and improve performance. The basic cache unit of Bcache is block. The size of each block is the same. By default, there are 28 blocks, and each block caches data of 64 sectors. When the Bcache dirty block rate (number of dirty sectors/total number of sectors) reaches the threshold, writeback is triggered and cached data is written back to disks. You can manually call **sync** and **fsync** to write data to disks if you want. Some FAT APIs (such as **close** and **umount**) may also trigger writeback operations. However, you are advised not to use them to trigger writeback.
+
 
-## Development Guidelines<a name="section144094483919"></a>
+## Development Guidelines
 
-### How to Develop<a name="section139086116394"></a>
+
+ **How to Develop**
 
 The development process involves mounting partitions, managing files and directories, and unmounting partitions.
 
-The device name of the SD card or MMC is  **mmcblk\[x\]p\[y\]**, and the file system type is  **vfat**.
+The device name of the SD card or MMC is **mmcblk[x]p[y]**, and the file system type is **vfat**.
 
 Example:
 
+  
 ```
 mount("/dev/mmcblk0p0", "/mnt", "vfat", 0, NULL);
 ```
 
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->-   The size of a single FAT file cannot be greater than 4 GiB.
->-   When there are two SD card slots, the first card inserted is card 0, and that inserted later is card 1.
->-   When multi-partition is enabled and there are multiple partitions, the device node  **/dev/mmcblk0**  \(primary device\) registered by card 0 and  **/dev/mmcblk0p0**  \(secondary device\) are the same device. In this case, you cannot perform operations on the primary device.
->-   Before removing an SD card, close the open files and directories and unmount the related nodes. Otherwise, SD card exceptions or memory leaks may occur.
->-   Before performing the  **format**  operation, unmount the mount point.
->-   After the Bcache feature takes effect, note the following:
->    -   When  **MS\_NOSYNC**  is carried in the  **mount**  function, FAT does not proactively write the content in the cache back to the storage device. The FAT-related APIs  **open**,  **close**,  **unlink**,  **rename**,  **mkdir**,  **rmdir**, and  **truncate**  do not automatically perform the  **sync**  operation, which improves the operation speed. However, the upper layer must actively invoke the  **sync**  operation to synchronize data. Otherwise, data loss may occur.
->    -   Bcache provides scheduled writeback. After  **LOSCFG\_FS\_FAT\_CACHE\_SYNC\_THREAD**  is enabled in  **menuconfig**, the OpenHarmony kernel creates a scheduled task to write the Bcache data back to disks. By default, the kernel checks the dirty block rate in the Bcache every 5 seconds. If the dirty block rate exceeds 80%, the  **sync**  operation will be performed to write all dirty data in the Bcache to disks. You can call  **LOS\_SetSyncThreadPrio**,  **LOS\_SetSyncThreadInterval**, and  **LOS\_SetDirtyRatioThreshold**  to set the task priority, flush interval, and dirty block rate threshold, respectively.
->    -   The cache has 28 blocks by default, and each block has 64 sectors.
-
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+> - The size of a single FAT file cannot be greater than 4 GiB.
+> 
+> - When there are two SD card slots, the first card inserted is card 0, and that inserted later is card 1.
+> 
+> - When multi-partition is enabled and there are multiple partitions, the device node **/dev/mmcblk0** (primary device) registered by card 0 and **/dev/mmcblk0p0** (secondary device) are the same device. In this case, you cannot perform operations on the primary device.
+> 
+> - Before removing an SD card, close the open files and directories and unmount the related nodes. Otherwise, SD card exceptions or memory leaks may occur.
+> 
+> - Before performing the **format** operation, unmount the mount point.
+> 
+> - After the Bcache feature takes effect, note the following:
+>   - When **MS_NOSYNC** is carried in the **mount** function, FAT does not proactively write the content in the cache back to the storage device. The FAT-related APIs **open**, **close**, **unlink**, **rename**, **mkdir**, **rmdir**, and **truncate** do not automatically perform the **sync** operation, which improves the operation speed. However, the upper layer must actively invoke the **sync** operation to synchronize data. Otherwise, data loss may occur.
+> 
+>   - Bcache provides scheduled writeback. After **LOSCFG_FS_FAT_CACHE_SYNC_THREAD** is enabled in **menuconfig**, the OpenHarmony kernel creates a scheduled task to write the Bcache data back to disks. By default, the kernel checks the dirty block rate in the Bcache every 5 seconds. If the dirty block rate exceeds 80%, the **sync** operation will be performed to write all dirty data in the Bcache to disks. You can call **LOS_SetSyncThreadPrio**, **LOS_SetSyncThreadInterval**, and **LOS_SetDirtyRatioThreshold** to set the task priority, flush interval, and dirty block rate threshold, respectively.
+>   - The cache has 28 blocks by default, and each block has 64 sectors.
diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
index d205531eb3d7ac83645ce872669a645d0d4d5aa5..57e01b4a58d9430f167b89c0cd03f6b4ded73dbf 100644
--- a/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
+++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
@@ -1,135 +1,140 @@
 # NFS
 
 
-## Basic Concepts<a name="section195414101464"></a>
+## Basic Concepts
 
-NFS allows you to share files across hosts and OSs over a network. You can treat NFS as a file system service, which is equivalent to folder sharing in the Windows OS to some extent.
+Network File System (NFS) allows you to share files across hosts and OSs over a network. You can treat NFS as a file system service, which is equivalent to folder sharing in the Windows OS to some extent.
 
-## Working Principles<a name="section165621321194618"></a>
 
-The NFS of the OpenHarmony LiteOS-A kernel acts as an NFS client. The NFS client can mount the directory shared by a remote NFS server to the local machine and run the programs and shared files without occupying the storage space of the current system. To the local machine, the directory on the remote server is like its disk.
-
-## Development Guidelines<a name="section7454935184611"></a>
-
-1.  Create an NFS server.
-
-The following uses the Ubuntu OS as an example to describe how to configure an NFS server.
-
--   Install the NFS server software.
-
-Set the download source of the Ubuntu OS when the network connection is normal.
-
-```
-sudo apt-get install nfs-kernel-server
-```
+## Working Principles
 
--   Create a directory for mounting and assign full permissions for the directory.
-
-```
-mkdir -p /home/sqbin/nfs
-sudo chmod 777 /home/sqbin/nfs
-```
-
--   Configure and start the NFS server.
-
-Append the following line in the  **/etc/exports**  file:
-
-```
-/home/sqbin/nfs *(rw,no_root_squash,async)
-```
-
-**/home/sqbin/nfs**  is the root directory shared by the NFS server.
-
-Start the NFS server.
+The NFS of the OpenHarmony LiteOS-A kernel acts as an NFS client. The NFS client can mount the directory shared by a remote NFS server to the local machine and run the programs and shared files without occupying the storage space of the current system. To the local machine, the directory on the remote server is like its disk.
 
-```
-sudo /etc/init.d/nfs-kernel-server start
-```
 
-Restart the NFS server.
+## Development Guidelines
 
-```
-sudo /etc/init.d/nfs-kernel-server restart
-```
+1. Create an NFS server.
 
-1.  Configure the board as an NFS client.
+   The following uses the Ubuntu OS as an example to describe how to configure an NFS server.
 
-In this section, the NFS client is a device running the OpenHarmony kernel.
+   - Install the NFS server software.
 
--   Set the hardware connection.
+     Set the download source of the Ubuntu OS when the network connection is normal.
 
-Connect the OpenHarmony kernel device to the NFS server. Set their IP addresses in the same network segment. For example, set the IP address of the NFS server to  **10.67.212.178/24**  and set the IP address of the OpenHarmony kernel device to  **10.67.212.3/24**. Note that the preceding IP addresses are private IP addresses used as examples. You need to use your actual IP addresses.
+     ```
+     sudo apt-get install nfs-kernel-server
+     ```
 
-You can run the  **ifconfig**  command to check the OpenHarmony kernel device's IP address.
+   - Create a directory for mounting and assign full permissions for the directory.
 
--   Start the network and ensure that the network between the board and NFS server is normal.
+     ```
+     mkdir -p /home/sqbin/nfs
+     sudo chmod 777 /home/sqbin/nfs
+     ```
 
-Start the Ethernet or another type of network, and then run  **ping**  to check whether the network connection to the server is normal.
+   - Configure and start the NFS server.
 
-```
-OHOS # ping 10.67.212.178
-[0]Reply from 10.67.212.178: time=1ms TTL=63
-[1]Reply from 10.67.212.178: time=0ms TTL=63
-[2]Reply from 10.67.212.178: time=1ms TTL=63
-[3]Reply from 10.67.212.178: time=1ms TTL=63
---- 10.67.212.178 ping statistics ---
-4 packets transmitted, 4 received, 0 loss
-```
+     Append the following line in the **/etc/exports** file:
 
-Initialize the NFS client.
+     ```
+     /home/sqbin/nfs *(rw,no_root_squash,async)
+     ```
+    
+     **/home/sqbin/nfs** is the root directory shared by the NFS server.
+    
+     Start the NFS server.
 
-```
-OHOS # mkdir /nfs
-OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
-```
+     ```
+     sudo /etc/init.d/nfs-kernel-server start
+     ```
+    
+     Restart the NFS server.
 
-If the following information is displayed, the NFS client is initialized.
+     ```
+     sudo /etc/init.d/nfs-kernel-server restart
+     ```
 
-```
-OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
-Mount nfs on 10.67.212.178:/home/sqbin/nfs, uid:1011, gid:1000
-Mount nfs finished.
-```
+2. Configure the board as an NFS client.
 
-This command mounts the  **/home/sqbin/nfs**  directory on the NFS server whose IP address is 10.67.212.178 to the  **/nfs**  directory on the OpenHarmony kernel device.
+   In this section, the NFS client is a device running the OpenHarmony kernel.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->This section assumes that the NFS server is available, that is, the  **/home/sqbin/nfs**  directory on the NFS server 10.67.212.178 is accessible.
->The  **mount**  command format is as follows:
->```
->mount <SERVER_IP:SERVER_PATH> <CLIENT_PATH> nfs
->```
->-   **SERVER\_IP**  indicates the IP address of the server.
->-   **SERVER\_PATH**  indicates the path of the shared directory on the NFS server.
->-   **CLIENT\_PATH**  indicates the NFS path on the local device.
->-   **nfs**  indicates the path to which the remote shared directory is mounted on the local device.
->Replace the parameters as required.
->If you do not want to restrict the NFS access permission, set the permission of the NFS root directory to  **777**  on the Linux CLI.
->```
->chmod -R 777 /home/sqbin/nfs
->```
->The NFS client setting is complete, and the NFS file system has been mounted.
+   - Set the hardware connection.
 
-1.  Share files using NFS.
+     Connect the OpenHarmony kernel device to the NFS server. Set their IP addresses in the same network segment. For example, set the IP address of the NFS server to **10.67.212.178/24** and the IP address of the OpenHarmony kernel device to
+    **10.67.212.3/24**. Note that this IP address is an intranet private IP address. Use the actual IP address.
 
-Create the  **dir**  directory on the NFS server and save the directory. Run the  **ls**  command in the OpenHarmony kernel.
+     You can run the **ifconfig** command to check the OpenHarmony kernel device's IP address.
 
-```
-OHOS # ls /nfs
-```
+   - Start the network and ensure that the network between the board and NFS server is normal.
 
-The following information is returned from the serial port:
+     Start the Ethernet or another type of network, and then run **ping** to check whether the network connection to the server is normal.
 
-```
-OHOS # ls /nfs 
-Directory /nfs:                 
-drwxr-xr-x 0        u:0     g:0     dir
-```
 
-The  **dir**  directory created on the NFS server has been synchronized to the  **/nfs**  directory on the client \(OpenHarmony kernel system\).
+     ```
+     OHOS # ping 10.67.212.178
+	 [0]Reply from 10.67.212.178: time=1ms TTL=63
+	 [1]Reply from 10.67.212.178: time=0ms TTL=63
+     [2]Reply from 10.67.212.178: time=1ms TTL=63
+     [3]Reply from 10.67.212.178: time=1ms TTL=63
+	 --- 10.67.212.178 ping statistics ---
+     4 packets transmitted, 4 received, 0 loss
+     ```
+    
+     Initialize the NFS client.
 
-Similarly, you can create files and directories on the client \(OpenHarmony kernel system\) and access them from the NFS server.
+     ```
+     OHOS # mkdir /nfs
+	 OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
+     ```
+    
+     If the following information is displayed, the NFS client is initialized.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->Currently, the NFS client supports some NFS v3 specifications. Therefore, the NFS client is not fully compatible with all types of NFS servers. You are advised to use the Linux NFS server to perform the development.
+     ```
+     OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
+	 Mount nfs on 10.67.212.178:/home/sqbin/nfs, uid:1011, gid:1000
+	 Mount nfs finished.	 
+     ```
+    
+     This command mounts the **/home/sqbin/nfs** directory on the NFS server (IP address: 10.67.212.178) to the **/nfs** directory on the OpenHarmony kernel device.
 
+     > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+     >
+     > This example assumes that the NFS server is available, that is, the **/home/sqbin/nfs** directory on the NFS server 10.67.212.178 is accessible.
+     > 
+     > The **mount** command format is as follows:
+     > 
+     > ```
+     > mount <SERVER_IP:SERVER_PATH> <CLIENT_PATH> nfs
+     > ```
+     > 
+     > **SERVER_IP** indicates the IP address of the server; **SERVER_PATH** indicates the path of the shared directory on the NFS server; **CLIENT_PATH** indicates the NFS path on the local device; **nfs** indicates the path to which the remote shared directory is mounted on the local device. Replace the parameters as required.
+     > 
+     > If you do not want to restrict the NFS access permission, set the permission of the NFS root directory to **777** on the Linux CLI.
+     > 
+     > ```
+     > chmod -R 777 /home/sqbin/nfs
+     > ```
+     > 
+     > The NFS client setting is complete, and the NFS file system is mounted.
+
+3. Share files using NFS.
+
+   Create the **dir** directory on the NFS server. Run the **ls** command in the OpenHarmony kernel.
+
+     ```
+     OHOS # ls /nfs
+     ```
+
+     The following information is returned from the serial port:
+
+     ```
+     OHOS # ls /nfs 
+     Directory /nfs:                 
+     drwxr-xr-x 0        u:0     g:0     dir
+     ```
+    
+   The **dir** directory created on the NFS server has been synchronized to the **/nfs** directory on the client (OpenHarmony kernel system).  Similarly, you can create files and directories on the client (OpenHarmony kernel system) and access them from the NFS server.
+
+   > ![](public_sys-resources/icon-note.gif) **NOTE**
+   > 
+   > Currently, the NFS client supports some NFS v3 specifications. Therefore, the NFS client is not fully compatible with all types of NFS servers. You are advised to use the Linux NFS server to perform the development.
diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md
index a9b031e9f72b535f22f3083491c5b76c08459e3f..261eae927bd78029daead0a19c56aca175a8623e 100644
--- a/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md
+++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md
@@ -1,28 +1,32 @@
 # procfs
 
 
-## Basic Concepts<a name="section146801917174017"></a>
+## Basic Concepts
 
-The proc filesystem \(procfs\) is a virtual file system that displays process or other system information in a file-like structure. It is more convenient to obtain system information in file operation mode than API calling mode.
+The proc filesystem (procfs) is a virtual file system that displays process or other system information in a file-like structure. It is more convenient to obtain system information in file operation mode than API calling mode.
 
-## Working Principles<a name="section479762916408"></a>
 
-In the OpenHarmony kernel, procfs is automatically mounted to the  **/proc**  directory during startup. Only the kernel module can create file nodes to provide the query service.
+## Working Principles
 
-## Development Guidelines<a name="section1221174524014"></a>
+In the OpenHarmony kernel, procfs is automatically mounted to the **/proc** directory during startup. Only the kernel module can create file nodes to provide the query service.
 
-To create a procfs file, you need to use  **ProcMkdir**  to create a directory and use  **CreateProcEntry**  to create a file. The development of the file node function is to hook the read and write functions to the file created by  **CreateProcEntry**. When the procfs file is read or written, the hooked functions will be called to implement custom functions.
 
-### Development Example<a name="section52016575401"></a>
+## Development Guidelines
 
-The following describes how to create the  **/proc/hello/world**  file to implement the following functions:
+To create a procfs file, you need to use **ProcMkdir** to create a directory and use **CreateProcEntry** to create a file. The development of the file node function is to hook the read and write functions to the file created by **CreateProcEntry**. When the procfs file is read or written, the hooked functions will be called to implement custom functions.
 
-1. Create a file in  **/proc/hello/world**.
+
+### Development Example
+
+The following describes how to create the **/proc/hello/world** file to implement the following functions:
+
+1. Create a file in **/proc/hello/world**.
 
 2. Read the file. When the file is read, "HelloWorld!" is returned.
 
 3. Write the file and print the data written in the file.
 
+
 ```
 #include "proc_fs.h"
 
@@ -48,7 +52,7 @@ static const struct ProcFileOperations HELLO_WORLD_OPS = {
 
 void HelloWorldInit(void)
 {
-    /* Create the hello directory.*/
+    /* Create the hello directory. */
     struct ProcDirEntry *dir = ProcMkdir("hello", NULL);
     if (dir == NULL) {
         PRINT_ERR("create dir failed!\n");
@@ -69,7 +73,8 @@ void HelloWorldInit(void)
 
 **Verification**
 
-After the OS startup, run the following command in the shell:
+After the OS startup, run the following commands in the shell:
+
 
 ```
 OHOS # cat /proc/hello/world
@@ -77,4 +82,3 @@ OHOS # Hello World!
 OHOS # echo "yo" > /proc/hello/world
 OHOS # your input is: yo
 ```
-
diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md
index 975baff8c25166e4e9afa703c4208aa03af5d066..ee785aeffd5fa016fe4a605183d68324aaff73dc 100644
--- a/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md
+++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md
@@ -1,60 +1,43 @@
 # Ramfs
 
-## Basic Concepts<a name="section9507151014420"></a>
 
-Ramfs is a RAM-based file system whose size can be dynamically adjusted. Ramfs does not have a backing store. Directory entries and page caches are allocated when files are written into ramfs. However, data is not written back to any other storage medium. This means that data will be lost after a power outage.
-
-## Working Principles<a name="section1859711263447"></a>
-
-Ramfs stores all files in RAM, and read/write operations are performed in RAM. Ramfs is generally used to store temporary data or data that needs to be frequently modified, such as the  **/tmp**  and  **/var**  directories. Using ramfs reduces the read/write loss of the memory and improves the data read/write speed.
-
-## Development Guidelines<a name="section163554380448"></a>
+## Basic Concepts
 
+Ramfs is a RAM-based file system whose size can be dynamically adjusted. Ramfs does not have a backing store. Directory entries and page caches are allocated when files are written into ramfs. However, data is not written back to any other storage medium. This means that data will be lost after a power outage.
+## Working Principles
+Ramfs stores all files in RAM, and read/write operations are performed in RAM. Ramfs is generally used to store temporary data or data that needs to be frequently modified, such as the **/tmp** and **/var** directories. Using ramfs reduces the read/write loss of the memory and improves the data read/write speed.
+## Development Guidelines
 Mount: 
-
 ```
 mount(NULL, "/dev/shm", "ramfs", 0, NULL)
 ```
-
-Create a directory:
-
+Create a directory: 
 ```
 mkdir(pathname, mode)
 ```
-
 Create a file:
-
 ```
 open(pathname, O_NONBLOCK | O_CREAT | O_RDWR, mode)
 ```
-
-Read a directory:
-
+Read a directory: 
 ```
 dir = opendir(pathname) 
 ptr = readdir(dir)
 closedir(dir)
 ```
-
-Delete a file:
-
+Delete a file: 
 ```
 unlink(pathname)
 ```
-
 Delete a directory:
-
 ```
 rmdir(pathname)
 ```
-
-Unmount:
-
+Unmount: 
 ```
 umount("/dev/shm")
 ```
-
->![](../public_sys-resources/icon-caution.gif) **CAUTION:** 
->-   A ramfs file system can be mounted only once. Once mounted to a directory, it cannot be mounted to other directories.
->-   Ramfs is under debugging and disabled by default. Do not use it in formal products.
-
+> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**<br/>
+> - A ramfs file system can be mounted only once. Once mounted to a directory, it cannot be mounted to other directories.
+> 
+> - Ramfs is under debugging and disabled by default. Do not use it in formal products.
diff --git a/en/device-dev/kernel/kernel-small-debug-shell-guide.md b/en/device-dev/kernel/kernel-small-debug-shell-guide.md
index d20dd2abf4420eb5f115171aafaa697108f38ed7..3bb07ddf59843ff76a2b7f4472ecc9a089f99421 100644
--- a/en/device-dev/kernel/kernel-small-debug-shell-guide.md
+++ b/en/device-dev/kernel/kernel-small-debug-shell-guide.md
@@ -1,164 +1,87 @@
-# Shell Command Development Guidelines
-
-
-## Development Guidelines<a name="section13408945163812"></a>
+# Shell Command Development
 
 You can perform the following operations to add shell commands:
 
-1.  Include the following header files:
-
-    ```
-    #include "shell.h"
-    #include "shcmd.h"
-    ```
-
-2.  Register commands. You can register commands either statically or dynamically when the system is running. In most cases, static registration is widely used by common system commands, and dynamic registration is widely used by user commands.
-
-    1.  Static registration:
-
-        1.  Register a command using a macro.
-
-            The prototype of the macro is as follows:
-
-            ```
-            SHELLCMD_ENTRY(l, cmdType, cmdKey, paraNum, cmdHook)
-            ```
-
-            **Table  1**  Parameters of the SHELLCMD\_ENTRY macro
-
-            <a name="table1198543584513"></a>
-            <table><thead align="left"><tr id="row209856358456"><th class="cellrowborder" valign="top" width="20.91%" id="mcps1.2.3.1.1"><p id="p998583517456"><a name="p998583517456"></a><a name="p998583517456"></a><strong id="b1195317394217"><a name="b1195317394217"></a><a name="b1195317394217"></a>Parameter</strong></p>
-            </th>
-            <th class="cellrowborder" valign="top" width="79.09%" id="mcps1.2.3.1.2"><p id="p169851735174511"><a name="p169851735174511"></a><a name="p169851735174511"></a><strong id="b1958216251314"><a name="b1958216251314"></a><a name="b1958216251314"></a>Description</strong></p>
-            </th>
-            </tr>
-            </thead>
-            <tbody><tr id="row13985153574517"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p6985113513452"><a name="p6985113513452"></a><a name="p6985113513452"></a>l</p>
-            </td>
-            <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p998573514457"><a name="p998573514457"></a><a name="p998573514457"></a>Specifies the global variable name passed in static registration. Note that the name cannot be the same as other symbol names in the system.</p>
-            </td>
-            </tr>
-            <tr id="row398513594518"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p59856356450"><a name="p59856356450"></a><a name="p59856356450"></a>cmdType</p>
-            </td>
-            <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p119859355458"><a name="p119859355458"></a><a name="p119859355458"></a>Specifies the command type, which can be any of the following:</p>
-            <a name="ul11135144114816"></a><a name="ul11135144114816"></a><ul id="ul11135144114816"><li><p id="p21351144488"><a name="p21351144488"></a><a name="p21351144488"></a><strong id="b189416548121"><a name="b189416548121"></a><a name="b189416548121"></a>CMD_TYPE_EX</strong>: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter <strong id="b1940315357339"><a name="b1940315357339"></a><a name="b1940315357339"></a>ls /ramfs</strong>, only <strong id="b67371541123316"><a name="b67371541123316"></a><a name="b67371541123316"></a>/ramfs</strong> will be passed to the registration function, and <strong id="b1145320313411"><a name="b1145320313411"></a><a name="b1145320313411"></a>ls</strong> will be masked.</p>
-            </li><li><p id="p21353410482"><a name="p21353410482"></a><a name="p21353410482"></a><strong id="b15922145203418"><a name="b15922145203418"></a><a name="b15922145203418"></a>CMD_TYPE_STD</strong>: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.</p>
-            </li></ul>
-            </td>
-            </tr>
-            <tr id="row20985153524519"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p1098693510451"><a name="p1098693510451"></a><a name="p1098693510451"></a>cmdKey</p>
-            </td>
-            <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p11986735144514"><a name="p11986735144514"></a><a name="p11986735144514"></a>Specifies the command keyword, which is the name used to access a shell function.</p>
-            </td>
-            </tr>
-            <tr id="row1398683511450"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p598613359451"><a name="p598613359451"></a><a name="p598613359451"></a>paraNum</p>
-            </td>
-            <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p11986535144516"><a name="p11986535144516"></a><a name="p11986535144516"></a>Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently.</p>
-            </td>
-            </tr>
-            <tr id="row39861935154516"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p5986735114518"><a name="p5986735114518"></a><a name="p5986735114518"></a>cmdHook</p>
-            </td>
-            <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p398683574515"><a name="p398683574515"></a><a name="p398683574515"></a>Specifies the address of the execution function, that is, the function executed by the command.</p>
-            </td>
-            </tr>
-            </tbody>
-            </table>
-
-            Example:
-
-            ```
-            SHELLCMD_ENTRY(ls_shellcmd,  CMD_TYPE_EX, "ls", XARGS,  (CMD_CBK_FUNC)osShellCmdLs)
-            ```
-
-        2.  Add options to the  **build/mk/liteos\_tables\_ldflags.mk**  file.
-
-            For example, when registering the  **ls**  command, add  **-uls\_shellcmd**  to the  **build/mk/liteos\_tables\_ldflags.mk**  file.  **-u**  is followed by the first parameter of  **SHELLCMD\_ENTRY**.
-
-    2.  Dynamic registration:
-
-        The prototype of the function to register is as follows:
-
-        ```
-        UINT32 osCmdReg(CmdT ype cmdType, CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc)
-        ```
-
-        **Table  2**  Parameters of UINT32 osCmdReg
-
-        <a name="table194461933114919"></a>
-        <table><thead align="left"><tr id="row1644693318490"><th class="cellrowborder" valign="top" width="20.91%" id="mcps1.2.3.1.1"><p id="p1644618337493"><a name="p1644618337493"></a><a name="p1644618337493"></a><strong id="b414914114815"><a name="b414914114815"></a><a name="b414914114815"></a>Parameter</strong></p>
-        </th>
-        <th class="cellrowborder" valign="top" width="79.09%" id="mcps1.2.3.1.2"><p id="p444603317491"><a name="p444603317491"></a><a name="p444603317491"></a><strong id="b19862274819"><a name="b19862274819"></a><a name="b19862274819"></a>Description</strong></p>
-        </th>
-        </tr>
-        </thead>
-        <tbody><tr id="row844643374912"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p14446133319498"><a name="p14446133319498"></a><a name="p14446133319498"></a>cmdType</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p174461339496"><a name="p174461339496"></a><a name="p174461339496"></a>Specifies the command type, which can be any of the following:</p>
-        <a name="ul1244773317496"></a><a name="ul1244773317496"></a><ul id="ul1244773317496"><li><p id="p1844719331495"><a name="p1844719331495"></a><a name="p1844719331495"></a><strong id="b1596594718"><a name="b1596594718"></a><a name="b1596594718"></a>CMD_TYPE_EX</strong>: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter <strong id="b134411664"><a name="b134411664"></a><a name="b134411664"></a>ls /ramfs</strong>, only <strong id="b384234630"><a name="b384234630"></a><a name="b384234630"></a>/ramfs</strong> will be passed to the registration function, and <strong id="b1102747310"><a name="b1102747310"></a><a name="b1102747310"></a>ls</strong> will be masked.</p>
-        </li><li><p id="p20447143315498"><a name="p20447143315498"></a><a name="p20447143315498"></a><strong id="b97295345"><a name="b97295345"></a><a name="b97295345"></a>CMD_TYPE_STD</strong>: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.</p>
-        </li></ul>
-        </td>
-        </tr>
-        <tr id="row14471733184915"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p744783319494"><a name="p744783319494"></a><a name="p744783319494"></a>cmdKey</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p18447833124914"><a name="p18447833124914"></a><a name="p18447833124914"></a>Specifies the command keyword, which is the name used to access a shell function.</p>
-        </td>
-        </tr>
-        <tr id="row17447143317495"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p174477331495"><a name="p174477331495"></a><a name="p174477331495"></a>paraNum</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p8447233184914"><a name="p8447233184914"></a><a name="p8447233184914"></a>Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently. The default value is <strong id="b1425195414484"><a name="b1425195414484"></a><a name="b1425195414484"></a>XARGS(0xFFFFFFFF)</strong>.</p>
-        </td>
-        </tr>
-        <tr id="row10447233174913"><td class="cellrowborder" valign="top" width="20.91%" headers="mcps1.2.3.1.1 "><p id="p18447183334920"><a name="p18447183334920"></a><a name="p18447183334920"></a>cmdHook</p>
-        </td>
-        <td class="cellrowborder" valign="top" width="79.09%" headers="mcps1.2.3.1.2 "><p id="p44471533184912"><a name="p44471533184912"></a><a name="p44471533184912"></a>Specifies the address of the execution function, that is, the function executed by the command.</p>
-        </td>
-        </tr>
-        </tbody>
-        </table>
-
-        Example:
-
-        ```
-        osCmdReg(CMD_TYPE_EX, "ls", XARGS,  (CMD_CBK_FUNC)osShellCmdLs)
-        ```
+1. Include header files.
 
-    >![](../public_sys-resources/icon-note.gif) **NOTE:** 
-    >The command keyword must be unique. That is, two different commands cannot share the same command keyword. Otherwise, only one command is executed.
-    >When executing user commands sharing the same keyword, the shell executes only the first command in the  **help**  commands.
+   
+   ```
+   #include "shell.h"
+   #include "shcmd.h"
+   ```
 
-3.  Use the following function prototype to add built-in commands:
+2. Register commands. 
 
-    ```
-    UINT32 osShellCmdLs(UINT32 argc,  CHAR **argv)
-    ```
+   You can register commands either statically or dynamically (with the system running). Generally, common system commands are registered statically, and user commands are registered dynamically.
 
-    **Table  3**  Parameters of osShellCmdLs
+   - Static registration
 
-    <a name="table174451958105116"></a>
-    <table><thead align="left"><tr id="row84451058105117"><th class="cellrowborder" valign="top" width="24.42%" id="mcps1.2.3.1.1"><p id="p1644515855111"><a name="p1644515855111"></a><a name="p1644515855111"></a><strong id="b710871813012"><a name="b710871813012"></a><a name="b710871813012"></a>Parameter</strong></p>
-    </th>
-    <th class="cellrowborder" valign="top" width="75.58%" id="mcps1.2.3.1.2"><p id="p18445145805113"><a name="p18445145805113"></a><a name="p18445145805113"></a><strong id="b12608195015"><a name="b12608195015"></a><a name="b12608195015"></a>Description</strong></p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row194461458185112"><td class="cellrowborder" valign="top" width="24.42%" headers="mcps1.2.3.1.1 "><p id="p64461158145120"><a name="p64461158145120"></a><a name="p64461158145120"></a>argc</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="75.58%" headers="mcps1.2.3.1.2 "><p id="p1844625885112"><a name="p1844625885112"></a><a name="p1844625885112"></a>Specifies the number of parameters in the shell command.</p>
-    </td>
-    </tr>
-    <tr id="row144620587511"><td class="cellrowborder" valign="top" width="24.42%" headers="mcps1.2.3.1.1 "><p id="p244625811517"><a name="p244625811517"></a><a name="p244625811517"></a>argv</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="75.58%" headers="mcps1.2.3.1.2 "><p id="p11446958105119"><a name="p11446958105119"></a><a name="p11446958105119"></a>Specifies a pointer array, where each element points to a string. You can determine whether to pass the command keyword to the registration function by specifying the command type.</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
+     1. Register a command using a macro.
 
-4.  Enter the shell command in either of the following methods:
-    -   Enter the shell command in a serial port tool.
+        The prototype of the macro is as follows:
 
-    -   Enter the shell command in the Telnet tool. For details, see  [telnet](kernel-small-debug-shell-net-telnet.md).
+        ```
+        SHELLCMD_ENTRY(l, cmdType, cmdKey, paraNum, cmdHook)
+        ```
 
+          **Table 1** SHELLCMD_ENTRY parameters
 
+        | Parameter| Description|
+        | -------- | -------- |
+        | l | Specifies the global variable name passed in static registration. Note that the name cannot be the same as other symbol names in the system.|
+        | cmdType | Specifies the command type, which can be any of the following:<br>**CMD_TYPE_EX**: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter **ls /ramfs**, only **/ramfs** will be passed to the registration function and **ls** will be masked.<br>**CMD_TYPE_STD**: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed. |
+        | cmdKey | Specifies the command keyword, which is the name used to access a shell function.|
+        | paraNum | Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently.|
+        | cmdHook | Specifies the address of the execution function, that is, the function executed by the command.|
 
+        Example:
+     
+           ```
+         SHELLCMD_ENTRY(ls_shellcmd,  CMD_TYPE_EX, "ls", XARGS,  (CMD_CBK_FUNC)osShellCmdLs)
+           ```
+
+     
+     2. Add options to the **build/mk/liteos_tables_ldflags.mk** file.     
+     
+        For example, when registering the **ls** command, add **-uls_shellcmd** to the **build/mk/liteos_tables_ldflags.mk** file. **-u** is followed by the first parameter of **SHELLCMD_ENTRY**.
+
+   - Dynamic registration
+     
+	 The prototype of the function to register is as follows:
+	 
+	 ```
+     UINT32 osCmdReg(CmdT ype cmdType, CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc)
+     ```
+	 **Table 2** UINT32 osCmdReg parameters
+	 | Parameter| Description|
+	 | -------- | -------- |
+	 | cmdType | Specifies the command type, which can be any of the following:<br>**CMD_TYPE_EX**: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter **ls /ramfs**, only **/ramfs** will be passed to the registration function, and **ls** will be masked.<br>**CMD_TYPE_STD**: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.|
+	 | cmdKey | Specifies the command keyword, which is the name used to access a shell function.|
+	 | paraNum | Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently. The default value is **XARGS(0xFFFFFFFF)**.|
+	 | cmdHook | Specifies the address of the execution function, that is, the function executed by the command.|
+	 
+	 Example:
+	 ```
+     osCmdReg(CMD_TYPE_EX, "ls", XARGS,  (CMD_CBK_FUNC)osShellCmdLs)
+     ```
+	 ![icon-note.gif](../public_sys-resources/icon-note.gif) NOTE<br>
+	 > The command keyword must be unique. That is, two different commands cannot share the same command keyword. Otherwise, only one command is executed. When executing user commands sharing the same keyword, the shell executes only the first command in the **help** commands.
+
+
+3. Use the following function prototype to add built-in commands:
+
+   ```
+   UINT32 osShellCmdLs(UINT32 argc,  CHAR **argv)
+   ```
+
+    **Table 3** osShellCmdLs parameters
+   
+   | Parameter| Description|
+   | -------- | -------- |
+   | argc | Specifies the number of parameters in the shell command.|
+   | argv | Specifies a pointer array, where each element points to a string. You can determine whether to pass the command keyword to the registration function by specifying the command type.|
+
+4. Enter the shell command in either of the following methods:
+
+   - Enter the shell command using a serial port tool.
+   - Enter the shell command using the Telnet tool. For details about how to use Telnet, see [telnet](../kernel/kernel-small-debug-shell-net-telnet.md).
diff --git a/en/device-dev/kernel/kernel-small-debug-shell-magickey.md b/en/device-dev/kernel/kernel-small-debug-shell-magickey.md
index 95dd7f69f0160ae301c51a210ddb51c3c357728b..80248ba4e5fbc59fbef823ca8b34e8584709c243 100644
--- a/en/device-dev/kernel/kernel-small-debug-shell-magickey.md
+++ b/en/device-dev/kernel/kernel-small-debug-shell-magickey.md
@@ -1,42 +1,36 @@
 # Magic Key
 
 
-## When to Use<a name="section2350114718546"></a>
+## When to Use
 
-When the system does not respond, you can use the magic key to check whether the system is locked and interrupted \(the magic key also does not respond\) or view the system task running status.
+When the system does not respond, you can use the magic key function to check whether the system is suspended by an interrupt lock (the magic key also does not respond) or view the system task running status.
 
-If an interrupt is responded, you can use the magic key to check the task CPU usage \(**cpup**\) and find out the task with the highest CPU usage. Generally, the task with a higher priority preempts the CPU resources.
+If interrupts are responded, you can use the magic key to check the task CPU usage (**cpup**) and find out the task with the highest CPU usage. Generally, the task with a higher priority preempts the CPU resources.
 
-## How to Use<a name="section3305151511559"></a>
 
-1.  Configure the macro  **LOSCFG\_ENABLE\_MAGICKEY**.
+## How to Use
 
-The magic key depends on the  **LOSCFG\_ENABLE\_MAGICKEY**  macro. Before using the magic key, select  **Enable MAGIC KEY**  on  **menuconfig**.
+1. Configure the macro **LOSCFG_ENABLE_MAGICKEY**.
 
-**Enable MAGIC KEY**:  **Debug**  ---\>  **Enable MAGIC KEY**
+   The magic key depends on the **LOSCFG_ENABLE_MAGICKEY** macro. Before using the magic key, select **Enable MAGIC KEY** (**Debug** ---> **Enable MAGIC KEY**) on **menuconfig**. The magic key cannot be used if this option is disabled.
 
-The magic key cannot be used if this macro is disabled.
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+   >    
+   > On **menuconfig**, you can move the cursor to **LOSCFG_ENABLE_MAGICKEY** and enter a question mark (?) to view help Information.
+   
+2. Press **Ctrl+R** to enable the magic key.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->On  **menuconfig**, you can move the cursor to  **LOSCFG\_ENABLE\_MAGICKEY**  and type a question mark \(?\) to view help information.
+   When the UART or USB-to-virtual serial port is connected, press **Ctrl+R**. If "Magic key on" is displayed, the magic key is enabled. To disable it, press **Ctrl+R** again. If "Magic key off" is displayed, the magic key is disabled. 
 
-2. Press  **Ctrl+R**  to enable the magic key.
+   The functions of the magic key are as follows:
 
-When the UART or USB-to-virtual serial port is connected, press  **Ctrl+R**. If "Magic key on" is displayed, the magic key is enabled.
+   - **Ctrl+Z**: displays help information about the related magic keys.
 
-To disable the magic key, press  **Ctrl+R**  again. If "Magic key off" is displayed, the magic key is disabled.
+   - **Ctrl+T**: displays task information.
 
-You can use the magic key combinations as follows:
-
--   **Ctrl+Z**: displays help information about the related magic keys.
-
--   **Ctrl+T**: displays task information.
-
--   **Ctrl+P**: allows the system to proactively enter the panic state. After the panic-related information is printed, the system is suspended.
-
--   **Ctrl+E**: Checks the integrity of the memory pool. If an error is detected, the system displays an error message. If no error is detected, the system displays "system memcheck over, all passed!".
-
-
->![](../public_sys-resources/icon-notice.gif) **NOTICE:** 
->If magic key is enabled, when special characters need to be entered through the UART or USB-to-virtual serial port, avoid using characters the same as the magic keys. Otherwise, the magic key may be triggered by mistake, causing errors in the original design.
+   - **Ctrl+P**: allows the system to proactively enter the panic state. After the panic-related information is printed, the system is suspended.
 
+   - **Ctrl+E**: Checks the integrity of the memory pool. If an error is detected, the system displays an error message. If no error is detected, the system displays "system memcheck over, all passed!".
+   
+   > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **NOTICE**<br>
+   > If magic key is enabled, when special characters need to be entered through the UART or USB-to-virtual serial port, avoid using characters the same as the magic keys. Otherwise, the magic key may be triggered by mistake, causing errors in the original design.
diff --git a/en/device-dev/kernel/kernel-small-debug-shell-overview.md b/en/device-dev/kernel/kernel-small-debug-shell-overview.md
index 5ac89f7eb900197534dca3a3d73846a9bdde0b6f..7c1ce9d0e6e8d0caf21fc5bd38d7c4f976de65eb 100644
--- a/en/device-dev/kernel/kernel-small-debug-shell-overview.md
+++ b/en/device-dev/kernel/kernel-small-debug-shell-overview.md
@@ -1,35 +1,34 @@
-# Introduction to the Shell
+# Shell
 
 
 The shell provided by the OpenHarmony kernel supports commonly used debugging commands. You can also add and customize commands to the shell of the OpenHarmony kernel to address your service needs. The common debugging commands include the following:
 
--   System commands: commands used to query information, such as system tasks, semaphores, system software timers, CPU usage, and interrupts.
 
--   File commands: commands used to manage files and directories, such as  **ls**  and  **cd**.
+- System commands: commands used to query information, such as system tasks, semaphores, system software timers, CPU usage, and interrupts.
 
--   Network commands: commands used to query the IP addresses of other devices connected to the development board, querying the IP address of the local device, testing network connectivity, and setting the access point \(AP\) and station \(STA\) modes of the development board.
+- File commands: commands used to manage files and directories, such as **ls** and **cd**.
 
-    For details about how to add a command, see  [Shell Command Development Guidelines](kernel-small-debug-shell-guide.md)  and  [Shell Command Programming Example](kernel-small-debug-shell-build.md).
+- Network commands: commands used to query the IP addresses of other devices connected to the development board, querying the IP address of the local device, testing network connectivity, and setting the access point (AP) and station (STA) modes of the development board.
 
+  For details about the process of adding commands, see [Shell Command Development](../kernel/kernel-small-debug-shell-guide.md) and [Shell Command Programming Example](../kernel/kernel-small-debug-shell-build.md).
 
-## Important Notes
 
-Note the following when using the shell:
+ **Precautions**
 
--   You can use the  **exec**  command to run executable files.
--   The shell supports English input by default. To delete the Chinese characters entered in UTF-8 format, press the backspace key for three times.
+Note the following when using shell:
 
--   When entering shell commands, file names, and directory names, you can press  **Tab**  to enable automatic completion. If there are multiple completions, multiple items are printed based on the same characters they have. If more than 24 lines of completions are available, the system displays the message "Display all num possibilities?\(y/n\)", asking you to determine whether to print all items. You can enter  **y**  to print all items or enter  **n**  to exit the printing. If more than 24 lines are printed after your selection, the system displays "--More--". In this case, you can press  **Enter**  to continue the printing or press  **q**  \(or  **Ctrl+c**\) to exit.
+- You can use the **exec** command to run executable files.
 
--   The shell working directory is separated from the system working directory. You can run commands such as  **cd**  and  **pwd**  on the shell to perform operations on the shell working directory, and run commands such as  **chdir**  and  **getcwd**  to perform operations on the system working directory. Pay special attention when an input parameter in a file system operation command is a relative path.
+- The shell supports English input by default. To delete the Chinese characters entered in UTF-8 format, press the backspace key for three times.
 
--   Before using network shell commands, you need to call the  **tcpip\_init**  function to initialize the network and set up the Telnet connection. By default, the kernel does not call  **tcpip\_init**.
+- When entering shell commands, file names, and directory names, you can press **Tab** to enable automatic completion. If there are multiple completions, multiple items are printed based on the same characters they have. If more than 24 lines of completions are available, the system displays the message "Display all num possibilities?(y/n)", asking you to determine whether to print all items. You can enter **y** to print all items or enter **n** to exit the printing. If more than 24 lines are printed after your selection, the system displays "--More--". In this case, you can press **Enter** to continue the printing or press **q** (or **Ctrl+c**) to exit.
 
--   You are not advised to run shell commands to perform operations on device files in the  **/dev**  directory, which may cause unexpected results.
+- The shell working directory is separated from the system working directory. You can run commands such as **cd** and **pwd** on the shell to perform operations on the shell working directory, and run commands such as **chdir** and **getcwd** to perform operations on the system working directory. Pay special attention when an input parameter in a file system operation command is a relative path.
 
--   The shell functions do not comply with the POSIX standards and are used only for debugging.
-
-    >![](../public_sys-resources/icon-notice.gif) **NOTICE**<br/> 
-    >The shell functions are used for debugging only and can be enabled only in the Debug version \(by enabling the  **LOSCFG\_DEBUG\_VERSION**  configuration item using  **menuconfig**\).
+- Before using network shell commands, you need to call the **tcpip_init** function to initialize the network and set up the Telnet connection. By default, the kernel does not call **tcpip_init**.
 
+- You are not advised to run shell commands to perform operations on device files in the **/dev** directory, which may cause unexpected results.
 
+- The shell functions do not comply with the POSIX standards and are used only for debugging.
+  > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **NOTICE**<br>
+  > The shell functions are used for debugging only and can be enabled only in the Debug version (by enabling  **LOSCFG_DEBUG_VERSION** using **menuconfig**).
diff --git a/en/device-dev/kernel/kernel-small-debug-trace.md b/en/device-dev/kernel/kernel-small-debug-trace.md
index b808e35d2515e9ede4def18ec35fd7a06a638d59..df41fd67f3d7d2ddc196e1ea4ddc3c10e701aa95 100644
--- a/en/device-dev/kernel/kernel-small-debug-trace.md
+++ b/en/device-dev/kernel/kernel-small-debug-trace.md
@@ -1,10 +1,12 @@
 # Trace
 
-## Basic Concepts<a name="section531482192018"></a>
+
+## Basic Concepts
 
 Trace helps you learn about the kernel running process and the execution sequence of modules and tasks. With the information, you can better understand the code running process of the kernel and locate time sequence problems.
 
-## Working Principles<a name="section5125124532010"></a>
+
+## Working Principles
 
 The kernel provides a hook framework to embed hooks in the main process of each module. In the initial startup phase of the kernel, the trace function is initialized and the trace handlers are registered with the hooks.
 
@@ -16,170 +18,117 @@ In offline mode, trace frames are stored in a circular buffer. If too many frame
 
 ![](figures/kernel-small-mode-process-4.png)
 
-The online mode must be used with the integrated development environment \(IDE\). Trace frames are sent to the IDE in real time. The IDE parses the records and displays them in a visualized manner.
-
-## **Available APIs**<a name="section17747184017458"></a>
-
-### Kernel Mode<a name="section104473014465"></a>
-
-The trace module of the OpenHarmony LiteOS-A kernel provides the following functions. For details about the APIs, see the  [API](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_trace.h)  reference.
-
-**Table  1**  Trace module APIs
-
-<a name="table1290750144615"></a>
-<table><thead align="left"><tr id="row92916507464"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p1429185074615"><a name="p1429185074615"></a><a name="p1429185074615"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p1729115010467"><a name="p1729115010467"></a><a name="p1729115010467"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p12911501463"><a name="p12911501463"></a><a name="p12911501463"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row9287279472"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p12191827104720"><a name="p12191827104720"></a><a name="p12191827104720"></a>Starting and stopping trace</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1519152774719"><a name="p1519152774719"></a><a name="p1519152774719"></a>LOS_TraceStart</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p619102714475"><a name="p619102714475"></a><a name="p619102714475"></a>Starts trace.</p>
-</td>
-</tr>
-<tr id="row17281727204713"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p519162715477"><a name="p519162715477"></a><a name="p519162715477"></a>LOS_TraceStop</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p12191827164710"><a name="p12191827164710"></a><a name="p12191827164710"></a>Stops trace.</p>
-</td>
-</tr>
-<tr id="row428102714719"><td class="cellrowborder" rowspan="3" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1019327194717"><a name="p1019327194717"></a><a name="p1019327194717"></a>Managing trace records</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1319142714474"><a name="p1319142714474"></a><a name="p1319142714474"></a>LOS_TraceRecordDump</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p0192275474"><a name="p0192275474"></a><a name="p0192275474"></a>Exports data in the trace buffer.</p>
-</td>
-</tr>
-<tr id="row192852794713"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1419827104715"><a name="p1419827104715"></a><a name="p1419827104715"></a>LOS_TraceRecordGet</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1619162715479"><a name="p1619162715479"></a><a name="p1619162715479"></a>Obtains the start address of the trace buffer.</p>
-</td>
-</tr>
-<tr id="row172882764719"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1019527134714"><a name="p1019527134714"></a><a name="p1019527134714"></a>LOS_TraceReset</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1619192720473"><a name="p1619192720473"></a><a name="p1619192720473"></a>Clears events in the trace buffer.</p>
-</td>
-</tr>
-<tr id="row82715275472"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1419122716473"><a name="p1419122716473"></a><a name="p1419122716473"></a>Filtering trace records</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p121917278472"><a name="p121917278472"></a><a name="p121917278472"></a>LOS_TraceEventMaskSet</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1419927154711"><a name="p1419927154711"></a><a name="p1419927154711"></a>Sets the event mask to trace only events of the specified modules.</p>
-</td>
-</tr>
-<tr id="row827827174718"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p9201275471"><a name="p9201275471"></a><a name="p9201275471"></a>Masking events of specified interrupt IDs</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p720112717476"><a name="p720112717476"></a><a name="p720112717476"></a>LOS_TraceHwiFilterHookReg</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p192042713475"><a name="p192042713475"></a><a name="p192042713475"></a>Registers a hook to filter out events of specified interrupt IDs.</p>
-</td>
-</tr>
-<tr id="row42714279476"><td class="cellrowborder" rowspan="2" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p172011270476"><a name="p172011270476"></a><a name="p172011270476"></a>Performing function instrumentation</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1120122754714"><a name="p1120122754714"></a><a name="p1120122754714"></a>LOS_TRACE_EASY</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p12032714717"><a name="p12032714717"></a><a name="p12032714717"></a>Performs simple instrumentation.</p>
-</td>
-</tr>
-<tr id="row1927122734715"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p52062712478"><a name="p52062712478"></a><a name="p52062712478"></a>LOS_TRACE</p>
-</td>
-<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p182062734713"><a name="p182062734713"></a><a name="p182062734713"></a>Performs standard instrumentation.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
--   You can perform function instrumentation in the source code to trace specific events. The system provides the following APIs for instrumentation:
-    -   **LOS\_TRACE\_EASY\(TYPE, IDENTITY, params...\)**  for simple instrumentation
-        -   You only need to insert this API into the source code.
-        -   **TYPE**  specifies the event type. The value range is 0 to 0xF. The meaning of each value is user-defined.
-        -   **IDENTITY**  specifies the object of the event operation. The value is of the  **UIntPtr**  type.
-        -   **Params**  specifies the event parameters. The value is of the  **UIntPtr**  type.
-
-            Example:
-
-            ```
-            Perform simple instrumentation for reading and writing files fd1 and fd2.
-            Set TYPE to 1 for read operations and 2 for write operations.
-            Insert the following to the position where the fd1 file is read:
-            LOS_TRACE_EASY(1, fd1, flag, size);
-            Insert the following to the position where the fd2 file is read:
-            LOS_TRACE_EASY(1, fd2, flag, size);
-            Insert the following to the position where the fd1 file is written:
-            LOS_TRACE_EASY(2, fd1, flag, size);
-            Insert the following in the position where the fd2 file is written:
-            LOS_TRACE_EASY(2, fd2, flag, size);
-            ```
-
-    -   **LOS\_TRACE\(TYPE, IDENTITY, params...\)**  for standard instrumentation.
-        -   Compared with simple instrumentation, standard instrumentation supports dynamic event filtering and parameter tailoring. However, you need to extend the functions based on rules.
-        -   **TYPE**  specifies the event type. You can define the event type in  **enum LOS\_TRACE\_TYPE**  in the header file  **los\_trace.h**. For details about methods and rules for defining events, see other event types.
-        -   The  **IDENTITY**  and  **Params**  are the same as those of simple instrumentation.
-
-            Example:
-
-            ```
-            1. Set the event mask (module-level event type) in enum LOS_TRACE_MASK.
-              Format: TRACE_#MOD#_FLAG (MOD indicates the module name)
-              Example:
-              TRACE_FS_FLAG = 0x4000
-            2. Define the event type in enum LOS_TRACE_TYPE.
-              Format: #TYPE# = TRACE_#MOD#_FLAG | NUMBER
-              Example:
-              FS_READ  = TRACE_FS_FLAG | 0; // Read files
-              FS_WRITE = TRACE_FS_FLAG | 1; // Write files
-            3. Set event parameters in the #TYPE#_PARAMS(IDENTITY, parma1...) IDENTITY, ... format.
-              #TYPE# is the #TYPE# defined in step 2.
-              Example:
-              #define FS_READ_PARAMS(fp, fd, flag, size)    fp, fd, flag, size
-              The parameters defined by the macro correspond to the event parameters recorded in the trace buffer. You can modify the parameters as required.
-              If no parameter is specified, events of this type are not traced.
-              #define FS_READ_PARAMS(fp, fd, flag, size) // File reading events are not traced.
-            4. Insert a code stub in a proper position.
-              Format: LOS_TRACE(#TYPE#, #TYPE#_PARAMS(IDENTITY, parma1...))
-              LOS_TRACE(FS_READ, fp, fd, flag, size); // Code stub for reading files
-              The parameters following #TYPE# are the input parameter of the FS_READ_PARAMS function in step 3.
-            ```
-
-            >![](../public_sys-resources/icon-note.gif) **NOTE:** 
-            >The trace event types and parameters can be modified as required. For details about the parameters, see  **kernel\\include\\los\_trace.h**.
-
-
-
--   For  **LOS\_TraceEventMaskSet\(UINT32 mask\)**, only the most significant 28 bits \(corresponding to the enable bit of the module in  **LOS\_TRACE\_MASK**\) of the mask take effect and are used only for module-based tracing. Currently, fine-grained event-based tracing is not supported. For example, in  **LOS\_TraceEventMaskSet\(0x202\)**, the effective mask is  **0x200 \(TRACE\_QUE\_FLAG\)**  and all events of the QUE module are collected. The recommended method is  **LOS\_TraceEventMaskSet\(TRACE\_EVENT\_FLAG | TRACE\_MUX\_FLAG | TRACE\_SEM\_FLAG | TRACE\_QUE\_FLAG\);**.
--   To enable trace of only simple instrumentation events, set  **Trace Mask**  to  **TRACE\_MAX\_FLAG**.
--   The trace buffer has limited capacity. When the trace buffer is full, events will be overwritten. You can use  **LOS\_TraceRecordDump**  to export data from the trace buffer and locate the latest records by  **CurEvtIndex**.
--   The typical trace operation process includes  **LOS\_TraceStart**,  **LOS\_TraceStop**, and  **LOS\_TraceRecordDump**.
--   You can filter out interrupt events by interrupt ID to prevent other events from being overwritten due to frequent triggering of a specific interrupt in some scenarios. You can customize interrupt filtering rules.
-
-    The sample code is as follows:
-
-    ```
-    BOOL Example_HwiNumFilter(UINT32 hwiNum)
-    {
-        if ((hwiNum == TIMER_INT) || (hwiNum == DMA_INT)) {
-            return TRUE;
-        }
-        return FALSE;
+The online mode must be used with the integrated development environment (IDE). Trace frames are sent to the IDE in real time. The IDE parses the records and displays them in a visualized manner.
+
+
+## Available APIs
+
+
+### Kernel Mode
+
+The trace module of the OpenHarmony LiteOS-A kernel provides the following APIs. For more details, see [API reference](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_trace.h).
+
+  **Table 1** APIs of the trace module
+
+| Category| Description|
+| -------- | -------- |
+| Starting/Stopping trace| **LOS_TraceStart**: starts trace.<br>**LOS_TraceStop**: stops trace. |
+| Managing trace records| **LOS_TraceRecordDump**: dumps data from the trace buffer.<br>**LOS_TraceRecordGet**: obtains the start address of the trace buffer.<br>**LOS_TraceReset**: clears events in the trace buffer. |
+| Filtering trace records| **LOS_TraceEventMaskSet**: sets the event mask to trace only events of the specified modules.|
+| Masking events of specified interrupt IDs| **LOS_TraceHwiFilterHookReg**: registers a hook to filter out events of specified interrupt IDs.|
+| Performing function instrumentation| **LOS_TRACE_EASY**: performs simple instrumentation.<br>**LOS_TRACE**: performs standard instrumentation. |
+
+You can perform function instrumentation in the source code to trace specific events. The system provides the following APIs for instrumentation:
+
+- **LOS_TRACE_EASY(TYPE, IDENTITY, params...)** for simple instrumentation
+  
+   - You only need to insert this API into the source code.
+   - **TYPE** specifies the event type. The value range is 0 to 0xF. The meaning of each value is user-defined.
+   - **IDENTITY** specifies the object of the event operation. The value is of the **UIntPtr** type.
+   - **Params** specifies the event parameters. The value is of the **UIntPtr** type.
+        Example:
+        
+      ```
+      Perform simple instrumentation for reading and writing files fd1 and fd2.
+      Set TYPE to 1 for read operations and 2 for write operations.
+      Insert the following to the position where the fd1 file is read:
+      LOS_TRACE_EASY(1, fd1, flag, size);
+      Insert the following to the position where the fd2 file is read:
+      LOS_TRACE_EASY(1, fd2, flag, size);
+      Insert the following to the position where the fd1 file is written:
+      LOS_TRACE_EASY(2, fd1, flag, size);
+      Insert the following in the position where the fd2 file is written:
+      LOS_TRACE_EASY(2, fd2, flag, size);
+      ```
+- **LOS_TRACE(TYPE, IDENTITY, params...)** for standard instrumentation.
+   - Compared with simple instrumentation, standard instrumentation supports dynamic event filtering and parameter tailoring. However, you need to extend the functions based on rules.
+   - **TYPE** specifies the event type. You can define the event type in **enum LOS_TRACE_TYPE** in the header file **los_trace.h**. For details about methods and rules for defining events, see other event types.
+   - The **IDENTITY** and **Params** are the same as those of simple instrumentation.
+        Example:	  
+        
+      ```
+      1. Set the event mask (module-level event type) in enum LOS_TRACE_MASK.
+        Format: TRACE_#MOD#_FLAG (MOD indicates the module name)
+        Example:
+        TRACE_FS_FLAG = 0x4000
+      2. Define the event type in **enum LOS_TRACE_TYPE**.
+        Format: #TYPE# = TRACE_#MOD#_FLAG | NUMBER
+        Example:
+        FS_READ  = TRACE_FS_FLAG | 0; // Read files.
+        FS_WRITE = TRACE_FS_FLAG | 1; // Write files.
+      3. Set event parameters in the #TYPE#_PARAMS(IDENTITY, parma1...) IDENTITY, ... format.
+        #TYPE# is the #TYPE# defined in step 2.
+        Example:
+        #define FS_READ_PARAMS(fp, fd, flag, size)    fp, fd, flag, size
+        The parameters defined by the macro correspond to the event parameters recorded in the trace buffer. You can modify the parameters as required.
+        If no parameter is specified, events of this type are not traced.
+        #define FS_READ_PARAMS(fp, fd, flag, size) // File reading events are not traced.
+      4. Insert a code stub in a proper position.
+        Format: LOS_TRACE(#TYPE#, #TYPE#_PARAMS(IDENTITY, parma1...))
+        LOS_TRACE(FS_READ, fp, fd, flag, size); // Code stub for reading files.
+        The parameters following #TYPE# are the input parameter of the **FS_READ_PARAMS** function in step 3.
+      ```
+   
+      > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+      > The trace event types and parameters can be modified as required. For details about the parameters, see **kernel\include\los_trace.h**.
+
+For **LOS_TraceEventMaskSet(UINT32 mask)**, only the most significant 28 bits (corresponding to the enable bit of the module in **LOS_TRACE_MASK**) of the mask take effect and are used only for module-based tracing. Currently, fine-grained event-based tracing is not supported. For example, in **LOS_TraceEventMaskSet(0x202)**, the effective mask is **0x200 (TRACE_QUE_FLAG)** and all events of the QUE module are collected. The recommended method is **LOS_TraceEventMaskSet(TRACE_EVENT_FLAG | TRACE_MUX_FLAG | TRACE_SEM_FLAG | TRACE_QUE_FLAG);**.
+
+To enable trace of only simple instrumentation events, set **Trace Mask** to **TRACE_MAX_FLAG**.
+
+The trace buffer has limited capacity. When the trace buffer is full, events will be overwritten. You can use **LOS_TraceRecordDump** to export data from the trace buffer and locate the latest records by **CurEvtIndex**.
+
+The typical trace operation process includes **LOS_TraceStart**, **LOS_TraceStop**, and **LOS_TraceRecordDump**.
+
+You can filter out interrupt events by interrupt ID to prevent other events from being overwritten due to frequent triggering of a specific interrupt in some scenarios. You can customize interrupt filtering rules.
+
+Example:
+
+```
+BOOL Example_HwiNumFilter(UINT32 hwiNum)
+{
+    if ((hwiNum == TIMER_INT) || (hwiNum == DMA_INT)) {
+        return TRUE;
     }
-    LOS_TraceHwiFilterHookReg(Example_HwiNumFilter);
-    ```
+    return FALSE;
+}
+LOS_TraceHwiFilterHookReg(Example_HwiNumFilter);
+```
+
+The interrupt events with interrupt ID of **TIMER_INT** or **DMA_INT** are not traced.
+
 
+### User Mode
 
-The interrupt events with interrupt ID of  **TIMER\_INT**  or  **DMA\_INT**  are not traced.
+The trace character device is added in **/dev/trace**. You can use **read()**, **write()**, and **ioctl()** on the device node to read, write, and control trace in user mode.
 
-### User Mode<a name="section1996920294531"></a>
+- **read()**: reads the trace data in user mode.
 
-The trace character device is added in  **/dev/trace**. You can use  **read\(\)**,  **write\(\)**, and  **ioctl\(\)**  on the device node to read, write, and control trace in user mode.
+- **write()**: writes an event in user mode.
 
--   **read\(\)**: reads the trace data in user mode.
--   **write\(\)**: writes an event in user mode.
--   **ioctl\(\)**: performs user-mode trace operations, including:
+- **ioctl()**: performs user-mode trace operations, including:
 
+  
 ```
 #define TRACE_IOC_MAGIC   'T'
 #define TRACE_START      _IO(TRACE_IOC_MAGIC, 1)
@@ -189,134 +138,77 @@ The trace character device is added in  **/dev/trace**. You can use  **read\(\)*
 #define TRACE_SET_MASK	 _IO(TRACE_IOC_MAGIC, 5)
 ```
 
-The operations specified by the input parameter of  **ioctl\(\)**  correspond to  **LOS\_TraceStart**,  **LOS\_TraceStop**,  **LOS\_TraceReset**,  **LOS\_TraceRecordDump**, and  **LOS\_TraceEventMaskSet**, respectively.
+The operations specified by the input parameter of **ioctl()** correspond to **LOS_TraceStart**, **LOS_TraceStop**, **LOS_TraceReset**, **LOS_TraceRecordDump**, and **LOS_TraceEventMaskSet**, respectively.
+
+For details, see [User-Mode Development Example](kernel-small-debug-trace.md#user-mode).
+
 
-For more details, see  [User-mode Programming Example](https://gitee.com/openharmony/docs/blob/70744e1e0e34d66e11108a00c8db494eea49dd02/en/device-dev/kernel/kernel-small-debug-trace.md#section4.2.2).
+## Development Guidelines
 
-## Development Guidelines<a name="section10302175017543"></a>
 
-### Kernel-mode Development Process<a name="section04021008552"></a>
+### Kernel-Mode Development Process
 
 The typical trace process is as follows:
 
-1.  Configure the macro related to the trace module.
-
-    Configure the trace macro  **LOSCFG\_KERNEL\_TRACE**, which is disabled by default. Run the  **make update\_config**  command in the  **kernel/liteos\_a**  directory, choose  **Kernel**  \>  **Enable Hook Feature**, and set  **Enable Trace Feature**  to  **YES**.
-
-    <a name="table16145182665619"></a>
-    <table><thead align="left"><tr id="row16145192611566"><th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.1"><p id="p18145726175614"><a name="p18145726175614"></a><a name="p18145726175614"></a>Configuration</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.2"><p id="p15145162613562"><a name="p15145162613562"></a><a name="p15145162613562"></a>menuconfig Option</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.3"><p id="p111451263569"><a name="p111451263569"></a><a name="p111451263569"></a>Description</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.4"><p id="p12145112616562"><a name="p12145112616562"></a><a name="p12145112616562"></a>Value</p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row5318402576"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p330560125717"><a name="p330560125717"></a><a name="p330560125717"></a>LOSCFG_KERNEL_TRACE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p83051406576"><a name="p83051406576"></a><a name="p83051406576"></a>Enable Trace Feature</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p1530512018572"><a name="p1530512018572"></a><a name="p1530512018572"></a>Specifies whether to enable the trace feature.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p123051600573"><a name="p123051600573"></a><a name="p123051600573"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row1731810085715"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p1930514019579"><a name="p1930514019579"></a><a name="p1930514019579"></a>LOSCFG_RECORDER_MODE_OFFLINE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p1830511011573"><a name="p1830511011573"></a><a name="p1830511011573"></a>Trace work mode -&gt;Offline mode</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p23051509577"><a name="p23051509577"></a><a name="p23051509577"></a>Specifies whether to enable the online trace mode.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p630514085717"><a name="p630514085717"></a><a name="p630514085717"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row13189005711"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p1305110165716"><a name="p1305110165716"></a><a name="p1305110165716"></a>LOSCFG_RECORDER_MODE_ONLINE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p9305709579"><a name="p9305709579"></a><a name="p9305709579"></a>Trace work mode -&gt;Online mode</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p1330610175717"><a name="p1330610175717"></a><a name="p1330610175717"></a>Specifies whether to enable the offline trace mode.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p18306180185715"><a name="p18306180185715"></a><a name="p18306180185715"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row3318603579"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p1830616035713"><a name="p1830616035713"></a><a name="p1830616035713"></a>LOSCFG_TRACE_CLIENT_INTERACT</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p230613005719"><a name="p230613005719"></a><a name="p230613005719"></a>Enable Trace Client Visualization and Control</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p19306200125711"><a name="p19306200125711"></a><a name="p19306200125711"></a>Specifies whether to enable interaction with Trace IDE (dev tools), including data visualization and process control.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p16306130155720"><a name="p16306130155720"></a><a name="p16306130155720"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row23181607578"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p83064095720"><a name="p83064095720"></a><a name="p83064095720"></a>LOSCFG_TRACE_FRAME_CORE_MSG</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p730611075711"><a name="p730611075711"></a><a name="p730611075711"></a>Enable Record more extended content -&gt;Record cpuid, hardware interrupt status, task lock status</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p83061018576"><a name="p83061018576"></a><a name="p83061018576"></a>Specifies whether to enable recording of the CPU ID, interruption state, and lock task state.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p19306805574"><a name="p19306805574"></a><a name="p19306805574"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row8318904574"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p430617095718"><a name="p430617095718"></a><a name="p430617095718"></a>LOSCFG_TRACE_FRAME_EVENT_COUNT</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p13064013576"><a name="p13064013576"></a><a name="p13064013576"></a>Enable Record more extended content -&gt;Record event count, which indicate the sequence of happend events</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p133061203576"><a name="p133061203576"></a><a name="p133061203576"></a>Specifies whether to enables recording of the event sequence number.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p13306190105710"><a name="p13306190105710"></a><a name="p13306190105710"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row4318406577"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p183068010574"><a name="p183068010574"></a><a name="p183068010574"></a>LOSCFG_TRACE_FRAME_MAX_PARAMS</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p7306160125716"><a name="p7306160125716"></a><a name="p7306160125716"></a>Record max params</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p030610020572"><a name="p030610020572"></a><a name="p030610020572"></a>Specifies the maximum number of parameters for event recording.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p93065012570"><a name="p93065012570"></a><a name="p93065012570"></a>INT</p>
-    </td>
-    </tr>
-    <tr id="row17317102571"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p330616014570"><a name="p330616014570"></a><a name="p330616014570"></a>LOSCFG_TRACE_BUFFER_SIZE</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p03061903577"><a name="p03061903577"></a><a name="p03061903577"></a>Trace record buffer size</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p14306120115713"><a name="p14306120115713"></a><a name="p14306120115713"></a>Specifies the trace buffer size.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p230613012578"><a name="p230613012578"></a><a name="p230613012578"></a>INT</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
-
-2.  \(Optional\) Preset event parameters and stubs \(or use the default event parameter settings and event stubs\).
-3.  \(Optional\) Call  **LOS\_TraceStop**  to stop trace and call  **LOS\_TraceReset**  to clear the trace buffer. \(Trace is started by default.\)
-4.  \(Optional\) Call  **LOS\_TraceEventMaskSet**  to set the event mask for trace \(only the interrupts and task events are enabled by default\). For details about the event mask, see  **LOS\_TRACE\_MASK**  in  **los\_trace.h**.
-5.  Call  **LOS\_TraceStart**  at the start of the code where the event needs to be traced.
-6.  Call  **LOS\_TraceStop**  at the end of the code where the event needs to be traced.
-7.  Call  **LOS\_TraceRecordDump**  to output the data in the buffer. \(The input parameter of the function is of the Boolean type. The value  **FALSE**  means to output data in the specified format, and the value  **TRUE**  means to output data to Trace IDE.\)
-
-The methods in steps 3 to 7 are encapsulated with shell commands. After the shell is enabled, the corresponding commands can be executed. The mapping is as follows:
-
--   LOS\_TraceReset —— trace\_reset
--   LOS\_TraceEventMaskSet —— trace\_mask
--   LOS\_TraceStart —— trace\_start
--   LOS\_TraceStop —— trace\_stop
--   LOS\_TraceRecordDump —— trace\_dump
-
-## Kernel-mode Programming Example<a name="section112034213583"></a>
+1. Configure the macro related to the trace module.
+   
+   Configure the macro **LOSCFG_KERNEL_TRACE**, which is disabled by default. Run the **make update_config** command in the **kernel/liteos_a** directory, choose **Kernel** > **Enable Hook Feature**, and set **Enable Trace Feature** to **YES**.
+   
+| Configuration Item | menuconfig Option| Description| Value|
+| -------- | -------- | -------- | -------- |
+| LOSCFG_KERNEL_TRACE | Enable&nbsp;Trace&nbsp;Feature | Specifies whether to enable the trace feature.| YES/NO |
+| LOSCFG_RECORDER_MODE_OFFLINE | Trace&nbsp;work&nbsp;mode&nbsp;-&gt;Offline&nbsp;mode | Specifies whether to enable the online trace mode.| YES/NO |
+| LOSCFG_RECORDER_MODE_ONLINE | Trace&nbsp;work&nbsp;mode&nbsp;-&gt;Online&nbsp;mode | Specifies whether to enable the offline trace mode.| YES/NO |
+| LOSCFG_TRACE_CLIENT_INTERACT | Enable&nbsp;Trace&nbsp;Client&nbsp;Visualization&nbsp;and&nbsp;Control | Enables interaction with Trace IDE (dev tools), including data visualization and process control.| YES/NO |
+| LOSCFG_TRACE_FRAME_CORE_MSG | Enable&nbsp;Record&nbsp;more&nbsp;extended&nbsp;content&nbsp;-<br>&gt;Record&nbsp;cpuid,&nbsp;hardware&nbsp;interrupt<br>&nbsp;status,&nbsp;task&nbsp;lock&nbsp;status | Specifies whether to enable recording of the CPU ID, interruption state, and lock task state.| YES/NO |
+| LOSCFG_TRACE_FRAME_EVENT_COUNT | Enable&nbsp;Record&nbsp;more&nbsp;extended&nbsp;content<br>&nbsp;-&gt;Record&nbsp;event&nbsp;count,<br>&nbsp;which&nbsp;indicate&nbsp;the&nbsp;sequence&nbsp;of&nbsp;happend&nbsp;events | Specifies whether to enables recording of the event sequence number.| YES/NO |
+| LOSCFG_TRACE_FRAME_MAX_PARAMS | Record&nbsp;max&nbsp;params | Specifies the maximum number of parameters for event recording.| INT |
+| LOSCFG_TRACE_BUFFER_SIZE | Trace&nbsp;record&nbsp;buffer&nbsp;size | Specifies the trace buffer size.| INT |
+
+2. (Optional) Preset event parameters and stubs (or use the default event parameter settings and event stubs).
+
+3. (Optional) Call **LOS_TraceStop** to stop trace and call **LOS_TraceReset** to clear the trace buffer. (Trace is started by default.)
+
+4. (Optional) Call **LOS_TraceEventMaskSet** to set the event mask for trace (only the interrupts and task events are enabled by default). For details about the event mask, see **LOS_TRACE_MASK** in **los_trace.h**.
+
+5. Call **LOS_TraceStart** at the start of the code where the event needs to be traced.
+
+6. Call **LOS_TraceStop** at the end of the code where the event needs to be traced.
+
+7. Call **LOS_TraceRecordDump** to output the data in the buffer. (The input parameter of the function is of the Boolean type. The value **FALSE** means to output data in the specified format, and the value **TRUE** means to output data to Trace IDE.)
+
+The methods in steps 3 to 7 are encapsulated with shell commands. You can run these commands on shell. The mappings between the functions and commands are as follows:
+
+- LOS_TraceReset —— trace_reset
+
+- LOS_TraceEventMaskSet —— trace_mask
+
+- LOS_TraceStart —— trace_start
+
+- LOS_TraceStop —— trace_stop
+
+- LOS_TraceRecordDump —— trace_dump
+
+
+### Kernel-Mode Development Example
 
 This example implements the following:
 
-1.  Create a trace task.
-2.  Set the event mask.
-3.  Start trace.
-4.  Stop trace.
-5.  Output trace data in the specified format.
+1. Create a trace task.
+
+2. Set the event mask.
+
+3. Start trace.
+
+4. Stop trace.
+
+5. Output trace data in the specified format.
+
+
+### Kernel-Mode Sample Code
 
-## Kernel-mode Sample Code<a name="section10348549155812"></a>
+The sample code is as follows:
 
-The code is as follows:
 
 ```
 #include "los_trace.h"
@@ -331,21 +223,21 @@ VOID Example_Trace(VOID)
         dprintf("trace start error\n");        
         return;    
     }    
- /* Trigger a task switching event.*/
+    /* Trigger a task switching event. */   
     LOS_TaskDelay(1);    
     LOS_TaskDelay(1);    
     LOS_TaskDelay(1);    
- /* Stop trace.*/
+    /* Stop trace. */   
     LOS_TraceStop();    
     LOS_TraceRecordDump(FALSE);
 }
 UINT32 Example_Trace_test(VOID){
     UINT32 ret;    
     TSK_INIT_PARAM_S traceTestTask;    
- /* Create a trace task. */
+    /* Create a trace task. */   
     memset(&traceTestTask, 0, sizeof(TSK_INIT_PARAM_S));    
     traceTestTask.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Trace;    
- traceTestTask.pcName = "TestTraceTsk"; /* Trace task name*/
+    traceTestTask.pcName       = "TestTraceTsk";    /* Test task name. */   				     
     traceTestTask.uwStackSize  = 0x800;    
     traceTestTask.usTaskPrio   = 5;    
     traceTestTask.uwResved   = LOS_TASK_STATUS_DETACHED;    
@@ -354,22 +246,24 @@ UINT32 Example_Trace_test(VOID){
         dprintf("TraceTestTask create failed .\n");        
         return LOS_NOK;    
     }    
- /* Trace is started by default. Therefore, you can stop trace, clear the buffer, and then restart trace. */
+    /* Trace is started by default. Therefore, you can stop trace, clear the buffer, and then start trace. */                   	  
     LOS_TraceStop();    
     LOS_TraceReset();    
- /* Enable trace of the Task module events. */
+    /* Enable trace of the Task module events. */   
     LOS_TraceEventMaskSet(TRACE_TASK_FLAG);    
     return LOS_OK;
 }
 LOS_MODULE_INIT(Example_Trace_test, LOS_INIT_LEVEL_KMOD_EXTENDED);
 ```
 
-## Verification<a name="section8601444165916"></a>
+
+### Verification
 
 The output is as follows:
 
+
 ```
-*******TraceInfo begin*******
+***TraceInfo begin***
 clockFreq = 50000000
 CurEvtIndex = 7
 Index   Time(cycles)      EventType      CurTask   Identity      params    
@@ -381,36 +275,41 @@ Index   Time(cycles)      EventType      CurTask   Identity      params
 5       0x36eec810        0x45           0xc       0x1           0x9          0x8       0x1f
 6       0x3706f804        0x45           0x1       0x0           0x1f         0x4       0x0
 7       0x37070e59        0x45           0x0       0x1           0x0          0x8       0x1f
-*******TraceInfo end*******
+***TraceInfo end***
 ```
 
 The output event information includes the occurrence time, event type, task in which the event occurs, object of the event operation, and other parameters of the event.
 
--   **EventType**: event type. For details, see  **enum LOS\_TRACE\_TYPE**  in the header file  **los\_trace.h**.
--   **CurrentTask**: ID of the running task.
--   **Identity**: object of the event operation. For details, see  **\#TYPE\#\_PARAMS**  in the header file  **los\_trace.h**.
--   **params**: event parameters. For details, see  **\#TYPE\#\_PARAMS**  in the header file  **los\_trace.h**.
+- **EventType**: event type. For details, see **enum LOS_TRACE_TYPE** in the header file **los_trace.h**.
+
+- **CurrentTask**: ID of the running task.
+
+- **Identity**: object of the event operation. For details, see **#TYPE#_PARAMS** in the header file **los_trace.h**.
+
+- **params**: event parameters. For details, see **#TYPE#_PARAMS** in the header file **los_trace.h**.
 
 The following uses output No. 0 as an example.
 
+
 ```
 Index   Time(cycles)      EventType      CurTask   Identity      params
 0       0x366d5e88        0x45           0x1       0x0           0x1f         0x4
 ```
 
--   **Time \(cycles\)**  can be converted into time \(in seconds\) by dividing the cycles by clockFreq.
--   **0x45**  indicates the task switching event.  **0x1**  is the ID of the task in running. 
--   For details about the meanings of  **Identity**  and  **params**, see the  **TASK\_SWITCH\_PARAMS**  macro.
+- **Time (cycles)** can be converted into time (in seconds) by dividing the cycles by clockFreq.
+
+- **0x45** indicates the task switching event. **0x1** is the ID of the task in running. 
+
+- For details about the meanings of **Identity** and **params**, see the **TASK_SWITCH_PARAMS** macro.
 
 ```
 #define TASK_SWITCH_PARAMS(taskId, oldPriority, oldTaskStatus, newPriority, newTaskStatus) \
 taskId, oldPriority, oldTaskStatus, newPriority, newTaskStatus
 ```
 
-Because of  **\#TYPE\#\_PARAMS\(IDENTITY, parma1...\) IDENTITY, ...**,  **Identity**  is  **taskId \(0x0\)**  and the first parameter is  **oldPriority \(0x1f\)**.
-
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->The number of  **param**s is specified by the  **LOSCFG\_TRACE\_FRAME\_MAX\_PARAMS**  parameter. The default value is  **3**. Excess parameters are not recorded. You need to set  **LOSCFG\_TRACE\_FRAME\_MAX\_PARAMS**  based on service requirements.
+Because of **#TYPE#_PARAMS(IDENTITY, parma1...) IDENTITY, ...**, **Identity** is **taskId (0x0)** and the first parameter is **oldPriority (0x1f)**.
 
-Task 0x1 is switched to Task 0x0. The priority of task 0x1 is  **0x1f**, and the state is  **0x4**. The priority of the task 0x0 is  **0x0**.
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> The number of parameters in **params** is specified by **LOSCFG_TRACE_FRAME_MAX_PARAMS**. The default value is **3**. Excess parameters are not recorded. You need to set **LOSCFG_TRACE_FRAME_MAX_PARAMS** based on service requirements.
 
+Task 0x1 is switched to Task 0x0. The priority of task 0x1 is **0x1f**, and the state is **0x4**. The priority of the task 0x0 is **0x0**.
diff --git a/en/device-dev/kernel/kernel-small-memory-lms.md b/en/device-dev/kernel/kernel-small-memory-lms.md
index 74595cb951918bad29df9240c52395866cc5e853..277cbea8a28268a9c4597be980a22bb69f8f85f8 100644
--- a/en/device-dev/kernel/kernel-small-memory-lms.md
+++ b/en/device-dev/kernel/kernel-small-memory-lms.md
@@ -1,186 +1,119 @@
 # LMS
 
 
-## Basic Concepts<a name="section531482192018"></a>
+## Basic Concepts
 
-Lite Memory Sanitizer \(LMS\) is a tool used to detect memory errors on a real-time basis. LMS can detect buffer overflow, Use-After-Free \(UAF\), and double free errors in real time, and notify the operating system immediately. Together with locating methods such as Backtrace, LMS can locate the code line that causes the memory error. It greatly improves the efficiency of locating memory errors.
+Lite Memory Sanitizer (LMS) is a tool used to detect memory errors on a real-time basis. LMS can detect buffer overflow, Use-After-Free (UAF), and double free errors in real time, and notify the operating system immediately. Together with locating methods such as Backtrace, LMS can locate the code line that causes the memory error. It greatly improves the efficiency of locating memory errors.
 
 The LMS module of the OpenHarmony LiteOS-A kernel provides the following functions:
 
--   Supports check of multiple memory pools.
--   Checks the memory allocated by  **LOS\_MemAlloc**,  **LOS\_MemAllocAlign**, and  **LOS\_MemRealloc**.
--   Checks the memory when bounds-checking functions are called \(enabled by default\).
--   Checks the memory when libc frequently accessed functions, including  **memset**,  **memcpy**,  **memmove**,  **strcat**,  **strcpy**,  **strncat**  and  **strncpy**, are called.
-
-## Working Principles<a name="section5125124532010"></a>
-
-LMS uses shadow memory mapping to mark the system memory state. There are three states:  **Accessible**,  **RedZone**, and  **Freed**. The shadow memory is located in the tail of the memory pool.
-
--   After memory is allocated from the heap, the shadow memory in the data area is set to the  **Accessible**  state, and the shadow memory in the head node area is set to the  **RedZone**  state.
--   When memory is released from the heap, the shadow memory of the released memory is set to the  **Freed**  state.
--   During code compilation, a function is inserted before the read/write instructions in the code to check the address validity. The tool checks the state value of the shadow memory that accesses the memory. If the shadow memory is in the  **RedZone**  statue, an overflow error will be reported. If the shadow memory is in the  **Freed**  state, a UAF error will be reported.
--   When memory is released, the tool checks the state value of the shadow memory at the released address. If the shadow memory is in the  **RedZone**  state, a double free error will be reported.
-
-## Available APIs<a name="section17747184017458"></a>
-
-### Kernel Mode<a name="section104473014465"></a>
-
-The LMS module of the OpenHarmony LiteOS-A kernel provides the following APIs. For more details about the APIs, see the  [API](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_lms.h)  reference.
-
-**Table  1**  LMS module APIs
-
-<a name="table209384411409"></a>
-<table><thead align="left"><tr id="row49387411909"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p142345517111"><a name="p142345517111"></a><a name="p142345517111"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p16234751114"><a name="p16234751114"></a><a name="p16234751114"></a>API</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p1823555614"><a name="p1823555614"></a><a name="p1823555614"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row8853204717245"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1363682115251"><a name="p1363682115251"></a><a name="p1363682115251"></a>Adding a memory pool to be checked</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p363617214253"><a name="p363617214253"></a><a name="p363617214253"></a>LOS_LmsCheckPoolAdd</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1163632113259"><a name="p1163632113259"></a><a name="p1163632113259"></a>Adds the address range of a memory pool to the LMS check linked list. LMS performs a validity check when the accessed address is within the linked list. In addition, <strong id="b126321851183511"><a name="b126321851183511"></a><a name="b126321851183511"></a>LOS_MemInit</strong> calls this API to add the initialized memory pool to the LMS check linked list by default.</p>
-</td>
-</tr>
-<tr id="row1094914508245"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p13104133062514"><a name="p13104133062514"></a><a name="p13104133062514"></a>Deleting a memory pool from the LMS check linked list</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p161042030142516"><a name="p161042030142516"></a><a name="p161042030142516"></a>LOS_LmsCheckPoolDel</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p17104430102517"><a name="p17104430102517"></a><a name="p17104430102517"></a>Cancels the validity check on the specified memory pool.</p>
-</td>
-</tr>
-<tr id="row749355410241"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p178831422252"><a name="p178831422252"></a><a name="p178831422252"></a>Protecting a specified memory chunk</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1688315421254"><a name="p1688315421254"></a><a name="p1688315421254"></a>LOS_LmsAddrProtect</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p128831842152520"><a name="p128831842152520"></a><a name="p128831842152520"></a>Locks a memory chunk to prevent it from being read or written. Once the locked memory chunk is accessed, an error will be reported.</p>
-</td>
-</tr>
-<tr id="row1018195932414"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p11243144917257"><a name="p11243144917257"></a><a name="p11243144917257"></a>Disabling protection of a specified memory chunk</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p1324354932516"><a name="p1324354932516"></a><a name="p1324354932516"></a>LOS_LmsAddrDisableProtect</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p12243184922515"><a name="p12243184922515"></a><a name="p12243184922515"></a>Unlocks a memory chunk to make it readable and writable.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-### User Mode<a name="section58151229172811"></a>
+- Supports check of multiple memory pools.
+
+- Checks the memory allocated by **LOS_MemAlloc**, **LOS_MemAllocAlign**, and **LOS_MemRealloc**.
+
+- Checks the memory when bounds-checking functions are called (enabled by default).
+
+- Checks the memory when libc frequently accessed functions, including **memset**, **memcpy**, **memmove**, **strcat**, **strcpy**, **strncat** and **strncpy**, are called.
+
+
+## Working Principles
+
+LMS uses shadow memory mapping to mark the system memory state. There are three states: **Accessible**, **RedZone**, and **Freed**. The shadow memory is located in the tail of the memory pool.
+
+- After memory is allocated from the heap, the shadow memory in the data area is set to the **Accessible** state, and the shadow memory in the head node area is set to the **RedZone** state.
+
+- When memory is released from the heap, the shadow memory of the released memory is set to the **Freed** state.
+
+- During code compilation, a function is inserted before the read/write instructions in the code to check the address validity. The tool checks the state value of the shadow memory that accesses the memory. If the shadow memory is in the **RedZone** statue, an overflow error will be reported. If the shadow memory is in the **Freed** state, a UAF error will be reported.
+
+- When memory is released, the tool checks the state value of the shadow memory at the released address. If the shadow memory is in the **RedZone** state, a double free error will be reported.
+
+
+## Available APIs
+
+
+### Kernel Mode
+
+The LMS module of the OpenHarmony LiteOS-A kernel provides the following APIs. For more details, see [API reference](https://gitee.com/openharmony/kernel_liteos_a/blob/master/kernel/include/los_lms.h).
+
+  **Table 1** APIs of the LMS module
+
+| Category| API| Description|
+| -------- | -------- | -------- |
+| Adding a memory pool to be checked| LOS_LmsCheckPoolAdd | Adds the address range of a memory pool to the LMS check linked list. LMS performs a validity check when the accessed address is within the linked list. In addition, **LOS_MemInit** calls this API to add the initialized memory pool to the LMS check linked list by default.|
+| Deleting a memory pool from the LMS check linked list| LOS_LmsCheckPoolDel | Cancels the validity check on the specified memory pool.|
+| Protecting a specified memory chunk| LOS_LmsAddrProtect | Locks a memory chunk to prevent it from being read or written. Once the locked memory chunk is accessed, an error will be reported.|
+| Disabling protection of a specified memory chunk| LOS_LmsAddrDisableProtect | Unlocks a memory chunk to make it readable and writable.|
+
+
+### User Mode
 
 The user mode provides only the LMS check library. It does not provide external APIs.
 
-## Development Guidelines<a name="section10302175017543"></a>
 
-### Kernel-mode Development Process<a name="section04021008552"></a>
+## Development Guidelines
 
-The typical process for enabling LMS is as follows:
 
-1.  Configure the macros related to the LMS module.
-
-    Configure the LMS macro  **LOSCFG\_KERNEL\_LMS**, which is disabled by default. Run the  **make update\_config**  command in the  **kernel/liteos\_a**  directory, choose  **Kernel**, and select  **Enable Lite Memory Sanitizer**.
-
-    <a name="table06964569614"></a>
-    <table><thead align="left"><tr id="row1697105618610"><th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.1"><p id="p669715610619"><a name="p669715610619"></a><a name="p669715610619"></a>Macro</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.2"><p id="p0697105612614"><a name="p0697105612614"></a><a name="p0697105612614"></a>menuconfig Option</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.3"><p id="p5697175610610"><a name="p5697175610610"></a><a name="p5697175610610"></a>Description</p>
-    </th>
-    <th class="cellrowborder" valign="top" width="25%" id="mcps1.1.5.1.4"><p id="p1269712561866"><a name="p1269712561866"></a><a name="p1269712561866"></a>Value</p>
-    </th>
-    </tr>
-    </thead>
-    <tbody><tr id="row92613334297"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p4252633102917"><a name="p4252633102917"></a><a name="p4252633102917"></a>LOSCFG_KERNEL_LMS</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p92528337293"><a name="p92528337293"></a><a name="p92528337293"></a>Enable Lms Feature</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p13252133362915"><a name="p13252133362915"></a><a name="p13252133362915"></a>Whether to enable LMS.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p42521833172917"><a name="p42521833172917"></a><a name="p42521833172917"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row19261173310297"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p02529337299"><a name="p02529337299"></a><a name="p02529337299"></a>LOSCFG_LMS_MAX_RECORD_POOL_NUM</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p4252203372913"><a name="p4252203372913"></a><a name="p4252203372913"></a>Lms check pool max num</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p15253153322912"><a name="p15253153322912"></a><a name="p15253153322912"></a>Maximum number of memory pools that can be checked by LMS.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p11253123319293"><a name="p11253123319293"></a><a name="p11253123319293"></a>INT</p>
-    </td>
-    </tr>
-    <tr id="row22611332293"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p325363316297"><a name="p325363316297"></a><a name="p325363316297"></a>LOSCFG_LMS_LOAD_CHECK</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p162531334294"><a name="p162531334294"></a><a name="p162531334294"></a>Enable lms read check</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p7253633112915"><a name="p7253633112915"></a><a name="p7253633112915"></a>Whether to enable LMS read check.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p02531733132910"><a name="p02531733132910"></a><a name="p02531733132910"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row1826153311290"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p1025383314293"><a name="p1025383314293"></a><a name="p1025383314293"></a>LOSCFG_LMS_STORE_CHECK</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p125383322920"><a name="p125383322920"></a><a name="p125383322920"></a>Enable lms write check</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p52531933192917"><a name="p52531933192917"></a><a name="p52531933192917"></a>Whether to enable LMS write check.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p225313335292"><a name="p225313335292"></a><a name="p225313335292"></a>YES/NO</p>
-    </td>
-    </tr>
-    <tr id="row15261333142915"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.1 "><p id="p825310333293"><a name="p825310333293"></a><a name="p825310333293"></a>LOSCFG_LMS_CHECK_STRICT</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.2 "><p id="p142538338292"><a name="p142538338292"></a><a name="p142538338292"></a>Enable lms strict check, byte-by-byte</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.3 "><p id="p1325333352920"><a name="p1325333352920"></a><a name="p1325333352920"></a>Whether to enable LMS byte-by-byte check.</p>
-    </td>
-    <td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.5.1.4 "><p id="p32541333292"><a name="p32541333292"></a><a name="p32541333292"></a>YES/NO</p>
-    </td>
-    </tr>
-    </tbody>
-    </table>
-
-2.  Modify the compile script of the target module.
-
-    Add "-fsanitize=kernel-address" to insert memory access checks, and add the  **-O0**  option to disable optimization performed by the compiler.
-
-    The modifications vary depending on the compiler \(GCC or Clang\) used. The following is an example:
-
-    ```
-    if ("$ohos_build_compiler_specified" == "gcc") {
-        cflags_c = [
-        "-O0",
-        "-fsanitize=kernel-address",
-        ]
-    } else {
-        cflags_c = [
-        "-O0",
-        "-fsanitize=kernel-address",
-        "-mllvm",
-        "-asan-instrumentation-with-call-threshold=0",
-        "-mllvm",
-        "-asan-stack=0",
-        "-mllvm",
-        "-asan-globals=0",
-        ]
-    }
-    ```
+### Kernel-Mode Development Process
 
-3.  Recompile the code and check the serial port output. The memory problem detected will be displayed.
+The typical process for enabling LMS is as follows:
 
-## Kernel-mode Development Example<a name="section112034213583"></a>
+1. Configure the macros related to the LMS module.
+   
+   Configure the LMS macro **LOSCFG_KERNEL_LMS**, which is disabled by default. Run the **make update_config** command in the **kernel/liteos_a** directory, choose **Kernel**, and select **Enable Lite Memory Sanitizer**.
+   
+   | Macro| menuconfig Option| Description| Value:|
+   | -------- | -------- | -------- | -------- |
+   | LOSCFG_KERNEL_LMS | Enable Lms Feature | Whether to enable LMS.| YES/NO |
+   | LOSCFG_LMS_MAX_RECORD_POOL_NUM | Lms check pool max num | Maximum number of memory pools that can be checked by LMS.| INT |
+   | LOSCFG_LMS_LOAD_CHECK | Enable lms read check | Whether to enable LMS read check.| YES/NO |
+   | LOSCFG_LMS_STORE_CHECK | Enable lms write check | Whether to enable LMS write check.| YES/NO |
+   | LOSCFG_LMS_CHECK_STRICT | Enable lms strict check, byte-by-byte | Whether to enable LMS byte-by-byte check.| YES/NO |
+   
+   
+2. Modify the build script of the target module.
+
+   Add **-fsanitize=kernel-address** to insert memory access checks, and add the  **-O0**  option to disable optimization performed by the compiler.
+
+   The modifications vary depending on the compiler (GCC or Clang) used. The following is an example:
+
+   ```
+   if ("$ohos_build_compiler_specified" == "gcc") {
+       cflags_c = [
+       "-O0",
+       "-fsanitize=kernel-address",
+       ]
+   } else {
+       cflags_c = [
+       "-O0",
+       "-fsanitize=kernel-address",
+       "-mllvm",
+       "-asan-instrumentation-with-call-threshold=0",
+       "-mllvm",
+       "-asan-stack=0",
+       "-mllvm",
+       "-asan-globals=0",
+       ]
+   }
+   ```
+
+3. Recompile the code and check the serial port output. The memory problem detected will be displayed.
+
+
+#### Kernel-Mode Development Example
 
 This example implements the following:
 
-1.  Create a task for LMS.
-2.  Construct a buffer overflow error and a UAF error.
-3.  Add "-fsanitize=kernel-address", execute the compilation, and check the output.
+1. Create a task for LMS.
 
-## Kernel-mode Sample Code<a name="section10348549155812"></a>
+2. Construct a buffer overflow error and a UAF error.
 
-The code is as follows:
+3. Add "-fsanitize=kernel-address", execute the compilation, and check the output.
+
+
+#### Kernel-Mode Sample Code
+
+  The sample code is as follows:
 
 ```
 #define PAGE_SIZE       (0x1000U)
@@ -221,10 +154,10 @@ VOID LmsTestCaseTask(VOID)
 UINT32 Example_Lms_test(VOID){
     UINT32 ret;    
     TSK_INIT_PARAM_S lmsTestTask;    
-    /* Create a task for LMS. */
+    /* Create a task for LMS. */   
     memset(&lmsTestTask, 0, sizeof(TSK_INIT_PARAM_S));    
     lmsTestTask.pfnTaskEntry = (TSK_ENTRY_FUNC)LmsTestCaseTask;
-    lmsTestTask.pcName       = "TestLmsTsk";    /* Task name. */
+    lmsTestTask.pcName       = "TestLmsTsk";  /* Test task name. */   				     
     lmsTestTask.uwStackSize  = 0x800;    
     lmsTestTask.usTaskPrio   = 5;    
     lmsTestTask.uwResved   = LOS_TASK_STATUS_DETACHED;    
@@ -238,20 +171,21 @@ UINT32 Example_Lms_test(VOID){
 LOS_MODULE_INIT(Example_Lms_test, LOS_INIT_LEVEL_KMOD_EXTENDED);
 ```
 
-### Kernel-mode Verification<a name="section61719481795"></a>
 
-The output is as follows:
+#### Kernel-Mode Verification
+
+  The output is as follows:
 
 ```
 ######LmsTestOsmallocOverflow start ######
-[ERR][KProcess:LmsTestCaseTask]*****  Kernel Address Sanitizer Error Detected Start *****
+[ERR][KProcess:LmsTestCaseTask]*  Kernel Address Sanitizer Error Detected Start *
 [ERR][KProcess:LmsTestCaseTask]Heap buffer overflow error detected
 [ERR][KProcess:LmsTestCaseTask]Illegal READ address at: [0x4157a3c8]
 [ERR][KProcess:LmsTestCaseTask]Shadow memory address: [0x4157be3c : 4]  Shadow memory value: [2]
 OsBackTrace fp = 0x402c0f88
 runTask->taskName = LmsTestCaseTask
 runTask->taskID = 2
-*******backtrace begin*******
+***backtrace begin***
 traceback fp fixed, trace using   fp = 0x402c0fd0
 traceback 0 -- lr = 0x400655a4    fp = 0x402c0ff8
 traceback 1 -- lr = 0x40065754    fp = 0x402c1010
@@ -269,18 +203,18 @@ traceback 3 -- lr = 0x40004e14    fp = 0xcacacaca
         [0x4157a3e0]:  00  00  00  00  00  00  00  00 | [0x4157be3e |  0]:  3  3
         [0x4157a3e8]:  00  00  00  00  00  00  00  00 | [0x4157be3e |  4]:  3  3
         [0x4157a3f0]:  00  00  00  00  00  00  00  00 | [0x4157be3f |  0]:  3  3
-[ERR][KProcess:LmsTestCaseTask]*****  Kernel Address Sanitizer Error Detected End *****
+[ERR][KProcess:LmsTestCaseTask]*  Kernel Address Sanitizer Error Detected End *
 str[20]=0xffffffba
 ######LmsTestOsmallocOverflow stop ######
 ###### LmsTestUseAfterFree start ######
-[ERR][KProcess:LmsTestCaseTask]*****  Kernel Address Sanitizer Error Detected Start *****
+[ERR][KProcess:LmsTestCaseTask]*  Kernel Address Sanitizer Error Detected Start *
 [ERR][KProcess:LmsTestCaseTask]Use after free error detected
 [ERR][KProcess:LmsTestCaseTask]Illegal READ address at: [0x4157a3d4]
 [ERR][KProcess:LmsTestCaseTask]Shadow memory address: [0x4157be3d : 2]  Shadow memory value: [3]
 OsBackTrace fp = 0x402c0f90
 runTask->taskName = LmsTestCaseTask
 runTask->taskID = 2
-*******backtrace begin*******
+***backtrace begin***
 traceback fp fixed, trace using   fp = 0x402c0fd8
 traceback 0 -- lr = 0x40065680    fp = 0x402c0ff8
 traceback 1 -- lr = 0x40065758    fp = 0x402c1010
@@ -298,35 +232,36 @@ traceback 3 -- lr = 0x40004e14    fp = 0xcacacaca
         [0x4157a3e8]:  ba  dc  cd  ab  c8  a3  57  41 | [0x4157be3e |  4]:  2  2
         [0x4157a3f0]:  0c  1a  00  00  00  00  00  00 | [0x4157be3f |  0]:  2  3
         [0x4157a3f8]:  00  00  00  00  00  00  00  00 | [0x4157be3f |  4]:  3  3
-[ERR][KProcess:LmsTestCaseTask]*****  Kernel Address Sanitizer Error Detected End *****
+[ERR][KProcess:LmsTestCaseTask]*  Kernel Address Sanitizer Error Detected End *
 str[ 0]=0x 0
 ######LmsTestUseAfterFree stop ######
 ```
 
 The key output information is as follows:
 
--   Error type:
-    -   Heap buffer overflow
-    -   UAF
+- Error type:
+  - Heap buffer overflow
+  - UAF
+
+- Incorrect operations:
+  - Illegal read
+  - Illegal write
+  - Illegal double free
 
--   Incorrect operations:
-    -   Illegal read
-    -   Illegal write
-    -   Illegal double free
+- Context:
+  - Task information (**taskName** and **taskId**)
+  - Backtrace
 
--   Context:
-    -   Task information \(**taskName**  and  **taskId**\)
-    -   Backtrace
+- Memory information of the error addresses:
+  - Memory value and the value of the corresponding shadow memory
+  - Memory address: memory value|[shadow memory address|shadow memory byte offset]: shadow memory value
+  - Shadow memory value. **0** (Accessible), **3** (Freed), **2** (RedZone), and **1** (filled value)
 
--   Memory information of the error addresses:
-    -   Memory value and the value of the corresponding shadow memory
-    -   Memory address: memory value|\[shadow memory address|shadow memory byte offset\]: shadow memory value
-    -   Shadow memory value.  **0**  \(Accessible\),  **3**  \(Freed\),  **2**  \(RedZone\), and  **1**  \(filled value\)
 
+### User-Mode Development Process
 
-### User-mode Development Process<a name="section1425821711114"></a>
+Add the following to the build script of the app to be checked. For details about the complete code, see **/kernel/liteos_a/apps/lms/BUILD.gn**.
 
-Add the following to the build script of the app to be checked. For details about the complete code, see  **/kernel/liteos\_a/apps/lms/BUILD.gn**.
 
 ```
 if ("$ohos_build_compiler_specified" == "gcc") {
@@ -369,16 +304,19 @@ if ("$ohos_build_compiler_specified" == "gcc") {
   deps = [ "//kernel/liteos_a/kernel/extended/lms/usr:usrlmslib" ]
 ```
 
-### User-mode Development Example<a name="section3470546163"></a>
+
+#### User-Mode Development Example
 
 This example implements the following:
 
-1.  Construct a buffer overflow error and a UAF error.
-2.  Modify the build script and perform the build again.
+1. Construct a buffer overflow error and a UAF error.
+
+2. Modify the build script and perform the build again.
+
 
-### User-Mode Sample Code<a name="section183253286161"></a>
+#### User-Mode Sample Code
 
-The code is as follows:
+  The code is as follows:
 
 ```
 static void BufWriteTest(void *buf, int start, int end)
@@ -421,16 +359,17 @@ int main(int argc, char * const * argv)
 }
 ```
 
-### User-mode Verification<a name="section5665123516214"></a>
 
-The output is as follows:
+#### User-Mode Verification
+
+  The output is as follows:
 
 ```
-*****  Lite Memory Sanitizer Error Detected  *****
+*  Lite Memory Sanitizer Error Detected  *
 Heap buffer overflow error detected!
 Illegal READ address at: [0x1f8b3edf]
 Shadow memory address: [0x3d34d3ed : 6]  Shadow memory value: [2]
-Accessable heap addr     0
+Accessible heap addr     0
 Heap red zone            2
 Heap freed buffer        3
 Dump info around address [0x1f8b3edf]:
@@ -443,7 +382,7 @@ Dump info around address [0x1f8b3edf]:
         [0x1f8b3ee8]:  09  00  00  00  00  00  00  00 | [0x3d34d3ee |  4]:  0  0
         [0x1f8b3ef0]:  00  00  00  00  08  03  09  00 | [0x3d34d3ef |  0]:  2  2
         [0x1f8b3ef8]:  00  00  00  00  00  00  00  00 | [0x3d34d3ef |  4]:  2  2
-*****  Lite Memory Sanitizer Error Detected End *****
+*  Lite Memory Sanitizer Error Detected End *
 Backtrace() returned 5 addresses
     #01: <LMS_ReportError+0x284>[0x4d6c] -> ./sample_usr_lms
     #02: <(null)+0x2004074>[0x4074] -> ./sample_usr_lms
@@ -451,11 +390,11 @@ Backtrace() returned 5 addresses
     #04: <main+0x40>[0x363c] -> ./sample_usr_lms
     #05: <(null)+0x1f856f30>[0x56f30] -> /lib/libc.so
 -------- LMS_malloc_test End --------
-*****  Lite Memory Sanitizer Error Detected  *****
+*  Lite Memory Sanitizer Error Detected  *
 Use after free error detected!
 Illegal Double free address at: [0x1f8b3ee0]
 Shadow memory address: [0x3d34d3ee : 0]  Shadow memory value: [3]
-Accessable heap addr     0
+Accessible heap addr     0
 Heap red zone            2
 Heap freed buffer        3
 Dump info around address [0x1f8b3ee0]:
@@ -468,7 +407,7 @@ Dump info around address [0x1f8b3ee0]:
         [0x1f8b3ef0]:  20  40  8b  1f  20  20  8b  1f | [0x3d34d3ef |  0]:  3  3
         [0x1f8b3ef8]:  00  00  00  00  00  00  00  00 | [0x3d34d3ef |  4]:  3  3
         [0x1f8b3f00]:  00  00  00  00  00  00  00  00 | [0x3d34d3f0 |  0]:  3  3
-*****  Lite Memory Sanitizer Error Detected End *****
+*  Lite Memory Sanitizer Error Detected End *
 Backtrace() returned 5 addresses
     #01: <LMS_ReportError+0x284>[0x4d6c] -> ./sample_usr_lms
     #02: <LMS_free+0xcc>[0x5548] -> ./sample_usr_lms
@@ -479,4 +418,3 @@ Backtrace() returned 5 addresses
 ```
 
 The Backtrace output contains the names of the files where the addresses are located. You can locate the code line corresponding to the address in the related file.
-
diff --git a/en/device-dev/kernel/kernel-small-start-kernel.md b/en/device-dev/kernel/kernel-small-start-kernel.md
index c92af04ba02216c05708e280bd427b7b8cb128d8..01c4373ac8b51dc17a9ea91985c98688f4965311 100644
--- a/en/device-dev/kernel/kernel-small-start-kernel.md
+++ b/en/device-dev/kernel/kernel-small-start-kernel.md
@@ -1,99 +1,46 @@
 # Startup in Kernel Mode
 
 
-## Kernel Startup Process<a name="section9882154318299"></a>
-
-The kernel startup process consists of the assembly startup and C language startup, as shown in the following figure. The assembly startup involves the following operations: initializing CPU settings, disabling dCache/iCache, enabling the FPU and NEON, setting the MMU to establish the virtual-physical address mapping, setting the system stack, clearing the BSS segment, and calling the main function of the C language. The C language startup involves the following operations: starting the OsMain function and starting scheduling. As shown in the following figure, the OsMain function is used for basic kernel initialization and architecture- and board-level initialization. The kernel startup framework leads the initialization process. The right part of the figure shows the phase in which external modules can register with the kernel startup framework and starts.  [Table 1](#table38544719428)  describes each phase.
-
-**Figure  1**  Kernel startup process<a name="fig983731153511"></a>  
-![](figures/kernel-startup-process-2.png "kernel-startup-process-2")
-
-**Table  1**  Startup framework levels
-
-<a name="table38544719428"></a>
-<table><thead align="left"><tr id="row286134714423"><th class="cellrowborder" valign="top" width="35.58%" id="mcps1.2.3.1.1"><p id="p886164717423"><a name="p886164717423"></a><a name="p886164717423"></a>Level</p>
-</th>
-<th class="cellrowborder" valign="top" width="64.42%" id="mcps1.2.3.1.2"><p id="p586194716421"><a name="p586194716421"></a><a name="p586194716421"></a>Description</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row48664764218"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p7861447174211"><a name="p7861447174211"></a><a name="p7861447174211"></a>LOS_INIT_LEVEL_EARLIEST</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p1561350125815"><a name="p1561350125815"></a><a name="p1561350125815"></a>Earliest initialization.</p>
-<p id="p13865183210552"><a name="p13865183210552"></a><a name="p13865183210552"></a>The initialization is architecture-independent. The board and subsequent modules initialize the pure software modules on which they depend.</p>
-<p id="p1686104764216"><a name="p1686104764216"></a><a name="p1686104764216"></a>Example: trace module</p>
-</td>
-</tr>
-<tr id="row4861478429"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p1986164710423"><a name="p1986164710423"></a><a name="p1986164710423"></a>LOS_INIT_LEVEL_ARCH_EARLY</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p6864470423"><a name="p6864470423"></a><a name="p6864470423"></a>Early initialization of the architecture.</p>
-<p id="p118192355598"><a name="p118192355598"></a><a name="p118192355598"></a>The initialization is architecture-dependent. Subsequent modules initialize the modules on which they depend. It is recommended that functions not required for startup be placed at <strong id="b13751321192318"><a name="b13751321192318"></a><a name="b13751321192318"></a>LOS_INIT_LEVEL_ARCH</strong>.</p>
-</td>
-</tr>
-<tr id="row98694774219"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p118624714210"><a name="p118624714210"></a><a name="p118624714210"></a>LOS_INIT_LEVEL_PLATFORM_EARLY</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p118531052143510"><a name="p118531052143510"></a><a name="p118531052143510"></a>Early initialization of the platform.</p>
-<p id="p666132195816"><a name="p666132195816"></a><a name="p666132195816"></a>The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend. It is recommended that functions required for startup be placed at <strong id="b44971429202712"><a name="b44971429202712"></a><a name="b44971429202712"></a>LOS_INIT_LEVEL_PLATFORM</strong>.
-</td>
-</tr>
-<tr id="row8863470423"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p19861547114214"><a name="p19861547114214"></a><a name="p19861547114214"></a>LOS_INIT_LEVEL_KMOD_PREVM</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p2862471421"><a name="p2862471421"></a><a name="p2862471421"></a>Kernel module initialization before memory initialization.</p>
-<p id="p989110481520"><a name="p989110481520"></a><a name="p989110481520"></a>Initialize the modules that need to be enabled before memory initialization.</p>
-</td>
-</tr>
-<tr id="row4861147124218"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p16863472426"><a name="p16863472426"></a><a name="p16863472426"></a>LOS_INIT_LEVEL_VM_COMPLETE</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p1186114715427"><a name="p1186114715427"></a><a name="p1186114715427"></a>Initialization after the basic memory is ready.</p>
-<p id="p26441930165910"><a name="p26441930165910"></a><a name="p26441930165910"></a>After memory initialization, initialize the modules that need to be enabled and do not depend on inter-process communication (IPC) and system processes.</p>
-<p id="p76991543175013"><a name="p76991543175013"></a><a name="p76991543175013"></a>Example: shared memory function</p>
-</td>
-</tr>
-<tr id="row12869472429"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p178694712429"><a name="p178694712429"></a><a name="p178694712429"></a>LOS_INIT_LEVEL_ARCH</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p1086104719427"><a name="p1086104719427"></a><a name="p1086104719427"></a>Late initialization of the architecture.</p>
-<p id="p556511281688"><a name="p556511281688"></a><a name="p556511281688"></a>The initialization is related to the architecture extension functions. Subsequent modules initialize the modules on which they depend.</p>
-</td>
-</tr>
-<tr id="row128624717424"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p198684711427"><a name="p198684711427"></a><a name="p198684711427"></a>LOS_INIT_LEVEL_PLATFORM</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p65519915524"><a name="p65519915524"></a><a name="p65519915524"></a>Late initialization of the platform.</p>
-<p id="p187247164213"><a name="p187247164213"></a><a name="p187247164213"></a>The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend.</p>
-<p id="p138046651010"><a name="p138046651010"></a><a name="p138046651010"></a>Example: initialization of the driver kernel abstraction layer (MMC and MTD)</p>
-</td>
-</tr>
-<tr id="row2149155220436"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p8150105215436"><a name="p8150105215436"></a><a name="p8150105215436"></a>LOS_INIT_LEVEL_KMOD_BASIC</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p81509525436"><a name="p81509525436"></a><a name="p81509525436"></a>Initialization of the kernel basic modules.</p>
-<p id="p763134221115"><a name="p763134221115"></a><a name="p763134221115"></a>Initialize the basic modules that can be detached from the kernel.</p>
-<p id="p7781186191213"><a name="p7781186191213"></a><a name="p7781186191213"></a>Example: VFS initialization</p>
-</td>
-</tr>
-<tr id="row19671355174317"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p1596825564317"><a name="p1596825564317"></a><a name="p1596825564317"></a>LOS_INIT_LEVEL_KMOD_EXTENDED</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p6968155513438"><a name="p6968155513438"></a><a name="p6968155513438"></a>Initialization of the kernel extended modules.</p>
-<p id="p669712304124"><a name="p669712304124"></a><a name="p669712304124"></a>Initialize the extended modules that can be detached from the kernel.</p>
-<p id="p7600114618125"><a name="p7600114618125"></a><a name="p7600114618125"></a>Example: initialization of system call, ProcFS, Futex, HiLog, HiEvent, and LiteIPC</p>
-</td>
-</tr>
-<tr id="row357517134414"><td class="cellrowborder" valign="top" width="35.58%" headers="mcps1.2.3.1.1 "><p id="p12575676449"><a name="p12575676449"></a><a name="p12575676449"></a>LOS_INIT_LEVEL_KMOD_TASK</p>
-</td>
-<td class="cellrowborder" valign="top" width="64.42%" headers="mcps1.2.3.1.2 "><p id="p7128122619143"><a name="p7128122619143"></a><a name="p7128122619143"></a>Kernel task creation</p>
-<p id="p1657587184419"><a name="p1657587184419"></a><a name="p1657587184419"></a>Create kernel tasks (kernel tasks and software timer tasks).</p>
-<p id="p55485297219"><a name="p55485297219"></a><a name="p55485297219"></a>Example: creation of the resident resource reclaiming task, SystemInit task, and CPU usage statistics task.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Programming Example<a name="section19145114703217"></a>
-
-### Example Description<a name="section1045483642518"></a>
+## Kernel Startup Process
+
+The kernel startup process consists of the assembly startup and C language startup, as shown in the following figure. 
+
+The assembly startup involves the following operations: initializing CPU settings, disabling dCache/iCache, enabling the FPU and NEON, setting the MMU to establish the virtual-physical address mapping, setting the system stack, clearing the BSS segment, and calling the main function of the C language. 
+
+The C language startup involves the following operations: starting the **OsMain** function and starting scheduling. As shown in the following figure, the **OsMain** function is used for basic kernel initialization and architecture- and board-level initialization. The kernel startup framework leads the initialization process. The right part of the figure shows the phase in which external modules can register with the kernel startup framework and starts. The table below describes each phase.
+
+
+  **Figure 1** Kernel startup process<br>
+  ![](figures/kernel-startup-process-2.png "kernel-startup-process-2")
+
+
+  **Table 1** Start framework
+
+| Level | Startup Description |
+| -------- | -------- |
+| LOS_INIT_LEVEL_EARLIEST | Earliest initialization.<br>The initialization is architecture-independent. The board and subsequent modules initialize the pure software modules on which they depend.<br>Example: trace module|
+| LOS_INIT_LEVEL_ARCH_EARLY | Early initialization of the architecture.<br>The initialization is architecture-dependent. Subsequent modules initialize the modules on which they depend. It is recommended that functions not required for startup be placed at **LOS_INIT_LEVEL_ARCH**.|
+| LOS_INIT_LEVEL_PLATFORM_EARLY | Early initialization of the platform.<br>The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend. It is recommended that functions required for startup be placed at **LOS_INIT_LEVEL_PLATFORM**.<br>Example: UART module|
+| LOS_INIT_LEVEL_KMOD_PREVM | Kernel module initialization before memory initialization.<br>Initialize the modules that need to be enabled before memory initialization.|
+| LOS_INIT_LEVEL_VM_COMPLETE | Initialization after the basic memory is ready.<br>After memory initialization, initialize the modules that need to be enabled and do not depend on inter-process communication (IPC) and system processes.<br>Example: shared memory function|
+| LOS_INIT_LEVEL_ARCH | Late initialization of the architecture.<br>The initialization is related to the architecture extension functions. Subsequent modules initialize the modules on which they depend.|
+| LOS_INIT_LEVEL_PLATFORM | Late initialization of the platform.<br>The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend.<br>Example: initialization of the driver kernel abstraction layer (MMC and MTD)|
+| LOS_INIT_LEVEL_KMOD_BASIC | Initialization of the kernel basic modules.<br>Initialize the basic modules that can be detached from the kernel.<br>Example: VFS initialization|
+| LOS_INIT_LEVEL_KMOD_EXTENDED | Initialization of the kernel extended modules.<br>Initialize the extended modules that can be detached from the kernel.<br>Example: initialization of system call, ProcFS, Futex, HiLog, HiEvent, and LiteIPC|
+| LOS_INIT_LEVEL_KMOD_TASK | Kernel task creation.<br>Create kernel tasks (kernel tasks and software timer tasks).<br>Example: creation of the resident resource reclaiming task, SystemInit task, and CPU usage statistics task|
+
+
+## Programming Example
+
+**Example Description**
 
 Add a kernel module and register the initialization function of the module to the kernel startup process through the kernel startup framework, so as to complete the module initialization during the kernel initialization process.
 
+
 **Sample Code**
 
+
+
 ```
 /* Header file of the kernel startup framework */
 #include "los_init.h"
@@ -110,8 +57,11 @@ unsigned int OsSampleModInit(void)
 LOS_MODULE_INIT(OsSampleModInit, LOS_INIT_LEVEL_KMOD_EXTENDED);
 ```
 
+
 **Verification**
 
+
+
 ```
 main core booting up...
 OsSampleModInit SUCCESS!
@@ -120,9 +70,12 @@ cpu 1 entering scheduler
 cpu 0 entering scheduler
 ```
 
+
 According to the information displayed during the system startup, the kernel has called the initialization function of the registered module during the startup to initialize the module.
 
->![](../public_sys-resources/icon-note.gif) **NOTE:** 
->Modules at the same level cannot depend on each other. It is recommended that a new module be split based on the preceding startup phase and be registered and started as required.
->You can view the symbol table in the  **.rodata.init.kernel.\***  segment of the  **OHOS\_Image.map**  file generated after the build is complete, so as to learn about the initialization entry of each module that has been registered with the kernel startup framework and check whether the newly registered initialization entry has taken effect.
 
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> 
+> Modules at the same level cannot depend on each other. It is recommended that a new module be split based on the preceding startup phase and be registered and started as required.
+> 
+> You can view the symbol table in the **.rodata.init.kernel.*** segment of the **OHOS_Image.map** file generated after the build is complete, so as to learn about the initialization entry of each module that has been registered with the kernel startup framework and check whether the newly registered initialization entry has taken effect.
diff --git a/en/device-dev/kernel/kernel-small-start-user.md b/en/device-dev/kernel/kernel-small-start-user.md
index f2526dda1e39f972865de8ae98f29fbffb24fd22..fb34ba4194831b84c2683fd4ab11e2ee2cc2098c 100644
--- a/en/device-dev/kernel/kernel-small-start-user.md
+++ b/en/device-dev/kernel/kernel-small-start-user.md
@@ -48,14 +48,14 @@ Common compilation modes of user-mode programs include:
     Example:
 
     ```
-    clang --target=arm-liteos --sysroot=prebuilts/lite/sysroot -o helloworld helloworld.c
+    clang --target=arm-liteos --sysroot=sysroot -o helloworld helloworld.c
     ```
 
     Before running the  **clang**  command, install the LLVM compiler. For details, see  [Installing LLVM](../quick-start/quickstart-lite-steps-hi3861-setting.md).
 
     **--target=arm-liteos**: specifies the compilation platform, which is arm-liteos.
 
-    **--sysroot=$\{YOUR\_ROOT\_PATH\}/prebuilts/lite/sysroot**: specifies the directory in which you can search for the header file and the dependent standard libraries.
+    **--sysroot=$\{YOUR\_ROOT\_OUT\_PATH\}/sysroot**: specifies the directory in which you can search for the header file and the dependent standard libraries.
 
 
 A user-mode program can be started in either of the following ways:
diff --git a/en/device-dev/kernel/kernel-standard-build.md b/en/device-dev/kernel/kernel-standard-build.md
index 747c9133458aec67156d3a1200d705b1a45df4a5..3c950570cf2ae2638fd00a68756c3cefaaf3ddce 100644
--- a/en/device-dev/kernel/kernel-standard-build.md
+++ b/en/device-dev/kernel/kernel-standard-build.md
@@ -1,14 +1,16 @@
 # Compiling and Building the Linux Kernel
 
-## Example 1
+
+ **Example**
 
 The following uses the Hi3516D V300 board and Ubuntu x86 server as an example.
 
-Perform a full build for the project to generate the  **uImage**  kernel image.
+
+Perform a full build for the project to generate the **uImage** kernel image.
+
 
 ```
-./build.sh --product-name hispark_taurus_standard              # Build the hispark_taurus_standard image.
-        --build-target build_kernel                    # Build the uImage kernel image of the hispark_taurus_standard.
-    --gn-args linux_kernel_version=\"linux-5.10\" # Build the specified kernel version.
+./build.sh --product-name hispark_taurus_standard     # Build the hispark_taurus_standard image.
+    --build-target build_kernel                       # Build the uImage kernel image of hispark_taurus_standard.
+    --gn-args linux_kernel_version=\"linux-5.10\"     # Specify the kernel version.
 ```
-
diff --git a/en/device-dev/kernel/kernel-standard-sched-rtg.md b/en/device-dev/kernel/kernel-standard-sched-rtg.md
index 534cdcdab06c04c6f3abce5e29766411e4c819cc..61a36ab5bb7aad13789b0ce053e3dbcd73be6b25 100644
--- a/en/device-dev/kernel/kernel-standard-sched-rtg.md
+++ b/en/device-dev/kernel/kernel-standard-sched-rtg.md
@@ -51,11 +51,11 @@ STATE           COMM       PID  PRIO    CPU  // Thread information, including th
 
 ## Available APIs
 
-The RTG provides the device node and ioctl APIs for querying and configuring group information. The device node is in `/dev/sched_rtg_ctrl`.
-
-| Device Node               | request             | Description                 |
-| ------------------- | ------------------- | ------------------- |
-| /dev/sched_rtg_ctrl | CMD_ID_SET_RTG      | Creates an RTG, and adds, updates, or deletes threads in the group. |
-|                     | CMD_ID_SET_CONFIG   | Configures global group attributes, for example, the maximum number of real-time RTGs.|
-|                     | CMD_ID_SET_RTG_ATTR | Configures specified group attributes, for example, the thread priority. |
-|                     | CMD_ID_SET_MIN_UTIL | Sets the minimum utilization of an RTG. |
+The RTG provides the device node and ioctl APIs for querying and configuring group information. The device node is in **/dev/sched_rtg_ctrl**.
+
+| Request             | Description                 |
+| ------------------- | ------------------- |
+| CMD_ID_SET_RTG      | Creates an RTG, and adds, updates, or deletes threads in the group. |
+| CMD_ID_SET_CONFIG   | Sets global group attributes, for example, the maximum number of real-time RTGs. |
+| CMD_ID_SET_RTG_ATTR | Sets specified group attributes, for example, the thread priority. |
+| CMD_ID_SET_MIN_UTIL | Sets the minimum utilization of an RTG. |
diff --git a/en/device-dev/porting/porting-chip-prepare-knows.md b/en/device-dev/porting/porting-chip-prepare-knows.md
index 6422f0f6bddd007815c9122704f67713d5f78c7a..64a136cd4884c4d76a9ddf86c9160e410177cdc8 100644
--- a/en/device-dev/porting/porting-chip-prepare-knows.md
+++ b/en/device-dev/porting/porting-chip-prepare-knows.md
@@ -18,7 +18,7 @@ The implementation of the OpenHarmony project directories and functions relies o
 | /build/lite | OpenHarmony basic compilation and building framework.|
 | /kernel/liteos_m | Basic kernel. The implementation related to the chip architecture is in the **arch** directory.|
 | /device | Board-level implementation, which complies with the OpenHarmony specifications. For details about the directory structure and porting process, see [Overview](../porting/porting-chip-board-overview.md).|
-| /vendor | Product-level implementation, which is contributed by Huawei or product vendors.|
+| /vendor | Product-level implementation, which is contributed by product vendors. |
 
 The **device** directory is in the internal structure of **device/{Chip solution vendor}/{Development board}**. The following uses HiSilicon **hispark_taurus** as an example:
 
@@ -37,7 +37,7 @@ device
 ```
 
 
-The **vendor** directory is in the internal structure of **vendor/{Product solution vendor}/{Product name}**. The following uses the Huawei Wi-Fi IoT product as an example:
+The **vendor** directory is in the internal structure of **vendor/{Product solution vendor}/{Product name}**. The following uses the Wi-Fi IoT product as an example:
 
 
 
diff --git a/en/device-dev/porting/porting-linux-kernel.md b/en/device-dev/porting/porting-linux-kernel.md
index 81b5fd7812343e478e163f4d6e6d73ea816da342..cbe6bef55a6b9ad6ad69f33da16c6d51843a7256 100644
--- a/en/device-dev/porting/porting-linux-kernel.md
+++ b/en/device-dev/porting/porting-linux-kernel.md
@@ -1,12 +1,12 @@
-# A Method for Rapidly Porting the OpenHarmony Linux Kernel<a name="EN-US_TOPIC_0000001162545194"></a>
+# A Method for Rapidly Porting the OpenHarmony Linux Kernel
 
-## Overview<a name="section28051350151118"></a>
+## Overview
 
 This document describes how to quickly port OpenHarmony to a third-party chip platform by using the existing capabilities of the Linux kernel of the third-party chip platform.
 
-## Overall Porting Approach<a name="section994883124"></a>
+## Overall Porting Approach
 
-### Kernel Mode Layer and User Mode Layer<a name="section953481431217"></a>
+### Kernel Mode Layer and User Mode Layer
 
 For easy description, we divide the OpenHarmony architecture into two parts:
 
@@ -20,7 +20,7 @@ The user mode layer includes other parts except the OpenHarmony kernel layer. It
 
 The user mode layer of OpenHarmony is loosely coupled with the third-party chip platform and is easy to port. The kernel and HDF at the kernel mode layer are closely coupled with the third-party chip platform and are difficult to port. This document focus on the porting of the kernel mode layer. In addition, it describes only the quick porting of the Linux kernel. It does not include the porting of LiteOS.
 
-### Composition of the Kernel Mode Layer<a name="section81437528121"></a>
+### Composition of the Kernel Mode Layer
 
 The OpenHarmony kernel mode layer can be further divided as follows:
 
@@ -51,7 +51,7 @@ The standard LTS Linux kernel and third-party SoC chip platform code constitute
 
 In the following, we elaborate how to port OpenHarmony that uses with the third-party Linux kernel.
 
-### Overall Porting Process<a name="section86060191"></a>
+### Overall Porting Process
 
 The porting process is as follows:
 
@@ -59,11 +59,11 @@ The porting process is as follows:
 2.  Port the OpenHarmony basic kernel-mode code.
 3.  Port OpenHarmony mandatory kernel-mode features \(such as HDF\).
 
-## Procedure<a name="section98871341171310"></a>
+## Procedure
 
 The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to port OpenHarmony to Raspberry Pi.
 
-### Setting Up the Environment<a name="section16584650181314"></a>
+### Setting Up the Environment
 
 1.  Copy the third-party kernel code to the OpenHarmony build environment.
 
@@ -84,8 +84,8 @@ The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to
     # Configure the build environment, and use clang provided by the project to build the Raspberry Pi kernel source code.
     export PATH=$PROJ_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PROJ_ROOT/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin/:$PATH
     export MAKE_OPTIONS="ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- CC=clang HOSTCC=clang"
-    export PRODUCT_PATH=vendor/hisilicon/hispark_taurus_standard
-    ```
+   export PRODUCT_PATH=vendor/hisilicon/hispark_taurus_linux
+   ```
 
 3.  Comment out the flags that cannot be recognized by **clang**.
 
@@ -96,7 +96,7 @@ The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to
     ```
 
 
-### Porting Basic Kernel-Mode Code<a name="section95112081716"></a>
+### Porting Basic Kernel-Mode Code
 
 Currently, the basic kernel-mode code of OpenHarmony is related to the log service. The lightweight kernel log service code includes the following:
 
@@ -125,7 +125,7 @@ Enable the CONFIG macros **CONFIG\_HILOG** and **CONFIG\_HIEVENT** in the kernel
 
 For details about how to use the logs, see [Hilog\_lite](https://gitee.com/openharmony/hiviewdfx_hilog_lite/blob/master/README.md).
 
-### Porting the HDF Feature<a name="section12971205681710"></a>
+### Porting the HDF Feature
 
 1.  Install HDF patches.
 
@@ -186,14 +186,14 @@ For details about how to use the logs, see [Hilog\_lite](https://gitee.com/openh
     ![](figures/menuconfig.png)
 
 
-### Building the Image<a name="section1681965561911"></a>
+### Building the Image
 
 ```
 # Run the following command:
 make ${MAKE_OPTIONS} -j33 zImage
 ```
 
-### \(Optional\) Building and Running HDF Test Cases<a name="section460792312204"></a>
+### \(Optional\) Building and Running HDF Test Cases
 
 **Overview**
 
diff --git a/en/device-dev/porting/porting-thirdparty-cmake.md b/en/device-dev/porting/porting-thirdparty-cmake.md
index 7956e702ae20df460ab4026420557d8a625276da..3ae6e23ff8382ef93fd1583487c433e468233695 100755
--- a/en/device-dev/porting/porting-thirdparty-cmake.md
+++ b/en/device-dev/porting/porting-thirdparty-cmake.md
@@ -348,7 +348,7 @@ The following steps show how to configure and modify the toolchains for cross-co
     
     #toolchain: follow up-layer, depend on $ohos_build_compiler
     if (ohos_build_compiler == "clang") {
-        CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+        CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${root_out_dir}sysroot/"
     } else {
         CMAKE_TOOLCHAIN_FLAG = ""
     }
diff --git a/en/device-dev/porting/porting-thirdparty-makefile.md b/en/device-dev/porting/porting-thirdparty-makefile.md
index 68136beef3a57f2068e8340974d4ada331ccc6c7..6c64a5ce974c525069df4e710753a0f2c54df594 100644
--- a/en/device-dev/porting/porting-thirdparty-makefile.md
+++ b/en/device-dev/porting/porting-thirdparty-makefile.md
@@ -262,9 +262,9 @@ if (ohos_build_thirdparty_migrated_from_fuchisa == true) {
 TEST_ENABLE = "YES"
 
 if (TEST_ENABLE == "YES") {
-    MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+    MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${root_out_dir}sysroot/"
 } else {
-    MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+    MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${root_out_dir}sysroot/"
 }
 ```
 
diff --git a/en/device-dev/quick-start/Readme-EN.md b/en/device-dev/quick-start/Readme-EN.md
index faa682a677c3ad1523a3705b312f371755523fb0..294cd1ec35ccdb16369b610eed0d38ae06bc93d0 100644
--- a/en/device-dev/quick-start/Readme-EN.md
+++ b/en/device-dev/quick-start/Readme-EN.md
@@ -19,9 +19,9 @@
             - [Burning](quickstart-ide-lite-steps-hi3516-burn.md)
             - [Running](quickstart-ide-lite-steps-hi3516-running.md)
     - Appendix
-        - Introduction to Development Boards
-            - [Introduction to the Hi3861 Development Board](quickstart-ide-lite-introduction-hi3861.md)
-            - [Introduction to the Hi3516 Development Board](quickstart-ide-lite-introduction-hi3516.md)
+        - [Introduction to the Hi3861 Development Board](quickstart-ide-lite-introduction-hi3861.md)
+        - [Introduction to the Hi3516 Development Board](quickstart-ide-lite-introduction-hi3516.md)
+        - [Overall Description of Compilation Form Factors](quickstart-build.md)
 - Getting Started with Mini and Small Systems (Installation Package Mode)
     - [Mini and Small System Overview](quickstart-lite-overview.md)
     - [Environment Preparation](quickstart-lite-env-setup.md)
@@ -49,6 +49,7 @@
             - [Introduction to the Hi3861 Development Board](quickstart-lite-introduction-hi3861.md)
             - [Introduction to the Hi3516 Development Board](quickstart-lite-introduction-hi3516.md)
         - [Reference](quickstart-lite-reference.md)
+        - [Overall Description of Compilation Form Factors](quickstart-build.md)
 - Getting Started with Standard System (IDE Mode, Recommended)
     - [Standard System Overview](quickstart-ide-standard-overview.md)
     - Environment Preparation
@@ -67,9 +68,9 @@
             - [Burning](quickstart-ide-standard-running-rk3568-burning.md)
             - [Running](quickstart-ide-standard-running-rk3568-running.md)
     - Appendix
-        - Introduction to Development Boards
-            - [Introduction to the Hi3516 Development Board](quickstart-ide-standard-board-introduction-hi3516.md)
-            - [Introduction to the RK3568 Development Board](quickstart-ide-standard-board-introduction-rk3568.md)
+        - [Introduction to the Hi3516 Development Board](quickstart-ide-standard-board-introduction-hi3516.md)
+        - [Introduction to the RK3568 Development Board](quickstart-ide-standard-board-introduction-rk3568.md)
+        - [Overall Description of Compilation Form Factors](quickstart-build.md)
 - Getting Started with Standard System (Installation Package Mode)
     - [Standard System Overview](quickstart-standard-overview.md)
     - [Setting Up Environments for Standard System](quickstart-standard-env-setup.md)
@@ -93,3 +94,4 @@
             - [Introduction to the Hi3516 Development Board](quickstart-standard-board-introduction-hi3516.md)
             - [Introduction to the RK3568 Development Board](quickstart-standard-board-introduction-rk3568.md)
         - [Reference](quickstart-standard-reference.md)
+        - [Overall Description of Compilation Form Factors](quickstart-build.md)
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001114129426.png b/en/device-dev/quick-start/figures/en-us_image_0000001114129426.png
index c5548cb227bd024b49aa3adba0a20869581448e8..8cff39968a2d34bdd93daa5de808a07558b56077 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001114129426.png and b/en/device-dev/quick-start/figures/en-us_image_0000001114129426.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001114129427.png b/en/device-dev/quick-start/figures/en-us_image_0000001114129427.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4d11ba64f1f23a789167eabfc36f482fbc09697
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001114129427.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001160649343.png b/en/device-dev/quick-start/figures/en-us_image_0000001160649343.png
index 67d8044b72056d4ed6230ccc4ad99d5e954596b6..144950cb8cb1d260989d988242ca318ab584dfe6 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001160649343.png and b/en/device-dev/quick-start/figures/en-us_image_0000001160649343.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001160649344.png b/en/device-dev/quick-start/figures/en-us_image_0000001160649344.png
new file mode 100644
index 0000000000000000000000000000000000000000..82edf61fc871cc83e073036ee2593b89dea5e5cb
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001160649344.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001177478136.png b/en/device-dev/quick-start/figures/en-us_image_0000001177478136.png
index fcaf25e47e2e47ecad8aebe463aeccdf1d8bf85e..e83dad0b26392f009564d2e4014e374187ac1d7f 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001177478136.png and b/en/device-dev/quick-start/figures/en-us_image_0000001177478136.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001194504874.png b/en/device-dev/quick-start/figures/en-us_image_0000001194504874.png
index fdd12932d3777bd30a208e539a78ede6384cce19..0ba155fce3a06f53d085a1309cc00e9710e3c58d 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001194504874.png and b/en/device-dev/quick-start/figures/en-us_image_0000001194504874.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001194821710.png b/en/device-dev/quick-start/figures/en-us_image_0000001194821710.png
index 17d64a31a527a2b7453cc8490655609bd338ad7c..560240a18a081d50201d6185d25da46cc1c7a0eb 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001194821710.png and b/en/device-dev/quick-start/figures/en-us_image_0000001194821710.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001198566364.png b/en/device-dev/quick-start/figures/en-us_image_0000001198566364.png
index 1ba77b7feaca23043e71171824cdead7c4f8f108..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001198566364.png and b/en/device-dev/quick-start/figures/en-us_image_0000001198566364.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001198566365.png b/en/device-dev/quick-start/figures/en-us_image_0000001198566365.png
new file mode 100644
index 0000000000000000000000000000000000000000..5702f209752edc74d687e5e8ce7e210428f4551e
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001198566365.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001198722374.png b/en/device-dev/quick-start/figures/en-us_image_0000001198722374.png
index c6507f28b980b84c65102aa844e93f806cb490a9..6914f2d806dc8a2a8a26a8265f60832686dc2902 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001198722374.png and b/en/device-dev/quick-start/figures/en-us_image_0000001198722374.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001198943768.png b/en/device-dev/quick-start/figures/en-us_image_0000001198943768.png
index 5a709092da504fbb090ad8d44938e435712bc0eb..5702f209752edc74d687e5e8ce7e210428f4551e 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001198943768.png and b/en/device-dev/quick-start/figures/en-us_image_0000001198943768.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001220852753.png b/en/device-dev/quick-start/figures/en-us_image_0000001220852753.png
new file mode 100644
index 0000000000000000000000000000000000000000..58d4e1027aefb6650920d9d31fbb622bebc4f726
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001220852753.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001220852754.png b/en/device-dev/quick-start/figures/en-us_image_0000001220852754.png
index c3013a3f9bd3951e53e1f0848c12700024c5f5e8..a316d0a2c4117a16143c79426523dbc75c8dd1a8 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001220852754.png and b/en/device-dev/quick-start/figures/en-us_image_0000001220852754.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001220852755.png b/en/device-dev/quick-start/figures/en-us_image_0000001220852755.png
new file mode 100644
index 0000000000000000000000000000000000000000..884a8a0d8dfc1e14b3b2a256ede49bc88772c816
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001220852755.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221012767.png b/en/device-dev/quick-start/figures/en-us_image_0000001221012767.png
new file mode 100644
index 0000000000000000000000000000000000000000..eead40cd3f889b23f73a6f02a9b7f44c822c2e37
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001221012767.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221012768.png b/en/device-dev/quick-start/figures/en-us_image_0000001221012768.png
new file mode 100644
index 0000000000000000000000000000000000000000..d744afcd6c27ca674ae202bd4ca3511bb58bdbbc
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001221012768.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221025048.png b/en/device-dev/quick-start/figures/en-us_image_0000001221025048.png
index f17d2dd5dbc86b98a659218ed4a5e3a69409ae54..f0d3cfc874effae73aad01dd26961ef4946c8f81 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001221025048.png and b/en/device-dev/quick-start/figures/en-us_image_0000001221025048.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221172710.png b/en/device-dev/quick-start/figures/en-us_image_0000001221172710.png
index 29b22463c375704734e6925861551aa27ec7b295..cd6c3f1d8cea88d58a885446dad9cae3b74bce0b 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001221172710.png and b/en/device-dev/quick-start/figures/en-us_image_0000001221172710.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221172711.png b/en/device-dev/quick-start/figures/en-us_image_0000001221172711.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1992b49a9805cd0823c98c2d6f1500a10c5f249
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001221172711.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221344980.png b/en/device-dev/quick-start/figures/en-us_image_0000001221344980.png
index 7bf0acc41746926462ab3c352f143f90f2e65358..86501f030f57eea30b724f8b7d32736a8ddc7f21 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001221344980.png and b/en/device-dev/quick-start/figures/en-us_image_0000001221344980.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001221356692.png b/en/device-dev/quick-start/figures/en-us_image_0000001221356692.png
index 8f5ee977c68bce18bed83887191ddf870df7d8e9..6d567bf69106c8bb266c7f7f445a317b5405c6a5 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001221356692.png and b/en/device-dev/quick-start/figures/en-us_image_0000001221356692.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001223190441.png b/en/device-dev/quick-start/figures/en-us_image_0000001223190441.png
index 63d053122f3c7beaa990f63431ccb16692562535..c3c0811c65d83f3a88f158f1c3336c1a950f4e69 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001223190441.png and b/en/device-dev/quick-start/figures/en-us_image_0000001223190441.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001225760456.png b/en/device-dev/quick-start/figures/en-us_image_0000001225760456.png
index 9e249959cad7e68b535f8732b44e20db9f6db2fc..61536a53597991971c997481624f1aedbc232c6d 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001225760456.png and b/en/device-dev/quick-start/figures/en-us_image_0000001225760456.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001227277128.png b/en/device-dev/quick-start/figures/en-us_image_0000001227277128.png
index fd2a5588e6576449bcb9ec1f92a12649dcd6c5d0..df66ac7a87d293ae8500eae978fbe5bcbc23e214 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001227277128.png and b/en/device-dev/quick-start/figures/en-us_image_0000001227277128.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001227757036.png b/en/device-dev/quick-start/figures/en-us_image_0000001227757036.png
index c354bdb69c0293fd19cb71905f828fca1fe7d09c..dea8677bfd7c9ba3f7b82f00c8422d695f85b86b 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001227757036.png and b/en/device-dev/quick-start/figures/en-us_image_0000001227757036.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001239661509.png b/en/device-dev/quick-start/figures/en-us_image_0000001239661509.png
index c3f10040538814eccbecf2ef37d472d59743e08f..541920af4791d36a3ad8eb3e8ccf154dc947944a 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001239661509.png and b/en/device-dev/quick-start/figures/en-us_image_0000001239661509.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001243704061.png b/en/device-dev/quick-start/figures/en-us_image_0000001243704061.png
index c93b7b610138e91c0b6b171cb515f540163e731b..f81b300b68edcc0400dcf72dfeb827fcf6ccaeea 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001243704061.png and b/en/device-dev/quick-start/figures/en-us_image_0000001243704061.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265492885.png b/en/device-dev/quick-start/figures/en-us_image_0000001265492885.png
index 7cc6ca102383151b5b67447332e73fc16c5ef85e..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265492885.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265492885.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265505181.png b/en/device-dev/quick-start/figures/en-us_image_0000001265505181.png
index eff6401bb39152c2d02b7f17e557b1cd5dbb0e87..da90fa7c0cd0da44ab6aff877eb8e11550dc7871 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265505181.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265505181.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265652869.png b/en/device-dev/quick-start/figures/en-us_image_0000001265652869.png
index 4c1ce174731a8e20b62d119cbe1728e9a8394176..fb6232380ebbc988a3b23dfec149daedd3f0c971 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265652869.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265652869.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265665157.png b/en/device-dev/quick-start/figures/en-us_image_0000001265665157.png
index 0a574b8ee51edd1f4049e5ca6821a9347a45c2de..56dabefba81dd9391d3bb5f52931bdbdc5753b22 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265665157.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265665157.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265676877.png b/en/device-dev/quick-start/figures/en-us_image_0000001265676877.png
index a87d8c651147e1b7cb1f3d60513a6b3139540399..f467c1b45f84730fd3fc45158004d9a03dec2551 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265676877.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265676877.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265772913.png b/en/device-dev/quick-start/figures/en-us_image_0000001265772913.png
index 659d732a4d044cfa4dacb84c5ec96bfc6b29707e..e5596ca2eac9b5d2cd1c96ffa50b1e390c68c904 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265772913.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265772913.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265785209.png b/en/device-dev/quick-start/figures/en-us_image_0000001265785209.png
index 0e5a65d7765d8bc936ca9a2d7db12f3adeffd831..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265785209.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265785209.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001265945173.png b/en/device-dev/quick-start/figures/en-us_image_0000001265945173.png
index f2447dd8f49268594e781e1c68751b209e01894c..d6dbd5d63c55c135dd8121d4ca1b4d11d5438897 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001265945173.png and b/en/device-dev/quick-start/figures/en-us_image_0000001265945173.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001266887264.png b/en/device-dev/quick-start/figures/en-us_image_0000001266887264.png
index f931e2cfba06791a3891248c5d8e6a9f0e86bf0e..e17047264d181b73e48e96a54c60517b57f42fb5 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001266887264.png and b/en/device-dev/quick-start/figures/en-us_image_0000001266887264.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001267532292.png b/en/device-dev/quick-start/figures/en-us_image_0000001267532292.png
index 8ed1535a6bc23dc5bd02fbd5a3f1392f46ad8d83..db92b0181a48b56990633058e3a4efce7ca5be82 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001267532292.png and b/en/device-dev/quick-start/figures/en-us_image_0000001267532292.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271237241.png b/en/device-dev/quick-start/figures/en-us_image_0000001271237241.png
index caa9309b7f069597073ffa593a7fbc6820b4b2e9..0a150015345ea48708c486f21b76796f6e3ee36d 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001271237241.png and b/en/device-dev/quick-start/figures/en-us_image_0000001271237241.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271237242.png b/en/device-dev/quick-start/figures/en-us_image_0000001271237242.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a300afbcd842f7c61877123236675efc422f039
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001271237242.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271442129.png b/en/device-dev/quick-start/figures/en-us_image_0000001271442129.png
new file mode 100644
index 0000000000000000000000000000000000000000..8587b80f4fc5cb91cd18462b47053451947d4833
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001271442129.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271442261.png b/en/device-dev/quick-start/figures/en-us_image_0000001271442261.png
index 4e14740a2906da609abea693b77a2680fa7054a2..8587b80f4fc5cb91cd18462b47053451947d4833 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001271442261.png and b/en/device-dev/quick-start/figures/en-us_image_0000001271442261.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271448821.png b/en/device-dev/quick-start/figures/en-us_image_0000001271448821.png
index 53cbcb8b0d0c30cb289b746d20b6c73927019d1a..0a150015345ea48708c486f21b76796f6e3ee36d 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001271448821.png and b/en/device-dev/quick-start/figures/en-us_image_0000001271448821.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001271477045.png b/en/device-dev/quick-start/figures/en-us_image_0000001271477045.png
index c55a6ddd1aa319adfa05987ff3f5c79231e7208d..8581b9663ab1f1597166d9e5b668c4d70c273e01 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001271477045.png and b/en/device-dev/quick-start/figures/en-us_image_0000001271477045.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001275592884.png b/en/device-dev/quick-start/figures/en-us_image_0000001275592884.png
new file mode 100644
index 0000000000000000000000000000000000000000..2186d2a5328684c1a479d4fca6b9fa74884c6a7b
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001275592884.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001276354454.png b/en/device-dev/quick-start/figures/en-us_image_0000001276354454.png
new file mode 100644
index 0000000000000000000000000000000000000000..2419d79327a7a13df83fe637916b9abeb180a2b0
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001276354454.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001278358765.png b/en/device-dev/quick-start/figures/en-us_image_0000001278358765.png
index 96b251c58071d4203ff51f28317f378d6ec71ebb..3bb58a00550fb0a0e195eb7f4cdb9e80be1ac6ab 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001278358765.png and b/en/device-dev/quick-start/figures/en-us_image_0000001278358765.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001279425450.png b/en/device-dev/quick-start/figures/en-us_image_0000001279425450.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa3d1c40e18002a60a3c179b5e4e1396056a5b41
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001279425450.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001279426717.png b/en/device-dev/quick-start/figures/en-us_image_0000001279426717.png
index 53cbcb8b0d0c30cb289b746d20b6c73927019d1a..0a150015345ea48708c486f21b76796f6e3ee36d 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001279426717.png and b/en/device-dev/quick-start/figures/en-us_image_0000001279426717.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001279586409.png b/en/device-dev/quick-start/figures/en-us_image_0000001279586409.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1cfe8323c13c750a03c4d5c86f2c383e554485d
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001279586409.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001279587085.png b/en/device-dev/quick-start/figures/en-us_image_0000001279587085.png
new file mode 100644
index 0000000000000000000000000000000000000000..084af8cfb40d4c59aa428890df7a1aee622a79d4
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001279587085.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001280938208.png b/en/device-dev/quick-start/figures/en-us_image_0000001280938208.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e1c5ad3ffe3f4dcceeb78c33856c063aa506b43
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001280938208.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001312778829.png b/en/device-dev/quick-start/figures/en-us_image_0000001312778829.png
index 15791ccc963502062bd54537567db8876d9d7b63..eb1df60899dd8c41a61369410603d8f0adb77486 100644
Binary files a/en/device-dev/quick-start/figures/en-us_image_0000001312778829.png and b/en/device-dev/quick-start/figures/en-us_image_0000001312778829.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001322167645.png b/en/device-dev/quick-start/figures/en-us_image_0000001322167645.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2d394f1debbbcf714a401630370639014d46160
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001322167645.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001326412233.png b/en/device-dev/quick-start/figures/en-us_image_0000001326412233.png
new file mode 100644
index 0000000000000000000000000000000000000000..e31eef74e95c2ecbb8e62d4ad897a2188e66d186
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001326412233.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001327429541.png b/en/device-dev/quick-start/figures/en-us_image_0000001327429541.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc19b0a8e8f97ec07b29eab8b01f387c5c81903c
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001327429541.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001333642545.png b/en/device-dev/quick-start/figures/en-us_image_0000001333642545.png
new file mode 100644
index 0000000000000000000000000000000000000000..2186d2a5328684c1a479d4fca6b9fa74884c6a7b
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001333642545.png differ
diff --git a/en/device-dev/quick-start/figures/en-us_image_0000001333802045.png b/en/device-dev/quick-start/figures/en-us_image_0000001333802045.png
new file mode 100644
index 0000000000000000000000000000000000000000..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2
Binary files /dev/null and b/en/device-dev/quick-start/figures/en-us_image_0000001333802045.png differ
diff --git a/en/device-dev/quick-start/quickstart-build.md b/en/device-dev/quick-start/quickstart-build.md
new file mode 100644
index 0000000000000000000000000000000000000000..d37a8b85537962efed99a9a2b68e1566cf06f9a9
--- /dev/null
+++ b/en/device-dev/quick-start/quickstart-build.md
@@ -0,0 +1,40 @@
+# Overall Description of Compilation Form Factors
+Products Supported for Compilation and Building (Click the links to learn about the specific product configurations and related differences.)
+
+| Compilation Form Factor                     | Development Board          | Main Chip     | Kernel        | System Type    |
+| ----------------------------- | --------------- | ----------- | ----------- | ----------- |
+| [neptune100](https://gitee.com/openharmony/vendor_hihope/blob/master/neptune_iotlink_demo/config.json)                    | neptune100      | WinnerMicro | LiteOS-M    | Mini        |
+| [rk3568](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/config.json)                        | rk3568          | Rockchip    | Linux  | Standard |
+| [rk3568_mini_system](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568_mini_system/config.json)            | rk3568          | Rockchip | Linux  | Standard |
+| [bearpi_hm_micro](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_micro/config.json)               | bearpi_hm_micro | STM32MP1xx | LiteOS-A    | small       |
+| [bearpi_hm_nano](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_nano/config.json)                | bearpi_hm_nano  | Hi3861 V100 | LiteOS-M    | Mini        |
+| [wifiiot_hispark_pegasus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/config.json)       | hispark_pegasus | Hi3861 V100 | LiteOS-M    | Mini        |
+| [ipcamera_hispark_aries](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_aries/config.json)        | hispark_aries   | hi3518ev300 | LiteOS-A    | Small  |
+| [ipcamera_hispark_taurus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus/config.json)       | hispark_taurus  | Hi3516D V300 | LiteOS-A    | Small  |
+| [ipcamera_hispark_taurus_linux](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_linux/config.json) | hispark_taurus  | Hi3516D V300 | Linux  | Small       |
+| [hispark_taurus_standard](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_standard/config.json)       | hispark_taurus  | Hi3516D V300 | Linux  | Standard |
+| [watchos](https://gitee.com/openharmony/vendor_hisilicon/blob/master/watchos/config.json)                       | hispark_taurus  | Hi3516D V300 | Linux  | Standard |
+| [hispark_phoenix](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_phoenix/config.json)               | hispark_phoenix | hi3751v350  | Linux  | Standard |
+| [hispark_taurus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_mini_system/config.json)    | hispark_taurus  | Hi3516D V300 | LiteOS-A    | Mini        |
+| [hispark_pegasus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus_mini_system/config.json)   | hispark_pegasus | Hi3861 V100 | LiteOS-M    | Mini    |
+| [gr5515_sk_iotlink_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_iotlink_demo/config.json)        | gr5515_sk       | GR551x | LiteOS-M    | Mini    |
+| [gr5515_sk_xts_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_xts_demo/config.json)            | gr5515_sk       | GR551x | LiteOS-M    | Mini    |
+| [wifi_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/wifi_demo/config.json)                     | dev_wifi_a      | ASR582X | LiteOS-M    | Mini    |
+| [xts_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/xts_demo/config.json)                      | dev_wifi_a      | ASR582X | LiteOS-M    | Mini    |
+| [display_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/display_demo/config.json)                  | v200zr          | BES2600 | LiteOS-M    | Mini    |
+| [xts_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/xts_demo/config.json)                      | v200zr          | BES2600  | LiteOS-M    | Mini    |
+| [iotlink_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/iotlink_demo/config.json)                  | v200zr          | BES2600 | LiteOS-M    | Mini    |
+| [mini_distributed_music_player](https://gitee.com/openharmony/vendor_bestechnic/blob/master/mini_distributed_music_player/config.json) | v200zr          | BES2600 | LiteOS-M    | Mini    |
+| [niobe407](https://gitee.com/openharmony/vendor_talkweb/blob/master/niobe407/config.json)                      | niobe407        | stm32f4xx   | LiteOS-M    | Mini    |
+| [qemu_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_mini_system_demo/config.json)         | arm_mps2_an386  | QEMU        | LiteOS-M    | Mini    |
+| [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_csky_mini_system_demo/config.json)    | SmartL_E802     | QEMU    | LiteOS-M    | Mini    |
+| [qemu_cm55_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cm55_mini_system_demo/config.json)    | arm_mps3_an547  | QEMU    | LiteOS-M    | Mini    |
+| [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json)  | esp32           | QEMU    | LiteOS-M    | Mini    |
+| [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv32_mini_system_demo/config.json)   | ricsv32_virt    | QEMU    | LiteOS-M    | Mini    |
+| [qemu_ca7_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_ca7_mini_system_demo/config.json)     | arm_virt        | QEMU    | LiteOS-A    | Small       |
+| [qemu_small_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json)        | arm_virt        | QEMU    | LiteOS-A    | Small       |
+| [qemu_arm_linux_min](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_min/config.json)            | qemu-arm-linux  | QEMU    | Linux  | Standard |
+| [qemu_arm_linux_headless](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_headless/config.json)       | qemu-arm-linux  | QEMU    | Linux  | Standard    |
+| [iotlink_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/iotlink_demo/config.json)                  | cst85_wblink    | Chipsea     | LiteOS-M    | Mini    |
+| [dsoftbus_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/dsoftbus_demo/config.json)                 | cst85_wblink    | Chipsea | LiteOS-M    | Mini    |
+| [xts_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/xts_demo/config.json)                      | cst85_wblink    | Chipsea | LiteOS-M    | Mini    |
diff --git a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md
index 798e092f3b6f5d0476c0adb12147d2f215f16e1c..1733121204ab84855e33b90409ecb4aa5f5c8f95 100644
--- a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md
+++ b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md
@@ -58,7 +58,7 @@ Perform the steps below in the source code directory:
 
 3. Add a component.
 
-   Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
+   Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
 
      
    ```
diff --git a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md
index f3de1522e47257bf0b3f0a644b945c5cc629d87f..9c180451924b4fbccb3492f877bf5ed2946b301f 100644
--- a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md
+++ b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md
@@ -62,7 +62,7 @@ The following exemplifies how to create a program by modifying the source code.
 
 4. Add a component.
 
-   Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
+   Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
 
      
    ```
diff --git a/en/device-dev/quick-start/quickstart-lite-env-setup.md b/en/device-dev/quick-start/quickstart-lite-env-setup.md
index bdbc5b70d3f908618aa0800a34db564295ed3012..0ed30ce269de01663c69593b15a8d5eb8d70f141 100644
--- a/en/device-dev/quick-start/quickstart-lite-env-setup.md
+++ b/en/device-dev/quick-start/quickstart-lite-env-setup.md
@@ -379,18 +379,19 @@ Perform the following steps in Ubuntu:
 ### Installing LLVM (Only Required for OpenHarmony_v1.x)
 
 > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **NOTICE**<br>
-> When downloading source code under the OpenHarmony_v1.x branches or tags, perform the operation procedure described in this section to install LLVM 9.0.0.
+> When downloading source code under the OpenHarmony_v1.x branches or tags, perform the operation procedure described in this section to install LLVM 12.0.1.
 > 
 > When downloading source code under the Master or non-OpenHarmony_v1.x branches or tags, skip this section. hb will automatically download the latest version of LLVM.
 
 1. Start a Linux server.
 
-2. [Download LLVM](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)
+2. [Download LLVM](https://repo.huaweicloud.com/openharmony/compiler/clang/12.0.1-530132/linux/clang-530132-linux-x86_64.tar.bz2)
 
 3. Decompress the LLVM installation package to **~/llvm**.
    
    ```
-   tar -zxvf llvm.tar -C ~/
+   tar -jxvf clang.tar.bz2 -C ~/
+   mv ~/clang-530132/ ~/llvm
    ```
 
 4. Set the environment variable.
diff --git a/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md b/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md
index 798e092f3b6f5d0476c0adb12147d2f215f16e1c..1733121204ab84855e33b90409ecb4aa5f5c8f95 100644
--- a/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md
+++ b/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md
@@ -58,7 +58,7 @@ Perform the steps below in the source code directory:
 
 3. Add a component.
 
-   Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
+   Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
 
      
    ```
diff --git a/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md b/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md
index f3de1522e47257bf0b3f0a644b945c5cc629d87f..9c180451924b4fbccb3492f877bf5ed2946b301f 100644
--- a/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md
+++ b/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md
@@ -62,7 +62,7 @@ The following exemplifies how to create a program by modifying the source code.
 
 4. Add a component.
 
-   Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
+   Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.)
 
      
    ```
diff --git a/en/device-dev/quick-start/quickstart-standard-ide-directory.md b/en/device-dev/quick-start/quickstart-standard-ide-directory.md
index 5285337d788ce1d7e97b286419f7beabfa59faef..51c4c3cb4951c817e86660138cba4348c103e70a 100644
--- a/en/device-dev/quick-start/quickstart-standard-ide-directory.md
+++ b/en/device-dev/quick-start/quickstart-standard-ide-directory.md
@@ -1,22 +1,22 @@
 ## Getting Started with Standard System (IDE Mode)
 - [Standard System Overview](quickstart-ide-standard-overview.md)
-    - Environment Preparation
-        - [Setting Up the Windows+Ubuntu Hybrid Development Environment](quickstart-ide-standard-env-setup-win-ubuntu.md)
-        - [Obtaining Source Code](quickstart-ide-standard-sourcecode-acquire.md)
-    - [Creating a Source Code Project](quickstart-ide-standard-create-project.md)
-    - Running a Hello World Program
-        - Hi3516 Development Board
-            - [Writing a Hello World Program](quickstart-ide-standard-running-hi3516-create.md)
-            - [Building](quickstart-ide-standard-running-hi3516-build.md)
-            - [Burning](quickstart-ide-standard-running-hi3516-burning.md)
-            - [Running](quickstart-ide-standard-running-hi3516-running.md)
-        - RK3568 Development Board
-            - [Writing a Hello World Program](quickstart-ide-standard-running-rk3568-create.md)
-            - [Building](quickstart-ide-standard-running-rk3568-build.md)
-            - [Burning](quickstart-ide-standard-running-rk3568-burning.md)
-            - [Running](quickstart-ide-standard-running-rk3568-running.md)
-    - Appendix
-        - Introduction to Development Boards
-            - [Introduction to the Hi3516 Development Board](quickstart-ide-standard-board-introduction-hi3516.md)
-            - [Introduction to the RK3568 Development Board](quickstart-ide-standard-board-introduction-rk3568.md)
-        - [Getting Started with Mini and Small Systems (Installation Package Mode)](quickstart-lite-package-directory.md)
+- Environment Preparation
+    - [Setting Up the Windows+Ubuntu Hybrid Development Environment](quickstart-ide-standard-env-setup-win-ubuntu.md)
+    - [Obtaining Source Code](quickstart-ide-standard-sourcecode-acquire.md)
+- [Creating a Source Code Project](quickstart-ide-standard-create-project.md)
+- Running a Hello World Program
+    - Hi3516 Development Board
+        - [Writing a Hello World Program](quickstart-ide-standard-running-hi3516-create.md)
+        - [Building](quickstart-ide-standard-running-hi3516-build.md)
+        - [Burning](quickstart-ide-standard-running-hi3516-burning.md)
+        - [Running](quickstart-ide-standard-running-hi3516-running.md)
+    - RK3568 Development Board
+        - [Writing a Hello World Program](quickstart-ide-standard-running-rk3568-create.md)
+        - [Building](quickstart-ide-standard-running-rk3568-build.md)
+        - [Burning](quickstart-ide-standard-running-rk3568-burning.md)
+        - [Running](quickstart-ide-standard-running-rk3568-running.md)
+- Appendix
+    - [Introduction to the Hi3516 Development Board](quickstart-ide-standard-board-introduction-hi3516.md)
+    - [Introduction to the RK3568 Development Board](quickstart-ide-standard-board-introduction-rk3568.md)
+    - [Overall Description of Compilation Form Factors](quickstart-build.md)
+
diff --git a/en/device-dev/quick-start/quickstart-standard-package-directory.md b/en/device-dev/quick-start/quickstart-standard-package-directory.md
index 8912028e042d94cf2fea39d1e0033ccfc456d611..c544aa1e268e21ecf00aeed733a303a72626fc32 100644
--- a/en/device-dev/quick-start/quickstart-standard-package-directory.md
+++ b/en/device-dev/quick-start/quickstart-standard-package-directory.md
@@ -3,7 +3,7 @@
 - [Setting Up Environments for Standard System](quickstart-standard-env-setup.md)
 - Running a Hello World Program
     - Hi3516 Development Board
-        - [Writing a Hello World Program](quickstart-standard-running-hi3516-create.md)
+        - [Writing a Hello World Program](quickstart-std-3516-create.md)
         - [Building](quickstart-standard-running-hi3516-build.md)
         - [Burning](quickstart-standard-running-hi3516-burning.md)
         - [Running](quickstart-standard-running-hi3516-running.md)
@@ -20,5 +20,5 @@
     - Introduction to Development Boards
         - [Introduction to the Hi3516 Development Board](quickstart-standard-board-introduction-hi3516.md)
         - [Introduction to the RK3568 Development Board](quickstart-standard-board-introduction-rk3568.md)
-    - [Getting Started with Standard System (IDE Mode)](quickstart-standard-ide-directory.md)
+        - [Overall Description of Compilation Form Factors](quickstart-build.md)
     - [Reference](quickstart-standard-reference.md)
diff --git a/en/device-dev/subsystems/figure/Hiview_module_data_interaction.png b/en/device-dev/subsystems/figure/Hiview_module_data_interaction.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2b734bc03a4a6556f3c4128b7a86244ffaa3d09
Binary files /dev/null and b/en/device-dev/subsystems/figure/Hiview_module_data_interaction.png differ
diff --git a/en/device-dev/subsystems/figure/build-process.jpg b/en/device-dev/subsystems/figure/build-process.jpg
index a48ea734509526b3ed0fe85b7c4a98b0a2a9c4f0..68fba0c4265dc6899eb6576dd243a7887d5cf615 100644
Binary files a/en/device-dev/subsystems/figure/build-process.jpg and b/en/device-dev/subsystems/figure/build-process.jpg differ
diff --git a/en/device-dev/subsystems/subsys-boot.md b/en/device-dev/subsystems/subsys-boot.md
index f4d2e36562e6766d51b5f4bcbef0843ac69488c7..a5b61f59149cd57c0df24fa4d656e92271808808 100644
--- a/en/device-dev/subsystems/subsys-boot.md
+++ b/en/device-dev/subsystems/subsys-boot.md
@@ -3,7 +3,6 @@
 -   **[Startup](subsys-boot-overview.md)**  
 -   **[init Module](subsys-boot-init.md)**  
 -   **[appspawn Module](subsys-boot-appspawn.md)**
--   **[appspawn Module for the Standard System](subsys-boot-appspawn-standard.md)**  
 -   **[bootstrap Module](subsys-boot-bootstrap.md)**  
 -   **[syspara Module](subsys-boot-syspara.md)**  
 -   **[FAQs](subsys-boot-faqs.md)**  
diff --git a/en/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md b/en/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md
index 61ee379301ce6efd16ba3fa3642599932719b085..66181d0660e07c52462a009aa360ca48f27cd3fa 100644
--- a/en/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md
+++ b/en/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md
@@ -2,46 +2,46 @@
 
 ## Overview
 
-Generate Ninja (GN) a meta-build system that generates build files for Ninja, which allows you to build your OpenHarmony projects with Ninja.
+Generate Ninja (GN) is a meta-build system that generates build files for Ninja. It is the front end of Ninja. GN and Ninja together complete OpenHarmony build tasks.
 
-### Introduction to GN
+### GN
 
-- GN is currently used in several popular systems, including Chromium, Fuchsia, and OpenHarmony.
-- The GN syntax has limitations rooted in its design philosophy. For example, there is no way to get the length of a list and wildcards are not supported. To learn about the GN design philosophy, see https://gn.googlesource.com/gn/+/main/docs/language.md#Design-philosophy. Therefore, if you find that it is complex to implement something using GN, look it over and think about whether it is really necessary.
-- For details about GN, see the official GN document at https://gn.googlesource.com/gn/+/main/docs/.
+- GN is used in large software systems such as Chromium, Fuchsia, and OpenHarmony.
+- However, the GN syntax has limitations rooted in its [design philosophy](https://gn.googlesource.com/gn/+/main/docs/language.md#Design-philosophy). For example, it does not support wildcards and cannot get the length of a list. If you find it complex to implement something with GN, stop and consider whether it is necessary to do it.
+- For more details about GN, visit https://gn.googlesource.com/gn/+/main/docs/.
 
-### Intended Audience and Scope
+### Intended Audience and Purpose
 
-This document is intended for OpenHarmony developers. Its focus is on the GN coding style and issues that may occur during the use of GN. The GN syntax is not covered here. For details about the basics of GN, see the GN reference document at https://gn.googlesource.com/gn/+/main/docs/reference.md.
+This document is intended for OpenHarmony developers. This document describes the GN coding style and practices. It does not cover the GN syntax. For details about the GN basics, see [GN Reference](https://gn.googlesource.com/gn/+/main/docs/reference.md).
 
 ### General Principles
 
-On the premise that functions are available, scripts must be easy to read, easy to maintain, and exhibit good scalability and performance.
+Scripts must be easy to read and maintain, and have good scalability and performance while functioning well.
 
 ## Coding Style
 
 ### Naming
 
-In general cases, the naming follows the Linux kernel coding style, that is, **lowercase letters+underscore**.
+Follow the Linux kernel naming style, that is, lowercase letters + underscores (_).
 
 #### Local Variables
 
-For the purpose of this document, a local variable refers to a variable that is restricted to use in a certain scope and not passed down.
+A local variable is a variable restricted to use in a certain scope and cannot be passed down.
 
-To better distinguish local variables from global variables, local variables start with an underscore (**_**).
+Different from global variables, local variables start with an underscore (_).
 
 ```
-# Example 1
+# Example 1:
 action("some_action") {
   ...
-  # _output is a local variable. Hence, it starts with an underscore (_).
+  # _output is a local variable.
   _output = "${target_out_dir}/${target_name}.out"
   outputs = [ _output ]
   args = [
     ...
-  	"--output",
-  	rebase_path(_output, root_build_dir),
-  	...
+      "--output",
+      rebase_path(_output, root_build_dir),
+      ...
   ]
   ...
 }
@@ -49,32 +49,32 @@ action("some_action") {
 
 #### Global Variables
 
-A global variable starts with a **lowercase letter**.
+A global variable starts with a lowercase letter.
 
-If you want a variable value to be modified by **gn args**, use **declare\_args**. Otherwise, do not use **declare\_args**.
+Use **declare_args** to declare the variable value only if the variable value can be modified by **gn args**.
 
 ```
 # Example 2
 declare_args() {
-  # You can use gn args to change the value of some_feature.
+  # The value of some_feature can be changed by gn args.
   some_feature = false
 }
 ```
 
 #### Targets
 
-The target is named in the format of **lowercase letters+underscore**.
-
-A subtarget in the template is named in the ${*target\_name*}\__*suffix* format. This naming convention has the following advantages:
+Name the targets in the lowercase letters + underscores (_) format.
 
-- The ${*target\_name*} part can prevent duplicate subtarget names.
+Name the subtargets in templates in the ${target_name}+double underscores (__)+suffix format. This naming convention has the following advantages:
 
-- The double underscores (\__) can help identify the module to which the subtarget belongs, thereby facilitating fault locating.
+- ${target_name} prevents duplicate subtarget names.
 
+- The double underscores (__) help locate the module to which a subtarget belongs.
+  
   ```
   # Example 3
   template("ohos_shared_library") {
-    # "{target_name}" (primary target name) + "__" (double underscores) + "notice" (suffix)
+    # "{target_name}" (Target name) + "__" (double underscores) + "notice" (suffix)
     _notice_target = "${target_name}__notice"
     collect_notice(_notice_target) {
       ...
@@ -87,7 +87,7 @@ A subtarget in the template is named in the ${*target\_name*}\__*suffix* format.
 
 #### Custom Templates
 
-Whenever possible, **use verbs** for template names.
+Name templates in the verb+object format.
 
 ```
 # Example 4
@@ -99,15 +99,15 @@ template("compile_resources") {
 
 ### Formatting
 
-To maintain consistency in styles such as code alignment and line feed, a GN script needs to be formatted before being submitted. Use the format tool provided by GN to format your script. The command is as follows:
+GN scripts must be formatted before being submitted. Formatting ensures consistency in style, such as code alignment and line feed. Use the format tool provided by GN to format your scripts. The command is as follows: 
 
 ```shell
 $ gn format path-to-BUILD.gn
 ```
 
-**gn format** sorts imports in alphabetical order. To maintain the original sequence, you can add an empty comment line.
+**gn format** sorts the imported files in alphabetical order. To maintain the original sequence, add an empty comment line.
 
-Assume that the original import sequence is as follows:
+For example, the original import sequence is as follows:
 
 ```
 # Example 5
@@ -115,42 +115,42 @@ import("//b.gni")
 import("//a.gni")
 ```
 
-After the format command is executed, the import sequence is changed as follows:
+**gn format** sorts the files as follows:
 
 ```
 import("//a.gni")
 import("//b.gni")
 ```
 
-To maintain the original import sequence, add an empty comment line.
+To maintain the original sequence, add an empty comment line.
 
 ```
 import("//b.gni")
-# Comment to maintain the original import sequence.
+# Comment to keep the original sequence
 import("//a.gni")
 ```
 
-## Coding Practice
-
-### Principles of Practice
+## Coding Practices
 
-The build script completes the following two tasks:
+### Guidelines
 
-1. **Describe the dependency between modules (deps).**
+The build script completes the following tasks:
 
-   In practice, the most frequent problem is **lack of dependency**.
+1. Describes the dependency (deps) between modules.
+   
+   In practice, the most common problem is lack of dependency.
 
-2. **Describe the module compilation rules (rule).**
+2. Defines the module build rules (rule).
+   
+   In practice, unclear input and output are common problems.
 
-   In practice, common problems are **unclear input** and **unclear output**.
-
-Lack of dependency can result in the following:
-
-- **Possible compilation error**
+Lack of dependency leads to the following problems:
 
+- Unexpected compilation error
+  
   ```
   # Example 6
-  # The compilation is prone to errors as a result of lack of dependency.
+  # Lack of dependency poses a possibility of compilation errors.
   shared_library("a") {
     ...
   }
@@ -164,35 +164,35 @@ Lack of dependency can result in the following:
     deps = [ ":b" ]
   }
   ```
+  
+  In this example, **libb.so** is linked to **liba.so**, which means that **b** depends on **a**. However, the dependency of **b** on **a** is not declared in the dependency list (**deps**) of **b**. Compilation is performed concurrently. An error occurs if **liba.so** is not available when **libb.so** attempts to create a link to it.
+  
+  If **liba.so** is available, the compilation is successful. Therefore, lack of dependency poses a possibility of compilation errors.
 
-  In the preceding example, **liba.so** is linked to **libb.so** when being linked. This means that **b** depends on **a**. However, the dependency list (**deps**) of **b** does not declare its dependency on **a**. As compilation is performed concurrently, a compilation error will occur if compilation of **liba.so** is not yet complete when **libb.so** is being linked.
-
-  From this example we can see that lack of dependency does not necessarily lead to a compilation error. It poses a possibility of errors.
-
-- **Missing involvement of dependent modules**
-
-  In the preceding example, because **images** depends on **b** only, **a** does not participate in the compilation of **images** using Ninja. However, as **b** depends on **a**, an error occurs when **b** is linked.
+- Missing compilation of modules
+  
+  In example 6, images are the target to build. Since images depend only on **b**, **a** will not be compiled. However, as **b** depends on **a**, an error occurs when **b** is linked.
 
-One less common problem is **too many dependencies**. **Too many dependencies can reduce concurrency and slow down compilation**.
+Another problem is unnecessary dependencies. Unnecessary dependencies reduce concurrency and slow down compilation. The following is an example:
 
-In the example below, adding the unwanted **_compile\_resource\_target** dependency to **_compile\_js_target** means that **_compile\_js_target** can be compiled only after compilation of **_compile\_resource\_target** is complete.
+**_compile_js_target** does not necessarily depend on **_compile_resource_target**. If this dependency is added, **_compile_js_target** can be compiled only after **_compile_resource_target** is compiled.
 
 ```
-# Example 7
-# Too many dependencies slow down compilation.
+# Example 7:
+# Unnecessary dependencies slow down compilation.
 template("too_much_deps") {
   ...
   _gen_resource_target = "${target_name}__res"
   action(_gen_resource_target) {
     ...
   }
-  
+
   _compile_resource_target = "${target_name}__compile_res"
   action(_compile_resource_target) {
     deps = [":$_gen_resource_target"]
     ...
   }
-  
+
   _compile_js_target = "${target_name}__js"
   action(_compile_js_target) {
     # This deps is not required.
@@ -201,15 +201,15 @@ template("too_much_deps") {
 }
 ```
 
-Unclear input can result in the following:
+Unclear input leads to the following problems:
 
-- **Modified code is not compiled during the incremental compilation.**
-- **After code changes, the cache being used is still hit.**
+- Modified code is not compiled during incremental compilation.
+- The cache being used is still hit after the code is changed.
 
-In the following example, **foo.py** references functions in **bar.py**. This means that **bar.py** is the input of **foo.py** and must be added to the **input** or **depfile** of **implict_input_action**. Otherwise, if **bar.py** is modified, the **implict_input_action** module will not be recompiled.
+In the following example, **foo.py** references the functions in **bar.py**. This means **bar.py** is the input of **foo.py**. You need to add **bar.py** to **input** or **depfile** of **implict_input_action**. Otherwise, if **bar.py** is modified, **implict_input_action** will not be recompiled.
 
 ```
-# Example 8
+# Example 8:
 action("implict_input_action") {
   script = "//path-to-foo.py"
   ...
@@ -218,19 +218,19 @@ action("implict_input_action") {
 
 ```
 #!/usr/bin/env
-# Contents of foo.py
+# Content of foo.py
 import bar
 ...
 bar.some_function()
 ...
 ```
 
-Unclear output can result in the following:
+Unclear output leads to the following problems:
 
-- **The output is implicit.**
-- **When the cache is used, implicit output cannot be obtained from the cache.**
+- Implicit output
+- A failure to obtain the implicit output from the cache
 
-In the following example, **foo.py** generates two files: **a.out** and **b.out**; the output of **implict_output_action** declares only **a.out**. In this case, **b.out** is an implicit output, and the cache stores **a.out** but not **b.out**. When the cache is hit, **b.out** cannot be compiled.
+In the following example, **foo.py** generates two files: **a.out** and **b.out**. However, the output of **implict_output_action** declares only **a.out**. In this case, **b.out** is an implicit output, and the cache stores only **a.out**. When the cache is hit, **b.out** cannot be compiled.
 
 ```
 # Example 9
@@ -252,43 +252,40 @@ write_file("a.out")
 
 ### Templates
 
-**Do not use the GN native templates. Use the templates provided by the compilation system.**
+**Do not use GN native templates. Use the templates provided by the build system.**
 
-The GN native templates are **source_set**, **shared_library**, **static_library**, **action**, **executable**, and **group**.
+The GN native templates include **source_set**, **shared_library**, **static_library**, **action**, **executable** and **group**.
 
-These native templates are discouraged due to the following reasons:
+The native templates are not recommended due to the following reasons:
 
-- **The native templates only provide minimum functions**. They do not provide extra functions such as external_deps parsing, notice collection, and installation information generation. These extra functions are generated during module compilation. Therefore, the native templates must be extended.
+- The native templates provide only the minimal build configuration. They cannot provide functions, such as parsing **external_deps**, collecting notice, and generating installation information.
 
-- When the file on which the input file depends changes, the native template **action** cannot automatically detect the change and cannot be recompiled. See Example 8.
-  
-  
-  
-  Mapping between native templates and templates provided by the compilation system:
-  
-  | Template Provided by the Compilation System | Native Template |
-  | :------------------------------------------ | --------------- |
-  | ohos_shared_library                         | shared_library  |
-  | ohos_source_set                             | source_set      |
-  | ohos_executable                             | executable      |
-  | ohos_static_library                         | static_library  |
-  | action_with_pydeps                          | action          |
-  | ohos_group                                  | group           |
-  
+- The native **action** template cannot automatically detect the changes in the dependencies of the input file, and cannot start recompilation. See Example 8.
+
+  The table below lists the mapping between the GN native templates and templates provided by the compilation system.
+
+| Template Provided by the Compilation System          | GN Native Template          |
+|:------------------- | -------------- |
+| ohos_shared_library | shared_library |
+| ohos_source_set     | source_set     |
+| ohos_executable     | executable     |
+| ohos_static_library | static_library |
+| action_with_pydeps  | action         |
+| ohos_group          | group          |
 
 ### Using Python Scripts
 
-Prioritize the Python script over the shell script in **action**. The Python script has the following advantages over the shell script:
+You are advised to use Python scripts instead of shell scripts in **action**. Compared with shell scripts, Python scripts feature:
 
-- More user-friendly syntax: It will not generate strange errors just because a space is missing.
-- More readable.
-- Higher maintainability and debugability.
-- Faster compilation: thanks to Python task caching by OpenHarmony.
+- More user-friendly syntax, which eliminates errors caused by lack of a space
+- Easier to read
+- Easier to maintain and debug
+- Faster compilation due to caching of Python tasks
 
 ### rebase_path
 
-- Call **rebase_path** only in the **args** list of **action**.
-
+- Call **rebase_path** only in **args** of **action**.
+  
   ```
   # Example 10
   template("foo") {
@@ -309,15 +306,15 @@ Prioritize the Python script over the shell script in **action**. The Python scr
   }
   ```
 
-- If **rebase_path** is executed twice for the same variable, unexpected results may occur.
-
+- If rebase_path is called twice for the same variable, unexpected results occur.
+  
   ```
   # Example 11
   template("foo") {
     action(target_name) {
       ...
       args = [
-        # rebase_path is executed twice for bar, and the passed bar value is incorrect.
+        # After rebase_path is called twice for bar, the bar value passed is incorrect.
         "--bar=" + rebase_path(invoker.bar, root_build_dir),
         ...
       ]
@@ -334,14 +331,14 @@ Prioritize the Python script over the shell script in **action**. The Python scr
 
 ### Sharing Data Between Modules
 
-Data sharing between modules is common. For example, a module may want to know the **outputs** and **deps** of another module.
-
-- Data sharing within the same **BUILD.gn** file
-
-  Data in the same **BUILD.gn** file can be shared by defining global variables.
-
-  In the following example, the output of module **a** is the input of module **b**. Module **a** shares data with module **b** by defining global variables.
+It is common to share data between modules. For example, module A wants to know the output and **deps** of module B.
 
+- Data sharing within the same **BUILD.gn**
+  
+  Data in the same **BUILD.gn** can be shared by defining global variables.
+  
+  In the following example, the output of module **a** is the input of module **b**, and can be shared with module **b** via global variables.
+  
   ```
   # Example 12
   _output_a = get_label_info(":a", "out_dir") + "/a.out"
@@ -355,25 +352,25 @@ Data sharing between modules is common. For example, a module may want to know t
   }
   ```
 
-- Data sharing between different **BUILD.gn** files
-
-  The best way to share data between different **BUILD.gn** files is to save the data as files and then transfer the files between modules. This scenario is complex. For details, see **write_meta_data** in the OpenHarmony HAP compilation process.
+- Data sharing between different **BUILD.gn**s
+  
+  The best way to share data between different **BUILD.gn** is to save the data as files and transfer the files between modules. You can refer to **write_meta_data** in the OpenHarmony HAP build process.
 
 ### forward_variable_from
 
-- To customize a template, you need to forward **testonly** first, since the target of the template may be depended on by that of **testonly**.
-
+- To customize a template, pass (**forward**) **testonly** first because the **testonly** target may depend on the template target.
+  
   ```
   # Example 13
-  # Forward testonly for a custom template.
+  # For a customized template, pass testonly first.
   template("foo") {
     forward_variable_from(invoker, ["testonly"])
     ...
   }
   ```
 
-- Do not use asterisks (*) to forward variables. Required variables should be explicitly forwarded one by one.
-
+- Do not use asterisks (*) to **forward** variables. Required variables must be explicitly forwarded one by one.
+  
   ```
   # Example 14
   # Bad. The asterisk (*) is used to forward the variable.
@@ -382,25 +379,25 @@ Data sharing between modules is common. For example, a module may want to know t
     ...
   }
   
-  # Good. Variables are explicitly forward one by one.
+  # Good. Variables are explicitly forwarded one by one.
   template("bar") {
     # 
     forward_variable_from(invoker, [
-    								   "testonly",
-    								   "deps",
-    								   ...
-    								 ])
+                                       "testonly",
+                                       "deps",
+                                       ...
+                                     ])
     ...
   }
   ```
 
 ### target_name
 
-The value of **target_name** varies according to the scope.
+The value of **target_name** varies with the scope.
 
 ```
 # Example 15
-# The value of target_name varies according to the scope.
+# The value of target_name varies with the scope.
 template("foo") {
   # The displayed target_name is "${target_name}".
   print(target_name)
@@ -426,7 +423,7 @@ To export header files from a module, use **public_configs**.
 
 ```
 # Example 16
-# b depends on a and inherits the headers of a.
+# b depends on a and inherits from the headers of a.
 config("headers") {
   include_dirs = ["//path-to-headers"]
   ...
@@ -443,11 +440,11 @@ executable("b") {
 
 ### template
 
-A custom template must contain a subtarget named *target_name*. This subtarget is used as the main target of the template. It should depend on other subtargets so that the subtargets can be compiled.
+A custom template must contain a subtarget named **target_name**. This subtarget is used as the target of the template and depends on other subtargets. Otherwise, the subtargets will not be compiled.
 
 ```
 # Example 17
-# A custom template must contain a subtarget named target_name.
+# A custom template must have a subtarget named target_name.
 template("foo") {
   _code_gen_target = "${target_name}__gen"
   code_gen(_code_gen_target) {
@@ -462,7 +459,7 @@ template("foo") {
   ...
   group(target_name) {
     deps = [
-    # Since _compile_gen_target depends on _code_gen_target, the main target only needs to depend on _compile_gen_target.
+    # _compile_gen_target depends on _code_gen_target. Therefore, target_name only needs to depend on _compile_gen_target.
       ":$_compile_gen_target"
     ]
   }
@@ -471,11 +468,11 @@ template("foo") {
 
 ### set_source_assignment_filter
 
-In addition to filtering **sources**, **set_source_assignment_filter** can also be used to filter other variables. After the filtering is complete, clear the filter and **sources** list.
+In addition to **sources**, **set_source_assignment_filter** can be used to filter other variables. After the filtering is complete, clear the filter and **sources**.
 
 ```
 # Example 18
-# Use set_source_assignment_filter to filter dependencies and add the dependencies whose label matches *:*_res to the dependency list.
+# Use set_source_assignment_filter to filter dependencies and add the dependencies with labels matching *:*_res to the dependency list.
 _deps = []
 foreach(_possible_dep, invoker.deps) {
   set_source_assignment_filter(["*:*_res"])
@@ -492,18 +489,20 @@ set_source_assignment_filter([])
 
 In the latest version, **set_source_assignment_filter** is replaced by **filter_include** and **filter_exclude**.
 
-### Using **deps** for Intra-part Dependencies and **external_deps** for Cross-part Dependencies
+### Using deps and external_deps
+
+- An OpenHarmony component is a group of modules that can provide a capability.
 
-- In OpenHarmony, a part is a group of modules that can provide a certain capability.
-- When defining a module, you can declare the **part_name** to signify the part to which the module belongs.
+- When defining a module, you must specify **part_name** to indicate the component to which the module belongs.
 
-- Each part declares its inner-kit for other parts to invoke. For details about the declaration of inner-kit, see **ohos.build** in the source code.
-- Inter-part dependencies can only be inner-kit modules.
+- You must also declare **inner-kit** of a component for other components to call. For details about the declaration of component **innerkit**, see **bundle.json** in the source code.
 
-- If the values of **part_name** of modules **a** and **b** are the same, the two modules belong to the same part. In this case, the dependency between the modules can be declared using **deps**.
+- **inner-kit** applies only to dependent modules in different components.
 
-- If the values of **part_name** of modules **a** and **b** are different, the two modules belong to different parts. In this case, the dependency between the modules must be declared using **external_deps** in the format of *componentName:moduleName*. See Example 19.
+- If modules **a** and **b** has the same **part_name**, modules **a** and **b** belong to the same component. In this case, declare the dependency between them using **deps**.
 
+- If modules **a** and **b** have different **part_name**, modules **a** and **b** belong to different components. In this case, declare the dependency between them using **external_deps** in the Component name:Module name format. See Example 19.
+  
   ```
   # Example 19
   shared_library("a") {
@@ -512,11 +511,3 @@ In the latest version, **set_source_assignment_filter** is replaced by **filter_
     ...
   }
   ```
-
-  
-
-  
-
-  
-
-  
diff --git a/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md b/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md
index 929b6e4d050e0ed0428c0a423e2beca86936f8de..f6f28d7352ad2bdc1226cf3b0228395d4d4e3c7d 100644
--- a/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md
+++ b/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md
@@ -5,12 +5,12 @@
 ### Kconfig Visual Configuration
 Kconfig visual configuration is implemented on [Kconfiglib](https://github.com/ulfalizer/Kconfiglib) and [Kconfig](https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html#introduction). It allows customized configuration of OpenHarmony subsystem components.
 
-This function has the following advantages:
+Kconfig visual configuration has the following advantages:
 
 - Intuitive display of software component options
 - High reliability (Linux kernel and Buildroot use Kconfig for visualized configuration)
 
-### Key Concepts
+### Basic Concepts
 
 - [Kconfig](https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html#introduction): a visual configuration file format for Linux.
 
@@ -22,20 +22,20 @@ This function has the following advantages:
 
 - [Config format conversion](https://gitee.com/openharmony/build/blob/master/tools/component_tools/parse_kconf.py): converts the **config** file generated on the GUI to the standard format for compilation and build.
 
-## Procedure
+## Operation Guide
 
 1. Obtain the source code.
 
-   For details, see [Obtaining Source Code](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md).
+   For details, see [Obtaining Source Code](../get-code/sourcecode-acquire.md).
 
 2. Set up the environment.
 
-   The Kconfiglib required for environment configuration has been embedded in the OpenHarmony hb tool. For details about how to install the hb tool, see [Install hb](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-env-setup.md#install-hb).
+   The Kconfiglib required for environment configuration has been embedded in the OpenHarmony hb tool. For details about how to install the hb tool, see [Installing hb](../quick-start/quickstart-lite-env-setup.md).
 
 3. Open the Kconfig configuration interface.
 
    ```shell
-   #Go to the build repository directory.
+   # Go to the build repository directory.
    cd build/tools/component_tools
    menuconfig kconfig
    ```
@@ -68,7 +68,7 @@ This function has the following advantages:
 
    Example:
 
-   1. Perform a global build.
+   1. Perform a full build.
 
       ```shell
       cp productdefine/common/base/base_product.json productdefine/common/products/ohos-arm64.json
@@ -91,23 +91,23 @@ This function has the following advantages:
 
       By default, the file **product.json** is generated in the current directory. You can also use `python3 parse_kconf.py --out="example/out.json"` to specify the file path.
 
-      For more operations, see `python3 parse_kconf.py -h`.
+      For more operations, run `python3 parse_kconf.py -h`.
 
 ​	
 
 ## FAQs
 
-### The latest component information is missing from the menu.
+### Latest Components Not Displayed in the Menu List
 
-The component list [productdefine/common/base/base_product.json](https://gitee.com/openharmony/productdefine_common/blob/master/base/base_product.json) is updated with product updates and iterations. As a result, the Kconfig menu does not contain the latest components.
+The component list [productdefine/common/base/base_product.json](https://gitee.com/openharmony/productdefine_common/blob/master/base/base_product.json) is updated with product updates and iterations. The Kconfig menu does not contain the latest components.
 
-Solution:
+**Solution**
 
-- Update the [Kconfig file](https://gitee.com/openharmony/build/blob/master/tools/component_tools/kconfig).
+Update the [Kconfig file](https://gitee.com/openharmony/build/blob/master/tools/component_tools/kconfig).
 
-  ```shell
-  cd build/tools/component_tools
-  python3 generate_kconfig.py
-  ```
+```shell
+cd build/tools/component_tools
+python3 generate_kconfig.py
+```
 
-  For more details, see `python3 generate_kconfig.py -h`.
+You can run `python3 generate_kconfig.py -h` to view more options.
diff --git a/en/device-dev/subsystems/subsys-build-mini-lite.md b/en/device-dev/subsystems/subsys-build-mini-lite.md
index d8b4c946818710f2d669a26d91b940c08cd6a44e..fa47c3a94b36fdc69c207ae602c218574c9074c7 100644
--- a/en/device-dev/subsystems/subsys-build-mini-lite.md
+++ b/en/device-dev/subsystems/subsys-build-mini-lite.md
@@ -2,38 +2,33 @@
 
 ## Overview
 
-The Compilation and Building subsystem is a build framework that supports component-based OpenHarmony development using Generate Ninja \(GN\) and Ninja. You can use this subsystem to:
+The Compilation and Building subsystem provides a build framework based on Generate Ninja (GN) and Ninja. This subsystem allows you to:
 
--   Assemble components for a product and build the product.
+- Assemble components into a product and build the product.
 
--   Build chipset source code independently.
--   Build a single component independently.
+- Build chipset source code independently.
 
-### Basic Concepts
-
-Learn the following concepts before you start compilation and building:
-
--   Subsystem
-
-    A subsystem is a logical concept. It consists of one or more components. OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from bottom to top. System functions are developed by the level of system, subsystem, and component. In a multi-device deployment scenario, you can customize subsystems and components as required.
-
-
--   Component
-
-    A component is a reusable, configurable, and tailorable function unit. Each component has an independent directory, and multiple components can be developed concurrently and built and tested independently.
-
--   GN
+- Build a single component independently.
 
-    Generate Ninja \(GN\) is used to generate Ninja files.
-
--   Ninja
-
-    Ninja is a small high-speed build system.
-
--  hb
-
-    hb is a command line tool for OpenHarmony to execute build commands.
+### Basic Concepts
 
+Learn the following basic concepts before you start:
+
+- Subsystem
+  
+  A subsystem, as a logical concept, consists of one or more components. OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from the bottom up. System functions are developed by levels, from system to subsystem and then to component. In a multi-device deployment scenario, you can customize subsystems and components as required.
+- Component
+  
+  A component is a reusable, configurable, and tailorable function unit. Each component has an independent directory, and can be built and tested independently and developed concurrently. 
+- GN
+  
+  GN is short for Generate Ninja. It is used to build Ninja files.
+- Ninja
+  
+  Ninja is a small high-speed building system.
+- hb
+  
+  hb is an OpenHarmony command line tool used to execute build commands.
 
 ### Directory Structure
 
@@ -42,8 +37,8 @@ build/lite
 ├── components                  # Component description file
 ├── figures                     # Figures in the readme file
 ├── hb                          # hb pip installation package
-├── make_rootfs                 # Script used to create the file system image
-├── config                      # Build configuration
+├── make_rootfs                 # Script used to create a file system image
+├── config                      # Build configurations
 │   ├── component               # Component-related template definition
 │   ├── kernel                  # Kernel-related build configuration
 │   └── subsystem               # Subsystem build configuration
@@ -52,174 +47,197 @@ build/lite
 └── toolchain                   # Build toolchain configuration, which contains the compiler directories, build options, and linking options
 ```
 
-### Build Process
+### **Build Process**
 
 The figure below shows the build process.
 
-**Figure  1** Build process  
-![](figure/build-process.jpg "build-process")
+  **Figure 1** Build process
+
+  ![](figure/build-process.jpg)
+
+1. Use **hb set** to set the OpenHarmony source code directory and the product to build.
 
-1.  Use **hb set** to set the OpenHarmony source code directory and the product to build.
-2.  Use  **hb build** to build the product, development board, or component. The procedure is as follows:
-    -   Read the  **config.gni**  file of the development board selected. The file contains the build toolchain, linking commands, and build options.
-    -   Run the  **gn gen**  command to read the product configuration and generate the  **out**  directory and  **ninja**  files for the solution.
-    -   Run  **ninja -C out/board/product**  to start the build.
-    -   Package the build result, set the file attributes and permissions, and create a file system image.
+2. Use **hb build** to build the product, development board, or component.
 
+   The procedure is as follows:
+
+   (1) Read the **config.gni** file of the development board selected. The file contains the build toolchain, linking commands, and build options.
+
+   (2) Run the **gn gen** command to read the product configuration and generate the **out** directory and **ninja** files for the solution.
+
+   (3) Run **ninja -C out/board/product** to start the build.
+
+   (4) Package the files built, set file attributes and permissions, and create a file system image.
 
 ## Configuration Rules
 
-To ensure that the chipset and product solutions are pluggable and decoupled from OpenHarmony, the paths, directory trees, and configuration of components, chipset solutions, and product solutions must comply with the following rules:
+You can build a component, a chipset solution, and a product solution. To ensure that the chipset and product solutions are decoupled from OpenHarmony, follow the rules below:
 
 ### Component
 
-The source code directory for a component is named in the  _\{Domain\}/\{Subsystem\}/\{Component\}_  format. The component directory tree is as follows:
+The component source code directory is named in the *{Domain}/{Subsystem}/{Component}* format. The component directory structure is as follows:
 
->![](../public_sys-resources/icon-caution.gif) **CAUTION**<br/> 
->Define component attributes, such as the name, source code directory, function description, mandatory or not, build targets, RAM, ROM, build outputs, adapted kernels, configurable features, and dependencies, in the JSON file of the subsystem in the  **build/lite/components**  directory. When adding a component, add its definition to the JSON file of the corresponding subsystem. The component configured for a product must have been defined in a subsystem. Otherwise, the verification will fail.
+> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**<br/>
+> The .json file of the subsystem in the **build/lite/components** directory contains component attributes, including the name, source code directory, function description, mandatory or not, build targets, RAM, ROM, build outputs, adapted kernels, configurable features, and dependencies of the component. When adding a component, add the component information in the .json file of the corresponding subsystem. The component configured for a product must have been defined in a subsystem. Otherwise, the verification will fail.
 
 ```
 component
 ├── interfaces
 │   ├── innerkits  # APIs exposed internally among components
-│   └── kits       # App APIs provided for app developers
+│   └── kits       # APIs provided for application developers
 ├── frameworks     # Framework implementation
 ├── services       # Service implementation
-└── BUILD.gn       # Build script
+├── BUILD.gn       # Build script
 ```
 
-The following example shows how to define attributes of the sensor component of the pan-sensor subsystem:
+  The following example shows how to configure attributes of the sensor service component of the pan-sensor subsystem:
+
+ ```
+ {
+     "name": "@ohos/sensor_lite",		             # OpenHarmony Package Manager (HPM) component name, in the "@Organization/Component name" format.
+     "description": "Sensor services",		         # Description of the component functions.
+     "version": "3.1",                                # Version, which must be the same as the version of OpenHarmony.
+     "license": "MIT",			                     # Component license.
+     "publishAs": "code-segment",		             # Mode for publishing the HPM package. The default value is code-segment.
+     "segment": {										
+         "destPath": ""			
+     },					                             # Code restoration path (source code path) set when "publishAs" is code-segment.		
+     "dirs": {"base/sensors/sensor_lite"},	         # Directory structure of the HPM package. This field is mandatory and can be left empty.
+     "scripts": {},			                         # Scripts to be executed. This field is mandatory and can be left empty.
+     "licensePath": "COPYING",			
+     "readmePath": {
+         "en": "README.rst"
+     },
+     "component": {			                         # Component attributes.
+         "name": "sensor_lite",			             # Component name.	
+         "subsystem": "", 		                     # Subsystem to which the component belongs.
+         "syscap": [], 				                 # System capabilities provided by the component for applications.
+         "features": [],                              # List of external configurable features of a component. Generally, this parameter corresponds to sub_component in build and can be configured by the product.
+         "adapted_system_type": [],		             # Types of adapted systems. The value can be mini, small, and standard.
+         "rom": "92KB",                               # Component ROM size.
+         "ram": "~200KB",,                            # Component RAM size.      
+         "deps": {                      
+         "components": [                              # Other components on which this component depends.
+           "samgr_lite"
+         ],
+         "third_party": [                             # Third-party open-source software on which this component depends.
+           "bounds_checking_function"
+         ]
+       }         
+         "build": {				                     # Build-related configuration.
+             "sub_component": [
+                 ""//base/sensors/sensor_lite/services:sensor_service"", # Component build entry
+             ],			                              # Component build entry. Configure modules here.
+             "inner_kits": [],						  # APIs between components.
+             "test": [] 							  # Entry for building the component's test cases.
+         }
+     }
+  }
+ ```
+
+  Observe the following rules when writing the component's **BUILD.gn**:
+
+- The build target name must be the same as the component name.
+
+- Define the configurable features in the **BUILD.gn** file of the component. Name the configurable features in the ohos_{subsystem}*{component}*{feature} format. Define the features in component description and configure them in the **config.json** file.
+
+- Define macros in the OHOS_{SUBSYSTEM}*{COMPONENT}*{FEATURE} format.
+  
+  > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+  > The component build script is written in GN. For details about how to use GN, see [GN Quick Start Guide](https://gn.googlesource.com/gn/+/master/docs/quick_start.md). The component is the build target, which can be a static library, a dynamic library, an executable file, or a group.
+  
+  The following example shows the **foundation/graphic/ui/BUILD.gn** file for a graphics UI component:
+
+   ```
+    # Declare the configurable features of the component.
+    declare_args() {
+      enable_ohos_graphic_ui_animator = false # Whether to enable animation.
+      ohos_ohos_graphic_ui_font = "vector"    # Configurable font type, which can be vector or bitmap.
+    }
 
-```
-{
-  "components": [
-    {
-      "component": "sensor_lite",                # Component name
-      "description": "Sensor services",          # Brief description of the component
-      "optional": "true",                        # Whether the component is mandatory for the system
-      "dirs": [                                  # Source code directory of the component
-        "base/sensors/sensor_lite"
-      ],
-      "targets": [                               # Build entry of the component
-        "//base/sensors/sensor_lite/services:sensor_service"
-      ],
-      "rom": "92KB",                             # Component ROM
-      "ram": "~200KB",                           # Component RAM (estimated)
-      "output": [ "libsensor_frameworks.so" ],   # Component build outputs
-      "adapted_kernel": [ "liteos_a" ],          # Adapted kernel for the component
-      "features": [],                            # Configurable features of the component
-      "deps": {                      
-        "components": [                          # Other components on which the component depends
-          "samgr_lite"
-        ],
-        "third_party": [                         # Open-source third-party software on which the component depends
-          "bounds_checking_function"
+    # Basic component functions.
+    shared_library("base") {
+      sources = [
+        ...
+      ]
+      include_dirs = [
+        ...
+      ]
+    }
+
+    # Build only when the animator is enabled.
+    if(enable_ohos_graphic_ui_animator ) { 
+      shared_library("animator") {
+        sources = [
+          ...
         ]
+        include_dirs = [
+              ...
+        ]
+        deps = [ :base ]
       }
     }
-  ]
-}
-```
+    ...
+    # It is recommended that the target name be the same as the name of the component, which can be an executable file (.bin), shared_library (.so file), static_library (.a file), or a group.
+    executable("ui") {
+      deps = [
+        ":base"
+      ]
 
-Observe the following rules when configuring **BUILD.gn**:
+      # The animator feature is configured by the product.
+      if(enable_ohos_graphic_ui_animator ) {
+          deps += [
+            "animator"
+          ]
+      }
+    }
+   ```
 
--   The build target name must be the same as the component name.
--   Define the configurable features in the  **BUILD.gn**  file of the component. Name the configurable features in the  **ohos\_**\{_subsystem_\}**\_**\{_component_\}**\_**\{_feature_\} format. Define the features in component description and configure them in the  **config.json**  file.
--   Define macros in the  **OHOS\_**\{_SUBSYSTEM_\}**\_**\{_COMPONENT_\}**\_**\{_FEATURE_\} format.
+### Chipset Solution
 
-    >![](../public_sys-resources/icon-note.gif) **NOTE**<br/> GN is used as the build script language for components. For details about how to use GN, see [GN Quick Start Guide](https://gn.googlesource.com/gn/+/master/docs/quick_start.md). In GN, a component is a target to build, which can be a static library, a dynamic library, an executable file, or a group.	
+- The chipset solution is a special component. It is built based on a development board, including the drivers, device API adaptation, and SDK.
 
+- The source code path is named in the **device/{Development board}/{Chipset solution vendor}** format.
 
-The following example shows how to build the  **foundation/graphic/ui/BUILD.gn**  file for a graphics UI component:
+- The chipset solution component is built by default based on the development board selected.
+  
+- The chipset solution directory structure is as follows:
 
-```
-	# Declare the configurable features of the component
-	declare_args() {
-  enable_ohos_graphic_ui_animator = false # Animation switch
-  ohos_ohos_graphic_ui_font = "vector"    # Configurable font type, which can be vector or bitmap
-	}
-	
-	# Basic component functions
-	shared_library("base") {
-	  sources = [
-	    ......
-	  ]
-	  include_dirs = [
-	    ......
-	  ]
-	}
-	
-	# Build only when the animator is enabled
-	if(enable_ohos_graphic_ui_animator ) { 
-	  shared_library("animator") {
-	    sources = [
-	      ......
-	    ]
-	    include_dirs = [
-              ......
-	    ]
-	    deps = [ :base ]
-	  }
-	}
-	......
-	# It is recommended that the target name be the same as the component name, which can be an executable .bin file, shared_library (.so file), static_library (.a file), or a group.
-	executable("ui") {
-	  deps = [
-	    ":base"
-	  ]
-
-	  # The animator feature is configured by the product.
-	  if(enable_ohos_graphic_ui_animator ) {
-	      deps += [
-	        "animator"
-	      ]
-	  }
-	}
-```
+  ```
+  device                                      
+  └── board                         # Chipset solution vendor
+      └── company                   # Development board name
+          ├── BUILD.gn              # Build script
+          ├── hals                  # OS device API adaptation
+          ├── linux                 # (Optional) Linux kernel version
+          │   └── config.gni        # Linux build configuration
+          └── liteos_a              # (Optional) LiteOS kernel version
+               └── config.gni       # LiteOS_A build configuration
+  ```
 
-### Chipset
+  > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+  > The **config.gni** file contains build-related configuration of the development board. The parameters in the file are used to build all OS components, and are globally visible to the system during the build process.
 
--   The chipset solution is a complete solution based on a development board. The solution includes the drivers, API adaptation, and SDK.
--   The chipset solution is a special component, whose source code directory is named in the  _**device**/\{Chipset solution vendor\}/\{Development board\}_  format.
--   The chipset component is built by default based on the development board selected by the product.
+- The **config.gni** file contains the following key parameters:
 
-The chipset solution directory tree is as follows:
+  ```
+  kernel_type:            Kernel used by the development board, for example, LiteOS_A, LiteOS_M, or Linux.
+  kernel_version:         Kernel version of the development board, for example, 4.19.
+  board_cpu:              CPU of the development board, for example, Cortex-A7 or RISCV32.
+  board_arch:             Chipset architecture of the development board, for example, ARMv7-A or RV32IMAC.
+  board_toolchain:        Name of the customized build toolchain used by the development board, for example, gcc-arm-none-eabi. If this field is not specified, ohos-clang will be used by default.
+  board_toolchain_prefix: Prefix of the toolchain, for example, gcc-arm-none-eabi.
+  board_toolchain_type:   Toolchain type. Currently, only GCC and clang are supported.
+  board_cflags:           Build options of the .c file configured for the development board.
+  board_cxx_flags:        Build options of the .cpp file configured for the development board.
+  board_ld_flags:         Linking options configured for the development board.
+  ```
 
-```
-device                                      
-└── company                         # Chipset solution vendor
-    └── board                       # Name of the development board
-        ├── BUILD.gn                # Build script
-        ├── hals                    # Southbound APIs for OS adaptation
-        ├── linux                   # Linux kernel version (optional)
-        │   └── config.gni          # Build options for the Linux version
-        └── liteos_a                # LiteOS kernel version (optional)
-            └── config.gni          # Build options for the LiteOS Cortex-A version
-```
+### Product Solution
 
->![](../public_sys-resources/icon-note.gif) **NOTE** <br/>
->The  **config.gni**  file contains build-related configurations of the development board. The parameters in the file are globally visible to the system and can be used to build all OS components during the build process.
+The product solution is a special component. It is a product built based on a development board. It includes the OS adaptation, component assembly and configuration, startup configuration, and file system configuration. The source code directory is named in the **vendor**/{*Product solution vendor*}/{*Product name*} format.
 
-The  **config.gni**  file contains the following key parameters:
-
-```
-kernel_type:            kernel used by the development board, for example, liteos_a, liteos_m, or linux.
-kernel_version:         kernel version used by the development board, for example, 4.19.
-board_cpu:              CPU of the development board, for example, cortex-a7 or riscv32.
-board_arch:             chipset architecture of the development board, for example, armv7-a or rv32imac.
-board_toolchain:        name of the customized build toolchain used by the development board, for example, gcc-arm-none-eabi. If this field is not specified, ohos-clang will be used by default.
-board_toolchain_prefix: prefix of the build toolchain, for example, gcc-arm-none-eabi.
-board_toolchain_type:  build toolchain type, for example, gcc or clang. Currently, only GCC and clang are supported.
-board_cflags:          build options of the .c file configured for the development board.
-board_cxx_flags:       build options of the .cpp file configured for the development board.
-board_ld_flags:        link options configured for the development board.
-```
-
-### Product
-
-The product solution is a complete product based on a development board. It includes the OS adaptation, component assembly configuration, startup configuration, and file system configuration. The source code directory of a product solution is named in the  **vendor**/\{_Product solution vendor_\}/\{_Product name_\} format. A product solution is also a special component.
-
-The product solution directory tree is as follows:
+The product solution directory structure is as follows:
 
 ```
 vendor                              
@@ -232,170 +250,164 @@ vendor
     │   ├── BUILD.gn                # Product build script
     │   └── config.json             # Product configuration file
     │   └── fs.yml                  # File system packaging configuration
-    └── ......
+    └── ...
 ```
 
->![](../public_sys-resources/icon-caution.gif) **CAUTION**<br/> 
->Create directories and files based on the preceding rules for new products. The Compilation and Building subsystem scans the configured products based on the rules.
+> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**<br/>
+> Follow the preceding rules to create directories and files for new products. The Compilation and Building subsystem scans the configured products based on the rules.
 
 The key directories and files are described as follows:
 
-- **vendor/company/product/init\_configs/etc**
+1. **vendor/company/product/init_configs/etc**
+   
+   This folder contains the rcS, Sxxx, and fstab scripts. The init process runs the rcS, fstab, and S00-xxx scripts in sequence before starting system services. The **S***xxx* script is used to create device nodes and directories, scan device nodes, and change file permissions for the development board and product. These scripts are copied from the **BUILD.gn** file to the **out** directory of the product as required and packaged into the **rootfs** image.
+
+2. **vendor/company/product/init_configs/init.cfg**
+
+   This file is the configuration file for the **init** process to start services. Currently, the following commands are supported:
+
+   - **start**: starts a service.
+
+   - **mkdir**: creates a folder.
+
+   - **chmod**: changes the permission on a specified directory or file.
+
+   - **chown**: changes the owner group of a specified directory or file.
+
+   - **mount**: mounts a device.
+     
+     The fields in the file are described as follows:
+
+   ```
+   {
+       "jobs" : [{                                                     # Job array. A job corresponds to a command set. Jobs are executed in the following sequence: pre-init > init > post-init.
+               "name" : "pre-init",
+               "cmds" : [
+                   "mkdir /storage/data",                              # Create a directory.
+                   "chmod 0755 /storage/data",                         #Modify the permissions. The format of the permission value is 0xxx, for example, 0755.
+                   "mkdir /storage/data/log",
+                   "chmod 0755 /storage/data/log",
+                   "chown 4 4 /storage/data/log",                     # Change the owner group. The first number is the user ID (UID), and the second number is the group ID (GID).
+                   ...
+                   "mount vfat /dev/mmcblock0 /sdcard rw,umask=000"    # The command format is mount [File system type] [source] [target] [flags] [data].
+                                                                       # The value of flags can be nodev, noexec, nosuid, or rdonly only.
+               ]
+           }, {
+               "name" : "init",
+               "cmds" : [                                              # Start services based on the sequence of the cmds array.
+                   "start shell",                                      # There is only one space between start and the service name.
+                   ...
+                   "start service1"
+               ]
+           }, {
+               "name" : "post-init",                                   # Job that is finally executed. Operations performed after the init process is started, for example, mounting a device after the driver initialization).
+               "cmds" : []
+           }
+       ],
+       "services" : [{                                                 # Service array. A service corresponds to a process.
+               "name" : "shell",                                       # Service name.
+               "path" : ["/sbin/getty", "-n", "-l", "/bin/sh", "-L", "115200", "ttyS000", "vt100"],    # Full path of the executable file. It must start with "path".
+               "uid" : 0,                                              # Process UID, which must be the same as that in the binary file.
+               "gid" : 0,                                              # Process GID, which must be the same as that in the binary file.
+               "once" : 0,                                             # Whether the process is a one-off process. The value 1 indicates that process is a one-off process, and the value 0 indicates the opposite. The init process does not restart the one-off process after the process exits.
+               "importance" : 0,                                       # Whether the process is a key process. The value 1 indicates a key process, and the value 0 indicates the opposite. If a key process exits, the init process will restart the board.
+               "caps" : [4294967295]
+           }, 
+           ...
+       ]
+   }
+   ```
 
-  This folder contains the  **rcS**,  **S**_xxx_, and  **fstab**  scripts. The  **init**  process runs the  **rcS**,  **fstab**, and  **S**_00_-_xxx_  scripts in sequence before starting system services. The  **S**_xxx_  script contains content related to the development board and product. It is used to create device nodes and directories, scan device nodes, and change file permissions. These scripts are copied from the  **BUILD.gn**  file to the  **out**  directory of the product as required and packaged into the  **rootfs**  image.
+3. **vendor/company/product/init_configs/hals**
 
-- **vendor/company/product/init\_configs/init.cfg**
+   This file contains the OS adaptation of the product. For details about APIs for implementing OS adaptation, see the readme file of each component.
 
-  This file is the configuration file for the  **init**  process to start services. Currently, the following commands are supported:
+4. **vendor/company/product/config.json**
 
-  - **start**: starts a service.
-  - **mkdir**: creates a folder.
-  - **chmod**: changes the permission on a specified directory or file.
-  - **chown**: changes the owner group of a specified directory or file.
-  - **mount**: mounts a device.
+   The **config.json** file is the main entry for the build and contains configurations of the development board, OS, and kernel.
 
-  The fields in the file are described as follows:
+   The following example shows the **config.json** file of the IP camera developed based on the hispark_taurus board:
 
-```
-{
-    "jobs" : [{                                                     # Job array. A job corresponds to a command set. Jobs are executed in the following sequence: pre-init > init > post-init.
-            "name" : "pre-init",
-            "cmds" : [
-                "mkdir /storage/data",                              # Create a directory.
-                "chmod 0755 /storage/data",                         # Change the permission, which is in 0xxx format, for example, 0755.
-                "mkdir /storage/data/log",
-                "chmod 0755 /storage/data/log",
-                "chown 4 4 /storage/data/log",                      # Change the owner group. The first number indicates the UID, and the second indicates the GID.
-                ......
-                "mount vfat /dev/mmcblock0 /sdcard rw, umask=000"    # The command is in the mount [File system type][source] [target] [flags] [data] format.
-                                                                    # Currently, flags can only be nodev, noexec, nosuid, or rdonly.
-            ]
-        }, {
-            "name" : "init",
-            "cmds" : [                                              # Start services based on the sequence of the cmds array.
-                "start shell",                                      # Note that there is only one space between start and the service name.
-                ......
-                "start service1"
+   ```
+   {
+        "product_name": "ipcamera",                       # Product name
+        "version": "3.0",                                 # Version of config.json. The value is 3.0.
+        "type": "small",                                  # System type. The value can be mini, small, or standard.
+        "ohos_version": "OpenHarmony 1.0",                # OS version
+        "device_company": "hisilicon",                    # Chipset vendor
+        "board": "hispark_taurus",                        # Name of the development board
+        "kernel_type": "liteos_a",                        # Kernel type
+        "kernel_version": "3.0.0",                        # Kernel version
+        "subsystems": [                            
+          {
+            "subsystem": "aafwk",                         # Subsystem
+            "components": [
+              { "component": "ability", "features":[ "enable_ohos_appexecfwk_feature_ability = true" ] }   # Selected component and feature configuration
             ]
-        }, {
-            "name" : "post-init",                                   # Job that is finally executed. Operations performed after the init process is started, for example, mounting a device after the driver initialization.
-            "cmds" : []
+          },
+          {
+           ...
+          }
+         ...
+         More subsystems and components
         }
-    ],
-    "services" : [{                                                 # Service array. A service corresponds to a process.
-            "name" : "shell",                                       # Service name
-            "path" : ["/sbin/getty", "-n", "-l", "/bin/sh", "-L", "115200", "ttyS000", "vt100"],    # Full path of the executable file. It must start with "path".
-            "uid" : 0,                                              # Process UID, which must be the same as that in the binary file.
-            "gid" : 0,                                              # Process GID, which must be the same as that in the binary file.
-            "once" : 0,                                             # Whether the process is a one-off process. 1: The proces is a one-off process. The init process does not restart it after the process exits. 0: The process is not a one-off process. The init process restarts it if the process exits.
-            "importance" : 0,                                       # Whether the process is a key process. 1: The process is a key process. If it exits, the init process restarts the board. 0: The process is not a key process. If it exits, the init process does not restart the board.
-            "caps" : [4294967295]
-        }, 
-        ......
-    ]
-}
-```
-
-- **vendor/company/product/init\_configs/hals**
-
-  This file stores the content related to OS adaptation of the product. For details about APIs for implementing OS adaptation, see the readme file of each component.
-
-- **vendor/company/product/config.json**
-
-  The  **config.json**  file is the main entry for the build and contains configurations of the development board, OS components, and kernel.
-
-  The following example shows the  **config.json**  file of the IP camera developed based on the hispark\_taurus development board:
-
-```
-{
-	"product_name": "ipcamera",                       # Product name
-	"version": "3.0",                                 # config.json version, which is 3.0
-    "type": "small",                                  # System type, which can be mini, small, or standard
-	"ohos_version": "OpenHarmony 1.0",                # OS version
-	"device_company": "hisilicon",                    # Chipset vendor
-	"board": "hispark_taurus",                        # Name of the development board
-	"kernel_type": "liteos_a",                        # Kernel type
- 	"kernel_version": "3.0.0",                        # Kernel version
-	"subsystems": [                            
-	  {
-    "subsystem": "aafwk",                         # Subsystem
-	    "components": [
-      { "component": "ability", "features":[ "enable_ohos_appexecfwk_feature_ability = true" ] }   # Component and its features
-	    ]
-	  },
-	  {
-	   ......
-	  }
-	  ......
-  More subsystems and components
-	}
-}
-```
-
-- **vendor/company/product/fs.yml**
-
-  This file packages the build result to create a configuration file system image, for example,  **rootfs.img**  \(user-space root file system\) and  **userfs.img**  \(readable and writable file\). It consists of multiple lists, and each list corresponds to a file system. The fields are described as follows:
-
-```
-fs_dir_name: (Mandatory) declares the name of the file system, for example, rootfs or userfs.
-fs_dirs:     (Optional) configures the mapping between the file directory in the out directory and the system file directory. Each file directory corresponds to a list.
-source_dir:  (Optional) specifies the target file directory in the out directory. If this field is missing, an empty directory will be created in the file system based on target_dir.
-target_dir:  (Mandatory) specifies the corresponding file directory in the file system.
-ignore_files: (Optional) declares ignored files during the copy operation.
-dir_mode:    (Optional) specifies the file directory permission, which is set to 755 by default.
-file_mode: (Optional) declares permissions of all files in the directory, which is set to 555 by default.
-fs_filemode: (Optional) configures files that require special permissions. Each file corresponds to a list.
-file_dir:    (Mandatory) specifies the detailed file path in the file system.
-file_mode:   (Mandatory) declares file permissions.
-fs_symlink:  (Optional) configures the soft link of the file system.
-fs_make_cmd: (Mandatory) creates the file system script. The script provided by the OS is stored in the build/lite/make_rootfs directory. Linux, LiteOS, ext4, jffs2, and vfat are supported. Chipset vendors can also customize the script as required.
-fs_attr:     (Optional) dynamically adjusts the file system based on configuration items.
-```
-
-The  **fs\_symlink**  and  **fs\_make\_cmd**  fields support the following variables:
-
--   $\{root\_path\}
-
-    Code root directory, which corresponds to  **$\{ohos\_root\_path\}**  of GN
-
--   $\{out\_path\}
-
-    **out**  directory of the product, which corresponds to  **$\{root\_out\_dir\}**  of GN
-
--   $\{fs\_dir\}
-
-    File system directory, which consists of the following variables
-
-    -   $\{root\_path\}
-    -   $\{fs\_dir\_name\}
-
->![](../public_sys-resources/icon-note.gif) **NOTE**<br/> 
->**fs.yml**  is optional and does not need to be configured for devices without a file system.
-
-- **vendor/company/product/BUILD.gn**
-
-  This file is the entry for building the source code of the solution vendor and copying the startup configuration file. The  **BUILD.gn**  file in the corresponding product directory will be built by default if a product is selected. The following example shows how to build the  **BUILD.gn**  file of a product:
-
-```
-group("product") { # The target name must be the same as the product name (level-3 directory name under the product directory).
-  deps = []
-  # Copy the init configuration.
-  deps += [ "init_configs" ]
-  # Others
-  ......
-}
-```
-
-
-## Usage Guidelines
+    }
+   ```
+
+5. **vendor/company/product/fs.yml**
+
+   This file defines the process for creating a file system image, for example, **rootfs.img** (user-space root file system) and **userfs.img** (readable and writable file). It consists of multiple lists, and each list corresponds to a file system. The fields are described as follows:
+
+   ```
+   fs_dir_name: (Mandatory) specifies name of the file system, for example, rootfs or userfs.
+   fs_dirs:     (Optional) specifies the mapping between the file directory in the out directory and the system file directory. Each file directory corresponds to a list.
+   source_dir:  (Optional) specifies target file directory in the out directory. If this field is not specified, an empty directory will be created in the file system based on target_dir.
+   target_dir:  (Mandatory) specifies the file directory in the file system.
+   ignore_files: (Optional) declares ignored files during the copy operation.
+   dir_mode:    (Optional) specifies the file directory permissions. The default value is 755.
+   file_mode:   (Optional) specifies the permissions of all files in the directory. The default value is 555.
+   fs_filemode: (Optional) specifies the files that require special permissions. Each file corresponds to a list.
+   file_dir:    (Mandatory) specifies the detailed file path in the file system.
+   file_mode:   (Mandatory) declares file permissions.
+   fs_symlink:  (Optional) specifies the soft link of the file system.
+   fs_make_cmd: (Mandatory) creates the file system script. The script provided by the OS is located in the build/lite/make_rootfs directory. Linux, LiteOS, ext4, jffs2, and vfat are supported. Chipset vendors can also customize the script as required.  
+   fs_attr:     (Optional) dynamically adjusts the file system based on configuration items.
+   ```
+
+   The **fs_symlink** and **fs_make_cmd** fields support the following variables:
+
+   - **${root_path}**: Code root directory, which corresponds to **${ohos_root_path}** of GN.
+   - **${out_path}**: The **out** directory of the product, which corresponds to **${root_out_dir}** of GN.
+   - **${fs_dir}**: File system directory, which consists of variables **${root_path}** and **${fs_dir_name}**.
+
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**<br>
+   > **fs.yml** is optional and not required for devices without a file system.
+
+6. **vendor/company/product/BUILD.gn**
+   
+   This file provides the product built entry. It is used to build the source code of the solution vendor and copy the startup configuration file. The **BUILD.gn** file in the corresponding product directory will be built by default if a product is selected. 
+   
+   The following is an example of the **BUILD.gn** file of a product:
+
+   ```
+   group("product") { # The name must be the same as the product name (level-3 directory name under the product directory).
+     deps = []
+     # Copy the init configuration.
+     deps += [ "init_configs" ]
+     # Others
+     ...
+   }
+   ```
+
+## Guidelines
 
 ### Prerequisites
 
-The development environment has GN, Ninja, Python 3.7.4 or later, and hb available. For details about installation methods, see  [Environment Setup](../quick-start/quickstart-lite-env-setup.md).
+The development environment has GN, Ninja, Python 3.9.2 or later, and hb available. For details about the installation method, see [Setting Up Environments for the Mini and Small Systems](../quick-start/quickstart-lite-env-setup.md).
 
 ### Using hb
 
-**hb**  is a command line tool for OpenHarmony to execute build commands. Common hb commands are described as follows:
+**hb** is an OpenHarmony command line tool for executing build commands. Common hb commands are described as follows:
 
 **hb set**
 
@@ -410,13 +422,15 @@ optional arguments:
   -p, --product         Set OHOS board and kernel
 ```
 
--   **hb set**  \(without argument\): starts the default setting process.
--   **hb set -root** _dir_: sets the root directory of the code.
--   **hb set -p**: sets the product to build.
+- If you run **hb set** with no argument, the default setting process starts.
+
+- You can run **hb set -root** *dir* to set the root directory of the source code.
+
+- You can run **hb set -p** to set the product to build.
 
 **hb env**
 
-Displays the current configuration.
+Displays the current settings.
 
 ```
 hb env
@@ -432,53 +446,62 @@ hb env
 
 ```
 hb build -h
-usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]]
-                [--dmverity] [--tee] [-p PRODUCT] [-f] [-n]
-                [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch]
+usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [-cpu TARGET_CPU] [--dmverity] [--tee]
+                [-p PRODUCT] [-f] [-n] [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] [--compact-mode]
+                [--gn-args GN_ARGS] [--keep-ninja-going] [--build-only-gn] [--log-level LOG_LEVEL] [--fast-rebuild]
+                [--device-type DEVICE_TYPE] [--build-variant BUILD_VARIANT]
                 [component [component ...]]
 
 positional arguments:
-  component             name of the component
+  component             name of the component, mini/small only
 
 optional arguments:
   -h, --help            show this help message and exit
   -b BUILD_TYPE, --build_type BUILD_TYPE
-                        release or debug version
+                        release or debug version, mini/small only
   -c COMPILER, --compiler COMPILER
-                        specify compiler
+                        specify compiler, mini/small only
   -t [TEST [TEST ...]], --test [TEST [TEST ...]]
                         compile test suit
-  --dmverity            Enable dmverity
+  -cpu TARGET_CPU, --target-cpu TARGET_CPU
+                        select cpu
+  --dmverity            enable dmverity
   --tee                 Enable tee
   -p PRODUCT, --product PRODUCT
-                        build a specified product with
-                        {product_name}@{company}, eg: camera@huawei
+                        build a specified product with {product_name}@{company}
   -f, --full            full code compilation
   -n, --ndk             compile ndk
   -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]]
-                        Compile single target
+                        compile single target
   -v, --verbose         show all command lines while building
   -shs, --sign_haps_by_server
                         sign haps by server
   --patch               apply product patch before compiling
-
-  --dmverity            Enable dmverity
-  -p PRODUCT, --product PRODUCT
-                        build a specified product with
-                        {product_name}@{company}, eg: ipcamera@hisilcon
-  -f, --full            full code compilation
-  -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]]
-                        Compile single target
+  --compact-mode        compatible with standard build system set to false if we use build.sh as build entrance
+  --gn-args GN_ARGS     specifies gn build arguments, eg: --gn-args="foo="bar" enable=true blah=7"
+  --keep-ninja-going    keeps ninja going until 1000000 jobs fail
+  --build-only-gn       only do gn parse, donot run ninja
+  --log-level LOG_LEVEL
+                        specifies the log level during compilationyou can select three levels: debug, info and error
+  --fast-rebuild        it will skip prepare, preloader, gn_gen steps so we can enable it only when there is no change
+                        for gn related script
+  --device-type DEVICE_TYPE
+                        specifies device type
+  --build-variant BUILD_VARIANT
+                        specifies device operating mode
 ```
 
--   **hb build**  \(without argument\): builds the code based on the configured code directory, product, and options. The  **-f**  option deletes all products to be built, which is equivalent to running  **hb clean**  and  **hb build**.
--   **hb build** _\{component\_name\}_: builds a product component separately based on the development board and kernel set for the product, for example,  **hb build kv\_store**.
--   **hb build -p ipcamera@hisilicon**: skips the  **set**  step and builds the product directly.
--   You can run  **hb build**  in  **device/device\_company/board**  to select the kernel and start the build based on the current development board and the selected kernel to generate an image that contains the kernel and driver only.
+- If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the build. The **-f** option deletes all products to be built. It is equivalent to running **hb clean** and **hb build**.
+
+- You can run **hb build** *{component_name}* to build product components separately based on the development board and kernel set for the product, for example, **hb build kv_store**.
+
+- You can run **hb build -p ipcamera@hisilicon** to skip the setting step and build the product directly.
+
+- You can run **hb build** in **device/board/device_company** to select the kernel and build an image that contains the kernel and drivers only based on the current development board and the selected kernel.
 
 **hb clean**
 
-You can run  **hb clean**  to clear the build result of the product in the  **out**  directory and retain the  **args.gn**  and  **build.log**  files only. To clear files in a specified directory, add the directory parameter to the command, for example,  **hb clean out/xxx/xxx**.
+You can run **hb clean** to delete all the files except **args.gn** and **build.log** in the **out** directory. To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean out/board/product**. By default, the files in the **out** directory are cleared.
 
 ```
 hb clean
@@ -495,477 +518,462 @@ optional arguments:
 
 To add a component, determine the subsystem to which the component belongs and the component name, and then perform the following steps:
 
-1.  Add the component build script after the source code development is complete.
-
-    The following example adds the  **BUILD.gn**  script \(stored in the  **applications/sample/hello\_world**  directory\) to build the  **hello\_world**  component \(as an executable file\).
+1. Add the component build script after the source code development is complete.
+   
+   The following example shows the **BUILD.gn** script (in the **applications/sample/hello_world** directory) for the **hello_world** executable file.
 
-    ```
-    executable("hello_world") {
-      include_dirs = [
-        "include",
-       ]
-      sources = [
-        "src/hello_world.c"
+   ```
+   executable("hello_world") {
+     include_dirs = [
+       "include",
       ]
-    }
-    ```
-
-    The above script is used to build  **hello\_world**  that can run on OpenHarmony.
-
-    To build the preceding component separately, select a product via the  **hb set**  command and run the  **-T**  command.
-
-    ```
-    hb build -f -T //applications/sample/hello_world
-    ```
-
-    After the component functions are verified on the development board, perform steps 2 to 4 to configure the component to the product.
-
-2.  Add component description.
-
-    The component description is stored in the  **build/lite/components**  directory. New components must be added to the JSON file of the corresponding subsystem. The component description must contain the following fields:
-
-    -   **component**: name of the component
-    -   **description**: brief description of the component
-    -   **optional**: whether the component is optional
-    -   **dirs**: source code directory of the component
-    -   **targets**: component build entry
-
-    For example, to add the  **hello\_world**  component to the application subsystem, add the  **hello\_world**  object to the  **applications.json**  file.
-
-    ```
-    {
-      "components": [
-        {
-          "component": "hello_world",
-          "description": "Hello world.",
-          "optional": "true",
-          "dirs": [
-            "applications/sample/hello_world"
-          ],
-          "targets": [
-            "//applications/sample/hello_world"
-          ]
-        },
-        ...
+     sources = [
+       "src/hello_world.c"
+     ]
+   }
+   ```
+
+   This script can be used to build a file named **hello_world** that can run on OpenHarmony.
+
+   To build the preceding component separately, run **hb set** to select a product and run the following command to build **hello_world** separately.
+
+   ```
+   hb build -f -T //applications/sample/hello_world
+   ```
+
+   After the component functions are verified on the development board, perform steps 2 to 4 to add the component to the product.
+
+2. Add the component description.
+   
+   The component description is stored in the **build/lite/components** directory. Add the new component to the .json file of the corresponding subsystem. The component description must contain the following fields:
+   
+   - **component**: component name.
+   - **description**: description of the component functions.
+   - **optional**: whether the component is optional.
+   - **dirs**: source code directory of the component.
+   - **targets**: component build entry.
+   
+   The following is an example of adding the **hello_world** component to the **applications.json** file.
+
+   ```
+   {
+     "components": [
+       {
+         "component": "hello_world",
+         "description": "Hello world.",
+         "optional": "true",
+         "dirs": [
+           "applications/sample/hello_world"
+         ],
+         "targets": [
+           "//applications/sample/hello_world"
+         ]
+       },
+       ...
+      ]
+   }
+   ```
+
+3. Add the component to the product.
+   
+   The product configuration file **config.json** is located in the **vendor/company/product/** directory. This file contains the product name, OpenHarmony version, device vendor, development board, kernel type, kernel version, subsystems, and components. The following example adds **hello_world** to the **my_product.json** file:
+
+   ```
+   {
+       "product_name": "hello_world_test",
+       "ohos_version": "OpenHarmony 1.0",
+       "device_company": "hisilicon",
+       "board": "hispark_taurus",
+       "kernel_type": "liteos_a",
+       "kernel_version": "1.0.0",
+       "subsystems": [
+         {
+           "subsystem": "applications",
+           "components": [
+             { "component": "hello_world", "features":[] }
+           ]
+         },
+         ...
        ]
-    }
-    ```
-
-3.  Configure the component for the product.
-
-    The  **config.json**  file is stored in the  **vendor/company/product/**  directory. The file must contain the product name, OpenHarmony version, device vendor, development board, kernel type, kernel version, and the subsystem and component to configure. The following example adds the  **hello\_world**  component to the  **my\_product.json**  configuration file:
-
-    ```
-    {
-        "product_name": "hello_world_test",
-        "ohos_version": "OpenHarmony 1.0",
-        "device_company": "hisilicon",
-        "board": "hispark_taurus",
-        "kernel_type": "liteos_a",
-        "kernel_version": "1.0.0",
-        "subsystems": [
-          {
-            "subsystem": "applications",
-            "components": [
-              { "component": "hello_world", "features":[] }
-            ]
-          },
-          ...
-        ]
-    }
-    ```
-
-4.  Build the product.
-
-    1. Run the  **hb set**  command in the root code directory and select the product.
-
-    2. Run the  **hb build**  command.
+   }
+   ```
 
+4. Build the product.
+   
+   1. Run the **hb set** command in the root code directory and select the product.
+   
+   2. Run the **hb build** command.
 
 ### Adding a Chipset Solution
 
 The following uses the RTL8720 development board provided by Realtek as an example. To a chipset solution, perform the following steps:
 
-1.  Create a directory for the chipset solution.
-
-    To create a directory based on [Configuration Rules](#configuration-rules), run the following command in the root code directory:
-
-    ```
-    mkdir -p device/realtek/rtl8720
-    ```
-
-2.  Create a directory for kernel adaptation and build the  **config.gni**  file of the development board.
-
-    For example, to adapt the LiteOS-A kernel to the RTL8720 development board, configure the  **device/realtek/rtl8720/liteos\_a/config.gni**  file as follows:
-
-    ```
-    # Kernel type, e.g. "linux", "liteos_a", "liteos_m".
-    kernel_type = "liteos_a"
-    
-    # Kernel version.
-    kernel_version = "3.0.0"
-    
-    # Board CPU type, e.g. "cortex-a7", "riscv32".
-    board_cpu = "real-m300"
-    
-    # Board arch, e.g. "armv7-a", "rv32imac".
-    board_arch = ""
-    
-    # Toolchain name used for system compiling.
-    # E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang, riscv32-unknown-elf.
-    # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain.
-    board_toolchain = "gcc-arm-none-eabi"
-    
-    # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc.
-    board_toolchain_path =
-        rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin",
-                    root_build_dir)
-    
-    # Compiler prefix.
-    board_toolchain_prefix = "gcc-arm-none-eabi-"
-    
-    # Compiler type, "gcc" or "clang".
-    board_toolchain_type = "gcc"
-    
-    # Board related common compile flags.
-    board_cflags = []
-    board_cxx_flags = []
-    board_ld_flags = []
-    ```
-
-3.  Build the script.
-
-    Create the  **BUILD.gn**  file in the development board directory. The target name must be the same as that of the development board. The content in the  **device/realtek/rtl8720/BUILD.gn**  file is configured as follows:
-
-    ```
-    group("rtl8720") { # The target can be shared_library, static_library, or an executable file.
-      # Content
-      ......
-    }
-    ```
-
-4.  Build the chipset solution.
-
-    Run the  **hb build**  command in the development board directory to start the build.
-
+1. Create a directory for the chipset solution based on the [configuration rules](#chipset-solution).
+   Run the following command in the root directory of the code:
+
+   ```
+   mkdir -p device/board/realtek/rtl8720
+   ```
+
+2. Create a directory for kernel adaptation and write the **config.gni** file of the development board.
+     For example, to adapt the LiteOS-A kernel to the RTL8720 development board, write the **device/realtek/rtl8720/liteo_a/config.gni** file as follows:
+   
+   ```
+   # Kernel type, e.g. "linux", "liteos_a", "liteos_m".
+   kernel_type = "liteos_a"
+   
+   # Kernel version.
+   kernel_version = "3.0.0"
+   
+   # Board CPU type, e.g. "cortex-a7", "riscv32".
+   board_cpu = "real-m300"
+   
+   # Board arch, e.g. "armv7-a", "rv32imac".
+   board_arch = ""
+   
+   # Toolchain name used for system compiling.
+   # E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang, riscv32-unknown-elf.
+   # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain.
+   board_toolchain = "gcc-arm-none-eabi"
+   
+   # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc.
+   board_toolchain_path =
+       rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin",
+                   root_build_dir)
+   
+   # Compiler prefix.
+   board_toolchain_prefix = "gcc-arm-none-eabi-"
+   
+   # Compiler type, "gcc" or "clang".
+   board_toolchain_type = "gcc"
+   
+   # Board related common compile flags.
+   board_cflags = []
+   board_cxx_flags = []
+   board_ld_flags = []
+   ```
+
+3. Write the build script.
+     Create the **BUILD.gn** file in the development board directory. The target name must be the same as that of the development board. The following is an example of the **device/realtek/rtl8720/BUILD.gn** file for the RTL8720 development board:
+   
+   ```
+   group("rtl8720") { # The build target can be shared_library, static_library, or an executable file.
+     # Content
+     ...
+   }
+   ```
+
+4. Build the chipset solution.
+   Run the **hb build** command in the development board directory to start the build.
 
 ### Adding a Product Solution
 
-You can use the Compilation and Building subsystem to customize product solutions by assembling chipset solutions and components. The procedure is as follows:
-
-1.  Create a product directory.
-
-    The following uses the Wi-Fi IoT component on the RTL8720 development board as an example. Run the following command in the root code directory to create a product directory based on  [Configuration Rules](#configuration-rules):
-
-    ```
-    mkdir -p vendor/my_company/wifiiot
-    ```
-
-2.  Assemble the product.
-
-    Create the  **config.json**  file in the product directory. The  **vendor/my\_company/wifiiot/config.json**  file is as follows:
-
-    ```
-    {
-        "product_name": "wifiiot",                        # Product name
-        "version": "3.0",                                 # config.json version, which is 3.0
-        "type": "small",                                  # System type, which can be mini, small, or standard
-        "ohos_version": "OpenHarmony 1.0",                # OS version
-        "device_company": "realtek",                      # Name of the chipset solution vendor
-        "board": "rtl8720",                               # Name of the development board
-        "kernel_type": "liteos_m",                        # Kernel type
-        "kernel_version": "3.0.0",                        # Kernel version
-        "subsystems": [                            
-          {
-            "subsystem": "kernel",                        # Subsystem
-            "components": [
-              { "component": "liteos_m", "features":[] }  # Component and its features
-            ]
-          },
-          ...
-          {
-             More subsystems and components
-          }
-        ]
-    }
-    ```
-
-    Before the build, the Compilation and Building subsystem checks the validity of fields, including  **device\_company**,  **board**,  **kernel\_type**,  **kernel\_version**,  **subsystem**, and  **component**. The  **device\_company**,  **board**,  **kernel\_type**, and  **kernel\_version**  fields must match the current chipset solution, and  **subsystem**  and  **component**  must match the component description in the  **build/lite/components**  file.
-
-3.  Implement adaptation to OS APIs.
-
-    Create the  **hals**  directory in the product directory and store the source code as well as the build script for OS adaptation in this directory.
-
-4.  Configure the system service.
-
-    Create the  **init\_configs**  directory in the product directory and then the  **init.cfg**  file in the newly created directory. Configure the system service to be started.
-
-5.  \(Optional\) Configure the init process only for the Linux kernel.
-
-    Create the  **etc**  directory in the  **init\_configs**  directory, and then the  **init.d**  folder and the  **fstab**  file in the newly created directory. Then, create the  **rcS**  and  **S**_xxx_  files in the  **init.d**  file and edit them based on product requirements.
-
-6.  \(Optional\) Configure the file system image only for the development board that supports the file system.
-
-    Create the  **fs.yml**  file in the product directory and configure it as required. A typical  **fs.yml**  file is as follows:
-
-    ```
-    -
-      fs_dir_name: rootfs # Image name
-      fs_dirs:
-        -
-          # Copy the files in the out/my_board/my_product/bin directory to the rootfs/bin directory and ignore the .bin files related to testing.
-          source_dir: bin
-          target_dir: bin
-          ignore_files:
-            - Test.bin
-            - TestSuite.bin
-        -
-          # Copy the files in the out/my_board/my_product/libs directory to the rootfs/lib directory, ignore all .a files, and set the file permissions to 644 and folder permissions 755.
-          source_dir: libs
-          target_dir: lib
-          ignore_files:
-            - .a
-          dir_mode: 755
-          file_mode: 644
-        -
-          source_dir: usr/lib
-          target_dir: usr/lib
-          ignore_files:
-            - .a
-          dir_mode: 755
-          file_mode: 644
-        -
-          source_dir: config
-          target_dir: etc
-        -
-          source_dir: system
-          target_dir: system
-        -
-          source_dir: sbin
-          target_dir: sbin
-        -
-          source_dir: usr/bin
-          target_dir: usr/bin
-        -
-          source_dir: usr/sbin
-          target_dir: usr/sbin
-        -
-          # Create an empty proc directory.
-          target_dir: proc
-        -
-          target_dir: mnt
-        -
-          target_dir: opt
-        -
-          target_dir: tmp
-        -
-          target_dir: var
-        -
-          target_dir: sys
-        -
-          source_dir: etc
-          target_dir: etc
-        -
-          source_dir: vendor
-          target_dir: vendor
-        -
-          target_dir: storage
-    
-      fs_filemode:
-        -
-          file_dir: lib/ld-uClibc-0.9.33.2.so
-          file_mode: 555
-        -
-          file_dir: lib/ld-2.24.so
-          file_mode: 555
-        -
-          file_dir: etc/init.cfg
-          file_mode: 400
-      fs_symlink:
-        -
-          # Create the soft link ld-musl-arm.so.1 -> libc.so in the rootfs/lib directory.
-          source: libc.so
-          link_name: ${fs_dir}/lib/ld-musl-arm.so.1
-        -
-          source: mksh
-          link_name: ${fs_dir}/bin/sh
-        -
-          source: mksh
-          link_name: ${fs_dir}/bin/shell
-      fs_make_cmd:
-        # Create an ext4 image for the rootfs directory using the script.
-        - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4
-    -
-      fs_dir_name: userfs
-      fs_dirs:
-        -
-          source_dir: storage/etc
-          target_dir: etc
-        -
-          source_dir: data
-          target_dir: data
-      fs_make_cmd:
-        - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4
-    
-    ```
-
-7.  \(Optional\) Configure patches if the product and components need to be patched.
-
-    Create the  **patch.yml**  file in the product directory and configure it as required. A typical  **patch.yml**  file is as follows:
-
-    ```
-    # Directory in which the patch is to be installed
-    foundation/communication/dsoftbus:
-      # Directory in which the patch is stored
-      - foundation/communication/dsoftbus/1.patch
-      - foundation/communication/dsoftbus/2.patch
-    third_party/wpa_supplicant:
-      - third_party/wpa_supplicant/1.patch
-      - third_party/wpa_supplicant/2.patch
-      - third_party/wpa_supplicant/3.patch
-    ...
-    ```
-
-    If you add  **--patch**  when running the  **hb build**  command, the patch file can be added to the specified directory before the build.
+You can customize a product solution by flexibly assembling a chipset solution and components. The procedure is as follows:
+
+1. Create a product directory based on the [configuration rules](#product-solution).
+   The following uses the Wi-Fi IoT module on the RTL8720 development board as an example. Run the following command in the root directory to create a product directory:
+
+   ```
+   mkdir -p vendor/my_company/wifiiot
+   ```
+
+2. Assemble the product.
+     Create a **config.json** file, for example for wifiiot, in the product directory. The **vendor/my_company/wifiiot/config.json** file is as follows:
+   
+   ```
+   {
+       "product_name": "wifiiot",                        # Product name
+       "version": "3.0",                                 # Version of config.json. The value is 3.0.
+       "type": "small",                                  # System type. The value can be mini, small, or standard.
+       "ohos_version": "OpenHarmony 1.0",                # OS version
+       "device_company": "realtek",                      # Name of the chipset solution vendor
+       "board": "rtl8720",                               # Name of the development board
+       "kernel_type": "liteos_m",                        # Kernel type
+       "kernel_version": "3.0.0",                        # Kernel version
+       "subsystems": [                            
+         {
+           "subsystem": "kernel",                        # Subsystem
+           "components": [
+             { "component": "liteos_m", "features":[] }  # Component and its features
+           ]
+         },
+         ...
+         {
+            More subsystems and components
+         }
+       ]
+   }
+   ```
+
+   > ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**<br/>
+   > Before the build, the Compilation and Building subsystem checks the validity of fields in **config.json**. The **device_company**, **board**, **kernel_type**, and **kernel_version** fields must match the fields of the chipset solution, and **subsystem** and **component** must match the component description in the **build/lite/components** file.
+
+3. Implement adaptation to OS APIs.
+   Create the **hals** directory in the product directory and save the source code as well as the build script for OS adaptation in this directory.
+
+4. Configure system services.
+   Create the **init_configs** directory in the product directory and then the **init.cfg** file in the **init_configs** directory, and configure the system services to be started.
+
+5. (Optional) Configure the init process for the Linux kernel.
+   Create the **etc** directory in the **init_configs** directory, and then the **init.d** folder and the **fstab** file in the **etc** directory. Then, create the **rcS** and **S***xxx* files in the **init.d** file and edit them based on product requirements.
+
+6. (Optional) Configure the file system image for the development board that supports the file system.
+   
+   Create a **fs.yml** file in the product directory and configure it as required. A typical **fs.yml** file is as follows:
+   
+   ```
+   -
+     fs_dir_name: rootfs # Image name
+     fs_dirs:
+       -
+         # Copy the files in the out/my_board/my_product/bin directory to the rootfs/bin directory and ignore the .bin files related to testing.
+         source_dir: bin
+         target_dir: bin
+         ignore_files:
+           - Test.bin
+           - TestSuite.bin
+       -
+         # Copy the files in the out/my_board/my_product/libs directory to the rootfs/lib directory, ignore all .a files, and set the file permissions to 644 and folder permissions 755.
+         source_dir: libs
+         target_dir: lib
+         ignore_files:
+           - .a
+         dir_mode: 755
+         file_mode: 644
+       -
+         source_dir: usr/lib
+         target_dir: usr/lib
+         ignore_files:
+           - .a
+         dir_mode: 755
+         file_mode: 644
+       -
+         source_dir: config
+         target_dir: etc
+       -
+         source_dir: system
+         target_dir: system
+       -
+         source_dir: sbin
+         target_dir: sbin
+       -
+         source_dir: usr/bin
+         target_dir: usr/bin
+       -
+         source_dir: usr/sbin
+         target_dir: usr/sbin
+       -
+         # Create an empty proc directory.
+         target_dir: proc
+       -
+         target_dir: mnt
+       -
+         target_dir: opt
+       -
+         target_dir: tmp
+       -
+         target_dir: var
+       -
+         target_dir: sys
+       -
+         source_dir: etc
+         target_dir: etc
+       -
+         source_dir: vendor
+         target_dir: vendor
+       -
+         target_dir: storage
+   
+     fs_filemode:
+       -
+         file_dir: lib/ld-uClibc-0.9.33.2.so
+         file_mode: 555
+       -
+         file_dir: lib/ld-2.24.so
+         file_mode: 555
+       -
+         file_dir: etc/init.cfg
+         file_mode: 400
+     fs_symlink:
+       -
+         # Create the soft link ld-musl-arm.so.1 -> libc.so in the rootfs/lib directory.
+         source: libc.so
+         link_name: ${fs_dir}/lib/ld-musl-arm.so.1
+       -
+         source: mksh
+         link_name: ${fs_dir}/bin/sh
+       -
+         source: mksh
+         link_name: ${fs_dir}/bin/shell
+     fs_make_cmd:
+       # Run the script to create an ext4 image from rootfs.
+       - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4
+   -
+     fs_dir_name: userfs
+     fs_dirs:
+       -
+         source_dir: storage/etc
+         target_dir: etc
+       -
+         source_dir: data
+         target_dir: data
+     fs_make_cmd:
+       - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4
+   
+   ```
+   
+7. (Optional) Configure patches if the product and components need to be patched.
+
+   Create a **patch.yml** file in the product directory and configure it as required. A typical **patch.yml** file is as follows:
+
+   ```
+   # Directory in which the patch is to be installed
+   foundation/communication/dsoftbus:
+     # Directory in which the patch is stored.
+     - foundation/communication/dsoftbus/1.patch
+     - foundation/communication/dsoftbus/2.patch
+   third_party/wpa_supplicant:
+     - third_party/wpa_supplicant/1.patch
+     - third_party/wpa_supplicant/2.patch
+     - third_party/wpa_supplicant/3.patch
+   ...
+   ```
+
+
+     Add **--patch** when running the **hb build** command. Then, the patch files can be added to the specified directory before the build.
 
     ```
     hb build -f --patch
     ```
 
-8.  Build the script.
-
-    Create the  **BUILD.gn**  file in the product directory and write the script. The following  **BUILD.gn**  file uses the Wi-Fi IoT component in  [1](#li1970321162111)  as an example:
-
-    ```
-    group("wifiiot") { # The target name must be the same as the product name.
-      deps = []
-      # Copy the init configuration.
-      deps += [ "init_configs" ]
-      # Build the hals directory.
-      deps += [ "hals" ]
-      # Others
-      ......
-    }
-    ```
+8. Write the build script.
+   Create a **BUILD.gn** file in the product directory and write the script. The following **BUILD.gn** file uses the Wi-Fi IoT module in step 1 as an example:
 
-9.  Build the product.
+   ```
+   group("wifiiot") { # The target name must be the same as the product name.
+     deps = []
+     # Copy the init configuration.
+     deps += [ "init_configs" ]
+     # Add **hals**.
+     deps += [ "hals" ]
+     # Others
+     ...
+   }
+   ```
 
-    Run the  **hb set**  command in the code root directory, select the new product as prompted, and run the  **hb build**  command.
+9. Build the product.
+   Run the **hb set** command in the code root directory, select the new product as prompted, and run the **hb build** command.
 
 
 ## Troubleshooting
 
-### Invalid -- w Option
-
--   **Symptom**
-
-    The build fails, and "usr/sbin/ninja: invalid option -- w" is displayed.
-
--   **Cause**
-
-    The Ninja version in the build environment is outdated and does not support the  **--w**  option.
+### "usr/sbin/ninja: invalid option -- w" Displayed During the Build Process
 
--   **Solution**
+- **Symptom**
+  
+  The build fails, and **usr/sbin/ninja: invalid option -- w** is displayed.
 
-    Uninstall Ninja and GN and follow the instructions provided in  [IDE](../get-code/gettools-ide.md)  to install Ninja and GN of the required version.
+- **Possible Causes**
+  
+  The Ninja version in use does not support the **--w** option.
 
+- **Solution**
+  
+  Uninstall Ninja and GN, and [install Ninja and GN of the required version](../get-code/gettools-ide.md).
 
-### Library ncurses Not Found
+### "/usr/bin/ld: cannot find -lncurses" Displayed During the Build Process
 
--   **Symptom**
+- **Symptom**
+  
+  The build fails, and **/usr/bin/ld: cannot find -lncurses** is displayed.
 
-    The build fails, and "/usr/bin/ld: cannot find -lncurses" is displayed.
+- **Possible Causes**
+  
+  The ncurses library is not installed.
 
--   **Cause**
+- **Solution**
+  
+   ```
+  sudo apt-get install lib32ncurses5-dev
+  ```
 
-    The ncurses library is not installed.
+### "line 77: mcopy: command not found" Displayed During the Build Process
 
--   **Solution**
+- **Symptom**
+  
+  The build fails, and **line 77: mcopy: command not found** is displayed.
 
-    ```
-    sudo apt-get install lib32ncurses5-dev
-    ```
-
-
-### mcopy not Found
+- **Possible Causes**
+  
+  mcopy is not installed.
 
--   **Symptom**
+- **Solution**
+  
+  ```
+  sudo apt-get install dosfstools mtools
+  ```
 
-    The build fails, and "line 77: mcopy: command not found" is displayed.
+### "riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory" Displayed During the Build Process
 
--   **Cause**
+- **Symptom**
+  
+  The build fails, and the following information is displayed: <br>**riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory**
 
-    mcopy is not installed.
-
--   **Solution**
-
-    ```
-    sudo apt-get install dosfstools mtools
-    ```
+- **Possible Causes**
+  
+  Permission is required to access files in the RISC-V compiler directory.
 
+- **Solution**
 
-### No riscv File or Directory
+  1. Run the following command to locate **gcc_riscv32**:
 
--   **Symptom**
+  ```
+      which riscv32-unknown-elf-gcc
+  ```
 
-    The build fails, and the following information is displayed:
+  2. Run the **chmod** command to change the directory permission to **755**.
 
-    riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory.
-
--   **Cause**
-
-    Permission is required to access files in the  **riscv**  compiler directory.
-
--   **Solution**
-
-    Run the following command to query the directory where  **gcc\_riscv32**  is located:
-
-    ```
-    which riscv32-unknown-elf-gcc
-    ```
+ 
 
-    Run the  **chmod**  command to change the directory permission to  **755**.
+  
 
+### "No module named 'Crypto'" Displayed During the Build Process
 
-### No Crypto
+- **Symptom**
+  
+  The build fails, and **No module named 'Crypto'** is displayed.
 
--   **Symptom**
+- **Possible Causes**
+  
+  Crypto is not installed in Python 3.
 
-    The build fails, and "No component named 'Crypto'" is displayed.
+- **Solution**
+  
+  1. Run the following command to query the Python version:
+     
+     ```
+     python3 --version
+     ```
+  
+  2. Ensure that Python 3.9.2 or later is installed, and then run the following command to install PyCryptodome:
+     
+     ```
+     sudo pip3 install pycryptodome
+     ```
 
--   **Cause**
+### "xx.sh : xx unexpected operator" Displayed During the Build Process
 
-    Crypto is not installed in Python 3.
+- **Symptom**
+  
+  The build fails, and **xx.sh [: xx unexpected operator** is displayed.
 
--   **Solution**
-    1.  Run the following command to query the Python version:
-
-        ```
-        python3 --version
-        ```
-
-    2.  Ensure that Python 3.7 or later is installed, and then run the following command to install pycryptodome:
-
-        ```
-        sudo pip3 install pycryptodome
-        ```
-
-
-
-### Unexpected Operator
-
--   **Symptom**
-
-    The build fails, and "xx.sh \[: xx unexpected operator" is displayed.
-
--   **Cause**
-
-    The build environment is shell, not bash.
-
--   **Solution**
-
-    ```
-    sudo rm -rf /bin/sh
-    sudo ln -s /bin/bash /bin/sh
-    ```
+- **Possible Causes**
+  
+  The build environment shell is not bash.
 
+- **Solution**
+  
+  ```
+  sudo rm -rf /bin/sh
+  sudo ln -s /bin/bash /bin/sh
+  ```
diff --git a/en/device-dev/subsystems/subsys-build-standard-large.md b/en/device-dev/subsystems/subsys-build-standard-large.md
index 588d41c97447e31a06b67f21e226f27e00183efe..d1f3eb9fd89a82aee966221853706f0d7562e776 100644
--- a/en/device-dev/subsystems/subsys-build-standard-large.md
+++ b/en/device-dev/subsystems/subsys-build-standard-large.md
@@ -1,226 +1,813 @@
-# Building the Standard System<a name="EN-US_TOPIC_0000001076490572"></a>
+# Building the Standard System
 
-## Overview<a name="section17466112012244"></a>
+## Overview
 
-The compilation and building subsystem provides a framework based on Generate Ninja \(GN\) and Ninja. This subsystem allows you to:
+The Compilation and Building subsystem provides a build framework based on Generate Ninja (GN) and Ninja. This subsystem allows you to:
 
--   Build products based on different chipset platforms, for example, Hi3516D V300.
+- Build products based on different chipset platforms, for example, hispark_taurus_standard.
 
--   Package capabilities required by a product by assembling modules based on the product configuration.
+- Package capabilities required by a product by assembling components based on the product configuration.
 
-### Basic Concepts<a name="section445513507246"></a>
+### Basic Concepts
 
-It is considered best practice to learn the following basic concepts before you start building:
+Learn the following basic concepts before you start:
 
--   **Platform**
+- Platform
+  
+  A platform consists of the development board and kernel. The supported subsystems and components vary with the platform.
 
-    A platform is a combination of development boards and kernels.
+- Subsystem
+  
+  OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from the bottom up. System functions are developed by levels, from system to subsystem and then to component. In a multi-device deployment scenario, you can customize subsystems and components as required. A subsystem, as a logical concept, consists of the least required components.
 
-    Supported subsystems and modules vary according to the platform.
+- Component
+  
+  A component is a reusable software unit that contains source code, configuration files, resource files, and build scripts. Integrated in binary mode, a component can be built and tested independently.
 
--   **Subsystems**
+- GN
+  
+  GN is short for Generate Ninja. It is used to build Ninja files.
 
-    OpenHarmony is designed with a layered architecture, which from bottom to top consists of the kernel layer, system service layer, framework layer, and application layer. System functions are expanded by levels, from system to subsystem, and further to module. In a multi-device deployment scenario, unnecessary subsystems and modules can be excluded from the system as required. A subsystem is a logical concept and is a flexible combination of functions.
+- Ninja
+  
+  Ninja is a small high-speed building system.
 
--   **Module**
+### Working Principles
 
-    A module is a reusable software binary unit that contains source code, configuration files, resource files, and build scripts. A module can be built independently, integrated in binary mode, and then tested independently.
+The process for building an OpenHarmony system is as follows:
 
--   **GN**
+- Parsing commands: Parse the name of the product to build and load related configurations.
 
-    GN is short for Generate Ninja, which is used to generate Ninja files.
+- Running GN: Configure the toolchain and global options based on the product name and compilation type.
 
--   **Ninja**
+- Running Ninja: Start building and generate a product distribution.
 
-    Ninja is a small high-speed build system.
+### Constraints
 
+- You need to obtain the source code using method 3 described in [Obtaining Source Code](../get-code/sourcecode-acquire.md).
 
-### Working Principles<a name="section12541217142510"></a>
+- Ubuntu 18.04 or later must be used.
 
-The process to build OpenHarmony is as follows:
+- You must install the software packages required for build.
+    The command is as follows:
+  
+  ```
+  # Run the script in the home directory.
+  # ./build/build_scripts/env_setup.sh
+  # Do not run the command as the **root** user. Otherwise, the environment variables will be added to the **root** user. If your **shell** is not **bash** or **Zsh**, you need to manually configure the following content to your environment variables after the execution. To view your environment variables, run the **cd** command to go to your home directory and view the hidden files.
+  # export PATH=/home/tools/llvm/bin:$PATH
+  # export PATH=/home/tools/hc-gen:$PATH
+  # export PATH=/home/tools/gcc_riscv32/bin:$PATH
+  # export PATH=/home/tools/ninja:$PATH
+  # export PATH=/home/tools/node-v12.20.0-linux-x64/bin:$PATH
+  # export PATH=/home/tools/gn:$PATH
+  # export PATH=/root/.local/bin:$PATH
+  
+  # If you do not need to run the script, you need to install the following:
+  apt-get update -y 
+  apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9.2 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev 
+  apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools  pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 python2.7 gcc-arm-none-eabi vim ssh locales doxygen
+  # Install the following modules for Python:
+  chmod +x /usr/bin/repo 
+  pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyaml prompt_toolkit==1.0.14 redis json2html yagmail python-jenkins 
+  pip3 install esdk-obs-python --trusted-host pypi.org 
+  pip3 install six --upgrade --ignore-installed six
+  #You also need to install LLVM, hc-gen, gcc_riscv32, Ninja, node-v14.15.4-linux-x64, and GN, and import the non-bash or non-Zsh configuration in the shell to your environment variables.
+  ```
 
--   Parsing commands: Parse the name of the product to build and load related configurations.
--   Running GN: Configure toolchains and global options based on the parsed product name and compilation type.
--   Running Ninja: Start building and generate a product distribution.
 
-### Limitations and Constraints<a name="section886933762513"></a>
 
--   You must download the source code using method 3 described in  [Source Code Acquisition](../get-code/sourcecode-acquire.md).
--   The build environment must be Ubuntu 18.04 or later.
--   You must install the software package required for build.
+## Building Guidelines
 
-    The installation command is as follows:
+### Directory Structure
 
-    ```
-    sudo apt-get install binutils git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4
-    ```
+```
 
+/build                          # Directory for build
 
-## Compilation and Building Guidelines<a name="section16901215262"></a>
+├── __pycache__                   
+├── build_scripts/               # Python scripts for build
+├── common/                      
+├── config/                      # Build-related configurations
+├── core
+│   └── gn/                      # BUILD.gn configuration
+    └── build_scripts/           
+├── docs                          
+gn_helpers.py*                    
+lite/                            # hb and preloader entry                     
+misc/
+├── ohos                         # Process for building and packaging OpenHarmony
+│   ├── kits                     # Kits build and packaging templates and processing
+│   ├── ndk                      # NDK templates and processing
+│   ├── notice                   # Notice templates and processing
+│   ├── packages                 # Distribution packaging templates and processing
+│   ├── sa_profile               # SA profiles and processing
+│   ├── sdk                      # SDK templates and processing, which contains the module configuration in the SDK
+│   └── testfwk                  # Testing-related processing
+├── ohos.gni*                    # Common .gni files for importing a module at a time.
+├── ohos_system.prop             
+├── ohos_var.gni*                 
+├── prebuilts_download.sh*        
+├── print_python_deps.py*         
+├── scripts/                      
+├── subsystem_config.json         
+├── subsystem_config_example.json 
+├── templates/                   # C/C++ build templates
+├── test.gni*                     
+├── toolchain                    # Build toolchain configuration
+├── tools                        # Common tools
+├── version.gni                   
+├── zip.py*                       
 
-### Directory Structure<a name="section109065332264"></a>
 
-```
-/build                           # Primary directory
-├── config                       # Build configuration items
-├── core
-│   └── gn                       # Build entry BUILD.gn configuration
-├── loader                       # Loader of module configuration, which also generates a template for the module
-├── ohos                         # Configuration of the process for building and packaging OpenHarmony
-│   ├── kits                     # Build and packaging templates and processing flow for kits
-│   ├── ndk                      # NDK template and processing flow
-│   ├── notice                   # Notice template and processing flow
-│   ├── packages                 # Distribution packaging template and processing flow
-│   ├── sa_profile               # SA template and processing flow
-│   ├── sdk                      # SDK template and processing flow, which contains the module configuration in the SDK
-│   └── testfwk                  # Processing flow related to the test
-├── scripts                      # Build-related Python script
-├── templates                    # C/C++ build templates
-└── toolchain                    # Toolchain configuration
 ```
 
-### Build Command<a name="section123265539266"></a>
+### Build Command
 
--   Run the following command in the root directory of the source code to build the full distribution:
+- Run the following command in the root directory of the source code to build a full distribution:
 
-    ```
-    ./build.sh --product-name {product_name}
-    ```
+  ```
 
-    **product\_name**  indicates the product supported by the current distribution, for example, hispark_taurus_standard.
+  ./build.sh --product-name {product_name}
+  
+  ```
 
-    The image generated after build is stored in the  **out/{device_name}/packages/phone/images/**  directory.
+  **{product_name}** specifies the product platform supported by the current distribution, for example, **hispark_taurus_standard**.
 
--   The build command supports the following options:
+  The image generated is stored in the **out/{device_name}/packages/phone/images/** directory.
 
-    ```
-      --product-name    # (Mandatory) Name of the product to build, for example, Hi3516D V300
-      --build-target    # (Optional) One or more build targets
-      --gn-args         # (Optional) One or more gn parameters
-      --ccache          # (Optional) Use of Ccache for build. This option takes effect only when Ccache is installed on the local PC.
-    ```
+- The **./build.sh** command supports the following options:
 
+  ```
+  -h, --help                                        # Display help information and exit.
+  --source-root-dir=SOURCE_ROOT_DIR                 # Specify the path.
+  --product-name=PRODUCT_NAME                       # Specify the product name.
+  --device-name=DEVICE_NAME                         # Specify the device name.
+  --target-cpu=TARGET_CPU                           # Specify the CPU.
+  --target-os=TARGET_OS                             # Specify the operating system.
+  -T BUILD_TARGET, --build-target=BUILD_TARGET      # specifies one or more targets to build.
+  --gn-args=GN_ARGS                                 # Specify GN parameters.
+  --ninja-args=NINJA_ARGS                           # Specify Ninja parameters. 
+  -v, --verbose                                     # Display all commands used.
+  --keep-ninja-going                                # Keep Ninja going until 1,000,000 jobs fail.
+  --sparse-image
+  --jobs=JOBS
+  --export-para=EXPORT_PARA
+  --build-only-gn                                   # Perform GN parsing and does not run Ninja.
+  --ccache                                          # (Optional) Use ccache for build. You need to install ccache locally.
+  --fast-rebuild                                    # Whether to use fast rebuild. The default value is False.
+  --log-level=LOG_LEVEL                             # Specify the log level during the build. The options are debug, info, and error. The default value is info.
+  --device-type=DEVICE_TYPE                         # Specify the device type. The default value is default.
+  --build-variant=BUILD_VARIANT                     # Specify the device operation mode. The default value is user.
 
-### How to Develop<a name="section591084422719"></a>
+  ```
 
-1.  Add a module.
+### How to Develop
 
-    The following steps use a custom module as an example to describe how to build the module, including build a library, an executable file, and a configuration file.
+1. Add a component.
+   
+   The following use a custom component as an example to describe how to write .gn scripts for a library, an executable file, and a configuration file.
+   
+   In this example, **partA** consists of **feature1**, **feature2**, and **feature3**, which represent a dynamic library, an executable file, and an etc configuration file, respectively.
+   
+   Add **partA** to a subsystem, for example, **subsystem_examples** (defined in the **test/examples/** directory).
+   
 
-    The example module  **partA**  consists of  **feature1**,  **feature2**, and  **feature3**. The target is a dynamic library for  **feature1**, an executable file for  **feature2**, and an etc configuration file for  **feature3**.
+The directory structure of **partA** is as follows:
 
-    Add  **partA**  to a subsystem, for example,  **subsystem\_examples**  \(defined in the  **test/examples/**  directory\).
+```
+   
+   test/examples/partA
+   ├── feature1
+   │   ├── BUILD.gn
+   │   ├── include
+   │   │   └── helloworld1.h
+   │   └── src
+   │       └── helloworld1.cpp
+   ├── feature2
+   │   ├── BUILD.gn
+   │   ├── include
+   │   │   └── helloworld2.h
+   │   └── src
+   │       └── helloworld2.cpp
+   └── feature3
+       ├── BUILD.gn
+       └── src
+        └── config.conf
+   
+```
 
-    The complete directory structure of  **partA**  is as follows:
+(a) Write **test/examples/partA/feature1/BUILD.gn** for the dynamic library.
 
-    ```
-    test/examples/partA
-    ├── feature1
-    │   ├── BUILD.gn
-    │   ├── include
-    │   │   └── helloworld1.h
-    │   └── src
-    │       └── helloworld1.cpp
-    ├── feature2
-    │   ├── BUILD.gn
-    │   ├── include
-    │   │   └── helloworld2.h
-    │   └── src
-    │       └── helloworld2.cpp
-    └── feature3
-        ├── BUILD.gn
-        └── src
-            └── config.conf
-    ```
+```
+   
+   config("helloworld_lib_config") {
+    include_dirs = [ "include" ]
+}
+   
+   ohos_shared_library("helloworld_lib") {
+     sources = [
+       "include/helloworld1.h",
+       "src/helloworld1.cpp",
+     ]
+     public_configs = [ ":helloworld_lib_config" ]
+     part_name = "partA"
+}
+   
+```
 
-    Example 1: GN script \(**test/examples/partA/feature1/BUILD.gn**\) for building a dynamic library
+(b) Write **test/examples/partA/feature2/BUILD.gn** for the executable file.
 
-    ```
-    config("helloworld_lib_config") {
+```
+   
+   ohos_executable("helloworld_bin") {
+     sources = [
+       "src/helloworld2.cpp"
+     ]
      include_dirs = [ "include" ]
-    }
-    
-    ohos_shared_library("helloworld_lib") {
-      sources = [
-        "include/helloworld1.h",
-        "src/helloworld1.cpp",
+     deps = [                                # Dependent modules in the component
+       "../feature1:helloworld_lib"
+     ]
+     external_deps = [ "partB:module1" ]     # (Optional) Dependent modules of another component are named in Component name:Module name format.
+     install_enable = true                   # By default, the executable file is not installed. You need to set this parameter to true for installation.
+     part_name = "partA"
+}
+   
+```
+
+(c) Write **test/examples/partA/feature3/BUILD.gn** for the etc module.
+
+```
+   
+   ohos_prebuilt_etc("feature3_etc") {
+     source = "src/config.conf"
+     relative_install_dir = "init"    # (Optional) Relative directory for installing the module. The default installation directory is **/system/etc**.
+     part_name = "partA"
+}
+   
+```
+
+   (d) Add the module configuration **test/examples/bundle.json** to the **bundle.json** file of the component. Each component has a **bundle.json** file in the root directory of the component. The sample code is as follows:
+
+   ```
+   {
+       "name": "@ohos/<component_name>,                # OpenHarmony Package Manager (HPM) component name, in the "@Organization/Component name" format.
+       "description": "xxxxxxxxxxxxxxxxxxx",           # Description of the component functions.
+       "version": "3.1",                               # Version, which must be the same as the version of OpenHarmony.
+       "license": "MIT",                               # Component license.
+       "publishAs": "code-segment",                    # Mode for publishing the HPM package. The default value is code-segment.
+       "segment": {
+           "destPath": ""
+       },                                              # Set the code restoration path (source code path) when publishAs is code-segment.
+       "dirs": {},                                     # Directory structure of the HPM package. This field is mandatory and can be left empty.
+       "scripts": {},                                  # Scripts to be executed. This field is mandatory and can be left empty.
+       "licensePath": "COPYING",                       # Path of the module's license.
+       "readmePath": {
+           "en": "README.rst"
+       },                                              # Path of module's reademe.opensource.
+       "component": {                                  # Component attributes.
+           "name": "<component_name>",                 # Component name.
+           "subsystem": "",                            # Subsystem to which the component belongs.
+           "syscap": [],                               # System capabilities provided by the component for applications.
+           "features": [],                             # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured.
+           "adapted_system_type": [],                  # Adapted system types, which can be mini, small, and standard. Multiple values are allowed.
+           "rom": "xxxKB"                              # ROM baseline. If there is no baseline, enter the current value.
+           "ram": "xxxKB",                             # RAM baseline. If there is no baseline, enter the current value.
+           "deps": {
+               "components": [],                       # Other components on which this component depends.
+               "third_party": []                       # Third-party open-source software on which this component depends.
+           },
+           "build": {                                  # Build-related configurations.
+               "sub_component": [],                    # Component build entry. Configure the module here.
+               "inner_kits": [],                       # APIs between components.
+               "test": []                              # Entry for building the component's test cases.
+           }
+       }
+   }
+   ```
+
+2. Add the component to the product configuration file.
+   Add the component to **//vendor/{*product_company*}/{*product-name*}/config.json**.
+
+   For example, add "subsystem_examples:partA" to the product **config.json** file. **partA** will be built and packaged into the distribution.
+
+3. Start the build.
+   For example, run the following command to build **hispark_taurus_standard**:
+
+   ```
+   
+   ./build.sh --product-name hispark_taurus_standard --ccache
+   
+   ```
+
+4. Obtain the build result.
+   You can obtain the generated files from the **out/hispark_taurus/** directory and the image in the **out/hispark_taurus/packages/phone/images/** directory.
+
+## FAQs
+
+### How Do I Build a Module and Package It into a Distribution?
+
+- Set **part_name** for the module. A module can belong to only one part.
+
+- Add the module to **component.build.sub_component** of the component, or define the dependency between the module and the modules in **component.build.sub_component**.
+
+- Add the component to the component list of the product.
+
+### How Do I Set deps and external_deps?
+
+When adding a module, you need to declare its dependencies in **BUILD.gn**. **deps** specifies dependent modules in the same component, and **external_deps** specifies dependent modules between components.
+
+The dependency between modules can be classified into:
+
+**deps**: The dependent module to be added belongs to the same component with the current module. For example, module 2 depends on module 1, and modules 1 and 2 belong to the same component.
+
+**external_deps**: The dependent module to be added belongs to another component. For example, module 2 depends on module 1, and modules 1 and 2 belong to different components.
+
+- Example of **deps**:
+
+   ```
+   import("//build/ohos.gni")
+   ohos_shared_library("module1") {
+     ...
+     part_name = "part1"   # (Mandatory) Name of the component to which the module belongs.
+     ...
+   }
+   ```
+
+   ```
+   import("//build/ohos.gni")
+   ohos_shared_library("module2") {
+     ...
+     deps = [
+       "GN target of module 1",
+     ...
+    ]                      # Intra-component dependency
+   part_name = "part1"   # (Mandatory) Name of the part to which the module belongs.
+   }
+   ```
+
+- Example of **external_deps**:
+
+   ```
+   import("//build/ohos.gni")
+   ohos_shared_library("module1") {
+     ...
+     part_name = "part1"   # (Mandatory) Name of the component to which the module belongs.
+     ...
+   }
+   ```
+
+- **bundle.json** file of the component to which module 1 belongs
+
+   ```
+   {
+       "name": "@ohos/<component_name>",             # HPM component name, in the "@Organization/Component name" format.
+       "description": "xxxxxxxxxxxxxxxx",            # Description of the component functions.
+       "version": "3.1",                             # Version, which must be the same as the version of OpenHarmony.
+       "license": "MIT",                             # Component license.
+       "publishAs": "code-segment",                  # Mode for publishing the HPM package. The default value is code-segment.
+       "segment": {
+           "destPath": ""
+       },                                           # Code restoration path (source code path) when publishAs is code-segment.
+       "dirs": {},                                  # Directory structure of the HPM package. This field is mandatory and can be left empty.
+       "scripts": {},                               # Scripts to be executed. This field is mandatory and can be left empty.
+       "licensePath    "licensePath": "COPYING",
+   ": "COPYING",
+       "readmePath": {
+       "en": "README.rst"
+       },
+       "component": {                               # Component attributes.
+           "name": "<component_name>",              # Component name.
+           "subsystem": "",                         # Subsystem to which the component belongs.
+           "syscap": [],                            # System capabilities provided by the component for applications.
+           "features": [],                          # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured.
+           "adapted_system_type": [],               # Adapted system types, which can be mini, small, and standard. Multiple values are allowed.
+           "rom": "xxxKB"                           # ROM baseline. If there is no baseline, enter the current value.
+           "ram": "xxxKB",                          # RAM baseline. If there is no baseline, enter the current value.
+           "deps": {
+               "components": [],                    # Other components on which this component depends.
+               "third_party": []                    # Third-party open-source software on which this component depends.
+           },
+           "build": {                                # Build-related configurations.
+               "sub_component": ["part1"],           # Component build entry. All modules of the component are listed here.
+               "inner_kits": [],                    # APIs between components.
+           {
+             "header": {
+               "header_base": "Header file directory",       # Directory of the header files.
+               "header_files": [
+                   "Header file name"
+                 ]                                   # List of header file names.
+               },
+               "name": "GN target of module 1"
+           },
+         ],
+               "test": []                            # Entry for building the component's test cases.
+           }
+       }
+   }
+   ```
+
+   ```
+   import("//build/ohos.gni")
+   ohos_shared_library("module2") {
+     ...
+     external_deps = [
+       "part1:module1",
+     ...
+     ]                      # Inter-component dependency. The dependent module must be declared in **inner_kits** by the dependent component.
+     part_name = "part2"    # (Mandatory) Name of the component to which the module belongs.
+   }
+
+   ```
+
+> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**<br/>
+> The values of **external_deps** are in the *Component name*:*Module name* format. The module name must exist in **inner_kits** of the dependent component.
+
+
+
+
+
+### How Do I Add a Module to a Standard System?
+
+You may need to:
+
+- Add a module to an existing component.
+
+- Add a module to a new component.
+
+- Add a module to a new subsystem.
+
+#### Adding a Module to an Existing Component
+
+1. Configure the **BUILD.gn** file in the module directory and select the corresponding template.
+   
+   Follow the procedure for adding a module to an existing component. Note that **part_name** in the **BUILD.gn** file is the name of the existing component.
+2. Modify the **bundle.json** file. "GN target of the module in the component"
+
+   ```
+   {
+       "name": "@ohos/<component_name>,                # HPM component name, in the "@Organization/Component name" format.
+       "description": "xxxxxxxxxxxxxxxxxxx",           # Description of the component functions.
+       "version": "3.1",                               # Version, which must be the same as the version of OpenHarmony.
+       "license": "MIT",                               # Component license.
+       "publishAs": "code-segment",                    # Mode for publishing the HPM package. The default value is code-segment.
+       "segment": {
+           "destPath": "third_party/nghttp2"
+       },                                              # Code restoration path (source code path) when publishAs is code-segment.
+       "dirs": {},                                     # Directory structure of the HPM package. This field is mandatory and can be left empty.
+       "scripts": {},                                  # Scripts to be executed. This field is mandatory and can be left empty.
+       "licensePath": "COPYING",
+       "readmePath": {
+           "en": "README.rst"
+       },
+       "component": {                                  # Component attributes.
+           "name": "<component_name>",                 # Component name.
+           "subsystem": "",                            # Subsystem to which the component belongs.
+           "syscap": [],                               # System capabilities provided by the component for applications.
+           "features": [],                             # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured.
+           "adapted_system_type": [],                  # Adapted system types, which can be mini, small, and standard. Multiple values are allowed.
+           "rom": "xxxKB"                              # ROM baseline. If there is no baseline, enter the current value.
+           "ram": "xxxKB",                             # RAM baseline. If there is no baseline, enter the current value.
+           "deps": {
+               "components": [],                       # Other components on which this component depends.
+               "third_party": []                       # Third-party open-source software on which this component depends.
+           },
+        
+           "build": {                                            # Build-related configurations
+               "sub_component": [
+                   "//foundation/arkui/napi:napi_packages",      # Existing module 1
+                   "//foundation/arkui/napi:napi_packages_ndk"   # Existing module 2
+                   "//foundation/arkui/napi:new"                 # Module to add
+               ],                                                # Component build entry. Configure the module here.
+               "inner_kits": [],                                 # APIs between components
+               "test": []                                        # Entry for building the component's test cases.
+           }
+       }
+   }
+   ```
+
+   Note that the **bundle.json** file must be in the folder of the corresponding subsystem.
+
+#### Creating a Component and Adding a Module
+
+1. Configure the **BUILD.gn** file in the module directory and select the corresponding template. Note that **part_name** in the **BUILD.gn** file is the name of the newly added component.
+
+2. Create a **bundle.json** file in the folder of the corresponding subsystem. 
+
+   The **bundle.json** file consists of two parts: **subsystem** and **parts**. Add the component information to **parts**. When adding a component, you need to specify the **sub_component** of the component. If there are APIs provided for other components, add them in **inner_kits**. If there are test cases, add them in **test**.
+
+3. Add the new component to the end of existing components in **//vendor/{product_company}/{product-name}/config.json**.
+
+   ```
+    "subsystems": [
+         {
+           "subsystem": "Name of the subsystem to which the component belongs",
+           "components": [
+             {"component": "Component 1 name", "features":[]},        # Existing component 1 in the subsystem
+             { "component": "Component 2 name", "features":[] },      # Existing component 2 in the subsystem
+             {"component": "New component name", "features":[]}       # New component in the subsystem
+           ]
+         },
+         ...
+    ]
+   ```
+
+#### Creating a Subsystem and Adding a Module
+
+1. Configure the **BUILD.gn** file in the module directory and select the corresponding template. 
+
+   Note that **part_name** in the **BUILD.gn** file is the name of the newly added component.
+
+2. Create a **bundle.json** file in the folder of the component of the subsystem. 
+
+   This step is the same as the step in "Creating a Component and Adding a Module."
+
+3. Modify the **subsystem_config.json** file in the **build** directory.
+
+   ```
+   {
+    "Subsystem 1 name": {                     # Existing subsystem 1
+      "path": "Subsystem 1 directory",
+      "name": "Subsystem 1 name"
+    },
+     "Subsystem 2 name": {                    # Existing subsystem 2
+      "path": "Subsystem 2 directory",
+      "name": "Subsystem 2 name"
+    },
+    "Subsystem name new": {                   # Subsystem to add
+      "path": "New subsystem directory",
+      "name": "New subsystem name"
+    },
+   ...
+   }
+   ```
+
+   This file defines the subsystems and their paths. To add a subsystem, specify **path** and **name** for the subsystem.
+
+4. If **product-name** in the **//vendor/{product_company}/{product-name}** directory is **hispark_taurus_standard**, add the new component information to the end of existing components in the **config.json** file.
+
+   ```
+   "subsystems": [
+     {
+       "subsystem": "arkui",                      # Name of the existing subsystem
+       "components": [                            # All components of the subsystem
+         {
+           "component": "ace_engine_standard",    # Name of the existing component
+           "features": []
+         },
+         {
+           "component": "napi",                   # Name of the existing component
+           "features": []
+         }
+          {
+           "component": "component_new1",         # Name of the new component added to the existing subsystem
+           "features": []
+         }
+      ]
+     },
+     {
+       "subsystem": "subsystem_new",              # Name of the new subsystem to add
+       "components": [
+         {
+           "component": "component_new2",         # Name of the component added to the new subsystem
+           "features": []
+         }
+       ]
+     },
+    ...
+    ]
+   ```
+    Verification:
+    - Check that **module_list** in the **BUILD.gn** file in the component directory under the corresponding subsystem directory contains the target defined in the **BUILD.gn** file of the new module.
+    - Check the .so file or binary file generated in the image created.
+
+#### Configuration Files
+
+There are four OpenHarmony configuration files.
+
+1. **vendor\Product vendor\Product name\config.json**
+
+   ```
+   {
+      "product_name": "MyProduct",
+      "version": "3.0",
+      "type": "standard",
+      "target_cpu": "arm",
+      "ohos_version": "OpenHarmony 1.0",
+      "device_company": "MyProductVendor",
+      "board": "MySOC",
+      "enable_ramdisk": true,
+      "subsystems": [
+        {
+          "subsystem": "ace",
+          "components": [
+            { "component": "ace_engine_lite", "features":[""] }
+          ]
+        },
+        ...
       ]
-      public_configs = [ ":helloworld_lib_config" ]
-      part_name = "partA"
+   }
+
+   ```
+   This file specifies the name, manufacturer, device, version, type of system to be built, and subsystems of the product.
+
+2. **subsystem_config.json** in the **build** directory
+
+   ```
+   {
+     "arkui": {
+       "path": "foundation/arkui",
+       "name": "arkui"
+     },
+     "ai": {
+       "path": "foundation/ai",
+       "name": "ai"
+     },
+ 	......
     }
-    ```
+   ```
+   This file contains subsystem information. You need to configure **name** and **path** for each subsystem.
+
+3. **bundle.json** of a subsystem
+
+   ```
+   {
+       "name": "@ohos/<component_name>,                # HPM component name, in the "@Organization/Component name" format.
+       "description": "xxxxxxxxxxxxxxxxxxx",           # Description of the component functions.
+       "version": "3.1",                               # Version, which must be the same as the version of OpenHarmony.
+       "license": "MIT",                               # Component license.
+       "publishAs": "code-segment",                    # Mode for publishing the HPM package. The default value is code-segment.
+       "segment": {
+           "destPath": ""
+       },                                              # Code restoration path (source code path) when publishAs is code-segment.
+       "dirs": {},                                     # Directory structure of the HPM package. This field is mandatory and can be left empty.
+       "scripts": {},                                  # Scripts to be executed. This field is mandatory and can be left empty.
+       "licensePath": "COPYING",
+       "readmePath": {
+           "en": "README.rst"
+       },
+       "component": {                                  # Component attributes.
+           "name": "<component_name>",                 # Component name.
+           "subsystem": "",                            # Subsystem to which the component belongs.
+           "syscap": [],                               # System capabilities provided by the component for applications.
+           "features": [],                             # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured.
+           "adapted_system_type": [],                  # Adapted system types, which can be mini, small, and standard. Multiple values are allowed.
+           "rom": "xxxKB"                              # ROM baseline. If there is no baseline, enter the current value.
+           "ram": "xxxKB",                             # RAM baseline. If there is no baseline, enter the current value.
+           "deps": {
+               "components": [],                       # Other components on which this component depends.
+               "third_party": []                       # Third-party open-source software on which this component depends.
+           },
+           "build": {                                  # Build-related configurations.
+               "sub_component": ["gn target of the module"], # Component build entry
+               "inner_kits": [],                       # APIs between components.
+               "test": []                              # Entry for building the component's test cases.
+           }
+       }
+   }
+   ```
+   The **bundle.json** file defines the components of a subsystem.
+   
+   Each component contains the module's target **component.build.sub_component**, **component.build.inner_kits** for interaction between components, and test cases **component.build.test_list**. The **component.build.sub_component** is mandatory.
+
+4. **BUILD.gn** of each module
+   
+   You can create **BUILD.gn** from a template or using the GN syntax.
+
+### How Do I Build a HAP?
+
+#### **HAP Description**
+
+An OpenHarmony Ability Package (HAP) includes resources, raw assets, JS assets, native libraries, and **config.json**.
+
+#### **Templates**
 
-    Example 2: GN script \(**test/examples/partA/feature2/BUILD.gn**\) for building an executable file
+The compilation and build subsystem provides four templates for building HAPs. The templates are integrated in **ohos.gni**. Before using the templates, import **build/ohos.gni**.
+
+1. **ohos_resources**
+
+   This template declares resource targets. After a target is built by restool, an index file is generated. The resource source file and index file are both packaged into the HAP.
+
+   A **ResourceTable.h** file is also generated after resource building. This header file can be referenced if the resource target is relied on.
+
+   The resource target name must end with **resources**, **resource**, or **res**. Otherwise, a build error may occur.
+
+   The following variables are supported:
+
+   - **sources**: a list of resource paths.
+   - **hap_profile**: **config.json** of the HAP required for resource building.
+   - **deps**: (optional) dependency of the current target.
+
+2. **ohos_assets**
+
+   This template declares asset targets. 
+
+   Beware that the spelling is "assets" as opposed to "assert".
+
+   The asset target name must end with **assets** or **asset**.
+
+   The following variables are supported:
+
+   - **sources**: a list for raw asset paths.
+   - **deps**: (optional) dependency of the current target.
+
+3. **ohos_js_assets**
+
+   This template declares a JS resource target. The JS resource is the executable part of an L2 HAP.
+
+   The JS asset target name must end with **assets** or **asset**.
+
+   The following variables are supported:
+
+   - **source_dir**: JS resource path, which is of the string type.
+   - **deps**: (optional) dependency of the current target.
+
+4. **ohos_hap**
+
+   This template declares a HAP target. A HAP that will be generated and packaged into the system image.
+
+   The following variables are supported:
+
+   - **hap_profile**: **config.json** of the HAP.
+   - **deps**: dependency of the current target.
+   - **shared_libraries**: native libraries on which the current target depends.
+   - **hap_name**: (optional) name of the HAP. The default value is the target name.
+   - **final_hap_path**: (optional) destination path of the HAP. It takes precedence over **hap_name**.
+   - **subsystem_name**: name of the subsystem to which the HAP belongs. The value must be the same as that in **bundle.json**. Otherwise, the HAP will fail to be installed in the system image.
+   - **part_name**: name of the component to which the HAP belongs. The value must be the same as that in **bundle.json**.
+   - **js2abc**: whether to convert the HAP into ARK bytecode. 
+   - **certificate_profile**: certificate profile of the HAP, which is used for signature. For details about signatures, see [Configuring Signature Information](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-debugging-and-running-0000001263040487#section17660437768).
+   - **certificate_file**: Certificate file. You must apply for the certificate and its profile from the official OpenHarmony website.
+   - **keystore_path**: keystore file, which is used for signature.
+   - **keystore_password**: keystore password, which is used for signature.
+   - **key_alias**: key alias.
+   - **module_install_name**: name of the HAP used during installation.
+   - **module_install_dir**: installation path. The default path is **system/app**.
+
+**HAP Example**
 
     ```
-    ohos_executable("helloworld_bin") {
-      sources = [
-        "src/helloworld2.cpp"
+    import("//build/ohos.gni") # Import **ohos.gni**.
+    ohos_hap("clock") {
+      hap_profile = "./src/main/config.json" # config.json
+      deps = [
+        ":clock_js_assets", # JS assets
+        ":clock_resources", # Resources
       ]
-      include_dirs = [ "include" ]
-      deps = [                                # Dependent submodule
-        "../feature1:helloworld_lib"
+      shared_libraries = [
+        "//third_party/libpng:libpng", # Native library
       ]
-      external_deps = [ "partB:module1" ]     # (Optional) If there is a cross-module dependency, the format is "module name: submodule name"
-      install_enable = true                   # By default, the executable file is not installed. You need to set this parameter to true for installation.
-      part_name = "partA"
+      certificate_profile = "../signature/systemui.p7b" # Certificate profile
+      hap_name = "SystemUI-NavigationBar" # HAP name
+      part_name = "prebuilt_hap"
+      subsystem_name = "applications"
+    }
+    ohos_js_assets("clock_js_assets") {
+      source_dir = "./src/main/js/default"
+    }
+    ohos_resources("clock_resources") {
+      sources = [ "./src/main/resources" ]
+      hap_profile = "./src/main/config.json"
     }
     ```
 
-    Example 3: GN script \(**test/examples/partA/feature3/BUILD.gn**\) for building the etc configuration file \(submodule\).
+### What Does an Open-Source Software Notice Collect?
 
-    ```
-    ohos_prebuilt_etc("feature3_etc") {
-      source = "src/config.conf"
-      relative_install_dir = "init"    # (Optional) Directory for installing the submodule, which is relative to the default installation directory (/system/etc)
-      part_name = "partA"
-    }
-    ```
+#### Information to Collect
 
-    Example 4: Adding the module configuration file  **test/examples/ohos.build**  to the  **ohos.build**  file of this subsystem. Each subsystem has an  **ohos.build**  file in its root directory. Example:
+The notice collects only the licenses of the modules packaged in the image. For example, the licenses of the tools (such as Clang, Python, and Ninja) used during the build process are not collected.
 
-    ```
-    "partA": {
-        "module_list": [
-          "//test/examples/partA/feature1:helloworld_lib",
-          "//test/examples/partA/feature2:helloworld_bin",
-          "//test/examples/partA/feature3:feature3_etc",
-        ],
-        "inner_kits": [
-    
-        ],
-        "system_kits": [
-    
-        ],
-        "test_list": [
-    
-        ]
-      }
-    ```
+A static library itself is not packaged. However, if it is packaged into the system as part of a dynamic library or executable file, the license of the static library will be collected for completeness.
 
-    The declaration of a module contains the following parts:
+The final **Notice.txt** file must include all licenses used by the files in the image and the mapping between modules and licenses.
 
-    -   **module\_list**: submodule list of the module
-    -   **inner\_kits**: APIs for other modules that depend on this module through  **external\_deps**
-    -   **system\_kits**: APIs for developers
-    -   **test\_list**: test cases for the submodules of the module
+The **Notice.txt** file is located in the **/system/etc/** directory.
 
-2.  Add the module to the product configuration file.
+#### Rules for Collecting Information
 
-    Add the module to the product configuration file  **//vendor/{product_company}/{product-name}/config.json**.
+Licenses are collected by priority.
 
-    Add "subsystem\_examples:partA" to the product configuration file.  **partA**  will be built and packaged into the distribution.
+1. Licenses that are directly declared in a module's **BUILD.gn** are given the top priority. The following is an example:
 
-3.  Build the module.
+   ```
+      ohos_shared_library("example") {
+          ...
+          license_file = "path-to-license-file"
+          ...
+      }
+   ```
 
-    For example, run the following command to build hispark_taurus_standard:
+2. If there is no explicitly declared license, the build script searches for the **Readme.OpenSource** file in the directory of **BUILD.gn**, parses the file, and collects the obtained licenses.
+   If the **Readme.OpenSource** file does not contain license information, an error will be reported.
 
-    ```
-    ./build.sh --product-name hispark_taurus_standard --ccache
-    ```
+3. If the **Readme.OpenSource** file does not exist, the build script searches for the **License**, **Copyright**, and **Notice** files from the current directory to the root directory of the source code by default. If obtained license information will be used as the licenses of the module.
+
+4. If no license is found, the default license (Apache License 2.0) will be used.
 
-4.  Obtain the build result.
+Check items:
 
-    Files generated during the build process are stored in the  **out/hispark_taurus/**  directory, and the generated image is stored in the  **out/hispark_taurus/packages/phone/images/**  directory.
+1. For third-party open-source software, such as OpenSSL and ICU, **Readme.OpenSource** must be configured in the source code directory. Check whether **Readme.OpenSource** is in the same directory as **BUILD.gn** and whether the license configured in **Readme.OpenSource** is valid.
 
+2. If the source code is not licensed under the Apache License 2.0, the corresponding license file must be provided in the source code directory or declared by **license_file** for the module.
 
+3. If the source code file added to **BUILD.gn** is not from the current directory, check whether the license in the repository where the source code file is located is the same as that in the repository of **BUILD.gn**. License inconsistency entails follow-up operations.
diff --git a/en/device-dev/subsystems/subsys-data-storage-guide.md b/en/device-dev/subsystems/subsys-data-storage-guide.md
index b04c82592a0266a05103a60be2752fa4c4530930..2d577a2ffff46d6ba6b4b40da81fb6f4ae606d58 100644
--- a/en/device-dev/subsystems/subsys-data-storage-guide.md
+++ b/en/device-dev/subsystems/subsys-data-storage-guide.md
@@ -16,7 +16,7 @@ Create a **Preferences** instance for data operations. A **Preferences** instanc
 
 | Class| Method| Description|
 | --- | ----- | ----|
-| PreferencesHelper | static std::shared_ptr<Preferences> GetPreferences(const std::string &path, int &errCode); | Creates a **Preferences** instance. <br/>**path**: storage path of the application data. <br/>**errCode**: error code. <br/>Return value: **Preferences** instance created.|
+| PreferencesHelper | static std::shared_ptr<Preferences> GetPreferences(const std::string &path, int &errCode); | Creates a **Preferences** instance. <br>**path**: storage path of the application data.<br>**errCode**: error code.<br>Return value: **Preferences** instance created.|
 
 **Writing Data**
 
@@ -26,13 +26,13 @@ Call the **put()** method to add or modify data in a **Preferences** instance.
 
 | Class| Method| Description|
 | --- | ----- | ----|
-| Preferences | int PutInt(const std::string &key, int value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutString(const std::string &key, const std::string &value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutBool(const std::string &key, bool value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutLong(const std::string &key, int64_t value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutFloat(const std::string &key, float value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutDouble(const std::string &key, double value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
-| Preferences | int PutStringSet(const std::string &key, const std::set\<std::string\> &value); | **key**: key of the data to write. It cannot be empty. <br/>**value**: value of the data to write. <br/>Return value: error code.|
+| Preferences | int PutInt(const std::string &key, int value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutString(const std::string &key, const std::string &value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutBool(const std::string &key, bool value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutLong(const std::string &key, int64_t value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutFloat(const std::string &key, float value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutDouble(const std::string &key, double value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| Preferences | int PutStringSet(const std::string &key, const std::set\<std::string\> &value); | **key**: key of the data to write. It cannot be empty.<br>**value**: value of the data to write.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
 
 **Reading Data**
 
@@ -42,17 +42,17 @@ Call the **get()** method to read data from a **Preferences** instance.
 
 | Class| Method| Description|
 | --- | ----- | ----|
-| Preferences | bool GetBool(const std::string &key, bool defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | std::string GetString(const std::string &key, const std::string &defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | bool GetBool(const std::string &key, bool defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | float GetFloat(const std::string &key, float defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | double GetDouble(const std::string &key, double defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | int64_t GetLong(const std::string &key, int64_t defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
-| Preferences | std::set\<std::string\> GetStringSet(const std::string &key, std::set\<std::string\> &defValue); | **key**: key of the data to read. It cannot be empty. <br/>**defValue**: default value to return if the operation fails or the value does not exist. <br/>Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.|
+| Preferences | int GetInt(const std::string &key, const int defValue = 0); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | std::string GetString(const std::string &key, const std::string &defValue = {}); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | bool GetBool(const std::string &key, const bool defValue = false); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | float GetFloat(const std::string &key, const float defValue = 0); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | double GetDouble(const std::string &key, const double defValue = 0); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | int64_t GetLong(const std::string &key, const int64_t defValue = 0); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
+| Preferences | std::set\<std::string\> GetStringSet(const std::string &key, const std::set\<std::string\> &defValue = {}); | **key**: key of the data to read. It cannot be empty.<br>**defValue**: default value to return if the operation fails or the value does not exist.<br>Return value: value obtained.|
 
 **Storing Data Persistently**
 
-Call the **flush()** or **flushSync** method to write the cached data back to its text file for persistent storage.
+Call the **Flush()** or **FlushSync()** method to write the cached data back to its text file for persistent storage.
 
 **Table 4** APIs for data persistence
 
@@ -65,12 +65,12 @@ Call the **flush()** or **flushSync** method to write the cached data back to it
 
 Specify **PreferencesObserver** as the callback to subscribe to data changes. When the value of the subscribed key is changed and the **flush()** method is executed, **PreferencesObserver** will be invoked.
 
-**Table 5** APIs for subscribing to data changes
+**Table 5** APIs for observing data changes
 
 | Class| Method| Description|
 | --- | ----- | ----|
-| Preferences | void RegisterObserver(std::shared_ptr<PreferencesObserver> preferencesObserver); | Subscribes to data changes. <br/>**preferencesObserver**: callback invoked to return the data changes.|
-| Preferences | void UnRegisterObserver(std::shared_ptr<PreferencesObserver> preferencesObserver); | Unsubscribes from data changes. <br/>**preferencesObserver**: callback used to report data changes.|
+| Preferences | void RegisterObserver(std::shared_ptr<PreferencesObserver> preferencesObserver); | Subscribes to data changes. <br>**preferencesObserver**: callback invoked to return the data changes.|
+| Preferences | void UnRegisterObserver(std::shared_ptr<PreferencesObserver> preferencesObserver); | Unsubscribes from data changes. <br>**preferencesObserver**: callback used to report data changes.|
 
 **Deleting Data**
 
@@ -80,8 +80,8 @@ Use the following APIs to delete a **Preferences** instance or data file.
 
 | Class| Method| Description|
 | --- | ----- | ----|
-| PreferencesHelper | int DeletePreferences(const std::string &path); | Deletes a **Preferences** instance from the memory and deletes its file from the device. <br/>**path**: storage path of the application data. <br/>Return value: error code.|
-| PreferencesHelper | int RemovePreferencesFromCache(const std::string &path); | Deletes a **Preferences** instance from the memory. <br/>**path**: storage path of the application data. <br/>Return value: error code.|
+| PreferencesHelper | int DeletePreferences(const std::string &path); | Deletes a **Preferences** instance from the memory and deletes its file from the device. <br>**path**: storage path of the application data.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
+| PreferencesHelper | int RemovePreferencesFromCache(const std::string &path); | Deletes a **Preferences** instance from the memory. <br>**path**: storage path of the application data.<br>Return value: Returns **0** if the operation is successful; returns the error code otherwise.|
 
 ## How to Develop
 
@@ -122,14 +122,13 @@ Use the following APIs to delete a **Preferences** instance or data file.
 
 5. Store data persistently.
 
-   Use the **flush()** or **flushSync()** method to flush data in the **Preferences** instance to its file.
+   Use the **Flush()** or **FlushSync()** method to flush data in the **Preferences** instance to its file.
 
     ```C++
     int err = pref->FlushSync();
     EXPECT_EQ(ret, E_OK);
     ```
    
-
 6. Subscribe to data changes.
 
     Specify **PreferencesObserver** as the callback to subscribe to data changes for an application. When the value of the subscribed key is changed and the **flush()** or **flushSync()** method is executed, **PreferencesObserver** will be invoked. Unregister the **PreferencesObserver** when it is no longer required.
@@ -144,7 +143,7 @@ Use the following APIs to delete a **Preferences** instance or data file.
         std::atomic_int notifyTimes;
         static const std::vector<std::string> NOTIFY_KEYS_VECTOR;
     };
-
+    
     PreferencesObserverCounter::~PreferencesObserverCounter() {}
     
     void PreferencesObserverCounter::OnChange(Preferences &preferences, const std::string &key)
@@ -156,7 +155,7 @@ Use the following APIs to delete a **Preferences** instance or data file.
             }
         }
     }
-
+    
     const std::vector<std::string> PreferencesObserverCounter::NOTIFY_KEYS_VECTOR = { PreferencesTest::KEY_TEST_INT_ELEMENT,
         PreferencesTest::KEY_TEST_LONG_ELEMENT, PreferencesTest::KEY_TEST_FLOAT_ELEMENT,
         PreferencesTest::KEY_TEST_BOOL_ELEMENT, PreferencesTest::KEY_TEST_STRING_ELEMENT };
@@ -167,17 +166,17 @@ Use the following APIs to delete a **Preferences** instance or data file.
     std::shared_ptr<PreferencesObserver> counter =
         std::make_shared<PreferencesObserverCounter>();
     pref->RegisterObserver(counter); // Register a callback to return data changes.
-
+    
     pref->PutString(PreferencesTest::KEY_TEST_STRING_ELEMENT, "test");
     pref->Flush(); // Trigger the onChanged callback of the counter.
     EXPECT_EQ(static_cast<PreferencesObserverCounter *>(counter.get())->notifyTimes, 1);
-
+    
     /* same value */
     pref->PutInt(PreferencesTest::KEY_TEST_INT_ELEMENT, 2);
     pref->PutString(PreferencesTest::KEY_TEST_STRING_ELEMENT, "test");
     pref->Flush();
     EXPECT_EQ(static_cast<PreferencesObserverCounter *>(counter.get())->notifyTimes, 2);
-
+    
     pref->UnRegisterObserver(counter); // Unregister the callback for data changes.
     ```
 
diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-logging.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
index 06033bd48bdd941aa104a3997a323b9359576c62..aad574b94e51306a4130173f8ea8a4a7304b0b39 100644
--- a/en/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
+++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
@@ -1,99 +1,233 @@
-# HiSysEvent Logging<a name="EN-US_TOPIC_0000001231373947"></a>
-
-## Overview<a name="section77571101789"></a>
-
-### Introduction<a name="section123133332175224"></a>
-
-HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics.
-
-### Constraints<a name="section123181432175224"></a>
-
-Before logging system events, you need to configure HiSysEvent logging. For details, see [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md).
-
-## Development Guidelines<a name="section314416685113"></a>
-
-### Available APIs<a name="section13480315886"></a>
-
-The following table lists the C++ APIs provided by the HiSysEvent class.
-
-For details about the HiSysEvent class, see the API reference.
-
-**Table 1** C++ APIs provided by HiSysEvent
-
-| API| Description|
-| -------- | --------- |
-| template&lt;typename... Types&gt; static int Write(const std::string &amp;domain, const std::string &amp;eventName, EventType type, Types... keyValues) | Logs system events. <br><br>Input arguments: <ul><li>**domain**: Indicates the domain related to the event. You can use a preconfigured domain or customize a domain as needed. The name of a custom domain can contain a maximum of 16 characters, including digits (0-9) and uppercase letters (A-Z). It must start with a letter. </li><li>**eventName**: Indicates the event name. The value contains a maximum of 32 characters, including digits (0 to 9), letters (A-Z), and underscores (&#95;). It must start with a letter and cannot end with an underscore. </li><li>**type**: Indicates the event type. For details, see EventType. </li><li>**keyValues**: Indicates the key-value pairs of event parameters. It can be in the format of the basic data type, std::string, std::vector&lt;basic data type&gt;, or std:vector&lt;std::string&gt;. The value contains a maximum of 48 characters, including digits (0 to 9), letters (A-Z), and underscores (&#95;). It must start with a letter and cannot end with an underscore. The number of parameter names cannot exceed 32. </li></ul>Return value: <ul><li>**0**: The logging is successful. </li><li>Negative value: The logging has failed.</li></ul> |
-
-**Table 2** Description of HiSysEvent::Domain APIs
-
-| API| Description|
-| -------- | --------- |
-| static const std::string AAFWK | Atomic ability subsystem|
-| static const std::string APPEXECFWK | User program framework subsystem|
-| static const std::string ACCOUNT | Account subsystem|
-| static const std::string ARKUI | ARKUI subsystem|
-| static const std::string AI | AI subsystem|
-| static const std::string BARRIER_FREE | Accessibility subsystem|
-| static const std::string BIOMETRICS | Biometric recognition subsystem|
-| static const std::string CCRUNTIME |C/C++ operating environment subsystem|
-| static const std::string COMMUNICATION | Public communication subsystem|
-| static const std::string DEVELOPTOOLS | Development toolchain subsystem|
-| static const std::string DISTRIBUTED_DATAMGR | Distributed data management subsystem|
-| static const std::string DISTRIBUTED_SCHEDULE | Distributed Scheduler subsystem|
-| static const std::string GLOBAL | Globalization subsystem|
-| static const std::string GRAPHIC | Graphics subsystem|
-| static const std::string HIVIEWDFX | DFX subsystem|
-| static const std::string IAWARE | Scheduling and resource management subsystem|
-| static const std::string INTELLI_ACCESSORIES | Smart accessory subsystem|
-| static const std::string INTELLI_TV | Smart TV subsystem|
-| static const std::string IVI_HARDWARE | IVI-dedicated hardware subsystem|
-| static const std::string LOCATION | LBS subsystem|
-| static const std::string MSDP | MSDP subsystem|
-| static const std::string MULTI_MEDIA | Media subsystem|
-| static const std::string MULTI_MODAL_INPUT | Multimode input subsystem|
-| static const std::string NOTIFICATION | Common event and notification subsystem|
-| static const std::string POWERMGR | Power management subsystem|
-| static const std::string ROUTER | Router subsystem|
-| static const std::string SECURITY | Security subsystem|
-| static const std::string SENSORS | Pan-sensor subsystem|
-| static const std::string SOURCE_CODE_TRANSFORMER | Application porting subsystem|
-| static const std::string STARTUP | Startup subsystem|
-| static const std::string TELEPHONY | Telephony subsystem|
-| static const std::string UPDATE | Update subsystem|
-| static const std::string USB | USB subsystem|
-| static const std::string WEARABLE_HARDWARE | Wearable-dedicated hardware subsystem|
-| static const std::string WEARABLE_HARDWARE | Wearable-dedicated service subsystem|
-| static const std::string OTHERS | Others|
-
-**Table 3** Description of HiSysEvent::EventType
-
-| Name| Description|
-| -------- | --------- |
-| FAULT | Fault event|
+# HiSysEvent Logging
+
+## Overview
+
+### Introduction
+
+HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running. Besides, it supports shielding of event logging by event domain, helping you to evaluate the impact of event logging.
+
+### Working Principles
+
+Before logging system events, you need to complete HiSysEvent logging configuration. For details, see [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md).
+
+## Development Guidelines
+
+### When to Use
+
+Use HiSysEvent logging to flush logged event data to disks.
+
+### Available APIs
+
+#### C++ Event Logging APIs
+
+HiSysEvent logging is implemented using the API provided by the **HiSysEvent** class. For details, see the API Reference.
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> In OpenHarmony-3.2-Beta3, HiSysEvent logging is open for restricted use to avoid event storms. The **HiSysEvent::Write** API in Table 1 is replaced by the **HiSysEventWrite** API in Table 2. The **HiSysEvent::Write** API has been deprecated. Use the **HiSysEventWrite** API instead for HiSysEvent logging.
+
+**Table 1** C++ event logging API (deprecated)
+
+| API                                                      | Description                  |
+| ------------------------------------------------------------ | ---------------------- |
+| template&lt;typename...&nbsp;Types&gt;&nbsp;<br>static&nbsp;int&nbsp;Write(const&nbsp;std::string&nbsp;&amp;domain,&nbsp;const&nbsp;std::string&nbsp;&amp;eventName,&nbsp;EventType&nbsp;type,&nbsp;Types...&nbsp;keyValues) | Flushes logged event data to disks.|
+
+**Table 2** C++ event logging API (in use)
+| API                                                      | Description                  |
+| ------------------------------------------------------------ | ---------------------- |
+| HiSysEventWrite(domain, eventName, type, ...)                | Flushes logged event data to disks.|
+
+ **Table 3** Event types
+
+| Event   | Description        |
+| --------- | ------------ |
+| FAULT     | Fault event|
+| STATISTIC | Statistical event|
+| SECURITY  | Security event|
+| BEHAVIOR  | Behavior event|
+
+#### Kernel Event Logging APIs
+
+The following table describes the kernel event logging APIs.
+
+**Table 4** Description of kernel event logging APIs
+
+| API                                                      | Description                                |
+| ------------------------------------------------------------ | ------------------------------------ |
+| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | Creates a **hisysevent** object.                    |
+| void hisysevent_destroy(struct hiview_hisysevent *event);    | Destroys a **hisysevent** object.                    |
+| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | Adds event parameters of the integer type to a **hisysevent** object.  |
+| int hisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value); | Adds event parameters of the string type to a **hisysevent** object.|
+| int hisysevent_write(struct hiview_hisysevent *event);       | Flushes **hisysevent** object data to disks.              |
+
+Table 5 Kernel event types
+
+| Event   | Description        |
+| --------- | ------------ |
+| FAULT     | Fault event|
 | STATISTIC | Statistical event|
-| SECURITY | Security event|
-| BEHAVIOR | System behavior event|
+| SECURITY  | Security event|
+| BEHAVIOR  | Behavior event|
+
+### How to Develop
+
+#### C++ Event Logging
+
+1. Call the event logging API wherever needed, with required event parameters passed to the API.
+
+   ```c++
+   HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo");
+   ```
+
+#### Kernel Event Logging
+
+1. Create a **hisysevent** object based on the specified event domain, event name, and event type.
+
+   ```c
+   struct hiview_hisysevent *event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR);
+   ```
+
+2. Pass the customized event parameters to the **hisysevent** object.
 
-### Development Example<a name="section112771171317"></a>
+   ```c
+   // Add a parameter of the integer type.
+   hisysevent_put_integer(event, "BOOT_TIME", 100);
 
-C++
+   // Add a parameter of the string type.
+   hisysevent_put_string(event, "MSG", "This is a test message");
+   ```
 
-1.  Develop the source code.
+3. Trigger reporting of the **hisysevent** event.
 
-    Include the HiSysEvent header file in the class definition header file or class implementation source file. For example:
+   ```c
+   hisysevent_write(event);
+   ```
 
+4. Manually destroy the **hisysevent** object.
+
+   ```c
+   hisysevent_destroy(&event);
+   ```
+
+#### Shielding of Event Logging by Event Domain
+
+1. In the corresponding file, define the **DOMAIN_MASKS** macro with content similar to DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n. There are three scenarios:
+
+- Shielding only event logging for the event domains configured in the current source code file: Define the **DOMAIN_MASKS** macro before importing the **.cpp** file to the **hisysevent.h** file.
+   ```c++
+   #define DOMAIN_MASKS "DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n"
+   #include "hisysevent.h"
+   ```
+
+- Shielding event logging for event domains of the entire module: Define the **DOMAIN_MASKS** macro in the **BUILD.gn** file of the module.
+   ```gn
+   config("module_a"){
+     cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""]
+   }
+   ```
+
+- Shielding event logging for event domains globally: Define the **DOMAIN_MASKS** macro in **/build/config/compiler/BUILD.gn**.
+   ```gn
+     cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""]
+   ```
+
+2. Perform event logging by using the **HiSysEventWrite** API.
+   ```c++
+   constexpr char DOMAIN[] = "DOMAIN_NAME_1";
+   const std::string eventName = "EVENT_NAME1";
+   OHOS:HiviewDFX::HiSysEvent::EventType eventType = OHOS:HiviewDFX::HiSysEvent::EventType::FAULT;
+   HiSysEventWrite(domain, eventName, eventType); // Event logging is shielded for DOMAIN_NAME_1 because it has been defined in the DOMAIN_MASKS macro.
+   ```
+
+### Development Examples
+
+#### C++ Event Logging
+
+Assume that a service module needs to trigger event logging during application startup to record the application startup event and application bundle name. The following is the complete sample code:
+
+1. Add the HiSysEvent component dependency to the **BUILD.gn** file of the service module.
+
+   ```c++
+   external_deps = [ "hisysevent_native:libhisysevent" ]
+   ```
+
+2. In the application startup function **StartAbility()** of the service module, call the event logging API with the event parameters passed in.
+
+   ```c++
+   #include "hisysevent.h"
+
+   int StartAbility()
+   {
+       ... // Other service logic
+       int ret = HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo");
+       ... // Other service logic
+   }
+   ```
+
+#### Kernel Event Logging
+
+Assume that the kernel service module needs to trigger event logging during device startup to record the device startup event. The following is the complete sample code:
+
+1. In the device startup function **device_boot()**, construct a **hisysevent** object. After that, trigger event reporting, and then destroy the **hisysevent** object.
+
+    ```c
+    #include <dfx/hiview_hisysevent.h>
+
+    #include <linux/errno.h>
+    #include <linux/printk.h>
+
+    int device_boot()
+    {
+        ... // Other service logic
+        struct hiview_hisysevent *event = NULL;
+        int ret = 0;
+
+        event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR);
+        if (!event) {
+            pr_err("failed to create event");
+            return -EINVAL;
+        }
+        ret = hisysevent_put_string(event, "MSG", "This is a test message");
+        if (ret != 0) {
+            pr_err("failed to put sting to event, ret=%d", ret);
+            goto hisysevent_end;
+        }
+        ret = hisysevent_write(event);
+
+    hisysevent_end:
+        hisysevent_destroy(&event);
+        ... // Other service logic
+    }
     ```
+
+#### Shielding of Event Logging by Event Domain 
+
+- If you want to shield event logging for the **AAFWK** and **POWER** domains in a **.cpp** file, define the **DOMAIN_MASKS** macro before including the **hisysevent.h** header file to the **.cpp** file.
+    ```c++
+
+    #define DOMAIN_MASKS "AAFWK|POWER"
+
     #include "hisysevent.h"
-    ```
+    ... // Other service logic
+    HiSysEventWrite(OHOS:HiviewDFX::HiSysEvent::Domain::AAFWK, "JS_ERROR", OHOS:HiviewDFX::HiSysEvent::EventType::FAULT, "MODULE", "com.ohos.module"); // HiSysEvent logging is not performed.
+    ... // Other service logic
+    HiSysEventWrite(OHOS:HiviewDFX::HiSysEvent::Domain::POWER, "POWER_RUNNINGLOCK", OHOS:HiviewDFX::HiSysEvent::EventType::FAULT, "NAME", "com.ohos.module"); // HiSysEvent logging is not performed.
 
-    Add the event logging code. For example, if you want to log events specific to the app start time (start\_app), then add the following code to the service implementation source file:
+    ```
 
+- If you want to shield event logging for the **AAFWK** and **POWER** domains of the entire service module, define the **DOMAIN_MASKS** macro as follows in the **BUILG.gn** file of the service module.
+    ```gn
+    config("module_a") {
+      ... // Other configuration items
+      cflags_cc += ["-DDOMAIN_MASKS=\"AAFWK|POWER\""]
+    }
     ```
-    HiSysEvent::Write(HiSysEvent::Domain::AAFWK, "start_app", HiSysEvent::EventType::FAULT, "app_name", "com.demo");
+
+- If you want to shield event logging for the **AAFWK** and **POWER** domains globally, define the **DOMAIN_MASKS** macro as follows in **/build/config/compiler/BUILD.gn**.
+    ```gn
+    ... // Other configuration items
+    cflags_cc += ["-DDOMAIN_MASKS=\"AAFWK|POWER\""]
     ```
 
-2.  Configure compilation information. Specifically, add the subsystem SDK dependency to **BUILD.gn**.
+# Reference
 
-    ```
-    external_deps = [ "hisysevent_native:libhisysevent" ]
-    ```
+The HiSysEvent module writes the logged event data to the node file, and the Hiview module parses and processes the event data in a unified manner. For details, see the [Hiview Development Guide](subsys-dfx-hiview.md).
diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..d5ea1ec4528401a14f04d84b4c79b927ff62b29d
--- /dev/null
+++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md
@@ -0,0 +1,22 @@
+# HiSysEvent Overview
+
+
+## Introduction
+
+HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics.
+
+The key modules of HiSysEvent are described as follows:
+
+- Event configuration: enables you to define HiSysEvent events in YAML files.
+
+- Trace point configuration: provides trace point APIs and supports flushing of HiSysEvent events to disks.
+
+- Event subscription: provides APIs for you to subscribe to HiSysEvent events by event domain and event name.
+
+- Event query: provides APIs for you to query HiSysEvent events by event domain and event name.
+
+- Event debugging tool: allows you to subscribe to real-time HiSysEvent events and query historical HiSysEvent events.
+
+## Reference
+
+For more information about the source code and usage of HiSysEvent, access the [HiSysEvent code repository](https://gitee.com/openharmony/hiviewdfx_hisysevent).
diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
index 7e6b3a45e72d58f6f0b1847b38dc817ef82a8ae3..15fd6220152829b8e8ca6f62551caa25d8a9e088 100644
--- a/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
+++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
@@ -1,12 +1,13 @@
-# HiSysEvent Tool Usage<a name="EN-US_TOPIC_0000001231614021"></a>
+# HiSysEvent Tool Usage
 
-## Overview<a name="section1886702718521"></a>
+
+## Overview
 
 The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** directory of the system. You can use this tool to subscribe to real-time system events or query historical system vents.
 
-## Subscribing to Real-Time System Events<a name="section1210623418527"></a>
+## Subscribing to Real-Time System Events
 
--   Command for subscribing to real-time system events:
+- Command for subscribing to real-time system events:
 
     ```
     hisysevent -r
@@ -15,10 +16,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -r&nbsp;        | Subscribes to real-time system events based on the default settings. When this option is specified, any real-time system event will be printed on the console.|
+    | -------- | -------- |
+    | -r | Subscribes to real-time system events based on the default settings. When this option is specified, any real-time system event will be printed on the console.|
 
--   Command for enabling the debugging mode:
+- Command for enabling the debugging mode:
 
     ```
     hisysevent -r -d
@@ -27,10 +28,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -d       | Subscribes to real-time system events in debugging mode.|
+    | -------- | -------- |
+    | -d | Subscribes to real-time system events in debugging mode.|
 
--   Command for subscribing to real-time system events by event tag:
+- Command for subscribing to real-time system events by event tag:
 
     ```
     hisysevent -r -t <tag> [-c [WHOLE_WORD|PREFIX|REGULAR]]
@@ -39,24 +40,22 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -t&nbsp;        | Event tag used to filter subscribed real-time system events.|
-    | -c&nbsp;        | Matching rule for event tags. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.|
+    | -------- | -------- |
+    | -t | Event tag used to filter subscribed real-time system events.|
+    | -c | Matching rule for event tags. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.|
 
     Example:
 
     ```
-    # hisysevent -r -t "TAG" -c PREFIX
-    {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""}
-    # hisysevent -r -t "TA\w{0,1}" -c REGULAR
-    {"domain_":"WINDOWMANAGER","name_":"NO_FOCUS_WINDOW","type_":1,"time_":1501940269802,"tz_":"+0000","tag_":"TAG","pid_":1428,"tid_":1433,"uid_":10001,"level_":"CRITICAL","info_":""}
-    {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""}
-    # hisysevent -r -t "TA\w+" -c REGULAR
-    {"domain_":"WINDOWMANAGER","name_":"NO_FOCUS_WINDOW","type_":1,"time_":1501940269802,"tz_":"+0000","tag_":"TAG","pid_":1428,"tid_":1433,"uid_":10001,"level_":"CRITICAL","info_":""}
-    {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""}
+	# hisysevent -r -t "STA" -c PREFIX
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963670809,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805200750","HAPPEN_TIME":1501963670809,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"4973863135535405472","info_":""}
+    # hisysevent -r -t "STAw{0,6}" -c REGULAR
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963793206,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805200953","HAPPEN_TIME":1501963793206,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"16367997008075110557","info_":""}
+    # hisysevent -r -t "STA\w+" -c REGULAR
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963863393,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201103","HAPPEN_TIME":1501963863393,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"5522352691813553392","info_":""}
     ```
 
--   Command for subscribing to real-time system events by event domain and event name:
+- Command for subscribing to real-time system events by event domain and event name:
 
     ```
     hisysevent -r -o <domain> -n <eventName> [-c [WHOLE_WORD|PREFIX|REGULAR]]
@@ -65,31 +64,29 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -o       | Event domain used to filter subscribed real-time system events.|
-    | -n       | Event name used to filter subscribed real-time system events.|
-    | -c       | Matching rule for event domains and event names. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.|
+    | -------- | -------- |
+    | -o | Event domain used to filter subscribed real-time system events.|
+    | -n | Event name used to filter subscribed real-time system events.|
+    | -c | Matching rule for event domains and event names. The options can be **WHOLE_WORD**, PREFIX, or **REGULAR**.|
 
     Example:
 
     ```
-    # hisysevent -r -o "DOMAINA" -n "EVENTNAMEA"
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    # hisysevent -r -o "DOMA\w{0,10}" -n "EVENT\w+" -c REULAR
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINABC","name_":"EVENTNAMEABC","type_":1,"time_":1501940269938,"tz_":"+0000","pid_":1428,"tid_":1336,"uid_":10002,"level_":"CRITICAL","info_":""}
-    # hisysevent -r -o "DOMA\w{0,10}" -c REGULAR
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINABC","name_":"EVENTNAMEABC","type_":1,"time_":1501940269938,"tz_":"+0000","pid_":1428,"tid_":1336,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINABC","name_":"EVENTNAMEB","type_":1,"time_":1501940279938,"tz_":"+0000","pid_":1428,"tid_":1344,"uid_":10002,"level_":"CRITICAL","info_":""}
+    # hisysevent -r -o "RELIABILITY" -n "APP_FREEZE"
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963989773,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201309","HAPPEN_TIME":1501963989773,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"16367997008075110557","info_":""}
+    # hisysevent -r -o "RELIABI\w{0,8}" -n "APP_FREEZE" -c REGULAR
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964144383,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201544","HAPPEN_TIME":1501964144383,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"13456525196455104060","info_":""}
+    # hisysevent -r -o "RELIABI\w+" -c REGULAR
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964193466,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201633","HAPPEN_TIME":1501964193466,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"12675246910904037271","info_":""}
     ```
 
-    >![](../public_sys-resources/icon-note.gif) **NOTE:**
-    >If **-t**, **-o**, and **-n** are specified, the system checks whether the configured event tag is null. If the event tag is not null, the system filters system events based on the matching rules for the event tag. Otherwise, the system filters system events based on the matching rules for the event domain and event name.
+    > **NOTE**
+    > If **-t**, **-o**, and **-n** are specified, the system checks whether the configured event tag is null. If the event tag is not null, the system filters system events based on the matching rules for the event tag. Otherwise, the system filters system events based on the matching rules for the event domain and event name.
+
 
-## Querying Historical System Events<a name="section1210623418539"></a>
+## Querying Historical System Events
 
--   Command for querying historical system events:
+- Command for querying historical system events:
 
     ```
     hisysevent -l
@@ -98,10 +95,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -l       | Queries historical system events based on the default settings. A maximum of 1,000 latest system events will be returned.|
+    | -------- | -------- |
+    | -l | Queries historical system events based on the default settings. A maximum of 1,000 latest system events will be returned.|
 
--   Command for querying historical system events within the specified period of time:
+- Command for querying historical system events within the specified period of time:
 
     ```
     hisysevent -l -s <begin time> -e <end time>
@@ -110,21 +107,20 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -s       | Start time for querying historical system events. Only system events generated after the start time are returned.|
-    | -e       | End time for querying historical system events. Only system events generated before the end time are returned.|
+    | -------- | -------- |
+    | -s | Start time for querying historical system events. Only system events generated after the start time are returned.|
+    | -e | End time for querying historical system events. Only system events generated before the end time are returned.|
 
     Example:
 
     ```
-    # hisysevent -l -s 20207388633 -e 20207389000
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388633,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388900,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207389000,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
+    # hisysevent -l -s 1501964222980 -e 1501964222996
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""}
+    {"domain_":"GRAPHIC","name_":"NO_DRAW","type_":1,"time_":1501964222980,"tz_":"+0000","pid_":1505,"tid_":1585,"uid_":10002,"PID":1505,"UID":10002,"ABILITY_NAME":"","MSG":"It took 1957104259905ns to draw, UI took 0ns to draw, RSRenderThread took 8962625ns to draw, RSRenderThread dropped 0 UI Frames","level_":"MINOR","id_":"1708287249901948387","info_":"isResolved,eventId:0"}
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222994,"tz_":"+0000","pid_":623,"tid_":1445,"uid_":1201,"SUB_EVENT_TYPE":"NO_DRAW","EVENT_TIME":"20170805201702","MODULE":"NO_DRAW","PNAME":"NO_DRAW","REASON":"NO_DRAW","DIAG_INFO":"","STACK":"SUMMARY:\n","HIVIEW_LOG_FILE_PATHS":["/data/log/faultlog/faultlogger/appfreeze-NO_DRAW-10002-20170805201702"],"DOMAIN":"GRAPHIC","STRING_ID":"NO_DRAW","PID":1505,"UID":10002,"PACKAGE_NAME":"NO_DRAW","PROCESS_NAME":"","MSG":"It took 1956945826265ns to draw, UI took 0ns to draw, RSRenderThread took 9863293ns to draw, RSRenderThread dropped 0 UI Frames\n","level_":"CRITICAL","tag_":"STABILITY","id_":"10448522101019619655","info_":""}
     ```
 
--   Command for setting the maximum number of historical events that can be queried:
+- Command for setting the maximum number of historical events that can be queried:
 
     ```
     hisysevent -l -m <max hisysevent count>
@@ -133,18 +129,36 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin**
     Description of command options:
 
     | Option| Description|
-    | -------- | --------- |
-    | -m       | Maximum number of historical system events that can be queried. The value ranges from **0** to **1000**. The number of returned system events is not more than the value of this parameter.|
+    | -------- | -------- |
+    | -m | Maximum number of historical system events that can be queried. The value ranges from **0** to **1000**. The number of returned system events is not more than the value of this parameter.|
 
     Example:
 
     ```
-    # hisysevent -l -s 20207388633 -e 20207389000 -m 3
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388900,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207389000,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    # hisysevent -l -m 2
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388633,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
-    {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""}
+    # hisysevent -l -s 1501964222980 -e 1501964222996 -m 1
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""}
+    ```
+
+## System Event Validity Check
+
+- Enabling system event validity check
+
+    ```
+    hisysevent -v
     ```
+	
+    Description of command options:
+
+    | Option| Description|
+    | -------- | -------- |
+    | -v | Used with the subscription command **-r** and query command **-l**. If system event validity check is enabled, invalid content contained in system events will be highlighted in red.|
 
+    Example:
+
+    ```
+    # hisysevent -v -l -s 1501964222980 -e 1501964222996
+    # The **HAPPEN_TIME** and **VERSION** fields are not configured in the YAML file for the **APP_FREEZE** event that belongs to the **RELIABILITY** domain. Therefore, the two fields are highlighted in red.
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""}
+    # hisysevent -v -r -o "RELIABILITY" -n "APP_FREEZE"
+    {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964644584,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805202404","HAPPEN_TIME":1501964644584,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"11097868872446282676","info_":""}
+    ```
diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent.md b/en/device-dev/subsystems/subsys-dfx-hisysevent.md
index aba11496ba72484a72f37b2c3f424156e52085c5..86ceb227152ca26ec2c50a9be11d7c15b9be6adf 100644
--- a/en/device-dev/subsystems/subsys-dfx-hisysevent.md
+++ b/en/device-dev/subsystems/subsys-dfx-hisysevent.md
@@ -1,5 +1,7 @@
 # HiSysEvent Development<a name="EN-US_TOPIC_0000001195021448"></a>
 
+-   **[HiSysEvent Overview](subsys-dfx-hisysevent-overview.md)**
+
 -   **[HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)**
 
 -   **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)**  
diff --git a/en/device-dev/subsystems/subsys-dfx-hiview.md b/en/device-dev/subsystems/subsys-dfx-hiview.md
new file mode 100644
index 0000000000000000000000000000000000000000..34751c841a6857d8cacfc438a22abf4a7273f7ec
--- /dev/null
+++ b/en/device-dev/subsystems/subsys-dfx-hiview.md
@@ -0,0 +1,197 @@
+# Hiview Development Guide
+
+
+## Introduction
+
+
+### Function Overview
+
+Hiview is a module that provides toolkits for device maintenance across different platforms. It consists of the plugin management platform and the service plugins running on the platform. Hiview works in event-driven mode. The core of Hiview is a collection of HiSysEvent stubs distributed in the system. Formatted events are reported to Hiview through the HiSysEvent API for processing. The following figure shows the data interaction process.
+
+**Figure 1** Data interaction between Hiview modules
+
+![Hiview_module_data_interaction](figure/Hiview_module_data_interaction.png)
+
+1. The service process calls the event logging API to report logged event information and writes the information to the node file.
+2. SysEventSource of the Hiview process asynchronously reads event information from the node file and distributes the event to SysEventPipeline for processing.
+   - The SysEventService plugin verifies events and flushes them to disks.
+   - The Faultlogger plugin processes fault-related events.
+   - The EventLogger plugin collects event-related log information.
+3. On completion of event processing, SysEventPipeline sends the events to the event subscription queue and then dispatches the events to the subscription plugin for processing.
+   - FreezeDetectorPlugin processes screen freezing events.
+   - HiCollieCollector processes suspension events.
+
+### Basic Concepts
+
+Before you get started, familiarize yourself with the following concepts:
+
+- Plug-in
+
+  An independent module running in the Hiview process. A plugin is delivered with the Hiview binary file to implement maintenance and fault management functions independently. Plug-ins can be disassembled independently during compilation, and can be hosted on the platform during running and dynamically configured.
+
+- Pipeline
+
+  An ordered set of event processing plugins. Events entering the pipeline are processed by plugins on the pipeline in sequence.
+
+- Event source
+
+  A special plugin that can produce events. Different from common plugins, a special plugin can be bound to a pipeline, and can produce events and distribute them to the pipeline.
+
+- Pipeline group
+
+  A group of pipelines configured on the same event source.
+
+### Working Principles
+
+Hiview supports plugin development on the plugin management platform and provides the required plugin development capabilities. You can add plugins to the Hiview platform to implement HiSysEvent event processing. Before you get started, you're expected to have a basic understanding of plugin working principles.
+
+#### Plug-in Registration
+
+A plugin can be registered in any of the following modes.
+
+| Mode              | Description                                                        |
+| ------------------ | ------------------------------------------------------------ |
+| Static registration          | Use the **REGISTER(xxx);** macro to register the plugin. Such a plugin cannot be unloaded.|
+| Proxy registration          | Use the **REGISTER_PROXY(xxx);** macro to register the plugin. Such a plugin is not loaded upon startup and can be loaded and unloaded dynamically during system running.|
+| Proxy registration and loading upon startup| Use the **REGISTER_PROXY_WITH_LOADED(xxx);** macro to register the plugin. Such a plugin is loaded upon startup and can be unloaded and loaded dynamically during system running.|
+
+####  Plug-in Event-Driven Modes
+
+There are two event-driven modes available for plugins: pipeline-driven and subscription-driven. The differences are as follows:
+
+- Pipeline-driven plugins need to be configured on the pipeline. After an event is distributed from an event source to the pipeline, the event traverses the plugins configured on the pipeline in sequence for processing.
+- Subscription-driven plugins do not need to be configured on the pipeline. However, a listener needs to be registered with the Hiview platform upon plugin startup, and the plugin needs to implement the event listener function.
+
+#### Plug-in Loading
+
+Depending on your service demand, you can compile all or some plugins into the Hiview binary file.
+
+Multiple plugins can be built into an independent plugin package and preset in the system as an independent **.so** file. One **.so** file corresponds to one **plugin_config** file. For example, **libxxx.z.so** corresponds to the** xxx_plugin_config** file. When the Hiview process starts, it scans for the plugin package (**.so** file) and the corresponding configuration file and loads the plugins in the plugin package.
+
+The plugin package is described as follows:
+
+1. The plugin package runs on the plugin management platform as an independent entity. The plugins, pipelines, or event sources in it provide the same functions as the plugins in the Hiview binary.
+
+2. Plug-ins in the plugin package can be inserted into the Hiview binary pipeline.
+
+
+3. Subscribers, wherever they are located, can receive events sent by the platform based on the subscription rules.
+
+
+## Plug-in Development Guide
+
+
+### When to Use
+
+You can deploy a plugin on the Hiview platform if you want to perform specific service processing on the HiSysEvent events distributed from the event source. The following table describes the APIs used for plugin development.
+
+### Available APIs
+
+The following table lists the APIs related to plugin development. For details about the APIs, see the API Reference.
+
+Table 1 Description of Plugin APIs
+
+| API                                                      | Description                                                        |
+| ------------------------------------------------------------ | ------------------------------------------------------------ |
+| virtual void OnLoad()                                        | Loads plugins. After plugins are loaded, you can call this API to initialize data.|
+| virtual void OnUnload()                                      | Unloads plugins. Before plugins are unloaded, you can call this API to reclaim data.  |
+| virtual bool ReadyToLoad()                                   | Checks whether the current plugin can be loaded when the Hiview starts plugin loading.            |
+| virtual bool OnEvent(std::shared_ptr\<Event\>& event)        | Implements event processing. You can call this API to receive events distributed by the pipeline or platform perform service processing.|
+| virtual bool CanProcessEvent(std::shared_ptr\<Event\> event) | Checks whether an event can traverse backward throughout the entire pipeline. This function takes effect only when the plugin is the first one in the pipeline.|
+| HiviewContext* GetHiviewContext()                            | Obtains the context of the Hiview plugin management platform.                          |
+
+**Table 2** Description of Event APIs
+
+| API                | Description                        |
+| ---------------------- | ---------------------------- |
+| domain_                | Event domain.                    |
+| eventName_             | Event name.                    |
+| happenTime_            | Time when an event occurs.                |
+| jsonExtraInfo_         | Event data in JSON format.          |
+| bool IsPipelineEvent() | Whether an event is a pipeline event.    |
+| bool HasFinish()       | Whether an event can continue to traverse backward.|
+
+### How to Develop
+
+1. Define a service plugin class, namely, **PluginExample**, which inherits from the **Plugin** class.
+
+   ```c++
+   #include "event.h"
+   #include "plugin.h"
+   
+   class PluginExample : public Plugin {
+   public:
+       bool OnEvent(std::shared_ptr<Event>& event) override;
+       void OnLoad() override;
+       void OnUnload() override;
+   };
+   ```
+
+2. In the plugin class implementation code, register the plugin and overwrite the corresponding functions based on the service requirements.
+
+   ```c++
+   #include "plugin_factory.h"
+   
+   // Register the plugin in static registration mode.
+   REGISTER(PluginExample);
+   
+   void PluginExample::OnLoad()
+   {
+       ... // Initialize plugin resources while the plugin is loaded.
+       printf("PluginExample OnLoad \n");
+   }
+   
+   void PluginExample::OnUnload()
+   {
+       ... // Release plugin resources while the plugin is unloaded.
+       printf("PluginExample OnUnload \n");
+   }
+   
+   bool PluginExample::OnEvent(std::shared_ptr<Event>& event)
+   {
+       ... // Perform specific service processing on the event using the event processing function.
+       printf("PluginExample OnEvent \n");
+   
+       // If the plugin focuses only on events of a certain domain, log only the events of this domain.
+       if (event->domain_ == "TEST_DOMAIN") {
+           printf("The event data received is %s \n", event->jsonExtraInfo_);
+           return true;
+       }
+   
+       return false;
+   }
+   ```
+
+3. Configure the plugin in the **plugin_build.json** file and compile the plugin with the Hiview binary file.
+
+   ```json
+   {
+       "plugins": {
+           "PluginExample": {
+               "path": "plugins/PluginExample",
+               "name": "PluginExample"
+           }
+       },
+       "rules": [
+           {
+               "info": {
+                   "loadorder": {
+                       "PluginExample": {
+                           "loadtime": 0
+                       }
+                   },
+                   "pipelines": {
+                       "SysEventPipeline": [
+                          PluginExample
+                       ]
+                   }
+               }
+           }
+       ]
+   }
+   ```
+
+
+## Reference
+
+For more information about the source code and usage of HiSysEvent, access the Hiview code repository(https://gitee.com/openharmony/hiviewdfx_hiview).
diff --git a/en/device-dev/subsystems/subsys-dfx-overview.md b/en/device-dev/subsystems/subsys-dfx-overview.md
index 10d57285496c2534e1f78ea3eecac6bc40449fd9..17f65f4ffd4ef6a59f363fcf80419e6fc2cf9cbe 100644
--- a/en/device-dev/subsystems/subsys-dfx-overview.md
+++ b/en/device-dev/subsystems/subsys-dfx-overview.md
@@ -12,6 +12,7 @@ The DFX subsystem provides the following functions:
 - HiChecker: implements defect scanning. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
 - HiDumper: exports system information. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
 - FaultLogger: implements crash detection. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
+- Hiview: implements device maintenance across different platforms. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
 
 ## Basic Concepts<a name="section5635178134811"></a>
 
diff --git a/en/device-dev/subsystems/subsys-dfx.md b/en/device-dev/subsystems/subsys-dfx.md
index 6ede18fca604394d71e5663f631568a7a911561b..f01cb1eb3be14fb4a3519012fdbaf94599b82a0a 100644
--- a/en/device-dev/subsystems/subsys-dfx.md
+++ b/en/device-dev/subsystems/subsys-dfx.md
@@ -8,3 +8,4 @@
 - **[HiSysEvent Development](subsys-dfx-hisysevent.md)**
 - **[HiDumper Development](subsys-dfx-hidumper.md)**
 - **[HiChecker Development](subsys-dfx-hichecker.md)**
+- **[Hiview Development](subsys-dfx-hiview.md)**
diff --git a/en/device-dev/subsystems/subsys-sensor-overview.md b/en/device-dev/subsystems/subsys-sensor-overview.md
index baaa934fe1e2b498a5c3668ae2bc6b6b53601a9d..91a8187098ba32d0c7e841f06568947ffaa26b4f 100644
--- a/en/device-dev/subsystems/subsys-sensor-overview.md
+++ b/en/device-dev/subsystems/subsys-sensor-overview.md
@@ -1,96 +1,31 @@
-# Sensor Overview<a name="EN-US_TOPIC_0000001092893507"></a>
+# Service Overview
 
-## Introduction<a name="section667413271505"></a>
+
+## Introduction
 
 The pan-sensor service subsystem provides a lightweight sensor service framework. You can call APIs offered by this framework to query the sensor list, enable or disable a sensor, and subscribe to or unsubscribe from sensor data. The following figure shows the architecture of the lightweight sensor framework.
 
-**Figure 1**  Sensor service framework
+  **Figure 1** Sensor service framework
+
+  ![](figure/en-us_image_0000001077724150.png)
+
+- Sensor API: provides APIs for performing basic operations on sensors, including querying the sensor list, subscribing to or unsubscribing from sensor data, and executing control commands. This module makes application development simpler.
 
-![](figure/en-us_image_0000001077724150.png)
+- Sensor Framework: manages sensor data subscription, creates and destroys data channels, and implements communication with the Sensor Service module.
 
--   Sensor API: provides APIs for performing basic operations on sensors, including querying the sensor list, subscribing to or unsubscribing from sensor data, and executing control commands. This module makes application development simpler.
--   Sensor Framework: manages sensor data subscription, creates and destroys data channels, and implements communication with the Sensor Service module.
--   Sensor Service: interacts with the HDF module to receive, parse, and distribute data, manages sensors on hardware and sensor data reporting, and controls sensor permissions.
+- Sensor Service: interacts with the HDF module to receive, parse, and distribute data, manages sensors on hardware and sensor data reporting, and controls sensor permissions.
 
-## Available APIs<a name="section7255104114110"></a>
 
-**Table  1**  APIs of the sensor framework
+## Available APIs
 
-<a name="table203963834718"></a>
-<table><thead align="left"><tr id="row173964834716"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p20921103144918"><a name="p20921103144918"></a><a name="p20921103144918"></a>Function</p>
-</th>
-<th class="cellrowborder" valign="top" width="25.722572257225725%" id="mcps1.2.4.1.2"><p id="p109216317495"><a name="p109216317495"></a><a name="p109216317495"></a>Description</p>
-</th>
-<th class="cellrowborder" valign="top" width="40.94409440944094%" id="mcps1.2.4.1.3"><p id="p1192112316497"><a name="p1192112316497"></a><a name="p1192112316497"></a>Parameter</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row4397198154712"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p11001322173912"><a name="p11001322173912"></a><a name="p11001322173912"></a>int32_t <strong id="b792815314396"><a name="b792815314396"></a><a name="b792815314396"></a>GetAllSensors</strong>(SensorInfo **sensorInfo, int32_t *count)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p199227318499"><a name="p199227318499"></a><a name="p199227318499"></a>Obtains information about all sensors in the system.</p>
-<p id="p9922153110492"><a name="p9922153110492"></a><a name="p9922153110492"></a><strong id="b2922183114917"><a name="b2922183114917"></a><a name="b2922183114917"></a>Return value</strong>: Returns <strong id="b15367115154516"><a name="b15367115154516"></a><a name="b15367115154516"></a>0</strong> if the information is obtained; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p4922173116498"><a name="p4922173116498"></a><a name="p4922173116498"></a><strong id="b633817407478"><a name="b633817407478"></a><a name="b633817407478"></a>sensorInfo</strong> (not NULL): information about all sensors in the system</p>
-<p id="p18922931134919"><a name="p18922931134919"></a><a name="p18922931134919"></a><strong id="b8845650154711"><a name="b8845650154711"></a><a name="b8845650154711"></a>count</strong> (not NULL): total number of sensors in the system</p>
-</td>
-</tr>
-<tr id="row1839716854716"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p38874252376"><a name="p38874252376"></a><a name="p38874252376"></a>int32_t <strong id="b17835184513919"><a name="b17835184513919"></a><a name="b17835184513919"></a>SubscribeSensor</strong>(int32_t sensorTypeId, SensorUser *user)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p14922113114914"><a name="p14922113114914"></a><a name="p14922113114914"></a>Subscribes to sensor data. The system will report the obtained sensor data to the subscriber.</p>
-<p id="p5922331114916"><a name="p5922331114916"></a><a name="p5922331114916"></a><strong id="b7756437172"><a name="b7756437172"></a><a name="b7756437172"></a>Return value</strong>: Returns <strong id="b37618371173"><a name="b37618371173"></a><a name="b37618371173"></a>0</strong> if the subscription is successful; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p17922183120490"><a name="p17922183120490"></a><a name="p17922183120490"></a><strong id="b383183812561"><a name="b383183812561"></a><a name="b383183812561"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p8922193154917"><a name="p8922193154917"></a><a name="p8922193154917"></a><strong id="b15825101814564"><a name="b15825101814564"></a><a name="b15825101814564"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-</td>
-</tr>
-<tr id="row6397138134713"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p6923143184914"><a name="p6923143184914"></a><a name="p6923143184914"></a>int32_t <strong id="b338673044313"><a name="b338673044313"></a><a name="b338673044313"></a>UnsubscribeSensor</strong>(int32_t sensorTypeId, SensorUser *user)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p792383116495"><a name="p792383116495"></a><a name="p792383116495"></a>Unsubscribes from sensor data. The system will no longer report sensor data to the subscriber.</p>
-<p id="p139231531184912"><a name="p139231531184912"></a><a name="p139231531184912"></a><strong id="b1698214914415"><a name="b1698214914415"></a><a name="b1698214914415"></a>Return value</strong>: Returns <strong id="b20983690447"><a name="b20983690447"></a><a name="b20983690447"></a>0</strong> if the unsubscription is successful; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p178981446572"><a name="p178981446572"></a><a name="p178981446572"></a><strong id="b5189141634413"><a name="b5189141634413"></a><a name="b5189141634413"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p178988410573"><a name="p178988410573"></a><a name="p178988410573"></a><strong id="b56761418164417"><a name="b56761418164417"></a><a name="b56761418164417"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-</td>
-</tr>
-<tr id="row43981283476"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p992473112496"><a name="p992473112496"></a><a name="p992473112496"></a>int32_t <strong id="b16691194511438"><a name="b16691194511438"></a><a name="b16691194511438"></a>SetBatch</strong>(int32_t sensorTypeId, SensorUser *user, int64_t samplingInterval, int64_t reportInterval)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p14924831124913"><a name="p14924831124913"></a><a name="p14924831124913"></a>Sets the data sampling interval and data reporting interval for the specified sensor.</p>
-<p id="p14924203134910"><a name="p14924203134910"></a><a name="p14924203134910"></a><strong id="b181731732463"><a name="b181731732463"></a><a name="b181731732463"></a>Return value</strong>: Returns <strong id="b417363104616"><a name="b417363104616"></a><a name="b417363104616"></a>0</strong> if the setting is successful; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p189243318494"><a name="p189243318494"></a><a name="p189243318494"></a><strong id="b4102102264610"><a name="b4102102264610"></a><a name="b4102102264610"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p167364493594"><a name="p167364493594"></a><a name="p167364493594"></a><strong id="b930712416461"><a name="b930712416461"></a><a name="b930712416461"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-<p id="p1692403115493"><a name="p1692403115493"></a><a name="p1692403115493"></a><strong id="b1866310191589"><a name="b1866310191589"></a><a name="b1866310191589"></a>samplingInterval</strong>: sensor data sampling interval, in nanoseconds</p>
-<p id="p392443174917"><a name="p392443174917"></a><a name="p392443174917"></a><strong id="b851892113817"><a name="b851892113817"></a><a name="b851892113817"></a>reportInterval</strong>: sensor data reporting interval, in nanoseconds</p>
-</td>
-</tr>
-<tr id="row439813812472"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p17925631194911"><a name="p17925631194911"></a><a name="p17925631194911"></a>int32_t <strong id="b12311455154316"><a name="b12311455154316"></a><a name="b12311455154316"></a>ActivateSensor</strong>(int32_t sensorTypeId, SensorUser *user)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p1892583174920"><a name="p1892583174920"></a><a name="p1892583174920"></a>Enables the specified sensor that has been subscribed to.</p>
-<p id="p16925113119497"><a name="p16925113119497"></a><a name="p16925113119497"></a><strong id="b1190011547620"><a name="b1190011547620"></a><a name="b1190011547620"></a>Return value</strong>: Returns <strong id="b1690019543620"><a name="b1690019543620"></a><a name="b1690019543620"></a>0</strong> if the sensor is successfully enabled; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p59255313493"><a name="p59255313493"></a><a name="p59255313493"></a><strong id="b269629475"><a name="b269629475"></a><a name="b269629475"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p1692517314499"><a name="p1692517314499"></a><a name="p1692517314499"></a><strong id="b1739417117716"><a name="b1739417117716"></a><a name="b1739417117716"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-</td>
-</tr>
-<tr id="row123998813470"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p492513120494"><a name="p492513120494"></a><a name="p492513120494"></a>int32_t <strong id="b1612146204413"><a name="b1612146204413"></a><a name="b1612146204413"></a>DeactivateSensor</strong>(int32_t sensorTypeId, SensorUser *user)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p12925143118492"><a name="p12925143118492"></a><a name="p12925143118492"></a>Disables an enabled sensor.</p>
-<p id="p5926031124914"><a name="p5926031124914"></a><a name="p5926031124914"></a><strong id="b13736235877"><a name="b13736235877"></a><a name="b13736235877"></a>Return value</strong>: Returns <strong id="b273720356714"><a name="b273720356714"></a><a name="b273720356714"></a>0</strong> if the sensor is successfully disabled; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p1692683112499"><a name="p1692683112499"></a><a name="p1692683112499"></a><strong id="b1452911411574"><a name="b1452911411574"></a><a name="b1452911411574"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p1081949113"><a name="p1081949113"></a><a name="p1081949113"></a><strong id="b11188443178"><a name="b11188443178"></a><a name="b11188443178"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-</td>
-</tr>
-<tr id="row939914814478"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p11530101054411"><a name="p11530101054411"></a><a name="p11530101054411"></a>int32_t <strong id="b1999420216444"><a name="b1999420216444"></a><a name="b1999420216444"></a>SetMode</strong>(int32_t sensorTypeId, SensorUser *user, int32_t mode)</p>
-</td>
-<td class="cellrowborder" valign="top" width="25.722572257225725%" headers="mcps1.2.4.1.2 "><p id="p892633118493"><a name="p892633118493"></a><a name="p892633118493"></a>Sets the data reporting mode for the specified sensor.</p>
-<p id="p1927031114910"><a name="p1927031114910"></a><a name="p1927031114910"></a><strong id="b456216221484"><a name="b456216221484"></a><a name="b456216221484"></a>Return value</strong>: Returns <strong id="b12562112214811"><a name="b12562112214811"></a><a name="b12562112214811"></a>0</strong> if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.</p>
-</td>
-<td class="cellrowborder" valign="top" width="40.94409440944094%" headers="mcps1.2.4.1.3 "><p id="p119277312492"><a name="p119277312492"></a><a name="p119277312492"></a><strong id="b19747144015816"><a name="b19747144015816"></a><a name="b19747144015816"></a>sensorTypeId</strong>: ID of a sensor type</p>
-<p id="p159271031184915"><a name="p159271031184915"></a><a name="p159271031184915"></a><strong id="b1367209917"><a name="b1367209917"></a><a name="b1367209917"></a>user</strong> (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.</p>
-<p id="p0927173154916"><a name="p0927173154916"></a><a name="p0927173154916"></a><strong id="b3914356101520"><a name="b3914356101520"></a><a name="b3914356101520"></a>mode</strong>: data reporting mode of the sensor</p>
-</td>
-</tr>
-</tbody>
-</table>
+  **Table 1** APIs of the sensor framework
 
+| API| Description| Parameter|
+| -------- | -------- | -------- |
+| int32_t  **GetAllSensors**( <br> SensorInfo  \*\*sensorIn <br> fo,  int32_t  \*count) | Obtains information about all sensors in the system.<br>**Return value**: Returns **0** if the information is obtained; returns a non-zero value otherwise.| **sensorInfo** (not NULL): information about all sensors in the system<br>**count** (not NULL): total number of sensors in the system|
+| int32_t  **SubscribeSensor** <br> (int32_t  sensorTypeId, <br>   SensorUser  \*user) | Subscribes to sensor data. The system will report the obtained sensor data to the subscriber.<br>**Return value**: Returns **0** if the subscription is successful; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.|
+| int32_t  **UnsubscribeSensor** <br> (int32_t  sensorTypeId,  SensorUser  \*user) | Unsubscribes from sensor data. The system will no longer report sensor data to the subscriber.<br>**Return value**: Returns **0** if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.|
+| int32_t  **SetBatch**(int32_t  sensorTypeId,  SensorUser <br>   \*user,  int64_t  samplingInterval,  int64_t  reportInterval) | Sets the data sampling interval and data reporting interval for the specified sensor.<br>**Return value**: Returns **0** if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.<br>**samplingInterval**: sensor data sampling interval, in nanoseconds<br>**reportInterval**: sensor data reporting interval, in nanoseconds|
+| int32_t  **ActivateSensor**(int32_t  sensorTypeId, <br>   SensorUser  \*user) | Enables the specified sensor that has been subscribed to.<br>**Return value**: Returns **0** if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.|
+| int32_t  **DeactivateSensor**(int32_t  sensor <br> TypeId,  SensorUser  \*user) | Disables an enabled sensor.<br>**Return value**: Returns **0** if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.|
+| int32_t  **SetMode**(int32_t  sensorTypeId, <br>   SensorUser  \*user,  int32_t  mode) | Sets the data reporting mode for the specified sensor.<br>**Return value**: Returns **0** if the sensor data reporting mode is successfully set; returns a non-zero value otherwise.| **sensorTypeId**: ID of a sensor type<br>**user** (not NULL): sensor subscriber that requests sensor data. A subscriber can obtain data from only one sensor.<br>**mode**: data reporting mode of the sensor|
diff --git a/en/device-dev/subsystems/subsys-xts-guide.md b/en/device-dev/subsystems/subsys-xts-guide.md
index d9ee3223e3aa282f5e7e847a07f7a20b00c628c5..90992e3e0449cd9a883ba5ddba171f5ae8fefb9d 100644
--- a/en/device-dev/subsystems/subsys-xts-guide.md
+++ b/en/device-dev/subsystems/subsys-xts-guide.md
@@ -2,7 +2,7 @@
 
 ## Introduction
 
-The X test suite \(XTS\) subsystem contains a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite \(ACTS\) and the device compatibility test suite \(DCTS\) that will be supported in the future.
+The X test suite (XTS) subsystem contains a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite (ACTS) and the device compatibility test suite (DCTS) that will be supported in the future.
 
 This subsystem contains the ACTS and **tools** software package.
 
@@ -19,7 +19,7 @@ OpenHarmony supports the following systems:
 
 -   Small system
 
-    A small system runs on a device that comes with memory greater than or equal to 1 MiB and application processors such as ARM Cortex-A. It provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. Typical products include smart home IP cameras, electronic cat eyes, and routers, and event data recorders \(EDRs\) for smart travel.
+    A small system runs on a device that comes with memory greater than or equal to 1 MiB and application processors such as ARM Cortex-A. It provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. Typical products include smart home IP cameras, electronic cat eyes, and routers, and event data recorders (EDRs) for smart travel.
 
 -   Standard system
 
@@ -34,7 +34,7 @@ OpenHarmony supports the following systems:
 │   └── subsystem        # Source code of subsystem test cases for the standard system
 │   └── subsystem_lite   # Source code of subsystems test cases for mini and small systems
 │   └── BUILD.gn         # Build configuration of test cases for the standard system
-│   └── build_lite      
+│   └── build_lite       # Build configuration of test cases for the mini and small systems.
 │       └── BUILD.gn     # Build configuration of test cases for mini and small systems
 └── tools                # Test tool code
 ```
@@ -72,9 +72,9 @@ Test cases for the mini system must be developed in C, and those for the small s
 | Performance | Tests the processing capability of the tested object under specific preset conditions and load models. The processing capability is measured by the service volume that can be processed in a unit time, for example, call per second, frame per second, or event processing volume per second. |
 | Power | Tests the power consumption of the tested object in a certain period of time under specific preset conditions and load models. |
 | Reliability | Tests the service performance of the tested object under common and uncommon input conditions, or specified service volume pressure and long-term continuous running pressure. The test covers stability, pressure handling, fault injection, and Monkey test times. |
-| Security | <ul><li>Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.</li><li>Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.</li><li>Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT).</li></ul> |
+| Security | Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.<br/>Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.<br/> Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT). |
 | Global | Tests the internationalized data and localization capabilities of the tested object, including multi-language display, various input/output habits, time formats, and regional features, such as currency, time, and culture taboos. |
-| Compatibility | <ul><li>Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.</li><li>Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.</li><li>Tests software compatibility with related hardware.</li></ul> |
+| Compatibility | Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.<br/>Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.<br/>Tests software compatibility with related hardware. |
 | User | Tests user experience of the object in real user scenarios. All conclusions and comments should come from the users, which are all subjective evaluation in this case. |
 | Standard  | Tests the compliance with industry and company-specific standards, protocols, and specifications. The standards here do not include any security standards that should be classified into the security test. |
 | Safety | Tests the safety property of the tested object to avoid possible hazards to personal safety, health, and the object itself. |
@@ -92,107 +92,109 @@ The test framework and programming language vary with the system type.
 | Small | HCPPTest | C++ |
 | Standard | HJSUnit and HCPPTest | JavaScript and C++ |
 
-### Developing Test Cases in C (for the Mini System\)
+### Developing Test Cases in C (for the Mini System)
 
 **Developing Test Cases for the Mini System**
 
 HCTest and the C language are used to develop test cases. HCTest is enhanced and adapted based on the open-source test framework Unity.
 
-1.  Define the test case directory. The test cases are stored to **test/xts/acts**.
+1. Define the test case directory. The test cases are stored to **test/xts/acts**.
+
+   ```
+   ├── acts
+   │ └──subsystem_lite
+   │ │ └── module_hal
+   │ │ │ └── BUILD.gn
+   │ │ │ └── src
+   │ └──build_lite
+   │ │ └── BUILD.gn
+   ```
 
-    ```
-    ├── acts
-    │ └──subsystem_lite
-    │ │ └── module_hal
-    │ │ │ └── BUILD.gn
-    │ │ │ └── src
-    │ └──build_lite
-    │ │ └── BUILD.gn
-    ```
 
 2. Write the test case in the **src** directory.
 
-   a) Include the test framework header file.
+   (1) Include the test framework header file.
 
-   ```
-   #include "hctest.h"
-   ```
+     ```
+     #include "hctest.h"
+     ```
 
-   b) Use the **LITE\_TEST\_SUIT** macro to define names of the subsystem, module, and test suite.
+   (2) Use the **LITE_TEST_SUIT** macro to define names of the subsystem, module, and test suite.
 
-   ```
-   /** 
-   * @brief  Registers a test suite named IntTestSuite.
-   * @param  test Subsystem name
-   * @param  example Module name
-   * @param  IntTestSuite Test suite name
-   */
-   LITE_TEST_SUIT(test, example, IntTestSuite);
-   ```
+     ```
+     /**
+     * @brief  register a test suite named "IntTestSuite"  
+     * @param  test subsystem name  
+     * @param  example module name  
+     * @param  IntTestSuite test suite name  
+     */
+     LITE_TEST_SUIT(test, example, IntTestSuite);
+     ```
 
-   c) Define Setup and TearDown.
+   (3) Define Setup and TearDown.
 
-   ​    Format: Test suite name+Setup, Test suite name+TearDown.
+      Format: Test suite name+Setup, Test suite name+TearDown.
+	  The Setup and TearDown functions must exist, but function bodies can be empty.  
+         
+   (4) Use the **LITE_TEST_CASE** macro to write the test case.
 
-   ​    The Setup and TearDown functions must exist, but function bodies can be empty.
+      Three parameters are involved: test suite name, test case name, and test case properties (including type, granularity, and level).
+	
+	  ```
+	  LITE_TEST_CASE(IntTestSuite, TestCase001, Function | MediumTest | Level1) 
+	  {
+	  // Do something.
+	   };
+     ```
+	
+   (5) Use the **RUN_TEST_SUITE** macro to register the test suite.  
 
-   d) Use the **LITE\_TEST\_CASE** macro to write the test case.
+      ```
+	  RUN_TEST_SUITE(IntTestSuite);
+	   ```
 
-   ​    Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\).
+3. Create the configuration file (**BUILD.gn**) of the test module.
 
-   ```
-   LITE_TEST_CASE(IntTestSuite, TestCase001, Function | MediumTest | Level1) 
-   {  
-     // Do something 
-   };
-   ```
+   Create a **BUILD.gn** (example) file in each test module directory, and specify the name of the built static library and its dependent header files and libraries. 
 
-   e) Use the **RUN\_TEST\_SUITE** macro to register the test suite.
+   The format is as follows:
 
    ```
-   RUN_TEST_SUITE(IntTestSuite);
+   import("//test/xts/tools/lite/build/suite_lite.gni")
+   hctest_suite("ActsDemoTest") {
+       suite_name = "acts"
+       sources = [
+           "src/test_demo.c",
+       ]
+       include_dirs = [ ]
+       cflags = [ "-Wno-error" ]
+   }
    ```
 
-3.  Create the configuration file \(**BUILD.gn**\) of the test module.
-
-    Create a **BUILD.gn** \(example\) file in each test module directory, and specify the name of the built static library and its dependent header files and libraries. The format is as follows:
-
-    ```
-    import("//test/xts/tools/lite/build/suite_lite.gni")
-    hctest_suite("ActsDemoTest") {
-        suite_name = "acts"
-        sources = [
-            "src/test_demo.c",
-        ]
-        include_dirs = [ ]
-        cflags = [ "-Wno-error" ]
-    }
-    ```
+4. Add build options to the **BUILD.gn** file in the **acts** directory.
 
-4.  Add build options to the **BUILD.gn** file in the **acts** directory.
+   You need to add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory.
 
-    You need to add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory.
-
-    ```
-    lite_component("acts") {  
-        ...
-        if(board_name == "liteos_m") {
-            features += [    
-                ...
-                "//xts/acts/subsystem_lite/module_hal:ActsDemoTest"
-            ]    
-        }
-    }
-    ```
+   ```
+   lite_component("acts") {  
+       ...
+       if(board_name == "liteos_m") {
+           features += [    
+               ...
+               "//xts/acts/subsystem_lite/module_hal:ActsDemoTest"
+           ]    
+       }
+   }
+   ```
 
-5.  Run build commands.
+5. Run build commands.
 
-    Test suites are built along with the OS version. The ACTS is built together with the debug version.
+   Test suites are built along with the OS version. The ACTS is built together with the debug version.
 
-    >![](../public_sys-resources/icon-note.gif) **NOTE**<br/> The ACTS build middleware is a static library, which will be linked to the image.
+   >![](../public_sys-resources/icon-note.gif) **NOTE**<br/> The ACTS build middleware is a static library, which will be linked to the image.
 
 
-### Executing Test Cases in C (for the Mini System\)
+### Executing Test Cases in C (for the Mini System)
 
 **Executing Test Cases for the Mini System**
 
@@ -211,120 +213,122 @@ The log for each test suite starts with "Start to run test suite:"  and ends wit
 
 ### Developing Test Cases in C++ (for Standard and Small Systems)
 
-**Developing Test Cases for Small-System Devices** \(for the standard system, see the **global/i18n\_standard directory**.\)
+**Developing Test Cases for Small-System Devices** (for the standard system, see the **global/i18n_standard directory**.)
 
 The HCPPTest framework, an enhanced version based on the open-source framework Googletest, is used.
 
-1.  Define the test case directory. The test cases are stored to **test/xts/acts**.
-
-    ```
-    ├── acts
-    │ └──subsystem_lite
-    │ │ └── module_posix
-    │ │ │ └── BUILD.gn
-    │ │ │ └── src
-    │ └──build_lite
-    │ │ └── BUILD.gn
-    ```
-
-2. Write the test case in the **src** directory.
-
-   a) Include the test framework header file.
-
-   ​    The following statement includes **gtest.h**.
+1. Define the test case directory. The test cases are stored to **test/xts/acts**.
 
    ```
-   #include "gtest/gtest.h"
+   ├── acts
+   │ └──subsystem_lite
+   │ │ └── module_posix
+   │ │ │ └── BUILD.gn
+   │ │ │ └── src
+   │ └──build_lite
+   │ │ └── BUILD.gn
    ```
 
-   b) Define Setup and TearDown.
-
-   ```
-   using namespace std;
-   using namespace testing::ext;
-   class TestSuite: public testing::Test {
-   protected:
-   // Preset action of the test suite, which is executed before the first test case
-   static void SetUpTestCase(void){
-   }
-   // Test suite cleanup action, which is executed after the last test case
-   static void TearDownTestCase(void){
-   }
-   // Preset action of the test case
-   virtual void SetUp()
-   {
-   }
-   // Cleanup action of the test case
-   virtual void TearDown()
-   {
-   }
-   };
-   ```
-
-   c) Use the **HWTEST** or **HWTEST\_F** macro to write the test case.
-
-   ​    **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation.
-
-   ​    **HWTEST\_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation.
-
-   ​    Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\).
+2. Write the test case in the **src** directory.
 
-   ```
-   HWTEST_F(TestSuite, TestCase_0001, Function | MediumTest | Level1) {
-   // Do something
-   }
-   ```
+   (1) Include the test framework.
+
+      Include **gtest.h**.
+	  ```
+	  #include "gtest/gtest.h"
+	  ```
+
+
+   (2) Define Setup and TearDown.
+
+      ```
+      using namespace std;
+      using namespace testing::ext;
+      class TestSuite: public testing::Test {
+      protected:
+      // Preset action of the test suite, which is executed before the first test case
+      static void SetUpTestCase(void){
+      }
+      // Test suite cleanup action, which is executed after the last test case
+      static void TearDownTestCase(void){
+      }
+     // Preset action of the test case
+     virtual void SetUp()
+     {
+     }
+     // Cleanup action of the test case
+     virtual void TearDown()
+     {
+      }
+      };
+     ```
+
+
+   (3) Use the **HWTEST** or **HWTEST_F** macro to write the test case.
+
+     **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation.
+    
+     **HWTEST_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation.
+     
+     Three parameters are involved: test suite name, test case name, and test case properties (including type, granularity, and level).
+     
+     ```
+     HWTEST_F(TestSuite, TestCase_0001, Function | MediumTest | Level1) {
+     // Do something
+     ```
 
-3.  Create a configuration file \(**BUILD.gn**\) of the test module.
+3.  Create a configuration file (**BUILD.gn**) of the test module.
 
     Create a **BUILD.gn** file in each test module directory, and specify the name of the built static library and its dependent header files and libraries. Each test module is independently built into a **.bin** executable file, which can be directly pushed to the development board for testing.
 
     Example:
-
-    ```
-    import("//test/xts/tools/lite/build/suite_lite.gni")
-    hcpptest_suite("ActsDemoTest") {
-        suite_name = "acts"
-        sources = [
-            "src/TestDemo.cpp"
-        ]
-    
-        include_dirs = [
-            "src",
-            ...
-        ]
-        deps = [
-            ...
-        ]
-        cflags = [ "-Wno-error" ]
-    }
+	
+	```
+	import("//test/xts/tools/lite/build/suite_lite.gni")
+	hcpptest_suite("ActsDemoTest") {
+	   suite_name = "acts"
+       sources = [
+           "src/TestDemo.cpp"
+       ]
+      
+       include_dirs = [
+           "src",
+           ...
+       ]
+       deps = [
+           ...
+       ]
+       cflags = [ "-Wno-error" ]
+	}
+	```
     
-    ```
-
 4.  Add build options to the **BUILD.gn** file in the **acts** directory.
 
-    Add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory.
+    Add the test module to the **test/xts/acts/build_lite/BUILD.gn** script in the **acts** directory.
+	
+	```
+	lite_component("acts") {  
+	...
+	else if(board_name == "liteos_a") {
+	        features += [
+			...
+			"//xts/acts/subsystem_lite/module_posix:ActsDemoTest"
+			]
+		}
+	}
+	```
 
-    ```
-     lite_component("acts") {  
-    ...
-    else if(board_name == "liteos_a") {
-            features += [
-                ...
-                "//xts/acts/subsystem_lite/module_posix:ActsDemoTest"
-            ]
-        }
-    }
-    ```
 
 5.  Run build commands.
 
     Test suites are built along with the OS version. The ACTS is built together with the debug version.
 
-    >![](../public_sys-resources/icon-note.gif) **NOTE**<br/> The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the **suites\\acts** directory of the build result.
+    >![](../public_sys-resources/icon-note.gif) **NOTE**
+	>
+	>The ACTS for the small system is independently built to an executable file (.bin) and archived in the **suites\acts** directory of the build result.
 
 
-### Executing Test Cases in C++ (for Standard and Small Systems\)
+### Executing Test Cases in C++ (for Standard and Small Systems)
 
 **Executing Test Cases for the Small System**
 
@@ -332,24 +336,29 @@ Currently, test cases are shared by the NFS and mounted to the development board
 
 **Setting Up the Environment**
 
-1.  Use a network cable or wireless network to connect the development board to your PC.
-2.  Configure the IP address, subnet mask, and gateway for the development board. Ensure that the development board and the PC are in the same network segment.
-3.  Install and register the NFS server on the PC and start the NFS service.
+1. Use a network cable or wireless network to connect the development board to your PC.
+
+2. Configure the IP address, subnet mask, and gateway for the development board. Ensure that the development board and the PC are in the same network segment.
+
+3. Install and register the NFS server on the PC and start the NFS service.
+
 4.  Run the **mount** command for the development board to ensure that the development board can access NFS shared files on the PC.
 
     Format: **mount** _NFS server IP address_**:/**_NFS shared directory_ **/**_development board directory_ **nfs**
 
-    Example:
+    Example: 
 
     ```
     mount 192.168.1.10:/nfs /nfs nfs
     ```
+    
+    
 
 **Executing Test Cases**
 
 Execute **ActsDemoTest.bin** to trigger test case execution, and analyze serial port logs generated after the execution is complete.
 
-### Developing Test Cases in JavaScript (for the Standard System\)
+### Developing Test Cases in JavaScript (for the Standard System)
 
 The HJSUnit framework is used to support automated test of OpenHarmony apps that are developed using the JavaScript language based on the JS application framework.
 
@@ -366,73 +375,82 @@ The test cases are developed with the JavaScript language and must meet the prog
 | beforeEach | Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the action function as the only parameter. | No |
 | afterEach | Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the clear function as the only parameter. | No |
 | describe | Defines a test suite. You can pass two parameters: test suite name and test suite function. The describe statement supports nesting. You can use beforeall, beforeEach, afterEach, and afterAll in each describe statement. | Yes |
-| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function. <br>**Usage of the filter parameter:** <br>The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations: <br><ul><li>Bit 0: whether the filter parameter takes effect. 1 means that the test case is used for the function test and other settings of the parameter do not take effect.</li><li>Bits 0-10: test case categories</li><li>Bits 16-18: test case scales</li><li>Bits 24-28: test levels</li></ul>**Test case categories**: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively. <br>**Test case scales**: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively. <br>**Test levels**: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively. | Yes |
+| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function. <br>**Filter parameter:** <br/>The value is a 32-bit integer. Setting different bits to 1 means different configurations.<br/> - Setting bit 0 to **1** means bypassing the filter. <br>- Setting bits 0-10 to **1** specifies the test case type, which can be FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.<br>- Setting bits 16-18 to **1** specifies the test case scale, which can be SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.<br>- Seting bits 24-28 to **1** specifies the test level, which can be LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively.<br> | Yes |
 
 Use the standard syntax of Jasmine to write test cases. The ES6 specification is supported.
 
 1.  Define the test case directory. The test cases are stored in the **entry/src/main/js/test** directory.
 
     ```
-    ├── BUILD.gn   
-    │ └──entry
-    │ │ └──src
-    │ │ │ └──main
-    │ │ │ │ └──js
-    │ │ │ │ │ └──default               
-    │ │ │ │ │ │ └──pages
-    │ │ │ │ │ │ │ └──index             
-    │ │ │ │ │ │ │ │ └──index.js        # Entry file
-     │ │ │ │ │ └──test                  # Test code
-    │ │ │ └── resources                # HAP resources
-    │ │ │ └── config.json              # HAP configuration file
-    ```
+	├── BUILD.gn   
+	│ └──entry
+	│ │ └──src
+	│ │ │ └──main
+	│ │ │ │ └──js
+	│ │ │ │ │ └──default
+	│ │ │ │ │ │ └──pages
+	│ │ │ │ │ │ │ └──index
+	│ │ │ │ │ │ │ │ └──index.js        # Entry file
+	│ │ │ │ │ └──test                  # Test code directory  
+	│ │ │ └── resources                # HAP resources
+	│ │ │ └── config.json              # HAP configuration file
+	```
 
-2.  Start the JS test framework and load test cases. The following is an example for **index.js**.
 
-    ```
-    // Start the JS test framework and load test cases.
+2. Start the JS test framework and load test cases. 
+
+   The following is an example for **index.js**.
+
+   ```
+   // Start the JS test framework and load test cases.
     import {Core, ExpectExtend} from 'deccjsunit/index'
     
     export default {
-        data: {
-            title: ""
-        },
-        onInit() {
-            this.title = this.$t('strings.world');
-        },
-        onShow() {
-            console.info('onShow finish')
-            const core = Core.getInstance()
-            const expectExtend = new ExpectExtend({
-                'id': 'extend'
-            })
-            core.addService('expect', expectExtend)
-            core.init()
-            const configService = core.getDefaultService('config')
-            configService.setConfig(this)
-            require('../../../test/List.test')
-            core.execute()
-        },
-        onReady() {
-        },
-    }
-    ```
+       data: {
+   	      title: ""
+   	},
+       onInit() {
+          this.title = this.$t('strings.world');
+      },
+       onShow() {
+          console.info('onShow finish')
+          const core = Core.getInstance()
+          const expectExtend = new ExpectExtend({
+              'id': 'extend'
+          })
+          core.addService('expect', expectExtend)
+          core.init()
+          const configService = core.getDefaultService('config')
+          configService.setConfig(this)
+          require('../../../test/List.test')
+          core.execute()
+      },
+      onReady() {
+      },
+   }
+   ```
 
-3.  Write a unit test case by referring to the following example:
+   
 
-    ```
-    // Use HJSUnit to perform the unit test.
-    describe('appInfoTest', function () {    
-        it('app_info_test_001', 0, function () {
-            var info = app.getInfo()
-            expect(info.versionName).assertEqual('1.0')
-            expect(info.versionCode).assertEqual('3')
-        })
-    }) 
-    ```
+3. Write a unit test case.
+
+   The following is an example:
+
+   ```
+   // Example 1: Use HJSUnit to perform a unit test.
+   describe('appInfoTest', function () {    
+      it('app_info_test_001', 0, function () {
+          var info = app.getInfo()
+   	   expect(info.versionName).assertEqual('1.0')
+   	   expect(info.versionCode).assertEqual('3')
+      })
+   }) 
+   ```
 
+   
 
-### Packaging Test Cases in JavaScript (for the Standard System\)
+
+### Packaging Test Cases in JavaScript (for the Standard System)
 
 For details about how to build a HAP, see the JS application development guide of the standard system [Building and Creating HAPs](https://developer.harmonyos.com/en/docs/documentation/doc-guides/build_overview-0000001055075201).
 
@@ -444,12 +462,15 @@ Run the following command:
 ./build.sh suite=acts system_size=standard
 ```
 
+ 
+
+
 Test case directory: **out/release/suites/acts/testcases**
 
 Test framework and test case directory: **out/release/suites/acts** \(the test suite execution framework is compiled during the build process)
 
 
-## Executing Test Cases in a Full Build (for Small and Standard Systems\)
+## Executing Test Cases in a Full Build (for Small and Standard Systems)
 
 **Setting Up a Test Environment**
 
@@ -468,29 +489,30 @@ Install Python 3.7 or a later version on a Windows environment and ensure that t
 
 **Executing Test Cases**
 
-1.  On the Windows environment, locate the directory in which the test cases are stored \(**out/release/suites/acts**, copied from the Linux server\), go to the directory in the Windows command window, and run **acts\\run.bat**.
+1.  On the Windows environment, locate the directory in which the test cases are stored \(**out/release/suites/acts**, copied from the Linux server), go to the directory in the Windows command window, and run **acts\\run.bat**.
 
-1.  Enter the command for executing the test case.
+2.  Enter the command for executing the test case.
 
     -   Execute all test cases.
 
-        ```
-        run acts
-        ```
-
-        ![](figure/en-us_image_0000001119924146.gif)
-
-    -   Execute the test cases of a module \(view specific module information in **\\acts\\testcases\\**\).
-
-        ```
-        run –l ActsSamgrTest
-        ```
-
-        ![](figure/en-us_image_0000001166643927.jpg)
-
-    Wait until the test cases are complete.
-
+      ```
+      run acts
+      ```
+      
+      ![](figure/en-us_image_0000001119924146.gif)
+      
+    -   Execute the test cases of a module \(view specific module information in **\acts\testcases\**).
+    
+      ```
+      run –l ActsSamgrTest
+      ```
+      
+      ![](figure/en-us_image_0000001166643927.jpg)
+      
+      You can view specific module information in **\acts\testcases\**.
+      
+      Wait until the test cases are complete.
 
 3.  View the test report.
 
-    Go to **acts\\reports\\**, obtain the current execution record, and open **summary\_report.html** to view the test report.
+    Go to **acts\reports**, obtain the current execution record, and open **summary_report.html** to view the test report.
diff --git a/en/device-dev/website.md b/en/device-dev/website.md
index 7aa6c47b823301d3554a80d04b2c6f9a0c466270..058c142b50164cd3f0e38649a61024b6e8eac8c8 100644
--- a/en/device-dev/website.md
+++ b/en/device-dev/website.md
@@ -24,6 +24,7 @@
     - Appendix
         - [Introduction to the Hi3861 Development Board](quick-start/quickstart-ide-lite-introduction-hi3861.md)
         - [Introduction to the Hi3516 Development Board](quick-start/quickstart-ide-lite-introduction-hi3516.md)
+        - [Overall Description of Compilation Form Factors](quick-start/quickstart-build.md)
   - Getting Started with Mini and Small Systems (Installation Package Mode)
     - [Mini and Small System Overview](quick-start/quickstart-lite-overview.md)
     - [Environment Preparation](quick-start/quickstart-lite-env-setup.md)
@@ -51,6 +52,7 @@
             - [Introduction to the Hi3861 Development Board](quick-start/quickstart-lite-introduction-hi3861.md)
             - [Introduction to the Hi3516 Development Board](quick-start/quickstart-lite-introduction-hi3516.md)
         - [Reference](quick-start/quickstart-lite-reference.md)
+        - [Overall Description of Compilation Form Factors](quick-start/quickstart-build.md)
   - Getting Started with Standard System (IDE Mode, Recommended)
     - [Standard System Overview](quick-start/quickstart-ide-standard-overview.md)
     - Environment Preparation
@@ -71,6 +73,7 @@
     - Appendix
         - [Introduction to the Hi3516 Development Board](quick-start/quickstart-ide-standard-board-introduction-hi3516.md)
         - [Introduction to the RK3568 Development Board](quick-start/quickstart-ide-standard-board-introduction-rk3568.md)
+        - [Overall Description of Compilation Form Factors](quick-start/quickstart-build.md)
   - Getting Started with Standard System (Installation Package Mode)
     - [Standard System Overview](quick-start/quickstart-standard-overview.md)
     - [Setting Up Environments for Standard System](quick-start/quickstart-standard-env-setup.md)
@@ -94,6 +97,7 @@
             - [Introduction to the Hi3516 Development Board](quick-start/quickstart-standard-board-introduction-hi3516.md)
             - [Introduction to the RK3568 Development Board](quick-start/quickstart-standard-board-introduction-rk3568.md)
         - [Reference](quick-start/quickstart-standard-reference.md)
+        - [Overall Description of Compilation Form Factors](quick-start/quickstart-build.md)
   - [Obtaining Source Code](get-code/sourcecode-acquire.md)
 
 - Compatibility and Security
@@ -379,6 +383,7 @@
       - [Audio](driver/driver-peripherals-audio-des.md)
       - [Camera](driver/driver-peripherals-camera-des.md)
       - [Facial Authentication](driver/driver-peripherals-face_auth-des.md)
+      - [Fingerprint Authentication](driver/driver-peripherals-fingerprint_auth-des.md)
       - [LCD](driver/driver-peripherals-lcd-des.md)
       - [Light](driver/driver-peripherals-light-des.md)
       - [PIN Authentication](driver/driver-peripherals-pinauth-des.md)
@@ -463,7 +468,6 @@
     - [Startup](subsystems/subsys-boot-overview.md)
     - [init Module](subsystems/subsys-boot-init.md)
     - [appspawn Module](subsystems/subsys-boot-appspawn.md)
-    - [appspawn Module for the Standard System](subsystems/subsys-boot-appspawn-standard.md)
     - [bootstrap Module](subsystems/subsys-boot-bootstrap.md)
     - [syspara Module](subsystems/subsys-boot-syspara.md)
     - [FAQs](subsystems/subsys-boot-faqs.md)
diff --git a/en/glossary.md b/en/glossary.md
index 40187dc8d5a70764b41a4f94e513ca1a6fa20a62..b5ce34fad0e1a72c8e4ba3520e336189175f7d64 100644
--- a/en/glossary.md
+++ b/en/glossary.md
@@ -29,9 +29,9 @@
 
 ## D
 
-- ### DevEco Studio for Embedded
+- ### DevEco Device Tool
 
-    Integrated development environment (IDE) for developing embedded devices.
+    A one-stop development environment and all-in-one resource platform for smart device developers. Its comprehensive capabilities span the entire process of device development, from chip template project creation and custom development resource selection to code editing, build, debugging, and burning. 
 
 - ### DMS
 
diff --git a/en/readme/DeviceProfile.md b/en/readme/DeviceProfile.md
index 29653fb13b515c0c88d00f1ca819745f1a1a4397..d1e4fdc0bfbc4ff5da9f219e52f2c60ac6dbd2d1 100644
--- a/en/readme/DeviceProfile.md
+++ b/en/readme/DeviceProfile.md
@@ -171,14 +171,13 @@ subscribeInfos.emplace_back(info2);
 
 std::list<ProfileEvent> failedEvents;
 // Call SubscribeProfileEvents.
-DistributedDeviceProfileClient::GetInstance().SubscribeProfileEvents(subscribeInfos,
-    callback, failedEvents);
+DistributedDeviceProfileClient::GetInstance().SubscribeProfileEvents(subscribeInfos, callback, failedEvents);
 sleep(SUBSCRIBE_SLEEP_TIME);
 std::list<ProfileEvent> profileEvents;
 profileEvents.emplace_back(ProfileEvent::EVENT_PROFILE_CHANGED);
 failedEvents.clear();
 // Cancel the subscription.
-DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEvents,
+DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEvents, callback, failedEvents);
     callback, failedEvents);
 ```
 
@@ -186,4 +185,4 @@ DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEv
 
 **DeviceProfile subsystem**
 
-[device\_profile\_core](https://gitee.com/openharmony/device_profile_core)
+[device\_info\_manager](https://gitee.com/openharmony/deviceprofile_device_info_manager)
diff --git a/en/readme/SAMGR.md b/en/readme/SAMGR.md
index be89cb571dcacb5407fed7e8d0d6765121968acc..59273729b8d48784c9817b7adf16bcac60ff79cc 100644
--- a/en/readme/SAMGR.md
+++ b/en/readme/SAMGR.md
@@ -1,4 +1,4 @@
-# System Ability Manager(<a name="EN-US_TOPIC_0000001115719369"></a>)
+# System Ability Manager<a name="EN-US_TOPIC_0000001115719369"></a>
 
 ## Introduction<a name="section11660541593"></a>
 
diff --git a/en/readme/figures/User-IAM-subsystem-architecture.png b/en/readme/figures/User-IAM-subsystem-architecture.png
index 13a861f97107524e38ed06f1e3d153cdc7d55fe2..64eaba85160ef22e68b0ebb53ab7e7862d881cec 100644
Binary files a/en/readme/figures/User-IAM-subsystem-architecture.png and b/en/readme/figures/User-IAM-subsystem-architecture.png differ
diff --git a/en/readme/kernel.md b/en/readme/kernel.md
index 470d4cf0be35257de3fc0c17184b509fdc783898..22956b8232cca83c8e1fcdf9e504b498eedcbad2 100644
--- a/en/readme/kernel.md
+++ b/en/readme/kernel.md
@@ -211,8 +211,6 @@ LiteOS:
 
 [device\_qemu](https://gitee.com/openharmony/device_qemu/blob/master/README.md)
 
-[prebuilts\_lite\_sysroot](https://gitee.com/openharmony/prebuilts_lite_sysroot/blob/master/README.md)
-
 Linux:
 
 [kernel\_linux\_patches](https://gitee.com/openharmony/kernel_linux_patches/blob/master/README.md)
diff --git a/en/readme/update.md b/en/readme/update.md
index 58abb6e73eeda879a98784c288b6cc7f230a31a7..52c384ff79961f75f2662430a0c88a8532cc9f46 100644
--- a/en/readme/update.md
+++ b/en/readme/update.md
@@ -1,25 +1,25 @@
-# Update<a name="EN-US_TOPIC_0000001149909821"></a>
+# Update
 
-## Introduction<a name="section184mcpsimp"></a>
+## Introduction
 
 The Update subsystem helps you implement over the air \(OTA\) update of OpenHarmony devices. The update subsystem consists of the following:
 
-1.  Packaging tool
+-   Packaging tool
 
     The packaging tool is developed using Python and deployed on the PC to prepare update packages. It packages each update image, signs the update package, generates the update package execution script, and finally creates an update package. After the execution script is run on a OpenHarmony device, the device parses and executes the script to complete the update process.
 
-    The update package contains two files:  **build\_tools.zip**  and  **update.bin**.
+    The update package contains two files: **build\_tools.zip** and **update.bin**.
 
     -   **build\_tools.zip**: update assistance tools, including the executable files and scripts.
     -   **update.bin**: TLV-encoded file, in which update contents are serialized and stored in the TLV format.
 
     The packaging tool signs the  **update.bin**  file and the generated update package \(**.zip**  file\) independently.
 
-2.  Update service
+-   Update service
 
     The update service is used to search, download, and trigger updates.
 
-3.  Updater
+-   Updater
 
     The updater is the core module of the update subsystem. It provides the following functions:
 
@@ -29,7 +29,7 @@ The Update subsystem helps you implement over the air \(OTA\) update of OpenHarm
     4.  Installs the related component packages based on the update script.
     5.  Performs post-processing after the update is complete, for example, deleting the update package and recording the update status.
 
-4.  Update app
+-   Update app
 
     The upgrade app is used to trigger search and download of update packages.
 
@@ -53,14 +53,14 @@ Before you get started, familiarize yourself with the following concepts:
 
 ```
 base/update             # Update subsystem repository
-├── app         		# Update app code
+├── app         	# Update app code
 ├── packaging_tools     # Packaging tool code
-├── updater    			# Updater code
+├── updater    		# Updater code
 │   ├── interfaces  	# External APIs
-│   ├── resources 		# UI image resources of the update subsystem, such as animations and progress bar images
-│   ├── services  		# Updater logic code
-│   └── utils  			# Common code of the update subsystem, including the string processing functions and file processing functions
-└── updateservice 		# Update service code
+│   ├── resources 	# UI image resources of the update subsystem, such as animations and progress bar images
+│   ├── services  	# Updater logic code
+│   └── utils  		# Common code of the update subsystem, including the string processing functions and file processing functions
+└── updateservice 	# Update service code
 ```
 
 ## Repositories Involved<a name="section251mcpsimp"></a>
diff --git a/en/readme/user-iam.md b/en/readme/user-iam.md
index 52aba67d9048692ead51f3141090abaeb878ab43..32cceeaa64ee0962455a42296c005b8fc03d5e96 100644
--- a/en/readme/user-iam.md
+++ b/en/readme/user-iam.md
@@ -1,8 +1,10 @@
-# User IAM Subsystem
+# User IAM
 
 ## Introduction
 
-The user identity and access management (IAM) subsystem provides a unified framework for user credential management and user identity authentication in OpenHarmony. It allows multiple users to set their own authentication credential information and authenticates their identities based on the information set. This subsystem is widely used in security-sensitive scenarios such as screen lock. The subsystem also provides APIs for third-party developers to call the identity authentication capabilities to control user access.
+The user identity and access management (IAM) subsystem provides a unified framework for user credential management and user identity authentication in OpenHarmony. It allows multiple users to set their own authentication credential information and authenticates their identities based on the information set. 
+
+This subsystem is widely used in security-sensitive scenarios such as screen lock. It also provides APIs for developers to call the identity authentication capabilities to control user access.
 
 **Figure 1** Subsystem architecture
 
@@ -16,14 +18,16 @@ The user IAM subsystem consists of the unified user authentication framework and
 
 Based on the unified user authentication framework, the system can be extended to support multiple authentication capabilities. Currently, the authentication executors supported by OpenHarmony are password and facial authentication. To implement a new authentication executor, you only need to implement authentication capabilities in a new part and connect the new part to the unified user authentication framework based on the interfaces defined by the authentication executor management part.
 
-*Note: In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor.*
+> **NOTE**
+> 
+>In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor.
 
 ## Directory Structure
 
 
 ```undefined
 //base/user_iam
-├── user_auth_framework	# User authentication framework, including user authentication, credential management and executor management
+├── user_auth_framework	# User authentication framework, including user authentication, credential management, and executor management
 ├── face_auth			# Facial authentication module, which connects to the authentication executor management part and supports facial information recording, deletion, and verification
 ├── pin_auth 			# Password authentication module, which connects to the authentication executor management part and supports password recording, deletion, and verification
 
@@ -31,15 +35,15 @@ Based on the unified user authentication framework, the system can be extended t
 
 ## Constraints
 
-1. User credential management is a key operation in the system, and interfaces used for user credential management can be invoked only by basic system applications.
-2. The authentication executors process user authentication credentials and their capabilities can only be implemented by system services for interconnection with the authentication executor management part.
+- User credential management is a key operation in the system, and the interfaces used for user credential management can be invoked only by basic system applications.
+- The authentication executors process user authentication credentials, and their capabilities can only be implemented by system services for interconnection with the authentication executor management part.
 
 ## Usage
 
 ### How to Use
 
 1. The unified user authentication framework must work with an authentication executor.
-2. The first default authentication executor in the system must be password authentication.
+2. The first default authentication executor in the system must be a password authentication executor.
 
 ## Repositories Involved
 
diff --git a/en/readme/window-manager.md b/en/readme/window-manager.md
index 41c07066713106fb4ba8e12e293383df88aeb66e..19f2f48dff0483d665172772256fe5236552a806 100644
--- a/en/readme/window-manager.md
+++ b/en/readme/window-manager.md
@@ -8,6 +8,8 @@ The Window Manager subsystem provides basic capabilities of window and display m
 
 ![WindowManager-subsystem-architecture](./figures/WindowManager.png)
 
+Components of the Window Manager subsystem are described as follows:
+
 - **Window Manager Client**
 
     Provides window object abstraction and window management interfaces, and connects to the ability and UI framework.
@@ -28,23 +30,22 @@ The Window Manager subsystem provides basic capabilities of window and display m
 
 ```text
 foundation/window/window_manager/
-├── dm                      # Stores Display Manager Client implementation code
-├── dmserver                # Stores Display Manager Server implementation code
-├── interfaces              # Stores external APIs
-│   ├── innerkits           # Stores native APIs
-│   └── kits                # Stores JS APIs and native APIs
-├── resources               # Stores resource files used by the framework
-├── sa_profile              # Stores system service configuration files
-├── snapshot                # Stores implementation code of the screenshot command line tool
-├── utils                   # Stores tools
-├── wm                      # Stores Window Manager Client implementation code
-├── wmserver                # Stores Window Manager Server implementation code
+├── dm                      # Implementation code of Display Manager Client
+├── dmserver                # Implementation code of Display Manager Server
+├── interfaces              # External APIs
+│   ├── innerkits           # Native APIs
+│   └── kits                # JS APIs and native APIs
+├── resources               # Resource files used by the framework
+├── sa_profile              # System service configuration files
+├── snapshot                # Implementation code of the screenshot command line tool
+├── utils                   # Utilities
+├── wm                      # Implementation code of Window Manager Client
+├── wmserver                # Implementation code of Window Manager Server
 ```
 
 ## Constraints
 
-- Programming language version
-  - C++ 11 or later
+The Programming language version must be C++ 11 or later.
 
 ## Available APIs
 
diff --git a/en/readme/xts.md b/en/readme/xts.md
index c4558c9d947dda419b382382fa49421217f46fbe..9bd767f143168c7d3b3a478fabd99eb745fcd5c8 100644
--- a/en/readme/xts.md
+++ b/en/readme/xts.md
@@ -1,15 +1,15 @@
-# XTS<a name="EN-US_TOPIC_0000001126156429"></a>
+# XTS
 
-## Introduction<a name="section465982318513"></a>
+## Introduction
 
 The X test suite \(XTS\) subsystem contains a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite \(ACTS\) and the device compatibility test suite \(DCTS\) that will be supported in the future.
 
-This subsystem contains the ACTS and  **tools**  software package.
+This subsystem contains the ACTS and **tools** software package.
 
--   The  **acts**  directory stores the source code and configuration files of ACTS test cases. The ACTS helps device vendors detect the software incompatibility as early as possible and ensures that the software is compatible to OpenHarmony during the entire development process.
--   The  **tools**  software package stores the test case development framework related to  **acts**.
+-   The **acts** directory stores the source code and configuration files of ACTS test cases. The ACTS helps device vendors detect the software incompatibility as early as possible and ensures that the software is compatible with OpenHarmony during the entire development process.
+-   The **tools** software package stores the test case development framework related to **acts**.
 
-## System Types<a name="section125090457443"></a>
+## System Types
 
 OpenHarmony supports the following system types:
 
@@ -26,222 +26,79 @@ OpenHarmony supports the following system types:
     A standard system runs on the devices whose memory is greater than or equal to 128 MiB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays.
 
 
-## Directory Structure<a name="section161941989596"></a>
+## Directory Structure
 
 ```
 /test/xts
-├── acts                 # Test code
+├── acts                # Test code
 │   └── subsystem       # Source code of subsystem test cases for the standard system
 │   └── subsystem_lite  # Source code of subsystems test cases for mini and small systems
 │   └── BUILD.gn        # Build configuration of test cases for the standard system
 │   └── build_lite      
 │       └── BUILD.gn    # Build configuration of test cases for mini and small systems
-└── tools                # Test tool code
+└── tools               # Test tool code
 ```
 
-## Constraints<a name="section119744591305"></a>
+## Constraints
 
 Test cases for the mini system must be developed based on C, and those for the small system must be developed based on C++.
 
-## Usage Guidelines<a name="section137768191623"></a>
-
-**Table  1**  Test case levels
-
-<a name="table12856113719456"></a>
-<table><thead align="left"><tr id="row88561737114517"><th class="cellrowborder" valign="top" width="33.333333333333336%" id="mcps1.2.4.1.1"><p id="p54711456452"><a name="p54711456452"></a><a name="p54711456452"></a>Level</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.283328332833285%" id="mcps1.2.4.1.2"><p id="p114834544518"><a name="p114834544518"></a><a name="p114834544518"></a>Definition</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.383338333833386%" id="mcps1.2.4.1.3"><p id="p348154574518"><a name="p348154574518"></a><a name="p348154574518"></a>Scope</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row78561137134514"><td class="cellrowborder" valign="top" width="33.333333333333336%" headers="mcps1.2.4.1.1 "><p id="p17481345124512"><a name="p17481345124512"></a><a name="p17481345124512"></a>Level0</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.283328332833285%" headers="mcps1.2.4.1.2 "><p id="p1548945204514"><a name="p1548945204514"></a><a name="p1548945204514"></a>Smoke</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.383338333833386%" headers="mcps1.2.4.1.3 "><p id="p174824517456"><a name="p174824517456"></a><a name="p174824517456"></a>Verifies basic functionalities of key features and basic DFX attributes with the most common input. The pass result indicates that the features are runnable.</p>
-</td>
-</tr>
-<tr id="row28563372451"><td class="cellrowborder" valign="top" width="33.333333333333336%" headers="mcps1.2.4.1.1 "><p id="p448445144512"><a name="p448445144512"></a><a name="p448445144512"></a>Level1</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.283328332833285%" headers="mcps1.2.4.1.2 "><p id="p44813452452"><a name="p44813452452"></a><a name="p44813452452"></a>Basic</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.383338333833386%" headers="mcps1.2.4.1.3 "><p id="p648184584514"><a name="p648184584514"></a><a name="p648184584514"></a>Verifies basic functionalities of key features and basic DFX attributes with common input. The pass result indicates that the features are testable.</p>
-</td>
-</tr>
-<tr id="row12856137204514"><td class="cellrowborder" valign="top" width="33.333333333333336%" headers="mcps1.2.4.1.1 "><p id="p164834520453"><a name="p164834520453"></a><a name="p164834520453"></a>Level2</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.283328332833285%" headers="mcps1.2.4.1.2 "><p id="p148245184511"><a name="p148245184511"></a><a name="p148245184511"></a>Major</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.383338333833386%" headers="mcps1.2.4.1.3 "><p id="p348945124510"><a name="p348945124510"></a><a name="p348945124510"></a>Verifies basic functionalities of key features and basic DFX attributes with common input and errors. The pass result indicates that the features are functional and ready for beta testing.</p>
-</td>
-</tr>
-<tr id="row48571137204514"><td class="cellrowborder" valign="top" width="33.333333333333336%" headers="mcps1.2.4.1.1 "><p id="p7481545184513"><a name="p7481545184513"></a><a name="p7481545184513"></a>Level3</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.283328332833285%" headers="mcps1.2.4.1.2 "><p id="p1748184514455"><a name="p1748184514455"></a><a name="p1748184514455"></a>Regular</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.383338333833386%" headers="mcps1.2.4.1.3 "><p id="p8481245104519"><a name="p8481245104519"></a><a name="p8481245104519"></a>Verifies functionalities of all key features, and all DFX attributes with common and uncommon input combinations or normal and abnormal preset conditions.</p>
-</td>
-</tr>
-<tr id="row14857133712451"><td class="cellrowborder" valign="top" width="33.333333333333336%" headers="mcps1.2.4.1.1 "><p id="p1248144515456"><a name="p1248144515456"></a><a name="p1248144515456"></a>Level4</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.283328332833285%" headers="mcps1.2.4.1.2 "><p id="p94804514519"><a name="p94804514519"></a><a name="p94804514519"></a>Rare</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.383338333833386%" headers="mcps1.2.4.1.3 "><p id="p1248445164516"><a name="p1248445164516"></a><a name="p1248445164516"></a>Verifies functionalities of key features under extremely abnormal presets and uncommon input combinations.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-**Table  2**  Test case granularities
-
-<a name="table1690733521014"></a>
-<table><thead align="left"><tr id="row9907143516105"><th class="cellrowborder" valign="top" width="19.591959195919593%" id="mcps1.2.4.1.1"><p id="p1141312416102"><a name="p1141312416102"></a><a name="p1141312416102"></a>Test Scale</p>
-</th>
-<th class="cellrowborder" valign="top" width="35.17351735173517%" id="mcps1.2.4.1.2"><p id="p34131416109"><a name="p34131416109"></a><a name="p34131416109"></a>Test Objects</p>
-</th>
-<th class="cellrowborder" valign="top" width="45.23452345234523%" id="mcps1.2.4.1.3"><p id="p12413141171010"><a name="p12413141171010"></a><a name="p12413141171010"></a>Test Environment</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row2907335181017"><td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.2.4.1.1 "><p id="p6414134117109"><a name="p6414134117109"></a><a name="p6414134117109"></a>LargeTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.17351735173517%" headers="mcps1.2.4.1.2 "><p id="p20414104113101"><a name="p20414104113101"></a><a name="p20414104113101"></a>Service functionalities, all-scenario features, and mechanical power environment (MPE) and scenario-level DFX</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.23452345234523%" headers="mcps1.2.4.1.3 "><p id="p5414841121013"><a name="p5414841121013"></a><a name="p5414841121013"></a>Devices close to real devices</p>
-</td>
-</tr>
-<tr id="row10907635131015"><td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.2.4.1.1 "><p id="p19414134117104"><a name="p19414134117104"></a><a name="p19414134117104"></a>MediumTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.17351735173517%" headers="mcps1.2.4.1.2 "><p id="p114141241141018"><a name="p114141241141018"></a><a name="p114141241141018"></a>Modules, subsystem functionalities after module integration, and DFX</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.23452345234523%" headers="mcps1.2.4.1.3 "><p id="p14414941111015"><a name="p14414941111015"></a><a name="p14414941111015"></a>Single device that is actually used. You can perform message simulation, but do not mock functions.</p>
-</td>
-</tr>
-<tr id="row1990713353100"><td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.2.4.1.1 "><p id="p641414110109"><a name="p641414110109"></a><a name="p641414110109"></a>SmallTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="35.17351735173517%" headers="mcps1.2.4.1.2 "><p id="p54141541181018"><a name="p54141541181018"></a><a name="p54141541181018"></a>Modules, classes, and functions</p>
-</td>
-<td class="cellrowborder" valign="top" width="45.23452345234523%" headers="mcps1.2.4.1.3 "><p id="p1841494131013"><a name="p1841494131013"></a><a name="p1841494131013"></a>Local PC. Use a large number of mocks to replace dependencies with other modules.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-**Table  3**  Test types
-
-<a name="table18811230124619"></a>
-<table><thead align="left"><tr id="row48163019466"><th class="cellrowborder" valign="top" width="19.040000000000003%" id="mcps1.2.3.1.1"><p id="p1791784418465"><a name="p1791784418465"></a><a name="p1791784418465"></a>Type</p>
-</th>
-<th class="cellrowborder" valign="top" width="80.96%" id="mcps1.2.3.1.2"><p id="p2917164444614"><a name="p2917164444614"></a><a name="p2917164444614"></a>Definition</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row682630104615"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p1091784414469"><a name="p1091784414469"></a><a name="p1091784414469"></a>Function</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p16917344104618"><a name="p16917344104618"></a><a name="p16917344104618"></a>Tests the correctness of both service and platform functionalities provided by the tested object for end users or developers.</p>
-</td>
-</tr>
-<tr id="row1821930154611"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p591714474612"><a name="p591714474612"></a><a name="p591714474612"></a>Performance</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p15917154410463"><a name="p15917154410463"></a><a name="p15917154410463"></a>Tests the processing capability of the tested object under specific preset conditions and load models. The processing capability is measured by the service volume that can be processed in a unit time, for example, call per second, frame per second, or event processing volume per second.</p>
-</td>
-</tr>
-<tr id="row13821030104616"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p691711440467"><a name="p691711440467"></a><a name="p691711440467"></a>Power</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p159171544104616"><a name="p159171544104616"></a><a name="p159171544104616"></a>Tests the power consumption of the tested object in a certain period of time under specific preset conditions and load models.</p>
-</td>
-</tr>
-<tr id="row6821330114618"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p13917164454612"><a name="p13917164454612"></a><a name="p13917164454612"></a>Reliability</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p11917194416465"><a name="p11917194416465"></a><a name="p11917194416465"></a>Tests the service performance of the tested object under common and uncommon input conditions, or specified service volume pressure and long-term continuous running pressure. The test covers stability, pressure handling, fault injection, and Monkey test times.</p>
-</td>
-</tr>
-<tr id="row11821930184612"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p1691774474618"><a name="p1691774474618"></a><a name="p1691774474618"></a>Security</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><a name="ul112421652121513"></a><a name="ul112421652121513"></a><ul id="ul112421652121513"><li>Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.</li><li>Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.</li><li>Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT).</li></ul>
-</td>
-</tr>
-<tr id="row16825307467"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p129188444462"><a name="p129188444462"></a><a name="p129188444462"></a>Global</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p179186444465"><a name="p179186444465"></a><a name="p179186444465"></a>Tests the internationalized data and localization capabilities of the tested object, including multi-language display, various input/output habits, time formats, and regional features, such as currency, time, and culture taboos.</p>
-</td>
-</tr>
-<tr id="row08211308464"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p191814447465"><a name="p191814447465"></a><a name="p191814447465"></a>Compatibility</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><a name="ul186961827111612"></a><a name="ul186961827111612"></a><ul id="ul186961827111612"><li>Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.</li><li>Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.</li><li>Tests software compatibility with related hardware.</li></ul>
-</td>
-</tr>
-<tr id="row1782730124618"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p13918144134614"><a name="p13918144134614"></a><a name="p13918144134614"></a>User</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p1291844494611"><a name="p1291844494611"></a><a name="p1291844494611"></a>Tests user experience of the object in real user scenarios. All conclusions and comments should come from the users, which are all subjective evaluation in this case.</p>
-</td>
-</tr>
-<tr id="row58243024617"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p1291884474614"><a name="p1291884474614"></a><a name="p1291884474614"></a>Standard</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p0918124424614"><a name="p0918124424614"></a><a name="p0918124424614"></a>Tests the compliance with industry and company-specific standards, protocols, and specifications. The standards here do not include any security standards that should be classified into the security test.</p>
-</td>
-</tr>
-<tr id="row382830124619"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p119181044164619"><a name="p119181044164619"></a><a name="p119181044164619"></a>Safety</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p1291818443468"><a name="p1291818443468"></a><a name="p1291818443468"></a>Tests the safety property of the tested object to avoid possible hazards to personal safety, health, and the object itself.</p>
-</td>
-</tr>
-<tr id="row1083153014465"><td class="cellrowborder" valign="top" width="19.040000000000003%" headers="mcps1.2.3.1.1 "><p id="p39187441469"><a name="p39187441469"></a><a name="p39187441469"></a>Resilience</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.96%" headers="mcps1.2.3.1.2 "><p id="p891815444462"><a name="p891815444462"></a><a name="p891815444462"></a>Tests the resilience property of the tested object to ensure that it can withstand and maintain the defined running status (including downgrading) when being attacked, and recover from and adapt defense to the attacks to approach mission assurance.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## Test Case Development Guidelines<a name="section3695134065513"></a>
+## Usage Guidelines
+
+**Table  1** Test case levels
+
+| Level | Definition | Scope |
+| ----- | ---------- | ----- |
+| Level0 | Smoke | Verifies basic functionalities of key features and basic DFX attributes with the most common input. The pass result indicates that the features are runnable. |
+| Level1 | Basic | Verifies basic functionalities of key features and basic DFX attributes with common input. The pass result indicates that the features are testable. |
+| Level2 | Major | Verifies basic functionalities of key features and basic DFX attributes with common input and errors. The pass result indicates that the features are functional and ready for beta testing. |
+| Level3 | Regular | Verifies functionalities of all key features, and all DFX attributes with common and uncommon input combinations or normal and abnormal preset conditions. |
+| Level4 | Rare | Verifies functionalities of key features under extremely abnormal presets and uncommon input combinations. |
+
+**Table  2** Test case granularities
+
+| Test Scale | Test Objects | Test Environment |
+| ---------- | ------------ | ---------------- |
+| LargeTest | Service functionalities, all-scenario features, and mechanical power environment (MPE) and scenario-level DFX | Devices close to real devices. |
+| MediumTest | Modules, subsystem functionalities after module integration, and DFX | Single device that is actually used. You can perform message simulation, but do not mock functions. |
+| SmallTest | Modules, classes, and functions | Local PC. Use a large number of mocks to replace dependencies with other modules. |
+
+**Table  3** Test types
+
+| Type | Definition |
+| ---------- | ------------ |
+| Function | Tests the correctness of both service and platform functionalities provided by the tested object for end users or developers. |
+| Performance | Tests the processing capability of the tested object under specific preset conditions and load models. The processing capability is measured by the service volume that can be processed in a unit time, for example, call per second, frame per second, or event processing volume per second. |
+| Power | Tests the power consumption of the tested object in a certain period of time under specific preset conditions and load models.
+| Reliability | Tests the service performance of the tested object under common and uncommon input conditions, or specified service volume pressure and long-term continuous running pressure. The test covers stability, pressure handling, fault injection, and Monkey test times. |
+| Security | - Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.<br>- Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.<br>- Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT). |
+| Global | Tests the internationalized data and localization capabilities of the tested object, including multi-language display, various input/output habits, time formats, and regional features, such as currency, time, and culture taboos. |
+| Compatibility | - Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.<br>- Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.<br>- Tests software compatibility with related hardware. |
+| User | Tests user experience of the object in real user scenarios. All conclusions and comments should come from the users, which are all subjective evaluation in this case. |
+| Standard | Tests the compliance with industry and company-specific standards, protocols, and specifications. The standards here do not include any security standards that should be classified into the security test. |
+| Safety | Tests the safety property of the tested object to avoid possible hazards to personal safety, health, and the object itself. |
+| Resilience | Tests the resilience property of the tested object to ensure that it can withstand and maintain the defined running status (including downgrading) when being attacked, and recover from and adapt defense to the attacks to approach mission assurance. |
+
+
+## Test Case Development Guidelines
 
 You should select the appropriate programming language and your target test framework to develop test cases.
 
-**Table  4**  Test frameworks and test case languages for different systems
-
-<a name="table4418343171415"></a>
-<table><thead align="left"><tr id="row34183435145"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p941874311148"><a name="p941874311148"></a><a name="p941874311148"></a>System</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p1841804341413"><a name="p1841804341413"></a><a name="p1841804341413"></a>Test Framework</p>
-</th>
-<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p2418104311148"><a name="p2418104311148"></a><a name="p2418104311148"></a>Language</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row8419164319148"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p7419194312143"><a name="p7419194312143"></a><a name="p7419194312143"></a>Mini</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p10419124312145"><a name="p10419124312145"></a><a name="p10419124312145"></a>HCTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p11419643191410"><a name="p11419643191410"></a><a name="p11419643191410"></a>C</p>
-</td>
-</tr>
-<tr id="row141915438147"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p441911436141"><a name="p441911436141"></a><a name="p441911436141"></a>Small</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p541916432142"><a name="p541916432142"></a><a name="p541916432142"></a>HCPPTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p54191643131416"><a name="p54191643131416"></a><a name="p54191643131416"></a>C++</p>
-</td>
-</tr>
-<tr id="row4419134341417"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p341964313143"><a name="p341964313143"></a><a name="p341964313143"></a>Standard</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p10419443171416"><a name="p10419443171416"></a><a name="p10419443171416"></a>HJSUnit and HCPPTest</p>
-</td>
-<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p9419143181414"><a name="p9419143181414"></a><a name="p9419143181414"></a>JavaScript and C++</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-### C-based Test Case Development and Compilation \(for the Mini System\)<a name="section198193336544"></a>
+**Table  4** Test frameworks and test case languages for different systems
+
+| System | Test Framework | Language |
+| ---------- | ------------ | ---------------- |
+| Mini | HCTest | C |
+| Small | HCPPTest | C++ |
+| Standard | HJSUnit and HCPPTest | JavaScript and C++ |
+
+### C-based Test Case Development and Compilation \(for the Mini System\)
 
 **Developing test cases for the mini system**
 
 The HCTest framework is used to support test cases developed with the C language. HCTest is enhanced and adapted based on the open-source test framework Unity.
 
-1.  Access the  **test/xts/acts**  repository where the test cases will be stored.
+1.  Access the **test/xts/acts** repository where the test cases will be stored.
 
     ```
     ├── acts
@@ -253,7 +110,7 @@ The HCTest framework is used to support test cases developed with the C language
     │ │ └── BUILD.gn
     ```
 
-2.  Write the test case in the  **src**  directory.
+2.  Write the test case in the **src** directory.
 
     1 Import the test framework header file.
 
@@ -261,10 +118,10 @@ The HCTest framework is used to support test cases developed with the C language
     #include "hctest.h"
     ```
 
-    2. Use the  **LITE\_TEST\_SUIT**  macro to define names of the subsystem, module, and test suite.
+    2. Use the **LITE\_TEST\_SUIT** macro to define names of the subsystem, module, and test suite.
 
     ```
-    /**  
+    /** 
     * @brief  Registers a test suite named IntTestSuite.
     * @param  test Subsystem name
     * @param  example Module name
@@ -279,7 +136,7 @@ The HCTest framework is used to support test cases developed with the C language
 
     The Setup and TearDown functions must exist, but function bodies can be empty.
 
-    4. Use the  **LITE\_TEST\_CASE**  macro to write the test case.
+    4. Use the **LITE\_TEST\_CASE** macro to write the test case.
 
     Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\).
 
@@ -290,7 +147,7 @@ The HCTest framework is used to support test cases developed with the C language
     };
     ```
 
-    5. Use the  **RUN\_TEST\_SUITE**  macro to register the test suite.
+    5. Use the **RUN\_TEST\_SUITE** macro to register the test suite.
 
     ```
     RUN_TEST_SUITE(IntTestSuite);
@@ -298,7 +155,7 @@ The HCTest framework is used to support test cases developed with the C language
 
 3.  Create the configuration file \(**BUILD.gn**\) of the test module.
 
-    Create a  **BUILD.gn**  \(example\) build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. The format is as follows:
+    Create a **BUILD.gn** \(example\) build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. The format is as follows:
 
     ```
     import("//test/xts/tools/lite/build/suite_lite.gni")
@@ -312,9 +169,9 @@ The HCTest framework is used to support test cases developed with the C language
     }
     ```
 
-4.  Add build options to the  **BUILD.gn**  file in the  **acts**  directory.
+4.  Add build options to the **BUILD.gn** file in the **acts** directory.
 
-    You need to add the test module to the  **test/xts/acts/build\_lite/BUILD.gn**  script in the  **acts**  directory.
+    You need to add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory.
 
     ```
     lite_component("acts") {  
@@ -332,11 +189,12 @@ The HCTest framework is used to support test cases developed with the C language
 
     Test suites are built along with version build. The ACTS is built together with the debug version.
 
-    >![](public_sys-resources/icon-note.gif) **NOTE:** 
+    >![](public_sys-resources/icon-note.gif) **NOTE**
+    >
     >The ACTS build middleware is a static library, which will be linked to the image.
 
 
-### C-based Test Case Execution \(for the Mini System\)<a name="section13820233175418"></a>
+### C-based Test Case Execution \(for the Mini System\)
 
 **Executing test cases for the mini system**
 
@@ -351,15 +209,15 @@ Burn the image into the development board.
 
 View the serial port logs, whose format is as follows:
 
-The log for each test suite starts with  **Start to run test suite:**  and ends with  **xx Tests xx Failures xx Ignored**.
+The log for each test suite starts with **Start to run test suite:** and ends with **xx Tests xx Failures xx Ignored**.
 
-### C++-based Test Case Development and Compilation \(for Standard and Small Systems\)<a name="section3822123311540"></a>
+### C++-based Test Case Development and Compilation \(for Standard and Small Systems\)
 
-**Developing test cases for small-system devices**  \(For examples of the standard system, go to the  **global/i18n\_standard directory**.\)
+**Developing test cases for small-system devices** \(For examples of the standard system, go to the **global/i18n\_standard directory**.\)
 
 The HCPPTest framework is enhanced and adapted based on the open-source framework Googletest.
 
-1.  Access the  **test/xts/acts**  repository where the test cases will be stored.
+1.  Access the **test/xts/acts** repository where the test cases will be stored.
 
     ```
     ├── acts
@@ -371,11 +229,11 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor
     │ │ └── BUILD.gn
     ```
 
-2.  Write the test case in the  **src**  directory.
+2.  Write the test case in the **src** directory.
 
     1. Import the test framework header file.
 
-    The following statement includes  **gtest.h**.
+    The following statement includes **gtest.h**.
 
     ```
     #include "gtest/gtest.h"
@@ -405,11 +263,11 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor
     };
     ```
 
-    3. Use the  **HWTEST**  or  **HWTEST\_F**  macro to write the test case.
+    3. Use the **HWTEST** or **HWTEST\_F** macro to write the test case.
 
-    **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation.
+   **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation.
 
-    **HWTEST\_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation.
+   **HWTEST\_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation.
 
     Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\).
 
@@ -421,7 +279,7 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor
 
 3.  Create a configuration file \(**BUILD.gn**\) of the test module.
 
-    Create a  **BUILD.gn**  build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. Each test module is independently built into a  **.bin**  executable file, which can be directly pushed to the development board for testing.
+    Create a **BUILD.gn** build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. Each test module is independently built into a **.bin** executable file, which can be directly pushed to the development board for testing.
 
     Example:
 
@@ -444,9 +302,9 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor
     }
     ```
 
-4.  Add build options to the  **BUILD.gn**  file in the  **acts**  directory.
+4.  Add build options to the **BUILD.gn** file in the **acts** directory.
 
-    Add the test module to the  **test/xts/acts/build\_lite/BUILD.gn**  script in the  **acts**  directory.
+    Add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory.
 
     ```
      lite_component("acts") {  
@@ -464,11 +322,12 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor
 
     Test suites are built along with the version build. The ACTS is built together with the debug version.
 
-    >![](public_sys-resources/icon-note.gif) **NOTE:** 
-    >The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the  **suites\\acts**  directory of the build result.
+    >![](public_sys-resources/icon-note.gif) **NOTE** 
+    >
+    >The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the **suites\\acts** directory of the build result.
 
 
-### C++-based Test Case Execution \(for Standard and Small Systems\)<a name="section128222336544"></a>
+### C++-based Test Case Execution \(for Standard and Small Systems\)
 
 **Executing test cases for the small system**
 
@@ -479,9 +338,9 @@ Currently, test cases are shared by the NFS and mounted to the development board
 1.  Use a network cable or wireless network to connect the development board to your PC.
 2.  Configure the IP address, subnet mask, and gateway for the development board. Ensure that the development board and the PC are in the same network segment.
 3.  Install and register the NFS server on the PC and start the NFS service.
-4.  Run the  **mount**  command for the development board to ensure that the development board can access NFS shared files on the PC.
+4.  Run the **mount** command for the development board to ensure that the development board can access NFS shared files on the PC.
 
-    Format:  **mount** _NFS server IP address_**:/**_NFS shared directory_ **/**_development board directory_ **nfs**
+    Format: **mount** _NFS server IP address_**:/**_NFS shared directory_ **/**_development board directory_ **nfs**
 
     Example:
 
@@ -492,9 +351,9 @@ Currently, test cases are shared by the NFS and mounted to the development board
 
 **Executing test cases**
 
-Execute  **ActsDemoTest.bin**  to trigger test case execution, and analyze serial port logs generated after the execution is complete.
+Execute **ActsDemoTest.bin** to trigger test case execution, and analyze serial port logs generated after the execution is complete.
 
-### JavaScript-based Test Case Development \(for the Standard System\)<a name="section159801435165220"></a>
+### JavaScript-based Test Case Development \(for the Standard System\)
 
 The HJSUnit framework is used to support automated test of OpenHarmony apps that are developed using the JavaScript language based on the JS application framework.
 
@@ -502,71 +361,20 @@ The HJSUnit framework is used to support automated test of OpenHarmony apps that
 
 The test cases are developed with the JavaScript language and must meet the programming specifications of the language.
 
-**Table  5** 
-
-<a name="table13980103565212"></a>
-<table><thead align="left"><tr id="row1098093545218"><th class="cellrowborder" valign="top" width="17.92179217921792%" id="mcps1.2.4.1.1"><p id="p49811235135214"><a name="p49811235135214"></a><a name="p49811235135214"></a>Syntax</p>
-</th>
-<th class="cellrowborder" valign="top" width="68.88688868886888%" id="mcps1.2.4.1.2"><p id="p898183565220"><a name="p898183565220"></a><a name="p898183565220"></a>Description</p>
-</th>
-<th class="cellrowborder" valign="top" width="13.19131913191319%" id="mcps1.2.4.1.3"><p id="p17981143512526"><a name="p17981143512526"></a><a name="p17981143512526"></a>Mandatory</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1598183515528"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p139810358527"><a name="p139810358527"></a><a name="p139810358527"></a>beforeAll</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p198111352526"><a name="p198111352526"></a><a name="p198111352526"></a>Presets a test-suite-level action executed only once before all test cases are executed. You can pass the action function as the only parameter.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p298114355529"><a name="p298114355529"></a><a name="p298114355529"></a>No</p>
-</td>
-</tr>
-<tr id="row11981103512529"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p20981135135215"><a name="p20981135135215"></a><a name="p20981135135215"></a>afterAll</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p39811935115217"><a name="p39811935115217"></a><a name="p39811935115217"></a>Presets a test-suite-level clear action executed only once after all test cases are executed. You can pass the clear function as the only parameter.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p998110354527"><a name="p998110354527"></a><a name="p998110354527"></a>No</p>
-</td>
-</tr>
-<tr id="row1298116359526"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p898112359526"><a name="p898112359526"></a><a name="p898112359526"></a>beforeEach</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p149811335175215"><a name="p149811335175215"></a><a name="p149811335175215"></a>Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by <strong id="b32523248388"><a name="b32523248388"></a><a name="b32523248388"></a>it</strong>. You can pass the action function as the only parameter.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p13981133585212"><a name="p13981133585212"></a><a name="p13981133585212"></a>No</p>
-</td>
-</tr>
-<tr id="row6982435115219"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p19982133517525"><a name="p19982133517525"></a><a name="p19982133517525"></a>afterEach</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p1398213575219"><a name="p1398213575219"></a><a name="p1398213575219"></a>Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by <strong id="b10590142313399"><a name="b10590142313399"></a><a name="b10590142313399"></a>it</strong>. You can pass the clear function as the only parameter.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p159821535195219"><a name="p159821535195219"></a><a name="p159821535195219"></a>No</p>
-</td>
-</tr>
-<tr id="row16982143513521"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p598203510527"><a name="p598203510527"></a><a name="p598203510527"></a>describe</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p5982123595215"><a name="p5982123595215"></a><a name="p5982123595215"></a>Defines a test suite. You can pass two parameters: test suite name and test suite function. The <strong id="b7320205019400"><a name="b7320205019400"></a><a name="b7320205019400"></a>describe</strong> statement supports nesting. You can use <strong id="b138214222410"><a name="b138214222410"></a><a name="b138214222410"></a>beforeall</strong>, <strong id="b18677102314115"><a name="b18677102314115"></a><a name="b18677102314115"></a>beforeEach</strong>, <strong id="b1353142514113"><a name="b1353142514113"></a><a name="b1353142514113"></a>afterEach</strong>, and <strong id="b131041629204111"><a name="b131041629204111"></a><a name="b131041629204111"></a>afterAll</strong> in each <strong id="b590433484116"><a name="b590433484116"></a><a name="b590433484116"></a>describe</strong> statement.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p898217352527"><a name="p898217352527"></a><a name="p898217352527"></a>Yes</p>
-</td>
-</tr>
-<tr id="row6982113518526"><td class="cellrowborder" valign="top" width="17.92179217921792%" headers="mcps1.2.4.1.1 "><p id="p17982123510526"><a name="p17982123510526"></a><a name="p17982123510526"></a>it</p>
-</td>
-<td class="cellrowborder" valign="top" width="68.88688868886888%" headers="mcps1.2.4.1.2 "><p id="p598211352522"><a name="p598211352522"></a><a name="p598211352522"></a>Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.</p>
-<p id="p5205769588"><a name="p5205769588"></a><a name="p5205769588"></a>Usage of the filter parameter:</p>
-<p id="p1545919528618"><a name="p1545919528618"></a><a name="p1545919528618"></a>The value of the filter parameter is a 32-bit integer. Setting different bits to <strong id="b045919521765"><a name="b045919521765"></a><a name="b045919521765"></a>1</strong> means different configurations:</p>
-<a name="ul6932113319395"></a><a name="ul6932113319395"></a><ul id="ul6932113319395"><li>bit 0: whether the filter parameter takes effect. <strong id="b1193293318395"><a name="b1193293318395"></a><a name="b1193293318395"></a>1</strong> means that the test case is used for the function test and other settings of the parameter do not take effect.</li><li>Bits 0-10: test case categories</li><li>Bits 16-18: test case scales</li><li>Bits 24-28: test levels</li></ul>
-<p id="p7965165151011"><a name="p7965165151011"></a><a name="p7965165151011"></a><strong id="b15148755145114"><a name="b15148755145114"></a><a name="b15148755145114"></a>Test case categories</strong>: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.</p>
-<p id="p199651555102"><a name="p199651555102"></a><a name="p199651555102"></a><strong id="b135908568519"><a name="b135908568519"></a><a name="b135908568519"></a>Test case scales</strong>: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.</p>
-<p id="p296545151020"><a name="p296545151020"></a><a name="p296545151020"></a><strong id="b12181058125111"><a name="b12181058125111"></a><a name="b12181058125111"></a>Test levels</strong>: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively.</p>
-</td>
-<td class="cellrowborder" valign="top" width="13.19131913191319%" headers="mcps1.2.4.1.3 "><p id="p17601752115716"><a name="p17601752115716"></a><a name="p17601752115716"></a>Yes</p>
-</td>
-</tr>
-</tbody>
-</table>
+**Table  5** Basic syntax
+
+| Syntax | Description | Mandatory |
+| ------ | ----------- | --------- |
+| beforeAll	 | Presets a test-suite-level action executed only once before all test cases are executed. You can pass the action function as the only parameter.  | No |
+| afterAll | Presets a test-suite-level clear action executed only once after all test cases are executed. You can pass the clear function as the only parameter.  | No |
+| beforeEach | Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the action function as the only parameter.  | No |
+| afterEach | Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the clear function as the only parameter.  | No |
+| describe | Defines a test suite. You can pass two parameters: test suite name and test suite function. The describe statement supports nesting. You can use beforeall, beforeEach, afterEach, and afterAll in each describe statement.	 | Yes |
+| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.<br>**Usage of the filter parameter**:<br>The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations:<br><ul><li>bit 0: whether the filter parameter takes effect. **1** means that the test case is used for the function test and other settings of the parameter do not take effect.</li><li>Bits 0-10: test case categories</li><li>Bits 16-18: test case scales</li><li>Bits 24-28: test levels</li></ul>**Test case categories**: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.<br>**Test case scales**: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.<br>**Test levels**: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively. | Yes |
 
 Use the standard syntax of Jasmine to write test cases. The ES6 specification is supported.
 
-1.  Store the test cases in the  **entry/src/main/js/test**  directory, whose structure is as follows:
+1.  Store the test cases in the **entry/src/main/js/test** directory, whose structure is as follows:
 
     ```
     ├── BUILD.gn   
@@ -583,7 +391,7 @@ Use the standard syntax of Jasmine to write test cases. The ES6 specification is
     │ │ │ └── config.json              # HAP configuration file
     ```
 
-2.  Start the JS test framework and load test cases. The following is an example for  **index.js**.
+2.  Start the JS test framework and load test cases. The following is an example for **index.js**.
 
     ```
     // Start the JS test framework and load test cases.
@@ -628,12 +436,12 @@ Use the standard syntax of Jasmine to write test cases. The ES6 specification is
     ```
 
 
-### JavaScript-based Test Case Packaging \(for the Standard System\)<a name="section445519106559"></a>
+### JavaScript-based Test Case Packaging \(for the Standard System\)
 
 For details about how to build a HAP, see the JS application development guide of the standard system  [Building and Creating HAPs](https://developer.harmonyos.com/en/docs/documentation/doc-guides/build_overview-0000001055075201).
 
 
-## Repositories Involved<a name="section1371113476307"></a>
+## Repositories Involved
 
 [xts\_acts](https://gitee.com/openharmony/xts_acts)
 
diff --git a/en/release-notes/OpenHarmony-v3.1.1-release.md b/en/release-notes/OpenHarmony-v3.1.1-release.md
index 81a705cb5ab619bb9bf1163077f96bfa96b6bcd7..bcff1ffc13392f7b2e563b7e97e679a6e048bee7 100644
--- a/en/release-notes/OpenHarmony-v3.1.1-release.md
+++ b/en/release-notes/OpenHarmony-v3.1.1-release.md
@@ -21,7 +21,7 @@ Distributed data management is now compatible with the **\@system.storage** APIs
 
 Bundle management supports application-specific installation status query. The common event and notification subsystem provides APIs for sending and canceling notifications.
 
-The Feature Ability (FA) model supports ability-level screen orientation query and setting, lock screen display, and screen-on during ability startup. DFX features, such as Application Not Response (ANR) and suspension detection for an application's main thread, are added. More basic capabilities are added for FA widgets.
+The Feature Ability (FA) model supports ability-level screen orientation query and setting, lock screen display, and screen-on during ability startup. DFX features, such as Application Not Response and suspension detection for an application's main thread, are added. More basic capabilities are added for FA widgets.
 
 **Enhanced application capabilities for the standard system**
 
@@ -32,12 +32,13 @@ The Contacts application allows third-party applications to invoke the system ca
 
   **Table 1** Version mapping of software and tools
 
-| Software/Tool| Version| Remarks| 
+| Software/Tool| Version| Remarks|
 | -------- | -------- | -------- |
-| OpenHarmony | 3.1.1&nbsp;Release | NA | 
-| SDK | Ohos_sdk_full&nbsp;3.1.6.5 (API&nbsp;Version&nbsp;8&nbsp;Release) | NA | 
-| (Optional) HUAWEI DevEco Studio| 3.0&nbsp;Beta3&nbsp;for&nbsp;OpenHarmony | Recommended for developing OpenHarmony applications| 
-| (Optional) HUAWEI DevEco Device Tool| 3.0&nbsp;Release | Recommended for developing OpenHarmony devices| 
+| OpenHarmony | 3.1.1 Release | NA |
+| Public SDK | Ohos_sdk_public 3.1.6.6 (API Version 8 Release)| This toolkit is intended for application developers and does not contain system APIs that require system permissions.<br>It is provided as standard in DevEco Studio 3.0 Beta4 or later.<br>The public SDK of API version 8 was released on July 6, 2022.|
+| Full SDK | Ohos_sdk_full&nbsp;3.1.6.5 (API Version 8 Release) | This toolkit is intended for original equipment manufacturers (OEMs) and contains system APIs that require system permissions.<br>To use the full SDK, manually obtain it from the mirror and switch to it in DevEco Studio. For details, see [Guide to Switching to Full SDK](../application-dev/quick-start/full-sdk-switch-guide.md).|
+| (Optional) HUAWEI DevEco Studio| 3.0 Beta3 for OpenHarmony | This tool is recommended for developing OpenHarmony applications.|
+| (Optional) HUAWEI DevEco Device Tool| 3.0 Release | This tool is recommended for developing OpenHarmony smart devices.|
 
 
 ## Source Code Acquisition
@@ -101,8 +102,10 @@ repo forall -c 'git lfs pull'
 | Hi3861 mini system solution (binary)       | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_pegasus.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_pegasus.tar.gz.sha256) |
 | Hi3516 mini system solution - LiteOS (binary)| 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus.tar.gz.sha256) |
 | Hi3516 mini system solution - Linux (binary) | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus_linux.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus_linux.tar.gz.sha256) |
-| Standard system SDK package (macOS)                   | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz.sha256)|
-| Standard system SDK package (Windows/Linux)         | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz.sha256)|
+| Full SDK package for the standard system (macOS)              | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz.sha256)|
+| Full SDK package for the standard system (Windows/Linux)    | 3.1.1 Release  | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz.sha256)|
+| Public SDK package for the standard system (macOS)| 3.1.1 Release | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-public.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-public.tar.gz.sha256)|
+| Public SDK package for the standard system (Windows/Linux)| 3.1.1 Release | [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-public.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-public.tar.gz.sha256)|
 
 
 ## What's New
@@ -114,21 +117,22 @@ This version has the following updates to OpenHarmony 3.1 Release.
 
 **Table 3** New and enhanced features
 
-  | Subsystem| Standard System| Mini and Small Systems| 
+| Subsystem| Standard System| Mini and Small Systems|
 | -------- | -------- | -------- |
-| System service management| Added group verification.<br>The following requirement is involved:<br>I52G5Q Adding group verification| NA | 
-| Power management| Added the APIs for brightness adjustment and battery information query.<br>The following requirements are involved:<br>I526UP Supporting the **\@system.brightness** APIs<br>I526UP Supporting the **\@system.battery** APIs| NA | 
-| Bundle management| Added the APIs for querying whether a specified application is installed.<br>The following requirements are involved:<br>I56EWD Test framework configuration<br>I55RZJ Querying whether a specified application is installed| NA | 
-| Location service| Added compatibility with basic positioning APIs.<br>The following requirement is involved:<br>I53WFP Basic positioning capabilities and system APIs| NA | 
-| Ability| Added the following features to the FA model: ability-level screen orientation query and setting, lock screen display, and screen-on upon startup.<br>The following requirements are involved:<br>I56EH7 Querying and setting the landscape/portrait mode for an ability in the FA model<br>I50D5Y Lock screen display for an ability in the FA model<br>I56EH7 Screen-on during ability startup in the FA model<br>I55WB0 Carrying images in widget data<br>I55WB0 FA widget capability supplement - formManager reconstruction<br>I55WB0 FA widget capability supplement - widget status query<br>I55WB0 FA widget capability supplement - deleting invalid widgets<br>I55WB0 FA widget capability supplement - separate setting of the visibility and update status of widgets<br>I50D8H Interception of uncatched exceptions<br>I50D91 ANR processing| NA | 
-| Media| Added APIs related to audio focus and audio decoding.<br>The following requirements are involved:<br>I56REO Supplementing audio focus/device APIs<br>I522W0 AMR audio encoding| NA | 
-| Window manager| Added support for setting window properties.<br>The following requirement is involved:<br>I56EH7 Window property setting| NA | 
-| Network management| Added support for WebSocket and fetch APIs and Ethernet connections.<br>The following requirements are involved:<br>I53CKH Supporting the **\@system.fetch** APIs<br>I53CJX Supporting the **\@system.network** APIs<br>I53CKT WebSocket support<br>I580PC Ethernet connections| NA | 
-| Misc services| Added compatibility with HTTP file download APIs.<br>The following requirement is involved:<br>I56Q4X Supporting file download APIs| NA | 
-| Common event and notification| Added the APIs for sending and canceling notifications.<br>The following requirements are involved:<br>I50EEW APIs for sending and canceling notifications| NA | 
-| Distributed data management| Added compatibility with the **\@system.storage** APIs.<br>The following requirement is involved:<br>I56RF3 Supporting the **\@system.storage** APIs| NA | 
-| Startup| Added compatibility with the **\@system.device** APIs.<br>The following requirement is involved:<br>I56GBS Supporting the **\@system.device** APIs| NA | 
-| System applications| The Contacts application allows third-party applications to invoke the system call capability.<br>The following requirements are involved:<br>I58ZQ4 The Contacts application allows third-party applications to invoke the system call capability.| NA | 
+| SDK | SDKs are classified into full SDKs and public SDKs.<br>Note: The public SDK of API version 8 was released on July 6, 2022.| NA |
+| System service management| Added group verification.<br>The following requirement is involved:<br>I52G5Q Adding group verification| NA |
+| Power management| Added the APIs for brightness adjustment and battery information query.<br>The following requirements are involved:<br>I526UP Supporting the **\@system.brightness** APIs<br>I526UP Supporting the **\@system.battery** APIs| NA |
+| Bundle management| Added the APIs for querying whether a specified application is installed.<br>The following requirements are involved:<br>I56EWD Test framework configuration<br>I55RZJ Querying whether a specified application is installed| NA |
+| Location service| Added compatibility with basic positioning APIs.<br>The following requirement is involved:<br>I53WFP Basic positioning capabilities and system APIs| NA |
+| Ability| Added the following features to the FA model: ability-level screen orientation query and setting, lock screen display, and screen-on upon startup.<br>The following requirements are involved:<br>I56EH7 Querying and setting the landscape/portrait mode for an ability in the FA model<br>I50D5Y Lock screen display for an ability in the FA model<br>I56EH7 Screen-on during ability startup in the FA model<br>I55WB0 Carrying images in widget data<br>I55WB0 FA widget capability supplement - formManager reconstruction<br>I55WB0 FA widget capability supplement - widget status query<br>I55WB0 FA widget capability supplement - deleting invalid widgets<br>I55WB0 FA widget capability supplement - separate setting of the visibility and update status of widgets<br>I50D8H Interception of uncatched exceptions<br>I50D91 Application Not Response processing| NA |
+| Media| Added APIs related to audio focus and audio decoding.<br>The following requirements are involved:<br>I56REO Supplementing audio focus/device APIs<br>I522W0 AMR audio encoding| NA |
+| Window manager| Added support for setting window properties.<br>The following requirement is involved:<br>I56EH7 Window property setting| NA |
+| Network management| Added support for WebSocket and fetch APIs and Ethernet connections.<br>The following requirements are involved:<br>I53CKH Supporting the **\@system.fetch** APIs<br>I53CJX Supporting the **\@system.network** APIs<br>I53CKT WebSocket support<br>I580PC Ethernet connections| NA |
+| Misc services| Added compatibility with HTTP file download APIs.<br>The following requirement is involved:<br>I56Q4X Supporting file download APIs| NA |
+| Common event and notification| Added the APIs for sending and canceling notifications.<br>The following requirements are involved:<br>I50EEW APIs for sending and canceling notifications| NA |
+| Distributed data management| Added compatibility with the **\@system.storage** APIs.<br>The following requirement is involved:<br>I56RF3 Supporting the **\@system.storage** APIs| NA |
+| Startup| Added compatibility with the **\@system.device** APIs.<br>The following requirement is involved:<br>I56GBS Supporting the **\@system.device** APIs| NA |
+| System applications| The Contacts application allows third-party applications to invoke the system call capability.<br>The following requirements are involved:<br>I58ZQ4 The Contacts application allows third-party applications to invoke the system call capability.| NA |
 
 ### API Updates
 
@@ -159,4 +163,4 @@ For details about the adaptation status, see [SIG-Devboard](https://gitee.com/op
 | ------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------- | ------------ |
 | [I4Z3G9](https://gitee.com/openharmony/graphic_graphic_2d/issues/I4Z3G9) | [RK3568] Screen flickering occurs when the secondary window is opened in the immersive primary window.| Developer experience is affected.                                 | 2022-06-15   |
 | [I58GFY](https://gitee.com/openharmony/communication_wifi/issues/I58GFY) | [RK3568] On the 2.4 GHz and 5 GHz frequency bands, connections fail in WPA+TKIP/AES encryption mode.      | The TP-Link AX50 router cannot connect to the Wi-Fi network.         | 2022-06-30   |
-| [I59P32](https://gitee.com/openharmony/device_manager/issues/I59P32) | [RK3568] After the trust period of a device expires, PIN authentication cannot be performed.             | This issue occurs when the timer waiting for the PIN code input times out. It can be resolved by restarting the device.| 2022-06-15   |
+| [I59P32](https://gitee.com/openharmony/distributedhardware_device_manager/issues/I59P32) | [RK3568] After the trust period of a device expires, PIN authentication cannot be performed.             | This issue occurs when the timer waiting for the PIN code input times out. It can be resolved by restarting the device.| 2022-06-15   |
diff --git a/en/release-notes/api-change/v3.2-beta/js-apidiff-distributedschedule.md b/en/release-notes/api-change/v3.2-beta/js-apidiff-distributedschedule.md
new file mode 100644
index 0000000000000000000000000000000000000000..d07a990a8e198a5f02adff1e3ad68960713eedb3
--- /dev/null
+++ b/en/release-notes/api-change/v3.2-beta/js-apidiff-distributedschedule.md
@@ -0,0 +1,16 @@
+# JS API Changes of the Distributed Scheduler Subsystem
+
+The table below lists the APIs changes of the distributed scheduler subsystem in OpenHarmony 3.2 Beta1 over OpenHarmony 3.1 Release.
+
+## API Changes
+
+| Module| Class| Method/Attribute/Enumeration/Constant| Change Type|
+|---|---|---|---|
+| ohos.continuation.continuationManager | continuationManager | on(type: "deviceConnect", token: number, callback: Callback\<Array\<ContinuationResult>>): void; | Added|
+| ohos.continuation.continuationManager | continuationManager | off(type: "deviceConnect", token: number): void; | Added|
+| ohos.continuation.continuationManager | continuationManager | on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>): void; | Added|
+| ohos.continuation.continuationManager | continuationManager | off(type: "deviceDisconnect", token: number): void; | Added|
+| ohos.continuation.continuationManager | continuationManager | on(type: "deviceConnect", callback: Callback\<ContinuationResult>): void; | Deprecated|
+| ohos.continuation.continuationManager | continuationManager | off(type: "deviceConnect", callback?: Callback\<ContinuationResult>): void; | Deprecated|
+| ohos.continuation.continuationManager | continuationManager | on(type: "deviceDisconnect", callback: Callback\<string>): void; | Deprecated|
+| ohos.continuation.continuationManager | continuationManager | off(type: "deviceDisconnect", callback?: Callback\<string>): void; | Deprecated|
diff --git a/en/third-party-components/npm-third-party-guide.md b/en/third-party-components/npm-third-party-guide.md
index 6ba26adfac994335031346467ff4c86b05929843..cd042e86e394e050ae8e69fc1f402eb1717156b9 100644
--- a/en/third-party-components/npm-third-party-guide.md
+++ b/en/third-party-components/npm-third-party-guide.md
@@ -1,11 +1,11 @@
 # Using OpenHarmony JS/TS Third-Party Components
-## OpenHarmony JS/TS Third-Party Components
+## Overview
 
-OpenHarmony JS/TS third-party components are delivered in the form of OpenHarmony npm packages. Developed based on the traditional npm components, OpenHarmony npm shared packages come with specially designed project structures and configuration files, which allow code of OpenHarmony UI pages and resources to be shared across modules or projects. The OpenHarmony npm package enables multiple modules or projects to share code related to OpenHarmony UI and resources. You can go to the [official npm website](https://docs.npmjs.com/about-npm) to learn about basic functions and mechanisms of npm.
+OpenHarmony JS/TS third-party components are delivered in the form of OpenHarmony npm packages. Developed based on the traditional npm components, OpenHarmony npm shared packages come with specially designed project structures and configuration files. Such a package enables multiple modules or projects to share code related to OpenHarmony UI and resources. You can go to the [official npm website](https://docs.npmjs.com/about-npm) to learn about the basic functions and mechanisms of npm.
 
 ## Searching for OpenHarmony JS/TS Third-Party Components
 
-1. Watch the [OpenHarmony-TPC/tpc_resource](https://gitee.com/openharmony-tpc/tpc_resource) project on the Gitee website. You can find a component based on the directory index.
+1. Find the [OpenHarmony-TPC/tpc_resource](https://gitee.com/openharmony-tpc/tpc_resource) project on the Gitee website. You can find a component based on the directory index.
 
 2. Visit the [OpenHarmony website](https://www.openharmony.cn/mainPlay/tpc) and search for required third-party components by type, category, or keyword.
 
@@ -17,17 +17,17 @@ During application development, you can import JS/TS third-party components in t
 
 2. Under **Terminal** project, go to the **entry** directory and run the target component's command to install the component. For details about the command, see "Download and Installation" of the third-party component on the OpenHarmony website.
 
-   The following uses the installation of the [vCard third-party component](https://growing.openharmony.cn/mainPlay/libraryMaps/vcard_595) as an example. Find the installation command in "Download and Installation" and then run the command.
+   The following uses the installation of the [vCard component](https://growing.openharmony.cn/mainPlay/libraryMaps/vcard_595) as an example. Find the installation command in "Download and Installation" and then run the command.
 
    ![npm-usage1.png](npm-usage1.png)
    
    ![npm-usage2.png](npm-usage2.png)
 
-3. A **node_modules** file is automatically generated in the project folder. In this example, the downloaded third-party library is **@ohos\VCard** in the **node_modules** directory.
+3. Check for the **node_modules** file, which is automatically generated in the project folder. In this example, the downloaded third-party library is **@ohos\VCard** in the **node_modules** directory.
 
    ![npm-usage3.png](npm-usage3.png)
 
-4. The following dependency is automatically added to the **package.json** file:
+4. Check for the dependency configuration, which is automatically added to the **package.json** file:
 
    ```
    "dependencies": {
@@ -35,10 +35,10 @@ During application development, you can import JS/TS third-party components in t
    }
    ```
    
-5. Import the component to the file that wants to use the component.
+5. Import the component to the file that plans to use the component.
 
    ![npm-usage4.png](npm-usage4.png)
 
-6. Now you can use the APIs.
+6. Use the APIs as you want.
 
    ![npm-usage5.png](npm-usage5.png)
diff --git a/en/third-party-components/third-party-components-introduction.md b/en/third-party-components/third-party-components-introduction.md
index 6ed307016e9ff37ffa21aa0c6ccbd05feee45318..4416dd625bff709480c1f121da4dbfa644f705d1 100644
--- a/en/third-party-components/third-party-components-introduction.md
+++ b/en/third-party-components/third-party-components-introduction.md
@@ -1,5 +1,5 @@
 # OpenHarmony Third-Party Components
 
-OpenHarmony third-party components are verified software that work with the OpenHarmony system to facilitate your development of OpenHarmony devices or applications. Depending on the programming language they use, these components are classified as JS/TS third-party components or C/C++ third-party components. JS/TS third-party components use JavaScript or TypeScript and are usually imported as source code or OpenHarmony npm packages. They are used in application development. C/C++ third-party components use the programming language C/C++ and are usually imported as source code or OpenHarmony hpm packages. They are used as native APIs during application development or directly compiled in the OpenHarmony OS image during device development.
+OpenHarmony third-party components are verified software that work with the OpenHarmony system to facilitate your development of OpenHarmony devices or applications. Depending on the programming language they use, these components are classified as JS/TS third-party components or C/C++ third-party components. JS/TS third-party components use the JavaScript or TypeScript programming language and are usually imported as source code or OpenHarmony npm packages. They are used in application development. C/C++ third-party components use the C/C++ programming language and are usually imported as source code or OpenHarmony hpm packages. They are used as native APIs during application development or directly compiled in the OpenHarmony OS image during device development.
 
 Currently, OpenHarmony provides UI, animation, image, multimedia, file, network, security, tool, and other third-party components.
diff --git a/zh-cn/OpenHarmony-Overview_zh.md b/zh-cn/OpenHarmony-Overview_zh.md
index c9d0e1714a216509ebb58dc8e55f8e7f556c54aa..d1e7d2846472ee5b603c6b576560b8ba4afe2ac9 100644
--- a/zh-cn/OpenHarmony-Overview_zh.md
+++ b/zh-cn/OpenHarmony-Overview_zh.md
@@ -1,27 +1,10 @@
 # OpenHarmony开源项目
 
--   [项目介绍](#section1270210396435)
--   [技术架构](#section2502124574318)
--   [技术特性](#section12212842173518)
--   [系统类型](#section145241459142416)
--   [详细特征](#section25831825174419)
--   [支持的开发板](#section25831825174123)
--   [快速入门](#section44681652104210)
--   [代码仓地址](#section107651249181914)
--   [开发者文档](#section21031470109)
--   [源码下载](#section39011923144212)
--   [示例教程](#sectionsamples)
--   [如何参与](#section19611528174215)
--   [许可协议](#section1245517472115)
--   [联系方式](#section61728335424)
-
-[View English](https://gitee.com/openharmony/docs/blob/master/en/OpenHarmony-Overview.md)
-
-## 项目介绍<a name="section1270210396435"></a>
+## 项目介绍
 
 OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
 
-## 技术架构<a name="section2502124574318"></a>
+## 技术架构
 
 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 \> 子系统 \> 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。OpenHarmony技术架构如下所示:
 
@@ -57,47 +40,47 @@ OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统
 
 应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
 
-## 技术特性<a name="section12212842173518"></a>
+## 技术特性
 
-1.  **硬件互助,资源共享**
+**硬件互助,资源共享**
 
-    主要通过下列模块达成
+主要通过下列模块达成
 
-    -   分布式软总线
+-   分布式软总线
 
-        分布式软总线是多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。
+    分布式软总线是多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。
 
 
-    -   分布式数据管理
+-   分布式数据管理
     
-        分布式数据管理位于基于分布式软总线之上的能力,实现了应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件
+    分布式数据管理位于基于分布式软总线之上的能力,实现了应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件
 
 
-    -   分布式任务调度
+-   分布式任务调度
     
-        分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、绑定/解绑、以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况并结合用户的习惯和意图,选择最合适的设备运行分布式任务
+    分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、绑定/解绑、以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况并结合用户的习惯和意图,选择最合适的设备运行分布式任务
 
 
-    -   设备虚拟化
+-   设备虚拟化
     
-        分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,将周边设备作为手机能力的延伸,共同形成一个超级虚拟终端。
+    分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,将周边设备作为手机能力的延伸,共同形成一个超级虚拟终端。
 
 
-2.  **一次开发,多端部署**
+**一次开发,多端部署**
 
-    OpenHarmony提供用户程序框架、Ability框架以及UI框架,能够保证开发的应用在多终端运行时保证一致性。一次开发、多端部署。
+OpenHarmony提供用户程序框架、Ability框架以及UI框架,能够保证开发的应用在多终端运行时保证一致性。一次开发、多端部署。
 
-    多终端软件平台API具备一致性,确保用户程序的运行兼容性。
+多终端软件平台API具备一致性,确保用户程序的运行兼容性。
 
-    -   支持在开发过程中预览终端的能力适配情况(CPU/内存/外设/软件资源等)。
-    -   支持根据用户程序与软件平台的兼容性来调度用户呈现。
+-   支持在开发过程中预览终端的能力适配情况(CPU/内存/外设/软件资源等)。
+-   支持根据用户程序与软件平台的兼容性来调度用户呈现。
 
-3.  **统一OS,弹性部署**
+**统一OS,弹性部署**
 
-    OpenHarmony通过组件化和组件弹性化等设计方法,做到硬件资源的可大可小,在多种终端设备间,按需弹性部署,全面覆盖了ARM、RISC-V、x86等各种CPU,从百KiB到GiB级别的RAM。
+OpenHarmony通过组件化和组件弹性化等设计方法,做到硬件资源的可大可小,在多种终端设备间,按需弹性部署,全面覆盖了ARM、RISC-V、x86等各种CPU,从百KiB到GiB级别的RAM。
 
 
-## 系统类型<a name="section145241459142416"></a>
+## 系统类型
 
 OpenHarmony支持如下几种系统类型:
 
@@ -114,7 +97,7 @@ OpenHarmony支持如下几种系统类型:
     面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB,可以提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。
 
 
-## 详细特征<a name="section25831825174419"></a>
+## 详细特征
 
 在介绍OpenHarmony特性前,需要先明确以下两个基本概念:
 
@@ -126,245 +109,59 @@ OpenHarmony支持如下几种系统类型:
 
     对子系统的进一步拆分,可复用的软件单元,它包含源码、配置文件、资源文件和编译脚本;能独立构建,以二进制方式集成,具备独立验证能力的二进制单元。
 
-
 以下为OpenHarmony中相关的子系统简介,详细介绍见子系统Readme文档,入口:[https://gitee.com/openharmony/docs/tree/master/zh-cn/readme](https://gitee.com/openharmony/docs/tree/master/zh-cn/readme)。
 
-<a name="table18981149155318"></a>
-
-<table><thead align="left"><tr id="row69811925313"><th class="cellrowborder" valign="top" width="11.148885111488852%" id="mcps1.1.4.1.1"><p id="p9143172718537"><a name="p9143172718537"></a><a name="p9143172718537"></a>子系 统</p>
-</th>
-<th class="cellrowborder" valign="top" width="80.49195080491951%" id="mcps1.1.4.1.2"><p id="p6143122775319"><a name="p6143122775319"></a><a name="p6143122775319"></a>简 介</p>
-</th>
-<th class="cellrowborder" valign="top" width="8.35916408359164%" id="mcps1.1.4.1.3"><p id="p36827655311"><a name="p36827655311"></a><a name="p36827655311"></a>适用范围</p>
-</th>
-</tr>
-</thead>
-<tbody><tr id="row1746235812115"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p84622581117"><a name="p84622581117"></a><a name="p84622581117"></a>内核</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p34626584118"><a name="p34626584118"></a><a name="p34626584118"></a>支持适用于嵌入式设备及资源受限设备,具有小体积、高性能、低功耗等特征的LiteOS内核;支持基于linux kernel演进的适用于标准系统的linux内核。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p31041221121"><a name="p31041221121"></a><a name="p31041221121"></a>小型系统</p>
-<p id="p16450192619121"><a name="p16450192619121"></a><a name="p16450192619121"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row4465751131114"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p12465145131117"><a name="p12465145131117"></a><a name="p12465145131117"></a>分布式文件</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p1046615111118"><a name="p1046615111118"></a><a name="p1046615111118"></a>提供本地同步JS文件接口。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p15466135171117"><a name="p15466135171117"></a><a name="p15466135171117"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row14286184818110"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1328654871112"><a name="p1328654871112"></a><a name="p1328654871112"></a>图形</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p15912684317"><a name="p15912684317"></a><a name="p15912684317"></a>主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备(如平板和轻智能机等)的OpenHarmony系统应用开发。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p228719483115"><a name="p228719483115"></a><a name="p228719483115"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row4981119185313"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p43071335181312"><a name="p43071335181312"></a><a name="p43071335181312"></a>驱动</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p849919919515"><a name="p849919919515"></a><a name="p849919919515"></a>OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p7909102101420"><a name="p7909102101420"></a><a name="p7909102101420"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row1698219916532"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p183071635131320"><a name="p183071635131320"></a><a name="p183071635131320"></a>电源管理服务</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p1534121801513"><a name="p1534121801513"></a><a name="p1534121801513"></a>电源管理服务子系统提供如下功能:重启系统;管理休眠运行锁;系统电源状态管理和查询;充电和电池状态查询和上报;显示亮灭屏状态管理,包括显示亮度调节。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p0562145615152"><a name="p0562145615152"></a><a name="p0562145615152"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row1998212985315"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1230718353132"><a name="p1230718353132"></a><a name="p1230718353132"></a>泛Sensor服务</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p114999919515"><a name="p114999919515"></a><a name="p114999919515"></a>泛Sensor中包含传感器和小器件,传感器用于侦测环境中所发生事件或变化,并将此消息发送至其他电子设备,小器件用于向外传递信号的设备,包括马达和LED灯,对开发者提供控制马达振动和LED灯开关的能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p7683136135317"><a name="p7683136135317"></a><a name="p7683136135317"></a>小型系统</p>
-</td>
-</tr>
-<tr id="row1398249165320"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1930743511318"><a name="p1930743511318"></a><a name="p1930743511318"></a>多模输入</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p13832172015162"><a name="p13832172015162"></a><a name="p13832172015162"></a>OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方式,有别于传统操作系统的输入,在OpenHarmony上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多维、自然交互特点的应用程序。具体来说,多模输入子系统目前支持传统的输入交互方式,例如按键和触控。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p025515141075"><a name="p025515141075"></a><a name="p025515141075"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row209823955313"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1030711354137"><a name="p1030711354137"></a><a name="p1030711354137"></a>启动恢复</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p54461340151820"><a name="p54461340151820"></a><a name="p54461340151820"></a>启动恢复负责在内核启动之后,应用启动之前的操作系统中间层的启动。并提供系统属性查询、修改及设备恢复出厂设置的功能。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p8683362533"><a name="p8683362533"></a><a name="p8683362533"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row1982159115313"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p14307173571315"><a name="p14307173571315"></a><a name="p14307173571315"></a>升级服务</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p887484183"><a name="p887484183"></a><a name="p887484183"></a>可支持OpenHarmony设备的OTA(Over The Air)升级。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p10550164995117"><a name="p10550164995117"></a><a name="p10550164995117"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row89839920531"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p123071435151319"><a name="p123071435151319"></a><a name="p123071435151319"></a>帐号</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p2772313127"><a name="p2772313127"></a><a name="p2772313127"></a>支持在端侧对接厂商云帐号应用,提供分布式帐号登录状态查询和更新的管理能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p19928023151913"><a name="p19928023151913"></a><a name="p19928023151913"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row1598389185315"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p11473102882017"><a name="p11473102882017"></a><a name="p11473102882017"></a>编译构建</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p22956349202"><a name="p22956349202"></a><a name="p22956349202"></a>编译构建子系统提供了一个基于Gn和ninja的编译构建框架。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p183114819179"><a name="p183114819179"></a><a name="p183114819179"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row179834916539"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1347382819202"><a name="p1347382819202"></a><a name="p1347382819202"></a>测试</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p1850179125115"><a name="p1850179125115"></a><a name="p1850179125115"></a>开发过程采用测试驱动开发模式,开发者基于系统新增特性可以通过开发者自己开发用例保证,对于系统已有特性的修改,也可通过修改项目中原有的测试用例保证,开发者测试旨在帮助开发者在开发阶段就能开发出高质量代码。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p15458348191719"><a name="p15458348191719"></a><a name="p15458348191719"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row1698317918532"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p11473172817202"><a name="p11473172817202"></a><a name="p11473172817202"></a>数据管理</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p2030983518561"><a name="p2030983518561"></a><a name="p2030983518561"></a>数据管理支持应用本地数据管理和分布式数据管理:</p>
-<a name="ul2727156145217"></a><a name="ul2727156145217"></a><ul id="ul2727156145217"><li>支持应用本地数据管理,包括轻量级偏好数据库,关系型数据库。</li><li>支持分布式数据服务,为应用程序提供不同设备间数据库数据分布式的能力。</li></ul>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p193679548203"><a name="p193679548203"></a><a name="p193679548203"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row198318945311"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p14473132812018"><a name="p14473132812018"></a><a name="p14473132812018"></a>语言编译运行时</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p17753537218"><a name="p17753537218"></a><a name="p17753537218"></a>语言运行时提供了JS、C/C++语言程序的编译、执行环境,提供支撑运行时的基础库,以及关联的API接口、编译器和配套工具。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p14593146192111"><a name="p14593146192111"></a><a name="p14593146192111"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row098416935318"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p64731628132015"><a name="p64731628132015"></a><a name="p64731628132015"></a>分布式任务调度</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p55320348170"><a name="p55320348170"></a><a name="p55320348170"></a>提供系统服务的启动、注册、查询及管理能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p76835611530"><a name="p76835611530"></a><a name="p76835611530"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row11522144014127"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p847382818209"><a name="p847382818209"></a><a name="p847382818209"></a>JS UI框架</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p18885204913282"><a name="p18885204913282"></a><a name="p18885204913282"></a>JS UI框架是OpenHarmony UI开发框架,支持类Web范式编程。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p18278134513216"><a name="p18278134513216"></a><a name="p18278134513216"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row163116577176"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p9473192862015"><a name="p9473192862015"></a><a name="p9473192862015"></a>媒体</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p17895171152211"><a name="p17895171152211"></a><a name="p17895171152211"></a>提供音频、视频、相机等简单有效的媒体组件开发接口,使得应用开发者轻松使用系统的多媒体资源。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p7683126105314"><a name="p7683126105314"></a><a name="p7683126105314"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row99841913538"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p34736280204"><a name="p34736280204"></a><a name="p34736280204"></a>事件通知</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p1328485917223"><a name="p1328485917223"></a><a name="p1328485917223"></a>公共事件管理实现了订阅、退订、发布、接收公共事件(例如亮灭屏事件、USB插拔事件)的能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p19305121815138"><a name="p19305121815138"></a><a name="p19305121815138"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row199841792533"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p6473102817205"><a name="p6473102817205"></a><a name="p6473102817205"></a>杂散软件服务</p>
-</td>
-<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p8502149175110"><a name="p8502149175110"></a><a name="p8502149175110"></a>提供设置时间的能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1962012112314"><a name="p1962012112314"></a><a name="p1962012112314"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row176674368222"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p3667203652214"><a name="p3667203652214"></a><a name="p3667203652214"></a>包管理子系统</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p12923326230"><a name="p12923326230"></a><a name="p12923326230"></a>提供包安装、卸载、更新、查询等能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p12667123619226"><a name="p12667123619226"></a><a name="p12667123619226"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row65111417226"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p612981114248"><a name="p612981114248"></a><a name="p612981114248"></a>电话服务</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p19521141152212"><a name="p19521141152212"></a><a name="p19521141152212"></a>提供SIM卡、搜网、蜂窝数据、蜂窝通话、短彩信等蜂窝移动网络基础通信能力,可管理多类型通话和数据网络连接,为应用开发者提供便捷一致的通信API。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p124681352134"><a name="p124681352134"></a><a name="p124681352134"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row10194183317227"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p14129311172416"><a name="p14129311172416"></a><a name="p14129311172416"></a>公共基础类库</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p21941533132218"><a name="p21941533132218"></a><a name="p21941533132218"></a>公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1219413311229"><a name="p1219413311229"></a><a name="p1219413311229"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row9664349242"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p116653462411"><a name="p116653462411"></a><a name="p116653462411"></a>研发工具链</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p15701144517139"><a name="p15701144517139"></a><a name="p15701144517139"></a>提供设备连接调试器hdc;提供了性能跟踪能力和接口;提供了性能调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1696110251415"><a name="p1696110251415"></a><a name="p1696110251415"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row1449910380242"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p238324932415"><a name="p238324932415"></a><a name="p238324932415"></a>分布式软总线</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p17499153862420"><a name="p17499153862420"></a><a name="p17499153862420"></a>分布式软总线旨在为OpenHarmony系统提供跨进程或跨设备的通信能力,主要包含软总线和进程间通信两部分。其中,软总线为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能;而进程间通信则提供了对设备内或设备间无差别的进程间通信能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p5499183812418"><a name="p5499183812418"></a><a name="p5499183812418"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row1733413367244"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p1238318490244"><a name="p1238318490244"></a><a name="p1238318490244"></a>XTS</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p2334113611248"><a name="p2334113611248"></a><a name="p2334113611248"></a>XTS是OpenHarmony兼容性测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套,后续会拓展dcts(device compatibility test suite)设备兼容性测试套等。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p03341936102418"><a name="p03341936102418"></a><a name="p03341936102418"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row1817163212413"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p53831049112416"><a name="p53831049112416"></a><a name="p53831049112416"></a>系统应用</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p91717327249"><a name="p91717327249"></a><a name="p91717327249"></a>系统应用提供了OpenHarmony标准版上的部分系统应用,如桌面、SystemUI、设置等应用,为开发者提供了构建标准版应用的具体实例,这些应用支持在所有标准版系统的设备上使用。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p10171133218245"><a name="p10171133218245"></a><a name="p10171133218245"></a>标准系统</p>
-</td>
-</tr>
-<tr id="row3577428102418"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p93831496249"><a name="p93831496249"></a><a name="p93831496249"></a>DFX</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p8578828122413"><a name="p8578828122413"></a><a name="p8578828122413"></a>DFX是OpenHarmony非功能属性能力,包含日志系统、应用和系统事件日志接口、事件日志订阅服务、故障信息生成采集等功能。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p18578102822411"><a name="p18578102822411"></a><a name="p18578102822411"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row418795214250"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p860151102616"><a name="p860151102616"></a><a name="p860151102616"></a>全球化</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p41871252102515"><a name="p41871252102515"></a><a name="p41871252102515"></a>当OpenHarmony设备或应用在全球不同区域使用时,系统和应用需要满足不同市场用户关于语言、文化习俗的需求。全球化子系统提供支持多语言、多文化的能力,包括资源管理能力和国际化能力。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p201658544174"><a name="p201658544174"></a><a name="p201658544174"></a>所有系统</p>
-</td>
-</tr>
-<tr id="row16870124919255"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p136021513265"><a name="p136021513265"></a><a name="p136021513265"></a>安全</p>
-</td>
-<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p2871134913255"><a name="p2871134913255"></a><a name="p2871134913255"></a>安全子系统包括系统安全、数据安全、应用安全等模块,为OpenHarmony提供了保护系统和和用户数据的能力。安全子系统当前开源的功能,包括应用完整性保护、应用权限管理、设备认证、密钥管理服务。</p>
-</td>
-<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1487113491251"><a name="p1487113491251"></a><a name="p1487113491251"></a>所有系统</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## 支持的开发板<a name="section25831825174123"></a>
-
-当前OpenHarmony社区支持17款开发板,下表介绍3款(此处选择三种系统类型首款进入OpenHarmony主干的开发板),更多开发板信息,请参考[社区支持的开发板清单](device-dev/dev-board-on-the-master.md)。
-
-| 系统类型 | 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
-| -------- | -------- | -------- | -------- | -------- | -------- |
-| 标准系统 | 润和DAYU200 | RK3568 | 润和HH-SCDAYU200基于Rockchip&nbsp;RK3568,集成双核心架构GPU以及高效能NPU;板载四核64位Cortex-A55&nbsp;处理器采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。 | 影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。 | 代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope) <br/> 社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
-| 小型系统 | Hispark_Taurus | Hi3516DV300 | Hi3516DV300是新一代Smart&nbsp;HD&nbsp;IP摄像机SOC,集成新一代ISP(Image&nbsp;Signal&nbsp;Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。 | 带屏智能硬件,比如带屏冰箱、车机等。 | 代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon) <br/> 社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
-| 轻量系统 | 欧智通V200ZR | BES2600 | Multi-modal&nbsp;V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT&nbsp;SoC开发板Multi-modal&nbsp;V200Z-R开发板,单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi&nbsp;+&nbsp;双模蓝牙,支持标准的802.11&nbsp;a/b/g/n/协议,支持BT/BLE&nbsp;5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI&nbsp;DSI及CSI,适用于各种AIoT多模态VUI&nbsp;+&nbsp;GUI交互硬件场景。 | 智能硬件、带屏类模组产品,如音箱、手表等。 | 代码仓:<br/>[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br/>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br/>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic) <br/> 社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
-
-## 快速入门<a name="section44681652104210"></a>
+
+| 子系统        | 简 介                                                        | 适用范围         |
+| -------- | -------- | -------- |
+| 内核           | 支持适用于嵌入式设备及资源受限设备,具有小体积、高性能、低功耗等特征的LiteOS内核;支持基于linux kernel演进的适用于标准系统的linux内核。 | 小型系统<br>标准系统 |
+| 分布式文件     | 提供本地同步JS文件接口。                                     | 标准系统         |
+| 图形           | 主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备(如平板和轻智能机等)的OpenHarmony系统应用开发。 | 所有系统         |
+| 驱动           | OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。 | 所有系统         |
+| 电源管理服务   | 电源管理服务子系统提供如下功能:重启系统;管理休眠运行锁;系统电源状态管理和查询;充电和电池状态查询和上报;显示亮灭屏状态管理,包括显示亮度调节。 | 标准系统         |
+| 泛Sensor服务   | 泛Sensor中包含传感器和小器件,传感器用于侦测环境中所发生事件或变化,并将此消息发送至其他电子设备,小器件用于向外传递信号的设备,包括马达和LED灯,对开发者提供控制马达振动和LED灯开关的能力。 | 小型系统         |
+| 多模输入       | OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方式,有别于传统操作系统的输入,在OpenHarmony上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多维、自然交互特点的应用程序。具体来说,多模输入子系统目前支持传统的输入交互方式,例如按键和触控。 | 标准系统         |
+| 启动恢复       | 启动恢复负责在内核启动之后,应用启动之前的操作系统中间层的启动。并提供系统属性查询、修改及设备恢复出厂设置的功能。 | 所有系统         |
+| 升级服务       | 可支持OpenHarmony设备的OTA(Over The Air)升级。             | 标准系统         |
+| 帐号           | 支持在端侧对接厂商云帐号应用,提供分布式帐号登录状态查询和更新的管理能力。 | 标准系统         |
+| 编译构建       | 编译构建子系统提供了一个基于Gn和ninja的编译构建框架。        | 所有系统         |
+| 测试           | 开发过程采用测试驱动开发模式,开发者基于系统新增特性可以通过开发者自己开发用例保证,对于系统已有特性的修改,也可通过修改项目中原有的测试用例保证,开发者测试旨在帮助开发者在开发阶段就能开发出高质量代码。 | 所有系统         |
+| 数据管理       | 数据管理支持应用本地数据管理和分布式数据管理:<br>- 支持应用本地数据管理,包括轻量级偏好数据库,关系型数据库。<br/>- 支持分布式数据服务,为应用程序提供不同设备间数据库数据分布式的能力。 | 标准系统         |
+| 语言编译运行时 | 语言运行时提供了JS、C/C++语言程序的编译、执行环境,提供支撑运行时的基础库,以及关联的API接口、编译器和配套工具。 | 所有系统         |
+| 分布式任务调度 | 提供系统服务的启动、注册、查询及管理能力。                   | 所有系统         |
+| JS UI框架      | JS UI框架是OpenHarmony UI开发框架,支持类Web范式编程。       | 所有系统         |
+| 媒体           | 提供音频、视频、相机等简单有效的媒体组件开发接口,使得应用开发者轻松使用系统的多媒体资源。 | 所有系统         |
+| 事件通知       | 公共事件管理实现了订阅、退订、发布、接收公共事件(例如亮灭屏事件、USB插拔事件)的能力。 | 标准系统         |
+| 杂散软件服务   | 提供设置时间的能力。                                         | 标准系统         |
+| 包管理子系统   | 提供包安装、卸载、更新、查询等能力。                         | 所有系统         |
+| 电话服务       | 提供SIM卡、搜网、蜂窝数据、蜂窝通话、短彩信等蜂窝移动网络基础通信能力,可管理多类型通话和数据网络连接,为应用开发者提供便捷一致的通信API。 | 标准系统         |
+| 公共基础类库   | 公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。 | 所有系统         |
+| 研发工具链     | 提供设备连接调试器hdc;提供了性能跟踪能力和接口;提供了性能调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。 | 标准系统         |
+| 分布式软总线   | 分布式软总线旨在为OpenHarmony系统提供跨进程或跨设备的通信能力,主要包含软总线和进程间通信两部分。其中,软总线为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能;而进程间通信则提供了对设备内或设备间无差别的进程间通信能力。 | 所有系统         |
+| XTS            | XTS是OpenHarmony兼容性测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套,后续会拓展dcts(device compatibility test suite)设备兼容性测试套等。 | 所有系统         |
+| 系统应用       | 系统应用提供了OpenHarmony标准版上的部分系统应用,如桌面、SystemUI、设置等应用,为开发者提供了构建标准版应用的具体实例,这些应用支持在所有标准版系统的设备上使用。 | 标准系统         |
+| DFX            | DFX是OpenHarmony非功能属性能力,包含日志系统、应用和系统事件日志接口、事件日志订阅服务、故障信息生成采集等功能。 | 所有系统         |
+| 全球化         | 当OpenHarmony设备或应用在全球不同区域使用时,系统和应用需要满足不同市场用户关于语言、文化习俗的需求。全球化子系统提供支持多语言、多文化的能力,包括资源管理能力和国际化能力。 | 所有系统         |
+| 安全           | 安全子系统包括系统安全、数据安全、应用安全等模块,为OpenHarmony提供了保护系统和和用户数据的能力。安全子系统当前开源的功能,包括应用完整性保护、应用权限管理、设备认证、密钥管理服务。 | 所有系统         |
+
+## 支持的开发板
+
+当前OpenHarmony社区支持17款开发板,下表介绍3款(此处选择三种系统类型首款进入OpenHarmony主干的开发板),更多开发板信息,请参考[社区支持的开发板清单](device-dev/dev-board-on-the-master.md),社区每日构建版本获取地址请参考http://ci.openharmony.cn/dailys/dailybuilds
+
+ |系统类型 | 	 开发板型号|	 芯片型号  |	 主要能力及适配案例  |	 典型应用场景  |	开发板代码仓|
+  |--------  |	 --------|	 --------|	 --------|	 --------  |	 --------  |
+  |标准系统 | 	 润和DAYU200  |	 RK3568  |	 主要能力:<br/>润和HH-SCDAYU200<br/>基于<br/>Rockchip&nbsp;RK3568,集成双<br/>核心架构GPU以及高效能NPU;板<br/>载四核64位Cortex-A55&nbsp;处<br/>理器采用22nm先进工艺,主频高<br/>达2.0GHz;支持蓝牙、Wi-Fi、<br/>音频、视频和摄像头等功能,拥<br/>有丰富的扩展接口,支持多种视<br/>频输入输出接口;配置双千兆自<br/>适应RJ45以太网口,可满足<br/>NVR<br/>、工业网关等多网口产<br/>品需求。<br/>适配案例:<br/>[DAYU200适配案例](device-dev/porting/porting-dayu200-on_standard-demo.md)  |	影音娱乐、智慧<br/>出行、智<br/>能家居,<br/>如烟机、<br/>烤箱、跑<br/>步机等。  |	 [device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope) <br/> |
+  |小型系统 | 	 Hispark_<br/>Taurus |	 Hi3516DV<br/>300 | 	 主要能力:<br/>Hi3516DV300是新一<br/>代Smart&nbsp;HD&nbsp;IP摄像<br/>机SOC,集成新一代<br/>ISP(Image&nbsp;Signal&nbsp;P<br/>rocessor)、H.265视频压缩编码<br/>器、高性能NNIE引擎,在低码率<br/>、高画质、智能处理和分析、低<br/>功耗等方面有较好的性能。  |	带屏智能硬件,<br/>比如带屏<br/>冰箱、车<br/>机等。  |	 [device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](http://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon) <br/>|
+  |轻量系统  |	 Multi-modal<br/> V200Z-R  |	 BES2600  |	 主要能力:<br/>Multi-<br/>modal&nbsp;V200Z-R开发板是基<br/>于恒玄科技BES2600WM芯片的一<br/>款高性能、多功能、高性价比<br/>AIoT&nbsp;SoC开发板Multi-<br/>modal&nbsp;V200Z-R开发板,单<br/>模组集成四核ARM处理器(最高<br/>主频1GHz),集成双频<br/>WiFi&nbsp;+&nbsp;双模蓝牙,<br/>支持标准的<br/>802.11&nbsp;a/b/g/n/协议,支<br/>持BT/BLE&nbsp;5.2协议,内建<br/>多种容量的RAM(最大42MB)和<br/>Flash(最大32MB),支持<br/>MIPI&nbsp;DSI及CSI,适用于各<br/>种AIoT多模态<br/>VUI&nbsp;+&nbsp;GUI交互硬件<br/>场景。<br/>适配案例:<br/>[Multi-modal V200Z-R适配案例](device-dev/porting/porting-bes2600w-on-minisystem-display-demo.md)  |	智能硬件、带屏<br/>类模组产<br/>品,如音<br/>箱、手表<br/>等。  |	 [device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br/>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br/>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic) <br/>  |
+
+## 快速入门
 
 - [设备开发快速入门](device-dev/quick-start/quickstart-ide-lite-overview.md)
 - [应用开发快速入门](application-dev/quick-start/start-overview.md)
 
 
 
-## 代码仓地址<a name="section107651249181914"></a>
+## 代码仓地址
 
 OpenHarmony主库组织地址:[https://gitee.com/openharmony](https://gitee.com/openharmony)
 
@@ -374,7 +171,7 @@ OpenHarmony三方库组织地址:[https://gitee.com/openharmony-tpc](https://g
 
 OpenHarmony归档组织地址:[https://gitee.com/openharmony-retired](https://gitee.com/openharmony-retired)
 
-## 开发者文档<a name="section21031470109"></a>
+## 开发者文档
 
 [访问官网](https://www.openharmony.cn/)
 
@@ -382,29 +179,29 @@ OpenHarmony归档组织地址:[https://gitee.com/openharmony-retired](https://
 
 [English Version](https://gitee.com/openharmony/docs/tree/master/en)
 
-## 源码下载<a name="section39011923144212"></a>
+## 源码下载
 
 获取OpenHarmony源码:[下载说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md)
 
-## 示例教程<a name="sectionsamples"></a>
+## 示例教程
 
 Samples:[示例代码](https://gitee.com/openharmony/app_samples)
 
 Codelabs:[教程指导](https://gitee.com/openharmony/codelabs)
 
-## 如何参与<a name="section19611528174215"></a>
+## 如何参与
 
 参与社区:[社区介绍](https://gitee.com/openharmony/community/blob/master/README.md)
 
 参与贡献:[如何贡献](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md)
 
-## 许可协议<a name="section1245517472115"></a>
+## 许可协议
 
 OpenHarmony主要遵循Apache License V2.0协议,详情请参考各代码仓LICENSE声明。
 
 OpenHarmony引用三方开源软件及许可证说明,参考[第三方开源软件说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E5%8F%8A%E8%AE%B8%E5%8F%AF%E8%AF%81%E8%AF%B4%E6%98%8E.md)。
 
-## 联系方式<a name="section61728335424"></a>
+## 联系方式
 
 网站:
 
diff --git a/zh-cn/application-dev/Readme-CN.md b/zh-cn/application-dev/Readme-CN.md
index f6edc6cc861e360a1f8a8ea92aadbccd255131a8..19b9ca337e53338101d7d995f08865062ed8b290 100644
--- a/zh-cn/application-dev/Readme-CN.md
+++ b/zh-cn/application-dev/Readme-CN.md
@@ -8,14 +8,12 @@
 - 快速开始
     - 快速入门
         - [开发准备](quick-start/start-overview.md)
-        - [使用eTS语言开发(传统代码方式)](quick-start/start-with-ets.md)
-        - [使用eTS语言开发(低代码方式)](quick-start/start-with-ets-low-code.md)
-        - [使用JS语言开发(传统代码方式)](quick-start/start-with-js.md)
-        - [使用JS语言开发(低代码方式)](quick-start/start-with-js-low-code.md)
+        - [使用eTS语言开发(Stage模型)](quick-start/start-with-ets-stage.md)
+        - [使用eTS语言开发(FA模型)](quick-start/start-with-ets-fa.md)
+        - [使用JS语言开发(FA模型)](quick-start/start-with-js-fa.md)
     - 开发基础知识
         - [应用包结构说明(FA模型)](quick-start/package-structure.md)
         - [应用包结构说明(Stage模型)](quick-start/stage-structure.md)
-        - [资源文件的分类](quick-start/basic-resource-file-categories.md)
         - [SysCap说明](quick-start/syscap.md)
         - [HarmonyAppProvision配置文件](quick-start/app-provision-structure.md)
 - 开发
@@ -34,6 +32,7 @@
     - [设备使用信息统计](device-usage-statistics/Readme-CN.md)
     - [DFX](dfx/Readme-CN.md)
     - [国际化](internationalization/Readme-CN.md)
+    - [一次开发,多端部署](key-features/multi-device-app-dev/Readme-CN.md)
     - [IDL工具规格及使用说明书](IDL/idl-guidelines.md)
     - [Native API的相关指导](napi/Readme-CN.md)
 - 工具
@@ -42,8 +41,8 @@
     - [示例代码](https://gitee.com/openharmony/app_samples/blob/master/README_zh.md)
     - [Codelabs](https://gitee.com/openharmony/codelabs/blob/master/README.md)
 - API参考
-    - [组件参考(基于JS扩展的类Web开发范式)](reference/arkui-js/Readme-CN.md)
     - [组件参考(基于TS扩展的声明式开发范式)](reference/arkui-ts/Readme-CN.md)
+    - [组件参考(基于JS扩展的类Web开发范式)](reference/arkui-js/Readme-CN.md)
     - 接口
       -   [JS及TS API参考](reference/apis/Readme-CN.md)
       -   Native API
diff --git a/zh-cn/application-dev/ability/ability-brief.md b/zh-cn/application-dev/ability/ability-brief.md
index 548b3222b67a29d45dccaf472de44069d7b69fb8..3f8f7bce599193d6cce9d4a594d3188a380e4aed 100644
--- a/zh-cn/application-dev/ability/ability-brief.md
+++ b/zh-cn/application-dev/ability/ability-brief.md
@@ -31,4 +31,4 @@ Stage模型的设计,主要是为了开发者更加方便地开发出分布式
 
 ## 相关实例
 针对Ability开发,有以下相关实例可供参考:
-- [Page内和Page间导航跳转](https://gitee.com/openharmony/codelabs/tree/master/Ability/PageAbility)
\ No newline at end of file
+- [Page内和Page间导航跳转(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Ability/PageAbility)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ability/context-userguide.md b/zh-cn/application-dev/ability/context-userguide.md
index 796f380175f0e29a0538012dec8ea95a077e05dc..c79fef74df0c3ff05ba95f2a6f5392df8dc85aac 100644
--- a/zh-cn/application-dev/ability/context-userguide.md
+++ b/zh-cn/application-dev/ability/context-userguide.md
@@ -7,10 +7,10 @@
 ​        OpenHarmony的应用框架分为FA模型和Stage两种模型。对应存在两套Context机制适配两种应用框架模型,其中application/BaseContext属于通用的Context基类,里面包含一个属性stageMode,用来区分开发模型是FA还是Stage。
 
 - FA模型  
-只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意Context实例所代表的实际含义。
+  只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意Context实例所代表的实际含义。
 
 - Stage模型  
-除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在[Stage模型和Context详细介绍](#stage模型和context详细介绍)种进行说明。
+  除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在[Stage模型和Context详细介绍](#stage模型和context详细介绍)种进行说明。
 
 ![contextIntroduction](figures/contextIntroduction.png)
 
@@ -20,11 +20,11 @@
 
 ​        FA模型只有一个Context定义。Context中所有的功能都是通过方法来提供的,它提供了一些featureAbility中不存在的方法,相当于featureAbility的一个扩展和补全。
 
-​**d.ts声明**
+**d.ts声明**
 
 ​        https://gitee.com/openharmony/interface_sdk-js/blob/master/api/app/context.d.ts
 
-​**示例**
+**示例**
 
 ```javascript
 import featureAbility from '@ohos.ability.featureAbility'
@@ -223,7 +223,75 @@ export default class MainAbility extends Ability {
 
 卡片业务相关,点下面链接了解。
 
-​        [FormExtensionContext](/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md)
+​        [FormExtensionContext](../reference/apis/js-apis-formextensioncontext.md)
+
+### 在eTS页面中访问Context
+
+Stage模型下,在Ability的`onWindowStageCreate`生命周期中,可以通过WindowStage的`SetUIContent`方法加载一个eTS页面。在一些场景中,需要在页面内获取Context调用相关API。
+
+**获取方法**
+
+在eTS页面中通过以下全局方法获取当前页面关联的Context。
+
+| 接口名                                   | 描述                           |
+| :------------------------------------ | :--------------------------- |
+| getContext(component: Object): Object | 获取页面中component所关联的Context对象。 |
+
+**示例**
+
+```ts
+// MainAbility.ts
+import Ability from '@ohos.application.Ability'
+
+export default class MainAbility extends Ability {
+    onCreate(want, launchParam) {
+        console.log("[Demo] MainAbility onCreate")
+    }
+
+    onDestroy() {
+        console.log("[Demo] MainAbility onDestroy")
+    }
+
+    onWindowStageCreate(windowStage) {
+        // 加载index页面,并传入当前Context
+        windowStage.setUIContent(this.context, "pages/index", null)
+    }
+
+    onWindowStageDestroy() {}
+
+    onForeground() {}
+
+    onBackground() {}
+};
+```
+
+```ts
+// pages/index.ets
+import context from '@ohos.application.context'
+
+type Context = context.Context
+
+@Entry
+@Component
+struct Index {
+    build() {
+        Row() {
+            Column() {
+                Text('GetContext')
+                    .fontSize(50)
+                    .fontWeight(FontWeight.Bold)
+                    .onClick(() => {
+                        // 获取当前component关联的Context
+                        var context : Context = getContext(this) as Context
+                        console.info("CacheDir:" + context.cacheDir)
+                    })
+            }
+            .width('100%')
+        }
+        .height('100%')
+    }
+}
+```
 
 ## 常见错误使用方式
 
diff --git a/zh-cn/application-dev/ability/fa-brief.md b/zh-cn/application-dev/ability/fa-brief.md
index abf0fbccff62d597f714d5ae03c6b11674e665b5..6d658d0655c9c33b58d9f096aebc8e038b97cf28 100644
--- a/zh-cn/application-dev/ability/fa-brief.md
+++ b/zh-cn/application-dev/ability/fa-brief.md
@@ -32,11 +32,11 @@ Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为Pag
 - [`DistributeCalc`:分布式计算器(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Preset/DistributeCalc)
 - [`DistributeGraffiti`:分布式涂鸦(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ability/DistributedGraffiti)
 
-- [分布式调度启动远程FA](https://gitee.com/openharmony/codelabs/tree/master/Distributed/RemoteStartFA)
-- [分布式新闻客户端](https://gitee.com/openharmony/codelabs/tree/master/Distributed/NewsDemo)
-- [分布式手写板(eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/DistributeDatabaseDrawEts)
-- [分布式鉴权(JS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/GameAuthOpenH)
-- [分布式游戏手柄(eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/HandleGameApplication)
-- [分布式邮件(eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/OHMailETS)
-- [分布式亲子早教系统(eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/OpenHarmonyPictureGame)
-- [分布式遥控器(eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/RemoteControllerETS)
\ No newline at end of file
+- [分布式调度启动远程FA(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/RemoteStartFA)
+- [分布式新闻客户端(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/NewsDemo)
+- [分布式手写板(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/DistributeDatabaseDrawEts)
+- [分布式鉴权(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/GameAuthOpenH)
+- [分布式游戏手柄(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/HandleGameApplication)
+- [分布式邮件(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/OHMailETS)
+- [分布式亲子早教系统(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/OpenHarmonyPictureGame)
+- [分布式遥控器(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/RemoteControllerETS)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ability/fa-dataability.md b/zh-cn/application-dev/ability/fa-dataability.md
index 67dcdd8c71aeaff992259ea64c844249540bcb19..5ec1135c9c9eb5c7578b8441facb2b9831a7c022 100644
--- a/zh-cn/application-dev/ability/fa-dataability.md
+++ b/zh-cn/application-dev/ability/fa-dataability.md
@@ -1,12 +1,14 @@
 # DataAbility开发指导
+
 ## 场景介绍
+
 基于Data模板的Ability(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
 
 Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。
 
 ## URI介绍
 
-Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI仍基于URI通用标准,格式如下:
+Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。OpenHarmony的URI仍基于URI通用标准,格式如下:
 
 ![fa-dataability-uri](figures/fa-dataability-uri.png)
 
@@ -21,10 +23,9 @@ URI示例:
 - 跨设备场景:dataability://*device_id*/*com.domainname.dataability.persondata*/*person*/*10*
 - 本地设备:dataability:///*com.domainname.dataability.persondata*/*person*/*10*
 
-```
-说明
-本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。
-```
+> 说明
+> 
+> 本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。
 
 ## 接口说明
 
diff --git a/zh-cn/application-dev/ability/fa-serviceability.md b/zh-cn/application-dev/ability/fa-serviceability.md
index bae0e29ea3a3947ac0fe5db65d10a2b4e5256a85..58991ec7147c2789774dff1892c68f8a34d72653 100644
--- a/zh-cn/application-dev/ability/fa-serviceability.md
+++ b/zh-cn/application-dev/ability/fa-serviceability.md
@@ -32,7 +32,7 @@
        },
        onConnect(want) {
            console.log('ServiceAbility OnConnect');
-           return null;
+           return new FirstServiceAbilityStub('test');
        },
        onDisconnect(want) {
            console.log('ServiceAbility OnDisConnect');
@@ -139,41 +139,36 @@ let promise = featureAbility.startAbility(
     ```javascript
     import prompt from '@system.prompt'
 
-    let mRemote;
-    function onConnectCallback(element, remote){
-        console.log('onConnectLocalService onConnectDone element: ' + element);
-        console.log('onConnectLocalService onConnectDone remote: ' + remote);
-        mRemote = remote;
-        if (mRemote == null) {
-        prompt.showToast({
-            message: "onConnectLocalService not connected yet"
-        });
-        return;
-        }
-        let option = new rpc.MessageOption();
-        let data = new rpc.MessageParcel();
-        let reply = new rpc.MessageParcel();
-        data.writeInt(1);
-        data.writeInt(99);
-        mRemote.sendRequest(1, data, reply, option).then((result) => {
-            console.log('sendRequest success');
-            let msg = reply.readInt();
+    var option = {
+        onConnect: function onConnectCallback(element, proxy) {
+            console.log(`onConnectLocalService onConnectDone`)
+            if (proxy === null) {
+                prompt.showToast({
+                    message: "Connect service failed"
+                })
+                return
+            }
+            let data = rpc.MessageParcel.create()
+            let reply = rpc.MessageParcel.create()
+            let option = new rpc.MessageOption()
+            data.writeInterfaceToken("connect.test.token")
+            proxy.sendRequest(0, data, reply, option)
             prompt.showToast({
-                message: "onConnectLocalService connect result: " + msg,
-                duration: 3000
-            });
-        }).catch((e) => {
-            console.log('sendRequest error:' + e);
-        });
-
-    }
-
-    function onDisconnectCallback(element){
-        console.log('ConnectAbility onDisconnect Callback')
-    }
-
-    function onFailedCallback(code){
-        console.log('ConnectAbility onFailed Callback')
+                message: "Connect service success"
+            })
+        },
+        onDisconnect: function onDisconnectCallback(element) {
+            console.log(`onConnectLocalService onDisconnectDone element:${element}`)
+            prompt.showToast({
+                message: "Disconnect service success"
+            })
+        },
+        onFailed: function onFailedCallback(code) {
+            console.log(`onConnectLocalService onFailed errCode:${code}`)
+            prompt.showToast({
+                message: "Connect local service onFailed"
+            })
+        }
     }
     ```
 
@@ -201,44 +196,27 @@ let promise = featureAbility.startAbility(
     ```javascript
     import rpc from "@ohos.rpc";
 
-    let mMyStub;
-    export default {
-        onStart() {
-            class MyStub extends rpc.RemoteObject{
-                constructor(des) {
-                    if (typeof des === 'string') {
-                        super(des);
-                    }
-                    return null;
-                }
-                onRemoteRequest(code, data, reply, option) {
-                    console.log("ServiceAbility onRemoteRequest called");
-                    if (code === 1) {
-                        let op1 = data.readInt();
-                        let op2 = data.readInt();
-                        console.log("op1 = " + op1 + ", op2 = " + op2);
-                        reply.writeInt(op1 + op2);
-                    } else {
-                        console.log("ServiceAbility unknown request code");
-                    }
-                    return true;
-                }
-            }
-            mMyStub = new MyStub("ServiceAbility-test");
-        },
-        onCommand(want, startId) {
-            console.log('ServiceAbility onCommand');
-        },
-        onConnect(want) {
-            console.log('ServiceAbility OnConnect');
-            return mMyStub;
-        },
-        onDisconnect(want) {
-            console.log('ServiceAbility OnDisConnect');
-        },
-        onStop() {
-            console.log('ServiceAbility onStop');
-        },
+    class FirstServiceAbilityStub extends rpc.RemoteObject {
+    constructor(des: any) {
+        if (typeof des === 'string') {
+            super(des)
+        } else {
+            return
+        }
+    }
+
+    onRemoteRequest(code: number, data: any, reply: any, option: any) {
+        console.log(printLog + ` onRemoteRequest called`)
+        if (code === 1) {
+            let string = data.readString()
+            console.log(printLog + ` string=${string}`)
+            let result = Array.from(string).sort().join('')
+            console.log(printLog + ` result=${result}`)
+            reply.writeString(result)
+        } else {
+            console.log(printLog + ` unknown request code`)
+        }
+        return true;
     }
     ```
 
@@ -255,40 +233,36 @@ let promise = featureAbility.startAbility(
 ```ts
 import prompt from '@system.prompt'
 
-let mRemote;
-function onConnectCallback(element, remote){
-    console.log('onConnectRemoteService onConnectDone element: ' + element);
-    console.log('onConnectRemoteService onConnectDone remote: ' + remote);
-    mRemote = remote;
-    if (mRemote == null) {
-      prompt.showToast({
-        message: "onConnectRemoteService not connected yet"
-      });
-      return;
-    }
-    let option = new rpc.MessageOption();
-    let data = new rpc.MessageParcel();
-    let reply = new rpc.MessageParcel();
-    data.writeInt(1);
-    data.writeInt(99);
-    mRemote.sendRequest(1, data, reply, option).then((result) => {
-        console.log('sendRequest success');
-        let msg = reply.readInt();
+var option = {
+    onConnect: function onConnectCallback(element, proxy) {
+        console.log(`onConnectRemoteService onConnectDone`)
+        if (proxy === null) {
+            prompt.showToast({
+                message: "Connect service failed"
+            })
+            return
+        }
+        let data = rpc.MessageParcel.create()
+        let reply = rpc.MessageParcel.create()
+        let option = new rpc.MessageOption()
+        data.writeInterfaceToken("connect.test.token")
+        proxy.sendRequest(0, data, reply, option)
         prompt.showToast({
-            message: "onConnectRemoteService connect result: " + msg,
-            duration: 3000
-        });
-    }).catch((e) => {
-        console.log('sendRequest error:' + e);
-    });
-}
-
-function onDisconnectCallback(element){
-    console.log('ConnectRemoteAbility onDisconnect Callback')
-}
-
-function onFailedCallback(code){
-    console.log('ConnectRemoteAbility onFailed Callback')
+            message: "Connect service success"
+        })
+    },
+    onDisconnect: function onDisconnectCallback(element) {
+        console.log(`onConnectRemoteService onDisconnectDone element:${element}`)
+        prompt.showToast({
+            message: "Disconnect service success"
+        })
+    },
+    onFailed: function onFailedCallback(code) {
+        console.log(`onConnectRemoteService onFailed errCode:${code}`)
+        prompt.showToast({
+            message: "Connect local service onFailed"
+        })
+    }
 }
 ```
 
@@ -374,23 +348,25 @@ Service侧把自身的实例返回给调用侧的代码示例如下:
 ```ts
 import rpc from "@ohos.rpc";
 
-class FirstServiceAbilityStub extends rpc.RemoteObject{
-    constructor(des) {
+class FirstServiceAbilityStub extends rpc.RemoteObject {
+    constructor(des: any) {
         if (typeof des === 'string') {
-            super(des);
+            super(des)
         } else {
-            return null;
+            return
         }
     }
-    onRemoteRequest(code, data, reply, option) {
-        console.log("ServiceAbility onRemoteRequest called");
+
+    onRemoteRequest(code: number, data: any, reply: any, option: any) {
+        console.log(printLog + ` onRemoteRequest called`)
         if (code === 1) {
-            let op1 = data.readInt();
-            let op2 = data.readInt();
-            console.log("op1 = " + op1 + ", op2 = " + op2);
-            reply.writeInt(op1 + op2);
+            let string = data.readString()
+            console.log(printLog + ` string=${string}`)
+            let result = Array.from(string).sort().join('')
+            console.log(printLog + ` result=${result}`)
+            reply.writeString(result)
         } else {
-            console.log("ServiceAbility unknown request code");
+            console.log(printLog + ` unknown request code`)
         }
         return true;
     }
diff --git a/zh-cn/application-dev/ability/figures/fa-package-info.png b/zh-cn/application-dev/ability/figures/fa-package-info.png
deleted file mode 100644
index 7117b264d03b66eb33655d7cf7e939e820a4cab4..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/ability/figures/fa-package-info.png and /dev/null differ
diff --git a/zh-cn/application-dev/ability/figures/page-ability-lifecycle-callbacks.png b/zh-cn/application-dev/ability/figures/page-ability-lifecycle-callbacks.png
deleted file mode 100644
index 4c94556b5c2516ad2978a9a31d833cfb2cf3dd01..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/ability/figures/page-ability-lifecycle-callbacks.png and /dev/null differ
diff --git a/zh-cn/application-dev/ability/stage-ability-continuation.md b/zh-cn/application-dev/ability/stage-ability-continuation.md
index 260f37a05751269cf368f539214de8632c935e8e..b50cab8a17cfbcb49e8ff6098e410c76b1c3ae18 100755
--- a/zh-cn/application-dev/ability/stage-ability-continuation.md
+++ b/zh-cn/application-dev/ability/stage-ability-continuation.md
@@ -13,7 +13,8 @@
 |接口名 | 描述|
 |:------ | :------|
 | onContinue(wantParam : {[key: string]: any}): OnContinueResult | 迁移**发起端**在该回调中保存迁移所需要的数据,同时返回是否同意迁移:AGREE表示同意,REJECT表示拒绝;MISMATCH表示版本不匹配。 |
-| onCreate(want: Want, param : LaunchParam): void | 迁移**目标端**在该回调中完成数据恢复,并触发页面恢复。 |
+| onCreate(want: Want, param: AbilityConstant.LaunchParam): void; | 多实例应用迁移**目标端**在该回调中完成数据恢复,并触发页面恢复。 |
+| onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void; | 单实例应用迁移**目标端**在该回调中完成数据恢复,并触发页面恢复。 |
 
 
 
@@ -21,10 +22,12 @@
 
 ![continuation_dev](figures/continuation-info.png)
 
-迁移实际上是Ability携带数据的跨端启动。触发迁移动作时,会在A设备上通过系统回调应用的onContinue()方法,开发者需要在此方法中实现当前数据的保存。然后系统发起在B设备上的跨端启动,并将数据一同传输到B设备。B设备系统回调onCreate()方法,开发者需要在此方法中实现传输过来的数据的恢复。 
+迁移实际上是Ability携带数据的跨端启动。触发迁移动作时,会在A设备上通过系统回调应用的onContinue()方法,开发者需要在此方法中实现当前数据的保存。然后系统发起在B设备上的跨端启动,并将数据一同传输到B设备。B设备系统回调onCreate()/onNewWant()方法,开发者需要在此方法中实现传输过来的数据的恢复。 
 
 ## 开发步骤
 
+下文代码片段来自参考[示例](https://gitee.com/openharmony/ability_dmsfwk/tree/master/services/dtbschedmgr/test/samples/continuationManualTestSuite)。
+
 ### 迁移应用
 
 1. 配置
@@ -32,9 +35,17 @@
    - 配置应用支持迁移
 
      在module.json5中配置continuable字段:true表示支持迁移,false表示不支持,默认为false。配置为false的应用将被系统识别为无法迁移。
-    
+   
      ```javascript
-     "continuable": true
+     {
+       "module": {
+         "abilities": [
+           {
+             "continuable": true,
+           }
+         ]
+       }
+     }
      ```
      
 
@@ -42,30 +53,53 @@
 
    - 配置应用启动类型
 
-     迁移当前只支持多实例应用,需要在在module.json5中配置launchType字段为standard。
+     多实例应用在module.json5中将launchType字段配置为standard,目标端将会拉起一个新的应用,并恢复页面;单实例将该字段配置为singleton,如果目标端应用已经打开,迁移将会将已有页面栈清空,并根据迁移数据恢复页面。关于单实例与多实例的更多信息详见[ability开发指导](./stage-ability.md)启动模式。
+     
+     多实例:
      
      ```javascript
-     "launchType": "standard"
+     {
+       "module": {
+         "abilities": [
+           {
+             "launchType": "standard",
+           }
+         ]
+       }
+     }
      ```
      
-
-
-
+     缺省或如下配置为单实例:
+     
+     ```javascript
+     {
+       "module": {
+         "abilities": [
+           {
+             "launchType": "singleton",
+           }
+         ]
+       }
+     }
+     ```
+     
+     
+     
    - 申请分布式权限
 
      支持跨端迁移的应用需要在module.json5申请分布式权限 DISTRIBUTED_DATASYNC。
-     
+
      ```javascript
      "requestPermissions": [
             {
                 "name": "ohos.permission.DISTRIBUTED_DATASYNC"
             },
      ```
-     
+
      
 
      这个权限需要在应用首次启动的时候弹窗让用户授予,可以通过在ability的onWindowStageCreate中添加如下代码实现:
-     
+
      ```javascript
         requestPermissions = async () => {
             let permissions: Array<string> = [
@@ -102,12 +136,11 @@
             }
         }
      ```
-     
-     
 
 
 
-2. 实现onContinue()接口
+
+2. 实现onContinue接口
 
    onContinue()接口在发起端被调用,主要用于在迁移发起时,通知开发者保存控件状态变量和内存中数据,准备迁移。当应用准备完成后,需要返回OnContinueResult.AGREE(0)表示同意迁移,否则返回相应的错误码拒绝迁移。如果不实现该接口,系统将默认为拒绝迁移。
 
@@ -119,22 +152,25 @@
    ```
 
    要实现迁移,此接口必须实现并返回AGREE,否则默认为拒绝迁移。
-   
+
+   另外,在该接口的入参wantParam中可以获取目标设备的deviceId(key为“targetDevice”),以及目标设备上所安装的应用的版本号(key为“version”)。版本号可用来与本应用版本进行对比,做兼容性判断,如果判定本应用版本与远端不兼容,可以返回OnContinueResult.MISMATCH拒绝迁移。
+
    示例
-   
+
    ```javascript
-       onContinue(wantParam : {[key: string]: any}) {
-           Logger.info("onContinue using distributedObject")
-           // set user input data into want params
-           wantParam["input"] = AppStorage.Get<string>('ContinueInput');
-           Logger.info(`onContinue input = ${wantParam["input"]}`);
-           return AbilityConstant.OnContinueResult.AGREE
-       }
+        onContinue(wantParam : {[key: string]: any}) {
+            Logger.info(`onContinue version = ${wantParam.version}, targetDevice: ${wantParam.targetDevice}`)
+            let workInput = AppStorage.Get<string>('ContinueWork');
+            // set user input data into want params
+            wantParam["work"] = workInput // set user input data into want params
+            Logger.info(`onContinue input = ${wantParam["input"]}`);
+            return AbilityConstant.OnContinueResult.AGREE
+        }
    ```
-   
+
    
 
-3. 在onCreate()接口中实现迁移逻辑
+3. 在onCreate/onNewWant接口中实现迁移逻辑
 
    onCreate()接口在迁移目标端被调用,在目标端ability被拉起时,通知开发者同步已保存的内存数据和控件状态,完成后触发页面的恢复。如果不实现该接口中迁移相关逻辑,ability将会作为普通的启动方式拉起,无法恢复页面。
 
@@ -142,22 +178,34 @@
    
    完成数据恢复后,开发者需要调用restoreWindowStage来触发页面恢复。
    
-   示例
+   
 
+   在入参want中也可以通过want.parameters.version来获取发起端的应用版本号。
+   
+   示例
+   
    ```javascript
-       onCreate(want, launchParam) {
-           Logger.info(`MainAbility onCreate ${AbilityConstant.LaunchReason.CONTINUATION}`)
-           globalThis.abilityWant = want;
-           if (launchParam.launchReason == AbilityConstant.LaunchReason.CONTINUATION) {
-               let input = want.parameters.input // get user data from want params
-               AppStorage.SetOrCreate<string>('ContinueInput', input)
-               Logger.info(`onCreate for continuation sessionId:  ${this.sessionId}`)
-
-               this.contentStorage = new ContentStorage();
-               this.context.restoreWindowStage(this.contentStorage);
-           }
-       }
+    import Ability from '@ohos.application.Ability';
+    import distributedObject from '@ohos.data.distributedDataObject';
+    
+    export default class MainAbility extends Ability {
+        storage : LocalStorag;
+
+        onCreate(want, launchParam) {
+            Logger.info(`MainAbility onCreate ${AbilityConstant.LaunchReason.CONTINUATION}`)
+            if (launchParam.launchReason == AbilityConstant.LaunchReason.CONTINUATION) {
+                // get user data from want params
+                let workInput = want.parameters.work
+                Logger.info(`work input ${workInput}`)
+                AppStorage.SetOrCreate<string>('ContinueWork', workInput)
+   
+                this.storage = new LocalStorage();
+                this.context.restoreWindowStage(this.storage);
+            }
+        }
+    }
    ```
+如果是单实例应用,则同样的代码实现onNewWant接口即可。
 
 
 
@@ -165,32 +213,42 @@
 
 使用分布式对象
 
-分布式数据对象提供了与本地变量类似的操作,实现两个设备的数据同步,当设备1的应用A的分布式数据对象增、删、改数据后,设备2的应用A也可以获取到对应的数据变化,同时还能监听数据变更以及对端数据对象的上下线。用法详见[分布式对象指导文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/database/database-distributedobject-guidelines.md)。
+分布式数据对象提供了与本地变量类似的操作,实现两个设备的数据同步,当设备1的应用A的分布式数据对象增、删、改数据后,设备2的应用A也可以获取到对应的数据变化,同时还能监听数据变更以及对端数据对象的上下线。用法详见[分布式对象指导文档](../database/database-distributedobject-guidelines.md)。
 
 迁移场景中,分布式对象(distributedDataObject)主要用于将本机内存数据同步到目标设备。
 
-- 发起端在onContinue()中,将待迁移的数据存入分布式对象中,然后设置好session id,并通过wantParam将session id传到远端设备。
+- 发起端在onContinue()中,将待迁移的数据存入分布式对象中,并调用save接口将数据保存并同步到远端,然后设置好session id,并通过wantParam将session id传到远端设备。
 
   ```javascript
      import Ability from '@ohos.application.Ability';
      import distributedObject from '@ohos.data.distributedDataObject';
   
-     var g_object = distributedObject.createDistributedObject({name:undefined});
+     var g_object = distributedObject.createDistributedObject({data:undefined});
   
      export default class MainAbility extends Ability {
-         contentStorage : ContentStorage
          sessionId : string;
   
       onContinue(wantParam : {[key: string]: any}) {
-          Logger.info("onContinue using distributedObject")
-          this.sessionId = distributedObject.genSessionId();
-          //set distributed data object session id
-          g_object.setSessionId(this.sessionId);
-          g_object.name = "Amy";
-          // set session id into want params
-          wantParam["session"] = this.sessionId;
-          return AbilityConstant.OnContinueResult.AGREE
-      }
+        Logger.info(`onContinue version = ${wantParam.version}, targetDevice: ${wantParam.targetDevice}`)
+
+        if (g_object.__sessionId === undefined) {
+            this.sessionId = distributedObject.genSessionId()
+            Logger.info(`onContinue generate new sessionId`)
+        }
+        else {
+            this.sessionId = g_object.__sessionId;
+        }
+
+        wantParam["session"] = this.sessionId
+        g_object.data = AppStorage.Get<string>('ContinueStudy');
+        Logger.info(`onContinue sessionId = ${this.sessionId}, name = ${g_object.data}`)
+        g_object.setSessionId(this.sessionId);
+        g_object.save(wantParam.targetDevice, (result, data)=>{
+            Logger.info("save callback");
+            Logger.info("save sessionId " + data.sessionId);
+            Logger.info("save version " + data.version);
+            Logger.info("save deviceId " + data.deviceId);
+        });
   ```
 
   
@@ -201,15 +259,11 @@
      import Ability from '@ohos.application.Ability';
      import distributedObject from '@ohos.data.distributedDataObject';
   
-     var g_object = distributedObject.createDistributedObject({name:undefined});
+     var g_object = distributedObject.createDistributedObject({data:undefined});
   
      export default class MainAbility extends Ability {
-         contentStorage : ContentStorage
-         sessionId : string;
+         storage : LocalStorag;
   
-         statusCallback(sessionId, networkid, status) {
-             Logger.info(`continuation object status change, sessionId: ${sessionId}, status: ${status}, g_object.name: ${g_object.name}`)
-         }
   
          onCreate(want, launchParam) {
              Logger.info(`MainAbility onCreate ${AbilityConstant.LaunchReason.CONTINUATION}`)
@@ -218,15 +272,40 @@
                  this.sessionId = want.parameters.session
                  Logger.info(`onCreate for continuation sessionId:  ${this.sessionId}`)
   
-                 g_object.on("status", this.statusCallback);
-                 // set session id, so it will sync data from remote device
-                 g_object.setSessionId(this.sessionId);
+                // in order to fetch from remote, reset g_object.data to undefined first
+                g_object.data = undefined;
+                // set session id, so it will fetch data from remote
+                g_object.setSessionId(this.sessionId);
   
-                 this.contentStorage = new ContentStorage();
-                 this.context.restoreWindowStage(this.contentStorage);
+                AppStorage.SetOrCreate<string>('ContinueStudy', g_object.data)
+                this.storage = new LocalStorage();
+                this.context.restoreWindowStage(this.storage);
              }
+             
          }
      }
   ```
+  
+   
+  
+### 其他说明
+
+1. 超时机制:
+
+   - 如果目标端迁移应用未安装,系统会去查询在目标端设备上能否安装,这段最大时间为4s,超出此时间,调用者会收到超时错误码,视为不可在目标端安装。若可安装,则系统会提示用户在目标端安装,安装完成后可再次尝试发起迁移。
+   -  如果目标端迁移应用已安装 ,那么发起迁移后超时时间为20s,若超过此时间,调用者会收到超时错误码,视为此次迁移失败。
+
+2. 当前系统默认支持页面栈信息的迁移,即发起端页面栈会被自动迁移到目标端,无需开发者适配。
+
+
+
+### 约束
+
+1.   迁移要求在同ability之间进行,也就是需要相同的bundleName、moduleName和abilityName,具体含义[应用包配置文件说明](../quick-start/stage-structure.md)。
+2.    当前应用只能实现迁移能力,但迁移的动作只能由系统发起。
+
+
 
+### 最佳实践
 
+   为了获得最佳体验,建议100kb以下的数据直接使用wantParam传输,大于100kb的数据采用分布式对象传输。
\ No newline at end of file
diff --git a/zh-cn/application-dev/ability/stage-ability.md b/zh-cn/application-dev/ability/stage-ability.md
index fc43d7b00c5d1a68fa67c98bd5988c65cb4bb001..061faac68db96402e30ad0cf89b1d1136c9c5660 100644
--- a/zh-cn/application-dev/ability/stage-ability.md
+++ b/zh-cn/application-dev/ability/stage-ability.md
@@ -72,7 +72,7 @@ Ability功能如下(Ability类,具体的API详见[接口文档](../reference
    ```
 4. 实现Ability生命周期接口。
 
-   在`onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](../windowmanager/window-guidelines.md)。
+   在`onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](../windowmanager/application-window-stage.md)。
    ```ts
    export default class MainAbility extends Ability {
     onCreate(want, launchParam) {
diff --git a/zh-cn/application-dev/ability/stage-brief.md b/zh-cn/application-dev/ability/stage-brief.md
index c1c6407128123a5ad0d06615919de171e5ddc42b..9099e1e557bbd9abd7f3a8fae0eee7de15764a49 100644
--- a/zh-cn/application-dev/ability/stage-brief.md
+++ b/zh-cn/application-dev/ability/stage-brief.md
@@ -95,3 +95,6 @@
   下图展示了应用的进程模型。
 
   ![stageprocessmodel](figures/stageprocessmodel.png)
+## 相关实例
+针对Stage模型下的Ability开发,有以下相关实例可供参考:
+- [`MissionManager`:系统任务管理(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ability/MissionManager)
diff --git a/zh-cn/application-dev/ability/stage-call.md b/zh-cn/application-dev/ability/stage-call.md
index 1cec47b60933e75be2f0a141e862a92a4d7f7ebf..e8126fa0d7b92f82c9a35d2b92fe3d5017f9ca4d 100644
--- a/zh-cn/application-dev/ability/stage-call.md
+++ b/zh-cn/application-dev/ability/stage-call.md
@@ -19,7 +19,7 @@ Caller及Callee功能如下:具体的API详见[接口文档](../reference/apis
 |接口名|描述|
 |:------|:------|
 |startAbilityByCall(want: Want): Promise\<Caller>|获取指定通用组件的Caller通信接口,拉起指定通用组件并将其切换到后台。|
-|on(method: string, callback: CaleeCallBack): void|通用组件Callee注册method对应的callback方法。|
+|on(method: string, callback: CalleeCallBack): void|通用组件Callee注册method对应的callback方法。|
 |off(method: string): void|通用组件Callee去注册method的callback方法。|
 |call(method: string, data: rpc.Sequenceable): Promise\<void>|向通用组件Callee发送约定序列化数据。|
 |callWithResult(method: string, data: rpc.Sequenceable): Promise\<rpc.MessageParcel>|向通用组件Callee发送约定序列化数据, 并将返回的约定序列化数据带回。|
diff --git a/zh-cn/application-dev/application-dev-guide-for-gitee.md b/zh-cn/application-dev/application-dev-guide-for-gitee.md
index d8c44107f5e18924a007d955a03c1ef97ea8a89a..e17831a387db2b9ff959a3cf458369760f0545e6 100644
--- a/zh-cn/application-dev/application-dev-guide-for-gitee.md
+++ b/zh-cn/application-dev/application-dev-guide-for-gitee.md
@@ -54,11 +54,14 @@ DevEco Studio工具是OpenHarmony应用开发的推荐IDE工具。
 API参考提供了OpenHarmony全量组件和接口的参考文档,可以帮助开发者快速查找到指定接口的详细描述和调用方法。
 
 内容包括:
-- [组件参考(基于JS扩展的类Web开发范式)](reference/arkui-js/Readme-CN.md)
+
 - [组件参考(基于TS扩展的声明式开发范式)](reference/arkui-ts/Readme-CN.md)
--   接口参考
+
+
+- [组件参考(基于JS扩展的类Web开发范式)](reference/arkui-js/Readme-CN.md)
+- 接口参考
     - [JS及TS API参考](reference/apis/Readme-CN.md)
-    -  Native API
+    - Native API
         -   [Native API参考](reference/native-apis/Readme-CN.md)
         -   [标准库](reference/native-lib/third_party_libc/musl.md)
         -   [Node_API](reference/native-lib/third_party_napi/napi.md)
diff --git a/zh-cn/application-dev/application-dev-guide.md b/zh-cn/application-dev/application-dev-guide.md
index ebf83e6e6eb0d76d0b46697e0a8230e7c2578f03..1a2dba85bb227a47c8a76fcdd2872190a184c585 100644
--- a/zh-cn/application-dev/application-dev-guide.md
+++ b/zh-cn/application-dev/application-dev-guide.md
@@ -55,8 +55,14 @@ DevEco Studio工具是OpenHarmony应用开发的推荐IDE工具。
 API参考提供了OpenHarmony全量组件和接口的参考文档,可以帮助开发者快速查找到指定接口的详细描述和调用方法。
 
 内容包括:
--   [接口参考(JS及TS API)](reference/apis/js-apis-DataUriUtils.md)
--   接口参考(Native API)
-    -   [OpenHarmony Native API](reference/native-apis/_o_h___native_x_component.md)
-    -   [Native API标准库](reference/native-lib/third_party_libc/musl.md)
-    -   [Node_API](reference/native-lib/third_party_napi/napi.md)
+
+- [组件参考(基于TS扩展的声明式开发范式)](reference/arkui-ts/Readme-CN.md)
+
+- [组件参考(基于JS扩展的类Web开发范式)](reference/arkui-js/Readme-CN.md)
+
+- [接口参考(JS及TS API)](reference/apis/js-apis-DataUriUtils.md)
+
+- 接口参考(Native API)
+    - [OpenHarmony Native API](reference/native-apis/_o_h___native_x_component.md)
+    - [Native API标准库](reference/native-lib/third_party_libc/musl.md)
+    - [Node_API](reference/native-lib/third_party_napi/napi.md)
diff --git a/zh-cn/application-dev/connectivity/http-request.md b/zh-cn/application-dev/connectivity/http-request.md
index 90b3bb9829236ee4d07acccc23fff6f714034092..d71280393c8c3afc28b8d81bd26f11f7e84af841 100644
--- a/zh-cn/application-dev/connectivity/http-request.md
+++ b/zh-cn/application-dev/connectivity/http-request.md
@@ -74,4 +74,5 @@ httpRequest.request(
 
 ## 相关实例
 针对HTTP数据请求,有以下相关实例可供参考:
-- [`Http`:数据请求(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Network/Http)
\ No newline at end of file
+- [`Http`:数据请求(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Network/Http)
+- [使用HTTP实现与服务端通信(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/NetworkManagement/SmartChatEtsOH)
\ No newline at end of file
diff --git a/zh-cn/application-dev/connectivity/ipc-rpc-overview.md b/zh-cn/application-dev/connectivity/ipc-rpc-overview.md
index 37bd81e6f950e28c1047be1141eea33bb35225d1..ff1261dc0a27b968ba19d86f7bddc5fb401131a7 100755
--- a/zh-cn/application-dev/connectivity/ipc-rpc-overview.md
+++ b/zh-cn/application-dev/connectivity/ipc-rpc-overview.md
@@ -14,4 +14,4 @@ IPC(Inter-Process Communication)与RPC(Remote Procedure Call)机制用
 
 ## 相关模块
 
-[分布式任务调度子系统](https://gitee.com/openharmony/distributedschedule_dms_fwk)
+[分布式任务调度子系统](https://gitee.com/openharmony/ability_dmsfwk)
diff --git a/zh-cn/application-dev/connectivity/socket-connection.md b/zh-cn/application-dev/connectivity/socket-connection.md
index 1e39e74d1086ea44eca60bb766eecaa995236ce1..14d67dd82f1dcd79f481b5563dc96a098fb2a560 100644
--- a/zh-cn/application-dev/connectivity/socket-connection.md
+++ b/zh-cn/application-dev/connectivity/socket-connection.md
@@ -126,3 +126,5 @@ UDP与TCP流程大体类似,下面以TCP为例:
 ## 相关实例
 针对Socket连接开发,有以下相关实例可供参考:
 - [`Socket`:Socket 连接(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Network/Socket)
+- [使用UDP实现与服务端通信(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/NetworkManagement/UdpDemoOH)
+- [使用TCP实现与服务端通信(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/NetworkManagement/TcpSocketDemo)
\ No newline at end of file
diff --git a/zh-cn/application-dev/connectivity/websocket-connection.md b/zh-cn/application-dev/connectivity/websocket-connection.md
index 8cd007bf75842aac584aa76cf97c1f986473962e..53598fc5031da880ebf59edba43fb29bcc8b626b 100644
--- a/zh-cn/application-dev/connectivity/websocket-connection.md
+++ b/zh-cn/application-dev/connectivity/websocket-connection.md
@@ -83,3 +83,8 @@ WebSocket连接功能主要由webSocket模块提供。使用该功能需要申
        }
    });
    ```
+
+## 相关实例
+
+针对WebSocket连接的开发,有以下相关实例可供参考:
+- [`WebSocket`:WebSocket(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Network/WebSocket)
\ No newline at end of file
diff --git a/zh-cn/application-dev/database/database-distributedobject-guidelines.md b/zh-cn/application-dev/database/database-distributedobject-guidelines.md
index 093eea5fb3b843c12779d67ce68c3812aa0885a8..61db857faf49b8f9f3d1adbdd14e1737c63712bc 100644
--- a/zh-cn/application-dev/database/database-distributedobject-guidelines.md
+++ b/zh-cn/application-dev/database/database-distributedobject-guidelines.md
@@ -128,16 +128,16 @@
    以下为加入同步组网的代码示例:
 
    ```js
-   //发起方
+   // 发起方
    var local_object = distributedObject.createDistributedObject({name:"jack", age:18, isVis:true, 
-       parent:{mother:"jack mom",father:"jack Dad"},list:[{mother:"jack mom"}, {father:"jack Dad"}]});
+       parent:{mother:"jack mom", father:"jack Dad"}, list:[{mother:"jack mom"}, {father:"jack Dad"}]});
    local_object.setSessionId(sessionId);
    
-   //被拉起方
+   // 被拉起方
    var remote_object = distributedObject.createDistributedObject({name:undefined, age:undefined, isVis:true, 
                   parent:undefined, list:undefined});
    remote_object.setSessionId(sessionId);
-   //收到status上线后remote_object同步数据,即name变成jack,age是18
+   // 收到status上线后remote_object同步数据,即name变成jack,age是18
    ```
    
 5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。
@@ -166,16 +166,16 @@
    local_object.name = "jack";
    local_object.age = 19;
    local_object.isVis = false;
-   local_object.parent = {mother:"jack mom",father:"jack Dad"};
+   local_object.parent = {mother:"jack mom", father:"jack Dad"};
    local_object.list = [{mother:"jack mom"}, {father:"jack Dad"}];
    ```
 
    > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
    > 针对复杂类型的数据修改,目前支持对根属性的修改,暂不支持对下级属性的修改。示例如下:
    ```js
-   //支持的修改方式
+   // 支持的修改方式
    local_object.parent = {mother:"mom", father:"dad"};
-   //不支持的修改方式
+   // 不支持的修改方式
    local_object.parent.mother = "mom";
    ```
 
@@ -189,9 +189,9 @@
 
    以下为取消监听数据变更的代码示例:
    ```js
-   //删除变更回调changeCallback
+   // 删除变更回调changeCallback
    local_object.off("change", changeCallback);
-   //删除所有的变更回调
+   // 删除所有的变更回调
    local_object.off("change"); 
    ```
 9. 监听分布式对象的上下线。可以监听对端分布式数据对象的上下线。
@@ -210,14 +210,14 @@
     
        ```js
         // 保存数据对象
-        local_object.save("local", (result, data)=>{
+        local_object.save("local", (result, data) => {
             console.log("save callback");
             console.info("save sessionId " + data.sessionId);
             console.info("save version " + data.version);
             console.info("save deviceId " + data.deviceId);
         });
         // 撤回保存的数据对象
-        local_object.revokeSave((result, data) =>{
+        local_object.revokeSave((result, data) => {
         console.log("revokeSave callback");
         console.info("revokeSave sessionId " + data.sessionId);
         });
@@ -225,7 +225,7 @@
        2.Promise方式
        ```js
         // 保存数据对象
-        g_object.save("local").then((result)=>{
+        g_object.save("local").then((result) => {
             console.info("save sessionId " + result.sessionId);
             console.info("save version " + result.version);
             console.info("save deviceId " + result.deviceId);
@@ -233,7 +233,7 @@
             console.info("save local failed.");
         });
         // 撤回保存的数据对象
-        g_object.revokeSave().then((result)=>{
+        g_object.revokeSave().then((result) => {
             console.info("revokeSave success.");
         }, (result)=>{
             console.info("revokeSave failed.");
@@ -243,9 +243,9 @@
 
     以下为取消监听数据变更的代码示例:
        ```js
-    //删除上下线回调statusCallback
+    // 删除上下线回调statusCallback
     local_object.off("status", this.statusCallback);
-    //删除所有的上下线回调
+    // 删除所有的上下线回调
     local_object.off("status");
        ```
 12. 退出同步组网。分布式对象退出组网后,本地的数据变更对端不会同步。
@@ -254,12 +254,13 @@
        ```js
        local_object.setSessionId("");
        ```
-## 开发实例
+## 相关实例
 
 针对分布式数据对象,有以下开发实例可供参考:
+- [`DistributedNote`:分布式备忘录(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedNote)
 
 - [备忘录应用](https://gitee.com/openharmony/distributeddatamgr_objectstore/tree/master/samples/distributedNotepad)
 
-
-在备忘录应用中,当某一个设备上的备忘录事件发生变更时,通过分布式数据对象将事件变更同步在可信组网内的其他设备上,比如新增备忘录事件、编辑事件标题和内容、清空事件列表等。
+  在备忘录应用中,当某一个设备上的备忘录事件发生变更时,通过分布式数据对象将事件变更同步在可信组网内的其他设备上,比如新增备忘录事件、编辑事件标题和内容、清空事件列表 
+  等。
 
diff --git a/zh-cn/application-dev/database/database-mdds-guidelines.md b/zh-cn/application-dev/database/database-mdds-guidelines.md
index 7e6bc5dd5f6323c485a6018ce8bb7fceac476f4f..4414dbbe7134d2483a48b3f55d768e9d788d1646 100644
--- a/zh-cn/application-dev/database/database-mdds-guidelines.md
+++ b/zh-cn/application-dev/database/database-mdds-guidelines.md
@@ -8,19 +8,18 @@
 ## 接口说明
 具体分布式数据相关功能接口请见[分布式数据管理](../reference/apis/js-apis-distributed-data.md)。
 
-OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种功能:
 
 **表1** 分布式数据服务关键API功能介绍
 
-| 功能分类                   | 接口名称                                                     | 描述                                            |
-| -------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
-| 分布式数据库创建。         | createKVManager(config:&nbsp;KVManagerConfig,&nbsp;callback:&nbsp;AsyncCallback&lt;KVManager&gt;):&nbsp;void<br/>createKVManager(config:&nbsp;KVManagerConfig):&nbsp;Promise&lt;KVManager> | 创建一个KVManager对象实例,用于管理数据库对象。 |
-| 分布式数据库创建。         | getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options,&nbsp;callback:&nbsp;AsyncCallback&lt;T&gt;):&nbsp;void<br/>getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options):&nbsp;Promise&lt;T&gt; | 指定Options和storeId,创建并获取KVStore数据库。 |
-| 分布式数据增、删、改、查。 | put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean):&nbsp;Promise&lt;void> | 插入和更新数据。                                |
-| 分布式数据增、删、改、查。 | delete(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>delete(key:&nbsp;string):&nbsp;Promise&lt;void> | 删除数据。                                      |
-| 分布式数据增、删、改、查。 | get(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number&gt;):&nbsp;void<br/>get(key:&nbsp;string):&nbsp;Promise&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number> | 查询数据。                                      |
-| 订阅分布式数据变化。       | on(event:&nbsp;'dataChange',&nbsp;type:&nbsp;SubscribeType,&nbsp;observer:&nbsp;Callback&lt;ChangeNotification&gt;):&nbsp;void<br/>on(event:&nbsp;'syncComplete',&nbsp;syncCallback:&nbsp;Callback&lt;Array&lt;[string,&nbsp;number]&gt;&gt;):&nbsp;void | 订阅数据库中数据的变化。                        |
-| 分布式数据同步。           | sync(deviceIdList:&nbsp;string[],&nbsp;mode:&nbsp;SyncMode,&nbsp;allowedDelayMs?:&nbsp;number):&nbsp;void | 在手动模式下,触发数据库同步。                  |
+| 接口名称                                                     | 描述                                            |
+| ------------------------------------------------------------ | ----------------------------------------------- |
+| createKVManager(config:KVManagerConfig,callback:AsyncCallback&lt;KVManager&gt;):void<br/>createKVManager(config:KVManagerConfig):Promise&lt;KVManager> | 创建一个`KVManager`对象实例,用于管理数据库对象。 |
+| getKVStore&lt;TextendsKVStore&gt;(storeId:string,options:Options,callback:AsyncCallback&lt;T&gt;):void<br/>getKVStore&lt;TextendsKVStore&gt;(storeId:string,options:Options):Promise&lt;T&gt; | 指定`Options`和`storeId`,创建并获取`KVStore`数据库。 |
+| put(key:string,value:Uint8Array\|string\|number\|boolean,callback:AsyncCallback&lt;void&gt;):void<br/>put(key:string,value:Uint8Array\|string\|number\|boolean):Promise&lt;void> | 插入和更新数据。                                |
+| delete(key:string,callback:AsyncCallback&lt;void&gt;):void<br/>delete(key:string):Promise&lt;void> | 删除数据。                                      |
+| get(key:string,callback:AsyncCallback&lt;Uint8Array\|string\|boolean\|number&gt;):void<br/>get(key:string):Promise&lt;Uint8Array\|string\|boolean\|number> | 查询数据。                                      |
+| on(event:'dataChange',type:SubscribeType,observer:Callback&lt;ChangeNotification&gt;):void<br/>on(event:'syncComplete',syncCallback:Callback&lt;Array&lt;[string,number]&gt;&gt;):void | 订阅数据库中数据的变化。                        |
+| sync(deviceIdList:string[],mode:SyncMode,allowedDelayMs?:number):void | 在手动模式下,触发数据库同步。                  |
 
 
 
@@ -35,7 +34,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    ```
 
 2. 根据配置构造分布式数据库管理类实例。
-   1. 根据应用上下文创建KvManagerConfig对象。
+   1. 根据应用上下文创建`kvManagerConfig`对象。
    2. 创建分布式数据库管理器实例。
 
    以下为创建分布式数据库管理器的代码示例:
@@ -64,7 +63,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
 
 3. 获取/创建分布式数据库。
    1. 声明需要创建的分布式数据库ID描述。
-   2. 创建分布式数据库,建议关闭自动同步功能(autoSync:false),需要同步时主动调用sync接口。
+   2. 创建分布式数据库,建议关闭自动同步功能(`autoSync:false`),需要同步时主动调用`sync`接口。
 
    以下为创建分布式数据库的代码示例:
    ```js
@@ -91,9 +90,10 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    }
    ```
 
-   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-   > 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如上例中的kvStore)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。
-
+   > **说明:**
+   >
+   > 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如示例中的`kvStore`)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。
+   
 4. 订阅分布式数据变化。
    以下为订阅单版本分布式数据库数据变化通知的代码示例:
    ```js
@@ -103,7 +103,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    ```
 
 5. 将数据写入分布式数据库。
-   1. 构造需要写入分布式数据库的Key(键)和Value(值)。
+   1. 构造需要写入分布式数据库的`Key`(键)和`Value`(值)。
    2. 将键值数据写入分布式数据库。
 
    以下为将字符串类型键值数据写入分布式数据库的代码示例:
@@ -125,7 +125,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    ```
 
 6. 查询分布式数据库数据。
-   1. 构造需要从单版本分布式数据库中查询的Key(键)。
+   1. 构造需要从单版本分布式数据库中查询的`Key`(键)。
    2. 从单版本分布式数据库中获取数据。
 
    以下为从分布式数据库中查询字符串类型数据的代码示例:
@@ -149,9 +149,13 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    ```
 
 7. 同步数据到其他设备。
-   1.选择同一组网环境下的设备以及同步模式,进行数据同步。
+   选择同一组网环境下的设备以及同步模式,进行数据同步。
 
-   以下为单版本分布式数据库进行数据同步的代码示例,其中deviceIds可由deviceManager调用getTrustedDeviceListSync()方法得到,1000表示最大延迟时间为1000ms:
+   > **说明**:
+   >
+   > 其中`deviceManager`模块的接口均为系统接口。
+   
+   以下为单版本分布式数据库进行数据同步的代码示例:
    ```js
    import deviceManager from '@ohos.distributedHardware.deviceManager';
    
@@ -160,7 +164,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    deviceManager.createDeviceManager("bundleName", (err, value) => {
        if (!err) {
            devManager = value;
-           // get deviceIds
+           // deviceIds由deviceManager调用getTrustedDeviceListSync方法得到
            let deviceIds = [];
            if (devManager != null) {
                var devices = devManager.getTrustedDeviceListSync();
@@ -169,6 +173,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
                }
            }
            try{
+               // 1000表示最大延迟时间为1000ms
                kvStore.sync(deviceIds, distributedData.SyncMode.PUSH_ONLY, 1000);
            }catch (e) {
                 console.log("An unexpected error occurred. Error:" + e);
@@ -178,5 +183,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
    ```
 ## 相关实例
 针对分布式数据开发,有以下相关实例可供参考:
+- [`DistributedDataGobang`:分布式五子棋(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedDataGobang)
+- [`DDMQuery`:结果集与谓词(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/DDMQuery)
 - [`KvStore`:分布式数据库(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Kvstore)
-- [分布式数据库](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)
+- [分布式数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)
\ No newline at end of file
diff --git a/zh-cn/application-dev/database/database-preference-guidelines.md b/zh-cn/application-dev/database/database-preference-guidelines.md
index 14e25f9916b5b76deed13334993231ea7f586f20..76f3ff7808a49ab03bc09f5ad26297be6fa67385 100644
--- a/zh-cn/application-dev/database/database-preference-guidelines.md
+++ b/zh-cn/application-dev/database/database-preference-guidelines.md
@@ -167,3 +167,6 @@
         console.info("Deleted failed with err: " + err)
     })
    ```
+## 相关实例
+针对首选项开发,有以下相关实例可供参考:
+- [`Preferences`:首选项(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/data/Preferences)
diff --git a/zh-cn/application-dev/database/database-relational-guidelines.md b/zh-cn/application-dev/database/database-relational-guidelines.md
index 8a46eeaf4e5bb678fa39eecd48c52c0dea5c7b4c..26df601aaf7dfcff5ff6fc1bce3a06640529c5b9 100644
--- a/zh-cn/application-dev/database/database-relational-guidelines.md
+++ b/zh-cn/application-dev/database/database-relational-guidelines.md
@@ -210,6 +210,16 @@
 | RdbStore |restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void| 从指定的数据库备份文件恢复数据库,结果以callback形式返回。<br/>-&nbsp;srcName:指定数据库的备份文件名。<br/>-&nbsp;callback:指定callback回调函数。 |
 | RdbStore |restore(srcName:string): Promise&lt;void&gt;| 从指定的数据库备份文件恢复数据库,结果以promise形式返回。<br/>-&nbsp;srcName:指定数据库的备份文件名。 |
 
+**事务**
+
+**表15** 事务
+
+| 类名 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| RdbStore |beginTransaction():void| 在开始执行SQL语句之前,开始事务。 |
+| RdbStore |commit():void| 提交已执行的SQL语句。 |
+| RdbStore |rollBack():void| 回滚已经执行的SQL语句。 |
+
 ## 开发步骤
 
 1. 创建数据库。
@@ -278,9 +288,9 @@
 
     ```js
     "requestPermissions": 
-        {
-            "name": "ohos.permission.DISTRIBUTED_DATASYNC"
-        }
+    {
+        "name": "ohos.permission.DISTRIBUTED_DATASYNC"
+    }
     ```
 
     (2) 获取应用权限。
@@ -321,7 +331,7 @@
     promise.then((result) => {
         console.log('sync done.')
         for (let i = 0; i < result.length; i++) {
-            console.log('device=' + result[i][0] + ' status=' + result[i][1])
+            console.log('device=' + result[i][0] + 'status=' + result[i][1])
         }
     }).catch((err) => {
         console.log('sync failed')
@@ -339,7 +349,7 @@
     ```js
     function storeObserver(devices) {
         for (let i = 0; i < devices.length; i++) {
-            console.log('device=' + device[i] + ' data changed')
+            console.log('device=' + device[i] + 'data changed')
         }
     }
     try {
@@ -372,17 +382,17 @@
 
     ```js
     let promiseBackup = rdbStore.backup("dbBackup.db")
-    promiseBackup.then(()=>{
+    promiseBackup.then(() => {
         console.info('Backup success.')
-    }).catch((err)=>{
+    }).catch((err) => {
         console.info('Backup failed, err: ' + err)
     })
     ```
     ```js
     let promiseRestore = rdbStore.restore("dbBackup.db")
-    promiseRestore.then(()=>{
+    promiseRestore.then(() => {
         console.info('Restore success.')
-    }).catch((err)=>{
+    }).catch((err) => {
         console.info('Restore failed, err: ' + err)
     })
     ```
@@ -391,4 +401,4 @@
 针对关系型数据库开发,有以下相关实例可供参考:
 - [`Rdb`:关系型数据库(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Rdb)
 - [`DistributedRdb`:分布式关系型数据库(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedRdb)
-- [关系型数据库](https://gitee.com/openharmony/codelabs/tree/master/Data/JSRelationshipData)
+- [关系型数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JSRelationshipData)
diff --git a/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md b/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
index 9a43e1571aff77f8223461b3c472fefef2c1d7e8..bb10ceb9914da5f59bcf07d919c55b89932160c2 100644
--- a/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
+++ b/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md
@@ -436,4 +436,7 @@ import stats from '@ohos.bundleState';
         }
     });
     ```
+## 相关实例
+针对设备使用信息统计,有以下相关实例可供参考:
+- [`DeviceUsageStatistics`:设备使用信息统计(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/device/DeviceUsageStatistics)
 
diff --git a/zh-cn/application-dev/device/device-location-geocoding.md b/zh-cn/application-dev/device/device-location-geocoding.md
index d15b8df3418540ef13cedde828173a1948d9e8fc..8e87eab224a108cd6b620b3bda272c39abda82e8 100644
--- a/zh-cn/application-dev/device/device-location-geocoding.md
+++ b/zh-cn/application-dev/device/device-location-geocoding.md
@@ -39,13 +39,30 @@
    import geolocation from '@ohos.geolocation';
    ```
 
-2. 获取转化结果。
+2. 查询geoCoder服务是否可用。
+   - 调用isGeoServiceAvailable查询geoCoder服务是否可用,如果服务可用再继续进行步骤3。
+        
+      ```
+      geolocation.isGeoServiceAvailable((err, data) => {
+          if (err) {
+              console.log('isGeoServiceAvailable err: ' + JSON.stringify(err));
+          } else {
+              console.log('isGeoServiceAvailable data: ' + JSON.stringify(data));
+          }
+      });
+      ```
+
+3. 获取转化结果。
    - 调用getAddressesFromLocation,坐标转化地理位置信息。
         
       ```
       var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
-      geolocation.getAddressesFromLocation(reverseGeocodeRequest, (data) => {
-          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
+      geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
+          if (err) {
+              console.log('getAddressesFromLocation err: ' + JSON.stringify(err));
+          } else {
+              console.log('getAddressesFromLocation data: ' + JSON.stringify(data));
+          }
       });
       ```
 
@@ -54,8 +71,12 @@
         
       ```
       var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
-      geolocation.getAddressesFromLocationName(geocodeRequest, (data) => {
-          console.log('getAddressesFromLocationName: ' + JSON.stringify(data));
+      geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => {
+          if (err) {
+              console.log('getAddressesFromLocationName err: ' + JSON.stringify(err));
+          } else {
+              console.log('getAddressesFromLocationName data: ' + JSON.stringify(data));
+          }
       });
       ```
 
diff --git a/zh-cn/application-dev/device/device-location-info.md b/zh-cn/application-dev/device/device-location-info.md
index f5953d7740e91b796b940456e4e3ad0557727110..9aa69b81798ff67508e57c70ca22374e6da16907 100644
--- a/zh-cn/application-dev/device/device-location-info.md
+++ b/zh-cn/application-dev/device/device-location-info.md
@@ -84,7 +84,7 @@
    }
    ```
 
-   配置字段详细说明见。
+   配置字段详细说明见[应用包结构配置文件的说明](../quick-start/stage-structure.md)。
 
 2. 导入geolocation模块,所有与基础定位能力相关的功能API,都是通过该模块提供的。
    
@@ -123,7 +123,7 @@
      以导航场景为例,实例化方式如下:
    
    ```
-   var requestInfo = {'scenario': 0x301, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
+   var requestInfo = {'scenario': geolocation.LocationRequestScenario.NAVIGATION, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
 
    **方式二:**
@@ -152,7 +152,7 @@
      以定位精度优先策略为例,实例化方式如下:
    
    ```
-   var requestInfo = {'priority': 0x201, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
+   var requestInfo = {'priority': geolocation.LocationRequestPriority.ACCURACY, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
 
 4. 实例化Callback对象,用于向系统提供位置上报的途径。
@@ -179,8 +179,12 @@
 如果应用使用场景不需要实时的设备位置,可以获取系统缓存的最近一次历史定位结果。
      
    ```
-   geolocation.getLastLocation((data) => {
-       console.log('getLastLocation: data: ' + JSON.stringify(data));
+   geolocation.getLastLocation((err, data) => {
+       if (err) {
+           console.log('getLastLocation: err: ' + JSON.stringify(err));
+       } else {
+           console.log('getLastLocation: data: ' + JSON.stringify(data));
+       }
    });
    ```
 
diff --git a/zh-cn/application-dev/device/device-location-overview.md b/zh-cn/application-dev/device/device-location-overview.md
index 31bab927335cab41b6d135f890840f2f3e576502..d6a7606f38bc5ad49b72d9c8818ba2c0ec905d63 100644
--- a/zh-cn/application-dev/device/device-location-overview.md
+++ b/zh-cn/application-dev/device/device-location-overview.md
@@ -37,3 +37,9 @@
 使用设备的位置能力,需要用户进行确认并主动开启位置开关。如果位置开关没有开启,系统不会向任何应用提供位置服务。
 
 设备位置信息属于用户敏感数据,所以即使用户已经开启位置开关,应用在获取设备位置前仍需向用户申请位置访问权限。在用户确认允许后,系统才会向应用提供位置服务。
+
+## 相关实例
+
+针对位置服务,有以下相关实例可供参考:
+
+-[`Location`:位置服务(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/device/Location)
diff --git a/zh-cn/application-dev/device/sensor-guidelines.md b/zh-cn/application-dev/device/sensor-guidelines.md
index 6259723f5680f363646aca21d9341c6a22435622..8ffc74e20dea5ce602b497d67405ed87312ccf87 100644
--- a/zh-cn/application-dev/device/sensor-guidelines.md
+++ b/zh-cn/application-dev/device/sensor-guidelines.md
@@ -87,7 +87,7 @@
    ```
    import sensor from "@ohos.sensor"
    sensor.on(sensor.sensorType.SENSOR_TYPE_ACCELEROMETER,function(data){
-          console.info("Subscription succeeded. data = " + data);//调用成功,打印对应传感器的数据
+          console.info("Subscription succeeded. data = " + data);// 调用成功,打印对应传感器的数据
      }
    );
    ```
@@ -101,7 +101,7 @@
    ```
    import sensor from "@ohos.sensor"
    sensor.off(sensor.sensorType.SENSOR_TYPE_ACCELEROMETER,function() {
-       console.info("Succeeded in unsubscribing from acceleration sensor data.");//注销成功,返回打印结果
+       console.info("Succeeded in unsubscribing from acceleration sensor data.");// 注销成功,返回打印结果
      }
    );
    ```
@@ -115,7 +115,7 @@
    ```
    import sensor from "@ohos.sensor"
    sensor.once(sensor.sensorType.SENSOR_TYPE_ACCELEROMETER,function(data) {
-           console.info("Data obtained successfully. data=" + data);//获取数据成功,打印对应传感器的数据
+           console.info("Data obtained successfully. data=" + data);// 获取数据成功,打印对应传感器的数据
      }
    );
    ```
@@ -129,7 +129,7 @@
     ```
     try {
       sensor.once(sensor.sensorType.SENSOR_TYPE_ACCELEROMETER,function(data) {
-          console.info("Data obtained successfully. data=" + data);//获取数据成功,打印对应传感器的数据
+          console.info("Data obtained successfully. data=" + data);// 获取数据成功,打印对应传感器的数据
       });
     } catch (error) {
       console.error(error);
diff --git a/zh-cn/application-dev/device/usb-guidelines.md b/zh-cn/application-dev/device/usb-guidelines.md
index a4b96c2735fcca119917c6c1fcd24e892ac4a3a0..938786fd4b316a19c78b20867a4ee57e560f4e6e 100644
--- a/zh-cn/application-dev/device/usb-guidelines.md
+++ b/zh-cn/application-dev/device/usb-guidelines.md
@@ -153,3 +153,6 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
    usb.releaseInterface(pipe, interface1);
    usb.closePipe(pipe);
    ```
+## 相关实例
+针对USB管理开发,有以下相关实例可供参考:
+- [`USBManager`:USB管理(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/device/USBManager)
diff --git a/zh-cn/application-dev/internationalization/intl-guidelines.md b/zh-cn/application-dev/internationalization/intl-guidelines.md
index ceb2f492b42a98e0aa6e1df30db8d801d3cf314c..0f3584a39921fe3065bc46b3ae296c297267442f 100644
--- a/zh-cn/application-dev/internationalization/intl-guidelines.md
+++ b/zh-cn/application-dev/internationalization/intl-guidelines.md
@@ -328,4 +328,6 @@
 
 针对Intl开发,有以下相关实例可供参考:
 
--[`International`:国际化(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/International)
\ No newline at end of file
+-[`International`:国际化(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/International)
+
+-[`International`:国际化(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/common/International)
\ No newline at end of file
diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/cases.md b/zh-cn/application-dev/key-features/multi-device-app-dev/cases.md
deleted file mode 100644
index cf634a1e5c8f4ec793c48d6e7621ec4c18f01160..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/key-features/multi-device-app-dev/cases.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# 案例应用
-
-
-本章将从OpenHarmony预置的系统应用中,选择一些较为典型的案例,从页面开发和工程结构的角度,介绍"一多"的具体实践。OpenHarmony的产品形态在不断丰富中,当前主要有默认设备和平板两种产品形态,本章的具体实践也将围绕这两种产品形态展开。
-
-
-- **[短信应用](sms-intro.md)**
-
-- **[桌面应用](cases-home-screen.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/interaction-events-unification.md b/zh-cn/application-dev/key-features/multi-device-app-dev/interaction-events-unification.md
index de8757da2e44363a30aa616132fbb78fd77ef031..20e03164ee6e4865b3caac476d04e88a5a30fec3 100644
--- a/zh-cn/application-dev/key-features/multi-device-app-dev/interaction-events-unification.md
+++ b/zh-cn/application-dev/key-features/multi-device-app-dev/interaction-events-unification.md
@@ -42,7 +42,7 @@
 
 一个完整的拖拽事件,包含多个拖拽子事件,如下表所示(请访问拖拽事件了解详细用法)。当前触控屏和鼠标的拖拽事件已经实现”交互归一”,对触控屏的支持正在开发中。
 
-  | 名称 | 功能描述 | 
+| 名称 | 功能描述 | 
 | -------- | -------- |
 | onDragStart | 绑定A组件,触控屏长按/鼠标左键按下后移动触发 | 
 | onDragEnter | 绑定B组件,触控屏手指、鼠标移动进入B组件瞬间触发 | 
diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md b/zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md
index 481ccd596210d4541bf68da4b55d5a02049a21bb..474da8065f0ad6a0d8bd97afcca584ee260fbfc0 100644
--- a/zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md
+++ b/zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md
@@ -13,3 +13,8 @@
 
 
 下面将详细介绍这些布局能力。
+## 相关实例
+针对一次开发,多端部署,有以下相关实例可供参考:
+- [`AdaptiveCapabilities`:多设备自适应能力(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/MultiDeviceAppDev/AdaptiveCapabilities)
+- [`JsAdaptiveCapabilities`:多设备自适应能力(JS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/MultiDeviceAppDev/JsAdaptiveCapabilities)
+- [一次开发多端部署(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/MultiDeploymentEts)
diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/page-development.md b/zh-cn/application-dev/key-features/multi-device-app-dev/page-development.md
deleted file mode 100644
index 876cb0ac1b64b0642a34b48618548b80959814c2..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/key-features/multi-device-app-dev/page-development.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# 一多能力的页面开发介绍
-
-
-本章介绍如何使用方舟开发框架"一多"能力,开发出在多设备上正常显示的页面。方舟开发框架更推荐开发者使用声明式开发范式开发应用,故本章的内容和示例都基于声明式开发范式,所有示例代码均可以从[码云开源代码仓](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/AdaptiveCapabilities)中获取。
-
-
-- **[布局能力](layout-intro.md)**
-
-- **[交互归一](interaction-events-unification.md)**
-
-- **[多态组件](polymorphic-components.md)**
-
-- **[资源使用](resource-usage.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md b/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md
index 4915ade834a8f61eb902b015f1cd090a7122e6a4..20129df52a83ba41e72039ef1ee3320624da9b66 100644
--- a/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md
+++ b/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md
@@ -38,7 +38,7 @@
 在工程中,通过 "$r('app.type.name')" 的形式引用应用资源。app代表是应用内resources目录中定义的资源;type 代表资源类型(或资源的存放位置),可以取 color、float、string、plural和media,name代表资源命名,由开发者定义资源时确定。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> - 可以查看[声明式开发范式资源访问](../../ui/ts-application-resource-access.md),了解资源访问的更多细节。
+> - 可以查看[声明式开发范式资源访问](../../ui/ts-resource-access.md),了解资源访问的更多细节。
 > 
 > - 类Web开发范式的资源文件路径及资源限定词的使用与声明式范式不同,详情请参考[类Web开发范式资源限定与访问](../../ui/js-framework-resource-restriction.md)及[类Web开发范式文件组织](../../ui/js-framework-file.md)。
 
diff --git a/zh-cn/application-dev/media/Readme-CN.md b/zh-cn/application-dev/media/Readme-CN.md
index 4ff544ab9d076efd6ca9ad5cd3a6ed2157b227dc..d0793ffdd3396a75f81a3af585dd59d865078e3f 100755
--- a/zh-cn/application-dev/media/Readme-CN.md
+++ b/zh-cn/application-dev/media/Readme-CN.md
@@ -5,6 +5,7 @@
     - [音频播放开发指导](audio-playback.md)
     - [音频录制开发指导](audio-recorder.md)
     - [音频渲染开发指导](audio-renderer.md)
+    - [音频流管理开发指导](audio-stream-manager.md)
     - [音频采集开发指导](audio-capturer.md)
     - [OpenSL ES播放开发指导](opensles-playback.md)
     - [OpenSL ES录音开发指导](opensles-capture.md)
diff --git a/zh-cn/application-dev/media/audio-interruptmode.md b/zh-cn/application-dev/media/audio-interruptmode.md
index 6bd6386ab04a6f2894df3e4619b780e8078e4a5a..897fa18ec4091959fc8883d637d53f14c7b9e8b8 100644
--- a/zh-cn/application-dev/media/audio-interruptmode.md
+++ b/zh-cn/application-dev/media/audio-interruptmode.md
@@ -48,7 +48,7 @@
 
    ```js
     var mode_ = audio.InterruptMode.SHARE_MODE;
-    await this.audioRenderer.setInterruptMode(mode_).then(()=>{
+    await this.audioRenderer.setInterruptMode(mode_).then(() => {
       console.log('[JSAR] [SetInterruptMode] 设置: ' + (mode_ == 0 ? "共享模式":"独立焦点模式") + "成功" );
     });
    ```
diff --git a/zh-cn/application-dev/media/audio-playback.md b/zh-cn/application-dev/media/audio-playback.md
index f58d0a7c980c3fc5313cf8e92f42dfb961fb4ad3..6313ac85397e94b8e26c955ff647fc2d5c6208f3 100644
--- a/zh-cn/application-dev/media/audio-playback.md
+++ b/zh-cn/application-dev/media/audio-playback.md
@@ -193,12 +193,12 @@ export class AudioDemo {
     }).catch((err) => {
       console.info('open fd failed err is' + err);
     });
-    audioPlayer.src = nextFdPath; //设置src属性,并重新触发触发'dataLoad'事件回调
+    audioPlayer.src = nextFdPath; // 设置src属性,并重新触发触发'dataLoad'事件回调
   }
 
   async audioPlayerDemo() {
-    let audioPlayer = media.createAudioPlayer();       //创建一个音频播放实例
-    this.setCallBack(audioPlayer);                     //设置事件回调
+    let audioPlayer = media.createAudioPlayer();       // 创建一个音频播放实例
+    this.setCallBack(audioPlayer);                     // 设置事件回调
     let fdPath = 'fd://'
     // path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" 命令,将其推送到设备上
     let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
@@ -210,7 +210,7 @@ export class AudioDemo {
     }).catch((err) => {
       console.info('open fd failed err is' + err);
     });
-    audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
+    audioPlayer.src = fdPath; // 设置src属性,并触发'dataLoad'事件回调
   }
 }
 ```
@@ -258,5 +258,5 @@ export class AudioDemo {
 
 - [`JsDistributedMusicPlayer`:分布式音乐播放(JS)(API7)](https://gitee.com/openharmony/app_samples/tree/master/ability/JsDistributedMusicPlayer)
 - [`JsAudioPlayer`:音频播放和管理(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/media/JsAudioPlayer)
-- [`eTsAudioPlayer`: 音频播放器(eTS)](https://gitee.com/openharmony/app_samples/blob/master/media/Recorder/entry/src/main/ets/MainAbility/pages/Play.ets)
-- [音频播放器](https://gitee.com/openharmony/codelabs/tree/master/Media/Audio_OH_ETS)
\ No newline at end of file
+- [`eTsAudioPlayer`: 音频播放器(eTS)(API8)](https://gitee.com/openharmony/app_samples/blob/master/media/Recorder/entry/src/main/ets/MainAbility/pages/Play.ets)
+- [音频播放器(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Media/Audio_OH_ETS)
\ No newline at end of file
diff --git a/zh-cn/application-dev/media/audio-recorder.md b/zh-cn/application-dev/media/audio-recorder.md
index 91cb1835192acfebfcaa207d73e471c3c0895c8b..4fad7945ff6db32a2746751839a35427f5825674 100644
--- a/zh-cn/application-dev/media/audio-recorder.md
+++ b/zh-cn/application-dev/media/audio-recorder.md
@@ -192,5 +192,5 @@ export class AudioRecorderDemo {
 
 - [`Recorder`:录音机(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/media/Recorder)
 - [`JsRecorder`:录音机(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/media/JSRecorder)
-- [`eTsAudioPlayer`: 音频播放器(eTS)](https://gitee.com/openharmony/app_samples/blob/master/media/Recorder/entry/src/main/ets/MainAbility/pages/Play.ets)
-- [音频播放器](https://gitee.com/openharmony/codelabs/tree/master/Media/Audio_OH_ETS)
+- [`eTsAudioPlayer`: 音频播放器(eTS)(API8)](https://gitee.com/openharmony/app_samples/blob/master/media/Recorder/entry/src/main/ets/MainAbility/pages/Play.ets)
+- [音频播放器(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Media/Audio_OH_ETS)
diff --git a/zh-cn/application-dev/media/audio-stream-manager.md b/zh-cn/application-dev/media/audio-stream-manager.md
new file mode 100644
index 0000000000000000000000000000000000000000..19602da3f2b02f21fa29742ac6a7f5425ec386b4
--- /dev/null
+++ b/zh-cn/application-dev/media/audio-stream-manager.md
@@ -0,0 +1,158 @@
+# 音频流管理开发指导
+
+## 场景介绍
+
+AudioStreamManager提供了音频流管理的方法。开发者可以通过本指导了解应用如何通过AudioStreamManager管理音频流。
+
+### 工作流程
+
+在进行应用开发的过程中,开发者需要使用getStreamManager()创建一个AudioStreamManager实例,进而通过该实例管理音频流。开发者可通过调用on('audioRendererChange')、on('audioCapturerChange')监听音频播放应用和音频录制应用,在应用状态变化、设备变化、音频属性变化时获得通知。同时可通过off('audioRendererChange')、off('audioCapturerChange')取消相关事件的监听。与此同时,开发者可以通过调用(可选)使用getCurrentAudioRendererInfoArray()获取当前音频播放应用的音频流唯一ID、音频播放客户端的UID、音频状态等信息,同理可调用getCurrentAudioCapturerInfoArray()获取音频录制应用的信息。其具体调用关系可参考音频流管理调用关系图。
+
+详细API含义可参考:[音频管理API文档AudioStreamManager](../reference/apis/js-apis-audio.md#audiostreammanager9)
+
+**图1** 音频流管理调用关系图
+
+![](figures/zh-ch_image_audio_stream_manager.png)
+
+## 开发步骤
+
+1. 创建AudioStreamManager实例。
+
+   在使用AudioStreamManager的API前,需要使用getStreamManager()创建一个AudioStreamManager实例。
+
+   ```js
+   var audioStreamManager = audio.getStreamManager();
+   ```
+
+2. (可选)使用on('audioRendererChange')监听音频渲染器更改事件。
+如果音频流监听应用需要在音频播放应用状态变化、设备变化、音频属性变化时获取通知,可以订阅该事件。更多事件请参考[API参考文档](../reference/apis/js-apis-audio.md)。
+
+   ```js
+   audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
+     for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+       AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+       console.info('## RendererChange on is called for ' + i + ' ##');
+       console.info('StreamId for ' + i + ' is:' + AudioRendererChangeInfo.streamId);
+       console.info('ClientUid for ' + i + ' is:' + AudioRendererChangeInfo.clientUid);
+       console.info('Content for ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.content);
+       console.info('Stream for ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.usage);
+       console.info('Flag ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.rendererFlags);
+       console.info('State for ' + i + ' is:' + AudioRendererChangeInfo.rendererState);  
+       var devDescriptor = AudioRendererChangeInfo.deviceDescriptors;
+       for (let j = 0; j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+         console.info('Id:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].id);
+         console.info('Type:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceType);
+         console.info('Role:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceRole);
+         console.info('Name:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].name);
+         console.info('Address:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].address);
+         console.info('SampleRates:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]);
+         console.info('ChannelCounts' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]);
+         console.info('ChannelMask:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelMasks);
+       }
+     }
+   });
+   ```
+
+3. (可选)使用off('audioRendererChange')取消监听音频渲染器更改事件。
+
+   ```js
+   audioStreamManager.off('audioRendererChange');
+   console.info('######### RendererChange Off is called #########');
+   ```   
+
+4. (可选)使用on('audioCapturerChange')监听音频捕获器更改事件。
+如果音频流监听应用需要在音频录制应用状态变化、设备变化、音频属性变化时获取通知,可以订阅该事件。更多事件请参考[API参考文档](../reference/apis/js-apis-audio.md)。
+
+   ```js
+   audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
+     for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+       console.info(' ## audioCapturerChange on is called for element ' + i + ' ##');
+       console.info('StreamId for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].streamId);
+       console.info('ClientUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+       console.info('Source for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+       console.info('Flag ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+       console.info('State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);  
+       for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+         console.info('Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+         console.info('Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+         console.info('Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+         console.info('Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name);
+         console.info('Address:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+         console.info('SampleRates:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+         console.info('ChannelCounts' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+         console.info('ChannelMask:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+       }
+     }
+   });
+   ```  
+
+5. (可选)使用off('audioCapturerChange')取消监听音频捕获器更改事件。
+
+   ```js
+   audioStreamManager.off('audioCapturerChange');
+   console.info('######### CapturerChange Off is called #########');
+   ```  
+
+6. (可选)使用getCurrentAudioRendererInfoArray()获取当前音频渲染器的信息。
+该接口可获取音频流唯一ID,音频播放客户端的UID,音频状态以及音频播放器的其他信息。需注意的是若对第三方音频流监听应用未配置ohos.permission.USE_BLUETOOTH权限,则查询到的设备名称和设备地址为空字符串,若正确配置权限,则显示的实际的设备名称和设备地址信息。
+   
+   ```js
+   await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
+     console.info('######### Get Promise is called ##########');
+     if (AudioRendererChangeInfoArray != null) {
+       for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+         AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+         console.info('StreamId for ' + i +' is:' + AudioRendererChangeInfo.streamId);
+         console.info('ClientUid for ' + i + ' is:' + AudioRendererChangeInfo.clientUid);
+         console.info('Content ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.content);
+         console.info('Stream' + i +' is:' + AudioRendererChangeInfo.rendererInfo.usage);
+         console.info('Flag' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.rendererFlags); 
+         console.info('State for ' + i + ' is:' + AudioRendererChangeInfo.rendererState);  
+         var devDescriptor = AudioRendererChangeInfo.deviceDescriptors;
+         for (let j = 0; j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+           console.info('Id:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].id);
+           console.info('Type:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceType);
+           console.info('Role:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceRole);
+           console.info('Name:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].name);
+           console.info('Address:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].address);
+           console.info('SampleRates:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]);
+           console.info('ChannelCounts' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]);
+           console.info('ChannnelMask:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelMasks);
+         }
+       }
+     }
+   }).catch((err) => {
+     console.log('getCurrentAudioRendererInfoArray :ERROR: ' + err.message);
+   });
+   ``` 
+
+7. (可选)使用getCurrentAudioCapturerInfoArray()获取当前音频捕获器的信息。
+该接口可获取音频流唯一ID,音频录制客户端的UID,音频状态以及音频捕获器的其他信息。需注意的是若对第三方音频流监听应用未配置ohos.permission.USE_BLUETOOTH权限,则查询到的设备名称和设备地址为空字符串,若正确配置权限,则显示的实际的设备名称和设备地址信息。
+   
+   ```js
+   await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
+     console.info('getCurrentAudioCapturerInfoArray: **** Get Promise Called ****');
+     if (AudioCapturerChangeInfoArray != null) {
+       for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+         console.info('StreamId for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].streamId);
+         console.info('ClientUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+         console.info('Source for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+         console.info('Flag ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+         console.info('State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);  
+         var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+         for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+           console.info('Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+           console.info('Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+           console.info('Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+           console.info('Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name)
+           console.info('Address:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+           console.info('SampleRates:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+           console.info('ChannelCounts' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+           console.info('ChannelMask:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+         }
+       }
+     }
+   }).catch((err) => {
+     console.log('getCurrentAudioCapturerInfoArray :ERROR: ' + err.message);
+   });
+   ```      
\ No newline at end of file
diff --git a/zh-cn/application-dev/media/figures/zh-ch_image_audio_stream_manager.png b/zh-cn/application-dev/media/figures/zh-ch_image_audio_stream_manager.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5c72f9d662abb75e177534a888eef14d48d62ab
Binary files /dev/null and b/zh-cn/application-dev/media/figures/zh-ch_image_audio_stream_manager.png differ
diff --git a/zh-cn/application-dev/media/image.md b/zh-cn/application-dev/media/image.md
index 551617ff75dbe68caf8eef4e678000760daafc49..deda457636e444120cee5a4577ebe1fed567b5fa 100644
--- a/zh-cn/application-dev/media/image.md
+++ b/zh-cn/application-dev/media/image.md
@@ -296,4 +296,11 @@ public async init(surfaceId: any) {
 
     // 调用Camera方法将surfaceId传递给Camera。camera会通过surfaceId获取surface,并生产出surface buffer。
 }
-```
\ No newline at end of file
+```
+
+## 相关实例
+
+针对图片开发,有以下相关实例可供参考:
+
+- [`Image`:图片处理(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/media/Image)
+- [`GamePuzzle`:拼图(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/media/GamePuzzle)
\ No newline at end of file
diff --git a/zh-cn/application-dev/media/opensles-playback.md b/zh-cn/application-dev/media/opensles-playback.md
index 3f3b891f824fc15004f8a8f1e0d6150f3d765875..66e90957f3fe127f53714bf6615bb4f85541b61a 100644
--- a/zh-cn/application-dev/media/opensles-playback.md
+++ b/zh-cn/application-dev/media/opensles-playback.md
@@ -39,7 +39,7 @@
         0
     };
     
-    //具体参数需要根据音频文件格式进行适配
+    // 具体参数需要根据音频文件格式进行适配
     SLDataFormat_PCM pcmFormat = {
         SL_DATAFORMAT_PCM,
         2,
@@ -82,7 +82,7 @@
         return;
     }
     
-    //wavFile_ 需要设置为用户想要播放的文件描述符
+    // wavFile_ 需要设置为用户想要播放的文件描述符
     wavFile_ = fopen(path, "rb");
     (*bufferQueueItf)->RegisterCallback(bufferQueueItf, BufferQueueCallback, wavFile_);
     ```
diff --git a/zh-cn/application-dev/media/video-playback.md b/zh-cn/application-dev/media/video-playback.md
index d68991c0a1fff0d436b57b04fc9cdfd2090dd54e..bb8a935684e397beef11c5ce4476b81a0a04fa1d 100644
--- a/zh-cn/application-dev/media/video-playback.md
+++ b/zh-cn/application-dev/media/video-playback.md
@@ -445,4 +445,5 @@ export class VideoPlayerDemo {
 ## 相关实例
 针对视频播放开发,有以下相关实例可供参考:
 
-- [`VideoPlayer`:视频播放(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/media/VideoPlayer)
\ No newline at end of file
+- [`VideoPlayer`:视频播放(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/media/VideoPlayer)
+- [视频播放器(eTS)(API 9)](https://gitee.com/openharmony/codelabs/tree/master/Media/VideoPlayerStage)
\ No newline at end of file
diff --git a/zh-cn/application-dev/napi/napi-guidelines.md b/zh-cn/application-dev/napi/napi-guidelines.md
index f5702ff4654bf4f2e16ddee68d9bd9c705de75bc..95c03925de5ba06ea0eb08e22ab390dc51a946e2 100644
--- a/zh-cn/application-dev/napi/napi-guidelines.md
+++ b/zh-cn/application-dev/napi/napi-guidelines.md
@@ -10,23 +10,28 @@ js侧通过`import`引入native侧包含处理js逻辑的so,如:`import hell
 
 ## 开发建议
 
-### 1. 注册建议
+### 注册建议
 
 * nm_register_func对应的函数需要加上static,防止与其他so里的符号冲突。
 * 模块注册的入口,即使用\_\_attribute\_\_((constructor))修饰的函数的函数名需要确保不与其他模块重复。
-### 2. so命名规则
+
+### so命名规则
 
 * 每个模块对应一个so
 * 如模块名为`hello`,则so的名字为`libhello.so`,`napi_module`中`nm_modname`字段应为`hello`,大小写与模块名保持一致,应用使用时写作:`import hello from 'libhello.so'`
 
-### 3. js对象线程限制
+### js对象线程限制
 
 ark引擎会对js对象线程使用进行保护,不正确使用会引起应用crash。
 
 * napi接口只能在js线程使用。
 * env与线程绑定,不能跨线程使用。native侧js对象只能在创建时的线程使用,即与线程所持有的env绑定。
 
-### 4. napi_create_async_work接口说明
+### 头文件引入限制
+
+在使用napi的对象和方法时需要引用"napi/native_api.h"。否则在只引入三方库头文件时,会出现未支持**接口无法找到的编译报错**。
+
+### napi_create_async_work接口说明
 
 napi_create_async_work里有两个回调:
 
@@ -635,4 +640,9 @@ export default {
     })
   }
 }
-```
\ No newline at end of file
+```
+## 相关实例
+针对Native API的开发,有以下相关实例可供参考:
+- [`NativeAPI`:NativeAPI(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Native/NativeAPI)
+- [第一个Native C++应用(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/NativeAPI/NativeTemplateDemo)
+- [Native Component(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/NativeAPI/XComponent)
\ No newline at end of file
diff --git a/zh-cn/application-dev/notification/background-agent-scheduled-reminder-guide.md b/zh-cn/application-dev/notification/background-agent-scheduled-reminder-guide.md
index 6b718b96f3c7e4c517856c28e20b998870027eff..309b35884a463fa5048b1ea03ae70a27a472ecdf 100644
--- a/zh-cn/application-dev/notification/background-agent-scheduled-reminder-guide.md
+++ b/zh-cn/application-dev/notification/background-agent-scheduled-reminder-guide.md
@@ -283,3 +283,6 @@ let alarm : reminderAgent.ReminderRequestAlarm = {
 
 - [`AlarmClock`:后台代理提醒(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Notification/AlarmClock)
 
+- [`FlipClock`:翻页时钟(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/CompleteApps/FlipClock)
+
+- [闹钟应用(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/CommonEventAndNotification/AlarmClock)
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/Readme-CN.md b/zh-cn/application-dev/quick-start/Readme-CN.md
index 3d62e542dff3976fd41ff705a616067c563f8be3..781fc318540701a0b14a9bad97c4fc1710a5d18b 100755
--- a/zh-cn/application-dev/quick-start/Readme-CN.md
+++ b/zh-cn/application-dev/quick-start/Readme-CN.md
@@ -2,14 +2,11 @@
 
 - 快速入门
   - [开发准备](start-overview.md)
-  - [使用eTS语言开发(传统代码方式)](start-with-ets.md)
-  - [使用eTS语言开发(低代码方式)](start-with-ets-low-code.md)
-  - [使用JS语言开发(传统代码方式)](start-with-js.md)
-  - [使用JS语言开发(低代码方式)](start-with-js-low-code.md)
+  - [使用eTS语言开发(Stage模型)](start-with-ets-stage.md)
+  - [使用eTS语言开发(FA模型)](start-with-ets-fa.md)
+  - [使用JS语言开发(FA模型)](start-with-js-fa.md)
 - 开发基础知识
   - [应用包结构说明(FA模型)](package-structure.md)
   - [应用包结构说明(Stage模型)](stage-structure.md)
-  - [资源文件的分类](basic-resource-file-categories.md)
   - [SysCap说明](syscap.md)
-  - [HarmonyAppProvision配置文件](app-provision-structure.md)
-
+  - [HarmonyAppProvision配置文件](app-provision-structure.md)
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/figures/01.png b/zh-cn/application-dev/quick-start/figures/01.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab9a01795cd6795448b16e53b7400cc7806e455c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/01.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/02.png b/zh-cn/application-dev/quick-start/figures/02.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b06d46ea1285613c00efc7cce55e7dbe2b74a2c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/02.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/04.png b/zh-cn/application-dev/quick-start/figures/04.png
new file mode 100644
index 0000000000000000000000000000000000000000..792837f2620a8c44dcf69ad7a56e8aed6693bf24
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/04.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/06.png b/zh-cn/application-dev/quick-start/figures/06.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdfc0acf1c46ded2b471894dc20af970f3c50836
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/06.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/07.png b/zh-cn/application-dev/quick-start/figures/07.png
new file mode 100644
index 0000000000000000000000000000000000000000..3749dcb06daed21f87088a9a46afa6d0d87bef3f
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/07.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/09.png b/zh-cn/application-dev/quick-start/figures/09.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac6dbbab11846274c42bfdd61f7bd5dfe0ace99f
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/09.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311015192.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311015192.png
new file mode 100644
index 0000000000000000000000000000000000000000..12978dc861aaa1f826404d9c6838bb8628381615
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311015192.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175120.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175120.png
new file mode 100644
index 0000000000000000000000000000000000000000..12978dc861aaa1f826404d9c6838bb8628381615
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175120.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175132.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175132.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f401b2f8aa84e89bdef25bcf615ff1a621ab6d6
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311175132.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334932.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334932.png
new file mode 100644
index 0000000000000000000000000000000000000000..42b475577bcc805372336be8971afa5c69c284bd
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334932.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334944.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334944.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ce82237297b06c04113d0368d7145661de0d997
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334944.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334972.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334972.png
new file mode 100644
index 0000000000000000000000000000000000000000..6499d0b2de7ee290b958059d13d9d19995e0e511
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334972.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334976.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334976.png
new file mode 100644
index 0000000000000000000000000000000000000000..7891c03e8fab1eaaf6159964fc338e0be9bb080a
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311334976.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494580.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494580.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c1ea01d448434e7cfd94e174474e72b57d3b4cc
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494580.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494592.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494592.png
new file mode 100644
index 0000000000000000000000000000000000000000..a88a2ec512c0fa4f374d1e9ac03a27c717aeab58
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494592.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494604.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494604.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c1ea01d448434e7cfd94e174474e72b57d3b4cc
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001311494604.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934577.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934577.png
new file mode 100644
index 0000000000000000000000000000000000000000..6499d0b2de7ee290b958059d13d9d19995e0e511
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934577.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934589.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934589.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f401b2f8aa84e89bdef25bcf615ff1a621ab6d6
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001363934589.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054485.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054485.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c1ea01d448434e7cfd94e174474e72b57d3b4cc
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054485.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054489.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054489.png
new file mode 100644
index 0000000000000000000000000000000000000000..a69b0c6f3b047e5961b05b40b663ce972a90b459
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364054489.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364173989.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364173989.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4b6f516a8340914c41600ef24012dd3699648b6
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364173989.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364174013.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364174013.png
new file mode 100644
index 0000000000000000000000000000000000000000..12978dc861aaa1f826404d9c6838bb8628381615
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364174013.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254729.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254729.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fba7aab32a92752b341af024ef97e5acfe3d73d
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254729.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254741.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254741.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbbde9923a131d3ab69257b28cfe33ca2a1040cf
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254741.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254773.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254773.png
new file mode 100644
index 0000000000000000000000000000000000000000..6499d0b2de7ee290b958059d13d9d19995e0e511
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001364254773.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png
deleted file mode 100644
index 6d16295957cdeaa957b4d5e3d03c1129e9e83e07..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png
deleted file mode 100644
index 8d7478096eaa6f49421ede9c55174d69bc97e7a4..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png
deleted file mode 100644
index 5eaba9fabdafa12eca1da0822b4386d02530e793..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png
index cccca58909932db46aa1befe4bfccb84f8eba059..a6040c1b6bc6436fb40c62a4155bdcf61ef329e9 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png
index 038118b55274fc0f4b02e03aa6fc96cf119d3858..53b19d01dc341dbded0580a6133f1022e28c20f1 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png
index 28dd39be98b6aa006bbea9a727a8c3eee940e0a5..7472fcaee2baa112efbe3dd15e229125bb524879 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png
deleted file mode 100644
index 8160c10a4ef4d3cbe8074576915ba198ebc2159e..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png
index 6e343ebc68da42ad9402c313d175a90082fd75e1..40c14ab488732274441ef1d20d5a47f6b8aa38d2 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png
index b7b29950bb4f3ac3c4815c20317964a3d9572a97..41fea9d7e6d14534b3f051be32b75033d7da1210 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png differ
diff --git a/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md b/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md
index 09bedd312ab92be022c61795f7ee73cc7ce8f74c..127195c13996d901aca61941cf0cb0c6959d96de 100644
--- a/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md
+++ b/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md
@@ -6,19 +6,17 @@
 
 三方开发者通过DevEco Studio自动下载的**API8版本**SDK均为**public版本**。public-SDK**不支持**开发者使用**所有的系统API**,包括animator组件、xcomponent组件、@ohos.application.abilityManager.d.ts、@ohos.application.formInfo.d.ts、@ohos.bluetooth.d.ts等,如工程必须依赖于系统API,请按照以下步骤替换**full-SDK**。
 
-## 下载full-SDK(这里以3.1.1 Release版本为例)
+> **说明**:本文中的截图仅为参考,具体的显示界面请以实际使用的DevEco Studio和SDK的版本为准。
 
-full-SDK需要手动下载。请参考[OpenHarmony 3.1.1 Release版本说明书](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md)中的获取方式,获取所需的操作系统的full-SDK。
-
-
-
-![image-20220613161049897](figures/zh-cn_image_0000001655128646.png)
+## 下载full-SDK
 
+full-SDK需要手动下载。请参考[版本说明书](../../release-notes/OpenHarmony-v3.2-beta2.md)中的获取方式,从镜像站点获取所需的操作系统的full-SDK。
 
 
 
 ## 查看本地SDK路径(此处以ets工程为例,1.0工程请以相同方式替换js-SDK)
 
+
 打开DevEco Studio——>Tools——>OpenHarmony SDK Manager,查看本地SDK安装路径。
 
 ![](figures/zh-cn_image_0000001655128939.png)
@@ -40,11 +38,11 @@ full-SDK需要手动下载。请参考[OpenHarmony 3.1.1 Release版本说明书]
 
    
 
-2. 替换SDK,以public-SDK-3.1.6.6版本为例。
+2. 替换SDK,以public-SDK-3.x.x.x版本为例。
 
    以windows为例:
 
-   a.解压已下载的full-SDK文件:`ets-windows-3.1.6.5-Release.zip`
+   a.解压已下载的full-SDK文件:`ets-windows-3.x.x.x-Release.zip`
 
    ![image-20220613165018184](figures/zh-cn_image_0000001655129264.png)
 
@@ -60,34 +58,35 @@ full-SDK需要手动下载。请参考[OpenHarmony 3.1.1 Release版本说明书]
 
    ![image-20220613165018184](figures/zh-cn_image_0000001655129398.png)
 
-   `oh-uni-package.json`文件配置信息如下:
+   `oh-uni-package.json`文件配置信息如下,其中,`apiVersion`的值以SDK对应的API version为准,`version`的值以SDK文件的版本号为准:
 
    ```
    {
-     "apiVersion": "8",
+     "apiVersion": "X",
      "displayName": "Ets",
      "meta": {
        "metaVersion": "3.0.0"
      },
      "path": "ets",
      "releaseType": "Release",
-     "version": "3.1.6.6"
+     "version": "3.x.x.x"
    }
    ```
+   
 
-   **删除原SDK(3.1.6.6)目录中的所有文件**(否则可能会导致文件无法全部覆盖)
+   **删除原SDK(3.x.x.x)目录中的所有文件**(否则可能会导致文件无法全部覆盖)
 
    
 
    **拷贝full-SDK至本地SDK路径**
 
-   将下载的full-SDK文件包中`ets`目录下的所有文件替换至本地SDK路径下`ets\3.1.6.6`目录中
+   将下载的full-SDK文件包中`ets`目录下的所有文件替换至本地SDK路径下`ets\3.x.x.x`目录中
 
    修改`oh-uni-package.json`配置文件的version字段为当前SDK版本号
 
    
 
-   在`3.1.6.6\build-tools\ets-loader`目录中打开cmd/powerShell窗口,输入命令`npm install`下载**node_modules**依赖包
+   在`3.x.x.x\build-tools\ets-loader`目录中打开cmd/powerShell窗口,输入命令`npm install`下载**node_modules**依赖包
 
    ![image-20220613171111405](figures/zh-cn_image_0000001655129333.png)
 
diff --git a/zh-cn/application-dev/quick-start/package-structure.md b/zh-cn/application-dev/quick-start/package-structure.md
index 2f4e477c43adf0fe6f6eb9fa2d9177143e8ce59b..fab0b688c882f775baca2f5675fbab106a1db7db 100644
--- a/zh-cn/application-dev/quick-start/package-structure.md
+++ b/zh-cn/application-dev/quick-start/package-structure.md
@@ -505,6 +505,7 @@ skills示例:
 | name      | 需要使用的权限名称。 | 字符串 | 否 |
 | reason    | 描述申请权限的原因。不能超过256个字节。需要做多语种适配。 | 字符串 | 分情况:当申请的权限为user_grant时,必须填写此字段,否则不允许在应用市场上架;其它权限可缺省,缺省为空 |
 | usedScene | 描述权限使用的场景和时机。场景类型有:ability、when。ability:ability的名称,可配置多个。when:调用时机,可填的值有inuse(使用时)、always(始终) | 对象 | ability分情况:申请的权限有user_grant时,ability必填;没有user_grant时可缺省,缺省值为空。when可缺省,缺省值为“inuse” |
+具体示例可参考[访问控制开发指导](../security/accesstoken-guidelines.md#fa模型)。
 
 表22  js对象的内部结构说明
 
@@ -591,7 +592,7 @@ shortcuts示例:
 | isDefault           | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。<br />true:默认卡片。<br />false:非默认卡片。 | 布尔值     | 不可缺省                 |
 | type                | 表示卡片的类型。取值范围如下:<br />JS:JS卡片。             | 字符串     | 不可缺省                 |
 | colorMode           | 表示卡片的主题样式,取值范围如下:<br />auto:自适应。<br />dark:深色主题。<br />light:浅色主题。 | 字符串     | 可缺省,缺省值为“auto”。 |
-| supportDimensions   | 表示卡片支持的外观规格,取值范围:<br />1 * 2:表示1行2列的二宫格。<br />2 * 2:表示2行2列的四宫格。<br />2 * 4:表示2行4列的八宫格。<br />4 * 4:表示4行4列的十六宫格。 | 字符串数组 | 不可缺省                 |
+| supportDimensions   | 表示卡片支持的外观规格,取值范围:<br />1 * 2:表示1行2列的二宫格。<br />2 * 1:表示2行1列的二宫格。<br />2 * 2:表示2行2列的四宫格。<br />2 * 4:表示2行4列的八宫格。<br />4 * 4:表示4行4列的十六宫格。 | 字符串数组 | 不可缺省                 |
 | defaultDimension    | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串     | 不可缺省                 |
 | updateEnabled       | 表示卡片是否支持周期性刷新,取值范围:<br />true:表示支持周期性刷新,可以在定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)两种方式任选其一,优先选择定时刷新。<br />false:表示不支持周期性刷新。 | 布尔类型   | 不可缺省                 |
 | scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。         | 字符串     | 可缺省,缺省值为“0:0”。  |
diff --git a/zh-cn/application-dev/quick-start/stage-structure.md b/zh-cn/application-dev/quick-start/stage-structure.md
index f8540d4a1276d1d5d1f60d10c46215a3e49ab3c0..808ab2b55571653ca795e7f37379ad2821828e8a 100644
--- a/zh-cn/application-dev/quick-start/stage-structure.md
+++ b/zh-cn/application-dev/quick-start/stage-structure.md
@@ -163,25 +163,25 @@ hap包的配置信息,该标签下的配置只对当前hap包生效。
 
 表3 module对象内部结构
 
-| 属性名称            | 含义                                                         | 数据类型   | 是否可缺省                            |
-| ------------------- | ------------------------------------------------------------ | ---------- | ------------------------------------- |
-| name                | 该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。 | 字符串     | 该标签不可缺省。                      |
-| type                | 该标签表示当前hap的类型。类型有三种,分别是entry、feature和har。 | 字符串     | 该标签不可缺省。                      |
-| srcEntrance         | 该标签表示hap所对应的入口js代码路径,标签值为字符串(最长为127字节)。 | 字符串     | 该标签可缺省。                        |
-| description         | 该标签标识hap包的描述信息,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串     | 该标签可缺省,缺省值为空。            |
-| process             | 该标签标识hap的进程名,标签值为字符串类型(最长为31个字节)。如果在hap标签下配置了process,该应用的所有ability都运行在该进程中。 | 字符串     | 可缺省,缺省为hap的名称。             |
-| mainElement         | 该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。创建OpenHarmony原子化服务时,该标签不可缺省。 | 字符串     | OpenHarmony应用下,该标签可缺省。     |
-| deviceTypes         | 该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示,系统预定义的设备类型见表4。<br />与syscap不同的是,deviceTypes是以设备类型为粒度,而syscap是以设备能力(例如蓝牙、wifi)为粒度。 | 字符串数组 | 该标签不可缺省,可以为空值。          |
-| deliveryWithInstall | 该标签标识当前hap是否在用户主动安装的时候安装,true表示主动安装时安装,false表示主动安装时不安装。 | 布尔值     | 该标签不可缺省。                      |
-| installationFree    | 表示当前HAP是否支持免安装特性。所有Hap包都需要配置不可缺省。<br/>true :表示支持免安装特性,且符合免安装约束。<br/>false :表示不支持免安装特性。<br/><br/>当entry.hap该字段配置为true时,与该entry.hap相关的所有feature.hap该字段也需要配置为true。<br/>当entry.hap该字段配置为false时,与该entry.hap相关的各feature.hap该字段可按业务需求配置true或false。 | 布尔值     | 该标签不可缺省。                      |
-| virtualMachine      | 该标签用于标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心。<br/>该标签值为字符串。如果目标虚拟机类型为方舟虚拟机,则其值为”ark”; 如果目标虚拟机类型不是方舟虚拟机,则其值为”default”。该标签由IDE构建hap的时候自动插入。解包工具解析时,如果hap包没有该标签,设置该标签值为”default”。 | 字符串     | 该标签可缺省,缺省值为“default”。     |
-| uiSyntax            | syntax定义该JS Component的语法类型。<br />hml标识该JS Component使用hml/css/js进行开发;<br/>ets标识该JS Component使用ets声明式语法进行开发。 | 字符串     | 该标签可缺省,默认值为hml             |
-| pages               | 该标签是一个profile资源,用于列举JS Component中每个页面信息。pages使用参考pages示例。 | 对象       | 在有ability的场景下,该标签不可缺省。 |
-| metadata            | 该标签标识Hap的自定义元信息,标签值为数组类型,该标签下的配置只对当前module、或者ability、或者extensionAbility生效。metadata参考[metadata对象内部结构](#metadata对象内部结构)。 | 数组       | 该标签可缺省,缺省值为空。            |
-| abilities           | 描述元能力的配置信息,标签值为数组类型,该标签下的配置只对当前ability生效。abilities参考[abilities对象内部结构](#abilities对象内部结构)。 | 对象       | 该标签可缺省,缺省值为空。            |
-| extensionAbilities  | 描述extensionAbilities的配置信息,标签值为数组类型,该标签下的配置只对当前extensionAbility生效。extensionAbilities参考[extensionAbility对象的内部结构说明](#extensionAbility对象的内部结构说明)。 | 对象       | 该标签可缺省,缺省值为空。            |
-| requestPermissions  | 该标签标识应用运行时需向系统申请的权限集合,标签值为数组类型。requestPermissions参考[requestPermissions对象内部结构](#requestPermissions对象内部结构)。 | 对象       | 该标签可缺省,缺省值为空。            |
-| testRunner          | 此标签用于支持对测试框架的配置,参考[testRunner对象内部结构说明](#testRunner对象内部结构)说明。 | 对象       | 可缺省,缺省值为空                    |
+| 属性名称             | 含义                                                         | 数据类型   | 是否可缺省                                        |
+| -------------------- | ------------------------------------------------------------ | ---------- | ------------------------------------------------- |
+| name                 | 该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。 | 字符串     | 该标签不可缺省。                                  |
+| type                 | 该标签表示当前hap的类型。类型有三种,分别是entry、feature和har。 | 字符串     | 该标签不可缺省。                                  |
+| srcEntrance          | 该标签表示hap所对应的入口js代码路径,标签值为字符串(最长为127字节)。 | 字符串     | 该标签可缺省。                                    |
+| description          | 该标签标识hap包的描述信息,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串     | 该标签可缺省,缺省值为空。                        |
+| process              | 该标签标识hap的进程名,标签值为字符串类型(最长为31个字节)。如果在hap标签下配置了process,该应用的所有ability都运行在该进程中。 | 字符串     | 可缺省,缺省为hap的名称。                         |
+| mainElement          | 该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。创建OpenHarmony原子化服务时,该标签不可缺省。 | 字符串     | OpenHarmony应用下,该标签可缺省。                 |
+| deviceTypes          | 该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示,系统预定义的设备类型见表4。<br />与syscap不同的是,deviceTypes是以设备类型为粒度,而syscap是以设备能力(例如蓝牙、wifi)为粒度。 | 字符串数组 | 该标签不可缺省,可以为空值。                      |
+| deliveryWithInstall  | 该标签标识当前hap是否在用户主动安装的时候安装,true表示主动安装时安装,false表示主动安装时不安装。 | 布尔值     | 该标签不可缺省。                                  |
+| installationFree     | 表示当前HAP是否支持免安装特性。所有Hap包都需要配置不可缺省。<br/>true :表示支持免安装特性,且符合免安装约束。<br/>false :表示不支持免安装特性。<br/><br/>当entry.hap该字段配置为true时,与该entry.hap相关的所有feature.hap该字段也需要配置为true。<br/>当entry.hap该字段配置为false时,与该entry.hap相关的各feature.hap该字段可按业务需求配置true或false。 | 布尔值     | 该标签不可缺省。                                  |
+| virtualMachine       | 该标签用于标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心。<br/>该标签值为字符串。如果目标虚拟机类型为方舟虚拟机,则其值为”ark”; 如果目标虚拟机类型不是方舟虚拟机,则其值为”default”。该标签由IDE构建hap的时候自动插入。解包工具解析时,如果hap包没有该标签,设置该标签值为”default”。 | 字符串     | 该标签可缺省,缺省值为“default”。                 |
+| uiSyntax(deprecated) | syntax定义该JS Component的语法类型。<br />hml标识该JS Component使用hml/css/js进行开发;<br/>ets标识该JS Component使用ets声明式语法进行开发。 | 字符串     | 该标签可缺省,默认值为hml,该字段从API9开始废弃。 |
+| pages                | 该标签是一个profile资源,用于列举JS Component中每个页面信息。pages使用参考pages示例。 | 对象       | 在有ability的场景下,该标签不可缺省。             |
+| metadata             | 该标签标识Hap的自定义元信息,标签值为数组类型,该标签下的配置只对当前module、或者ability、或者extensionAbility生效。metadata参考[metadata对象内部结构](#metadata对象内部结构)。 | 数组       | 该标签可缺省,缺省值为空。                        |
+| abilities            | 描述元能力的配置信息,标签值为数组类型,该标签下的配置只对当前ability生效。abilities参考[abilities对象内部结构](#abilities对象内部结构)。 | 对象       | 该标签可缺省,缺省值为空。                        |
+| extensionAbilities   | 描述extensionAbilities的配置信息,标签值为数组类型,该标签下的配置只对当前extensionAbility生效。extensionAbilities参考[extensionAbility对象的内部结构说明](#extensionAbility对象的内部结构说明)。 | 对象       | 该标签可缺省,缺省值为空。                        |
+| requestPermissions   | 该标签标识应用运行时需向系统申请的权限集合,标签值为数组类型。requestPermissions参考[requestPermissions对象内部结构](#requestPermissions对象内部结构)。 | 对象       | 该标签可缺省,缺省值为空。                        |
+| testRunner           | 此标签用于支持对测试框架的配置,参考[testRunner对象内部结构说明](#testRunner对象内部结构)说明。 | 对象       | 可缺省,缺省值为空                                |
 
 表4 deviceTypes对象的系统预定义设备
 
@@ -439,7 +439,7 @@ skills示例
 | description | 该标签标识extensionAbility的描述,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串     | 该标签可缺省,缺省值为空。    |
 | icon        | 该标签标识extensionAbility图标,标签值为资源文件的索引。如果extensionAbility被配置为MainElement,该标签必须配置。 | 字符串     | 该标签可缺省,缺省值为空。    |
 | label       | 该标签标识extensionAbility对用户显示的名称,标签值配置为该名称的资源索引以支持多语言。<br/>如果extensionAbility被配置为MainElement,该标签必须配置,且应用内唯一。 | 字符串     | 该标签不可缺省。              |
-| type        | 该标签标识extensionAbility的类型,取值为form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、staticSubscriber、wallpaper、backup、window其中之一。 | 字符串     | 该标签不可缺省。              |
+| type        | 该标签标识extensionAbility的类型,取值为form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、staticSubscriber、wallpaper、backup、window、enterpriseAdmin、thumbnail、preview其中之一。 | 字符串     | 该标签不可缺省。              |
 | permissions | 该标签标识被其它应用的ability调用时需要申请的权限的集合,字符串数组类型,每个数组元素为一个权限名称,通常采用反向域名方式表示(最大255字节),可以是系统预定义的权限,也可以是该应用自定义的权限。如果是后者,需与defPermissions标签中定义的某个权限的name标签值一致。 | 字符串数组 | 该标签可缺省,缺省值为空。    |
 | uri         | 该标签标识ability提供的数据uri,为字符数组类型(最大长度255),用反向域名的格式表示。该标签在type为dataShare类型的extensionAbility时,不可缺省。 | 字符串     | 该标签可缺省,缺省值为空。    |
 | skills      | 该标签标识ability能够接收的意图的特征集,为数组格式。<br />配置规则 : entry包可以配置多个具有入口能力的skills标签(配置了action.system.home和entity.system.home)的ability,其中第一个配置了skills标签的ability中的label和icon作为OpenHarmony服务或应用的label和icon。<br/>OpenHarmony服务的Feature包不能配置具有入口能力的skills标签。<br/>OpenHarmony应用的Feature包可以配置具有入口能力的skills标签。 <br />skills内部结构参考[skills对象内部结构](#skills对象内部结构)。 | 数组       | 该标签可缺省,缺省值为空。    |
@@ -507,6 +507,7 @@ requestPermissions示例 :
     }
 }
 ```
+权限访问的更多说明,可参考[访问控制开发指导](../security/accesstoken-guidelines.md)
 
 #### form对象内部结构
 
@@ -528,7 +529,7 @@ forms标签表示卡片的配置,form卡片是可以嵌入桌面上并接收
 | window            | 该标签标识JS卡片的自适应能力。window结构参考表12。           | 对象       | 可缺省,缺省为空。            |
 | isDefault         | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。 true :默认卡片。 false :非默认卡片。 | 布尔值     | 否                            |
 | colorMode         | 表示卡片的主题样式,取值范围如下 : auto :自适应。 dark :深色主题。 light :浅色主题。 | 字符串     | 可缺省,缺省值为“auto”。      |
-| supportDimensions | 表示卡片支持的外观规格,取值范围 : 1 * 2 :表示1行2列的二宫格。 2 * 2 :表示2行2列的四宫格。 2 * 4 :表示2行4列的八宫格。 4 * 4 :表示4行4列的十六宫格。 | 字符串数组 | 否                            |
+| supportDimensions | 表示卡片支持的外观规格,取值范围 : 1 * 2 :表示1行2列的二宫格。 2 * 1 :表示2行1列的二宫格。 2 * 2 :表示2行2列的四宫格。 2 * 4 :表示2行4列的八宫格。 4 * 4 :表示4行4列的十六宫格。 | 字符串数组 | 否                            |
 | defaultDimension  | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串     | 否                            |
 | updateDuration    | 该标签标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值。卡片的最高频率为每30分钟刷新一次,和定点刷新二选一,二者都配置的情况下,定时优先。 | 数值       | 可缺省,缺省为空。            |
 | metadata          | 该标签表示卡片的自定义信息。metadata内部结构参考表5。        | 对象       | 可缺省,缺省为空。            |
diff --git a/zh-cn/application-dev/quick-start/start-overview.md b/zh-cn/application-dev/quick-start/start-overview.md
index e26343b37162e4c7436b52725907bec71a3d37d6..84d4c8befae5580f86210b8141a06189eebaa8d1 100644
--- a/zh-cn/application-dev/quick-start/start-overview.md
+++ b/zh-cn/application-dev/quick-start/start-overview.md
@@ -3,7 +3,7 @@
 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用(如下图所示),快速了解工程目录的主要文件,熟悉OpenHarmony应用开发流程。
 
 
-![zh-cn_image_0000001261809595](figures/zh-cn_image_0000001261809595.png)
+![zh-cn_image_0000001364254729](figures/zh-cn_image_0000001364254729.png)
 
 
 在开始之前,您需要了解有关OpenHarmony应用的一些基本概念:UI框架的简单说明、Ability的基本概念。
@@ -16,37 +16,37 @@
 
 OpenHarmony提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。
 
-方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式,分别是基于JS扩展的类Web开发范式(简称“类Web开发范式”)和基于TS扩展的声明式开发范式(简称“声明式开发范式”)。以下是两种开发范式的简单对比。
+方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式,分别是基于TS扩展的声明式开发范式(简称“声明式开发范式”)和基于JS扩展的类Web开发范式(简称“类Web开发范式”)。以下是两种开发范式的简单对比。
 
 | **开发范式名称** | **语言生态** | **UI更新方式** | **适用场景** | **适用人群** |
 | -------- | -------- | -------- | -------- | -------- |
-| 类Web开发范式 | JS语言 | 数据驱动更新 | 界面较为简单的程序应用和卡片 | Web前端开发人员 |
 | 声明式开发范式 | 扩展的TS语言(eTS) | 数据驱动更新 | 复杂度较大、团队合作度较高的程序 | 移动系统应用开发人员、系统应用开发人员 |
+| 类Web开发范式 | JS语言 | 数据驱动更新 | 界面较为简单的程序应用和卡片 | Web前端开发人员 |
 
-对于JS语言开发时,低代码方式在DevEco Studio V2.2 Beta1及更高版本中支持。
-
-对于eTS语言开发,低代码方式在DevEco Studio V3.0 Beta3及更高版本中支持。
-
-OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循JS开发规范,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
-更多UI框架的开发内容及指导,请参见[UI开发](../ui/arkui-overview.md)。
+更多UI框架的开发内容及指导,详见[UI开发](../ui/arkui-overview.md)。
 
 
 ### Ability
 
 Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability)。OpenHarmony支持应用以Ability为单位进行部署。
 
-Ability分为[FA(Feature Ability)](../../glossary.md#f)和[PA(Particle Ability)](../../glossary.md#p)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。其中,FA支持[Page Ability](../ability/fa-pageability.md)模板,以提供与用户交互的能力。一个Page Ability可以含有一个或多个页面(即Page),Page Ability与Page的关系如下图所示:
+Ability框架模型结构具有两种形态:
 
-![zh-cn_image_0000001215206886](figures/zh-cn_image_0000001215206886.png)
+- **FA模型**:API 8及其更早版本的应用程序只能使用FA模型进行开发。更多FA模型的内容详见[FA模型综述](../ability/fa-brief.md)。
 
-快速入门提供了一个含有两个页面的Page Ability实例。更多Ability的开发内容及指导,请参见[Ability开发](../ability/ability-brief.md)。
+- **Stage模型**:从API 9开始,Ability框架引入并支持使用Stage模型进行开发。更多Stage模型的内容详见[Stage模型综述](../ability/stage-brief.md)。
+
+FA模型和Stage模型的工程目录结构存在差异,Stage模型只支持使用eTS语言进行开发。
+
+关于FA模型和Stage模型的整体架构和设计思想等更多区别,详见[Ability框架概述](../ability/ability-brief.md)。
+
+快速入门提供了一个含有两个页面的Ability的开发实例。更多Ability的开发内容及指导,请见[Ability开发](../ability/ability-brief.md)。
 
 
 ## 工具准备
 
-1. 安装最新版[DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)。
+1. 安装最新版[DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)。
 
 2. 请参考[配置OpenHarmony SDK](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-setting-up-environment-0000001263160443),完成**DevEco Studio**的安装和开发环境配置。
 
-完成上述操作及基本概念的理解后,可参照[使用eTS语言开发(传统代码方式)](start-with-ets.md)、[使用eTS语言开发(低代码方式)](start-with-ets-low-code.md)、[使用JS语言开发(传统代码方式)](start-with-js.md)、[使用JS语言开发(低代码方式)](start-with-js-low-code.md)中的任一章节进行下一步体验和学习。
-
+完成上述操作及基本概念的理解后,可参照[使用eTS语言进行开发(Stage模型)](start-with-ets-stage.md)、[使用eTS语言开发(FA模型)](start-with-ets-fa.md)、[使用JS语言开发(FA模型)](../quick-start/start-with-js-fa.md)中的任一章节进行下一步体验和学习。
diff --git a/zh-cn/application-dev/quick-start/start-with-ets-fa.md b/zh-cn/application-dev/quick-start/start-with-ets-fa.md
new file mode 100644
index 0000000000000000000000000000000000000000..c8477362458afba74c5a66612f81adf89537dc48
--- /dev/null
+++ b/zh-cn/application-dev/quick-start/start-with-ets-fa.md
@@ -0,0 +1,284 @@
+# 使用eTS语言开发(FA模型)
+
+
+>  **说明:**
+> 请使用**DevEco Studio V3.0.0.601 Beta1**及更高版本。
+> 
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.991 Beta4**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
+
+
+## 创建eTS工程
+
+1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已经打开了一个工程,请在菜单栏选择**File** &gt; **New** &gt; **Create Project**来创建一个新工程。选择**OpenHarmony**模板库,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
+   ![01](figures/01.png)
+
+2. 进入配置工程界面,**Compile SDK** 选择“**8**”(**Complie SDK**选择“**9**”时注意同步选择**Model** 为“**FA**”,此处以选择“**8**”为例),**Language**选择“**eTS**”,其他参数保持默认设置即可。
+   ![02](figures/02.png)
+
+   > **说明:**
+   > DevEco Studio V3.0 Beta3及更高版本支持使用eTS[低代码开发](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-low-code-development-0000001218440652)方式。
+   > 
+   > 低代码开发方式具有丰富的UI界面编辑功能,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
+   > 
+   > 如需使用低代码开发方式,请打开上图中的Enable Super Visual开关。
+
+3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
+
+
+## eTS工程目录结构
+
+- **entry**:OpenHarmony工程模块,编译构建生成一个[HAP](../../glossary.md#hap)包。
+  - **src &gt; main &gt; ets**:用于存放ets源码。
+  - **src &gt; main &gt; ets &gt; MainAbility**:应用/服务的入口。
+  - **src &gt; main &gt; ets &gt; MainAbility &gt; pages**:MainAbility包含的页面。
+  - **src &gt; main &gt; ets &gt; MainAbility &gt; pages &gt; index.ets**:pages列表中的第一个页面,即应用的首页入口。
+  - **src &gt; main &gt; ets &gt; MainAbility &gt; app.ets**:承载Ability生命周期。
+  - **src &gt; main &gt; resources**:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见[资源文件的分类](../ui/ui-ts-basic-resource-file-categories.md)。
+  - **src &gt; main &gt; config.json**:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明(FA模型)](package-structure.md)。
+  - **build-profile.json5**:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
+  - **hvigorfile.js**:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
+
+- **build-profile.json5**:应用级配置信息,包括签名、产品配置等。
+
+- **hvigorfile.js**:应用级编译构建任务脚本。
+
+
+## 构建第一个页面
+
+1. 使用文本组件。
+   工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages**”,打开“**index.ets**”文件,可以看到页面由Text组件组成。“**index.ets**”文件的示例如下:
+
+   
+   ```ts
+   // index.ets
+   @Entry
+   @Component
+   struct Index {
+     @State message: string = 'Hello World'
+   
+     build() {
+       Row() {
+         Column() {
+           Text(this.message)
+             .fontSize(50)
+             .fontWeight(FontWeight.Bold)
+         }
+         .width('100%')
+       }
+       .height('100%')
+     }
+   }
+   ```
+
+2. 添加按钮。
+   在默认页面基础上,我们添加一个Button组件,作为按钮响应用户点击,从而实现跳转到另一个页面。“**index.ets**”文件的示例如下:
+
+   
+   ```ts
+   // index.ets
+   @Entry
+   @Component
+   struct Index {
+     @State message: string = 'Hello World'
+   
+     build() {
+       Row() {
+         Column() {
+           Text(this.message)
+             .fontSize(50)
+             .fontWeight(FontWeight.Bold)
+           // 添加按钮,以响应用户点击
+           Button() {
+             Text('Next')
+               .fontSize(30)
+               .fontWeight(FontWeight.Bold)
+           }
+           .type(ButtonType.Capsule)
+           .margin({
+             top: 20
+           })
+           .backgroundColor('#0D9FFB')
+           .width('40%')
+           .height('5%')
+         }
+         .width('100%')
+       }
+       .height('100%')
+     }
+   }
+   ```
+
+3. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
+   ![zh-cn_image_0000001364254741](figures/zh-cn_image_0000001364254741.png)
+
+
+## 构建第二个页面
+
+1. 创建第二个页面。
+   - 新建第二个页面文件。在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; ets &gt; MainAbility**”,右键点击“**pages**”文件夹,选择“**New &gt; eTS File**”,命名为“**second**”,点击“**Finish**”。可以看到文件目录结构如下:
+
+      ![zh-cn_image_0000001311334932](figures/zh-cn_image_0000001311334932.png)
+
+      > **说明:**
+      > 开发者也可以在右键点击“**pages**”文件夹时,选择“**New &gt; Page**”,则无需手动配置相关页面路由。
+   - 配置第二个页面的路由。在config.json文件中的“module - js - pages”下配置第二个页面的路由“pages/second”。示例如下:
+     
+      ```json
+      {
+        "module": {
+          "js": [
+            {
+              "pages": [
+                "pages/index",
+                "pages/second"
+              ],
+              }
+          ]
+        }
+      }
+      ```
+
+2. 添加文本及按钮。
+   参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。“**second.ets**”文件的示例如下:
+
+   
+   ```ts
+   // second.ets
+   @Entry
+   @Component
+   struct Second {
+     @State message: string = 'Hi there'
+   
+     build() {
+       Row() {
+         Column() {
+           Text(this.message)
+             .fontSize(50)
+             .fontWeight(FontWeight.Bold)
+           Button() {
+             Text('Back')
+               .fontSize(25)
+               .fontWeight(FontWeight.Bold)
+           }
+           .type(ButtonType.Capsule)
+           .margin({
+             top: 20
+           })
+           .backgroundColor('#0D9FFB')
+           .width('40%')
+           .height('5%')
+         }
+         .width('100%')
+       }
+       .height('100%')
+     }
+   }
+   ```
+
+
+## 实现页面间的跳转
+
+页面间的导航可以通过页面路由router来实现。页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。
+
+1. 第一个页面跳转到第二个页面。
+   在第一个页面中,跳转按钮绑定onClick事件,点击按钮时跳转到第二页。“**index.ets**”文件的示例如下:
+
+   
+   ```ts
+   // index.ets
+   import router from '@ohos.router';
+   
+   @Entry
+   @Component
+   struct Index {
+     @State message: string = 'Hello World'
+   
+     build() {
+       Row() {
+         Column() {
+           Text(this.message)
+             .fontSize(50)
+             .fontWeight(FontWeight.Bold)
+           // 添加按钮,以响应用户点击
+           Button() {
+             Text('Next')
+               .fontSize(30)
+               .fontWeight(FontWeight.Bold)
+           }
+           .type(ButtonType.Capsule)
+           .margin({
+             top: 20
+           })
+           .backgroundColor('#0D9FFB')
+           .width('40%')
+           .height('5%')
+           // 跳转按钮绑定onClick事件,点击时跳转到第二页
+           .onClick(() => {
+             router.push({ url: 'pages/second' })
+           })
+         }
+         .width('100%')
+       }
+       .height('100%')
+     }
+   }
+   ```
+
+2. 第二个页面返回到第一个页面。
+   在第二个页面中,返回按钮绑定onClick事件,点击按钮时返回到第一页。“**second.ets**”文件的示例如下:
+
+   
+   ```ts
+   // second.ets
+   import router from '@ohos.router';
+   
+   @Entry
+   @Component
+   struct Second {
+     @State message: string = 'Hi there'
+   
+     build() {
+       Row() {
+         Column() {
+           Text(this.message)
+             .fontSize(50)
+             .fontWeight(FontWeight.Bold)
+           Button() {
+             Text('Back')
+               .fontSize(25)
+               .fontWeight(FontWeight.Bold)
+           }
+           .type(ButtonType.Capsule)
+           .margin({
+             top: 20
+           })
+           .backgroundColor('#0D9FFB')
+           .width('40%')
+           .height('5%')
+           // 返回按钮绑定onClick事件,点击按钮时返回到第一页
+           .onClick(() => {
+             router.back()
+           })
+         }
+         .width('100%')
+       }
+       .height('100%')
+     }
+   }
+   ```
+
+3. 打开index.ets文件,点击预览器中的![zh-cn_image_0000001311175120](figures/zh-cn_image_0000001311175120.png)按钮进行刷新。效果如下图所示:
+   ![zh-cn_image_0000001364173989](figures/zh-cn_image_0000001364173989.png)
+
+
+## 使用真机运行应用
+
+1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
+
+2. 点击**File**&gt; **Project Structure...** &gt; **Project**&gt;**SigningConfigs** 界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
+   ![06](figures/06.png)
+
+3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001311494580](figures/zh-cn_image_0000001311494580.png)按钮运行。效果如下图所示:
+   ![zh-cn_image_0000001363934577](figures/zh-cn_image_0000001363934577.png)
+
+恭喜您已经使用eTS语言开发(FA模型)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-ets-low-code.md b/zh-cn/application-dev/quick-start/start-with-ets-low-code.md
deleted file mode 100644
index ac80b5edac057582e6cb6e3b189d088c0a2860d7..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/start-with-ets-low-code.md
+++ /dev/null
@@ -1,203 +0,0 @@
-# 使用eTS语言开发(低代码方式)
-
-
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该特性在**DevEco Studio V3.0 Beta3**及更高版本中支持。
-> 
-> 目前eTS低代码开发方式支持的组件较少,更多组件的支持将在后续版本中实现。
-> 
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)获取下载链接。
-
-
-OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
-
-
-使用低代码开发应用或服务有以下两种开发方式:
-
-
-- 直接创建一个支持低代码开发的新工程以进行开发。本文以此方式为例进行说明。
-
-- 在已有工程中,创建visual文件来进行开发。此种方式的操作可参考[创建visual文件支持低代码开发](#构建第二个页面)。
-
-
-## 创建新工程支持低代码开发
-
-1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已有一个工程,请点击**File** &gt; **New** &gt; **Create Project**。选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
-
-   ![zh-cn_image_0000001233528152](figures/zh-cn_image_0000001233528152.png)
-
-2. 进入配置工程界面,打开“**Enable Super Visual**”开关,**UI Syntax**选择“**eTS**”,其他参数保持默认设置即可。
-
-   ![zh-cn_image_0000001277728569](figures/zh-cn_image_0000001277728569.png)
-
-3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
-
-
-## 低代码开发工程项目文件
-
-工程同步完成后,自动生成以下目录结构:
-
-![zh-cn_image_0000001277809333](figures/zh-cn_image_0000001277809333.png)
-
-- **entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages &gt; index.ets**:低代码页面的逻辑描述文件,定义了页面里所用到的所有的逻辑关系,比如数据、事件等,详情请参考[TS语法糖](../ui/ts-syntactic-sugar.md)。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的ets文件。
-
-- **entry &gt; src &gt; main &gt; supervisual &gt; MainAbility &gt; pages &gt; index.visual**:visual文件存储低代码页面的数据模型,双击该文件即可打开低代码页面,进行可视化开发设计。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。
-
-
-## 构建第一个页面
-
-工程同步完成后,第一个页面已有一个容器、一段文本(Hello World)显示。为了更详细地了解低代码开发,我们将删除画布原有模板组件,从零开始完成页面的添加、设置。
-
-第一个页面内有一个容器、一段文本和一个按钮,通过Column、Text和Button组件来实现。其中,Column为沿垂直方向布局的容器组件,具体使用请见[Column](../reference/arkui-ts/ts-container-column.md)。
-
-1. 删除画布原有模板组件。<a name="delete_origin_content"></a>
-   打开index.visual文件,选中画布中的组件,单击鼠标右键,选择Delete删除画布原有模板组件。操作如下所示:
-
-   ![zh-cn_image_0000001233208980](figures/zh-cn_image_0000001233208980.gif)
-
-2. 添加容器,设置Column容器的样式和属性。<a name="add_container"></a>
-   选中UI Control中的Column组件,将其拖至画布。点击右侧属性样式栏中的图标![zh-cn_image_0000001233048996](figures/zh-cn_image_0000001233048996.png)(General),设置Column组件的高度Height为100%,使其占满屏幕;点击右侧属性样式栏中的图标![zh-cn_image_0000001233368860](figures/zh-cn_image_0000001233368860.png)(Feature),设置Column组件的AlignItems样式为center,使得其子组件在水平轴上居中显示。操作如下所示:
-
-   ![zh-cn_image_0000001277488977](figures/zh-cn_image_0000001277488977.gif)
-
-3. 添加文本。
-   选中UI Control中的Text组件,将其拖至画布,再拖至Column组件的中央区域。点击右侧属性样式栏中的图标![zh-cn_image_0000001277608813](figures/zh-cn_image_0000001277608813.png)(Feature),设置Text组件的Content属性为“this.message”(即“Hello World”);设置组件的FontSize样式为30fp,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示。再选中画布上的Text组件,拖动放大。操作如下所示:
-
-   ![zh-cn_image_0000001235731706](figures/zh-cn_image_0000001233528156.gif)
-
-4. 添加按钮。
-   选中UI Control中的Button组件,将其拖至画布,再拖至Text组件下面。点击右侧属性样式栏中的图标![zh-cn_image_0000001277728577](figures/zh-cn_image_0000001277728577.png)(General),设置Button组件的Height为40vp;点击右侧属性样式栏中的图标![zh-cn_image_0000001277809337](figures/zh-cn_image_0000001277809337.png)(Feature),设置Button组件的Label属性为“Next”;设置Button组件的FontSize样式为25fp,使得其文字放大。操作如下所示:
-
-   ![zh-cn_image_0000001235732402](figures/zh-cn_image_0000001233208988.gif)
-
-5. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
-
-   ![zh-cn_image_0000001235892798](figures/zh-cn_image_0000001233049004.png)
-
-
-## 构建第二个页面
-
-1. 创建第二个页面。
-   在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; ets &gt; MainAbility**”,右键点击“**pages**”文件夹,选择“**New &gt; Visual**”,命名为“**second**”,单击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
-
-   ![zh-cn_image_0000001233368868](figures/zh-cn_image_0000001233368868.png)
-
-2. [删除画布原有模板组件。](#delete_origin_content)
-
-3. [添加容器,设置Column容器的样式和属性。](#add_container)
-
-4. 添加文本。
-   
-   - 在second.ets文件中,将本页面的message文本内容设置为“Hi there”,示例如下:
-     
-      ```ts
-      // second.ets
-      @Entry
-      @Component
-      struct Second {
-        @State message: string = 'Hi there'
-      
-        /**
-        * In low-code mode, do not add anything to the build function, as it will be
-        * overwritten by the content generated by the .visual file in the build phase.
-        */
-        build() {
-      
-        }
-      }
-      ```
-   - 选中Text组件,将其拖至画布,再拖至Column组件的中央区域。点击右侧属性样式栏中的图标![zh-cn_image_0000001277488985](figures/zh-cn_image_0000001277488985.png)(Feature),设置Text组件的Content属性为“this.message”(即“Hi there”);设置Text组件的FontSize样式为30fp;设置组件的TextAlign样式为center。再选中画布上的Text组件,拖动放大。操作如下所示:
-
-        ![zh-cn_image_0000001280255513](figures/zh-cn_image_0000001277608817.gif)
-   
-5. 添加按钮。
-   选中UI Control中的Button组件,将其拖至画布,再拖至Text组件下面。点击右侧属性样式栏中的图标![zh-cn_image_0000001233528160](figures/zh-cn_image_0000001233528160.png)(General),设置Button组件的Height为40vp;点击右侧属性样式栏中的图标![zh-cn_image_0000001277728597](figures/zh-cn_image_0000001277728597.png)(Feature),设置Button组件的Value属性为“Back”;设置组件的FontSize样式为25fp,使得其文字放大。操作如下所示:
-
-   ![zh-cn_image_0000001280383937](figures/zh-cn_image_0000001277809361.gif)
-
-
-## 实现页面间的跳转
-
-页面间的导航可以通过页面路由router来实现。页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。
-
-1. 第一个页面跳转到第二个页面。
-     在第一个页面中,跳转按钮绑定onclick方法,点击按钮时跳转到第二页。需同时处理ets文件及visual文件。
-   - “**index.ets**”示例如下:
-     
-     ```ts
-     // index.ets
-     import router from '@ohos.router';
-     
-     @Entry
-     @Component
-     struct Index {
-       @State message: string = 'Hello World'
-     
-       /**
-        * In low-code mode, do not add anything to the build function, as it will be
-        * overwritten by the content generated by the .visual file in the build phase.
-        */
-       onclick() {
-         router.push({
-           url: 'pages/second', // 指定要跳转的页面
-         })
-       }
-     
-       build() {
-       }
-     }
-     ```
-   
-   - “**index.visual**”: 打开index.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001233209020](figures/zh-cn_image_0000001233209020.png)(Events),鼠标点击OnClick事件的输入框,选择this.onclick,如下所示:
-
-     ![zh-cn_image_0000001235745716](figures/zh-cn_image_0000001233049040.png)
-
-2. 第二个页面返回到第一个页面。
-   在第二个页面中,返回按钮绑定back方法,点击按钮时返回到第一页。需同时处理ets文件及visual文件。
-
-   - “**second.ets**”示例如下:
-     
-      ```ts
-      // second.ets
-      import router from '@ohos.router';
-      
-      @Entry
-      @Component
-      struct Second {
-        @State message: string = 'Hi there'
-      
-        /**
-        * In low-code mode, do not add anything to the build function, as it will be
-        * overwritten by the content generated by the .visual file in the build phase.
-        */
-        back() {
-          router.back()
-        }
-      
-        build() {
-      
-        }
-      }
-      ```
-   - “**second.visual**”: 打开second.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001233368900](figures/zh-cn_image_0000001233368900.png)(Events),鼠标点击OnClick事件的输入框,选择this.back,如下所示:
-
-      ![zh-cn_image_0000001280385809](figures/zh-cn_image_0000001277489017.png)
-
-3. 打开index.visual或index.ets文件,点击预览器中的 ![zh-cn_image_0000001277608849](figures/zh-cn_image_0000001277608849.png) 按钮进行刷新。效果如下图所示:
-
-   ![zh-cn_image_0000001233528192](figures/zh-cn_image_0000001233528192.png)
-
-
-## 使用真机运行应用
-
-1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
-
-2. 点击**File** &gt; **Project Structure** &gt; **Project** &gt; **Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
-
-   ![zh-cn_image_0000001277728613](figures/zh-cn_image_0000001277728613.png)
-
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001277809373](figures/zh-cn_image_0000001277809373.png)按钮运行。效果如下图所示:
-
-   ![zh-cn_image_0000001233209024](figures/zh-cn_image_0000001233209024.png)
-
-恭喜您已经使用eTS语言开发(低代码方式)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-ets.md b/zh-cn/application-dev/quick-start/start-with-ets-stage.md
similarity index 54%
rename from zh-cn/application-dev/quick-start/start-with-ets.md
rename to zh-cn/application-dev/quick-start/start-with-ets-stage.md
index 7c921bc9145276d79ef4303aa951705c0e042d08..f8c2493e72073c120599477c6bd1d580fa7be23e 100644
--- a/zh-cn/application-dev/quick-start/start-with-ets.md
+++ b/zh-cn/application-dev/quick-start/start-with-ets-stage.md
@@ -1,46 +1,57 @@
-# 使用eTS语言开发(传统代码方式)
+# 使用eTS语言开发(Stage模型)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 请使用**DevEco Studio V3.0.0.601 Beta1**及更高版本。
+
+> **说明:**
+> 请使用**DevEco Studio V3.0.0.900 Beta3**及更高版本。
 > 
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)获取下载链接。
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.991 Beta4**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
 
 
 ## 创建eTS工程
 
-1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已有一个工程,请点击**File** &gt; **New** &gt; **Create Project**。选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
+1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已经打开了一个工程,请在菜单栏选择**File** &gt; **New** &gt; **Create Project**来创建一个新工程。选择**OpenHarmony**模板库,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
+   ![01](figures/01.png)
 
-   ![zh-cn_image_0000001223556342](figures/zh-cn_image_0000001223556342.png)
+2. 进入配置工程界面,**Compile SDK**选择“**9**”,**Model** 选择“**Stage**”,**Language** 选择“**eTS**”,其他参数保持默认设置即可。
+   ![07](figures/07.png)
 
-2. 进入配置工程界面,**UI Syntax**选择“**eTS**”,其他参数保持默认设置即可。
+   > **说明:**
+   >
+   > 支持使用eTS[低代码开发](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-low-code-development-0000001218440652)方式。
+   >
+   > 低代码开发方式具有丰富的UI界面编辑功能,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
+   >
+   > 如需使用低代码开发方式,请打开上图中的Enable Super Visual开关。
+   
+3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
 
-   ![zh-cn_image_0000001223716826](figures/zh-cn_image_0000001223716826.png)
 
-3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
+## eTS工程目录结构
 
+![zh-cn_image_0000001364054489](figures/zh-cn_image_0000001364054489.png)
 
-## eTS工程项目文件
+- **AppScope &gt; app.json5**:应用的全局配置信息。
 
-- **entry** :OpenHarmony工程模块,编译构建生成一个[HAP](../../glossary.md#hap)包。
-  - **src &gt; main &gt; ets** :用于存放ets源码。
-  - **src &gt; main &gt; ets &gt; MainAbility** :应用/服务的入口。
-  - **src &gt; main &gt; ets &gt; MainAbility &gt; pages** :MainAbility包含的页面。
-  - **src &gt; main &gt; ets &gt; MainAbility &gt; pages &gt; index.ets** :pages列表中的第一个页面,即应用的首页入口。
-  - **src &gt; main &gt; ets &gt; MainAbility &gt; app.ets** :承载Ability生命周期。
-  - **src &gt; main &gt; resources** :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
-  - **src &gt; main &gt; config.json** :模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明](package-structure.md)。
-  - **build-profile.json5** :当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
-  - **hvigorfile.js** :模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
+- **entry**:OpenHarmony工程模块,编译构建生成一个[HAP](../../glossary.md#hap)包。
+  - **src &gt; main &gt; ets**:用于存放ets源码。
+  - **src &gt; main &gt; ets &gt; Application &gt; AbilityStage.ts**:实现AbilityStage接口。
+  - **src &gt; main &gt; ets &gt; MainAbility**:应用/服务的入口。
+  - **src &gt; main &gt; ets &gt; MainAbility &gt; MainAbility.ts**:承载Ability生命周期。
+  - **src &gt; main &gt; ets &gt; pages**:MainAbility包含的页面。
+  - **src &gt; main &gt; resources**:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见[资源文件的分类](../ui/ui-ts-basic-resource-file-categories.md)。
+  - **src &gt; main &gt; module.json5**:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明(Stage模型)](stage-structure.md)。
+  - **build-profile.json5**:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
+  - **hvigorfile.js**:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
 
-- **build-profile.json5** :应用级配置信息,包括签名、产品配置等。
+- **build-profile.json5**:应用级配置信息,包括签名、产品配置等。
 
-- **hvigorfile.js** :应用级编译构建任务脚本。
+- **hvigorfile.js**:应用级编译构建任务脚本。
 
 
 ## 构建第一个页面
 
 1. 使用文本组件。
-工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages**”,打开“**index.ets**”文件,可以看到页面由Text组件组成。“**index.ets**”文件的示例如下:
+   工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages**”,打开“**index.ets**”文件,可以看到页面由Text组件组成。“**index.ets**”文件的示例如下:
 
    
    ```ts
@@ -103,46 +114,33 @@
    ```
 
 3. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
-
-   ![zh-cn_image_0000001216239356](figures/zh-cn_image_0000001216239356.png)
+   ![zh-cn_image_0000001311334976](figures/zh-cn_image_0000001311334976.png)
 
 
 ## 构建第二个页面
 
 1. 创建第二个页面。
-    - 新建第二个页面文件。在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; ets &gt; MainAbility**”,右键点击“**pages**”文件夹,选择“**New &gt; eTS File**”,命名为“**second**”,点击“**Finish**”。可以看到文件目录结构如下:
-
-    ![zh-cn_image_0000001223397122](figures/zh-cn_image_0000001223397122.png)
+   - 新建第二个页面文件。在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; ets**”,右键点击“**pages**”文件夹,选择“**New &gt; eTS File**”,命名为“**second**”,点击“**Finish**”。可以看到文件目录结构如下:
 
-    > 说明:
-    >
-    > 开发者也可以在右键点击“**pages**”文件夹时,选择“**new > Page**”,则无需手动配置相关页面的路由。
+      ![09](figures/09.png)
 
-    - 配置第二个页面的路由。在config.json文件中的“module - js - pages”下配置第二个页面的路由“pages/second”。示例如下:
-    
-    ```
+      > **说明:**
+      > 开发者也可以在右键点击“**pages**”文件夹时,选择“**New &gt; Page**”,则无需手动配置相关页面路由。
+   - 配置第二个页面的路由。在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; resources &gt; base &gt; profile **”,在main_pages.json文件中的“src”下配置第二个页面的路由“pages/second”。示例如下:
+     
+      ```json
       {
-        ...
-          "module": {
-           ...
-            "js": [
-              {
-                ...
-                "pages": [
-                "pages/index",
-                "pages/second"
-              ]
-                ...
-              }
-          ]
-        }
+        "src": [
+          "pages/index",
+          "pages/second"
+        ]
       }
-    ```
+      ```
 
 2. 添加文本及按钮。
    参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。“**second.ets**”文件的示例如下:
 
-
+   
    ```ts
    // second.ets
    @Entry
@@ -268,21 +266,18 @@
    }
    ```
 
-3. 打开index.ets文件,点击预览器中的 ![zh-cn_image_0000001262219043](figures/zh-cn_image_0000001262219043.png) 按钮进行刷新。 效果如下图所示:
-
-   ![zh-cn_image_0000001260684127](figures/zh-cn_image_0000001260684127.png)
+3. 打开index.ets文件,点击预览器中的![zh-cn_image_0000001311015192](figures/zh-cn_image_0000001311015192.png)按钮进行刷新。效果如下图所示:
+   ![zh-cn_image_0000001364254773](figures/zh-cn_image_0000001364254773.png)
 
 
 ## 使用真机运行应用
 
 1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
 
-2. 点击**File** &gt; **Project Structure** &gt; **Project** &gt; **SigningConfigs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
-
-   ![zh-cn_image_0000001268077317](figures/zh-cn_image_0000001268077317.png)
-
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262206247](figures/zh-cn_image_0000001262206247.png)按钮运行。效果如下图所示:
+2. 点击**File**&gt; **Project Structure...** &gt; **Project**&gt;**SigningConfigs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
+   ![06](figures/06.png)
 
-   ![zh-cn_image_0000001217526428](figures/zh-cn_image_0000001217526428.png)
+3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001364054485](figures/zh-cn_image_0000001364054485.png)按钮运行。效果如下图所示:
+   ![zh-cn_image_0000001311334972](figures/zh-cn_image_0000001311334972.png)
 
-恭喜您已经使用eTS语言(传统代码方式)开发完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
+恭喜您已经使用eTS语言开发(Stage模型)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-js.md b/zh-cn/application-dev/quick-start/start-with-js-fa.md
similarity index 57%
rename from zh-cn/application-dev/quick-start/start-with-js.md
rename to zh-cn/application-dev/quick-start/start-with-js-fa.md
index 32ce2eb43af404acb80112678764d37cd3e79cb9..d735f4a0ed5d2805161164eeb23327019b0cc10c 100644
--- a/zh-cn/application-dev/quick-start/start-with-js.md
+++ b/zh-cn/application-dev/quick-start/start-with-js-fa.md
@@ -1,40 +1,45 @@
-# 使用JS语言开发(传统代码方式)
+# 使用JS语言开发(FA模型)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)获取下载链接。
+> **说明:**
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.991 Beta4**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
 
 
 ## 创建JS工程
 
-1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已有一个工程,请点击**File** &gt; **New** &gt; **Create Project**。选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
+1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已经打开了一个工程,请在菜单栏选择**File** &gt; **New** &gt; **Create Project**来创建一个新工程。选择**OpenHarmony**模板库,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
+   ![01](figures/01.png)
 
-   ![zh-cn_image_0000001223558814](figures/zh-cn_image_0000001223558814.png)
+2. 进入配置工程界面,**Compile SDK**选择“**8**”(**Complie SDK**选择“**9**”时注意同步选择 **Model** 为“**FA**”,此处以选择“**8**”为例),**Language**选择“**JS**”,其他参数保持默认设置即可。
+   ![04](figures/04.png)
 
-2. 进入配置工程界面,**UI Syntax**选择“**JS**”,其他参数保持默认设置即可。
-
-   ![zh-cn_image_0000001223877162](figures/zh-cn_image_0000001223877162.png)
+   > **说明:**
+   > DevEco Studio V2.2 Beta1及更高版本支持使用JS[低代码开发](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-low-code-development-0000001218440652)方式。
+   > 
+   > 低代码开发方式具有丰富的UI界面编辑功能,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
+   > 
+   > 如需使用低代码开发方式,请打开上图中的Enable Super Visual开关。
 
 3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
 
 
-## JS工程项目文件
+## JS工程目录结构
 
 - **entry**:OpenHarmony工程模块,编译构建生成一个[HAP](../../glossary.md#hap)包。
-  - **src &gt; main &gt; js** :用于存放js源码。
-  - **src &gt; main &gt; js &gt; MainAbility** :应用/服务的入口。
-  - **src &gt; main &gt; js &gt; MainAbility &gt; i18n** :用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
-  - **src &gt; main &gt; js &gt; MainAbility &gt; pages** :MainAbility包含的页面。
-  - **src &gt; main &gt; js &gt; MainAbility &gt; app.js** :承载Ability生命周期。
+  - **src &gt; main &gt; js**:用于存放js源码。
+  - **src &gt; main &gt; js &gt; MainAbility**:应用/服务的入口。
+  - **src &gt; main &gt; js &gt; MainAbility &gt; i18n**:用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
+  - **src &gt; main &gt; js &gt; MainAbility &gt; pages**:MainAbility包含的页面。
+  - **src &gt; main &gt; js &gt; MainAbility &gt; app.js**:承载Ability生命周期。
 
-  - **src &gt; main &gt; resources** :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
-  - **src &gt; main &gt; config.json** :模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明](package-structure.md)。
-  - **build-profile.json5** :当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
-  - **hvigorfile.js** :模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
+  - **src &gt; main &gt; resources**:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见[资源限定与访问](../ui/js-framework-resource-restriction.md)。
+  - **src &gt; main &gt; config.json**:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明(FA模型)](package-structure.md)。
+  - **build-profile.json5**:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
+  - **hvigorfile.js**:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
 
-- **build-profile.json5** :应用级配置信息,包括签名、产品配置等。
+- **build-profile.json5**:应用级配置信息,包括签名、产品配置等。
 
-- **hvigorfile.js** :应用级编译构建任务脚本。
+- **hvigorfile.js**:应用级编译构建任务脚本。
 
 
 ## 构建第一个页面
@@ -44,7 +49,7 @@
 
    
    ```html
-   <!--index.hml-->
+   <!-- index.hml -->
    <div class="container">
        <text class="title">
            Hello World
@@ -57,7 +62,7 @@
 
    
    ```html
-   <!--index.hml-->
+   <!-- index.hml -->
    <div class="container">
        <text class="title">
            Hello World
@@ -73,6 +78,7 @@
 
    
    ```css
+   /* index.css */
    .container {
        display: flex;
        flex-direction: column;
@@ -103,9 +109,7 @@
    ```
 
 4. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
-
-
-   ![zh-cn_image_0000001216084724](figures/zh-cn_image_0000001216084724.png)
+   ![zh-cn_image_0000001311494592](figures/zh-cn_image_0000001311494592.png)
 
 
 ## 构建第二个页面
@@ -113,14 +117,14 @@
 1. 创建第二个页面。
    在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; js &gt; MainAbility**”,右键点击“**pages**”文件夹,选择“**New &gt; Page**”,命名为“**second**”,点击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
 
-   ![zh-cn_image_0000001223877210](figures/zh-cn_image_0000001223877210.png)
+   ![zh-cn_image_0000001311334944](figures/zh-cn_image_0000001311334944.png)
 
 2. 添加文本及按钮。
    参照第一个页面,在第二个页面添加文本、按钮及点击按钮绑定页面返回等。“**second.hml**”文件的示例如下:
 
    
    ```html
-   <!--second.hml-->
+   <!-- second.hml -->
    <div class="container">
        <text class="title">
            Hi there
@@ -131,9 +135,10 @@
    </div>
    ```
 
-3. 设置页面样式。“**second.css**”文件的示例如下:
+3. **设置页面样式。**“**second.css**”文件的示例如下:
    
    ```css
+   /* second.css */
    .container {
        display: flex;
        flex-direction: column;
@@ -200,24 +205,18 @@
    }
    ```
 
-3. 打开index文件夹下的任意一个文件,点击预览器中的 ![zh-cn_image_0000001262339067](figures/zh-cn_image_0000001262339067.png) 按钮进行刷新。效果如下图所示:
-
-   ![zh-cn_image_0000001216269940](figures/zh-cn_image_0000001216269940.png)
+3. 打开index文件夹下的任意一个文件,点击预览器中的![zh-cn_image_0000001364174013](figures/zh-cn_image_0000001364174013.png)按钮进行刷新。效果如下图所示:
+   ![zh-cn_image_0000001311175132](figures/zh-cn_image_0000001311175132.png)
 
 
 ## 使用真机运行应用
 
 1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
 
-2. 点击**File** &gt; **Project Structure** &gt; **Project** &gt; **Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
-
-   ![zh-cn_image_0000001223557290](figures/zh-cn_image_0000001223557290.png)
-
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001217047316](figures/zh-cn_image_0000001217047316.png)按钮运行。效果如下图所示:
+2. 点击**File**&gt; **Project Structure...** &gt; **Project**&gt;**Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
+   ![06](figures/06.png)
 
-   ![zh-cn_image_0000001217527892](figures/zh-cn_image_0000001217527892.png)
+3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001311494604](figures/zh-cn_image_0000001311494604.png)按钮运行。效果如下图所示:
+   ![zh-cn_image_0000001363934589](figures/zh-cn_image_0000001363934589.png)
 
-恭喜您已经使用JS语言开发(传统代码方式)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
-## 相关实例
-针对使用JS语言(传统代码方式)开发快速入门,有以下相关实例可供参考:
-- [`JsHelloWorld`:你好世界(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/common/JsHelloWorld)
+恭喜您已经使用JS语言开发(FA模型)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-js-low-code.md b/zh-cn/application-dev/quick-start/start-with-js-low-code.md
deleted file mode 100644
index bdd4bfad89140eacc919502e19bd0993885a3dff..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/start-with-js-low-code.md
+++ /dev/null
@@ -1,170 +0,0 @@
-# 使用JS语言开发(低代码方式)
-
-
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该特性在**DevEco Studio V2.2 Beta1**及更高版本中支持。
-> 
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)获取下载链接。
-
-
-OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,通过可视化界面开发方式快速构建布局,可有效降低开发者的上手成本并提升开发者构建UI界面的效率。
-
-
-使用低代码开发应用或服务有以下两种开发方式:
-
-
-- 直接创建一个支持低代码开发的新工程以进行开发。本文以此方式为例进行说明。
-
-- 在已有工程中,创建visual文件来进行开发。此种方式的操作可参考[创建visual文件支持低代码开发](#构建第二个页面)。
-
-
-## 创建新工程支持低代码开发
-
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该功能在DevEco Studio 3.0 Beta2及更高版本中支持,且compileSdkVersion必须为7或以上。
-
-1. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已有一个工程,请点击**File** &gt; **New** &gt; **Create Project**。选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
-
-   ![zh-cn_image_0000001268198893](figures/zh-cn_image_0000001268198893.png)
-
-2. 进入配置工程界面,打开“**Enable Super Visual**”开关,**UI Syntax**选择“**JS**”,其他参数保持默认设置即可。
-
-   ![zh-cn_image_0000001223717294](figures/zh-cn_image_0000001223717294.png)
-
-3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
-
-
-## 低代码开发工程项目文件
-
-工程同步完成后,自动生成以下目录结构:
-
-![zh-cn_image_0000001223558810](figures/zh-cn_image_0000001223558810.png)
-
-- **entry &gt; src &gt; main &gt; js &gt; MainAbility &gt; pages &gt; index &gt; index.js** :低代码页面的逻辑描述文件,定义了页面里所用到的所有的逻辑关系,比如数据、事件等,详情请参考[JS语法参考](../ui/js-framework-syntax-js.md)。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的js文件。
-  
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-  > 使用低代码页面开发时,其关联js文件的同级目录中不能包含hml和css页面,例如上图中的 **js &gt; MainAbility &gt; pages &gt; index** 目录下不能包含hml与css文件,否则会出现编译报错。
-  
-- **entry &gt; src &gt; main &gt; supervisual &gt; MainAbility &gt; pages &gt; index &gt; index.visual** :visual文件存储低代码页面的数据模型,双击该文件即可打开低代码页面,进行可视化开发设计。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。
-
-
-## 构建第一个页面
-
-工程同步完成后,第一个页面已有一个容器、一段文本(Hello World)显示。为了更详细地了解低代码开发,我们将删除画布原有模板组件,从零开始完成页面的添加、设置。
-
-第一个页面内有一个容器、一段文本和一个按钮,通过Div、Text和Button组件来实现。
-
-1. 删除画布原有模板组件。<a name= delete_origin_content></a>
-   打开index.visual文件,选中画布中的组件,单击鼠标右键,选择Delete删除画布原有模板组件。操作如下所示:
-
-   ![zh-cn_image_0000001216600980](figures/zh-cn_image_0000001216600980.gif)
-
-2. 添加容器,设置Div容器的样式和属性。<a name = add_container></a>
-   选中UI Control中的Div组件,将其拖至画布。点击右侧属性样式栏中的样式图标![zh-cn_image_0000001260226691](figures/zh-cn_image_0000001260226691.png)(General),设置Div组件的高度Height为100%,使其占满屏幕;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001215226858](figures/zh-cn_image_0000001215226858.png)(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示。操作如下所示:
-
-   ![zh-cn_image_0000001216448880](figures/zh-cn_image_0000001216448880.gif)
-
-3. 添加文本。
-   选中UI Control中的Text组件,将其拖至Div组件的中央区域。点击右侧属性样式栏中的属性图标![zh-cn_image_0000001215066868](figures/zh-cn_image_0000001215066868.png)(Properties),设置Text组件的Content属性为“Hello World”;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001215386842](figures/zh-cn_image_0000001215386842.png)(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示。再选中画布上的Text组件,拖动放大。操作如下所示:
-
-   ![zh-cn_image_0000001216446670](figures/zh-cn_image_0000001216446670.gif)
-
-4. 添加按钮。
-   选中UI Control中的Button组件,将其拖至Text组件下面。点击右侧属性样式栏中的属性图标![zh-cn_image_0000001260106745](figures/zh-cn_image_0000001260106745.png)(Properties),设置Button组件的Value属性为“Next”,点击右侧属性样式栏中的样式图标![zh-cn_image_0000001259866741](figures/zh-cn_image_0000001259866741.png)(Feature),设置组件的FontSize样式为40px,使得其文字放大;再选中画布上的Button组件,拖动放大。操作如下所示:
-
-   ![zh-cn_image_0000001260928361](figures/zh-cn_image_0000001260928361.gif)
-
-5. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
-
-   ![zh-cn_image_0000001216288558](figures/zh-cn_image_0000001216288558.png)
-
-
-## 构建第二个页面
-
-1. 创建第二个页面。
-   在“**Project**”窗口,打开“**entry > src > main > js > MainAbility**”,右键点击“**pages**”文件夹,选择“**New > Visual**”,命名为“**second**”,单击“**Finish**”,即完成第二个页面的创建。
-   新建visual文件的操作如下:
-   
-   <img src="figures/zh-cn_image_202206250937.png" alt="create-newVisual" style="zoom: 67%;" />
-   
-   可以看到文件目录结构如下:
-   
-   ![zh-cn_image_0000001223882030](figures/zh-cn_image_0000001223882030.png)
-   
-2. [删除画布原有模板组件。](#delete_origin_content)
-
-3. [添加容器,设置Div容器的样式和属性。](#add_container)
-
-4. 添加文本。
-   选中Text组件,拖至Div组件的中央区域。点击右侧属性样式栏中的属性图标![zh-cn_image_0000001260227453](figures/zh-cn_image_0000001260227453.png)(Properties),设置Text组件的Content属性为“Hi there”;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001260107497](figures/zh-cn_image_0000001260107497.png)(Feature),设置组件的FontSize样式为60px;设置组件的TextAlign样式为center。再选中画布上的Text组件,拖动放大。操作如下所示:
-
-   ![zh-cn_image_0000001216614132](figures/zh-cn_image_0000001216614132.gif)
-
-5. 添加按钮。
-   选中UI Control中的Button组件,将其拖至Text组件下面。点击右侧属性样式栏中的属性图标![zh-cn_image_0000001215227618](figures/zh-cn_image_0000001215227618.png)(Properties),设置Button组件的Value属性为“Back”,点击右侧属性样式栏中的样式图标![zh-cn_image_0000001259987441](figures/zh-cn_image_0000001259987441.png)(Feature),设置组件的FontSize样式为40px,使得其文字放大;再选中画布上的Button组件,拖动放大。操作如下所示:
-
-   ![zh-cn_image_0000001261017331](figures/zh-cn_image_0000001261017331.gif)
-
-
-## 实现页面间的跳转
-
-页面间的导航可以通过[页面路由router](../ui/ui-js-building-ui-routes.md)来实现。页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。
-
-1. 第一个页面跳转到第二个页面。
-     在第一个页面中,跳转按钮绑定onclick方法,点击按钮时跳转到第二页。需同时处理js文件及visual文件。
-   - “**index.js**”示例如下:
-     
-     ```js
-     import router from '@ohos.router';  
-     
-     export default {     
-         onclick() {         
-             router.push({             
-                 url:'pages/second/second', // 指定要跳转的页面         
-             })     
-         } 
-     }
-     ```
-   
-   - “**index.visual**”: 打开index.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001215388136](figures/zh-cn_image_0000001215388136.png)(Events),鼠标点击Click事件的输入框,选择onclick,如下所示:
-
-     ![zh-cn_image_0000001223722586](figures/zh-cn_image_0000001223722586.png)
-
-2. 第二个页面返回到第一个页面。
-   在第二个页面中,返回按钮绑定back方法,点击按钮时返回到第一页。
-
-   需同时处理js文件及visual文件。
-
-   - “**second.js**”示例如下:
-     
-      ```js
-      import router from '@ohos.router';  
-      
-      export default {     
-          back() {         
-              router.back()     
-          } 
-      }
-      ```
-   - “**second.visual**”: 打开second.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001215388262](figures/zh-cn_image_0000001215388262.png)(Events),鼠标点击Click事件的输入框,选择back,如下所示:
-
-     ![zh-cn_image_0000001268082945](figures/zh-cn_image_0000001268082945.png)
-
-3. 打开index.visual或index.js文件,点击预览器中的 ![zh-cn_image_0000001261979271](figures/zh-cn_image_0000001261979271.png) 按钮进行刷新。效果如下图所示:
-
-   ![zh-cn_image_0000001261142799](figures/zh-cn_image_0000001261142799.png)
-
-
-## 使用真机运行应用
-
-1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
-
-2. 点击**File** &gt; **Project Structure** &gt; **Project** &gt; **Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
-
-   ![zh-cn_image_0000001268283201](figures/zh-cn_image_0000001268283201.png)
-
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262207811](figures/zh-cn_image_0000001262207811.png)按钮运行。效果如下图所示:
-
-   ![zh-cn_image_0000001262127855](figures/zh-cn_image_0000001262127855.png)
-
-恭喜您已经使用JS语言开发(低代码方式)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/reference/Readme-CN.md b/zh-cn/application-dev/reference/Readme-CN.md
index 55918480abbc69f4a8ffa9f23b9f3e41af207321..fb4b5ce23d9743a121f179a5ab6470713323e2c9 100644
--- a/zh-cn/application-dev/reference/Readme-CN.md
+++ b/zh-cn/application-dev/reference/Readme-CN.md
@@ -1,10 +1,9 @@
 # 开发参考
 
--   [基于JS扩展的类Web开发范式](arkui-js/Readme-CN.md)
--   [基于TS扩展的声明式开发范式](arkui-ts/Readme-CN.md)
+-   [组件参考(基于TS扩展的声明式开发范式)](arkui-ts/Readme-CN.md)
+-   [组件参考(基于JS扩展的类Web开发范式)](arkui-js/Readme-CN.md)
 -   [接口参考(JS及TS API)](apis/Readme-CN.md)
 -   接口参考(Native API)
-    -   [OpenHarmony Native API](./native-apis/Readme-CN.md)
-    -   [Native API标准库](native-lib/third_party_libc/musl.md)
-    -   [Node_API](native-lib/third_party_napi/napi.md)
+    -   [OpenHarmony Native API](native-apis/Readme-CN.md)
+    -   [Native API标准库](native-lib/Readme-CN.md)
 
diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md
index 9048aec6ed20ef8faef94dd42c35c8b766aefbfa..c5624597587250de137733ebd6d8ffb36bbccb48 100755
--- a/zh-cn/application-dev/reference/apis/Readme-CN.md
+++ b/zh-cn/application-dev/reference/apis/Readme-CN.md
@@ -1,56 +1,65 @@
-# 接口
+# 接口
 
 - [开发说明](development-intro.md)
 
 - Ability框架
 
-  - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-DataUriUtils.md)
-  - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md)
-  - [@ohos.ability.wantConstant (wantConstant)](js-apis-ability-wantConstant.md)
-  - [@ohos.application.Ability (Ability)](js-apis-application-ability.md)
-  - [@ohos.application.AbilityConstant (AbilityConstant)](js-apis-application-abilityConstant.md)
-  - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](js-apis-abilityDelegatorRegistry.md)
-  - [@ohos.application.AbilityStage (AbilityStage)](js-apis-application-abilitystage.md)
-  - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md)
-  - [@ohos.application.appManager (appManager)](js-apis-appmanager.md)
-  - [@ohos.application.Configuration (Configuration)](js-apis-configuration.md)
-  - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-configurationconstant.md)
-  - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](js-apis-application-DataShareExtensionAbility.md)
-  - [@ohos.ability.featureAbility (FeatureAbility模块)](js-apis-featureAbility.md)
-  - [@ohos.application.formBindingData (卡片数据绑定类)](js-apis-formbindingdata.md)
-  - [@ohos.application.FormExtension (FormExtension)](js-apis-formextension.md)
-  - [@ohos.application.formError (FormError)](js-apis-formerror.md)
-  - [@ohos.application.formHost (FormHost)](js-apis-formhost.md)
-  - [@ohos.application.formInfo (FormInfo)](js-apis-formInfo.md)
-  - [@ohos.application.missionManager (missionManager)](js-apis-missionManager.md)
-  - [@ohos.application.formProvider (FormProvider)](js-apis-formprovider.md)
-  - [@ohos.ability.particleAbility (particleAbility模块)](js-apis-particleAbility.md)
-  - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](js-apis-service-extension-ability.md)
-  - [@ohos.application.StartOptions (StartOptions)](js-apis-application-StartOptions.md)
-  - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md)
-  - [@ohos.application.uriPermissionManager (uriPermissionManager)](js-apis-uripermissionmanager.md)
-  - [@ohos.application.Want (Want)](js-apis-application-Want.md)
-  - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](js-apis-application-WindowExtensionAbility.md)
-  - [@ohos.wantAgent (WantAgent模块)](js-apis-wantAgent.md)
-  - ability/[dataAbilityHelper (DataAbilityHelper模块)](js-apis-dataAbilityHelper.md)
-  - app/[context (Context模块)](js-apis-Context.md)
-  - application/[AbilityContext (AbilityContext)](js-apis-ability-context.md)
-  - application/[ApplicationContext (ApplicationContext)](js-apis-application-applicationContext.md)
-  - application/[abilityDelegator (AbilityDelegator)](js-apis-application-abilityDelegator.md)
-  - application/[abilityDelegatorArgs (AbilityDelegatorArgs)](js-apis-application-abilityDelegatorArgs.md)
-  - application/[abilityMonitor (AbilityMonitor)](js-apis-application-abilityMonitor.md)
-  - application/[AbilityRunningInfo (AbilityRunningInfo)](js-apis-abilityrunninginfo.md)
-  - application/[AbilityStageContext (AbilityStageContext)](js-apis-abilitystagecontext.md)
-  - application/[Context (Context)](js-apis-application-context.md)
-  - application/[ExtensionContext (ExtensionContext)](js-apis-extension-context.md)
-  - application/[ExtensionRunningInfo (ExtensionRunningInfo)](js-apis-extensionrunninginfo.md)
-  - application/[FormExtensionContext (FormExtensionContext)](js-apis-formextensioncontext.md)
-  - application/[MissionSnapshot (MissionSnapshot)](js-apis-application-MissionSnapshot.md)
-  - application/[PermissionRequestResult (PermissionRequestResult)](js-apis-permissionrequestresult.md)
-  - application/[ProcessRunningInfo (ProcessRunningInfo)](js-apis-processrunninginfo.md)
-  - application/[ServiceExtensionContext (ServiceExtensionContext)](js-apis-service-extension-context.md)
-  - application/[shellCmdResult (ShellCmdResult)](js-apis-application-shellCmdResult.md)
-  - application/[MissionInfo (MissionInfo)](js-apis-application-missionInfo.md)
+  - FA模型
+    - [@ohos.ability.featureAbility (FeatureAbility模块)](js-apis-featureAbility.md)
+    - [@ohos.ability.particleAbility (particleAbility模块)](js-apis-particleAbility.md)
+    - ability/[dataAbilityHelper (DataAbilityHelper模块)](js-apis-dataAbilityHelper.md)
+    - app/[context (Context模块)](js-apis-Context.md)
+  - Stage模型
+    - [@ohos.application.Ability (Ability)](js-apis-application-ability.md)
+    - [@ohos.application.AbilityConstant (AbilityConstant)](js-apis-application-abilityConstant.md)
+    - [@ohos.application.AbilityStage (AbilityStage)](js-apis-application-abilitystage.md)
+    - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md)
+    - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](js-apis-application-DataShareExtensionAbility.md)
+    - [@ohos.application.FormExtension (FormExtension)](js-apis-formextension.md)
+    - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](js-apis-service-extension-ability.md)
+    - [@ohos.application.StartOptions (StartOptions)](js-apis-application-StartOptions.md)
+    - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md)
+    - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](js-apis-application-WindowExtensionAbility.md)
+    - application/[AbilityContext (AbilityContext)](js-apis-ability-context.md)
+    - application/[ApplicationContext (ApplicationContext)](js-apis-application-applicationContext.md)
+    - application/[AbilityStageContext (AbilityStageContext)](js-apis-abilitystagecontext.md)
+    - application/[Context (Context)](js-apis-application-context.md)
+    - application/[ExtensionContext (ExtensionContext)](js-apis-extension-context.md)
+    - application/[FormExtensionContext (FormExtensionContext)](js-apis-formextensioncontext.md)
+    - application/[PermissionRequestResult (PermissionRequestResult)](js-apis-permissionrequestresult.md)
+    - application/[ServiceExtensionContext (ServiceExtensionContext)](js-apis-service-extension-context.md)
+  - 通用
+    - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-DataUriUtils.md)
+    - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md)
+    - [@ohos.ability.wantConstant (wantConstant)](js-apis-ability-wantConstant.md)
+    - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](js-apis-abilityDelegatorRegistry.md)
+    - [@ohos.application.abilityManager (AbilityManager)](js-apis-application-abilityManager.md)
+    - [@ohos.application.AccessibilityExtensionAbility (AccessibilityExtensionContext)](js-apis-accessibility-extension-context.md)
+    - [@ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)](js-apis-application-AccessibilityExtensionAbility.md)
+    - [@ohos.application.appManager (appManager)](js-apis-appmanager.md)
+    - [@ohos.application.Configuration (Configuration)](js-apis-configuration.md)
+    - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-configurationconstant.md)
+    - [@ohos.application.EnvironmentCallback (EnvironmentCallback)](js-apis-application-EnvironmentCallback.md)
+    - [@ohos.application.errorManager (ErrorManager)](js-apis-errorManager.md)
+    - [@ohos.application.formBindingData (卡片数据绑定类)](js-apis-formbindingdata.md)
+    - [@ohos.application.formError (FormError)](js-apis-formerror.md)
+    - [@ohos.application.formHost (FormHost)](js-apis-formhost.md)
+    - [@ohos.application.formInfo (FormInfo)](js-apis-formInfo.md)
+    - [@ohos.application.formProvider (FormProvider)](js-apis-formprovider.md)
+    - [@ohos.application.missionManager (missionManager)](js-apis-missionManager.md)
+    - [@ohos.application.Want (Want)](js-apis-application-Want.md)
+    - [@ohos.continuation.continuationManager (ContinuationExtraParams)](js-apis-continuation-continuationExtraParams.md)
+    - [@ohos.continuation.continuationManager (continuationManager)](js-apis-continuation-continuationManager.md)
+    - [@ohos.wantAgent (WantAgent模块)](js-apis-wantAgent.md)
+    - application/[abilityDelegator (AbilityDelegator)](js-apis-application-abilityDelegator.md)
+    - application/[abilityDelegatorArgs (AbilityDelegatorArgs)](js-apis-application-abilityDelegatorArgs.md)
+    - application/[abilityMonitor (AbilityMonitor)](js-apis-application-abilityMonitor.md)
+    - application/[AbilityRunningInfo (AbilityRunningInfo)](js-apis-abilityrunninginfo.md)
+    - application/[ExtensionRunningInfo (ExtensionRunningInfo)](js-apis-extensionrunninginfo.md)
+    - application/[MissionSnapshot (MissionSnapshot)](js-apis-application-MissionSnapshot.md)
+    - application/[ProcessRunningInfo (ProcessRunningInfo)](js-apis-processrunninginfo.md)
+    - application/[shellCmdResult (ShellCmdResult)](js-apis-application-shellCmdResult.md)
+    - continuation/[ContinuationResult (ContinuationResult)](js-apis-continuation-continuationResult.md)
 - 公共事件与通知
 
   - [@ohos.commonEvent (公共事件模块)](js-apis-commonEvent.md)
@@ -62,16 +71,25 @@
 
   - [@ohos.bundle (Bundle模块)](js-apis-Bundle.md)
   - [@ohos.bundle.defaultAppManager (Bundle模块)](js-apis-bundle-defaultAppManager.md)
+  - [@ohos.bundle.innerBundleManager (innerBundleManager模块(JS端SDK接口))](js-apis-Bundle-InnerBundleManager.md)
   - [@ohos.bundleState (设备使用信息统计)](js-apis-deviceUsageStatistics.md)
+  - [@ohos.distributedBundle (distributedBundle模块(JS端SDK接口))](js-apis-Bundle-distributedBundle.md)
   - [@ohos.zlib (Zip模块)](js-apis-zlib.md)
   - bundle/[AbilityInfo (AbilityInfo)](js-apis-bundle-AbilityInfo.md)
   - bundle/[ApplicationInfo (ApplicationInfo)](js-apis-bundle-ApplicationInfo.md)
   - bundle/[BundleInfo (BundleInfo)](js-apis-bundle-BundleInfo.md)
+  - bundle/[BundleInstaller (BundleInstaller)](js-apis-bundle-BundleInstaller.md)
   - bundle/[CustomizeData (CustomizeData)](js-apis-bundle-CustomizeData.md)
+  - bundle/[DispatchInfo (DispatchInfo)](js-apis-dispatchInfo.md)
+  - bundle/[ElementName (ElementName)](js-apis-bundle-ElementName.md)
   - bundle/[ExtensionAbilityInfo (ExtensionAbilityInfo)](js-apis-bundle-ExtensionAbilityInfo.md)
   - bundle/[HapModuleInfo (HapModuleInfo)](js-apis-bundle-HapModuleInfo.md)
+  - bundle/[LauncherAbilityInfo (LauncherAbilityInfo)](js-apis-bundle-LauncherAbilityInfo.md)
   - bundle/[Metadata (Metadata)](js-apis-bundle-Metadata.md)
   - bundle/[ModuleInfo (ModuleInfo)](js-apis-bundle-ModuleInfo.md)
+  - bundle/[PermissionDef (PermissionDef)](js-apis-bundle-PermissionDef.md)
+  - bundle/[RemoteAbilityInfo (RemoteAbilityInfo)](js-apis-bundle-remoteAbilityInfo.md)
+  - bundle/[ShortcutInfo (ShortcutInfo)](js-apis-bundle-ShortcutInfo.md)
 - UI界面
 
   - [@ohos.animator (动画)](js-apis-animator.md)
@@ -81,6 +99,7 @@
   - [@ohos.uiAppearance(用户界面外观)](js-apis-uiappearance.md)
 - 图形图像
 
+  - [@ohos.animation.windowAnimationManager (窗口动画管理)](js-apis-windowAnimationManager.md)
   - [@ohos.display (屏幕属性)](js-apis-display.md)
   - [@ohos.effectKit (图像效果)](js-apis-effectKit.md)
   - [@ohos.screen (屏幕)](js-apis-screen.md)
@@ -102,6 +121,7 @@
 - 资源调度
 
   - [@ohos.backgroundTaskManager (后台任务管理)](js-apis-backgroundTaskManager.md)
+  - [@ohos.distributedMissionManager (分布式任务管理)](js-apis-distributedMissionManager.md)
   - [@ohos.workScheduler (延迟任务调度)](js-apis-workScheduler.md)
   - [@ohos.WorkSchedulerExtensionAbility (延迟任务调度回调)](js-apis-WorkSchedulerExtensionAbility.md)
 - 定制管理
@@ -180,7 +200,9 @@
   - [@ohos.screenLock (锁屏管理)](js-apis-screen-lock.md)
   - [@ohos.systemTime (设置系统时间)](js-apis-system-time.md)
   - [@ohos.wallpaper (壁纸)](js-apis-wallpaper.md)
+  - [@ohos.systemTimer(设置系统时间)](js-apis-system-timer.md)
   - [Timer (定时器)](js-apis-timer.md)
+
 - 设备管理
 
   - [@ohos.batteryInfo (电量信息)](js-apis-battery-info.md)
@@ -260,4 +282,4 @@
   - [@system.sensor (传感器)](js-apis-system-sensor.md)
   - [@system.storage (数据存储)](js-apis-system-storage.md)
   - [@system.vibrator (振动)](js-apis-system-vibrate.md)
-  - [console (日志打印)](js-apis-logs.md)
\ No newline at end of file
+  - [console (日志打印)](js-apis-logs.md)
diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..cd16f889508f3adcefabc621304527d06c1a2b88
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md
@@ -0,0 +1,308 @@
+# innerBundleManager模块(JS端SDK接口)
+
+本模块提供内部包的管理
+
+> **说明:**
+> 
+> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```
+import innerBundleManager from '@ohos.bundle.innerBundleManager';
+```
+
+## 系统能力
+
+SystemCapability.BundleManager.BundleFramework
+
+## 权限列表
+
+| 权限                                       | 权限等级     | 描述                         |
+| ------------------------------------------ | ------------ | ---------------------------- |
+| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息           |
+| ohos.permission.LISTEN_BUNDLE_CHANGE       | system_grant | 允许该应用获取应用变化消息。 |
+
+权限等级参考[权限等级说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E6%9D%83%E9%99%90%E7%AD%89%E7%BA%A7%E8%AF%B4%E6%98%8E)
+
+## innerBundleManager.getLauncherAbilityInfos
+
+getLauncherAbilityInfos(bundleName: string, userId: number, callback: AsyncCallback&lt;Array&lt;LauncherAbilityInfo&gt;&gt;) : void;
+
+以异步方法根据给定的包名获取LauncherAbilityInfos,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型                                                         | 必填 | 描述                                                  |
+| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
+| bundleName | string                                                       | 是   | 要查询的应用程序包名称。                              |
+| userId     | number                                                       | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| callback   | AsyncCallback\<Array<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)>> | 是   | 程序启动作为入参的回调函数,返回程序信息。            |
+
+
+
+## innerBundleManager.getLauncherAbilityInfos
+
+getLauncherAbilityInfos(bundleName: string, userId: number) : Promise&lt;Array&lt;LauncherAbilityInfo&gt;&gt;
+
+以异步方法根据给定的包名获取LauncherAbilityInfos,使用Promise形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型   | 必填 | 描述                                                  |
+| ---------- | ------ | ---- | ----------------------------------------------------- |
+| bundleName | string | 是   | 要查询的应用程序包名称。                              |
+| userId     | number | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+
+**返回值:**
+
+| 类型                                                         | 说明                      |
+| ------------------------------------------------------------ | ------------------------- |
+| Promise\<Array<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)>> | Promise形式返回程序信息。 |
+
+## innerBundleManager.on
+
+on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback, callback: AsyncCallback&lt;string&gt;) : void;
+
+注册Callback。
+
+**需要权限:**
+
+ohos.permission.LISTEN_BUNDLE_CHANGE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称                 | 类型                  | 必填 | 描述                                                 |
+| -------------------- | --------------------- | ---- | ---------------------------------------------------- |
+| type                 | "BundleStatusChange"  | 是   | 指示应执行命令。                                     |
+| bundleStatusCallback | BundleStatusCallback  | 是   | 指示要注册的回调。                                   |
+| callback             | AsyncCallback\<string> | 是   | 程序启动作为入参的回调函数,返回正确结果或错误信息。 |
+
+## innerBundleManager.on
+
+on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback): Promise&lt;string&gt;
+
+注册Callback。
+
+**需要权限:**
+
+ohos.permission.LISTEN_BUNDLE_CHANGE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称                 | 类型                 | 必填 | 描述               |
+| -------------------- | -------------------- | ---- | ------------------ |
+| type                 | "BundleStatusChange" | 是   | 指示应执行命令。   |
+| bundleStatusCallback | BundleStatusCallback | 是   | 指示要注册的回调。 |
+
+**返回值:**
+
+| 类型            | 说明                                |
+| --------------- | ----------------------------------- |
+| Promise\<string> | Promise形式返回正确结果或错误信息。 |
+
+## innerBundleManager.off
+
+off(type:"BundleStatusChange", callback: AsyncCallback&lt;string&gt;) : void;
+
+取消注册Callback。
+
+**需要权限:**
+
+ohos.permission.LISTEN_BUNDLE_CHANGE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                  | 必填 | 描述                                                 |
+| -------- | --------------------- | ---- | ---------------------------------------------------- |
+| type     | "BundleStatusChange"  | 是   | 指示应执行命令。                                     |
+| callback | AsyncCallback\<string> | 是   | 程序启动作为入参的回调函数,返回正确结果或错误信息。 |
+
+## innerBundleManager.off
+
+off(type:"BundleStatusChange"): Promise&lt;string&gt;
+
+取消注册Callback。
+
+**需要权限:**
+
+ohos.permission.LISTEN_BUNDLE_CHANGE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称 | 类型                 | 必填 | 描述             |
+| ---- | -------------------- | ---- | ---------------- |
+| type | "BundleStatusChange" | 是   | 指示应执行命令。 |
+
+**返回值:**
+
+| 类型            | 说明                                |
+| --------------- | ----------------------------------- |
+| Promise\<string> | Promise形式返回正确结果或错误信息。 |
+
+## innerBundleManager.getAllLauncherAbilityInfos
+
+getAllLauncherAbilityInfos(userId: number, callback: AsyncCallback&lt;Array&lt;LauncherAbilityInfo&gt;&gt;) : void;
+
+以异步方法获取所有的LauncherAbilityInfos,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 描述                                                  |
+| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
+| userId   | number                                                       | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| callback | AsyncCallback\<Array<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)>> | 是   | 程序启动作为入参的回调函数,返回程序信息。            |
+
+## innerBundleManager.getAllLauncherAbilityInfos
+
+getAllLauncherAbilityInfos(userId: number) : Promise&lt;Array&lt;LauncherAbilityInfo&gt;&gt;
+
+以异步方法获取LauncherAbilityInfos,使用Promise形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称   | 类型   | 必填 | 描述                                                  |
+| ------ | ------ | ---- | ----------------------------------------------------- |
+| userId | number | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+
+**返回值:**
+
+| 类型                                                         | 说明                      |
+| ------------------------------------------------------------ | ------------------------- |
+| Promise\<Array<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)>> | Promise形式返回程序信息。 |
+
+## innerBundleManager.getShortcutInfos
+
+getShortcutInfos(bundleName :string, callback: AsyncCallback&lt;Array&lt;ShortcutInfo&gt;&gt;) : void;
+
+以异步方法根据给定的包名获取快捷方式信息,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型                                                         | 必填 | 描述                                           |
+| ---------- | ------------------------------------------------------------ | ---- | ---------------------------------------------- |
+| bundleName | string                                                       | 是   | 要查询的应用程序包名称。                       |
+| callback   | AsyncCallback\<Array<[ShortcutInfo](js-apis-bundle-ShortcutInfo.md)>> | 是   | 程序启动作为入参的回调函数,返回快捷方式信息。 |
+
+## innerBundleManager.getShortcutInfos
+
+getShortcutInfos(bundleName : string) : Promise&lt;Array&lt;ShortcutInfo&gt;&gt;
+
+以异步方法根据给定的包名获取快捷方式信息,使用Promise形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型   | 必填 | 描述                     |
+| ---------- | ------ | ---- | ------------------------ |
+| bundleName | string | 是   | 要查询的应用程序包名称。 |
+
+**返回值:**
+
+| 类型                                                     | 说明                          |
+| -------------------------------------------------------- | ----------------------------- |
+| Promise\<Array<[ShortcutInfo](js-apis-bundle-ShortcutInfo.md)>> | Promise形式返回快捷方式信息。 |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md
new file mode 100644
index 0000000000000000000000000000000000000000..a32fdcc7d7e01ff4e05ce885ec2cdfeee288c6dc
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md
@@ -0,0 +1,139 @@
+# distributedBundle模块(JS端SDK接口)
+
+本模块提供分布式包的管理
+
+> **说明:**
+>
+> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```
+import distributedBundle from '@ohos.distributedBundle';
+```
+
+## 系统能力
+
+SystemCapability.BundleManager.DistributedBundleFramework
+
+## 权限列表
+
+| 权限                                       | 权限等级     | 描述               |
+| ------------------------------------------ | ------------ | ------------------ |
+| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息 |
+
+权限等级参考[权限等级说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E6%9D%83%E9%99%90%E7%AD%89%E7%BA%A7%E8%AF%B4%E6%98%8E)
+
+## distributedBundle.getRemoteAbilityInfo
+
+getRemoteAbilityInfo(elementName: ElementName, callback: AsyncCallback&lt;RemoteAbilityInfo&gt;): void;
+
+以异步方法根据给定的ElementName获取有关远程设备AbilityInfo信息,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.DistributedBundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称        | 类型                                                         | 必填 | 描述                                               |
+| ----------- | ------------------------------------------------------------ | ---- | -------------------------------------------------- |
+| elementName | [ElementName](js-apis-bundle-ElementName.md)                 | 是   | 获得的ElementName信息。                            |
+| callback    | AsyncCallback<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)> | 是   | 程序启动作为入参的回调函数,返回远程基本能力信息。 |
+
+
+
+## distributedBundle.getRemoteAbilityInfo
+
+getRemoteAbilityInfo(elementName: ElementName): Promise&lt;RemoteAbilityInfo&gt;
+
+以异步方法根据给定的ElementName获取有关远程设备AbilityInfo信息,使用Promise形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.DistributedBundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称        | 类型                                         | 必填 | 描述                    |
+| ----------- | -------------------------------------------- | ---- | ----------------------- |
+| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是   | 获得的ElementName信息。 |
+
+**返回值:**
+
+| 类型                                                         | 说明                              |
+| ------------------------------------------------------------ | --------------------------------- |
+| Promise\<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)> | Promise形式返回远程基本能力信息。 |
+
+## distributedBundle.getRemoteAbilityInfos
+
+getRemoteAbilityInfos(elementNames: Array&lt;ElementName&gt;, callback: AsyncCallback&lt;Array&lt;RemoteAbilityInfo&gt;&gt;): void;
+
+以异步方法根据给定的ElementName获取有关远程设备AbilityInfos信息,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.DistributedBundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称         | 类型                                                         | 必填 | 描述                                               |
+| ------------ | ------------------------------------------------------------ | ---- | -------------------------------------------------- |
+| elementNames | Array<[ElementName](js-apis-bundle-ElementName.md)>          | 是   | ElementName信息,最大数组长度为10                   |
+| callback     | AsyncCallback< Array<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)>> | 是   | 程序启动作为入参的回调函数,返回远程基本能力信息。 |
+
+
+
+## distributedBundle.getRemoteAbilityInfos
+
+getRemoteAbilityInfos(elementNames: Array&lt;ElementName&gt;): Promise&lt;Array&lt;RemoteAbilityInfo&gt;&gt;
+
+以异步方法根据给定的ElementName获取有关远程设备AbilityInfos信息,使用Promise形式返回结果。
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.DistributedBundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称         | 类型                                                | 必填 | 描述                    |
+| ------------ | --------------------------------------------------- | ---- | ----------------------- |
+| elementNames | Array<[ElementName](js-apis-bundle-ElementName.md)> | 是   | ElementName信息,最大数组长度为10。 |
+
+**返回值:**
+
+| 类型                                                         | 说明                              |
+| ------------------------------------------------------------ | --------------------------------- |
+| Promise\<Array<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)>> | Promise形式返回远程基本能力信息。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md
index 45f2c957bafe33532b81c6b87f3a7c92d6a628d2..61dd1a23ddb25ee89c13f0527597e0cb37e14c99 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md
@@ -374,6 +374,466 @@ bundle.getBundleInfo(bundleName, bundleFlags, options, (err, data) => {
 })
 ```
 
+## bundle.getBundleInstaller
+
+getBundleInstaller(): Promise&lt;BundleInstaller&gt;;
+
+获取用于安装包的接口
+
+**需要权限:**
+
+ohos.permission.INSTALL_BUNDLE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**返回值:**
+
+| 类型                                                         | 说明                                         |
+| ------------------------------------------------------------ | -------------------------------------------- |
+| Promise<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | 返回值为Promise对象,Promise中包含安装信息。 |
+
+## bundle.getBundleInstaller
+
+getBundleInstaller(callback: AsyncCallback&lt;BundleInstaller&gt;): void;
+
+获取用于安装包的接口
+
+**需要权限:**
+
+ohos.permission.INSTALL_BUNDLE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 描述             |
+| -------- | ------------------------------------------------------------ | ---- | ---------------- |
+| callback | AsyncCallback<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | 是   | 安装应用程序包。 |
+
+## bundle.cleanBundleCacheFiles<sup>8+</sup>
+
+cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback&lt;void&gt;): void;
+
+清除指定应用程序的缓存数据
+
+**需要权限:**
+
+ohos.permission.REMOVE_CACHE_FILES
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型                | 必填 | 描述                                  |
+| ---------- | ------------------- | ---- | ------------------------------------- |
+| bundleName | string              | 是   | 指示要清除其缓存数据的应用程序包名称. |
+| callback   | AsyncCallback\<void> | 是   | 为返回操作结果而调用的回调。          |
+
+## bundle.cleanBundleCacheFiles<sup>8+</sup>
+
+cleanBundleCacheFiles(bundleName: string): Promise&lt;void&gt;
+
+清除指定应用程序的缓存数据
+
+**需要权限:**
+
+ohos.permission.REMOVE_CACHE_FILES
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型   | 必填 | 描述                                  |
+| ---------- | ------ | ---- | ------------------------------------- |
+| bundleName | string | 是   | 指示要清除其缓存数据的应用程序包名称. |
+
+**返回值:**
+
+| 类型          | 说明                                 |
+| ------------- | ------------------------------------ |
+| Promise\<void> | 返回值为Promise对象,Promise中为空。 |
+
+## bundle.setApplicationEnabled<sup>8+</sup>
+
+setApplicationEnabled(bundleName: string, isEnable: boolean, callback: AsyncCallback&lt;void&gt;): void;
+
+设置是否启用指定的应用程序
+
+**需要权限:**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型                | 必填 | 描述                                            |
+| ---------- | ------------------- | ---- | ----------------------------------------------- |
+| bundleName | string              | 是   | 应用程序包名称。                                |
+| isEnable   | boolean             | 是   | 指定是否启用应用程序。true表示启用,false禁用。 |
+| callback   | AsyncCallback\<void> | 是   | 为返回操作结果而调用的回调。                    |
+
+## bundle.setApplicationEnabled<sup>8+</sup>
+
+setApplicationEnabled(bundleName: string, isEnable: boolean): Promise&lt;void&gt;
+
+设置是否启用指定的应用程序
+
+**需要权限:**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型    | 必填 | 描述                                            |
+| ---------- | ------- | ---- | ----------------------------------------------- |
+| bundleName | string  | 是   | 应用程序包名称。                                |
+| isEnable   | boolean | 是   | 指定是否启用应用程序。true表示启用,false禁用。 |
+
+**返回值:**
+
+| 类型          | 说明                                 |
+| ------------- | ------------------------------------ |
+| Promise\<void> | 返回值为Promise对象,Promise中为空。 |
+
+## bundle.setAbilityEnabled<sup>8+</sup>
+
+setAbilityEnabled(info: AbilityInfo, isEnable: boolean, callback: AsyncCallback&lt;void&gt;): void;
+
+设置是否启用指定的功能
+
+**需要权限:**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                                         | 必填 | 描述                                            |
+| -------- | -------------------------------------------- | ---- | ----------------------------------------------- |
+| info     | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | 是   | Ability信息。                                   |
+| isEnable | boolean                                      | 是   | 指定是否启用应用程序。true表示启用,false禁用。 |
+| callback | AsyncCallback\<void>                          | 是   | 为返回操作结果而调用的回调。                    |
+
+## bundle.setAbilityEnabled<sup>8+</sup>
+
+setAbilityEnabled(info: AbilityInfo, isEnable: boolean): Promise&lt;void&gt;
+
+设置是否启用指定的功能
+
+**需要权限:**
+
+ohos.permission.CHANGE_ABILITY_ENABLED_STATE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                                         | 必填 | 描述                                            |
+| -------- | -------------------------------------------- | ---- | ----------------------------------------------- |
+| info     | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | 是   | Ability信息。                                   |
+| isEnable | boolean                                      | 是   | 指定是否启用应用程序。true表示启用,false禁用。 |
+
+**返回值:**
+
+| 类型          | 说明                                 |
+| ------------- | ------------------------------------ |
+| Promise\<void> | 返回值为Promise对象,Promise中为空。 |
+
+## bundle.getPermissionDef<sup>8+</sup>
+
+getPermissionDef(permissionName: string, callback: AsyncCallback&lt;PermissionDef&gt;): void;
+
+按权限名称获取权限的详细信息
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称           | 类型                                                         | 必填 | 描述                                             |
+| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------ |
+| permissionName | string                                                       | 是   | 指定权限的名称。                                 |
+| callback       | AsyncCallback<[PermissionDef](js-apis-bundle-PermissionDef)> | 是   | 程序启动作为入参的回调函数,返回定义的权限信息。 |
+
+## bundle.getPermissionDef<sup>8+</sup>
+
+getPermissionDef(permissionName: string): Promise&lt;PermissionDef&gt;
+
+按权限名称获取权限的详细信息
+
+**需要权限:**
+
+ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称           | 类型   | 必填 | 描述             |
+| -------------- | ------ | ---- | ---------------- |
+| permissionName | string | 是   | 指定权限的名称。 |
+
+**返回值:**
+
+| 类型                                                   | 说明                                                   |
+| ------------------------------------------------------ | ------------------------------------------------------ |
+| Promise<[PermissionDef](js-apis-bundle-PermissionDef)> | 返回值为Promise对象,Promise中包含定义的权限信息对象。 |
+
+## bundle.setModuleUpgradeFlag<sup>9+</sup>
+
+setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag, callback: AsyncCallback&lt;void&gt;):void;
+
+设置模块是否需要升级
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称        | 类型                        | 必填 | 描述                         |
+| ----------- | --------------------------- | ---- | ---------------------------- |
+| bundleName  | string                      | 是   | 应用程序包名称。             |
+| moduleName  | string                      | 是   | 应用程序模块名称。           |
+| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是   | 仅供内部系统使用标志位       |
+| callback    | AsyncCallback\<void>         | 是   | 为返回操作结果而调用的回调。 |
+
+## bundle.setModuleUpgradeFlag<sup>9+</sup>
+
+setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag): Promise&lt;void&gt;
+
+设置模块是否需要升级
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称        | 类型                        | 必填 | 描述                   |
+| ----------- | --------------------------- | ---- | ---------------------- |
+| bundleName  | string                      | 是   | 应用程序包名称。       |
+| moduleName  | string                      | 是   | 应用程序模块名称。     |
+| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是   | 仅供内部系统使用标志位 |
+
+**返回值:**
+
+| 类型          | 说明                                 |
+| ------------- | ------------------------------------ |
+| Promise\<void> | 返回值为Promise对象,Promise中为空。 |
+
+## bundle.isModuleRemovable<sup>9+</sup>
+
+isModuleRemovable(bundleName: string, moduleName: string, callback: AsyncCallback&lt;boolean&gt;): void;
+
+检查指定模块是否被移除
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型                   | 必填 | 描述                                          |
+| ---------- | ---------------------- | ---- | --------------------------------------------- |
+| bundleName | string                 | 是   | 应用程序包名称。                              |
+| moduleName | string                 | 是   | 应用程序模块名称。                            |
+| callback   | AsyncCallback\<boolean> | 是   | 程序启动作为入参的回调函数,返回boolean信息。 |
+
+## bundle.isModuleRemovable<sup>9+</sup>
+
+isModuleRemovable(bundleName: string, moduleName: string): Promise&lt;boolean&gt;
+
+检查指定模块是否被移除
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称       | 类型   | 必填 | 描述               |
+| ---------- | ------ | ---- | ------------------ |
+| bundleName | string | 是   | 应用程序包名称。   |
+| moduleName | string | 是   | 应用程序模块名称。 |
+
+**返回值:**
+
+| 类型             | 说明                         |
+| ---------------- | ---------------------------- |
+| Promise\<boolean> | Promise形式返回boolean信息。 |
+
+## bundle.getBundlePackInfo<sup>9+</sup>
+
+getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag, callback: AsyncCallback&lt;pack.BundlePackInfo&gt;): void;
+
+基于bundleName和bundleFlags获取bundlePackInfo
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称           | 类型                               | 必填 | 描述                                                 |
+| -------------- | ---------------------------------- | ---- | ---------------------------------------------------- |
+| bundleName     | string                             | 是   | 应用程序包名称。                                     |
+| bundlePackFlag | pack.BundlePackFlag                | 是   | 指示要查询的应用包标志                               |
+| callback       | AsyncCallback<pack.BundlePackInfo> | 是   | 程序启动作为入参的回调函数,返回BundlePackInfo信息。 |
+
+## bundle.getBundlePackInfo<sup>9+</sup>
+
+getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag): Promise&lt;pack.BundlePackInfo&gt;;
+
+基于bundleName和bundleFlags获取bundlePackInfo
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称           | 类型                | 必填 | 描述                   |
+| -------------- | ------------------- | ---- | ---------------------- |
+| bundleName     | string              | 是   | 应用程序包名称。       |
+| bundlePackFlag | pack.BundlePackFlag | 是   | 指示要查询的应用包标志 |
+
+**返回值:**
+
+| 类型                         | 说明                                |
+| ---------------------------- | ----------------------------------- |
+| Promise<pack.BundlePackInfo> | Promise形式返回BundlePackInfo信息。 |
+
+## bundle.getDispatcherVersion<sup>9+</sup>
+
+getDispatcherVersion(callback: AsyncCallback&lt;DispatchInfo&gt;): void;
+
+获取有关dispatcher版本的信息
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**参数:**
+
+| 名称     | 类型                                                   | 必填 | 描述                                                         |
+| -------- | ------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| callback | AsyncCallback<[DispatchInfo](js-apis-dispatchInfo.md)> | 是   | 程序启动作为入参的回调函数,返回[DispatchInfo](js-apis-dispatchInfo.md)信息。 |
+
+## bundle.getDispatcherVersion<sup>9+</sup>
+
+getDispatcherVersion(): Promise&lt;DispatchInfo&gt;;
+
+获取有关dispatcher版本的信息
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**系统API:**
+
+此接口为系统接口,三方应用不支持调用
+
+**返回值:**
+
+| 类型                                             | 说明                                                         |
+| ------------------------------------------------ | ------------------------------------------------------------ |
+| Promise<[DispatchInfo](js-apis-dispatchInfo.md)> | Promise形式返回[DispatchInfo](js-apis-dispatchInfo.md)信息。 |
 
 ## bundle.getAllApplicationInfo
 
@@ -1050,7 +1510,7 @@ bundle.queryAbilityByWant(want, bundleFlags, userId)
 
 queryAbilityByWant(want: Want, bundleFlags: number, userId: number, callback: AsyncCallback<Array\<AbilityInfo>>): void
 
-以异步方法根据给定的意图获取获取指定用户下Ability信息,使用callback形式返回结果。
+以异步方法根据给定的意图获取指定用户下Ability信息,使用callback形式返回结果。
 
 **需要权限:**
 
@@ -1437,8 +1897,8 @@ SystemCapability.BundleManager.BundleFramework
 | 名称             | 类型     | 必填   | 描述                                       |
 | -------------- | ------ | ---- | ---------------------------------------- |
 | want           | [Want](js-apis-application-Want.md)   | 是    | 包含要查询的应用程序包名称的意图。                        |
-| extensionType  | number | 是    | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#ExtensionAbilityType9) |
-| extensionFlags | number | 是    | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值: [ExtensionFlags](#ExtensionFlag9) |
+| extensionType  | number | 是    | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#extensionabilitytype9) |
+| extensionFlags | number | 是    | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值: [ExtensionFlags](#extensionflag9) |
 | userId         | number | 否    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0              |
 
 **返回值:**
@@ -1486,8 +1946,8 @@ SystemCapability.BundleManager.BundleFramework
 | 名称           | 类型                                                         | 必填 | 描述                                                         |
 | -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | want           | [Want](js-apis-application-Want.md)                                                        | 是   | 指示包含要查询的应用程序包名称的意图。                       |
-| extensionType  | number                                                       | 是   | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#ExtensionAbilityType9) |
-| extensionFlags | number                                                       | 是   | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值:  [ExtensionFlags](#ExtensionFlag9)|
+| extensionType  | number                                                       | 是   | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#extensionabilitytype9) |
+| extensionFlags | number                                                       | 是   | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值:  [ExtensionFlags](#extensionflag9)|
 | userId         | number                                                       | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0          |
 | callback       | AsyncCallback<Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)>> | 是   | 程序启动作为入参的回调函数,返回ExtensionAbility信息。       |
 
@@ -1529,8 +1989,8 @@ SystemCapability.BundleManager.BundleFramework
 | 名称             | 类型                                       | 必填   | 描述                                       |
 | -------------- | ---------------------------------------- | ---- | ---------------------------------------- |
 | want           | [Want](js-apis-application-Want.md)                                     | 是    | 指示包含要查询的应用程序包名称的意图。                      |
-| extensionType  | number                                   | 是    | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#ExtensionAbilityType9) |
-| extensionFlags | number                                   | 是    | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值: [ExtensionFlags](#ExtensionFlag9) |
+| extensionType  | number                                   | 是    | 用于指定查找的extensionAbilityInfo的类型。 默认值:0,取值范围:枚举值: [ExtensionAbilityType](#extensionabilitytype9) |
+| extensionFlags | number                                   | 是    | 用于指定返回ExtensionAbilityInfo信息。默认值:0,取值范围:枚举值: [ExtensionFlags](#extensionflag9) |
 | callback       | AsyncCallback<Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)>> | 是    | 程序启动作为入参的回调函数,返回ExtensionAbility信息。      |
 
 **示例:**
@@ -1687,12 +2147,14 @@ bundle.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataNa
 
 setDisposedStatus(bundleName: string, status: number, callback: AsyncCallback\<void>): void;
 
-此接口为系统接口,以异步方法根据给定的bundleName和status来设置对应应用的处置状态,使用callback形式返回结果。
+以异步方法根据给定的bundleName和status来设置对应应用的处置状态,使用callback形式返回结果。
 
 **需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
+**系统API:**  此接口为系统接口,三方应用不支持调用
+
 **参数:**
 
 | 名称             | 类型                                | 必填   | 描述                                       |
@@ -1717,12 +2179,14 @@ bundle.setDisposedStatus(bundleName, status, caller)
 
 setDisposedStatus(bundleName: string, status: number): Promise\<void>;
 
-此接口为系统接口,以异步方法根据给定的bundleName和status来设置对应应用的处置状态,使用Promise形式返回结果。
+以异步方法根据给定的bundleName和status来设置对应应用的处置状态,使用Promise形式返回结果。
 
 **需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
+**系统API:**  此接口为系统接口,三方应用不支持调用
+
 **参数:**
 
 | 名称             | 类型                                | 必填   | 描述                                       |
@@ -1753,12 +2217,14 @@ bundle.setDisposedStatus(bundleName, status).then(data=>{
 
 getDisposedStatus(bundleName: string, callback: AsyncCallback\<number>): void;
 
-此接口为系统接口,以异步方法根据给定的bundleName来获取对应应用的处置状态,使用callback形式返回结果。
+以异步方法根据给定的bundleName来获取对应应用的处置状态,使用callback形式返回结果。
 
 **需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
+**系统API:**  此接口为系统接口,三方应用不支持调用
+
 **参数:**
 
 | 名称             | 类型                                | 必填   | 描述                                       |
@@ -1781,12 +2247,14 @@ bundle.getDisposedStatus(bundleName, caller)
 
 getDisposedStatus(bundleName: string): Promise\<number>;
 
-此接口为系统接口,以异步方法根据给定的bundleName来获取对应应用的处置状态,使用Promise形式返回结果。
+以异步方法根据给定的bundleName来获取对应应用的处置状态,使用Promise形式返回结果。
 
 **需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
+**系统API:**  此接口为系统接口,三方应用不支持调用
+
 **参数:**
 
 | 名称             | 类型                                | 必填   | 描述                                       |
@@ -1897,15 +2365,15 @@ Ability类型
 | LANDSCAPE     | 无    | 屏幕方向--横屏      |
 | PORTRAIT      | 无    | 屏幕方向--竖屏      |
 | FOLLOW_RECENT | 无    | 屏幕方向--紧跟上一个组件 |
-| LANDSCAPE_INVERTED |无    | 屏幕方向--反向横屏     |
-| PORTRAIT_INVERTED |无    | 屏幕方向--反向竖屏     |
-| AUTO_ROTATION |无    | 屏幕方向--随传感器旋转     |
-| AUTO_ROTATION_LANDSCAPE |无    | 屏幕方向--传感器横屏旋转,包括了横屏和反向横屏     |
-| AUTO_ROTATION_PORTRAIT |无    | 屏幕方向--传感器竖屏旋转,包括了竖屏和反向竖屏     |
-| AUTO_ROTATION_RESTRICTED |无    | 屏幕方向--传感器开关打开,方向可随传感器旋转     |
-| AUTO_ROTATION_LANDSCAPE_RESTRICTED |无    | 屏幕方向--传感器开关打开,方向可随传感器旋转为横屏, 包括了横屏和反向横屏     |
-| AUTO_ROTATION_PORTRAIT_RESTRICTED |无    | 屏幕方向--传感器开关打开,方向随可传感器旋转为竖屏, 包括了横屏和反向横屏     |
-| LOCKED |无    | 屏幕方向--传感器开关关闭,方向锁定     |
+| LANDSCAPE_INVERTED<sup>9+</sup> |无    | 屏幕方向--反向横屏     |
+| PORTRAIT_INVERTED<sup>9+</sup> |无    | 屏幕方向--反向竖屏     |
+| AUTO_ROTATION<sup>9+</sup> |无    | 屏幕方向--随传感器旋转     |
+| AUTO_ROTATION_LANDSCAPE<sup>9+</sup> |无    | 屏幕方向--传感器横屏旋转,包括了横屏和反向横屏     |
+| AUTO_ROTATION_PORTRAIT<sup>9+</sup> |无    | 屏幕方向--传感器竖屏旋转,包括了竖屏和反向竖屏     |
+| AUTO_ROTATION_RESTRICTED<sup>9+</sup> |无    | 屏幕方向--传感器开关打开,方向可随传感器旋转     |
+| AUTO_ROTATION_LANDSCAPE_RESTRICTED<sup>9+</sup> |无    | 屏幕方向--传感器开关打开,方向可随传感器旋转为横屏, 包括了横屏和反向横屏     |
+| AUTO_ROTATION_PORTRAIT_RESTRICTED<sup>9+</sup> |无    | 屏幕方向--传感器开关打开,方向随可传感器旋转为竖屏, 包括了横屏和反向横屏     |
+| LOCKED<sup>9+</sup> |无    | 屏幕方向--传感器开关关闭,方向锁定     |
 ## LaunchMode
 
 启动模式
@@ -1945,9 +2413,12 @@ ExtensionAbility的类型
 | FILE_SHARE<sup>9+</sup>        | 6    | ExtensionAbility的类型包括文件共享 |
 | STATIC_SUBSCRIBER<sup>9+</sup> | 7    | ExtensionAbility的类型包括订阅者  |
 | WALLPAPER<sup>9+</sup>         | 8    | ExtensionAbility的类型包括墙纸   |
-| BACKUP<sup>9+</sup>            | 9    | ExtensionAbility的类型包括数据备份恢复 |
+| BACKUP<sup>9+</sup> | 9    | ExtensionAbility的类型包括数据备份恢复 |
+| WINDOW<sup>9+</sup> | 10 | ExtensionAbility的类型包括窗口类型扩展信息 |
 | ENTERPRISE_ADMIN<sup>9+</sup>  | 11   | ExtensionAbility的类型包括企业管理员   |
-| UNSPECIFIED<sup>9+</sup>       | 20    | ExtensionAbility未指定类型     |
+| THUMBNAIL<sup>9+</sup> | 13 | ExtensionAbility的类型包括缩略图 |
+| PREVIEW<sup>9+</sup> | 14 | ExtensionAbility的类型包括预览 |
+| UNSPECIFIED<sup>9+</sup>       | 255   | ExtensionAbility未指定类型     |
 
 ## ExtensionFlag<sup>9+</sup>
 
@@ -1994,6 +2465,20 @@ ExtensionAbility的类型
 
 | 名称                 | 类型   | 说明   |
 | ------------------ | ---- | ---- |
-| FULLSCREEN  | 无   | 全屏模式 |
-| SPLIT | 无    | 分屏模式   |
-| FLOATING | 无    | 悬浮模式   |
+| FULL_SCREEN<sup>9+</sup> | 0   | 全屏模式 |
+| SPLIT<sup>9+</sup> | 1    | 分屏模式   |
+| FLOATING<sup>9+</sup> | 2    | 悬浮模式   |
+
+## UpgradeFlag
+
+此项仅供内部系统使用
+
+**系统API:**此接口为系统接口,三方应用不支持调用
+
+**系统能力:**  以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称                          | 值   | 说明             |
+| ----------------------------- | ---- | ---------------- |
+| NOT_UPGRADE<sup>9+</sup>      | 0    | 模块无需升级     |
+| SINGLE_UPGRADE<sup>9+</sup>   | 1    | 单个模块需要升级 |
+| RELATION_UPGRADE<sup>9+</sup> | 2    | 关系模块需要升级 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-Context.md b/zh-cn/application-dev/reference/apis/js-apis-Context.md
index f85c67797499cb5968532c13f0a50412a06f5b3c..1352981c55e13ae8451df234cb434a5f7bb4138c 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-Context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-Context.md
@@ -3,7 +3,7 @@
 Context模块提供了ability或application的上下文的能力,包括允许访问特定于应用程序的资源、请求和验证权限等。
 
 > **说明:**
-> 
+>
 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。   
 > 本模块接口仅可在FA模型下使用。
 
@@ -29,9 +29,9 @@ getOrCreateLocalDir(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                       |
-| -------- | ---------------------- | ---- | -------------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回应用程序的本地根目录。 |
+| 名称       | 类型                     | 必填   | 描述            |
+| -------- | ---------------------- | ---- | ------------- |
+| callback | AsyncCallback\<string> | 是    | 返回应用程序的本地根目录。 |
 
 **示例:**
 
@@ -57,8 +57,8 @@ getOrCreateLocalDir(): Promise\<string>
 
 **返回值:**
 
-| 类型             | 说明                   |
-| ---------------- | ---------------------- |
+| 类型               | 说明          |
+| ---------------- | ----------- |
 | Promise\<string> | 应用程序的本地根目录。 |
 
 **示例:**
@@ -83,11 +83,11 @@ verifyPermission(permission: string, options: PermissionOptions, callback: Async
 
 **参数:**
 
-| 名称       | 类型                                    | 必填 | 描述                                  |
-| ---------- | --------------------------------------- | ---- | ------------------------------------- |
-| permission | string                                  | 是   | 指定权限的名称。                      |
-| options    | [PermissionOptions](#permissionoptions) | 是   | 权限选项。                            |
-| callback   | AsyncCallback\<number>                  | 是   | 返回权限验证结果,0有权限,-1无权限。 |
+| 名称         | 类型                                      | 必填   | 描述                   |
+| ---------- | --------------------------------------- | ---- | -------------------- |
+| permission | string                                  | 是    | 指定权限的名称。             |
+| options    | [PermissionOptions](#permissionoptions) | 是    | 权限选项。                |
+| callback   | AsyncCallback\<number>                  | 是    | 返回权限验证结果,0有权限,-1无权限。 |
 
 **示例:**
 
@@ -112,10 +112,10 @@ verifyPermission(permission: string, callback: AsyncCallback\<number>): void
 
 **参数:**
 
-| 名称       | 类型                   | 必填 | 描述                                  |
-| ---------- | ---------------------- | ---- | ------------------------------------- |
-| permission | string                 | 是   | 指定权限的名称。                      |
-| callback   | AsyncCallback\<number> | 是   | 返回权限验证结果,0有权限,-1无权限。 |
+| 名称         | 类型                     | 必填   | 描述                   |
+| ---------- | ---------------------- | ---- | -------------------- |
+| permission | string                 | 是    | 指定权限的名称。             |
+| callback   | AsyncCallback\<number> | 是    | 返回权限验证结果,0有权限,-1无权限。 |
 
 **示例:**
 
@@ -135,15 +135,15 @@ verifyPermission(permission: string, options?: PermissionOptions): Promise\<numb
 
 **参数:**
 
-| 名称       | 类型                                    | 必填 | 描述             |
-| ---------- | --------------------------------------- | ---- | ---------------- |
-| permission | string                                  | 是   | 指定权限的名称。 |
-| options    | [PermissionOptions](#permissionoptions) | 否   | 权限选项。       |
+| 名称         | 类型                                      | 必填   | 描述       |
+| ---------- | --------------------------------------- | ---- | -------- |
+| permission | string                                  | 是    | 指定权限的名称。 |
+| options    | [PermissionOptions](#permissionoptions) | 否    | 权限选项。    |
 
 **返回值:**
 
-| 类型             | 说明                                                        |
-| ---------------- | ----------------------------------------------------------- |
+| 类型               | 说明                                 |
+| ---------------- | ---------------------------------- |
 | Promise\<number> | 如果pid和uid具有权限,则使用0进行异步回调;否则使用-1回调。 |
 
 **示例:**
@@ -170,11 +170,11 @@ requestPermissionsFromUser(permissions: Array\<string>, requestCode: number, res
 
 **参数:**
 
-| 名称           | 类型                                                         | 必填 | 描述                                            |
-| -------------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
-| permissions    | Array\<string>                                               | 是   | 指示要请求的权限列表。此参数不能为null。        |
-| requestCode    | number                                                       | 是   | 指示要传递给PermissionRequestResult的请求代码。 |
-| resultCallback | AsyncCallback<[PermissionRequestResult](#permissionrequestresult)> | 是   | 返回授权结果信息。                              |
+| 名称             | 类型                                       | 必填   | 描述                                  |
+| -------------- | ---------------------------------------- | ---- | ----------------------------------- |
+| permissions    | Array\<string>                           | 是    | 指示要请求的权限列表。此参数不能为null。              |
+| requestCode    | number                                   | 是    | 指示要传递给PermissionRequestResult的请求代码。 |
+| resultCallback | AsyncCallback<[PermissionRequestResult](#permissionrequestresult)> | 是    | 返回授权结果信息。                           |
 
 **示例:**
 
@@ -206,9 +206,9 @@ getApplicationInfo(callback: AsyncCallback\<ApplicationInfo>): void
 
 **参数:**
 
-| 名称     | 类型                            | 必填 | 描述                     |
-| -------- | ------------------------------- | ---- | ------------------------ |
-| callback | AsyncCallback\<ApplicationInfo> | 是   | 返回当前应用程序的信息。 |
+| 名称       | 类型                              | 必填   | 描述           |
+| -------- | ------------------------------- | ---- | ------------ |
+| callback | AsyncCallback\<ApplicationInfo> | 是    | 返回当前应用程序的信息。 |
 
 **示例:**
 
@@ -230,8 +230,8 @@ getApplicationInfo(): Promise\<ApplicationInfo>
 
 **返回值:**
 
-| 类型                      | 说明               |
-| ------------------------- | ------------------ |
+| 类型                        | 说明        |
+| ------------------------- | --------- |
 | Promise\<ApplicationInfo> | 当前应用程序的信息 |
 
 **示例:**
@@ -257,9 +257,9 @@ getBundleName(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                          |
-| -------- | ---------------------- | ---- | ----------------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回当前ability的捆绑包名称。 |
+| 名称       | 类型                     | 必填   | 描述                 |
+| -------- | ---------------------- | ---- | ------------------ |
+| callback | AsyncCallback\<string> | 是    | 返回当前ability的捆绑包名称。 |
 
 **示例:**
 
@@ -281,8 +281,8 @@ getBundleName(): Promise\<string>
 
 **返回值:**
 
-| 类型             | 说明                      |
-| ---------------- | ------------------------- |
+| 类型               | 说明               |
+| ---------------- | ---------------- |
 | Promise\<string> | 当前ability的捆绑包名称。 |
 
 **示例:**
@@ -296,6 +296,225 @@ context.getBundleName().then((data) => {
 });
 ```
 
+## Context.getDisplayOrientation<sup>7+</sup>
+
+getDisplayOrientation(callback: AsyncCallback\<bundle.DisplayOrientation>): void
+
+获取此能力的当前显示方向(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 描述               |
+| -------- | ------------------------------------------------------------ | ---- | ------------------ |
+| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | 是   | 表示屏幕显示方向。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.getDisplayOrientation()
+```
+
+## Context.getDisplayOrientation<sup>7+</sup>
+
+getDisplayOrientation(): Promise\<bundle.DisplayOrientation>;
+
+获取此能力的当前显示方向(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**返回值:**
+
+| 类型                                       | 说明        |
+| ---------------------------------------- | --------- |
+| Promise\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | 表示屏幕显示方向。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.getDisplayOrientation().then((data) => {
+    console.info("=======================>getDisplayOrientationCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setDisplayOrientation<sup>7+</sup>
+
+setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCallback\<void>): void
+
+设置当前能力的显示方向(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称          | 类型                                       | 必填   | 描述           |
+| ----------- | ---------------------------------------- | ---- | ------------ |
+| orientation | [bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation) | 是    | 指示当前能力的新方向。。 |
+| callback    | AsyncCallback\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | 是    | 表示屏幕显示方向。    |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+import bundle from '@ohos.bundle'
+var context = featureAbility.getContext();
+var orientation=bundle.DisplayOrientation.UNSPECIFIED
+context.setDisplayOrientation(orientation, (err) => {
+    console.log('---------- setDisplayOrientation fail, err: -----------', err);
+});
+```
+
+## Context.setDisplayOrientation<sup>7+</sup>
+
+setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\<void>;
+
+设置当前能力的显示方向(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**返回值:**
+
+| 类型                                       | 说明                                       |
+| ---------------------------------------- | ---------------------------------------- |
+| orientation                              | [bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation) |
+| Promise\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | 表示屏幕显示方向。                                |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+import bundle from '@ohos.bundle'
+var context = featureAbility.getContext();
+var orientation=bundle.DisplayOrientation.UNSPECIFIED
+context.setDisplayOrientation(orientation).then((data) => {
+    console.info("=======================>setDisplayOrientationCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setShowOnLockScreen<sup>7+</sup>
+
+setShowOnLockScreen(show: boolean, callback: AsyncCallback\<void>): void
+
+设置每当显示锁屏时是否在锁屏顶部显示此功能,使该功能保持激活状态(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称       | 类型                   | 必填   | 描述                                       |
+| -------- | -------------------- | ---- | ---------------------------------------- |
+| show     | boolean              | 是    | 指定是否在锁屏顶部显示此功能。值true表示在锁屏上显示,值false表示不显示。 |
+| callback | AsyncCallback\<void> | 是    | 返回回调结果。                                  |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var show=true
+context.setShowOnLockScreen(show, (err) => {
+       console.log('---------- setShowOnLockScreen fail, err: -----------', err);
+});
+```
+
+## Context.setShowOnLockScreen<sup>7+</sup>
+
+setShowOnLockScreen(show: boolean): Promise\<void>;
+
+设置每当显示锁屏时是否在锁屏顶部显示此功能,使该功能保持激活状态(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称   | 类型      | 必填   | 描述                                       |
+| ---- | ------- | ---- | ---------------------------------------- |
+| show | boolean | 是    | 指定是否在锁屏顶部显示此功能。值true表示在锁屏上显示,值false表示不显示。 |
+
+**返回值:**
+
+| 类型             | 说明              |
+| -------------- | --------------- |
+| Promise\<void> | 使用Promise形式返回结果 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var show=true
+context.setShowOnLockScreen(show).then((data) => {
+    console.info("=======================>setShowOnLockScreenCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.setWakeUpScreen<sup>7+</sup>
+
+setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\<void>): void
+
+设置恢复此功能时是否唤醒屏幕。(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称       | 类型                   | 必填   | 描述                                |
+| -------- | -------------------- | ---- | --------------------------------- |
+| wakeUp   | boolean              | 是    | 指定是否唤醒屏幕。值true表示唤醒它,值false表示不唤醒它。 |
+| callback | AsyncCallback\<void> | 是    | 返回回调结果。                           |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var wakeUp=true
+context.setWakeUpScreen(wakeUp, (err) => {
+       console.log('---------- setWakeUpScreen fail, err: -----------', err);
+});
+```
+
+## Context.setWakeUpScreen<sup>7+</sup>
+
+setWakeUpScreen(wakeUp: boolean): Promise\<void>; 
+
+设置恢复此功能时是否唤醒屏幕。(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+
+| 名称     | 类型      | 必填   | 描述                                |
+| ------ | ------- | ---- | --------------------------------- |
+| wakeUp | boolean | 是    | 指定是否唤醒屏幕。值true表示唤醒它,值false表示不唤醒它。 |
+
+**返回值:**
+
+| 类型             | 说明              |
+| -------------- | --------------- |
+| Promise\<void> | 使用Promise形式返回结果 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+var wakeUp=true
+context.setWakeUpScreen(wakeUp).then((data) => {
+    console.info("=======================>setWakeUpScreenCallback====================>");
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+
 
 
 ## Context.getProcessInfo<sup>7+</sup>
@@ -308,9 +527,9 @@ getProcessInfo(callback: AsyncCallback\<ProcessInfo>): void
 
 **参数:**
 
-| 名称     | 类型                        | 必填 | 描述                 |
-| -------- | --------------------------- | ---- | -------------------- |
-| callback | AsyncCallback\<ProcessInfo> | 是   | 返回当前进程的信息。 |
+| 名称       | 类型                          | 必填   | 描述         |
+| -------- | --------------------------- | ---- | ---------- |
+| callback | AsyncCallback\<ProcessInfo> | 是    | 返回当前进程的信息。 |
 
 **示例:**
 
@@ -332,8 +551,8 @@ getProcessInfo(): Promise\<ProcessInfo>
 
 **返回值:**
 
-| 类型                  | 说明           |
-| --------------------- | -------------- |
+| 类型                    | 说明      |
+| --------------------- | ------- |
 | Promise\<ProcessInfo> | 当前进程的信息 |
 
 **示例:**
@@ -361,9 +580,9 @@ getElementName(callback: AsyncCallback\<ElementName>): void
 
 **参数:**
 
-| 名称     | 类型                        | 必填 | 描述                                           |
-| -------- | --------------------------- | ---- | ---------------------------------------------- |
-| callback | AsyncCallback\<ElementName> | 是   | 返回当前ability的ohos.bundle.ElementName对象。 |
+| 名称       | 类型                          | 必填   | 描述                                     |
+| -------- | --------------------------- | ---- | -------------------------------------- |
+| callback | AsyncCallback\<ElementName> | 是    | 返回当前ability的ohos.bundle.ElementName对象。 |
 
 **示例:**
 
@@ -387,8 +606,8 @@ getElementName(): Promise\<ElementName>
 
 **返回值:**
 
-| 类型                  | 说明                                       |
-| --------------------- | ------------------------------------------ |
+| 类型                    | 说明                                   |
+| --------------------- | ------------------------------------ |
 | Promise\<ElementName> | 当前ability的ohos.bundle.ElementName对象。 |
 
 **示例:**
@@ -412,9 +631,9 @@ getProcessName(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                 |
-| -------- | ---------------------- | ---- | -------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回当前进程的名称。 |
+| 名称       | 类型                     | 必填   | 描述         |
+| -------- | ---------------------- | ---- | ---------- |
+| callback | AsyncCallback\<string> | 是    | 返回当前进程的名称。 |
 
 **示例:**
 
@@ -436,8 +655,8 @@ getProcessName(): Promise\<string>
 
 **返回值:**
 
-| 类型             | 说明                 |
-| ---------------- | -------------------- |
+| 类型               | 说明         |
+| ---------------- | ---------- |
 | Promise\<string> | 返回当前进程的名称。 |
 
 **示例:**
@@ -463,9 +682,9 @@ getCallingBundle(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回调用ability的包名称。 |
+| 名称       | 类型                     | 必填   | 描述               |
+| -------- | ---------------------- | ---- | ---------------- |
+| callback | AsyncCallback\<string> | 是    | 返回调用ability的包名称。 |
 
 **示例:**
 
@@ -487,8 +706,8 @@ getCallingBundle(): Promise\<string>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型               | 说明             |
+| ---------------- | -------------- |
 | Promise\<string> | 调用ability的包名称。 |
 
 **示例:**
@@ -512,9 +731,9 @@ getCacheDir(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回该应用程序的内部存储目录。|
+| 名称       | 类型                     | 必填   | 描述              |
+| -------- | ---------------------- | ---- | --------------- |
+| callback | AsyncCallback\<string> | 是    | 返回该应用程序的内部存储目录。 |
 
 **示例:**
 
@@ -540,8 +759,8 @@ getCacheDir(): Promise\<string>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型               | 说明              |
+| ---------------- | --------------- |
 | Promise\<string> | 获取该应用程序的内部存储目录。 |
 
 **示例:**
@@ -565,9 +784,9 @@ getFilesDir(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<string> | 是   | 返回内部存储器上此应用程序的文件目录。|
+| 名称       | 类型                     | 必填   | 描述                  |
+| -------- | ---------------------- | ---- | ------------------- |
+| callback | AsyncCallback\<string> | 是    | 返回内部存储器上此应用程序的文件目录。 |
 
 **示例:**
 
@@ -593,8 +812,8 @@ getFilesDir(): Promise\<string>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型               | 说明                  |
+| ---------------- | ------------------- |
 | Promise\<string> | 返回内部存储器上此应用程序的文件目录。 |
 
 **示例:**
@@ -620,9 +839,9 @@ getOrCreateDistributedDir(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<string> | 是   | 回调函数,可以在回调函数中处理接口返回值,返回Ability或应用的分布式文件路径。如果分布式文件路径不存在,系统将创建一个路径并返回创建的路径。|
+| 名称       | 类型                     | 必填   | 描述                                       |
+| -------- | ---------------------- | ---- | ---------------------------------------- |
+| callback | AsyncCallback\<string> | 是    | 回调函数,可以在回调函数中处理接口返回值,返回Ability或应用的分布式文件路径。如果分布式文件路径不存在,系统将创建一个路径并返回创建的路径。 |
 
 **示例:**
 
@@ -650,8 +869,8 @@ getOrCreateDistributedDir(): Promise\<string>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型               | 说明                                  |
+| ---------------- | ----------------------------------- |
 | Promise\<string> | Ability或应用的分布式文件路径。如果是第一次调用,则将创建目录。 |
 
 **示例:**
@@ -674,9 +893,9 @@ getAppType(callback: AsyncCallback\<string>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<string> | 是   | 回调函数,可以在回调函数中处理接口返回值,返回此应用程序的类型。|
+| 名称       | 类型                     | 必填   | 描述                               |
+| -------- | ---------------------- | ---- | -------------------------------- |
+| callback | AsyncCallback\<string> | 是    | 回调函数,可以在回调函数中处理接口返回值,返回此应用程序的类型。 |
 
 **示例:**
 
@@ -702,8 +921,8 @@ getAppType(): Promise\<string>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型               | 说明                 |
+| ---------------- | ------------------ |
 | Promise\<string> | Promise形式返回此应用的类型。 |
 
 **示例:**
@@ -726,9 +945,9 @@ getHapModuleInfo(callback: AsyncCallback\<HapModuleInfo>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<[HapModuleInfo](#hapmoduleinfo)> | 是   | 回调函数,可以在回调函数中处理接口返回值,返回应用的ModuleInfo对象。|
+| 名称       | 类型                                       | 必填   | 描述                                      |
+| -------- | ---------------------------------------- | ---- | --------------------------------------- |
+| callback | AsyncCallback\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | 是    | 回调函数,可以在回调函数中处理接口返回值,返回应用的ModuleInfo对象。 |
 
 **示例:**
 
@@ -754,9 +973,9 @@ getHapModuleInfo(): Promise\<HapModuleInfo>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
-| Promise\<[HapModuleInfo](#hapmoduleinfo)> | 返回应用的ModuleInfo对象。 |
+| 类型                                       | 说明                 |
+| ---------------------------------------- | ------------------ |
+| Promise\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | 返回应用的ModuleInfo对象。 |
 
 **示例:**
 
@@ -770,7 +989,7 @@ context.getHapModuleInfo().then((data) => {
 
 ## Context.getAppVersionInfo<sup>7+</sup>
 
-getAppVersionInfo(callback: AsyncCallback\<HapModuleInfo>): void
+getAppVersionInfo(callback: AsyncCallback\<AppVersionInfo>): void
 
 获取应用的版本信息(callback形式)。
 
@@ -778,9 +997,9 @@ getAppVersionInfo(callback: AsyncCallback\<HapModuleInfo>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<[AppVersionInfo](#appversioninfo)> | 是   | 回调函数,可以在回调函数中处理接口返回值,返回应用版本信息。|
+| 名称       | 类型                                       | 必填   | 描述                             |
+| -------- | ---------------------------------------- | ---- | ------------------------------ |
+| callback | AsyncCallback\<[AppVersionInfo](#appversioninfo)> | 是    | 回调函数,可以在回调函数中处理接口返回值,返回应用版本信息。 |
 
 **示例:**
 
@@ -806,8 +1025,8 @@ getAppVersionInfo(): Promise\<AppVersionInfo>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型                                       | 说明        |
+| ---------------------------------------- | --------- |
 | Promise\<[AppVersionInfo](#appversioninfo)> | 返回应用版本信息。 |
 
 **示例:**
@@ -830,9 +1049,9 @@ getAbilityInfo(callback: AsyncCallback\<AbilityInfo>): void
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 描述                      |
-| -------- | ---------------------- | ---- | ------------------------- |
-| callback | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | 是   | 回调函数,可以在回调函数中处理接口返回值,返回当前归属Ability详细信息。|
+| 名称       | 类型                                       | 必填   | 描述                                      |
+| -------- | ---------------------------------------- | ---- | --------------------------------------- |
+| callback | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | 是    | 回调函数,可以在回调函数中处理接口返回值,返回当前归属Ability详细信息。 |
 
 **示例:**
 
@@ -858,8 +1077,8 @@ getAbilityInfo(): Promise\<AbilityInfo>
 
 **返回值:**
 
-| 类型            | 说明                      |
-| --------------- | ------------------------- |
+| 类型                                       | 说明                 |
+| ---------------------------------------- | ------------------ |
 | Promise\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | 返回当前归属Ability详细信息。 |
 
 **示例:**
@@ -882,9 +1101,9 @@ getApplicationContext(): Context
 
 **返回值:**
 
-| 类型      | 说明   |
-| --------- |------ |
-|  Context | 返回应用上下文信息。 |
+| 类型      | 说明         |
+| ------- | ---------- |
+| Context | 返回应用上下文信息。 |
 
 **示例:**
 
@@ -893,52 +1112,136 @@ import featureAbility from '@ohos.ability.featureAbility'
 var context = featureAbility.getContext().getApplicationContext();
 ```
 
-## PermissionOptions<sup>7+</sup>
+## Context.isUpdatingConfigurations<sup>7+</sup>
+
+isUpdatingConfigurations(callback: AsyncCallback\<boolean>): void;
+
+检查此能力的配置是否正在更改(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
-| 名称 | 读写属性 | 类型   | 必填 | 描述   |
-| ---- | -------- | ------ | ---- | ------ |
-| pid  | 只读     | number | 否   | 进程id。 |
-| uid  | 只读     | number | 否   | 用户id。 |
+**参数:**
 
-## PermissionRequestResult<sup>7+</sup>
+| 名称       | 类型                      | 必填   | 描述                            |
+| -------- | ----------------------- | ---- | ----------------------------- |
+| callback | AsyncCallback\<boolean> | 是    | 如果该能力的配置正在更改,则为true,否则为false。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.isUpdatingConfigurations((err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. Data:' + JSON.stringify(data));
+});
+```
+
+## Context.isUpdatingConfigurations<sup>7+</sup>
+
+isUpdatingConfigurations(): Promise\<boolean>;
+
+检查此能力的配置是否正在更改(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**返回值:**
+
+| 类型                | 说明                            |
+| ----------------- | ----------------------------- |
+| Promise\<boolean> | 如果该能力的配置正在更改,则为true,否则为false。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.isUpdatingConfigurations().then((data) => {
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+## Context.printDrawnCompleted<sup>7+</sup>
+
+printDrawnCompleted(callback: AsyncCallback\<void>): void;
+
+通知系统绘制此页面功能所需的时间(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
-| 名称        | 读写属性 | 类型           | 必填 | 描述               |
-| ----------- | -------- | -------------- | ---- | ------------------ |
-| requestCode | 只读     | number         | 是   | 用户传入的请求代码。 |
-| permissions | 只读     | Array\<string> | 是   | 用户传入的权限。     |
-| authResults | 只读     | Array\<number> | 是   | 请求权限的结果。    |
-
-## HapModuleInfo<sup>7+</sup>
-
-Hap模块信息
-
-| 名称               | 类型 | 可读 | 可写 | 说明 |
-| ------ | ------ | ------ | ------ | ------ |
-| name             | string        | 是   | 否   | 模块名称。           |
-| description      | string        | 是   | 否   | 模块描述信息。       |
-| descriptionId    | number        | 是   | 否   | 描述信息ID。         |
-| icon             | string        | 是   | 否   | 模块图标。           |
-| label            | string        | 是   | 否   | 模块标签。           |
-| labelId          | number        | 是   | 否   | 模块标签ID。         |
-| iconId           | number        | 是   | 否   | 模块图标ID。         |
-| backgroundImg    | string        | 是   | 否   | 模块背景图片。       |
-| supportedModes   | number        | 是   | 否   | 模块支持的模式。     |
-| reqCapabilities  | Array\<string> | 是   | 否   | 模块运行需要的能力。 |
-| deviceTypes      | Array\<string> | 是   | 否   | 支持运行的设备类型。 |
-| abilityInfo      | Array\<AbilityInfo> | 是   | 否   | Ability信息。  |
-| moduleName       | string        | 是   | 否   | 模块名。             |
-| mainAbilityName  | string        | 是   | 否   | 入口Ability名称。    |
-| installationFree | boolean       | 是   | 否   | 是否支持免安装。     |
-| mainElementName | string | 是 | 否 | 入口ability信息。 |
+**参数:**
+
+| 名称       | 类型                   | 必填   | 描述          |
+| -------- | -------------------- | ---- | ----------- |
+| callback | AsyncCallback\<void> | 是    | 表示被指定的回调方法。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.printDrawnCompleted((err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + JSON.stringify(err));
+        return;
+    }
+    console.info('Operation successful. Data:' + JSON.stringify(data));
+});
+```
+
+## Context.printDrawnCompleted<sup>7+</sup>
+
+printDrawnCompleted(): Promise\<void>;
+
+通知系统绘制此页面功能所需的时间(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**返回值:**
+
+| 类型             | 说明              |
+| -------------- | --------------- |
+| Promise\<void> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility'
+var context = featureAbility.getContext();
+context.printDrawnCompleted().then((data) => {
+    console.info("====>data====>" + JSON.stringify(data));
+});
+```
+
+
+## PermissionOptions<sup>7+</sup>
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+| 名称   | 读写属性 | 类型     | 必填   | 描述    |
+| ---- | ---- | ------ | ---- | ----- |
+| pid  | 只读   | number | 否    | 进程id。 |
+| uid  | 只读   | number | 否    | 用户id。 |
+
+## PermissionRequestResult<sup>7+</sup>
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+| 名称          | 读写属性 | 类型             | 必填   | 描述         |
+| ----------- | ---- | -------------- | ---- | ---------- |
+| requestCode | 只读   | number         | 是    | 用户传入的请求代码。 |
+| permissions | 只读   | Array\<string> | 是    | 用户传入的权限。   |
+| authResults | 只读   | Array\<number> | 是    | 请求权限的结果。   |
 
 ## AppVersionInfo<sup>7+</sup>
 
-| 名称             | 类型 | 可读    | 可写   | 说明 |
-| ------          | ------ | ------| ------ | ------    |
-| appName         | string | 是    | 否     | 模块名称。      |
-| versionCode     | number | 是    | 否     | 模块描述信息。   |
-| versionName     | string | 是    | 否     | 描述信息ID。     |
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+| 名称          | 类型     | 可读   | 可写   | 说明      |
+| ----------- | ------ | ---- | ---- | ------- |
+| appName     | string | 是    | 否    | 模块名称。   |
+| versionCode | number | 是    | 否    | 模块描述信息。 |
+| versionName | string | 是    | 否    | 描述信息ID。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
index 28d16f24adfd7b394fb1c87c064cf0df0827e76f..cb4b8bd411517a037b4589f67b1d0311ea4a8dfa 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
@@ -4,13 +4,15 @@
 
 开发者在开发应用时,通过复写该模块的接口,在延迟任务触发的时候,系统会通过接口回调应用,开发者在回调接口里面可以处理自己的任务逻辑。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>  **说明:**
+>
+>  - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>  - 本模块接口仅可在Stage模型下使用。
 
 
 ## 导入模块
 
-```
+```ts
 import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'
 ```
 
@@ -24,13 +26,13 @@ onWorkStart(work: workScheduler.WorkInfo): void
 
 **参数**:
 
-| 参数名  | 类型                    | 必填   | 说明             |
-| ---- | --------------------- | ---- | -------------- |
+| 参数名  | 类型                                       | 必填   | 说明             |
+| ---- | ---------------------------------------- | ---- | -------------- |
 | work | [workScheduler.WorkInfo](js-apis-workScheduler.md#workinfo) | 是    | 指示要添加到执行队列的工作。 |
 
 **示例:** 
 
-  ```
+  ```ts
     export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
         onWorkStart(workInfo) {
             console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo));
@@ -48,14 +50,14 @@ onWorkStop(work: workScheduler.WorkInfo): void
 
 **参数**:
 
-| 参数名  | 类型                    | 必填   | 说明             |
-| ---- | --------------------- | ---- | -------------- |
+| 参数名  | 类型                                       | 必填   | 说明             |
+| ---- | ---------------------------------------- | ---- | -------------- |
 | work | [workScheduler.WorkInfo](js-apis-workScheduler.md#workinfo) | 是    | 指示要添加到执行队列的工作。 |
 
 
 **示例:** 
 
-  ```
+  ```ts
     export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
         onWorkStop(workInfo) {
             console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo));
diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
index 8b00de96a429eff67462bc5d2cdaf7bb5d447ecc..f834060bd898647d06fc810281923bde08a42fd7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
@@ -36,7 +36,7 @@ class MainAbility extends Ability {
 
 startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
 
-启动Ability。
+启动Ability(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -65,7 +65,7 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
 
 startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&gt;): void
 
-启动Ability。
+启动Ability(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -98,7 +98,7 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&
 
 startAbility(want: Want, options?: StartOptions): Promise&lt;void&gt;;
 
-启动Ability。通过Promise返回结果。
+启动Ability(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -139,7 +139,7 @@ startAbility(want: Want, options?: StartOptions): Promise&lt;void&gt;;
 
 startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;): void;
 
-启动Ability并在结束的时候返回执行结果。
+启动Ability并在结束的时候返回执行结果(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -167,7 +167,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;):
 
 startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback&lt;AbilityResult&gt;): void;
 
-启动Ability并在结束的时候返回执行结果。
+启动Ability并在结束的时候返回执行结果(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -200,7 +200,7 @@ startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback
 
 startAbilityForResult(want: Want, options?: StartOptions): Promise&lt;AbilityResult&gt;;
 
-启动Ability并在结束的时候返回执行结果。
+启动Ability并在结束的时候返回执行结果(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -248,7 +248,7 @@ startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncC
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | callback | AsyncCallback\<AbilityResult\> | 是 | 启动Ability的回调函数,返回Ability结果。 |
 
 **示例:**
@@ -284,7 +284,7 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | [StartOptions](js-apis-application-StartOptions.md) | 是 | 启动Ability所携带的参数。 |
 | callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
 
@@ -306,11 +306,11 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp
   ```
 
 
-  ## AbilityContext.startAbilityForResultWithAccount
+## AbilityContext.startAbilityForResultWithAccount
 
 startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<AbilityResult\>;
 
-启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
+启动一个Ability并在该Ability帐号销毁时返回执行结果(promise形式)。
 
 **需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
 
@@ -323,7 +323,7 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | [StartOptions](js-apis-application-StartOptions.md) | 否 | 启动Ability所携带的参数。 |
 
 **返回值:**
@@ -352,13 +352,277 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO
         console.log('---------- startAbilityForResultWithAccount fail, err:  -----------', err);
     })
   ```
+## AbilityContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+启动一个新的ServiceExtensionAbility(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want, (err) => {
+    console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## AbilityContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want): Promise\<void>;
+
+启动一个新的ServiceExtensionAbility(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+## AbilityContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+启动一个新的ServiceExtensionAbility(callback形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## AbilityContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+启动一个新的ServiceExtensionAbility(Promise形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
+## AbilityContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+停止同一应用程序内的服务(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want, (err) => {
+    console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## AbilityContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want): Promise\<void>;
+
+停止同一应用程序内的服务(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+
+## AbilityContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+使用帐户停止同一应用程序内的服务(callback形式)。
 
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## AbilityContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+使用帐户停止同一应用程序内的服务(Promise形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
 
 ## AbilityContext.terminateSelf
 
 terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
 
-停止Ability自身。
+停止Ability自身(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -381,7 +645,7 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
 
 terminateSelf(): Promise&lt;void&gt;;
 
-停止Ability自身。通过Promise返回结果。
+停止Ability自身(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -406,7 +670,7 @@ terminateSelf(): Promise&lt;void&gt;;
 
 terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;void&gt;): void;
 
-停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息。
+停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -435,7 +699,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;voi
 
 terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;;
 
-停止Ability,并返回给调用startAbilityForResult 接口相关信息。
+停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -468,7 +732,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;;
 
 connectAbility(want: Want, options: ConnectOptions): number;
 
-使用AbilityInfo.AbilityType.SERVICE模板将当前能力连接到一个能力。
+使用AbilityInfo.AbilityType.SERVICE模板将当前Ability连接到一个Ability。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -509,7 +773,7 @@ connectAbility(want: Want, options: ConnectOptions): number;
 
 connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
 
-使用AbilityInfo.AbilityType.SERVICE模板和account将当前能力连接到一个能力。
+使用AbilityInfo.AbilityType.SERVICE模板和account将当前Ability连接到一个Ability。
 
 **需要权限:** ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
 
@@ -522,7 +786,7 @@ connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | [ConnectOptions](js-apis-featureAbility.md#connectoptions) | 否 | 远端对象实例。 |
 
 **返回值:**
@@ -553,7 +817,7 @@ connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions
 
 disconnectAbility(connection: number): Promise\<void>;
 
-已成功连接接口。
+断开连接(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -563,7 +827,7 @@ disconnectAbility(connection: number): Promise\<void>;
 
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| connection | number | 是 | 连接的能力的数字代码。 |
+| connection | number | 是 | 连接的Ability的数字代码。 |
 
 **返回值:**
 
@@ -586,7 +850,7 @@ disconnectAbility(connection: number): Promise\<void>;
 
 disconnectAbility(connection: number, callback:AsyncCallback\<void>): void;
 
-已成功连接接口。
+断开连接(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -596,7 +860,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\<void>): void;
 
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| connection | number | 是 | 连接的能力的数字代码。 |
+| connection | number | 是 | 连接的Ability的数字代码。 |
 | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法。 |
 
 **示例:**
@@ -666,7 +930,7 @@ startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
 
 **示例:**
@@ -701,7 +965,7 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。|
 | options | [StartOptions](js-apis-application-StartOptions.md) | 否 | 启动Ability所携带的参数。 |
 | callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
 
@@ -740,7 +1004,7 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions):
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | [StartOptions](js-apis-application-StartOptions.md) | 否 | 启动Ability所携带的参数。 |
 
 **示例:**
@@ -768,7 +1032,7 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions):
 
 requestPermissionsFromUser(permissions: Array&lt;string&gt;, requestCallback: AsyncCallback&lt;PermissionRequestResult&gt;) : void;
 
-拉起弹窗请求用户授权。
+拉起弹窗请求用户授权(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -794,7 +1058,7 @@ requestPermissionsFromUser(permissions: Array&lt;string&gt;, requestCallback: As
 
 requestPermissionsFromUser(permissions: Array&lt;string&gt;) : Promise&lt;PermissionRequestResult&gt;;
 
-拉起弹窗请求用户授权。通过Promise返回结果。
+拉起弹窗请求用户授权(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -827,7 +1091,7 @@ requestPermissionsFromUser(permissions: Array&lt;string&gt;) : Promise&lt;Permis
 
 setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void;
 
-设置ability在任务中显示的名称。
+设置ability在任务中显示的名称(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -851,7 +1115,7 @@ setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void;
 
 setMissionLabel(label: string): Promise&lt;void&gt;
 
-设置ability在任务中显示的名称。
+设置ability在任务中显示的名称(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -880,7 +1144,7 @@ setMissionLabel(label: string): Promise&lt;void&gt;
 
 setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\<void>): void;
 
-设置当前ability的任务标签。
+设置当前ability在任务中显示的图标(callback形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -890,7 +1154,7 @@ setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\<void>): void;
 
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 |
+| icon | image.PixelMap | 是 | 在最近的任务中显示的ability图标。 |
 | callback | AsyncCallback\<void> | 是 | 指定的回调函数的结果。 |
 
 **示例:**
@@ -922,7 +1186,7 @@ setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\<void>): void;
 
 setMissionIcon(icon: image.PixelMap): Promise\<void>;
 
-设置当前ability的任务标签。
+设置当前ability在任务中显示的图标(promise形式)。
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
@@ -932,7 +1196,7 @@ setMissionIcon(icon: image.PixelMap): Promise\<void>;
 
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 |
+| icon | image.PixelMap | 是 | 在最近的任务中显示的ability图标。 |
 
 **返回值:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md
index 12d235ff4d1f2fce3a3ebc99ddc8ea270a57867b..0eb99bb244a381fb2391f073bf9befd0421a0d92 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md
@@ -1,6 +1,6 @@
 # wantConstant
 
-wantConstant模块提供want中action和entity的权限列表的能力,包括系统公共事件宏,系统公共事件名称等。
+wantConstant模块提供want中操作want常数和解释Flags说明的能力。
 
 > **说明:**
 > 
@@ -20,32 +20,34 @@ want操作的常数。
 
 | 名称      | 值          | 描述     |
 | ------------ | ------------------ | ---------------------- |
-| ACTION_HOME                                 | ohos.want.action.home                    | 指示返回原点的操作。                                          |
-| ACTION_DIAL                                 | ohos.want.action.dial                    | 指示启动显示小键盘的页面功能的操作                              |
-| ACTION_SEARCH                               | ohos.want.action.search                  | 指示启动页面搜索功能的操作。                                   |
-| ACTION_WIRELESS_SETTINGS                    | ohos.settings.wireless                   | 指示启动提供无线网络设置的页面功能的操作,例如,Wi-Fi选项。      |
-| ACTION_MANAGE_APPLICATIONS_SETTINGS         | ohos.settings.manage.applications        | 指示启动管理已安装应用程序的页面功能的操作。                    |
-| ACTION_APPLICATION_DETAILS_SETTINGS         | ohos.settings.application.details        | 指示启动显示指定应用程序详细信息的页面功能的操作。               |
-| ACTION_SET_ALARM                            | ohos.want.action.setAlarm                | 指示启动页面功能以设置闹钟的操做作。                            |
-| ACTION_SHOW_ALARMS                          | ohos.want.action.showAlarms              | 指示启动显示所有警报的页面功能的操作时钟。                      |
-| ACTION_SNOOZE_ALARM                         | ohos.want.action.snoozeAlarm             | 指示启动用于使闹钟睡眠的页面功能的操作。                        |
-| ACTION_DISMISS_ALARM                        | ohos.want.action.dismissAlarm            | 指示启动删除闹钟的页面功能的操作。                              |
-| ACTION_DISMISS_TIMER                        | ohos.want.action.dismissTimer            | 指示启动页面功能以关闭计时器的操作。                            |
-|  ACTION_SEND_SMS                            | ohos.want.action.sendSms                 | 指示启动发送sms的页面功能的操作。                               |
-| ACTION_CHOOSE                               | ohos.want.action.choose                  | 指示启动页面功能以打开联系人或图片的操作。                       |
-| ACTION_IMAGE_CAPTURE<sup>8+</sup>           | ohos.want.action.imageCapture            | 指示启动页面拍照功能的操作。                                    |
-| ACTION_VIDEO_CAPTURE<sup>8+</sup>            | ohos.want.action.videoCapture            | 指示启动页面功能以拍摄视频的操作。                               |
-| ACTION_SELECT                               | ohos.want.action.select                  | 指示显示应用程序选择对话框的操作。                               |
-| ACTION_SEND_DATA                            | ohos.want.action.sendData                | 指示发送单个数据记录的操作。       |
+| ACTION_HOME                                 | ohos.want.action.home                    | 指示返回原点的操作。                                        |
+| ACTION_DIAL                                 | ohos.want.action.dial                    | 指示启动显示小键盘的页面功能的操作                           |
+| ACTION_SEARCH                               | ohos.want.action.search                  | 指示启动页面搜索功能的操作。                                 |
+| ACTION_WIRELESS_SETTINGS                    | ohos.settings.wireless                   | 指示启动提供无线网络设置的页面功能的操作,例如,Wi-Fi选项。    |
+| ACTION_MANAGE_APPLICATIONS_SETTINGS         | ohos.settings.manage.applications        | 指示启动管理已安装应用程序的页面功能的操作。                  |
+| ACTION_APPLICATION_DETAILS_SETTINGS         | ohos.settings.application.details        | 指示启动显示指定应用程序详细信息的页面功能的操作。             |
+| ACTION_SET_ALARM                            | ohos.want.action.setAlarm                | 指示启动页面功能以设置闹钟的操做作。                          |
+| ACTION_SHOW_ALARMS                          | ohos.want.action.showAlarms              | 指示启动显示所有警报的页面功能的操作时钟。                     |
+| ACTION_SNOOZE_ALARM                         | ohos.want.action.snoozeAlarm             | 指示启动用于使闹钟睡眠的页面功能的操作。                       |
+| ACTION_DISMISS_ALARM                        | ohos.want.action.dismissAlarm            | 指示启动删除闹钟的页面功能的操作。                             |
+| ACTION_DISMISS_TIMER                        | ohos.want.action.dismissTimer            | 指示启动页面功能以关闭计时器的操作。                           |
+|  ACTION_SEND_SMS                            | ohos.want.action.sendSms                 | 指示启动发送sms的页面功能的操作。                              |
+| ACTION_CHOOSE                               | ohos.want.action.choose                  | 指示启动页面功能以打开联系人或图片的操作。                      |
+| ACTION_IMAGE_CAPTURE<sup>8+</sup>           | ohos.want.action.imageCapture            | 指示启动页面拍照功能的操作。                                   |
+| ACTION_VIDEO_CAPTURE<sup>8+</sup>           | ohos.want.action.videoCapture            | 指示启动页面功能以拍摄视频的操作。                             |
+| ACTION_SELECT                               | ohos.want.action.select                  | 指示显示应用程序选择对话框的操作。                             |
+| ACTION_SEND_DATA                            | ohos.want.action.sendData                | 指示发送单个数据记录的操作。                                  |
 | ACTION_SEND_MULTIPLE_DATA                   | ohos.want.action.sendMultipleData        | 指示发送多个数据记录的操作。                                  |
-| ACTION_SCAN_MEDIA_FILE                      | ohos.want.action.scanMediaFile           | 指示请求媒体扫描仪扫描文件并将文件添加到媒体库的操作。              |
-| ACTION_VIEW_DATA                            | ohos.want.action.viewData                | 指示查看数据的操作。                                             |
-|  ACTION_EDIT_DATA                           | ohos.want.action.editData                | 指示编辑数据的操作。                                             |
-|  INTENT_PARAMS_INTENT                       | ability.want.params.INTENT               | 指示将使用连接选取显示的选项的操作。                            |
-|  INTENT_PARAMS_TITLE                        | ability.want.params.TITLE                | 指示与连接选取显示的选项一起使用时的字符序列对话框标题。     |
+| ACTION_SCAN_MEDIA_FILE                      | ohos.want.action.scanMediaFile           | 指示请求媒体扫描仪扫描文件并将文件添加到媒体库的操作。          |
+| ACTION_VIEW_DATA                            | ohos.want.action.viewData                | 指示查看数据的操作。                                          |
+|  ACTION_EDIT_DATA                           | ohos.want.action.editData                | 指示编辑数据的操作。                                           |
+|  INTENT_PARAMS_INTENT                       | ability.want.params.INTENT               | 指示用行为选择器来展示选择的操作。                             |
+|  INTENT_PARAMS_TITLE                        | ability.want.params.TITLE                | 指示与行为选择器一起使用时的字符序列对话框标题。                |
 |  ACTION_FILE_SELECT<sup>7+</sup>            | ohos.action.fileSelect                   | 指示选择文件的操作。                                          |
-|  PARAMS_STREAM<sup>7+</sup>                 | ability.params.stream                    | 指示与连接发送数据一起使用时,包含与意图相关联的数据流的URI。     |
+|  PARAMS_STREAM<sup>7+</sup>                 | ability.params.stream                    | 指示发送数据时与目标关联的数据流的URI                          |
 |  ACTION_APP_ACCOUNT_OAUTH <sup>8+</sup>     | ohos.account.appAccount.action.oauth     | 指示提供oauth服务的操作。                                     |
+|  ACTION_MARKER_DOWNLOAD <sup>9+</sup>    | ohos.want.action.marketDownload     | 表示从应用程序市场下载应用程序的的操作。<br>**系统API**:该接口为系统接口,三方应用不支持调用。  |
+
 
 ## wantConstant.Entity
 
@@ -55,11 +57,11 @@ want实体的常数。
 
 | 名称      | 值          | 描述     |
 | ------------ | ------------------ | ---------------------- |
-| ENTITY_DEFAULT                             | entity.system.default                    | 指示默认实体,如果未指定该实体,则使用该实体。         |
-| ENTITY_HOME                                | entity.system.homel                      | 指示主屏幕实体。                                    |
-| ENTITY_VOICE                               | entity.system.voice                      | 表示语音交互实体。                                   |
-| ENTITY_BROWSABLE                           | entity.system.browsable                  | 指示浏览器类别。                                     |
-| ENTITY_VIDEO                               | entity.system.video                      | 指示视频类别。                                       |
+| ENTITY_DEFAULT                             | entity.system.default                    | 指示默认实体,如果未指定该实体,则使用该实体。        |
+| ENTITY_HOME                                | entity.system.home                       | 指示主屏幕实体。                                    |
+| ENTITY_VOICE                               | entity.system.voice                      | 表示语音交互实体。                                  |
+| ENTITY_BROWSABLE                           | entity.system.browsable                  | 指示浏览器类别。                                    |
+| ENTITY_VIDEO                               | entity.system.video                      | 指示视频类别。                                      |
 
 
 ## wantConstant.Flags
@@ -76,11 +78,11 @@ Flags说明。
 | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备。                   |
 | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否属于OHOS。                                         |
 | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力。                                          |
-| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                                     |
-| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 按照前缀匹配的方式验证URI权限。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                                |
+| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。  |
+| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 按照前缀匹配的方式验证URI权限。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。 |
 | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动。                               |
 | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。         |
-| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                                             |
+| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。      |
 | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能。                              |
 | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,使用后台模式安装该功能。                              |
 | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)** 中**startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
index af042fbd6f43103babce2fea8e620354d3fb547a..122835b12e2fece6d2d17e30fba9b8d06cc93ef8 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
@@ -104,7 +104,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
 
 授予应用user grant权限,使用Promise方式异步返回结果。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS
 
@@ -142,7 +142,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
 
 授予应用user grant权限,使用callback回调异步返回结果。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS
 
@@ -178,7 +178,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
 
 撤销应用user grant权限,使用Promise方式异步返回结果。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
 
@@ -216,7 +216,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
 
 撤销应用user grant权限,使用callback回调异步返回结果。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
 
@@ -252,7 +252,7 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&g
 
 获取指定应用的指定权限的flag,使用Promise方式异步返回结果。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS or ohos.permission.GRANT_SENSITIVE_PERMISSIONS or ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md
index 33b9ff847ac76c6f00d67e2734547894aa287344..5f9195932a5a290805d973bc0780bd30947c057b 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md
@@ -25,9 +25,9 @@ abilitymanager.getAbilityRunningInfos((err,data) => {
 
 | 名称 | 参数类型 | 可读 | 可写 | 说明 |
 | -------- | -------- | -------- | -------- | -------- |
-| ability | ElementName | 是 | 否 | Ability匹配信息  | 
-| pid | number | 是 | 否 | 进程ID。 | 
-| uid | number | 是 | 否 | 用户ID。  | 
-| processName | string | 是 | 否 | 进程名称。  | 
-| startTime | number | 是 | 否 | Ability启动时间。  | 
-| abilityState | [abilityManager.AbilityState](js-apis-abilityManager.md#abilityState) | 是 | 否 | Ability状态。  | 
\ No newline at end of file
+| ability | ElementName | 是 | 否 | Ability匹配信息  |
+| pid | number | 是 | 否 | 进程ID。 |
+| uid | number | 是 | 否 | 用户ID。  |
+| processName | string | 是 | 否 | 进程名称。  |
+| startTime | number | 是 | 否 | Ability启动时间。  |
+| abilityState | [abilityManager.AbilityState](js-apis-application-abilityManager.md#abilitystate) | 是 | 否 | Ability状态。  |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-accessibility-extension-context.md b/zh-cn/application-dev/reference/apis/js-apis-accessibility-extension-context.md
index a9c61d030a405cc3c6d4dd1eb574f733a4936303..affa083e8924ad08aaf674be55f9acbaf455b1fe 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-accessibility-extension-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-accessibility-extension-context.md
@@ -12,7 +12,7 @@ AccessibilityExtensionContext模块提供扩展的上下文的能力,包括允
 ## 导入模块
 
 ```js
-import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExtensionAbility'
+import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility'
 ```
 
 ## FocusDirection
@@ -21,13 +21,13 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
-| up | 表示向上查询。 |
-| down | 表示向上查询。 |
-| left | 表示向左查询。 |
-| right | 表示向右查询。 |
-| forward | 表示向前查询。 |
+| 名称       | 描述      |
+| -------- | ------- |
+| up       | 表示向上查询。 |
+| down     | 表示向上查询。 |
+| left     | 表示向左查询。 |
+| right    | 表示向右查询。 |
+| forward  | 表示向前查询。 |
 | backward | 表示向后查询。 |
 
 ## FocusType
@@ -36,10 +36,10 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
+| 名称            | 描述          |
+| ------------- | ----------- |
 | accessibility | 表示无障碍的焦点类型。 |
-| normal | 表示普通的焦点类型。 |
+| normal        | 表示普通的焦点类型。  |
 
 ## Rect
 
@@ -49,12 +49,12 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 ### 参数
 
-| 名称   | 参数类型 | 可读 | 可写 | 说明               |
-| ------ | -------- | ---- | ---- | ------------------ |
-| left   | number   | 是   | 否   | 矩形区域的左边界。 |
-| top    | number   | 是   | 否   | 矩形区域的上边界。 |
-| width  | number   | 是   | 否   | 矩形区域的宽度。   |
-| height | number   | 是   | 否   | 矩形区域的高度。   |
+| 名称     | 参数类型   | 可读   | 可写   | 说明        |
+| ------ | ------ | ---- | ---- | --------- |
+| left   | number | 是    | 否    | 矩形区域的左边界。 |
+| top    | number | 是    | 否    | 矩形区域的上边界。 |
+| width  | number | 是    | 否    | 矩形区域的宽度。  |
+| height | number | 是    | 否    | 矩形区域的高度。  |
 
 ## WindowType
 
@@ -62,10 +62,10 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
+| 名称          | 描述        |
+| ----------- | --------- |
 | application | 表示应用窗口类型。 |
-| system | 表示系统窗口类型。 |
+| system      | 表示系统窗口类型。 |
 
 ## AccessibilityExtensionContext.setEventTypeFilter
 
@@ -77,14 +77,14 @@ setEventTypeFilter(type: Array<accessibility.EventType>): Promise\<boolean>;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| type | Array&lt;[EventType](js-apis-accessibility.md#EventType)&gt; | 是 | 关注的事件类型。 |
+| 参数名  | 参数类型                                     | 必填   | 说明       |
+| ---- | ---------------------------------------- | ---- | -------- |
+| type | Array&lt;[EventType](js-apis-accessibility.md#EventType)&gt; | 是    | 关注的事件类型。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                     | 说明                    |
+| ---------------------- | --------------------- |
 | Promise&lt;boolean&gt; | Promise对象。返回当前设置是否成功。 |
 
 **示例:**
@@ -103,14 +103,14 @@ setTargetBundleName(targetNames: Array\<string>): Promise\<boolean>;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| targetNames | Array&lt;string&gt; | 是 | 关注的目标包名。 |
+| 参数名         | 参数类型                | 必填   | 说明       |
+| ----------- | ------------------- | ---- | -------- |
+| targetNames | Array&lt;string&gt; | 是    | 关注的目标包名。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                     | 说明                    |
+| ---------------------- | --------------------- |
 | Promise&lt;boolean&gt; | Promise对象。返回当前设置是否成功。 |
 
 **示例:**
@@ -129,14 +129,14 @@ getFocusElement(isAccessibilityFocus?: boolean): Promise\<AccessibilityElement>;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| isAccessibilityFocus | boolean | 否 | 获取的是否是无障碍焦点元素,默认为否。 |
+| 参数名                  | 参数类型    | 必填   | 说明                  |
+| -------------------- | ------- | ---- | ------------------- |
+| isAccessibilityFocus | boolean | 否    | 获取的是否是无障碍焦点元素,默认为否。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                                  | 说明                     |
+| ----------------------------------- | ---------------------- |
 | Promise&lt;AccessibilityElement&gt; | Promise对象。返回当前对应的焦点元素。 |
 
 **示例:**
@@ -157,14 +157,14 @@ getWindowRootElement(windowId?: number): Promise\<AccessibilityElement>;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| windowId | number | 否 | 指定获取根节点元素的窗口,未指定则从当前活跃窗口获取。 |
+| 参数名      | 参数类型   | 必填   | 说明                          |
+| -------- | ------ | ---- | --------------------------- |
+| windowId | number | 否    | 指定获取根节点元素的窗口,未指定则从当前活跃窗口获取。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                                  | 说明                      |
+| ----------------------------------- | ----------------------- |
 | Promise&lt;AccessibilityElement&gt; | Promise对象。返回当前对应的根节点元素。 |
 
 **示例:**
@@ -185,14 +185,14 @@ getWindows(displayId?: number): Promise<Array\<AccessibilityElement>>;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| displayId | number | 否 | 指定获取窗口信息的屏幕,未指定则从默认主屏幕获取。 |
+| 参数名       | 参数类型   | 必填   | 说明                        |
+| --------- | ------ | ---- | ------------------------- |
+| displayId | number | 否    | 指定获取窗口信息的屏幕,未指定则从默认主屏幕获取。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                                       | 说明                       |
+| ---------------------------------------- | ------------------------ |
 | Promise&lt;Array&lt;AccessibilityElement&gt;&gt; | Promise对象。返回当前对应的窗口列表信息。 |
 
 **示例:**
@@ -213,15 +213,15 @@ gestureInject(gesturePath: GesturePath, listener: Callback\<boolean>): Promise\<
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| gesturePath | [GesturePath](js-apis-application-AccessibilityExtensionAbility.md#GesturePath) | 是 | 表示手势的路径信息。 |
-| listener | Callback&lt;boolean&gt; | 是 | 表示注入手势执行结果的回调。 |
+| 参数名         | 参数类型                                     | 必填   | 说明             |
+| ----------- | ---------------------------------------- | ---- | -------------- |
+| gesturePath | [GesturePath](js-apis-application-AccessibilityExtensionAbility.md#GesturePath) | 是    | 表示手势的路径信息。     |
+| listener    | Callback&lt;boolean&gt;                  | 是    | 表示注入手势执行结果的回调。 |
 
 **返回值:**
 
-| 类型                             | 说明                                    |
-| -------------------------------- | --------------------------------------- |
+| 类型                     | 说明                     |
+| ---------------------- | ---------------------- |
 | Promise&lt;boolean&gt; | Promise对象。返回注入手势的调用结果。 |
 
 **示例:**
diff --git a/zh-cn/application-dev/reference/apis/js-apis-accessibility.md b/zh-cn/application-dev/reference/apis/js-apis-accessibility.md
index 401e5ac41004c10d47b0a4c81916b1a4294ef40e..0d8938368963b9292500935644d9da40895e6260 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-accessibility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-accessibility.md
@@ -15,7 +15,7 @@ import accessibility from '@ohos.accessibility';
 
 辅助应用状态类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -27,7 +27,7 @@ import accessibility from '@ohos.accessibility';
 
 无障碍辅助应用类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -42,7 +42,7 @@ import accessibility from '@ohos.accessibility';
 
 辅助应用信息。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 ### 属性
 
@@ -61,7 +61,7 @@ import accessibility from '@ohos.accessibility';
 
 应用所支持的目标动作。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -86,7 +86,7 @@ import accessibility from '@ohos.accessibility';
 
 辅助应用能力类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -100,7 +100,7 @@ import accessibility from '@ohos.accessibility';
 
 字幕字体边缘类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -114,7 +114,7 @@ import accessibility from '@ohos.accessibility';
 
 字幕字体。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -131,7 +131,7 @@ import accessibility from '@ohos.accessibility';
 
 字幕风格。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing
 
 | 名称 | 参数类型 | 可读 | 可写 | 说明 |
 | -------- | -------- | -------- | -------- | -------- |
@@ -146,6 +146,8 @@ import accessibility from '@ohos.accessibility';
 
 字幕配置。
 
+**系统能力**:以下各项对应的系统能力均为SystemCapability.BarrierFree.Accessibility.Hearing
+
 ### 属性
 
 | 名称 | 参数类型 | 可读 | 可写 | 说明 |
@@ -153,26 +155,22 @@ import accessibility from '@ohos.accessibility';
 | enabled | boolean | 是 | 否 | 表示是否启用字幕配置。 |
 | style | [CaptionsStyle](#captionsstyle8) | 是 | 否 | 表示字幕风格。 |
 
-### 方法
-
 下列 API 示例中都需要使用 [accessibility.getCaptionsManager()](#accessibilitygetcaptionsmanager8) 获取 captionsManager 实例,再通过此实例调用对应的方法。
 
-#### on('enableChange')
+### on('enableChange')
 
 on(type: 'enableChange', callback: Callback&lt;boolean&gt;): void;
 
 注册字幕配置启用的监听函数。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing
-
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 监听字幕配置启用状态。 |
   | callback | Callback&lt;boolean&gt; | 是 | 回调函数,在启用状态变化时将状态通过此函数进行通知。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   captionsManager.on('enableChange',(data) => {
@@ -180,22 +178,20 @@ on(type: 'enableChange', callback: Callback&lt;boolean&gt;): void;
   })
   ```
 
-#### on('styleChange')
+### on('styleChange')
 
 on(type: 'styleChange', callback: Callback&lt;CaptionsStyle&gt;): void;
 
 注册字幕风格变化的监听函数。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing
-
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 监听字幕风格变化。 |
   | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | 是 | 回调函数,在字幕风格变化时通过此函数进行通知。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   captionsManager.on('styleChange',(data) => {
@@ -203,43 +199,39 @@ on(type: 'styleChange', callback: Callback&lt;CaptionsStyle&gt;): void;
   })
   ```
   
-#### off('enableChange')
+### off('enableChange')
 
 off(type: 'enableChange', callback?: Callback&lt;boolean&gt;): void;
 
 移除字幕配置启用的监听函数。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing
-
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 监听字幕配置启用状态。 |
   | callback | Callback&lt;boolean&gt; | 否 | 回调函数,在启用状态变化时将状态通过此函数进行通知。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   captionsManager.off('enableChange')
   ```
 
-#### off('styleChange')
+### off('styleChange')
 
 off(type: 'styleChange', callback?: Callback&lt;CaptionsStyle&gt;): void;
 
 移除字幕风格变化的监听函数。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing
-
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 字幕风格变化。 |
   | callback | Callback&lt;[CaptionsStyle](#captionsstyle8)&gt; | 否 | 回调函数,在字幕风格变化时通过此函数进行通知。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   captionsManager.off('styleChange')
@@ -249,7 +241,7 @@ off(type: 'styleChange', callback?: Callback&lt;CaptionsStyle&gt;): void;
 
 界面变更事件。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 ### 属性
 
@@ -270,21 +262,19 @@ off(type: 'styleChange', callback?: Callback&lt;CaptionsStyle&gt;): void;
 | endIndex | number | 是 | 是 | 画面显示条目的结束序号。 |
 | itemCount | number | 是 | 是 | 条目总数。 |
 
-### 方法
-
-#### constructor
+### constructor
 
 constructor(jsonObject)
 
 构造函数。
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | jsonObject | string | 是 | 创建对象所需要的 JSON 格式字符串。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   let eventInfo = new accessibility.EventInfo({"type":"click","bundleName":"com.example.MyApplication","triggerAction":"click"})
@@ -294,7 +284,7 @@ constructor(jsonObject)
 
 无障碍事件类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -314,7 +304,7 @@ constructor(jsonObject)
 
 文本无障碍导航移动粒度。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -328,7 +318,7 @@ constructor(jsonObject)
 
 窗口变化类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
 
 | 名称 | 描述 |
 | -------- | -------- |
@@ -344,22 +334,22 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState): Promise&lt;A
 
 查询辅助应用列表。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | abilityType | [AbilityType](#abilitytype) | 是 | 辅助应用的类型。 |
   | stateType | [AbilityState](#abilitystate) | 是 | 辅助应用的状态。 |
 
-- 返回值:
+- **返回值:**
 
   | 类型 | 说明 |
   | -------- | -------- |
   | Promise&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | 返回辅助应用信息列表。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.getAbilityLists("spoken", "enable")
@@ -387,9 +377,9 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: Asyn
 
 查询辅助应用列表。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -397,7 +387,7 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: Asyn
   | stateType | [AbilityState](#abilitystate) | 是 | 辅助应用的状态。 |
   | callback | AsyncCallback&lt;Array&lt;[AccessibilityAbilityInfo](#accessibilityabilityinfo)&gt;&gt; | 是 | 回调函数,返回辅助应用信息列表。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.getAbilityLists("visual", "enable", (err, data) => {
@@ -426,15 +416,15 @@ getCaptionsManager(): CaptionsManager
 
 获取无障碍字幕配置。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing
 
-- 返回值:
+- **返回值:**
 
   | 类型 | 说明 |
   | -------- | -------- |
   | [CaptionsManager](#captionsmanager8) | 无障碍字幕配置管理。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   captionsManager = accessibility.getCaptionsManager()
@@ -448,14 +438,14 @@ on(type: 'accessibilityStateChange' | 'touchGuideStateChange', callback: Callbac
 
 **系统能力**:以下各项对应的系统能力有所不同,详见下表。
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 监听的事件类型。<br/>-&nbsp;type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;<br/>**系统能力**:SystemCapability.Barrierfree.Accessibility.Core<br/>-&nbsp;type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。<br/>**系统能力**:SystemCapability.Barrierfree.Accessibility.Vision |
+  | type | string | 是 | 监听的事件类型。<br/>-&nbsp;type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;<br/>**系统能力**:SystemCapability.BarrierFree.Accessibility.Core<br/>-&nbsp;type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。<br/>**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision |
   | callback | Callback&lt;boolean&gt; | 是 | 回调函数,在启用状态变化时将状态通过此函数进行通知。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.on('accessibilityStateChange',(data) => { 
@@ -471,14 +461,14 @@ off(type: ‘accessibilityStateChange ’ | ‘touchGuideStateChange’, callbac
 
 **系统能力**:以下各项对应的系统能力有所不同,详见下表。
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | type |  string | 否 | 监听的事件类型。<br/>-&nbsp;type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;<br/>**系统能力**:SystemCapability.Barrierfree.Accessibility.Core<br/>-&nbsp;type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。<br/>**系统能力**:SystemCapability.Barrierfree.Accessibility.Vision |
+  | type |  string | 否 | 监听的事件类型。<br/>-&nbsp;type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;<br/>**系统能力**:SystemCapability.BarrierFree.Accessibility.Core<br/>-&nbsp;type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。<br/>**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision |
   | callback | Callback&lt;boolean&gt; | 否 | 要取消的监听回调函数。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.off('accessibilityStateChange',(data) => {
@@ -492,15 +482,15 @@ isOpenAccessibility(): Promise&lt;boolean&gt;
 
 判断是否启用了辅助功能。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 返回值:
+- **返回值:**
 
   | 类型 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 如果辅助功能已启用,则返回 true;否则返回 false。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.isOpenAccessibility()
@@ -517,15 +507,15 @@ isOpenAccessibility(callback: AsyncCallback&lt;boolean&gt;): void
 
 判断是否启用了辅助功能。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 参数
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数,如果辅助功能已启用,则返回 true;否则返回 false。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.isOpenAccessibility((err, data) => {
@@ -543,15 +533,15 @@ isOpenTouchGuide(): Promise&lt;boolean&gt;
 
 判断触摸浏览模式是否开启。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision
 
-- 返回值:
+- **返回值:**
 
   | 类型 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 如果触摸浏览模式已开启,则返回 true;否则返回 false。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.isOpenTouchGuide()
@@ -568,15 +558,15 @@ isOpenTouchGuide(callback: AsyncCallback&lt;boolean&gt;): void
 
 判断触摸浏览模式是否开启。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision
 
-- 参数
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数,如果触摸浏览模式已开启,则返回 true;否则返回 false。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.isOpenTouchGuide((err, data) => {
@@ -594,21 +584,21 @@ sendEvent(event: EventInfo): Promise&lt;void&gt;
 
 发送无障碍事件。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | event | [EventInfo](#eventinfo) | 是 | 无障碍事件对象。 |
 
-- 返回值:
+- **返回值:**
 
   | 类型 | 说明 |
   | -------- | -------- |
   | Promise&lt;void&gt; | 以 Promise 形式返回结果,如果发送无障碍事件成功,则 data 有数据返回;如果发送无障碍事件失败,则 err 有数据返回。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.sendEvent(this.eventInfo)
@@ -625,16 +615,16 @@ sendEvent(event: EventInfo, callback: AsyncCallback&lt;void&gt;): void
 
 发送无障碍事件。
 
-**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
 
-- 参数:
+- **参数:**
 
   | 参数名 | 参数类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | event | [EventInfo](#eventinfo) | 是 | 辅助事件对象。 |
   | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,如果发送无障碍事件成功,则 AsyncCallback 中 data 有数据返回;如果发送无障碍事件失败,则 AsyncCallback 中 err 有数据返回。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   accessibility.sendEvent(this.eventInfo,(err, data) => {
diff --git a/zh-cn/application-dev/reference/apis/js-apis-animator.md b/zh-cn/application-dev/reference/apis/js-apis-animator.md
index 35c8f7ce114b4f83f6b4287244696e3c9f652b4d..54966570a6c4af2578a2dc3d250edd033c4cba16 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-animator.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-animator.md
@@ -3,13 +3,13 @@
 本模块提供组件动画效果,包括定义动画、启动动画和以相反的顺序播放动画等。
 
 > **说明:**
-> 
+>
 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## 导入模块
 
-```
+```js
 import animator from '@ohos.animator';
 ```
 
@@ -23,18 +23,18 @@ createAnimator(options: AnimatorOptions): AnimatorResult
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **参数:** 
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [AnimatorOptions](#animatoroptions) | 是 | 定义动画选项。|
+| 参数名     | 类型                                  | 必填   | 说明      |
+| ------- | ----------------------------------- | ---- | ------- |
+| options | [AnimatorOptions](#animatoroptions) | 是    | 定义动画选项。 |
 
 **返回值:** 
-| 类型 | 说明 |
-| -------- | -------- |
+| 类型                                | 说明            |
+| --------------------------------- | ------------- |
 | [AnimatorResult](#animatorresult) | Animator结果接口。 |
 
 **示例:** 
 
-  ```
+  ```html
   <!-- hml -->
   <div class="container">
     <div class="Animation" style="height: {{divHeight}}px; width: {{divWidth}}px; background-color: red;" onclick="Show">
@@ -42,7 +42,7 @@ createAnimator(options: AnimatorOptions): AnimatorResult
   </div>
   ```
 
-  ```
+  ```js
   // js
   export default {
     data : {
@@ -94,12 +94,12 @@ update(options: AnimatorOptions): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **参数:** 
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [AnimatorOptions](#animatoroptions) | 是 | 定义动画选项。|
+| 参数名     | 类型                                  | 必填   | 说明      |
+| ------- | ----------------------------------- | ---- | ------- |
+| options | [AnimatorOptions](#animatoroptions) | 是    | 定义动画选项。 |
 
 **示例:**
-```
+```js
 animator.update(options);
 ```
 
@@ -112,7 +112,7 @@ play(): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.play();
 ```
 
@@ -125,7 +125,7 @@ finish(): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.finish();
 ```
 
@@ -138,7 +138,7 @@ pause(): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.pause();
 ```
 
@@ -151,7 +151,7 @@ cancel(): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.cancel();
 ```
 
@@ -164,7 +164,7 @@ reverse(): void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.reverse();
 ```
 
@@ -177,12 +177,12 @@ onframe: (progress: number) => void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **参数:** 
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| progress | number | 是 | 动画的当前进度。|
+| 参数名      | 类型     | 必填   | 说明       |
+| -------- | ------ | ---- | -------- |
+| progress | number | 是    | 动画的当前进度。 |
 
 **示例:**
-```
+```js
 animator.onframe();
 ```
 
@@ -195,7 +195,7 @@ onfinish: () => void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.onfinish();
 ```
 
@@ -208,7 +208,7 @@ oncancel: () => void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.oncancel();
 ```
 
@@ -221,7 +221,7 @@ onrepeat: () => void
 **系统能力:**  SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-```
+```js
 animator.onrepeat();
 ```
 
@@ -231,13 +231,13 @@ animator.onrepeat();
 
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
-| 名称 | 参数类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| duration | number | 是 | 动画播放的时长,单位毫秒,默认为0。 |
-| easing | string | 是 | 动画插值曲线,默认为'ease'。 |
-| delay | number | 是 | 动画延时播放时长,单位毫秒,默认为0,即不延时。 |
-| fill | "none" \| "forwards" \| "backwards" \| "both" | 是 | 动画执行后是否恢复到初始状态,默认值为"none"。动画执行后,动画结束时的状态(在最后一个关键帧中定义)将保留。 |
-| direction | "normal" \| "reverse" \| "alternate" \| "alternate-reverse" | 是 | 动画播放模式,默认值"normal"。|
-| iterations | number | 是 | 动画播放次数,默认值1。设置为0时不播放,设置为-1时无限次播放。 |
-| begin | number | 是 | 动画插值起点,默认为0。 |
-| end | number | 是 | 动画插值终点,默认为1。 |
+| 名称         | 参数类型                                     | 必填   | 说明                                       |
+| ---------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| duration   | number                                   | 是    | 动画播放的时长,单位毫秒,默认为0。                       |
+| easing     | string                                   | 是    | 动画插值曲线,默认为'ease'。                        |
+| delay      | number                                   | 是    | 动画延时播放时长,单位毫秒,默认为0,即不延时。                 |
+| fill       | "none" \| "forwards" \| "backwards" \| "both" | 是    | 动画执行后是否恢复到初始状态,默认值为"none"。动画执行后,动画结束时的状态(在最后一个关键帧中定义)将保留。 |
+| direction  | "normal" \| "reverse" \| "alternate" \| "alternate-reverse" | 是    | 动画播放模式,默认值"normal"。                      |
+| iterations | number                                   | 是    | 动画播放次数,默认值1。设置为0时不播放,设置为-1时无限次播放。        |
+| begin      | number                                   | 是    | 动画插值起点,默认为0。                             |
+| end        | number                                   | 是    | 动画插值终点,默认为1。                             |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-appAccount.md b/zh-cn/application-dev/reference/apis/js-apis-appAccount.md
index 6104eeb9f27dcf9c9da172d6eb6ead4d3f0ac77f..347fb90a3897cfd8b25d44c40574ad9869e3bee4 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-appAccount.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-appAccount.md
@@ -89,7 +89,7 @@ addAccount(name: string, extraInfo: string, callback: AsyncCallback&lt;void&gt;)
 
 ### addAccount
 
-addAccount(name: string, extraInfo: string): Promise&lt;void&gt;
+addAccount(name: string, extraInfo?: string): Promise&lt;void&gt;
 
 将此应用的帐号名或额外信息(能转换成string类型的其它信息)添加到帐号管理服务中,使用Promise方式异步返回结果。
 
@@ -100,7 +100,7 @@ addAccount(name: string, extraInfo: string): Promise&lt;void&gt;
 | 参数名       | 类型     | 必填   | 说明                                       |
 | --------- | ------ | ---- | ---------------------------------------- |
 | name      | string | 是    | 要添加的应用帐号名称。                              |
-| extraInfo | string | 是    | 要添加的应用帐号的额外信息(能转换成string类型的其它信息),额外信息不能是应用帐号的敏感信息(如应用账号密码)。 |
+| extraInfo | string | 否    | 要添加的应用帐号的额外信息(能转换成string类型的其它信息),额外信息不能是应用帐号的敏感信息(如应用账号密码)。 |
 
 **返回值:**
 
@@ -1696,7 +1696,7 @@ checkAccountLabels(name: string, owner: string, labels: Array&lt;string&gt;, cal
 | name           | string                    | 是    | 应用帐户的名称。  |
 | owner          | string                    | 是    | 应用帐户的所有者。|
 | labels         | Array&lt;string&gt;       | 是    | 标签数组。       |
-| callback       | AsyncCallback&lt;void&gt; | 是    | 检查结果的回调。  |
+| callback       | AsyncCallback&lt;boolean&gt; | 是    | 检查结果的回调。  |
 
 **示例:**
 
@@ -1710,7 +1710,7 @@ checkAccountLabels(name: string, owner: string, labels: Array&lt;string&gt;, cal
 
 ### checkAccountLabels<sup>9+</sup>
 
-checkAccountLabels(name: string, owner: string, labels: Array&lt;string&gt;): Promise&lt;void&gt;
+checkAccountLabels(name: string, owner: string, labels: Array&lt;string&gt;): Promise&lt;boolean&gt;
 
 检查指定帐户是否具有特定的标签集合,使用Promise方式异步返回结果。
 
@@ -1771,7 +1771,7 @@ selectAccountsByOptions(options: SelectAccountsOptions, callback: AsyncCallback&
 
 ### selectAccountsByOptions<sup>9+</sup>
 
-selectAccountsByOptions(options: SelectAccountsOptions): Promise&lt;void&gt;
+selectAccountsByOptions(options: SelectAccountsOptions): Promise&lt;Array&lt;AppAccountInfo&gt;&gt;
 
 根据选项选择请求方可访问的帐户列表,使用Promise方式异步返回结果。
 
@@ -1836,7 +1836,7 @@ verifyCredential(name: string, owner: string, callback: AuthenticatorCallback):
 
 ### verifyCredential<sup>9+</sup>
 
-verifyCredential(name: string, owner: string, options, callback: AuthenticatorCallback): void;
+verifyCredential(name: string, owner: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void;
 
 验证用户凭据,使用callback回调异步返回结果。
 
@@ -1952,10 +1952,11 @@ setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callbac
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.AppAccount。
 
-| 参数名      | 类型     | 必填   | 说明       |
-| -------- | ------ | ---- | -------- |
-| authType | string | 是    | 令牌的鉴权类型。 |
-| token    | string | 是    | 令牌的取值。   |
+| 参数名               | 类型            | 必填  | 说明              |
+| -------------------- | -------------- | ----- | ---------------- |
+| authType             | string         | 是    | 令牌的鉴权类型。   |
+| token                | string         | 是    | 令牌的取值。       |
+| account<sup>9+</sup> | AppAccountInfo | 否    | 令牌所属的帐号信息。|
 
 ## AuthenticatorInfo<sup>8+</sup>
 
@@ -1977,7 +1978,7 @@ setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callbac
 
 | 参数名          | 类型                         | 必填  | 说明                |
 | --------------- | --------------------------- | ----- | ------------------- |
-| allowedAccounts | Array&lt;[AppAccountInfo](#appAccountinfo)&gt; | 否    | 允许的帐号数组。      |
+| allowedAccounts | Array&lt;[AppAccountInfo](#appaccountinfo)&gt; | 否    | 允许的帐号数组。      |
 | allowedOwners   | Array&lt;string&gt;         | 否    | 允许的帐号所有者数组。 |
 | requiredLabels  | Array&lt;string&gt;         | 否    | 认证器的标签标识。    |
 
@@ -2011,21 +2012,21 @@ setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callbac
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.AppAccount。
 
-| 名称                            | 默认值                    | 说明            |
-| ----------------------------- | ---------------------- | ------------- |
-| ACTION_ADD_ACCOUNT_IMPLICITLY | "addAccountImplicitly" | 表示操作,隐式添加帐号。  |
-| ACTION_AUTHENTICATE           | "authenticate"         | 表示操作,鉴权。      |
-| KEY_NAME                      | "name"                 | 表示键名,应用帐号名称。  |
-| KEY_OWNER                     | "owner"                | 表示键名,应用帐号所有者。 |
-| KEY_TOKEN                     | "token"                | 表示键名,令牌。      |
-| KEY_ACTION                    | "action"               | 表示键名,操作。      |
-| KEY_AUTH_TYPE                 | "authType"             | 表示键名,鉴权类型。    |
-| KEY_SESSION_ID                | "sessionId"            | 表示键名,会话标识。    |
-| KEY_CALLER_PID                | "callerPid"            | 表示键名,调用方PID。  |
-| KEY_CALLER_UID                | "callerUid"            | 表示键名,调用方UID。  |
-| KEY_CALLER_BUNDLE_NAME        | "callerBundleName"     | 表示键名,调用方包名。   |
-| KEY_REQUIRED_LABELS           | "requiredLabels"       | 表示键名,必需的标签。   |
-| KEY_BOOLEAN_RESULT           | "booleanResult"         | 表示键名,布尔返回值。   |
+| 名称                            | 默认值                    | 说明                   |
+| -------------------------------- | ---------------------- | ----------------------- |
+| ACTION_ADD_ACCOUNT_IMPLICITLY    | "addAccountImplicitly" | 表示操作,隐式添加帐号。  |
+| ACTION_AUTHENTICATE              | "authenticate"         | 表示操作,鉴权。         |
+| KEY_NAME                         | "name"                 | 表示键名,应用帐号名称。  |
+| KEY_OWNER                        | "owner"                | 表示键名,应用帐号所有者。|
+| KEY_TOKEN                        | "token"                | 表示键名,令牌。         |
+| KEY_ACTION                       | "action"               | 表示键名,操作。         |
+| KEY_AUTH_TYPE                    | "authType"             | 表示键名,鉴权类型。     |
+| KEY_SESSION_ID                   | "sessionId"            | 表示键名,会话标识。     |
+| KEY_CALLER_PID                   | "callerPid"            | 表示键名,调用方PID。    |
+| KEY_CALLER_UID                   | "callerUid"            | 表示键名,调用方UID。    |
+| KEY_CALLER_BUNDLE_NAME           | "callerBundleName"     | 表示键名,调用方包名。    |
+| KEY_REQUIRED_LABELS<sup>9+</sup> | "requiredLabels"       | 表示键名,必需的标签。    |
+| KEY_BOOLEAN_RESULT<sup>9+</sup>  | "booleanResult"        | 表示键名,布尔返回值。    |
 
 ## ResultCode<sup>8+</sup>
 
@@ -2124,7 +2125,7 @@ onRequestRedirected: (request: Want) =&gt; void
 
 ### onRequestContinued<sup>9+</sup>
 
-onRequestContinued: () =&gt; void
+onRequestContinued?: () =&gt; void
 
 通知请求被继续处理。
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-AccessibilityExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-application-AccessibilityExtensionAbility.md
index 586b0c7e0b71b32a282cb8053593672cf3c98fd6..90037d0d882506a98d94d0a1c3e66e0b183ea4cd 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-AccessibilityExtensionAbility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-AccessibilityExtensionAbility.md
@@ -11,7 +11,7 @@
 ## 导入模块
 
 ```ts
-import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExtensionAbility'
+import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility'
 ```
 
 ## AccessibilityEvent
@@ -22,11 +22,11 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 ### 属性
 
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| eventType | [EventType](js-apis-accessibility.md#EventType) \| [WindowUpdateType](js-apis-accessibility.md#WindowUpdateType) \| [TouchGuideType](touchguidetype) \| [GestureType](gesturetype) \| [PageUpdateType](pageupdatetype) | 是 | 否 | 具体事件类型。 |
-| target | AccessibilityElement | 是 | 否 | 发生事件的目标组件。 |
-| timeStamp | number | 是 | 否 | 事件时间戳。 |
+| 名称        | 参数类型                                     | 可读   | 可写   | 说明         |
+| --------- | ---------------------------------------- | ---- | ---- | ---------- |
+| eventType | [EventType](js-apis-accessibility.md#EventType) \| [WindowUpdateType](js-apis-accessibility.md#WindowUpdateType) \| [TouchGuideType](touchguidetype) \| [GestureType](gesturetype) \| [PageUpdateType](pageupdatetype) | 是    | 否    | 具体事件类型。    |
+| target    | AccessibilityElement                     | 是    | 否    | 发生事件的目标组件。 |
+| timeStamp | number                                   | 是    | 否    | 事件时间戳。     |
 
 ## GesturePath
 
@@ -36,26 +36,24 @@ import AccessibilityExtensionAbility from './@ohos.application.AccessibilityExte
 
 ### 属性
 
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| points | Array&lt;[GesturePoint](gesturepoint)&gt; | 是 | 是 | 手势。 |
-| durationTime | number | 是 | 是 | 手势总耗时。 |
+| 名称           | 参数类型                                     | 可读   | 可写   | 说明     |
+| ------------ | ---------------------------------------- | ---- | ---- | ------ |
+| points       | Array&lt;[GesturePoint](gesturepoint)&gt; | 是    | 是    | 手势。    |
+| durationTime | number                                   | 是    | 是    | 手势总耗时。 |
 
-### 方法
-
-#### constructor
+### constructor
 
 constructor(durationTime: number)
 
 构造函数。
 
-- 参数:
+- **参数:**
 
-  | 参数名 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | durationTime | number | 是 | 手势总耗时。 |
+  | 参数名          | 参数类型   | 必填   | 说明     |
+  | ------------ | ------ | ---- | ------ |
+  | durationTime | number | 是    | 手势总耗时。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   let gesturePath = new GesturePath(100);
@@ -69,27 +67,25 @@ constructor(durationTime: number)
 
 ### 属性
 
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| positionX | number | 是 | 是 | 触摸点X坐标。 |
-| positionY | number | 是 | 是 | 触摸点Y坐标。 |
-
-### 方法
+| 名称        | 参数类型   | 可读   | 可写   | 说明      |
+| --------- | ------ | ---- | ---- | ------- |
+| positionX | number | 是    | 是    | 触摸点X坐标。 |
+| positionY | number | 是    | 是    | 触摸点Y坐标。 |
 
-#### constructor
+### constructor
 
 constructor(positionX: number, positionY: number)
 
 构造函数。
 
-- 参数:
+- **参数:**
 
-  | 参数名 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | positionX | number | 是 | 触摸点X坐标。 |
-  | positionY | number | 是 | 触摸点Y坐标。 |
+  | 参数名       | 参数类型   | 必填   | 说明      |
+  | --------- | ------ | ---- | ------- |
+  | positionX | number | 是    | 触摸点X坐标。 |
+  | positionY | number | 是    | 触摸点Y坐标。 |
 
-- 示例
+- **示例:**
 
   ```typescript
   let gesturePoint = new GesturePoint(100, 200);
@@ -101,24 +97,24 @@ constructor(positionX: number, positionY: number)
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
-| left | 表示向左的手势。 |
+| 名称            | 描述           |
+| ------------- | ------------ |
+| left          | 表示向左的手势。     |
 | leftThenRight | 表示先向左再向右的手势。 |
-| leftThenUp | 表示先向左再向上的手势。 |
-| leftThenDown | 表示先向左再向下的手势。 |
-| right | 表示向右的手势。 |
+| leftThenUp    | 表示先向左再向上的手势。 |
+| leftThenDown  | 表示先向左再向下的手势。 |
+| right         | 表示向右的手势。     |
 | rightThenLeft | 表示先向右再向左的手势。 |
-| rightThenUp | 表示先向右再向上的手势。 |
+| rightThenUp   | 表示先向右再向上的手势。 |
 | rightThenDown | 表示先向右再向下的手势。 |
-| up | 表示向上的手势。 |
-| upThenLeft | 表示先向上再向左的手势。 |
-| upThenRight | 表示先向上再向右的手势。 |
-| upThenDown | 表示先向上再向下的手势。 |
-| down | 表示向下的手势。 |
-| downThenLeft | 表示先向下再向左的手势。 |
+| up            | 表示向上的手势。     |
+| upThenLeft    | 表示先向上再向左的手势。 |
+| upThenRight   | 表示先向上再向右的手势。 |
+| upThenDown    | 表示先向上再向下的手势。 |
+| down          | 表示向下的手势。     |
+| downThenLeft  | 表示先向下再向左的手势。 |
 | downThenRight | 表示先向下再向右的手势。 |
-| downThenUp | 表示先向下再向上的手势。 |
+| downThenUp    | 表示先向下再向上的手势。 |
 
 ## PageUpdateType
 
@@ -126,10 +122,10 @@ constructor(positionX: number, positionY: number)
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
+| 名称                | 描述        |
+| ----------------- | --------- |
 | pageContentUpdate | 表示页面内容刷新。 |
-| pageStateUpdate | 表示页面状态刷新。 |
+| pageStateUpdate   | 表示页面状态刷新。 |
 
 ## TouchGuideType
 
@@ -137,10 +133,10 @@ constructor(positionX: number, positionY: number)
 
 **系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core
 
-| 名称 | 描述 |
-| -------- | -------- |
+| 名称         | 描述           |
+| ---------- | ------------ |
 | touchBegin | 表示触摸浏览时开始触摸。 |
-| touchEnd | 表示触摸浏览时结束触摸。 |
+| touchEnd   | 表示触摸浏览时结束触摸。 |
 
 ## AccessibilityExtensionAbility.onConnect
 
@@ -192,9 +188,9 @@ onAccessibilityEvent(event: AccessibilityEvent): void;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| event | [AccessibilityEvent](accessibilityevent) | 是 | 无障碍事件回调函数。无返回值。 |
+| 参数名   | 参数类型                                     | 必填   | 说明              |
+| ----- | ---------------------------------------- | ---- | --------------- |
+| event | [AccessibilityEvent](accessibilityevent) | 是    | 无障碍事件回调函数。无返回值。 |
 
 **示例:**
 
@@ -217,9 +213,9 @@ onKeyEvent(keyEvent: inputEventClient.KeyEvent): boolean;
 
 **参数:**
 
-| 参数名 | 参数类型 | 必填 | 说明 |
-| ----- | ------ | ------ | ------ |
-| keyEvent | [KeyEvent](js-apis-inputeventclient.md#KeyEvent) | 是 | 按键事件回调函数。返回true表示拦截此按键。 |
+| 参数名      | 参数类型                                     | 必填   | 说明                      |
+| -------- | ---------------------------------------- | ---- | ----------------------- |
+| keyEvent | [KeyEvent](js-apis-inputeventclient.md#KeyEvent) | 是    | 按键事件回调函数。返回true表示拦截此按键。 |
 
 **示例:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md
index f5105c22fdff8d1f43160f864127996ad58c0de8..a9969fa276267dbb85a746d61bfddf44fa15beef 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md
@@ -53,7 +53,7 @@ let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
 let rdbStore;
 
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    onCreate(want: Want, callback: AsyncCallback<void>) {
+    onCreate(want, callback) {
         rdb.getRdbStore(this.context, {
             name: DB_NAME
         }, 1, function (err, data) {
@@ -90,7 +90,7 @@ getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback&lt;Ar
 
 ```ts
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array<string>>) {
+    getFileTypes(uri, mimeTypeFilter, callback) {
         let err = {"code":0};
         let ret = new Array("type01", "type02", "type03");
         callback(err, ret);
@@ -118,7 +118,7 @@ openFile?(uri: string, mode: string, callback: AsyncCallback&lt;number&gt;): voi
 
 ```ts
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    openFile(uri: string, mode: string, callback: AsyncCallback<number>) {
+    openFile(uri, mode, callback) {
         let err = {"code":0};
         let fd = 0;
         callback(err,fd);
@@ -145,13 +145,22 @@ insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback&lt;numbe
 **示例:**
 
 ```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    insert(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback<number>) {
-        if (value == null) {
+    insert(uri, valueBucket, callback) {
+        if (valueBucket == null) {
             console.info('invalid valueBuckets');
             return;
         }
-        rdbStore.insert(TBL_NAME, value, function (err, ret) {
+        rdbStore.insert(TBL_NAME, valueBucket, function (err, ret) {
             console.info('callback ret:' + ret);
             if (callback != undefined) {
                 callback(err, ret);
@@ -174,19 +183,28 @@ update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueB
 | 参数名 | 参数类型 | 必填 | 说明 |
 | ----- | ------ | ------ | ------ |
 | uri | string | 是  | 指示要更新的数据的路径。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是  | 指示筛选条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是  | 指示筛选条件。 |
 | valueBucket | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | 是 | 指示要更新的数据。 |
 | callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。返回更新的数据记录数。 |
 
 **示例:**
 
 ```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    update(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback<number>) {
+    update(uri, predicates, valueBucket, callback) {
         if (predicates == null || predicates == undefined) {
             return;
         }
-        rdbStore.update(TBL_NAME, value, predicates, function (err, ret) {
+        rdbStore.update(TBL_NAME, valueBucket, predicates, function (err, ret) {
             if (callback != undefined) {
                 callback(err, ret);
             }
@@ -208,14 +226,23 @@ delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callba
 | 名称       | 参数类型                                                     | 必填 | 说明                               |
 | ---------- | ------------------------------------------------------------ | ---- | ---------------------------------- |
 | uri        | string                                                       | 是   | 指示要删除的数据的路径。           |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。                     |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。                     |
 | callback   | AsyncCallback&lt;number&gt;                                  | 是   | 回调函数。返回已删除的数据记录数。 |
 
 **示例:**
 
 ```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>) {
+    delete(uri, predicates, callback) {
         if (predicates == null || predicates == undefined) {
             return;
         }
@@ -241,15 +268,24 @@ query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns
 | 名称 | 参数类型 | 必填 | 说明 |
 | ----- | ------ | ------ | ------ |
 | uri | string | 是  | 指示要查询的数据的路径。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是  | 指示筛选条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是  | 指示筛选条件。 |
 | columns | Array&lt;string&gt; | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 |
 | callback | AsyncCallback&lt;Object&gt; | 是 | 回调函数。返回查询到的结果集。 |
 
 **示例:**
 
 ```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<Object>) {
+    query(uri, predicates, columns, callback) {
         if (predicates == null || predicates == undefined) {
             return;
         }
@@ -284,7 +320,7 @@ getType?(uri: string, callback: AsyncCallback&lt;string&gt;): void
 
 ```ts
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    getType(uri: string, callback: AsyncCallback<string>) {
+    getType(uri, callback) {
         let err = {"code":0};
         let ret = "image";
         callback(err, ret);
@@ -311,8 +347,17 @@ batchInsert?(uri: string, valueBuckets: Array&lt;ValuesBucket&gt;, callback: Asy
 **示例:**
 
 ```ts
+import rdb from '@ohos.data.rdb';
+
+let DB_NAME = "DB00.db";
+let TBL_NAME = "TBL00";
+let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS "
++ TBL_NAME
++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)";
+let rdbStore;
+
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    batchInsert(uri: string, valueBuckets: Array<ValuesBucket>, callback: AsyncCallback<number>) {
+    batchInsert(uri, valueBuckets, callback) {
         if (valueBuckets == null || valueBuckets.length == undefined) {
             console.info('invalid valueBuckets');
             return;
@@ -348,7 +393,7 @@ normalizeUri?(uri: string, callback: AsyncCallback&lt;string&gt;): void
 
 ```ts
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    normalizeUri(uri: string, callback: AsyncCallback<string>) {
+    normalizeUri(uri, callback) {
         let err = {"code":0};
         let ret = "normalize+" + uri;
         callback(err, ret);
@@ -375,7 +420,7 @@ denormalizeUri?(uri: string, callback: AsyncCallback&lt;string&gt;): void
 
 ```ts
 export default class DataShareExtAbility extends DataShareExtensionAbility {
-    denormalizeUri(uri: string, callback: AsyncCallback<string>) {
+    denormalizeUri(uri, callback) {
         let err = {"code":0};
         let ret = "denormalize+" + uri;
         callback(err, ret);
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-StartOptions.md b/zh-cn/application-dev/reference/apis/js-apis-application-StartOptions.md
index 87582b604b7fe39292cd326b5ab92aaff06fc3e6..06acb55c355e949e5e386777627392887aefcf6c 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-StartOptions.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-StartOptions.md
@@ -19,5 +19,5 @@ import StartOptions from '@ohos.application.StartOptions';
 
 | 名称 | 可读 | 可写 | 参数类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- | -------- | -------- |
-| windowMode | 是 | 否 | number | 否 | 窗口模式。 |
+| [windowMode](js-apis-application-abilityConstant.md#AbilityConstant.WindowMode) | 是 | 否 | number | 否 | 窗口模式。 |
 | displayId | 是 | 否 | number | 否 | 显示ID。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md
index fe90a7f82ece3a649a0d803391df1eec09697f6d..4caa15330e98b80ea127c89dc122d50e85fe298b 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md
@@ -31,15 +31,87 @@ import Want from '@ohos.application.Want';
 
 **示例:**
 
-```  js
-  var want = {
-      "deviceId": "", // deviceId为空表示本设备
-      "bundleName": "com.extreme.test",
-      "abilityName": "MainAbility",
-      "moduleName": "entry" // moduleName非必选
-  };
-  this.context.startAbility(want, (error) => {
-      // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
-      console.log("error.code = " + error.code)
-  })
-```
+- 基础用法
+
+  ```  js
+    var want = {
+        "deviceId": "", // deviceId为空表示本设备
+        "bundleName": "com.extreme.test",
+        "abilityName": "MainAbility",
+        "moduleName": "entry" // moduleName非必选
+    };
+    this.context.startAbility(want, (error) => {
+        // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
+        console.log("error.code = " + error.code)
+    })
+  ```
+
+- 传递FD数据,FD表示文件描述符(FileDescriptor)
+
+  ```  js
+    var fd;
+    try {
+        fd = fileio.openSync("/data/storage/el2/base/haps/pic.png");
+    } catch(e) {
+        console.log("openSync fail:" + JSON.stringify(e));
+    }
+    var want = {
+        "deviceId": "", // deviceId为空表示本设备
+        "bundleName": "com.extreme.test",
+        "abilityName": "MainAbility",
+        "moduleName": "entry" // moduleName非必选
+        "parameters": {
+          "keyFd":{"type":"FD", "value":fd}
+        }
+    };
+    this.context.startAbility(want, (error) => {
+        // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
+        console.log("error.code = " + error.code)
+    })
+  ```
+
+- 传递RemoteObject数据
+
+  ```  js
+    class Stub extends rpc.RemoteObject {
+      constructor(des) {
+          if (typeof des == 'string') {
+              super(des);
+          } else {
+              return null;
+          }
+      }
+
+      onRemoteRequest(code, data, reply, option) {
+          if (code === 1) {
+              console.log('onRemoteRequest called')
+              let token = data.readInterfaceToken();
+              let num = data.readInt();
+              this.method();
+              return true;
+          }
+          return false;
+      }
+
+      method() {
+          console.log('method called');
+      }
+    }
+
+    var remoteObject = new Stub('want-test');
+    var want = {
+        "deviceId": "", // deviceId为空表示本设备
+        "bundleName": "com.extreme.test",
+        "abilityName": "MainAbility",
+        "moduleName": "entry" // moduleName非必选
+        "parameters": {
+          "keyRemoteObject":{"type":"RemoteObject", "value":remoteObject}
+        }
+    };
+    this.context.startAbility(want, (error) => {
+        // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
+        console.log("error.code = " + error.code)
+    })
+  ```
+
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md
index fa422cfa48a23fb8c081fc713fef454c4c607e87..1f7f75be6ffaa26d40de89879149f88bd7f81d4c 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md
@@ -1,5 +1,5 @@
 # 窗口扩展能力
-WindowExtensionAbility基于ExtensionAbility,WindowExtensionAbility中展示的内容作为一个控件(AbilityComponent)内容展示在其他应用窗口中,实现在一个窗口中展示多个应用程序内容的功能。
+WindowExtensionAbility基于ExtensionAbility。WindowExtensionAbility中展示的内容可作为一个控件(AbilityComponent)内容展示在其他应用窗口中。
 
 > **说明:**
 >
@@ -7,7 +7,7 @@ WindowExtensionAbility基于ExtensionAbility,WindowExtensionAbility中展示
 > 
 > 本模块接口为系统接口。
 >
->本模块接口仅可在Stage模型下使用。 
+> 本模块接口仅可在Stage模型下使用。 
 
 ## 导入模块
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md
index 312d3b9386dad297d43ac202f4135b5966a463f4..725fe66632197cdb28c3b434f4f7cbab38d5f6c8 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md
@@ -62,3 +62,17 @@ import AbilityConstant from '@ohos.application.AbilityConstant';
 | AGREE           | 0    | 同意。 |
 | REJECT           | 1    | 拒绝。 |
 | MISMATCH  | 2    | 不匹配。|
+
+## AbilityConstant.WindowMode
+
+启动Ability时的窗口模式。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+| 变量                        | 取值 | 说明                 |
+| ---                         | --- | ---                  |
+| WINDOW_MODE_UNDEFINED       | 0   | 未定义窗口模式。       |
+| WINDOW_MODE_FULLSCREEN      | 1   | 全屏模式。            |
+| WINDOW_MODE_SPLIT_PRIMARY   | 100 | 分屏多窗口主要模式。   |
+| WINDOW_MODE_SPLIT_SECONDARY | 101 | 分屏多窗口次要模式。   |
+| WINDOW_MODE_FLOATING        | 102 | 自由悬浮形式窗口模式。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md
index fada27b850de9f6e3b4dcf1951a2f24bb755a728..b9f2671b47aadb433d38996a93195c64d378da44 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md
@@ -628,7 +628,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
 
 
 
-### printSync
+### printSync<sup>9+</sup>
 
 printSync(msg: string): void
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
index 3c585bdd09536059377027115a5c85e561674196..4d3076f97c57dd54f485927a5cef3ca0ad6d4de2 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegatorArgs.md
@@ -20,11 +20,13 @@ var args = AbilityDelegatorRegistry.getArguments();
 
 测试参数信息
 
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
 | 名称                | 类型                   | 可读 | 可写 | 说明                                                         |
 | ------------------- | ---------------------- | ---- | ---- | ------------------------------------------------------------ |
-| bundleName          | string                 | 是   | 是   | 当前被测试应用的包名<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| parameters          | {[key:string]: string} | 是   | 是   | 当前启动单元测试的参数<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| testCaseNames       | string                 | 是   | 是   | 测试用例名称<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| testRunnerClassName | string                 | 是   | 是   | 执行测试用例的测试执行器的名称<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
+| bundleName          | string                 | 是   | 是   | 当前被测试应用的包名 |
+| parameters          | {[key:string]: string} | 是   | 是   | 当前启动单元测试的参数 |
+| testCaseNames       | string                 | 是   | 是   | 测试用例名称 |
+| testRunnerClassName | string                 | 是   | 是   | 执行测试用例的测试执行器的名称 |
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
index f220273cbfb22a312c7253d21c6df0b3044cbabc..40c41150c22f760f78e81ba284058bbb85900e43 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
@@ -11,7 +11,7 @@ AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命
 ## 导入模块
 
 ```js
-import AbilityLifecycleCallback from "@ohos.application.abilityLifecycleCallback";
+import AbilityLifecycleCallback from "@ohos.application.AbilityLifecycleCallback";
 ```
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md
index 5e86a3af6fe71b6da688d16a5067d65afe994a1d..e49bb16733a7c5028e172f7d5f393bdf00bd778f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md
@@ -7,7 +7,7 @@ AbilityManager模块提供对Ability相关信息和状态信息进行获取、
 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
 > 本模块接口均为系统接口,三方应用不支持调用。
 
-# 导入模块
+## 导入模块
 
 ```js
 import AbilityManager from '@ohos.application.abilityManager'
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityMonitor.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityMonitor.md
index df6b0968eef4ed2d6026faf4872d04b3890fa49c..64ffa05699b2148d5440938e8c9d6001005cfd12 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityMonitor.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityMonitor.md
@@ -33,15 +33,17 @@ abilityDelegator.addAbilityMonitor(monitor, (err : any) => {
 
 Ability监听器
 
+系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
 | 名称                                                         | 类型     | 可读 | 可写 | 说明                                                         |
 | ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ |
 | abilityName                                                  | string   | 是   | 是   | 当前AbilityMonitor绑定的ability名称<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onAbilityCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability被启动初始化时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onAbilityForeground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability状态变成前台时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onAbilityBackground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability状态变成后台时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onAbilityDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability被销毁前的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onWindowStageCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被创建时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onWindowStageRestore?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被重载时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| onWindowStageDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被销毁前的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
+| onAbilityCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability被启动初始化时的回调函数<br/>不设置该属性则不能收到该生命周期回调 |
+| onAbilityForeground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability状态变成前台时的回调函数<br/>不设置该属性则不能收到该生命周期回调 |
+| onAbilityBackground?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability状态变成后台时的回调函数<br/>不设置该属性则不能收到该生命周期回调 |
+| onAbilityDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | ability被销毁前的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/> |
+| onWindowStageCreate?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被创建时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/> |
+| onWindowStageRestore?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被重载时的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/> |
+| onWindowStageDestroy?:(data: [Ability](js-apis-application-ability.md#Ability)) | function | 是   | 是   | window stage被销毁前的回调函数<br/>不设置该属性则不能收到该生命周期回调<br/> |
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-applicationContext.md b/zh-cn/application-dev/reference/apis/js-apis-application-applicationContext.md
index 91a467c2e41ffbe9e3d062249cf264025bb39894..7705d4bd7c71ddb7ae42fd1ce52e838849a4b8fb 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-applicationContext.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-applicationContext.md
@@ -28,7 +28,7 @@ registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number**
 
 | 参数名                   | 类型     | 必填 | 说明                           |
 | ------------------------ | -------- | ---- | ------------------------------ |
-| [AbilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md) | callback | 是   | 回调方法,返回注册监听事件的ID。 |
+| callback | [AbilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md) | 是   | 回调方法,返回注册监听事件的ID。 |
 
 **返回值:**
 
@@ -98,7 +98,7 @@ unregisterAbilityLifecycleCallback(callbackId: **number**,  callback: AsyncCallb
 | 参数名        | 类型     | 必填 | 说明                       |
 | ------------- | -------- | ---- | -------------------------- |
 | callbackId    | number   | 是   | 注册监听应用内生命周期的ID。 |
-| AsyncCallback | callback | 是   | 回调方法。                   |
+| callback | AsyncCallback\<void> | 是   | 回调方法。                   |
 
 **示例:**
 
@@ -123,7 +123,7 @@ registerEnvironmentCallback(callback: EnvironmentCallback): **number**;
 
 | 参数名                   | 类型     | 必填 | 说明                           |
 | ------------------------ | -------- | ---- | ------------------------------ |
-| [EnvironmentCallback](js-apis-application-EnvironmentCallback.md) | callback | 是   | 回调方法,返回注册监听事件的ID。 |
+| callback | [EnvironmentCallback](js-apis-application-EnvironmentCallback.md) | 是   | 回调方法,返回注册监听事件的ID。 |
 
 **返回值:**
 
@@ -175,7 +175,7 @@ unregisterEnvironmentCallback(callbackId: **number**,  callback: AsyncCallback<*
 | 参数名         | 类型     | 必填 | 说明                       |
 | ------------- | -------- | ---- | -------------------------- |
 | callbackId    | number   | 是   | 注册监听系统环境变化的ID。   |
-| AsyncCallback | callback | 是   | 回调方法。                  |
+| callback | AsyncCallback\<void> | 是   | 回调方法。                  |
 
 **示例:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-context.md b/zh-cn/application-dev/reference/apis/js-apis-application-context.md
index 14d20ed469c29dfc7746238e8c11f22b2bfa3412..b8f385ca6ed186b99659199e936c60975e6263d7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-context.md
@@ -7,8 +7,6 @@ Context模块提供开发者运行代码的上下文环境的能力,包括查
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
 > 本模块接口仅可在Stage模型下使用。
 
-提供开发者运行代码的上下文环境,包括应用信息、ResourceManager等信息。
-
 ## 使用说明
 
 通过AbilityContext等继承实现。
@@ -27,7 +25,7 @@ import AbilityContext from '@ohos.application.Ability'
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
 
-  | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
 | -------- | -------- | -------- | -------- | -------- |
 | resourceManager | resmgr.ResourceManager; | 是 | 否 | ResourceManager对象。 |
 | applicationInfo | ApplicationInfo | 是 | 否 | 当前应用信息。 |
@@ -47,8 +45,12 @@ createBundleContext(bundleName: string): Context;
 
 创建指定应用上下文。
 
+**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
+
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
   | 参数名 | 类型 | 必填 | 说明 |
@@ -117,6 +119,8 @@ createModuleContext(bundleName: string, moduleName: string): Context;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
   | 参数名 | 类型 | 必填 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-shellCmdResult.md b/zh-cn/application-dev/reference/apis/js-apis-application-shellCmdResult.md
index ae8f7c42862086343031cddbc6fb0a81ccee88d7..2c9f76234fb7eec46f45e2faf3d09f2bf980b7ae 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-application-shellCmdResult.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-shellCmdResult.md
@@ -30,5 +30,5 @@ Shell命令执行结果
 
 | 名称      | 类型   | 可读 | 可写 | 说明                                                         |
 | --------- | ------ | ---- | ---- | ------------------------------------------------------------ |
-| stdResult | string | 是   | 是   | 标准输出内容<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
-| exitCode  | number | 是   | 是   | 结果码<br/>**系统能力:** SystemCapability.Ability.AbilityRuntime.Core |
+| stdResult | string | 是   | 是   | 标准输出内容 |
+| exitCode  | number | 是   | 是   | 结果码 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md
index 84c6d3ed3a651a88a562c9d6a1b8278bf979e27b..f4ac20aea83ca20d982eef78c375949a77094f3f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md
@@ -210,7 +210,7 @@ getProcessRunningInfos(callback: AsyncCallback\<Array\<ProcessRunningInfo>>): vo
 
 registerApplicationStateObserver(observer: ApplicationStateObserver): number;
 
-注册应用程序状态观测器。
+注册全部应用程序状态观测器。
 
 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
 
@@ -244,6 +244,48 @@ registerApplicationStateObserver(observer: ApplicationStateObserver): number;
   const observerCode = app.registerApplicationStateObserver(applicationStateObserver);
   console.log('-------- observerCode: ---------', observerCode);
 
+  ```
+
+## appManager.registerApplicationStateObserver<sup>9+</sup>
+
+registerApplicationStateObserver(observer: ApplicationStateObserver, bundleNameList: Array<string>): number;
+
+注册指定应用程序状态观测器。
+
+**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| observer | ApplicationStateObserver | 否 | 返回观察者的数字代码。 |
+| bundleNameList | Array<string> | 否 | 表示需要注册监听的bundleName数组。最大值128。 |
+
+**示例:**
+    
+  ```js
+  var applicationStateObserver = {
+    onForegroundApplicationChanged(appStateData) {
+        console.log('------------ onForegroundApplicationChanged -----------', appStateData);
+    },
+    onAbilityStateChanged(abilityStateData) {
+        console.log('------------ onAbilityStateChanged -----------', abilityStateData);
+    },
+    onProcessCreated(processData) {
+        console.log('------------ onProcessCreated -----------', processData);
+    },
+    onProcessDied(processData) {
+        console.log('------------ onProcessDied -----------', processData);
+    }
+  }
+  var bundleNameList = ['bundleName1', 'bundleName2'];
+  const observerCode = app.registerApplicationStateObserver(applicationStateObserver, bundleNameList);
+  console.log('-------- observerCode: ---------', observerCode);
+
   ```
 ## appManager.unregisterApplicationStateObserver<sup>8+</sup>
 
@@ -348,7 +390,7 @@ getForegroundApplications(callback: AsyncCallback\<Array\<AppStateData>>): void;
 
 ## appManager.getForegroundApplications<sup>8+</sup>
 
-getProcessRunningInfos(): Promise\<Array\<ProcessRunningInfo>>;
+getForegroundApplications(): Promise\<Array\<AppStateData>>;
 
 获取前台进程的应用程序。
 
@@ -393,7 +435,7 @@ killProcessWithAccount(bundleName: string, accountId: number): Promise\<void\>
   | 参数名 | 类型 | 必填 | 说明 | 
   | -------- | -------- | -------- | -------- |
   | bundleName | string | 是 | 应用包名。 | 
-  | accountId | number | 是 | account的Id。 | 
+  | accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 | 
 
 **示例:**
 
@@ -427,7 +469,7 @@ killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCal
   | 参数名 | 类型 | 必填 | 说明 | 
   | -------- | -------- | -------- | -------- |
   | bundleName | string | 是 | 应用包名。 | 
-  | accountId | number | 是 | account的Id。 | 
+  | accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 | 
   | callback | AsyncCallback\<void\> | 是 | 切断account进程的回调函数。 | 
 
 **示例:**
@@ -588,6 +630,144 @@ clearUpApplicationData(bundleName: string): Promise\<void>;
 
   ```
 
+## ApplicationStateObserver.onForegroundApplicationChanged<sup>8+</sup>
+
+onForegroundApplicationChanged(appStateData: AppStateData): void;
+
+将在前台或后台应用程序更改时调用。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| appStateData | [AppStateData](#appstatedata) | 否 | 状态更改的应用程序信息。 |
+
+**示例:**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const foregroundApplicationInfo = ApplicationStateObserver.onForegroundApplicationChanged();
+console.log('-------- foregroundApplicationInfo: ---------', foregroundApplicationInfo);
+```
+
+## ApplicationStateObserver.onAbilityStateChanged<sup>8+</sup>
+
+onAbilityStateChanged(abilityStateData: AbilityStateData): void;
+
+将在能力状态更改时调用。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| abilityStateData | [AbilityStateData](#abilitystatedata) | 否 | 状态更改的能力信息。 |
+
+**示例:**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const abilityStateChangedInfo = ApplicationStateObserver.onAbilityStateChanged();
+console.log('-------- abilityStateChangedInfo: ---------', abilityStateChangedInfo);
+```
+
+## ApplicationStateObserver.onProcessCreated<sup>8+</sup>
+
+onProcessCreated(processData: ProcessData): void;
+
+将在创建进程时调用。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| processData | [ProcessData](#processdata) | 否 | 进程信息。 |
+
+**示例:**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const processCreatedInfo = ApplicationStateObserver.onProcessCreated();
+console.log('-------- processCreatedInfo: ---------', processCreatedInfo);
+```
+
+## ApplicationStateObserver.onProcessDied<sup>8+</sup>
+
+onProcessDied(processData: ProcessData): void;
+
+将在进程终止时调用。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| processData | ProcessData | 否 | 进程信息。 |
+
+**示例:**
+    
+```js
+import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver'
+const processDiedInfo = ApplicationStateObserver.onProcessDied();
+console.log('-------- processDiedInfo: ---------', processDiedInfo);
+```
+
+## AppStateData
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+| 名称        | 读写属性 | 类型                 | 必填 | 描述                                                         |
+| ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
+| bundleName<sup>8+</sup>     | 只读     | string               | 否   | 包名。                                |
+| uid<sup>8+</sup>   | 只读     | number               | 否   | 用户ID。 |
+| state<sup>8+</sup>  | 只读     | number               | 否   | 应用状态。 |
+
+## AbilityStateData
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+| 名称                     | 类型     | 可读 | 可写 | 说明                       |
+| ----------------------- | ---------| ---- | ---- | ------------------------- |
+| pid<sup>8+</sup>                     | number   | 是   | 否   | 进程ID。                    |
+| bundleName<sup>8+</sup>              | string   | 是   | 否  | 应用包名。                  |
+| abilityName<sup>8+</sup>             | string   | 是   | 否   | Ability名称。               |
+| uid<sup>8+</sup>                     | number   | 是   | 否   | 用户ID。                  |
+| state<sup>8+</sup>                   | number   | 是   | 否   | Ability状态。                |
+| moduleName<sup>9+</sup> | string   | 是   | 否   | Ability所属的HAP包的名称。    |
+| abilityType<sup>8+</sup> | string   | 是   | 否   | 能力类型、页面或服务等。    |
+
+## ProcessData
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission
+
+**系统API**:该接口为系统接口,三方应用不支持调用。
+
+| 名称                     | 类型     | 可读 | 可写 | 说明                       |
+| ----------------------- | ---------| ---- | ---- | ------------------------- |
+| pid<sup>8+</sup>         | number   | 是   | 否   | 进程ID。                    |
+| bundleName<sup>8+</sup>  | string   | 是   | 否  | 应用包名。                  |
+| uid<sup>8+</sup>         | number   | 是   | 否   | 用户ID。                  |
+
+
+
 ## ProcessRunningInfo
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md
index 447df9f4cb228e42e98ba27916768b987d9b67d1..f42b90abb0d58da82d213a56dff3f0a9bad5b56a 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-audio.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md
@@ -36,6 +36,24 @@ getAudioManager(): AudioManager
 var audioManager = audio.getAudioManager();
 ```
 
+## audio.getStreamManager<sup>9+</sup>
+
+getStreamManager(): AudioStreamManager
+
+获取音频流管理器实例。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Core
+
+**返回值:**
+| 类型                                             | 说明                             |
+| -------------------------------------------------| ------------------------------- |
+| [AudioStreamManager](#audiostreammanager9)       | 返回音频流管理器实例。            |
+
+**示例:**
+```
+var audioStreamManager = audio.getStreamManager();
+```
+
 ## audio.createAudioRenderer<sup>8+</sup>
 
 createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void
@@ -44,7 +62,7 @@ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<Audi
 
 **系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
-**参数**:
+**参数:**:
 
 | 参数名   | 类型                                            | 必填 | 说明             |
 | -------- | ----------------------------------------------- | ---- | ---------------- |
@@ -56,31 +74,30 @@ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<Audi
 ```
 import audio from '@ohos.multimedia.audio';
 var audioStreamInfo = {
-    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
-    channels: audio.AudioChannel.CHANNEL_1,
-    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
-    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
 }
 
 var audioRendererInfo = {
-    content: audio.ContentType.CONTENT_TYPE_SPEECH,
-    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
-    rendererFlags: 1
+  content: audio.ContentType.CONTENT_TYPE_SPEECH,
+  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+  rendererFlags: 0
 }
 
 var audioRendererOptions = {
-    streamInfo: audioStreamInfo,
-    rendererInfo: audioRendererInfo
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
 }
 
 audio.createAudioRenderer(audioRendererOptions,(err, data) => {
-    if (err) {
-        console.error(`AudioRenderer Created : Error: ${err.message}`);
-    }
-    else {
-        console.info('AudioRenderer Created : Success : SUCCESS');
-        let audioRenderer = data;
-    }
+  if (err) {
+    console.error(`AudioRenderer Created: Error: ${err.message}`);
+  } else {
+    console.info('AudioRenderer Created: Success: SUCCESS');
+    let audioRenderer = data;
+  }
 });
 ```
 
@@ -110,29 +127,29 @@ createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\>
 import audio from '@ohos.multimedia.audio';
 
 var audioStreamInfo = {
-    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
-    channels: audio.AudioChannel.CHANNEL_1,
-    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
-    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
 }
 
 var audioRendererInfo = {
-    content: audio.ContentType.CONTENT_TYPE_SPEECH,
-    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
-    rendererFlags: 1
+  content: audio.ContentType.CONTENT_TYPE_SPEECH,
+  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+  rendererFlags: 0
 }
 
 var audioRendererOptions = {
-    streamInfo: audioStreamInfo,
-    rendererInfo: audioRendererInfo
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
 }
 
 var audioRenderer;
 audio.createAudioRenderer(audioRendererOptions).then((data) => {
-    audioRenderer = data;
-    console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
+  audioRenderer = data;
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
 }).catch((err) => {
-    console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : '+err.message);
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ' + err.message);
 });
 ```
 
@@ -156,30 +173,29 @@ createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<Audio
 ```
 import audio from '@ohos.multimedia.audio';
 var audioStreamInfo = {
-    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
-    channels: audio.AudioChannel.CHANNEL_2,
-    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
-    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_2,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
 }
 
 var audioCapturerInfo = {
-    source: audio.SourceType.SOURCE_TYPE_MIC,
-    capturerFlags: 1
+  source: audio.SourceType.SOURCE_TYPE_MIC,
+  capturerFlags: 0
 }
 
 var audioCapturerOptions = {
-    streamInfo: audioStreamInfo,
-    capturerInfo: audioCapturerInfo
+  streamInfo: audioStreamInfo,
+  capturerInfo: audioCapturerInfo
 }
 
-audio.createAudioCapturer(audioCapturerOptions,(err, data) => {
-    if (err) {
-        console.error(`AudioCapturer Created : Error: ${err.message}`);
-    }
-    else {
-        console.info('AudioCapturer Created : Success : SUCCESS');
-        let audioCapturer = data;
-    }
+audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
+  if (err) {
+    console.error(`AudioCapturer Created : Error: ${err.message}`);
+  } else {
+    console.info('AudioCapturer Created : Success : SUCCESS');
+    let audioCapturer = data;
+  }
 });
 ```
 
@@ -209,28 +225,28 @@ createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\>
 import audio from '@ohos.multimedia.audio';
 
 var audioStreamInfo = {
-    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
-    channels: audio.AudioChannel.CHANNEL_2,
-    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
-    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_2,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
 }
 
 var audioCapturerInfo = {
-    source: audio.SourceType.SOURCE_TYPE_MIC,
-    capturerFlags: 1
+  source: audio.SourceType.SOURCE_TYPE_MIC,
+  capturerFlags: 0
 }
 
 var audioCapturerOptions = {
-    streamInfo: audioStreamInfo,
-    capturerInfo: audioCapturerInfo
+  streamInfo: audioStreamInfo,
+  capturerInfo: audioCapturerInfo
 }
 
 var audioCapturer;
 audio.createAudioCapturer(audioCapturerOptions).then((data) => {
-    audioCapturer = data;
-    console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
+  audioCapturer = data;
+  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
 }).catch((err) => {
-    console.info('AudioCapturer Created : ERROR : '+err.message);
+  console.info('AudioCapturer Created : ERROR : ' + err.message);
 });
 ```
 
@@ -252,7 +268,7 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 
 枚举,焦点模型。
 
-**系统能力:** SystemCapability.Multimedia.Audio.InterruptMode
+**系统能力:** SystemCapability.Multimedia.Audio.Core
 
 | 名称                         | 默认值 | 描述       |
 | ---------------------------- | ------ | ---------- |
@@ -331,13 +347,14 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
 
-| 名称                  | 默认值 | 描述                       |
-| --------------------- | ------ | -------------------------- |
-| SAMPLE_FORMAT_INVALID | -1     | 无效格式。                 |
-| SAMPLE_FORMAT_U8      | 0      | 无符号8位整数。            |
-| SAMPLE_FORMAT_S16LE   | 1      | 带符号的16位整数,小尾数。 |
-| SAMPLE_FORMAT_S24LE   | 2      | 带符号的24位整数,小尾数。 |
-| SAMPLE_FORMAT_S32LE   | 3      | 带符号的32位整数,小尾数。 |
+| 名称                                | 默认值 | 描述                       |
+| ---------------------------------- | ------ | -------------------------- |
+| SAMPLE_FORMAT_INVALID              | -1     | 无效格式。                 |
+| SAMPLE_FORMAT_U8                   | 0      | 无符号8位整数。            |
+| SAMPLE_FORMAT_S16LE                | 1      | 带符号的16位整数,小尾数。 |
+| SAMPLE_FORMAT_S24LE                | 2      | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
+| SAMPLE_FORMAT_S32LE                | 3      | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
+| SAMPLE_FORMAT_F32LE<sup>9+</sup>   | 4      | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
 
 ## AudioChannel<sup>8+</sup>
 
@@ -409,6 +426,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 | STREAM_USAGE_VOICE_COMMUNICATION   | 2      | 语音通信。 |
 | STREAM_USAGE_NOTIFICATION_RINGTONE | 6      | 通知铃声。 |
 
+## FocusType<sup>9+</sup>
+
+表示焦点类型的枚举。
+
+**系统能力:**: SystemCapability.Multimedia.Audio.Core
+
+| 名称                               | 默认值  | 描述                            |
+| ---------------------------------- | ------ | ------------------------------- |
+| FOCUS_TYPE_RECORDING               | 0      |  在录制场景使用,可打断其他音频。  |
+
+
 ## AudioState<sup>8+</sup>
 
 枚举,音频状态。
@@ -510,6 +538,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 | usage         | [StreamUsage](#streamusage) | 是   | 音频流使用类型。 |
 | rendererFlags | number                      | 是   | 音频渲染器标志。 |
 
+## AudioRendererFlag<sup>9+</sup>
+
+枚举,决定输出策略的音频渲染器标志。
+
+**系统能力**: SystemCapability.Multimedia.Audio.Core
+
+| 名称              | 默认值        | 说明                   |
+| ------------------| ------------ | ---------------------- |
+| FLAG_NONE         | 0            | 无特殊策略。            |
+| FLAG_LOW_LATENCY  | 1            | 使用低延迟进程的标志。   |
+
 ## AudioRendererOptions<sup>8+</sup>
 
 音频渲染器选项信息。
@@ -576,12 +615,12 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 
 描述设备连接状态变化和设备信息。
 
-**系统能力:**SystemCapability.Multimedia.Audio.Device
+**系统能力:** SystemCapability.Multimedia.Audio.Device
 
 | 名称              | 类型                                              | 必填 | 说明               |
 | :---------------- | :------------------------------------------------ | :--- | :----------------- |
-| type              | [DeviceChangeType](#DeviceChangeType)             | 是   | 设备连接状态变化。 |
-| deviceDescriptors | [AudioDeviceDescriptors](#AudioDeviceDescriptors) | 是   | 设备信息。         |
+| type              | [DeviceChangeType](#devicechangetype)             | 是   | 设备连接状态变化。 |
+| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是   | 设备信息。         |
 
 ## DeviceChangeType
 
@@ -616,6 +655,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
 | source        | [SourceType](#sourcetype) | 是   | 音源类型。       |
 | capturerFlags | number                    | 是   | 音频采集器标志。 |
 
+## AudioRendererDataInfo<sup>9+</sup>
+
+音频渲染器的数据信息。
+
+**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+
+| 名称    | 类型        | 必填    | 说明                     |
+| ------- | ----------- | -------| ------------------------ |
+| buffer  | ArrayBuffer | 是     | 要填充的缓冲区。          |
+| flags   | number      | 是     | 缓冲区扩展信息。          |
+
 ## SourceType<sup>8+</sup><a name="sourcetype"></a>
 
 枚举,音源类型。
@@ -651,7 +701,7 @@ setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&l
 
 设置指定流的音量,使用callback方式异步返回结果。
 
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY<br/>仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
 
 **系统能力:** SystemCapability.Multimedia.Audio.Volume
 
@@ -667,11 +717,11 @@ setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&l
 
 ```
 audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
-    if (err) {
-        console.error('Failed to set the volume. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate a successful volume setting.');
+  if (err) {
+    console.error('Failed to set the volume. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate a successful volume setting.');
 });
 ```
 
@@ -681,7 +731,7 @@ setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
 
 设置指定流的音量,使用Promise方式异步返回结果。
 
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY<br/>仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
 
 **系统能力:** SystemCapability.Multimedia.Audio.Volume
 
@@ -702,7 +752,7 @@ setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
 
 ```
 audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
-    console.log('Promise returned to indicate a successful volume setting.');
+  console.log('Promise returned to indicate a successful volume setting.');
 });
 ```
 
@@ -725,11 +775,11 @@ getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): v
 
 ```
 audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
-   if (err) {
-       console.error('Failed to obtain the volume. ${err.message}');
-       return;
-   }
-   console.log('Callback invoked to indicate that the volume is obtained.');
+  if (err) {
+    console.error('Failed to obtain the volume. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the volume is obtained.');
 });
 ```
 
@@ -757,7 +807,7 @@ getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
 
 ```
 audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
-    console.log('Promise returned to indicate that the volume is obtained.' + value);
+  console.log('Promise returned to indicate that the volume is obtained.' + value);
 });
 ```
 
@@ -780,11 +830,11 @@ getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;)
 
 ```
 audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
-    if (err) {
-        console.error('Failed to obtain the minimum volume. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the minimum volume is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the minimum volume. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the minimum volume is obtained.' + value);
 });
 ```
 
@@ -812,7 +862,7 @@ getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
 
 ```
 audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
-    console.log('Promised returned to indicate that the minimum volume is obtained.' + value);
+  console.log('Promised returned to indicate that the minimum volume is obtained.' + value);
 });
 ```
 
@@ -835,11 +885,11 @@ getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;)
 
 ```
 audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
-    if (err) {
-        console.error('Failed to obtain the maximum volume. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the maximum volume is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the maximum volume. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the maximum volume is obtained.' + value);
 });
 ```
 
@@ -867,7 +917,7 @@ getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
 
 ```
 audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
-    console.log('Promised returned to indicate that the maximum volume is obtained.');
+  console.log('Promised returned to indicate that the maximum volume is obtained.');
 });
 ```
 
@@ -877,7 +927,7 @@ mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void
 
 设置指定音量流静音,使用callback方式异步返回结果。
 
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY<br/>仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
 
 **系统能力:** SystemCapability.Multimedia.Audio.Volume
 
@@ -893,11 +943,11 @@ mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void
 
 ```
 audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
-    if (err) {
-        console.error('Failed to mute the stream. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the stream is muted.');
+  if (err) {
+    console.error('Failed to mute the stream. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the stream is muted.');
 });
 ```
 
@@ -907,7 +957,7 @@ mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
 
 设置指定音量流静音,使用Promise方式异步返回结果。
 
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY<br/>仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
 
 **系统能力:** SystemCapability.Multimedia.Audio.Volume
 
@@ -929,7 +979,7 @@ mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
 
 ```
 audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
-    console.log('Promise returned to indicate that the stream is muted.');
+  console.log('Promise returned to indicate that the stream is muted.');
 });
 ```
 
@@ -953,11 +1003,11 @@ isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): voi
 
 ```
 audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
-   if (err) {
-       console.error('Failed to obtain the mute status. ${err.message}');
-       return;
-   }
-   console.log('Callback invoked to indicate that the mute status of the stream is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the mute status. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the mute status of the stream is obtained.' + value);
 });
 ```
 
@@ -986,7 +1036,7 @@ isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
 
 ```
 audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
-    console.log('Promise returned to indicate that the mute status of the stream is obtained.' + value);
+  console.log('Promise returned to indicate that the mute status of the stream is obtained.' + value);
 });
 ```
 
@@ -1009,11 +1059,11 @@ isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): v
 
 ```
 audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
-    if (err) {
-        console.error('Failed to obtain the active status of the stream. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the active status of the stream is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the active status of the stream. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the active status of the stream is obtained.' + value);
 });
 ```
 
@@ -1041,7 +1091,7 @@ isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
 
 ```
 audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
-    console.log('Promise returned to indicate that the active status of the stream is obtained.' + value);
+  console.log('Promise returned to indicate that the active status of the stream is obtained.' + value);
 });
 ```
 
@@ -1066,11 +1116,11 @@ setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
 
 ```
 audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
-   if (err) {
-       console.error('Failed to set the ringer mode.​ ${err.message}');
-       return;
-    }
-    console.log('Callback invoked to indicate a successful setting of the ringer mode.');
+  if (err) {
+    console.error('Failed to set the ringer mode.​ ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate a successful setting of the ringer mode.');
 });
 ```
 
@@ -1100,7 +1150,7 @@ setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
 
 ```
 audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
-    console.log('Promise returned to indicate a successful setting of the ringer mode.');
+  console.log('Promise returned to indicate a successful setting of the ringer mode.');
 });
 ```
 
@@ -1123,11 +1173,11 @@ getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
 
 ```
 audioManager.getRingerMode((err, value) => {
-   if (err) {
-       console.error('Failed to obtain the ringer mode.​ ${err.message}');
-       return;
-   }
-   console.log('Callback invoked to indicate that the ringer mode is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the ringer mode.​ ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the ringer mode is obtained.' + value);
 });
 ```
 
@@ -1150,7 +1200,7 @@ getRingerMode(): Promise&lt;AudioRingMode&gt;
 
 ```
 audioManager.getRingerMode().then((value) => {
-    console.log('Promise returned to indicate that the ringer mode is obtained.' + value);
+  console.log('Promise returned to indicate that the ringer mode is obtained.' + value);
 });
 ```
 
@@ -1178,11 +1228,11 @@ setAudioParameter(key: string, value: string, callback: AsyncCallback&lt;void&gt
 
 ```
 audioManager.setAudioParameter('key_example', 'value_example', (err) => {
-    if (err) {
-        console.error('Failed to set the audio parameter. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate a successful setting of the audio parameter.');
+  if (err) {
+    console.error('Failed to set the audio parameter. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate a successful setting of the audio parameter.');
 });
 ```
 
@@ -1215,7 +1265,7 @@ setAudioParameter(key: string, value: string): Promise&lt;void&gt;
 
 ```
 audioManager.setAudioParameter('key_example', 'value_example').then(() => {
-    console.log('Promise returned to indicate a successful setting of the audio parameter.');
+  console.log('Promise returned to indicate a successful setting of the audio parameter.');
 });
 ```
 
@@ -1240,11 +1290,11 @@ getAudioParameter(key: string, callback: AsyncCallback&lt;string&gt;): void
 
 ```
 audioManager.getAudioParameter('key_example', (err, value) => {
-    if (err) {
-        console.error('Failed to obtain the value of the audio parameter. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the value of the audio parameter is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the value of the audio parameter. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the value of the audio parameter is obtained.' + value);
 });
 ```
 
@@ -1274,7 +1324,7 @@ getAudioParameter(key: string): Promise&lt;string&gt;
 
 ```
 audioManager.getAudioParameter('key_example').then((value) => {
-    console.log('Promise returned to indicate that the value of the audio parameter is obtained.' + value);
+  console.log('Promise returned to indicate that the value of the audio parameter is obtained.' + value);
 });
 ```
 
@@ -1296,11 +1346,11 @@ getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescrip
 **示例:**
 ```
 audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
-   if (err) {
-       console.error('Failed to obtain the device list. ${err.message}');
-       return;
-   }
-   console.log('Callback invoked to indicate that the device list is obtained.');
+  if (err) {
+    console.error('Failed to obtain the device list. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the device list is obtained.');
 });
 ```
 
@@ -1328,7 +1378,7 @@ getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
 
 ```
 audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
-    console.log('Promise returned to indicate that the device list is obtained.');
+  console.log('Promise returned to indicate that the device list is obtained.');
 });
 ```
 
@@ -1352,11 +1402,11 @@ setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCa
 
 ```
 audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
-    if (err) {
-        console.error('Failed to set the active status of the device. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the device is set to the active status.');
+  if (err) {
+    console.error('Failed to set the active status of the device. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the device is set to the active status.');
 });
 ```
 
@@ -1386,7 +1436,7 @@ setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise&lt;void&
 
 ```
 audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
-    console.log('Promise returned to indicate that the device is set to the active status.');
+  console.log('Promise returned to indicate that the device is set to the active status.');
 });
 ```
 
@@ -1409,11 +1459,11 @@ isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback&lt;boolean&
 
 ```
 audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
-    if (err) {
-        console.error('Failed to obtain the active status of the device. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the active status of the device is obtained.');
+  if (err) {
+    console.error('Failed to obtain the active status of the device. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the active status of the device is obtained.');
 });
 ```
 
@@ -1442,7 +1492,7 @@ isDeviceActive(deviceType: ActiveDeviceType): Promise&lt;boolean&gt;
 
 ```
 audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
-    console.log('Promise returned to indicate that the active status of the device is obtained.' + value);
+  console.log('Promise returned to indicate that the active status of the device is obtained.' + value);
 });
 ```
 
@@ -1467,11 +1517,11 @@ setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
 
 ```
 audioManager.setMicrophoneMute(true, (err) => {
-    if (err) {
-        console.error('Failed to mute the microphone. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the microphone is muted.');
+  if (err) {
+    console.error('Failed to mute the microphone. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the microphone is muted.');
 });
 ```
 
@@ -1501,7 +1551,7 @@ setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
 
 ```
 audioManager.setMicrophoneMute(true).then(() => {
-    console.log('Promise returned to indicate that the microphone is muted.');
+  console.log('Promise returned to indicate that the microphone is muted.');
 });
 ```
 
@@ -1525,11 +1575,11 @@ isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
 
 ```
 audioManager.isMicrophoneMute((err, value) => {
-    if (err) {
-        console.error('Failed to obtain the mute status of the microphone. ${err.message}');
-        return;
-    }
-    console.log('Callback invoked to indicate that the mute status of the microphone is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the mute status of the microphone. ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the mute status of the microphone is obtained.' + value);
 });
 ```
 
@@ -1554,7 +1604,7 @@ isMicrophoneMute(): Promise&lt;boolean&gt;
 
 ```
 audioManager.isMicrophoneMute().then((value) => {
-    console.log('Promise returned to indicate that the mute status of the microphone is obtained.', + value);
+  console.log('Promise returned to indicate that the mute status of the microphone is obtained.', + value);
 });
 ```
 
@@ -1566,6 +1616,8 @@ on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
 
 此接口为系统接口,三方应用不支持调用。
 
+目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
+
 **系统能力:** SystemCapability.Multimedia.Audio.Volume
 
 **参数:**
@@ -1579,9 +1631,9 @@ on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
 
 ```
 audioManager.on('volumeChange', (volumeEvent) => {
-    console.log('VolumeType of stream: ' + volumeEvent.volumeType);
-    console.log('Volume level: ' + volumeEvent.volume);
-    console.log('Whether to updateUI: ' + volumeEvent.updateUi);
+  console.log('VolumeType of stream: ' + volumeEvent.volumeType);
+  console.log('Volume level: ' + volumeEvent.volume);
+  console.log('Whether to updateUI: ' + volumeEvent.updateUi);
 });
 ```
 
@@ -1606,7 +1658,7 @@ on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
 
 ```
 audioManager.on('ringerModeChange', (ringerMode) => {
-    console.log('Updated ringermode: ' + ringerMode);
+  console.log('Updated ringermode: ' + ringerMode);
 });
 ```
 
@@ -1623,16 +1675,16 @@ on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void
 | 参数名   | 类型                                                 | 必填 | 说明                                       |
 | :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
 | type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
-| callback | Callback<[DeviceChangeAction](#DeviceChangeAction)\> | 是   | 获取设备更新详情。                         |
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
 
 **示例:**
 
 ```
 audioManager.on('deviceChange', (deviceChanged) => {
-    console.info("device change type : " + deviceChanged.type);
-    console.info("device descriptor size : " + deviceChanged.deviceDescriptors.length);
-    console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceRole);
-    console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceType);
+  console.info("device change type : " + deviceChanged.type);
+  console.info("device descriptor size : " + deviceChanged.deviceDescriptors.length);
+  console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceRole);
+  console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceType);
 });
 ```
 
@@ -1649,13 +1701,13 @@ off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
 | 参数名   | 类型                                                | 必填 | 说明                                       |
 | -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
 | type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
-| callback | Callback<[DeviceChangeAction](#DeviceChangeAction)> | 否   | 获取设备更新详情。                         |
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
 
 **示例:**
 
 ```
 audioManager.off('deviceChange', (deviceChanged) => {
-    console.log("Should be no callback.");
+  console.log("Should be no callback.");
 });
 ```
 
@@ -1679,19 +1731,19 @@ on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAc
 
 ```
 var interAudioInterrupt = {
-    streamUsage:2,
-    contentType:0,
-    pauseWhenDucked:true
+  streamUsage:2,
+  contentType:0,
+  pauseWhenDucked:true
 };
 audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
-    if (InterruptAction.actionType === 0) {
-        console.log("An event to gain the audio focus starts.");
-        console.log("Focus gain event:" + JSON.stringify(InterruptAction));
-    }
-    if (InterruptAction.actionType === 1) {
-        console.log("An audio interruption event starts.");
-        console.log("Audio interruption event:" + JSON.stringify(InterruptAction));
-    }
+  if (InterruptAction.actionType === 0) {
+    console.log("An event to gain the audio focus starts.");
+    console.log("Focus gain event:" + JSON.stringify(InterruptAction));
+  }
+  if (InterruptAction.actionType === 1) {
+    console.log("An audio interruption event starts.");
+    console.log("Audio interruption event:" + JSON.stringify(InterruptAction));
+  }
 });
 ```
 
@@ -1715,15 +1767,15 @@ off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<Interrupt
 
 ```
 var interAudioInterrupt = {
-    streamUsage:2,
-    contentType:0,
-    pauseWhenDucked:true
+  streamUsage:2,
+  contentType:0,
+  pauseWhenDucked:true
 };
 audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
-    if (InterruptAction.actionType === 0) {
-        console.log("An event to release the audio focus starts.");
-        console.log("Focus release event:" + JSON.stringify(InterruptAction));
-    }
+  if (InterruptAction.actionType === 0) {
+      console.log("An event to release the audio focus starts.");
+      console.log("Focus release event:" + JSON.stringify(InterruptAction));
+  }
 });
 ```
 
@@ -1748,11 +1800,11 @@ setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void
 
 ```
 audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
-   if (err) {
-       console.error('Failed to set the audio scene mode.​ ${err.message}');
-       return;
-    }
-    console.log('Callback invoked to indicate a successful setting of the audio scene mode.');
+  if (err) {
+    console.error('Failed to set the audio scene mode.​ ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate a successful setting of the audio scene mode.');
 });
 ```
 
@@ -1782,9 +1834,9 @@ setAudioScene\(scene: AudioScene\): Promise<void\>
 
 ```
 audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
-    console.log('Promise returned to indicate a successful setting of the audio scene mode.');
+  console.log('Promise returned to indicate a successful setting of the audio scene mode.');
 }).catch ((err) => {
-    console.log('Failed to set the audio scene mode');
+  console.log('Failed to set the audio scene mode');
 });
 ```
 
@@ -1806,11 +1858,11 @@ getAudioScene\(callback: AsyncCallback<AudioScene\>\): void
 
 ```
 audioManager.getAudioScene((err, value) => {
-   if (err) {
-       console.error('Failed to obtain the audio scene mode.​ ${err.message}');
-       return;
-   }
-   console.log('Callback invoked to indicate that the audio scene mode is obtained.' + value);
+  if (err) {
+    console.error('Failed to obtain the audio scene mode.​ ${err.message}');
+    return;
+  }
+  console.log('Callback invoked to indicate that the audio scene mode is obtained.' + value);
 });
 ```
 
@@ -1833,9 +1885,513 @@ getAudioScene\(\): Promise<AudioScene\>
 
 ```
 audioManager.getAudioScene().then((value) => {
-    console.log('Promise returned to indicate that the audio scene mode is obtained.' + value);
+  console.log('Promise returned to indicate that the audio scene mode is obtained.' + value);
 }).catch ((err) => {
-    console.log('Failed to obtain the audio scene mode');
+  console.log('Failed to obtain the audio scene mode');
+});
+```
+
+## AudioStreamManager<sup>9+</sup>
+
+管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#audiogetstreammanager9)获取AudioStreamManager实例。
+
+### getCurrentAudioRendererInfoArray<sup>9+</sup>
+
+getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeInfoArray&gt;): void
+
+获取当前音频渲染器的信息。使用callback异步回调。
+
+**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称     | 类型                                 | 必填     | 说明                         |
+| -------- | ----------------------------------- | -------- | --------------------------- |
+| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是     |  回调函数,返回当前音频渲染器的信息。 |
+
+**示例:**
+```
+audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
+  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
+  if (err) {
+    console.log('getCurrentAudioRendererInfoArray :ERROR: '+ err.message);
+    resultFlag = false;
+  } else {
+    if (AudioRendererChangeInfoArray != null) {
+      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+        AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+        console.info('StreamId for' + i + 'is:' + AudioRendererChangeInfo.streamId);
+        console.info('ClientUid for' + i + 'is:' + AudioRendererChangeInfo.clientUid);
+        console.info('Content' + i + 'is:' + AudioRendererChangeInfo.rendererInfo.content);
+        console.info('Stream'+ i + 'is:' + AudioRendererChangeInfo.rendererInfo.usage);
+        console.info('Flag'+ i +' is:' + AudioRendererChangeInfo.rendererInfo.rendererFlags); 
+        console.info('State for' + i +' is:' + AudioRendererChangeInfo.rendererState);  
+        var devDescriptor = AudioRendererChangeInfo.deviceDescriptors;
+        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+          console.info('Id:' + i +':' + AudioRendererChangeInfo.deviceDescriptors[j].id);
+          console.info('Type:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceType);
+          console.info('Role:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceRole);
+          console.info('Name:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].name);
+          console.info('Address:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].address);
+          console.info('SampleRates:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]);
+          console.info('ChannelCount' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]);
+          console.info('ChannelMask:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelMasks);
+        }
+      }
+    }
+  }
+});
+```
+
+### getCurrentAudioRendererInfoArray<sup>9+</sup>
+
+getCurrentAudioRendererInfoArray(): Promise&lt;AudioRendererChangeInfoArray&gt;
+
+获取当前音频渲染器的信息。使用Promise异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**返回值:**
+
+| 类型                                                                              | 说明                                    |
+| ---------------------------------------------------------------------------------| --------------------------------------- |
+| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)>          | Promise对象,返回当前音频渲染器信息。      |
+
+**示例:**
+```
+await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
+  console.info('getCurrentAudioRendererInfoArray ######### Get Promise is called ##########');
+  if (AudioRendererChangeInfoArray != null) {
+    for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+      AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+      console.info('StreamId for ' + i +' is:' + AudioRendererChangeInfo.streamId);
+      console.info('ClientUid for ' + i + ' is:' + AudioRendererChangeInfo.clientUid);
+      console.info('Content ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.content);
+      console.info('Stream' + i +' is:' + AudioRendererChangeInfo.rendererInfo.usage);
+      console.info('Flag' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.rendererFlags); 
+      console.info('State for ' + i + ' is:' + AudioRendererChangeInfo.rendererState);  
+      var devDescriptor = AudioRendererChangeInfo.deviceDescriptors;
+      for (let j = 0; j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+        console.info('Id:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].id);
+        console.info('Type:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceType);
+        console.info('Role:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceRole);
+        console.info('Name:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].name);
+        console.info('Address:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].address);
+        console.info('SampleRates:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]);
+        console.info('ChannelCounts' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]);
+        console.info('ChannnelMask:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelMasks);
+      }
+    }
+  }
+}).catch((err) => {
+  console.log('getCurrentAudioRendererInfoArray :ERROR: ' + err.message);
+});
+```
+
+### getCurrentAudioCapturerInfoArray<sup>9+</sup>
+
+getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeInfoArray&gt;): void
+
+获取当前音频采集器的信息。使用callback异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称       | 类型                                 | 必填      | 说明                                                      |
+| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
+| callback   | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是    | 回调函数,返回当前音频采集器的信息。 |
+
+**示例:**
+```
+audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
+  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
+  if (err) {
+    console.log('getCurrentAudioCapturerInfoArray :ERROR: '+err.message);
+  } else {
+    if (AudioCapturerChangeInfoArray != null) {
+      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+        console.info('StreamId for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].streamId);
+        console.info('ClientUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+        console.info('Source for '+ i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+        console.info('Flag ' + i +'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+        console.info('State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);  
+        var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+          console.info('Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+          console.info('Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+          console.info('Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+          console.info('Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name);
+          console.info('Address:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+          console.info('SampleRates:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+          console.info('ChannelCounts' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+          console.info('ChannelMask:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+        }
+      }
+    }
+  }
+});
+```
+
+### getCurrentAudioCapturerInfoArray<sup>9+</sup>
+
+getCurrentAudioCapturerInfoArray(): Promise&lt;AudioCapturerChangeInfoArray&gt;
+
+获取当前音频采集器的信息。使用Promise异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**返回值:**
+
+| 类型                                                                         | 说明                                 |
+| -----------------------------------------------------------------------------| ----------------------------------- |
+| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)>      | Promise对象,返回当前音频渲染器信息。  |
+
+**示例:**
+```
+await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
+  console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
+  if (AudioCapturerChangeInfoArray != null) {
+    for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+      console.info('StreamId for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].streamId);
+      console.info('ClientUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+      console.info('Source for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+      console.info('Flag ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+      console.info('State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);  
+      var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+      for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+        console.info('Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+        console.info('Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+        console.info('Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+        console.info('Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name)
+        console.info('Address:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+        console.info('SampleRates:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+        console.info('ChannelCounts' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+        console.info('ChannelMask:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+      }
+    }
+  }
+}).catch((err) => {
+  console.log('getCurrentAudioCapturerInfoArray :ERROR: ' + err.message);
+});
+```
+
+### on('audioRendererChange')<sup>9+</sup>
+
+on(type: "audioRendererChange", callback: Callback&lt;AudioRendererChangeInfoArray&gt;): void
+
+监听音频渲染器更改事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称     | 类型        | 必填      | 说明                                                                     |
+| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
+| type     | string     | 是        | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。     |
+| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是  |  回调函数。        |
+
+**示例:**
+```
+audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
+  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+    AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+    console.info('## RendererChange on is called for ' + i + ' ##');
+    console.info('StreamId for ' + i + ' is:' + AudioRendererChangeInfo.streamId);
+    console.info('ClientUid for ' + i + ' is:' + AudioRendererChangeInfo.clientUid);
+    console.info('Content for ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.content);
+    console.info('Stream for ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.usage);
+    console.info('Flag ' + i + ' is:' + AudioRendererChangeInfo.rendererInfo.rendererFlags);
+    console.info('State for ' + i + ' is:' + AudioRendererChangeInfo.rendererState);  
+    var devDescriptor = AudioRendererChangeInfo.deviceDescriptors;
+    for (let j = 0; j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+      console.info('Id:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].id);
+      console.info('Type:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceType);
+      console.info('Role:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].deviceRole);
+      console.info('Name:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].name);
+      console.info('Address:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].address);
+      console.info('SampleRates:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]);
+      console.info('ChannelCounts' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]);
+      console.info('ChannelMask:' + i + ':' + AudioRendererChangeInfo.deviceDescriptors[j].channelMasks);
+    }
+  }
+});
+```
+
+### off('audioRendererChange')<sup>9+</sup>
+
+off(type: "audioRendererChange");
+
+取消监听音频渲染器更改事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称     | 类型     | 必填 | 说明              |
+| -------- | ------- | ---- | ---------------- |
+| type     | string  | 是   | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |
+
+**示例:**
+```
+audioStreamManager.off('audioRendererChange');
+console.info('######### RendererChange Off is called #########');
+```
+
+### on('audioCapturerChange')<sup>9+</sup>
+
+on(type: "audioCapturerChange", callback: Callback&lt;AudioCapturerChangeInfoArray&gt;): void
+
+监听音频捕获器更改事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**参数:**
+
+| 名称     | 类型     | 必填      | 说明                                                                                           |
+| -------- | ------- | --------- | ------------------------------------------------------------------- ---- |
+| type     | string  | 是        | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。     |
+| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是     | 回调函数。   |
+
+**示例:**
+```
+audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
+  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+    console.info(' ## CapChange on is called for element ' + i + ' ##');
+    console.info('StreamId for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].streamId);
+    console.info('ClientUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+    console.info('Source for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+    console.info('Flag ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+    console.info('State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);  
+    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+      console.info('Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+      console.info('Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+      console.info('Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+      console.info('Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name);
+      console.info('Address:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+      console.info('SampleRates:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+      console.info('ChannelCounts' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+      console.info('ChannelMask:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+    }
+  }
+});
+```
+
+### off('audioCapturerChange')<sup>9+</sup>
+
+off(type: "audioCapturerChange");
+
+取消监听音频捕获器更改事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**参数:**
+
+| 名称      | 类型     | 必填 | 说明                                                          |
+| -------- | -------- | --- | ------------------------------------------------------------- |
+| type     | string   |是   | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
+
+**示例:**
+```
+audioStreamManager.off('audioCapturerChange');
+console.info('######### CapturerChange Off is called #########');
+
+```
+
+### isAudioRendererLowLatencySupported<sup>9+</sup>
+
+isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo, callback: Callback&lt;boolean&gt;): void;
+
+检查系统是否支持音频渲染器中的低延迟配置。使用callback异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称       |  类型                   | 必填      | 说明                                    |
+| ---------- | ----------------------- | -------- | --------------------------------------- |
+| streaminfo | [AudioStreamInfo](#audiostreaminfo8)         |  是      | 音频渲染器流信息。  |
+| callback   | Callback&lt;boolean&gt; |  是      | 返回系统是否支持音频渲染器中的低延迟配置。 |
+
+**示例:**
+
+```
+var audioManager = audio.getAudioManager();
+
+var AudioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioStreamManager = audioManager.getStreamManager();
+audioStreamManager.isAudioRendererLowLatencySupported(AudioStreamInfo, (result) => {
+  console.info('isAudioRendererLowLatencySupported success var = ' + result);
+});
+```
+
+### isAudioRendererLowLatencySupported<sup>9+</sup>
+
+isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo): Promise&lt;boolean&gt;
+
+检查系统是否支持音频渲染器中的低延迟配置。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 参数名     | 类型                                  | 必填 | 说明         |
+| ---------- | ------------------------------------ | ---- | ------------|
+| streaminfo | [AudioStreamInfo](#audiostreaminfo8) | 是   | 数据流信息   |
+
+**返回值:**
+
+| 类型                | 说明                                                  |
+| ------------------- | ---------------------------------------------------- |
+| Promise&lt;void&gt; | Promise方式异步返回系统是否支持音频渲染器中的低延迟配置。 |
+
+**示例:**
+
+```
+var audioManager = audio.getAudioManager();
+
+var AudioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioStreamManager = await audioManager.getStreamManager();
+var result = audioStreamManager.isAudioRendererLowLatencySupported(AudioStreamInfo);
+console.info('isAudioRendererLowLatencySupported success var =' + result);
+```
+
+## AudioRendererChangeInfo<sup>9+</sup>
+
+描述音频渲染器更改信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
+
+| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
+| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
+| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
+| clientUid          | number                                    | 是   | 否   | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口,三方应用不支持调用。 |
+| rendererInfo       | [AudioRendererInfo](#audiorendererinfo8)  | 是   | 否   | 音频渲染器信息。               |
+| rendererState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口,三方应用不支持调用。|
+
+## AudioRendererChangeInfoArray<sup>9+</sup>
+
+AudioRenderChangeInfo数组,只读。
+
+**系统能力:**: SystemCapability.Multimedia.Audio.Renderer
+
+**示例:**
+
+```
+import audio from '@ohos.multimedia.audio';
+
+var audioStreamManager;
+var audioStreamManagerCB;
+var Tag = "AFCapLog : ";
+var resultFlag = false;
+
+await audioManager.getStreamManager().then(async function (data) {
+  audioStreamManager = data;
+  console.info(Tag + 'Get AudioStream Manager : Success ');
+}).catch((err) => {
+  console.info(Tag + 'Get AudioStream Manager : ERROR : ' + err.message);
+});
+
+audioManager.getStreamManager((err, data) => {
+  if (err) {
+    console.error(Tag + 'Get AudioStream Manager : ERROR : ' + err.message);
+  } else {
+    audioStreamManagerCB = data;
+    console.info(Tag + 'Get AudioStream Manager : Success ');
+  }
+});
+
+audioStreamManagerCB.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
+  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+    console.info(Tag+'## RendererChange on is called for ' + i + ' ##');
+    console.info(Tag+'StreamId for ' + i + 'is:' + AudioRendererChangeInfoArray[i].streamId);
+    console.info(Tag+'ClientUid for ' + i + 'is:' + AudioRendererChangeInfoArray[i].clientUid);
+    console.info(Tag+'Content for ' + i + 'is:' + AudioRendererChangeInfoArray[i].rendererInfo.content);
+    console.info(Tag+'Stream for ' + i + 'is:' + AudioRendererChangeInfoArray[i].rendererInfo.usage);
+    console.info(Tag+'Flag ' + i + 'is:' + AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags);
+    console.info(Tag+'State for ' + i + 'is:' + AudioRendererChangeInfoArray[i].rendererState);
+  	var devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
+  	for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
+  	  console.info(Tag+'Id:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].id);
+  	  console.info(Tag+'Type:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType);
+  	  console.info(Tag+'Role:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+  	  console.info(Tag+'Name:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].name);
+  	  console.info(Tag+'Addr:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].address);
+  	  console.info(Tag+'SR:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+  	  console.info(Tag+'C' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+  	  console.info(Tag+'CM:' + i + ':' + AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+  	}
+    if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
+      resultFlag = true;
+      console.info(Tag + 'ResultFlag for '+ i +' is:'+ resultFlag);
+    }
+  }
+});
+```
+
+## AudioCapturerChangeInfo<sup>9+</sup>
+
+描述音频捕获器更改信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Capturer
+
+| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
+| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
+| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
+| clientUid          | number                                    | 是   | 否   | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口,三方应用不支持调用。 |
+| capturerInfo       | [AudioCapturerInfo](#audiocapturerinfo8)   | 是   | 否   | 音频渲染器信息。               |
+| capturerState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口,三方应用不支持调用。|
+
+## AudioCapturerChangeInfoArray<sup>9+</sup>
+
+AudioCapturerChangeInfo数组,只读。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**示例:**
+
+```
+import audio from '@ohos.multimedia.audio';
+
+const audioManager = audio.getAudioManager();
+var Tag = "AFCapLog : ";
+var resultFlag = false;
+audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
+  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+    console.info(Tag + ' ## CapChange on is called for element ' + i + ' ##');
+    console.info(Tag + 'StrId for ' + i +'is:' + AudioCapturerChangeInfoArray[i].streamId);
+    console.info(Tag + 'CUid for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].clientUid);
+    console.info(Tag + 'Src for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.source);
+    console.info(Tag + 'Flag ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags);
+    console.info(Tag + 'State for ' + i + 'is:' + AudioCapturerChangeInfoArray[i].capturerState);
+    var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
+      console.info(Tag + 'Id:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id);
+      console.info(Tag + 'Type:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType);
+      console.info(Tag + 'Role:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole);
+      console.info(Tag + 'Name:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name);
+      console.info(Tag + 'Addr:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address);
+      console.info(Tag + 'SR:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]);
+      console.info(Tag + 'C' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]);
+      console.info(Tag + 'CM:' + i + ':' + AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks);
+    }
+    if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
+      resultFlag = true;
+      console.info(Tag + 'ResultFlag for element ' + i + ' is: ' + resultFlag);
+      }
+  }
 });
 ```
 
@@ -1845,10 +2401,16 @@ audioManager.getAudioScene().then((value) => {
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
 
-| 名称       | 类型                    | 可读 | 可写 | 说明       |
-| ---------- | ------------------------- | ---- | ---- | ---------- |
-| deviceRole | [DeviceRole](#devicerole) | 是   | 否   | 设备角色。 |
-| deviceType | [DeviceType](#devicetype) | 是   | 否   | 设备类型。 |
+| 名称                        | 类型                       | 可读 | 可写 | 说明       |
+| -------------------------- | -------------------------- | ---- | ---- | ---------- |
+| deviceRole                 | [DeviceRole](#devicerole)  | 是   | 否   | 设备角色。 |
+| deviceType                 | [DeviceType](#devicetype)  | 是   | 否   | 设备类型。 |
+| id<sup>9+</sup>            | number                     | 是   | 否   | 设备id。  |
+| name<sup>9+</sup>          | string                     | 是   | 否   | 设备名称。 |
+| address<sup>9+</sup>       | string                     | 是   | 否   | 设备地址。 |
+| sampleRates<sup>9+</sup>   | Array&lt;number&gt;        | 是   | 否   | 支持的采样率。 |
+| channelCounts<sup>9+</sup> | Array&lt;number&gt;        | 是   | 否   | 支持的通道数。 |
+| channelMasks<sup>9+</sup>  | Array&lt;number&gt;        | 是   | 否   | 支持的通道掩码。 |
 
 ## AudioDeviceDescriptors
 
@@ -1860,23 +2422,21 @@ audioManager.getAudioScene().then((value) => {
 import audio from '@ohos.multimedia.audio';
 
 function displayDeviceProp(value) {
-    deviceRoleValue = value.deviceRole;
-    deviceTypeValue = value.deviceType;
-
+  deviceRoleValue = value.deviceRole;
+  deviceTypeValue = value.deviceType;
 }
 
 var deviceRoleValue = null;
 var deviceTypeValue = null;
 const promise = audio.getAudioManager().getDevices(1);
 promise.then(function (value) {
-    console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
-    value.forEach(displayDeviceProp);
-    if (deviceTypeValue != null && deviceRoleValue != null){
-        console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
-    }
-    else{
-        console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
-    }
+  console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
+  value.forEach(displayDeviceProp);
+  if (deviceTypeValue != null && deviceRoleValue != null){
+    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
+  } else {
+    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
+  }
 });
 ```
 
@@ -1904,7 +2464,7 @@ getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
 
 获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -1916,10 +2476,10 @@ getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
 
 ```
 audioRenderer.getRendererInfo((err, rendererInfo) => {
-    console.log('Renderer GetRendererInfo:');
-    console.log('Renderer content:' + rendererInfo.content);
-    console.log('Renderer usage:' + rendererInfo.usage);
-    console.log('Renderer flags:' + rendererInfo.rendererFlags);
+  console.log('Renderer GetRendererInfo:');
+  console.log('Renderer content:' + rendererInfo.content);
+  console.log('Renderer usage:' + rendererInfo.usage);
+  console.log('Renderer flags:' + rendererInfo.rendererFlags);
 });
 ```
 
@@ -1929,7 +2489,7 @@ getRendererInfo(): Promise<AudioRendererInfo\>
 
 获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -1942,13 +2502,13 @@ getRendererInfo(): Promise<AudioRendererInfo\>
 ```
 var resultFlag = true;
 audioRenderer.getRendererInfo().then((rendererInfo) => {
-    console.log('Renderer GetRendererInfo:');
-    console.log('Renderer content:' + rendererInfo.content);
-    console.log('Renderer usage:' + rendererInfo.usage);
-    console.log('Renderer flags:' + rendererInfo.rendererFlags);
+  console.log('Renderer GetRendererInfo:');
+  console.log('Renderer content:' + rendererInfo.content);
+  console.log('Renderer usage:' + rendererInfo.usage);
+  console.log('Renderer flags:' + rendererInfo.rendererFlags);
 }).catch((err) => {
-    console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: '+err.message);
-    resultFlag = false;
+  console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: ' + err.message);
+  resultFlag = false;
 });
 ```
 
@@ -1958,7 +2518,7 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
 
 获取音频流信息,使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -1970,11 +2530,11 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
 
 ```
 audioRenderer.getStreamInfo((err, streamInfo) => {
-    console.log('Renderer GetStreamInfo:');
-    console.log('Renderer sampling rate:' + streamInfo.samplingRate);
-    console.log('Renderer channel:' + streamInfo.channels);
-    console.log('Renderer format:' + streamInfo.sampleFormat);
-    console.log('Renderer encoding type:' + streamInfo.encodingType);
+  console.log('Renderer GetStreamInfo:');
+  console.log('Renderer sampling rate:' + streamInfo.samplingRate);
+  console.log('Renderer channel:' + streamInfo.channels);
+  console.log('Renderer format:' + streamInfo.sampleFormat);
+  console.log('Renderer encoding type:' + streamInfo.encodingType);
 });
 ```
 
@@ -1984,7 +2544,7 @@ getStreamInfo(): Promise<AudioStreamInfo\>
 
 获取音频流信息,使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -1996,13 +2556,13 @@ getStreamInfo(): Promise<AudioStreamInfo\>
 
 ```
 audioRenderer.getStreamInfo().then((streamInfo) => {
-    console.log('Renderer GetStreamInfo:');
-    console.log('Renderer sampling rate:' + streamInfo.samplingRate);
-    console.log('Renderer channel:' + streamInfo.channels);
-    console.log('Renderer format:' + streamInfo.sampleFormat);
-    console.log('Renderer encoding type:' + streamInfo.encodingType);
+  console.log('Renderer GetStreamInfo:');
+  console.log('Renderer sampling rate:' + streamInfo.samplingRate);
+  console.log('Renderer channel:' + streamInfo.channels);
+  console.log('Renderer format:' + streamInfo.sampleFormat);
+  console.log('Renderer encoding type:' + streamInfo.encodingType);
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+err.message);
 });
 ```
 
@@ -2012,7 +2572,7 @@ start(callback: AsyncCallback<void\>): void
 
 启动音频渲染器。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2024,11 +2584,11 @@ start(callback: AsyncCallback<void\>): void
 
 ```
 audioRenderer.start((err) => {
-    if (err) {
-        console.error('Renderer start failed.');
-    } else {
-        console.info('Renderer start success.');
-    }
+  if (err) {
+    console.error('Renderer start failed.');
+  } else {
+    console.info('Renderer start success.');
+  }
 });
 ```
 
@@ -2038,7 +2598,7 @@ start(): Promise<void\>
 
 启动音频渲染器。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2050,9 +2610,9 @@ start(): Promise<void\>
 
 ```
 audioRenderer.start().then(() => {
-    console.log('Renderer started');
+  console.log('Renderer started');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: ' + err.message);
 });
 ```
 
@@ -2062,7 +2622,7 @@ pause(callback: AsyncCallback\<void>): void
 
 暂停渲染。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2074,11 +2634,11 @@ pause(callback: AsyncCallback\<void>): void
 
 ```
 audioRenderer.pause((err) => {
-    if (err) {
-        console.error('Renderer pause failed');
-    } else {
-        console.log('Renderer paused.');
-    }
+  if (err) {
+    console.error('Renderer pause failed');
+  } else {
+    console.log('Renderer paused.');
+  }
 });
 ```
 
@@ -2088,7 +2648,7 @@ pause(): Promise\<void>
 
 暂停渲染。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2100,9 +2660,9 @@ pause(): Promise\<void>
 
 ```
 audioRenderer.pause().then(() => {
-    console.log('Renderer paused');
+  console.log('Renderer paused');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+err.message);
 });
 ```
 
@@ -2112,7 +2672,7 @@ drain(callback: AsyncCallback\<void>): void
 
 检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2124,11 +2684,11 @@ drain(callback: AsyncCallback\<void>): void
 
 ```
 audioRenderer.drain((err) => {
-    if (err) {
-        console.error('Renderer drain failed');
-    } else {
-        console.log('Renderer drained.');
-    }
+  if (err) {
+    console.error('Renderer drain failed');
+  } else {
+    console.log('Renderer drained.');
+  }
 });
 ```
 
@@ -2138,7 +2698,7 @@ drain(): Promise\<void>
 
 检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2150,9 +2710,9 @@ drain(): Promise\<void>
 
 ```
 audioRenderer.drain().then(() => {
-    console.log('Renderer drained successfully');
+  console.log('Renderer drained successfully');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+ err.message);
 });
 ```
 
@@ -2162,7 +2722,7 @@ stop(callback: AsyncCallback\<void>): void
 
 停止渲染。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2174,11 +2734,11 @@ stop(callback: AsyncCallback\<void>): void
 
 ```
 audioRenderer.stop((err) => {
-    if (err) {
-        console.error('Renderer stop failed');
-    } else {
-        console.log('Renderer stopped.');
-    }
+  if (err) {
+    console.error('Renderer stop failed');
+  } else {
+    console.log('Renderer stopped.');
+  }
 });
 ```
 
@@ -2188,7 +2748,7 @@ stop(): Promise\<void>
 
 停止渲染。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2200,9 +2760,9 @@ stop(): Promise\<void>
 
 ```
 audioRenderer.stop().then(() => {
-    console.log('Renderer stopped successfully');
+  console.log('Renderer stopped successfully');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: ' + err.message);
 });
 ```
 
@@ -2212,7 +2772,7 @@ release(callback: AsyncCallback\<void>): void
 
 释放音频渲染器。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2224,11 +2784,11 @@ release(callback: AsyncCallback\<void>): void
 
 ```
 audioRenderer.release((err) => {
-    if (err) {
-        console.error('Renderer release failed');
-    } else {
-        console.log('Renderer released.');
-    }
+  if (err) {
+    console.error('Renderer release failed');
+  } else {
+    console.log('Renderer released.');
+  }
 });
 ```
 
@@ -2238,7 +2798,7 @@ release(): Promise\<void>
 
 释放渲染器。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2250,9 +2810,9 @@ release(): Promise\<void>
 
 ```
 audioRenderer.release().then(() => {
-    console.log('Renderer released successfully');
+  console.log('Renderer released successfully');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+ err.message);
 });
 ```
 
@@ -2262,7 +2822,7 @@ write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void
 
 写入缓冲区。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2276,16 +2836,52 @@ write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void
 ```
 import audio from '@ohos.multimedia.audio';
 import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
 
+var audioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+  channels: audio.AudioChannel.CHANNEL_2,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+  content: audio.ContentType.CONTENT_TYPE_SPEECH,
+  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION
+  rendererFlags: 0
+}
+
+var audioRendererOptions = {
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data)=> {
+  audioRenderer = data;
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+  }).catch((err) => {
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message);
+  });
+var bufferSize;
+audioRenderer.getBufferSize().then((data)=> {
+  console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data);
+  bufferSize = data;
+  }).catch((err) => {
+  console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message);
+  });
+console.info('Buffer size:'+bufferSize);
+var context = featureAbility.getContext();
+var path = await context.getCacheDir();
+var filePath = path + "/StarWars10s-2C-48000-4SW.wav";
 let ss = fileio.createStreamSync(filePath, 'r');
 let buf = new ArrayBuffer(bufferSize);
 ss.readSync(buf);
 audioRenderer.write(buf, (err, writtenbytes) => {
-    if (writtenbytes < 0) {
-        console.error('write failed.');
-    } else {
-       console.log('Actual written bytes: ' + writtenbytes);
-    }
+  if (writtenbytes < 0) {
+      console.error('write failed.');
+  } else {
+     console.log('Actual written bytes: ' + writtenbytes);
+  }
 });
 ```
 
@@ -2295,7 +2891,7 @@ write(buffer: ArrayBuffer): Promise\<number>
 
 写入缓冲区。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2308,19 +2904,54 @@ write(buffer: ArrayBuffer): Promise\<number>
 ```
 import audio from '@ohos.multimedia.audio';
 import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
 
+var audioStreamInfo = {
+  samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
+  channels:audio.AudioChannel.CHANNEL_2,
+  sampleFormat:audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+  encodingType:audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+  content: audio.ContentType.CONTENT_TYPE_SPEECH,
+  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+  rendererFlags: 0
+}
+
+var audioRendererOptions = {
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data) => {
+  audioRenderer = data;
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+  }).catch((err) => {
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message);
+  });
+var bufferSize;
+audioRenderer.getBufferSize().then((data) => {
+  console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data);
+  bufferSize = data;
+  }).catch((err) => {
+  console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message);
+  });
+console.info('BufferSize: ' + bufferSize);
+var context = featureAbility.getContext();
+var path = await context.getCacheDir();
 var filePath = 'data/StarWars10s-2C-48000-4SW.wav';
 let ss = fileio.createStreamSync(filePath, 'r');
 let buf = new ArrayBuffer(bufferSize);
 ss.readSync(buf);
 audioRenderer.write(buf).then((writtenbytes) => {
-    if (writtenbytes < 0) {
-        console.error('write failed.');
-    } else {
-        console.log('Actual written bytes: ' + writtenbytes);
-    }
+  if (writtenbytes < 0) {
+      console.error('write failed.');
+  } else {
+      console.log('Actual written bytes: ' + writtenbytes);
+  }
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+    console.log('ERROR: '+ err.message);
 });
 ```
 
@@ -2330,7 +2961,7 @@ getAudioTime(callback: AsyncCallback\<number>): void
 
 获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2342,7 +2973,7 @@ getAudioTime(callback: AsyncCallback\<number>): void
 
 ```
 audioRenderer.getAudioTime((err, timestamp) => {
-    console.log('Current timestamp: ' + timestamp);
+  console.log('Current timestamp: ' + timestamp);
 });
 ```
 
@@ -2352,7 +2983,7 @@ getAudioTime(): Promise\<number>
 
 获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2364,9 +2995,9 @@ getAudioTime(): Promise\<number>
 
 ```
 audioRenderer.getAudioTime().then((timestamp) => {
-    console.log('Current timestamp: ' + timestamp);
+  console.log('Current timestamp: ' + timestamp);
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+err.message);
 });
 ```
 
@@ -2376,7 +3007,7 @@ getBufferSize(callback: AsyncCallback\<number>): void
 
 获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2388,9 +3019,9 @@ getBufferSize(callback: AsyncCallback\<number>): void
 
 ```
 var bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
-    if (err) {
-        console.error('getBufferSize error');
-    }
+  if (err) {
+    console.error('getBufferSize error');
+  }
 });
 ```
 
@@ -2400,7 +3031,7 @@ getBufferSize(): Promise\<number>
 
 获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2411,12 +3042,39 @@ getBufferSize(): Promise\<number>
 **示例:**
 
 ```
+import audio from '@ohos.multimedia.audio';
+import fileio from '@ohos.fileio';
+
+var audioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+  channels: audio.AudioChannel.CHANNEL_2,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioRendererInfo = {
+  content: audio.ContentType.CONTENT_TYPE_SPEECH,
+  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+  rendererFlags: 0
+}
+
+var audioRendererOptions = {
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
+}
+var audioRenderer;
+audio.createAudioRenderer(audioRendererOptions).then((data) => {
+  audioRenderer = data;
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
+  }).catch((err) => {
+  console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message);
+  });
 var bufferSize;
-await audioRenderer.getBufferSize().then(async function (data) => {
-    console.info('AudioFrameworkRenderLog: getBufferSize :SUCCESS '+data);
-    bufferSize=data;
+audioRenderer.getBufferSize().then((data) => {
+  console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data);
+  bufferSize = data;
 }).catch((err) => {
-    console.info('AudioFrameworkRenderLog: getBufferSize :ERROR : '+err.message);
+  console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message);
 });
 ```
 
@@ -2426,7 +3084,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
 
 设置音频渲染速率。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2439,11 +3097,11 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
 
 ```
 audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
-    if (err) {
-        console.error('Failed to set params');
-    } else {
-        console.log('Callback invoked to indicate a successful render rate setting.');
-    }
+  if (err) {
+    console.error('Failed to set params');
+  } else {
+    console.log('Callback invoked to indicate a successful render rate setting.');
+  }
 });
 ```
 
@@ -2453,7 +3111,7 @@ setRenderRate(rate: AudioRendererRate): Promise\<void>
 
 设置音频渲染速率。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2471,9 +3129,9 @@ setRenderRate(rate: AudioRendererRate): Promise\<void>
 
 ```
 audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
-    console.log('setRenderRate SUCCESS');
+  console.log('setRenderRate SUCCESS');
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+ err.message);
 });
 ```
 
@@ -2483,7 +3141,7 @@ getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
 
 获取当前渲染速率。使用callback方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2495,7 +3153,7 @@ getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
 
 ```
 audioRenderer.getRenderRate((err, renderrate) => {
-    console.log('getRenderRate: ' + renderrate);
+  console.log('getRenderRate: ' + renderrate);
 });
 ```
 
@@ -2505,7 +3163,7 @@ getRenderRate(): Promise\<AudioRendererRate>
 
 获取当前渲染速率。使用Promise方式异步返回结果。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **返回值:**
 
@@ -2517,14 +3175,14 @@ getRenderRate(): Promise\<AudioRendererRate>
 
 ```
 audioRenderer.getRenderRate().then((renderRate) => {
-    console.log('getRenderRate: ' + renderRate);
+  console.log('getRenderRate: ' + renderRate);
 }).catch((err) => {
-    console.log('ERROR: '+err.message);
+  console.log('ERROR: '+ err.message);
 });
 ```
 ### setInterruptMode<sup>9+</sup>
 
-setInterruptMode(interruptMode: InterruptMode): Promise&lt;void&gt;
+setInterruptMode(mode: InterruptMode): Promise&lt;void&gt;
 
 设置应用的焦点模型。使用Promise异步回调。
 
@@ -2532,9 +3190,9 @@ setInterruptMode(interruptMode: InterruptMode): Promise&lt;void&gt;
 
 **参数:**
 
-| 参数名     | 类型                                | 必填 | 说明                                                     |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-| interruptMode | [InterruptMode](#InterruptMode) | 是   | 焦点模型。                                             |
+| 参数名     | 类型                                | 必填   | 说明        |
+| ---------- | ---------------------------------- | ------ | ---------- |
+| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |
 
 **返回值:**
 
@@ -2545,13 +3203,32 @@ setInterruptMode(interruptMode: InterruptMode): Promise&lt;void&gt;
 **示例:**
 
 ```
-audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE).then(() => {
-    console.log('Promise returned to indicate a successful volume setting.');
+var audioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+var audioRendererInfo = {
+  content: audio.ContentType.CONTENT_TYPE_MUSIC,
+  usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+  rendererFlags: 0
+}
+var audioRendererOptions = {
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
+}
+let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+let mode = 0;
+audioRenderer.setInterruptMode(mode).then(data=>{
+  console.log("setInterruptMode Success!");
+}).catch(err=>{
+  console.log("setInterruptMode Fail:" + err.message);
 });
 ```
 ### setInterruptMode<sup>9+</sup>
 
-setInterruptMode(interruptMode: InterruptMode, callback: Callback\<void>): void
+setInterruptMode(mode: InterruptMode, callback: Callback\<void>): void
 
 设置应用的焦点模型。使用Callback回调返回执行结果。
 
@@ -2559,16 +3236,36 @@ setInterruptMode(interruptMode: InterruptMode, callback: Callback\<void>): void
 
 **参数:**
 
-| 参数名 | 类型 | 必填 | 说明                                                     |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-|interruptMode | [InterruptMode](#InterruptMode) | 是   | 焦点模型。|
-|callback | Callback\<void>  | 是  |回调返回执行结果。|
+| 参数名   | 类型                                | 必填   | 说明            |
+| ------- | ----------------------------------- | ------ | -------------- |
+|mode     | [InterruptMode](#interruptmode9)     | 是     | 焦点模型。|
+|callback | Callback\<void>                     | 是     |回调返回执行结果。|
 
 **示例:**
 
 ```
-audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE,()=>{
-    console.log('Callback returned to indicate a successful volume setting.');
+var audioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+  channels: audio.AudioChannel.CHANNEL_1,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+var audioRendererInfo = {
+  content: audio.ContentType.CONTENT_TYPE_MUSIC,
+  usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+  rendererFlags: 0
+}
+var audioRendererOptions = {
+  streamInfo: audioStreamInfo,
+  rendererInfo: audioRendererInfo
+}
+let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+let mode = 1;
+audioRenderer.setInterruptMode(mode, (err, data)=>{
+  if(err){
+    console.log("setInterruptMode Fail:" + err.message);
+  }
+  console.log("setInterruptMode Success!");
 });
 ```
 ### on('interrupt')<sup>9+</sup>
@@ -2577,7 +3274,7 @@ on(type: 'interrupt', callback: Callback\<InterruptEvent>): void
 
 监听音频中断事件。使用callback获取中断事件。
 
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
 
 **参数:**
 
@@ -2592,48 +3289,47 @@ on(type: 'interrupt', callback: Callback\<InterruptEvent>): void
 var isPlay;
 var started;
 audioRenderer.on('interrupt', async(interruptEvent) => {
-    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
-        switch (interruptEvent.hintType) {
-            case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
-                console.log('Force paused. Stop writing');
-                isPlay = false;
-                break;
-            case audio.InterruptHint.INTERRUPT_HINT_STOP:
-                console.log('Force stopped. Stop writing');
-                isPlay = false;
-                break;
+  if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
+    switch (interruptEvent.hintType) {
+      case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
+        console.log('Force paused. Stop writing');
+        isPlay = false;
+        break;
+      case audio.InterruptHint.INTERRUPT_HINT_STOP:
+        console.log('Force stopped. Stop writing');
+        isPlay = false;
+        break;
+    }
+  } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
+    switch (interruptEvent.hintType) {
+      case audio.InterruptHint.INTERRUPT_HINT_RESUME:
+        console.log('Resume force paused renderer or ignore');
+        await audioRenderer.start().then(async function () {
+          console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
+          started = true;
+        }).catch((err) => {
+          console.info('AudioInterruptMusic: renderInstant start :ERROR : ' + err.message);
+          started = false;
+        });
+        if (started) {
+          isPlay = true;
+          console.info('AudioInterruptMusic Renderer started : isPlay : ' + isPlay);
+        } else {
+          console.error('AudioInterruptMusic Renderer start failed');
         }
-    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
-        switch (interruptEvent.hintType) {
-            case audio.InterruptHint.INTERRUPT_HINT_RESUME:
-                console.log('Resume force paused renderer or ignore');
-                await audioRenderer.start().then(async function () {
-                    console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
-                    started = true;
-                }).catch((err) => {
-                    console.info('AudioInterruptMusic: renderInstant start :ERROR : '+err.message);
-                    started = false;
-                });
-                if (started) {
-                    isPlay = true;
-                    console.info('AudioInterruptMusic Renderer started : isPlay : '+isPlay);
-                } else {
-                    console.error('AudioInterruptMusic Renderer start failed');
-                }
-                break;
-            case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
-                console.log('Choose to pause or ignore');
-                if (isPlay == true) {
-                    isPlay == false;
-                    console.info('AudioInterruptMusic: Media PAUSE : TRUE');
-                }
-                else {
-                    isPlay = true;
-                    console.info('AudioInterruptMusic: Media PLAY : TRUE');
-                }
-                break;
+        break;
+      case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
+        console.log('Choose to pause or ignore');
+        if (isPlay == true) {
+          isPlay == false;
+          console.info('AudioInterruptMusic: Media PAUSE : TRUE');
+        } else {
+          isPlay = true;
+          console.info('AudioInterruptMusic: Media PLAY : TRUE');
         }
+        break;
     }
+  }
 });
 ```
 
@@ -2657,9 +3353,9 @@ on(type: 'markReach', frame: number, callback: (position: number) => {}): void
 
 ```
 audioRenderer.on('markReach', 1000, (position) => {
-    if (position == "1000") {
-        console.log('ON Triggered successfully');
-    }
+  if (position == 1000) {
+    console.log('ON Triggered successfully');
+  }
 });
 ```
 
@@ -2704,9 +3400,9 @@ on(type: "periodReach", frame: number, callback: (position: number) => {}): void
 
 ```
 audioRenderer.on('periodReach', 1000, (position) => {
-    if (position == "1000") {
-        console.log('ON Triggered successfully');
-    }
+  if (position == 1000) {
+    console.log('ON Triggered successfully');
+  }
 });
 ```
 
@@ -2749,15 +3445,44 @@ on(type: 'stateChange', callback: Callback<AudioState\>): void
 
 ```
 audioRenderer.on('stateChange', (state) => {
-    if (state == 1) {
-        console.log("audio renderer state is: STATE_PREPARED");
-    }
-    if (state == 2) {
-        console.log("audio renderer state is: STATE_RUNNING");
-    }
+  if (state == 1) {
+    console.log("audio renderer state is: STATE_PREPARED");
+  }
+  if (state == 2) {
+    console.log("audio renderer state is: STATE_RUNNING");
+  }
 });
 ```
 
+### on('dataRequest') <sup>9+</sup>
+
+on(type: "dataRequest", callback: Callback\<AudioRendererDataInfo>): void;
+
+订阅音频数据requeset事件回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称     | 类型    | 必填 | 说明                                                         |
+| -------- | ------- | --------- | ------------------------------------------------------------------- |
+| type     | string  | 是       | 事件类型。值**dataRequest**表示数据请求事件。 |
+| callback | [AudioRendererDataInfo](#audiorendererdatainfo9) | 是  | 需要音频数据时调用回调。|
+
+**示例:**
+```
+const path = '/data/storage/el2/ba  se/haps/entry/cache/PinkPanther60-44100-1c.wav';
+  let ss = fileio.createStreamSync(path, 'r');
+  let discardHeader = new ArrayBuffer(44);
+  ss.readSync(discardHeader);
+  let rlen = 0;
+  audioRenderer.on('dataRequest', (audioRendererDataInfo) => {
+    var viewObject = new DataView(audioRendererDataInfo.buffer);
+    rlen += ss.readSync(viewObject.buffer);
+    console.info('AudioRenderLog: bytes read from file: ' + rlen);
+  })
+```
+
 ## AudioCapturer<sup>8+</sup>
 
 提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
@@ -2794,13 +3519,13 @@ getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
 
 ```
 audioCapturer.getCapturerInfo((err, capturerInfo) => {
-    if (err) {
-        console.error('Failed to get capture info');
-    } else {
-        console.log('Capturer getCapturerInfo:');
-        console.log('Capturer source:' + capturerInfo.source);
-        console.log('Capturer flags:' + capturerInfo.capturerFlags);
-    }
+  if (err) {
+    console.error('Failed to get capture info');
+  } else {
+    console.log('Capturer getCapturerInfo:');
+    console.log('Capturer source:' + capturerInfo.source);
+    console.log('Capturer flags:' + capturerInfo.capturerFlags);
+  }
 });
 ```
 
@@ -2823,16 +3548,16 @@ getCapturerInfo(): Promise<AudioCapturerInfo\>
 
 ```
 audioCapturer.getCapturerInfo().then((audioParamsGet) => {
-    if (audioParamsGet != undefined) {
-        console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
-        console.info('AudioFrameworkRecLog: Capturer SourceType:' + audioParamsGet.source);
-        console.info('AudioFrameworkRecLog: Capturer capturerFlags:' + audioParamsGet.capturerFlags);
-    }else {
-        console.info('AudioFrameworkRecLog: audioParamsGet is : '+audioParamsGet);
-        console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect: ');
-    }
+  if (audioParamsGet != undefined) {
+    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
+    console.info('AudioFrameworkRecLog: Capturer SourceType:' + audioParamsGet.source);
+    console.info('AudioFrameworkRecLog: Capturer capturerFlags:' + audioParamsGet.capturerFlags);
+  } else {
+    console.info('AudioFrameworkRecLog: audioParamsGet is : '+ audioParamsGet);
+    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect: ');
+  }
 }).catch((err) => {
-    console.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+err.message);
+  console.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+ err.message);
 });
 ```
 
@@ -2854,15 +3579,15 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
 
 ```
 audioCapturer.getStreamInfo((err, streamInfo) => {
-    if (err) {
-        console.error('Failed to get stream info');
-    } else {
-        console.log('Capturer GetStreamInfo:');
-        console.log('Capturer sampling rate:' + streamInfo.samplingRate);
-        console.log('Capturer channel:' + streamInfo.channels);
-        console.log('Capturer format:' + streamInfo.sampleFormat);
-        console.log('Capturer encoding type:' + streamInfo.encodingType);
-    }
+  if (err) {
+    console.error('Failed to get stream info');
+  } else {
+    console.log('Capturer GetStreamInfo:');
+    console.log('Capturer sampling rate:' + streamInfo.samplingRate);
+    console.log('Capturer channel:' + streamInfo.channels);
+    console.log('Capturer format:' + streamInfo.sampleFormat);
+    console.log('Capturer encoding type:' + streamInfo.encodingType);
+  }
 });
 ```
 
@@ -2884,13 +3609,13 @@ getStreamInfo(): Promise<AudioStreamInfo\>
 
 ```
 audioCapturer.getStreamInfo().then((audioParamsGet) => {
-    console.info('getStreamInfo:');
-    console.info('sampleFormat:' + audioParamsGet.sampleFormat);
-    console.info('samplingRate:' + audioParamsGet.samplingRate);
-    console.info('channels:' + audioParamsGet.channels);
-    console.info('encodingType:' + audioParamsGet.encodingType);
+  console.info('getStreamInfo:');
+  console.info('sampleFormat:' + audioParamsGet.sampleFormat);
+  console.info('samplingRate:' + audioParamsGet.samplingRate);
+  console.info('channels:' + audioParamsGet.channels);
+  console.info('encodingType:' + audioParamsGet.encodingType);
 }).catch((err) => {
-    console.log('getStreamInfo :ERROR: ' + err.message);
+  console.log('getStreamInfo :ERROR: ' + err.message);
 });
 ```
 
@@ -2902,7 +3627,7 @@ start(callback: AsyncCallback<void\>): void
 
 **系统能力:** SystemCapability.Multimedia.Audio.Capturer
 
-**参数**
+**参数:**
 
 | 参数名   | 类型                 | 必填 | 说明                           |
 | :------- | :------------------- | :--- | :----------------------------- |
@@ -2912,11 +3637,11 @@ start(callback: AsyncCallback<void\>): void
 
 ```
 audioCapturer.start((err) => {
-    if (err) {
-        console.error('Capturer start failed.');
-    } else {
-        console.info('Capturer start success.');
-    }
+  if (err) {
+    console.error('Capturer start failed.');
+  } else {
+    console.info('Capturer start success.');
+  }
 });
 ```
 
@@ -2938,17 +3663,40 @@ start(): Promise<void\>
 **示例:**
 
 ```
+import audio from '@ohos.multimedia.audio';
+import fileio from '@ohos.fileio';
+
+var audioStreamInfo = {
+  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+  channels: audio.AudioChannel.CHANNEL_2,
+  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+
+var audioCapturerInfo = {
+  source: audio.SourceType.SOURCE_TYPE_MIC,
+  capturerFlags: 0
+}
+
+var audioCapturer;
+var stateFlag;
+audio.createAudioCapturer(audioCapturerOptions).then((data) => {
+  audioCapturer = data;
+  console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
+  }).catch((err) => {
+  console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: ' + err.message);
+  });
 audioCapturer.start().then(() => {
-    console.info('AudioFrameworkRecLog: ---------START---------');
-    console.info('AudioFrameworkRecLog: Capturer started :SUCCESS ');
-    console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state);
-    console.info('AudioFrameworkRecLog: Capturer started :SUCCESS ');
-    if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
-        stateFlag = true;
-    }
+  console.info('AudioFrameworkRecLog: ---------START---------');
+  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
+  console.info('AudioFrameworkRecLog: AudioCapturer: STATE: ' + audioCapturer.state);
+  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS ');
+  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
+    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
+  }
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message);
-    stateFlag=false;
+  console.info('AudioFrameworkRecLog: Capturer start :ERROR : ' + err.message);
+  stateFlag = false;
 });
 ```
 
@@ -2970,11 +3718,11 @@ stop(callback: AsyncCallback<void\>): void
 
 ```
 audioCapturer.stop((err) => {
-    if (err) {
-        console.error('Capturer stop failed');
-    } else {
-        console.log('Capturer stopped.');
-    }
+  if (err) {
+    console.error('Capturer stop failed');
+  } else {
+    console.log('Capturer stopped.');
+  }
 });
 ```
 
@@ -2997,15 +3745,13 @@ stop(): Promise<void\>
 
 ```
 audioCapturer.stop().then(() => {
-    console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
-    console.info('AudioFrameworkRecLog: Capturer stopped : SUCCESS');
-    if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
-        stateFlag=true;
-        console.info('AudioFrameworkRecLog: resultFlag : '+stateFlag);
-    }
+  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
+  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
+  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
+    console.info('AudioFrameworkRecLog: State is Stopped': ');
+  }
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message);
-    stateFlag=false;
+  console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+ err.message);
 });
 ```
 
@@ -3027,11 +3773,11 @@ release(callback: AsyncCallback<void\>): void
 
 ```
 audioCapturer.release((err) => {
-    if (err) {
-        console.error('capturer release failed');
-    } else {
-        console.log('capturer released.');
-    }
+  if (err) {
+    console.error('capturer release failed');
+  } else {
+    console.log('capturer released.');
+  }
 });
 ```
 
@@ -3053,15 +3799,14 @@ release(): Promise<void\>
 **示例:**
 
 ```
+var stateFlag;
 audioCapturer.release().then(() => {
-    console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
-    console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
-    console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state);
-    stateFlag=true;
-    console.info('AudioFrameworkRecLog: stateFlag : '+stateFlag);
+  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
+  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
+  console.info('AudioFrameworkRecLog: AudioCapturer : STATE : ' + audioCapturer.state);
+  console.info('AudioFrameworkRecLog: stateFlag : ' + stateFlag);
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message);
-    stateFlag=false
+  console.info('AudioFrameworkRecLog: Capturer stop: ERROR: ' + err.message);
 });
 ```
 
@@ -3074,7 +3819,7 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\
 
 **系统能力:** SystemCapability.Multimedia.Audio.Capturer
 
-**参数**
+**参数:**
 
 | 参数名         | 类型                        | 必填 | 说明                             |
 | :------------- | :-------------------------- | :--- | :------------------------------- |
@@ -3085,10 +3830,17 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\
 **示例:**
 
 ```
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+  console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS ' + data);
+  bufferSize = data;
+  }).catch((err) => {
+  console.info('AudioFrameworkRecLog: getBufferSize: EROOR: ' + err.message);
+  });
 audioCapturer.read(bufferSize, true, async(err, buffer) => {
-    if (!err) {
-        console.log("Success in reading the buffer data");
-    }
+  if (!err) {
+    console.log("Success in reading the buffer data");
+  }
 });
 ```
 
@@ -3117,10 +3869,18 @@ read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
 **示例:**
 
 ```
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+  console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS ' + data);
+  bufferSize = data;
+  }).catch((err) => {
+  console.info('AudioFrameworkRecLog: getBufferSize: ERROR ' + err.message);
+  });
+console.info('Buffer size: ' + bufferSize);
 audioCapturer.read(bufferSize, true).then((buffer) => {
-    console.info('buffer read successfully');
+  console.info('buffer read successfully');
 }).catch((err) => {
-    console.info('ERROR : '+err.message);
+  console.info('ERROR : ' + err.message);
 });
 ```
 
@@ -3143,7 +3903,7 @@ getAudioTime(callback: AsyncCallback<number\>): void
 
 ```
 audioCapturer.getAudioTime((err, timestamp) => {
-    console.log('Current timestamp: ' + timestamp);
+  console.log('Current timestamp: ' + timestamp);
 });
 ```
 
@@ -3166,9 +3926,9 @@ getAudioTime(): Promise<number\>
 
 ```
 audioCapturer.getAudioTime().then((audioTime) => {
-    console.info('AudioFrameworkRecLog: AudioCapturer getAudioTime : Success' + audioTime );
+  console.info('AudioFrameworkRecLog: AudioCapturer getAudioTime : Success' + audioTime );
 }).catch((err) => {
-    console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message);
+  console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : ' + err.message);
 });
 ```
 
@@ -3191,14 +3951,14 @@ getBufferSize(callback: AsyncCallback<number\>): void
 
 ```
 audioCapturer.getBufferSize((err, bufferSize) => {
-    if (!err) {
-        console.log('BufferSize : ' + bufferSize);
-        audioCapturer.read(bufferSize, true).then((buffer) => {
-            console.info('Buffer read is ' + buffer );
-        }).catch((err) => {
-            console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message);
-        });
-    }
+  if (!err) {
+    console.log('BufferSize : ' + bufferSize);
+    audioCapturer.read(bufferSize, true).then((buffer) => {
+        console.info('Buffer read is ' + buffer );
+    }).catch((err) => {
+        console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : ' + err.message);
+    });
+  }
 });
 ```
 
@@ -3220,12 +3980,12 @@ getBufferSize(): Promise<number\>
 **示例:**
 
 ```
-await audioCapturer.getBufferSize().then(async function (bufferSize) {
-    console.info('AudioFrameworkRecordLog: getBufferSize :SUCCESS '+ bufferSize);
-    var buffer = await audioCapturer.read(bufferSize, true);
-    console.info('Buffer read is ' + buffer );
-    }).catch((err) => {
-    console.info('AudioFrameworkRecordLog: getBufferSize :ERROR : '+err.message);
+var bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+  console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS ' + data);
+  bufferSize = data;
+}).catch((err) => {
+  console.info('AudioFrameworkRecLog: getBufferSize :ERROR : ' + err.message);
 });
 ```
 
@@ -3250,9 +4010,9 @@ on(type: 'markReach', frame: number, callback: (position: number) => {}): void
 
 ```
 audioCapturer.on('markReach', 1000, (position) => {
-    if (position == "1000") {
-        console.log('ON Triggered successfully');
-    }
+  if (position == 1000) {
+    console.log('ON Triggered successfully');
+  }
 });
 ```
 
@@ -3296,9 +4056,9 @@ on(type: "periodReach", frame: number, callback: (position: number) => {}): void
 
 ```
 audioCapturer.on('periodReach', 1000, (position) => {
-    if (position == "1000") {
-        console.log('ON Triggered successfully');
-    }
+  if (position == 1000) {
+    console.log('ON Triggered successfully');
+  }
 });
 ```
 
@@ -3341,11 +4101,11 @@ on(type: 'stateChange', callback: Callback<AudioState\>): void
 
 ```
 audioCapturer.on('stateChange', (state) => {
-    if (state == 1) {
-        console.log("audio capturer state is: STATE_PREPARED");
-    }
-    if (state == 2) {
-        console.log("audio capturer state is: STATE_RUNNING");
-    }
+  if (state == 1) {
+    console.log("audio capturer state is: STATE_PREPARED");
+  }
+  if (state == 2) {
+    console.log("audio capturer state is: STATE_RUNNING");
+  }
 });
 ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md b/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md
index 72df09a27aeea1ded115ce80ff357e4eb0be6258..9ca31d90c80c2b07be0cfe4b763b2cda079b7cde 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md
@@ -8,13 +8,13 @@
 
 应用中存在用户能够直观感受到的且需要一直在后台运行的业务时(如,后台播放音乐),可以使用长时任务机制。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## 导入模块
 
-```
+```js
 import backgroundTaskManager from '@ohos.backgroundTaskManager';  
 ```
 
@@ -143,12 +143,12 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
 **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
 
 **参数**:
-| 参数名       | 类型                                 | 必填   | 说明                       |
-| --------- | ---------------------------------- | ---- | ------------------------ |
-| context   | [Context](js-apis-Context.md)      | 是    | 应用运行的上下文。                |
-| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。              |
-| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击后跳转的界面。 |
-| callback  | AsyncCallback&lt;void&gt;          | 是    | callback形式返回启动长时任务的结果。   |
+| 参数名       | 类型                                 | 必填   | 说明                                       |
+| --------- | ---------------------------------- | ---- | ---------------------------------------- |
+| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
+| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。                              |
+| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击后跳转的界面。                 |
+| callback  | AsyncCallback&lt;void&gt;          | 是    | callback形式返回启动长时任务的结果。                   |
 
 **示例**:
 ```js
@@ -195,11 +195,11 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
 
 **参数**:
 
-| 参数名       | 类型                                 | 必填   | 说明                      |
-| --------- | ---------------------------------- | ---- | ----------------------- |
-| context   | [Context](js-apis-Context.md)      | 是    | 应用运行的上下文。               |
-| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。             |
-| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击跳转的界面。 |
+| 参数名       | 类型                                 | 必填   | 说明                                       |
+| --------- | ---------------------------------- | ---- | ---------------------------------------- |
+| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
+| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。                              |
+| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击跳转的界面。                  |
 
 **返回值**
 | 类型             | 说明               |
@@ -244,10 +244,10 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): vo
 **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
 
 **参数**:
-| 参数名      | 类型                            | 必填   | 说明                     |
-| -------- | ----------------------------- | ---- | ---------------------- |
-| context  | [Context](js-apis-Context.md) | 是    | 应用运行的上下文。              |
-| callback | AsyncCallback&lt;void&gt;     | 是    | callback形式返回启动长时任务的结果。 |
+| 参数名      | 类型                        | 必填   | 说明                                       |
+| -------- | ------------------------- | ---- | ---------------------------------------- |
+| context  | Context                   | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
+| callback | AsyncCallback&lt;void&gt; | 是    | callback形式返回启动长时任务的结果。                   |
 
 **示例**:
 ```js
@@ -275,9 +275,9 @@ stopBackgroundRunning(context: Context): Promise&lt;void&gt;
 **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
 
 **参数**:
-| 参数名     | 类型                            | 必填   | 说明        |
-| ------- | ----------------------------- | ---- | --------- |
-| context | [Context](js-apis-Context.md) | 是    | 应用运行的上下文。 |
+| 参数名     | 类型      | 必填   | 说明                                       |
+| ------- | ------- | ---- | ---------------------------------------- |
+| context | Context | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
 
 **返回值**
 | 类型             | 说明               |
@@ -301,7 +301,7 @@ backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(()
 
 延迟挂起信息。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
+**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
 
 | 参数名             | 类型     | 必填   | 说明                                       |
 | --------------- | ------ | ---- | ---------------------------------------- |
@@ -311,16 +311,16 @@ backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(()
 
 ## BackgroundMode<sup>8+</sup>
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
-
-| 参数名                  | 参数值 | 描述                                                         |
-| ----------------------- | ------ | ------------------------------------------------------------ |
-| DATA_TRANSFER           | 1      | 数据传输                                                     |
-| AUDIO_PLAYBACK          | 2      | 音频播放                                                     |
-| AUDIO_RECORDING         | 3      | 录音                                                         |
-| LOCATION                | 4      | 定位导航                                                     |
-| BLUETOOTH_INTERACTION   | 5      | 蓝牙相关                                                     |
-| MULTI_DEVICE_CONNECTION | 6      | 多设备互联                                                   |
-| WIFI_INTERACTION        | 7      | WLAN相关<br />**系统API**:此接口为系统接口,三方应用不支持调用。 |
-| VOIP                    | 8      | 音视频通话<br />**系统API**:此接口为系统接口,三方应用不支持调用。 |
-| TASK_KEEPING            | 9      | 计算任务(仅在特定设备生效)                                 |
\ No newline at end of file
+**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
+
+| 参数名                     | 参数值  | 描述                    |
+| ----------------------- | ---- | --------------------- |
+| DATA_TRANSFER           | 1    | 数据传输                  |
+| AUDIO_PLAYBACK          | 2    | 音频播放                  |
+| AUDIO_RECORDING         | 3    | 录音                    |
+| LOCATION                | 4    | 定位导航                  |
+| BLUETOOTH_INTERACTION   | 5    | 蓝牙相关                  |
+| MULTI_DEVICE_CONNECTION | 6    | 多设备互联                 |
+| WIFI_INTERACTION        | 7    | WLAN相关<br />此接口为系统接口。 |
+| VOIP                    | 8    | 音视频通话<br />此接口为系统接口。  |
+| TASK_KEEPING            | 9    | 计算任务(仅在特定设备生效)        |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
index ce7214ccc18f0fccef021cff0f346bd490fad497..05e0522d4d06bac796b5019314caec9f5d6f6b31 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
@@ -1,9 +1,10 @@
 # 蓝牙
 
+蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。
+
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
-蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。
 
 
 ## 导入模块
@@ -343,7 +344,7 @@ setBluetoothScanMode(mode: ScanMode, duration: number): boolean
 | 参数名      | 类型                    | 必填   | 说明                           |
 | -------- | --------------------- | ---- | ---------------------------- |
 | mode     | [ScanMode](#scanmode) | 是    | 蓝牙扫描模式。                      |
-| duration | number                | 是    | 设备可被发现的持续时间,单位为秒;设置为0则持续可发现。 |
+| duration | number                | 是    | 设备可被发现的持续时间,单位为毫秒;设置为0则持续可发现。 |
 
 **返回值:**
 
@@ -388,7 +389,7 @@ startBluetoothDiscovery(): boolean
 
 开启蓝牙扫描,可以发现远端设备。
 
-**需要权限**:ohos.permission.DISCOVER_BLUETOOTH;ohos.permission.LOCATION
+**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.LOCATION
 
 **系统能力**:SystemCapability.Communication.Bluetooth.Core。
 
@@ -1011,7 +1012,7 @@ bluetooth.off('sppRead', clientNumber);
 ```
 
 
-## bluetooth.getProfile<sup>8+</sup><a name="getProfile"></a>
+## bluetooth.getProfile<sup>8+</sup><a name="bt-getProfile"></a>
 
 getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile
 
@@ -1029,7 +1030,7 @@ getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfi
 
 | 类型                                                         | 说明                                                         |
 | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| [A2dpSourceProfile](#A2dpSourceProfile)或[HandsFreeAudioGatewayProfile](#HandsFreeAudioGatewayProfile) | 对应的profile的对象实例,当前支持A2dpSourceProfile, HandsFreeAudioGatewayProfile。 |
+| [A2dpSourceProfile](#a2dpsourceprofile)或[HandsFreeAudioGatewayProfile](#handsfreeaudiogatewayprofile) | 对应的profile的对象实例,当前支持A2dpSourceProfile, HandsFreeAudioGatewayProfile。 |
 
 **示例:**
 
@@ -1037,9 +1038,9 @@ getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfi
 let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
 ```
 
-## bluetooth.getProfile<sup>9+</sup><a name="getProfile"></a>
+## bluetooth.getProfileInst<sup>9+</sup><a name="getProfileInst"></a>
 
-getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile
+getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile
 
 通过ProfileId,获取profile的对象实例,API9新增了HidHostProfile,PanProfile。
 
@@ -1055,12 +1056,12 @@ getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfi
 
 | 类型                                                         | 说明                                                         |
 | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| [A2dpSourceProfile](#A2dpSourceProfile)或 [HandsFreeAudioGatewayProfile](#HandsFreeAudioGatewayProfile)或[HidHostProfile](#HidHostProfile)或[PanProfile](#PanProfile) | 对应的profile的对象实例,当前支持A2dpSourceProfile/HandsFreeAudioGatewayProfile/HidHostProfile/PanProfile。 |
+| [A2dpSourceProfile](#a2dpsourceprofile)或 [HandsFreeAudioGatewayProfile](#handsfreeaudiogatewayprofile)或[HidHostProfile](#hidhostprofile)或[PanProfile](#panprofile) | 对应的profile的对象实例,当前支持A2dpSourceProfile/HandsFreeAudioGatewayProfile/HidHostProfile/PanProfile。 |
 
 **示例:**
 
 ```js
-let hidHost = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
+let hidHost = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST);
 ```
 
 
@@ -1143,7 +1144,7 @@ startBLEScan(filters: Array&lt;ScanFilter&gt;, options?: ScanOptions): void
 
 发起BLE扫描流程。
 
-**需要权限**:ohos.permission.DISCOVER_BLUETOOTH;ohos.permission.MANAGE_BLUETOOTH;ohos.permission.LOCATION
+**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH 和 ohos.permission.LOCATION
 
 **系统能力**:SystemCapability.Communication.Bluetooth.Core。
 
@@ -1451,14 +1452,12 @@ a2dpSrc.off('connectionStateChange', onReceiveEvent);
 ```
 
 
-### getPlayingState<sup>9+</sup>
+### getPlayingState<sup>8+</sup>
 
 getPlayingState(device: string): PlayingState
 
 获取设备的播放状态。
 
-**需要权限**:ohos.permission.USE_BLUETOOTH
-
 **系统能力**:SystemCapability.Communication.Bluetooth.Core。
 
 **参数:**
@@ -1612,7 +1611,7 @@ hfpAg.off('connectionStateChange', onReceiveEvent);
 使用HidHostProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。
 
 
-### connect<sup>9+</sup><a name="connect"></a>
+### connect<sup>9+</sup><a name="HidHost-connect"></a>
 
 connect(device: string): boolean
 
@@ -1644,7 +1643,7 @@ let ret = hidHostProfile.connect('XX:XX:XX:XX:XX:XX');
 ```
 
 
-### disconnect<sup>9+</sup><a name="disconnect"></a>
+### disconnect<sup>9+</sup><a name="HidHost-disconnect"></a>
 
 disconnect(device: string): boolean
 
@@ -1742,7 +1741,7 @@ hidHost.off('connectionStateChange', onReceiveEvent);
 使用PanProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。
 
 
-### disconnect<sup>9+</sup><a name="disconnect"></a>
+### disconnect<sup>9+</sup><a name="PanP-disconnect"></a>
 
 disconnect(device: string): boolean
 
@@ -1837,7 +1836,7 @@ panProfile.off('connectionStateChange', onReceiveEvent);
 
 ### setTethering<sup>9+</sup><a name="setTethering"></a>
 
-setTethering(value: boolean): boolean
+setTethering(enable: boolean): void
 
 设置网络共享状态。
 
@@ -1875,8 +1874,6 @@ isTetheringOn(): boolean
 
 此接口为系统接口。
 
-**需要权限**:ohos.permission.DISCOVER_BLUETOOTH
-
 **系统能力**:SystemCapability.Communication.Bluetooth.Core。
 
 **返回值:**
@@ -2019,7 +2016,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 
 // 创建characteristics
@@ -2129,7 +2126,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 let arrayBufferC = new ArrayBuffer(8);
 let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
@@ -2709,7 +2706,9 @@ client端获取蓝牙低功耗设备的所有服务,即服务发现。
 
 ```js
 // Promise 模式
-gattClientDevice.getServices().then(result => {
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
+device.connect();
+device.getServices().then(result => {
     console.info("getServices successfully:" + JSON.stringify(result));
 });
 ```
@@ -3051,7 +3050,7 @@ let descV = new Uint8Array(arrayBuffer);
 descV[0] = 11;
 let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
   characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB',
-  descriptorUuid: '00001830-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
+  descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer};
 descriptors[0] = descriptor;
 let arrayBufferC = new ArrayBuffer(8);
 let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
@@ -3536,7 +3535,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
 | serviceSolicitationUuidMask<sup>9+</sup> | string      | 是   | 是   | 表示过滤包含该UUID服务请求掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 |
 | serviceData<sup>9+</sup>                 | ArrayBuffer | 是   | 是   | 表示过滤包含该服务相关数据的设备,例如:[0x90,0x00,0xF1,0xF2]。 |
 | serviceDataMask<sup>9+</sup>             | ArrayBuffer | 是   | 是   | 表示过滤包含该服务相关数据掩码的设备,例如:[0xFF,0xFF,0xFF,0xFF]。 |
-| manufacturerId<sup>9+</sup>              | number      | 是   | 是   | 表示过滤包含该制造商ID的设备,例如:0x0006。                 |
+| manufactureId<sup>9+</sup>               | number      | 是   | 是   | 表示过滤包含该制造商ID的设备,例如:0x0006。                 |
 | manufactureData<sup>9+</sup>             | ArrayBuffer | 是   | 是   | 表示过滤包含该制造商相关数据的设备,例如:[0x1F,0x2F,0x3F]。 |
 | manufactureDataMask<sup>9+</sup>         | ArrayBuffer | 是   | 是   | 表示过滤包含该制造商相关数据掩码的设备,例如:[0xFF,0xFF,0xFF]。 |
 
@@ -3617,7 +3616,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
 
 | 名称          | 参数类型    | 可读   | 可写   | 说明                                       |
 | ----------- | ------- | ---- | ---- | ---------------------------------------- |
-| interval    | number  | 是    | 是    | 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16777215个slot,默认值设置为1600个slot表示1s。 |
+| interval    | number  | 是    | 是    | 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。 |
 | txPower     | number  | 是    | 是    | 表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。   |
 | connectable | boolean | 是    | 是    | 表示是否是可连接广播,默认值设置为true。                   |
 
@@ -3828,7 +3827,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
 
 ## ProfileId<sup>8+</sup><a name="ProfileId"></a>
 
-蓝牙profile枚举,API9新增PROFILE_HID_HOST。
+蓝牙profile枚举,API9新增PROFILE_HID_HOST,PROFILE_PAN_NETWORK。
 
 **系统能力**:SystemCapability.Communication.Bluetooth.Core。
 
@@ -3836,4 +3835,5 @@ let rssi = gattClient.getRssiValue().then((data) => {
 | -------------------------------- | ------ | --------------- |
 | PROFILE_A2DP_SOURCE              | 0x0001 | 表示A2DP profile。 |
 | PROFILE_HANDS_FREE_AUDIO_GATEWAY | 0x0004 | 表示HFP profile。  |
-| PROFILE_HID_HOST<sup>9+</sup> | 0x0006 | 表示HID profile。  |
\ No newline at end of file
+| PROFILE_HID_HOST<sup>9+</sup> | 0x0006 | 表示HID profile。  |
+| PROFILE_PAN_NETWORK<sup>9+</sup> | 0x0007 | 表示PAN profile。  |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-buffer.md b/zh-cn/application-dev/reference/apis/js-apis-buffer.md
new file mode 100644
index 0000000000000000000000000000000000000000..e538e236f79a915e13cb1a30dd7b9bc9495ed3ad
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-buffer.md
@@ -0,0 +1,2444 @@
+# Buffer
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+Buffer对象用于表示固定长度的字节序列,是专门存放二进制数据的缓存区。
+
+**推荐使用场景:** 可用于处理大量二进制数据,处理图片、文件接收上传、网络协议等等
+
+## 导入模块
+
+```ts
+import buffer from '@ohos.buffer';
+```
+
+## Buffer
+
+### alloc
+
+alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer
+
+创建`size`个字节长度的Buffer实例,并初始化。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| size | number | 是 | 指定的Buffer实例长度,单位:字节。 |
+| fill | string&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;number | 否 | 预填充的值,默认值: 0 |
+| encoding | BufferEncoding | 否 | 编码方式(当`fill`为string时,才有意义)。 默认值: 'utf-8' |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 带初始化的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.alloc(5);
+let buf2 = buffer.alloc(5, 'a');
+let buf3 = buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
+```
+
+### allocUninitializedFromPool
+
+allocUninitializedFromPool(size: number): Buffer
+
+创建指定大小的未被初始化Buffer实例。内存从缓冲池分配。
+创建的Buffer的内容未知,需要使用fill()函数来初始化Buffer实例。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| size | number | 是 | 指定的Buffer实例长度,单位:字节。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 未初始化的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(10);
+buf.fill(0);
+```
+
+### allocUninitialized
+
+allocUninitialized(size: number): Buffer
+
+创建指定大小的未被初始化Buffer实例。内存不从缓冲池分配。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| size | number | 是 |指定的Buffer实例长度,单位:字节。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 未初始化的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitialized(10);
+buf.fill(0);
+```
+
+### byteLength
+
+byteLength(string: string | Buffer | TypeArray | DataView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number
+
+根据不同的编码方法,返回字符串的字节数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| string | string&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;TypeArray&nbsp;\|&nbsp;DataView&nbsp;\|&nbsp;ArrayBuffer&nbsp;\|&nbsp;SharedArrayBuffer | 是 | 指定字符串。 |
+| encoding | BufferEncoding | 否 | 编码方式。 默认值: 'utf-8' |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 返回字符串的字节数 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let str = '\u00bd + \u00bc = \u00be';
+console.log('${str}: ${str.length} characters, ${buffer.byteLength(str, 'utf-8')} bytes');
+// 打印: ½ + ¼ = ¾: 9 characters, 12 bytes
+```
+
+### compare
+
+compare(buf1: Buffer | Uint8Array, buf2: Buffer | Uint8Array): number
+
+返回比较buf1和buf2的结果, 通常用于对Buffer实例的数组进行排序。
+
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| buf1 | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 待比较数组。 |
+| buf2 | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 待比较数组。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 如果buf1与buf2相同,则返回0<br/>如果排序时buf1位于buf2之后,则返回1<br/>如果排序时buf1位于buf2之前,则返回-1。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from('1234');
+let buf2 = buffer.from('0123');
+
+console.log(buf1.compare(buf2));
+// 打印 1
+```
+
+### concat
+
+concat(list: Buffer[] | Uint8Array[], totalLength?: number): Buffer
+
+将`list`中的实例内容复制`totalLength`字节长度到新的Buffer实例中并返回。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| list | Buffer[]&nbsp;\|&nbsp;Uint8Array[] | 是 | 实例数组。 |
+| totalLength | number | 否 | 需要融合的总字节长度。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 返回新Buffer的实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from("1234");
+let buf2 = buffer.from("abcd");
+let buf = buffer.concat([buf1, buf2]);
+console.log(buf); // <Buffer 31 32 33 34 61 62 63 64>
+```
+
+### from
+
+from(array: number[]): Buffer
+
+根据指定数组创建新的Buffer实例。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| array | number[] | 是 | 指定数组。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 新的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let arrayList = new ArrayList();
+
+let buf = buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
+console.log(buf);
+// 打印: <Buffer 62 75 66 66 65 72>
+```
+
+### from
+
+from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer
+
+创建指定长度的与`arrayBuffer`共享内存的Buffer实例
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| arrayBuffer | ArrayBuffer&nbsp;\|&nbsp;SharedArrayBuffer | 是 | 实例对象。 |
+| byteOffset | number | 否 | 字节偏移量,默认值: 0。 |
+| length | number | 否 | 字节长度, 默认值: arrayBuffer.byteLength - byteOffset。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 返回一个共享内存的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let ab = new ArrayBuffer(10);
+let buf = buffer.from(ab, 0, 2);
+```
+
+### from
+
+from(data: Buffer | Uint8Array): Buffer
+
+创建并复制`data`数据到新的Buffer实例并返回。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| data | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 实例数据。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 新的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from('buffer');
+let buf2 = buffer.from(buf1);
+```
+
+### from
+
+from(object: Object, offsetOrEncoding: number | string, length: number): Buffer
+
+根据指定的`object`类型数据,创建新的Buffer实例。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| object | Object | 是 | 支持Symbol.toPrimitive或valueOf()的对象 |
+| offsetOrEncoding | number&nbsp;\|&nbsp;string | 否 | 字节偏移量或编码。 |
+| length | number | 否 | 字节长度。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 新的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from(new String('this is a test'));
+```
+
+### from
+
+from(string: string, encoding?: BufferEncoding): Buffer
+
+根据指定编码格式的字符串,创建新的Buffer实例。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| string | string | 是 | 字符串 |
+| encoding | BufferEncoding | 否 | 编码格式。 默认值: 'utf-8'。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 新的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from('this is a test');
+let buf2 = buffer.from('7468697320697320612074c3a97374', 'hex');
+
+console.log(buf1.toString());	// 打印: this is a test
+console.log(buf2.toString());
+```
+
+
+### isBuffer
+
+isBuffer(obj: Object): boolean
+
+判断`obj`是否为Buffer。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| obj | Object | 是 | 判断对象 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| boolean | 如果obj是Buffer,则返回true,否则返回false。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+buffer.isBuffer(buffer.alloc(10)); // true
+buffer.isBuffer(buffer.from('foo')); // true
+buffer.isBuffer('a string'); // false
+buffer.isBuffer([]); // false
+buffer.isBuffer(new Uint8Array(1024)); // false
+```
+
+### isEncoding
+
+isEncoding(encoding: string): boolean
+
+判断`encoding`是否为支持的编码格式。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| encoding | string | 是 | 编码格式。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| boolean | true或者false。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+console.log(Buffer.isEncoding('utf-8'));	// 打印: true
+console.log(Buffer.isEncoding('hex'));	// 打印: true
+console.log(Buffer.isEncoding('utf/8'));	// 打印: false
+console.log(Buffer.isEncoding(''));	// 打印: false
+```
+
+### compare
+
+compare(target: Buffer | Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1
+
+`this`实例对象与`target`实例对象进行比较,返回buf在排序中的顺序,-1:前排序,0:与buf相同,1:后排序。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| target | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 要比较的实例对象。 |
+| targetStart | number | 否 | `target`实例中开始的偏移量。 默认值: 0。 |
+| targetEnd | number | 否 | `target`实例中结束的偏移量(不包括本身)。 默认值: target.lengt。 |
+| sourceStart | number | 否 | `this`实例中开始的偏移量。 默认值: 0。 |
+| sourceEnd | number | 否 | `this`实例中结束的偏移量(不包括本身)。 默认值: buf.length。 |
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 比较结果。-1:前排序,0:与buf相同,1:后排序。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
+let buf2 = buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);
+
+console.log(buf1.compare(buf2, 5, 9, 0, 4));	// 打印: 0
+console.log(buf1.compare(buf2, 0, 6, 4));	// 打印: -1
+console.log(buf1.compare(buf2, 5, 6, 5));	// 打印: 1
+```
+
+### copy
+
+copy(target: Buffer| Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number
+
+将`this`实例中指定位置的数据复制到`target`的指定位置上,并返回复制的字节总长度。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| target | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 要复制到的Buffer或Uint8Array实例。 |
+| targetStart | number | 否 | `target`实例中开始写入的偏移量。 默认值: 0。 |
+| sourceStart | number | 否 | `this`实例中开始复制的偏移量。 默认值: 0。 |
+| sourceEnd | number | 否 | `this`实例中结束复制的偏移量(不包括)。 默认值: buf.length。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number |  复制的字节总长度。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.allocUninitializedFromPool(26);
+let buf2 = buffer.allocUninitializedFromPool(26).fill('!');
+
+for (let i = 0; i < 26; i++) {
+  buf1[i] = i + 97;
+}
+
+buf1.copy(buf2, 8, 16, 20);
+console.log(buf2.toString('ascii', 0, 25));
+// 打印: !!!!!!!!qrst!!!!!!!!!!!!!
+```
+
+### entries
+
+entries(): IterableIterator&lt;[number,&nbsp;number]&gt;
+
+返回一个包含key和value的迭代器。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from('buffer');
+for (let pair of buf.entries()) {
+  console.log(pair);
+}
+```
+
+### equals
+
+equals(otherBuffer: Buffer | Uint8Array): boolean
+
+比较`this`实例和otherBuffer实例是否相等。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| otherBuffer | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 比较的目标对象。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| boolean | 相等则返回true,否则返回false。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from('ABC');
+let buf2 = buffer.from('414243', 'hex');
+let buf3 = buffer.from('ABCD');
+
+console.log(buf1.equals(buf2));	// 打印: true
+console.log(buf1.equals(buf3));	// 打印: false
+
+```
+
+### fill
+
+fill(value: string | Buffer | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): Buffer
+
+用`value`填充`this`实例指定位置的数据,默认为循环填充,并返回填充后的Buffer实例。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | string&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;Uint8Array&nbsp;\|&nbsp;number | 是 | 用于填充的值。 |
+| offset | number | 否 | 起始偏移量。 默认值: 0。 |
+| end | number | 否 | 结束偏移量(不包括在内)。 默认值: buf.length。 |
+| encoding | BufferEncoding | 否 | 字符编码格式(`value`为string才有意义)。 默认值: 'utf-8'。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 填充后的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let b = buffer.allocUninitializedFromPool(50).fill('h');
+console.log(b.toString());
+```
+
+
+### includes
+
+includes(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): boolean
+
+检查Buffer对象是否包含`value`值。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 要搜索的内容。 |
+| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 |
+| encoding | BufferEncoding | 否 | 字符编码格式。 默认值: 'utf-8'。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| boolean | 存在为true,否则为false。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from('this is a buffer');
+console.log(buf.includes('this'));	// 打印: true
+console.log(buf.includes('be'));	// 打印: false
+```
+
+### indexOf
+
+indexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number
+
+查找`this`实例中第一次出现`value`的索引,如果不包含`value`,则为-1
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 要搜索的内容。 |
+| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 |
+| encoding | BufferEncoding | 否 | 字符编码格式。 默认值: 'utf-8'。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 第一次出现位置。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from('this is a buffer');
+console.log(buf.indexOf('this'));	// 打印: 0
+console.log(buf.indexOf('is'));		// 打印: 2
+```
+
+### keys
+
+keys(): IterableIterator&lt;number&gt;
+
+返回一个包含key值的迭代器
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+|  IterableIterator&lt;number&gt; | 迭代器。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from('buffer');
+for (const key of buf.keys()) {
+  console.log(key);
+}
+```
+
+### lastIndexOf
+
+lastIndexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number
+
+返回`this`实例中最后一次出现`value`的索引,如果对象不包含,则为-1。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 要搜索的内容。 |
+| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 |
+| encoding | BufferEncoding | 否 | 字符编码格式。 默认值: 'utf-8'。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 最后一次出现`value`值的索引。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from('this buffer is a buffer');
+console.log(buf.lastIndexOf('this'));	// 打印: 0
+console.log(buf.lastIndexOf('buffer'));	// 打印: 17
+```
+
+
+### readBigInt64BE
+
+readBigInt64BE(offset: number): number
+
+从指定的`offset`处读取有符号的大端序64位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 
+        0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
+console.log(buf.readBigInt64BE(0));
+```
+
+### readBigInt64LE
+
+readBigInt64LE(offset: number): number
+
+从指定的`offset`处读取无符号的小端序64位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 
+        0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
+console.log(buf.readBigInt64LE(0));
+```
+
+### readBigUInt64BE
+
+readBigUInt64BE(offset: number): number
+
+从指定的`offset`处读取无符号的大端序64位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 
+        0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
+console.log(buf.readBigUInt64BE(0));
+```
+
+### readBigUInt64LE
+
+readBigUInt64LE(offset: number): number
+
+从指定的`offset`处读取无符号的小端序64位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 
+        0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
+console.log(buf.readBigUInt64LE(0));
+```
+
+### readDoubleBE
+
+readDoubleBE(offset: number): number
+
+从指定`offset`处读取64位大端序双精度值。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
+console.log(buf.readDoubleBE(0));
+```
+
+### readDoubleLE
+
+readDoubleLE(offset: number): number
+
+从指定`offset`处读取64位小端序双精度值。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
+console.log(buf.readDoubleLE(0));
+```
+
+### readFloatBE
+
+readFloatBE(offset: number): number
+
+从指定`offset`处读取32位大端序浮点数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
+console.log(buf.readFloatBE(0));
+```
+
+### readFloatLE
+
+readFloatLE(offset: number): number
+
+从指定`offset`处读取32位小端序浮点数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
+console.log(buf.readFloatLE(0));
+```
+
+### readInt8
+
+readInt8(offset: number): number
+
+从指定的`offset`处读取有符号的8位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([-1, 5]);
+console.log(buf.readInt8(0));	// 打印: -1
+console.log(buf.readInt8(1));	// 打印: 5
+```
+
+### readInt16BE
+
+readInt16BE(offset: number): number
+
+从指定的`offset`处读取有符号的大端序16位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = Buffer.from([0, 5]);
+console.log(buf.readInt16BE(0));	// 打印: 5
+```
+
+### readInt16LE
+
+readInt16LE(offset: number): number
+
+从指定的`offset`处读取有符号的小端序16位整数
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = Buffer.from([0, 5]);
+console.log(buf.readInt16BE(0));	// 打印: 1280
+```
+
+### readInt32BE
+
+readInt32BE(offset: number): number
+
+从指定的`offset`处读取有符号的大端序32位整数
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0, 0, 0, 5]);
+console.log(buf.readInt32BE(0));	// 打印: 5
+```
+
+### readInt32LE
+
+readInt32LE(offset: number): number
+
+从指定的`offset`处读取有符号的小端序32位整数
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 是 | 偏移量。默认值: 0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0, 0, 0, 5]);
+console.log(buf.readInt32LE(0));	// 打印: 83886080
+```
+
+### readIntBE
+
+readIntBE(offset: number, byteLength: number): number
+
+从指定的`offset`处的buf读取byteLength个字节,并将结果解释为支持最高48位精度的大端序、二进制补码有符号值。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 读取的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = Buffer.from("ab");
+let num = buf.readIntBE(0, 1);
+console.log(num); // 97
+```
+
+
+### readIntLE
+
+readIntLE(offset: number, byteLength: number): number
+
+从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的小端序、二进制补码有符号值。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 读取的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
+console.log(buf.readIntLE(0, 6).toString(16));
+```
+
+### readUInt8
+
+readUInt8(offset: number): number
+
+从`offset`处读取8位无符号整型数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([1, -2]);
+console.log(buf.readUInt8(0));
+console.log(buf.readUInt8(1));
+```
+
+### readUInt16BE
+
+readUInt16BE(offset: number): number
+
+从指定的`offset`处的buf读取无符号的大端序16位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56]);
+console.log(buf.readUInt16BE(0).toString(16));
+console.log(buf.readUInt16BE(1).toString(16));
+```
+
+### readUInt16LE
+
+readUInt16LE(offset: number): number
+
+从指定的`offset`处的buf读取无符号的小端序16位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56]);
+console.log(buf.readUInt16LE(0).toString(16));
+console.log(buf.readUInt16LE(1).toString(16));
+```
+
+### readUInt32BE
+
+readUInt32BE(offset: number): number
+
+从指定的`offset`处的buf读取无符号的大端序32位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
+console.log(buf.readUInt32BE(0).toString(16));
+```
+
+### readUInt32LE
+
+readUInt32LE(offset: number): number
+
+从指定的`offset`处的buf读取无符号的小端序32位整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
+console.log(buf.readUInt32LE(0).toString(16));
+```
+
+### readUIntBE
+
+readUIntBE(offset: number, byteLength: number): number
+
+从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的无符号大端序整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要读取的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
+console.log(buf.readUIntBE(0, 6).toString(16));
+```
+
+### readUIntLE
+
+readUIntLE(offset: number, byteLength: number): number
+
+从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的无符号小端序整数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要读取的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 读取出的内容。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
+console.log(buf.readUIntLE(0, 6).toString(16));
+```
+
+### subarray
+
+subarray(start?: number, end?: number): Buffer
+
+截取指定位置的`this`实例并返回。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| start | number | 否 | 截取开始位置。 默认值: 0。 |
+| end | number | 否 |  截取结束位置(不包括在内)。 默认值: buf.length。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 新的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.allocUninitializedFromPool(26);
+
+for (let i = 0; i < 26; i++) {
+  buf1[i] = i + 97;
+}
+const buf2 = buf1.subarray(0, 3);
+console.log(buf2.toString('ascii', 0, buf2.length));
+// 打印: abc
+```
+
+### swap16
+
+swap16(): Buffer
+
+将`this`实例解释为无符号的16位整数数组,并就地交换字节顺序。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 交换之后的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
+console.log(buf1);	// 打印: <Buffer 01 02 03 04 05 06 07 08>
+
+buf1.swap16();
+console.log(buf1);	// 打印: <Buffer 02 01 04 03 06 05 08 07>
+```
+
+### swap32
+
+swap32(): Buffer
+
+将`this`实例解释为无符号的32位整数数组,并就地交换字节顺序
+
+**系统能力:** SystemCapability.Utils.Lang
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 交换之后的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
+console.log(buf1);	// 打印: <Buffer 01 02 03 04 05 06 07 08>
+
+buf1.swap32();
+console.log(buf1);	// 打印: <Buffer 04 03 02 01 08 07 06 05>
+```
+
+### swap64
+
+swap64(): Buffer
+
+将`this`实例解释为无符号的64位整数数组,并就地交换字节顺序
+
+**系统能力:** SystemCapability.Utils.Lang
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 交换之后的Buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
+console.log(buf1);	// 打印: <Buffer 01 02 03 04 05 06 07 08>
+buf1.swap64();
+console.log(buf1);	// 打印: <Buffer 08 07 06 05 04 03 02 01>
+```
+
+### toJSON
+
+toJSON(): Object
+
+将buf转为JSON并返回。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Object | JSON对象。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
+let buf2 = buffer.from(buf1.toJSON())
+let json = JSON.stringify(buf2);
+console.log(json);
+// 打印: {"type":"Buffer","data":[1,2,3,4,5]}
+```
+
+### toString
+
+toString(encoding?: string, start?: number, end?: number): string
+
+将`this`实例中指定位置数据转成指定编码格式字符串并返回。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| encoding | string | 否 | 字符编码格式。 默认值: 'utf-8'。 |
+| start  | number | 否 |  开始位置。 默认值: 0。 |
+| end  | number | 否 |  结束位置。 默认值: buf.length。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| string | 字符串。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.allocUninitializedFromPool(26);
+for (let i = 0; i < 26; i++) {
+  buf1[i] = i + 97;
+}
+console.log(buf1.toString('utf-8'));
+// 打印: abcdefghijklmnopqrstuvwxyz
+```
+
+### values
+
+values(): IterableIterator&lt;number&gt;
+
+返回一个包含value的迭代器。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| IterableIterator&lt;number&gt; | 迭代器。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf1 = buffer.from('buffer');
+for (const value of buf.values()) {
+  console.log(value);
+}
+```
+
+### write
+
+write(str: string, offset?: number, length?: number, encoding?: string): number
+
+从buf的offset偏移写入指定编码的字符串str,写入的字节长度为length
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| str | string | 是 | 要写入Buffer的字符串。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| length | number | 否 | 最大字节长度。 默认值: (buf.length - offset)。|
+| encoding | BufferEncoding | 否 | 字符编码。 默认值: 'utf8'。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 返回写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.alloc(256);
+let len = buf.write('\u00bd + \u00bc = \u00be', 0);
+console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
+// 打印: 12 bytes: ½ + ¼ = ¾
+
+let buffer = Buffer.alloc(10);
+let length = buffer.write('abcd', 8);
+```
+
+### writeBigInt64BE
+
+writeBigInt64BE(value: number, offset?: number): number
+
+从buf的offset偏移写入大端序的64位BigInt型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeBigInt64BE(0x0102030405060708n, 0);
+```
+
+### writeBigInt64LE
+
+writeBigInt64LE(value : number, offset? : number): number
+
+从buf的offset偏移写入小端序的64位BigInt型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeBigInt64LE(0x0102030405060708n, 0);
+```
+
+### writeBigUInt64BE
+
+writeBigUInt64BE(value : number, offset? : number): number
+
+从buf的offset偏移写入大端序的64位BigUInt型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeBigUInt64BE(0xdecafafecacefaden, 0);
+```
+
+### writeBigUInt64LE
+
+writeBigUInt64LE(value : number, offset? : number): number
+
+从buf的offset偏移写入小端序的64位BigUInt型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeBigUInt64LE(0xdecafafecacefaden, 0);
+```
+
+### writeDoubleBE
+
+writeDoubleBE(value : number, offset? : number): number
+
+从buf的offset偏移写入大端序的64位有符号双浮点型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeDoubleBE(123.456, 0);
+```
+
+### writeDoubleLE
+
+writeDoubleLE(value : number, offset? : number): number
+
+从buf的offset偏移写入小端序的64位有符号双浮点型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeDoubleLE(123.456, 0);
+```
+
+### writeFloatBE
+
+writeFloatBE(value : number, offset? : number): number
+
+从buf的offset偏移写入大端序的32位有符号浮点型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeFloatBE(0xcafebabe, 0);
+```
+
+
+### writeFloatLE
+
+writeFloatLE(value : number, offset? : number): number
+
+从buf的offset偏移写入小端序的32位有符号浮点型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(8);
+buf.writeFloatLE(0xcafebabe, 0);
+```
+
+### writeInt8
+
+writeInt8(value : number, offset? : number): number
+
+从buf的offset偏移写入8位有符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(2);
+buf.writeInt8(2, 0);
+buf.writeInt8(-2, 1);
+```
+
+
+### writeInt16BE
+
+writeInt16BE(value : number, offset? : number): number
+
+从buf的offset偏移写入大端序的16位有符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(2);
+buf.writeInt16BE(0x0102, 0);
+```
+
+
+### writeInt16LE
+
+writeInt16LE(value : number, offset : number): number
+
+从buf的offset偏移写入小端序的16位有符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(2);
+buf.writeInt16LE(0x0304, 0);
+```
+
+### writeInt32BE
+
+writeInt32BE(value : number, offset : number): number
+
+从buf的offset偏移写入大端序的32位有符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeInt32BE(0x01020304, 0);
+```
+
+
+### writeInt32LE
+
+writeInt32LE(value : number, offset : number): number
+
+从buf的offset偏移写入小端序的32位有符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeInt32LE(0x05060708, 0);
+```
+
+### writeIntBE
+
+writeIntBE(value : number, offset : number, byteLength : number): number
+
+从buf的offset偏移写入大端序的有符号value数据,value字节长度为byteLength
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要写入的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(6);
+buf.writeIntBE(0x1234567890ab, 0, 6);
+```
+
+
+### writeIntLE
+
+writeIntLE(value : number, offset : number, byteLength : number): number
+
+从buf的offset偏移写入小端序的有符号value数据,value字节长度为byteLength
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要写入的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(6);
+buf.writeIntLE(0x1234567890ab, 0, 6);
+```
+
+### writeUInt8
+
+writeUInt8(value : number, offset : number): number
+
+从buf的offset偏移写入8位无符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeUInt8(0x3, 0);
+buf.writeUInt8(0x4, 1);
+buf.writeUInt8(0x23, 2);
+buf.writeUInt8(0x42, 3);
+```
+
+### writeUInt16BE
+
+writeUInt16BE(value : number, offset : number): number
+
+从buf的offset偏移写入大端序的16位无符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeUInt16BE(0xdead, 0);
+buf.writeUInt16BE(0xbeef, 2);
+```
+
+### writeUInt16LE
+
+writeUInt16LE(value : number, offset : number): number
+
+从buf的offset偏移写入小端序的16位无符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeUInt16LE(0xdead, 0);
+buf.writeUInt16LE(0xbeef, 2);
+```
+
+### writeUInt32BE
+
+writeUInt32BE(value : number, offset : number): number
+
+从buf的offset偏移写入大端序的32位无符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数据。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeUInt32BE(0xfeedface, 0);
+```
+
+### writeUInt32LE
+
+writeUInt32LE(value : number, offset : number): number
+
+从buf的offset偏移写入小端序的32位无符号整型数据value
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数字。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(4);
+buf.writeUInt32LE(0xfeedface, 0);
+```
+
+### writeUIntBE
+
+writeUIntBE(value : number, offset : number, byteLength : number): number
+
+从buf的offset偏移写入大端序的无符号value数据,value字节长度为byteLength
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数据。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要写入的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(6);
+buf.writeUIntBE(0x1234567890ab, 0, 6);
+```
+
+### writeUIntLE
+
+writeUIntLE(value : number, offset : number, byteLength : number): number
+
+从buf的offset偏移写入小端序的无符号value数据,value字节长度为byteLength
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| value | number | 是 | 写入 buf 的数据。 |
+| offset | number | 否 | 偏移量。 默认值: 0。 |
+| byteLength | number | 否 | 要写入的字节数。 |
+
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| number | 写入的字节数。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.allocUninitializedFromPool(6);
+buf.writeUIntLE(0x1234567890ab, 0, 6);
+```
+
+### transcode
+
+transcode(source : Buffer | Uint8Array, fromEnc : string, toEnc : string): Buffer
+
+将给定的Buffer或Uint8Array实例从一种字符编码重新编码为另一种
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| source | Buffer&nbsp;\|&nbsp;Uint8Array | 是 | 实例对象。 |
+| fromEnc | string | 是 | 当前编码。 |
+| toEnc | string | 是 | 目标编码。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Buffer | 根据当前编码转换成目标编码,并返回一个新的buffer实例。 |
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let buf = buffer.alloc(50);
+let newBuf = buf.transcode(buffer.from('€'), 'utf8', 'ascii');
+console.log(newBuf.toString('ascii'));
+```
+
+## Blob
+
+### 属性
+
+**系统能力:** SystemCapability.Utils.Lang
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| size | number | 是 | 否 | Blob实例的总字节大小。 |
+| type | string | 是 | 否 | Blob实例的内容类型。 |
+
+### constructor
+
+constructor(sources: string[] | ArrayBuffer[] | TypedArray[] | DataView[] | Blob[] , options: Object)
+
+Blob的构造函数。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| sources | string[]&nbsp;\|&nbsp;ArrayBuffer[]&nbsp;\|&nbsp;TypedArray[]&nbsp;\|&nbsp;DataView[]&nbsp;\|&nbsp;Blob[] | 是 | Blob实例的数据源。 |
+| options | Object | 否 | options:<br/>-&nbsp;endings:'transparent'或'native'<br/>-&nbsp;type:Blob内容类型 |
+
+
+**示例:**
+
+```ts
+import buffer from '@ohos.buffer';
+
+let blob1 = new buffer.Blob(['a', 'b', 'c']);
+let blob1 = new buffer.Blob(['a', 'b', 'c'], {endings:'native', type: 'MIME'});
+```
+
+### encode
+
+arrayBuffer(): Promise&lt;ArrayBuffer&gt;
+
+将Blob中的数据放入到ArrayBuffer中,并返回一个Promise。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**返回值:**
+| 类型 | 说明 |
+| -------- | -------- |
+| Promise&lt;ArrayBuffer&gt; | 返回包含Blob数据的ArrayBuffer的Promise。 |
+
+**示例:**
+  ```ts
+  let blob = new buffer.Blob(['a', 'b', 'c']);
+  let pro = blob.arrayBuffer();
+  pro.then(val => {
+      console.log(val)
+  });
+  ```
+### slice
+
+slice(start?: number, end?: number, type?: string): Blob
+
+创建并返回一个复制原blob对象中start到end位置数据的新blob实例对象。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| start | number | 否 | 起始位置。 |
+| end | number | 否 | 结束位置。 |
+| type | string | 否 | 内容类型。 |
+
+**返回值:**
+| 类型 | 说明 |
+| -------- | -------- |
+| Blob | 新的Blob实例对象。 |
+
+**示例:**
+  ```ts
+  let blob = new buffer.Blob(['a', 'b', 'c']);
+  let blob2 = blob.slice(0, 2);
+  let blob3 = blob.slice(0, 2, "MIME");
+  ```
+
+  ### text
+
+text(): Promise&lt;string&gt;
+
+返回一个Promise,该Promise中的值为UTF8编码类型的文本。
+
+**系统能力:** SystemCapability.Utils.Lang
+
+**返回值:**
+| 类型 | 说明 |
+| -------- | -------- |
+| Promise&lt;string&gt; | 包含以UTF8编码的文本的Promise。 |
+
+**示例:**
+  ```ts
+  let blob = new buffer.Blob(['a', 'b', 'c']);
+  let pro = blob.text();
+  pro.then(val => {
+      console.log(val)
+  });
+  ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md
index 44e8685a7a3a9d2f5090d88dbd29bb767203f4db..63f8bccac119926565f26255908d60c15c88c489 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md
@@ -7,9 +7,9 @@
 
 
 
-Ability信息
-
+Ability信息,未做特殊说明的属性,均通过GET_BUNDLE_DEFAULT获取
 
+## AbilityInfo
 
  **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
 
@@ -24,24 +24,24 @@ Ability信息
 | iconId                | number                                                   | 是   | 否   | Ability的图标id                           |
 | moduleName            | string                                                   | 是   | 否   | Ability所属的HAP包的名称                  |
 | process               | string                                                   | 是   | 否   | Ability的进程,如果不设置,默认为包的名称 |
-| targetAbility         | string                                                   | 是   | 否   | 当前Ability重用的目标Ability              |
-| backgroundModes       | number                                                   | 是   | 否   | 表示后台服务的类型                        |
+| targetAbility         | string                                                   | 是   | 否   | 当前Ability重用的目标Ability<br />此属性仅可在FA模型下使用 |
+| backgroundModes       | number                                                   | 是   | 否   | 表示后台服务的类型<br />此属性仅可在FA模型下使用     |
 | isVisible             | boolean                                                  | 是   | 否   | 判断Ability是否可以被其他应用调用         |
-| formEnabled           | boolean                                                  | 是   | 否   | 判断Ability是否提供卡片能力               |
-| type                  | AbilityType                                              | 是   | 否   | Ability类型                               |
+| formEnabled           | boolean                                                  | 是   | 否   | 判断Ability是否提供卡片能力<br />此属性仅可在FA模型下使用 |
+| type                  | AbilityType                                              | 是   | 否   | Ability类型<br />此属性仅可在FA模型下使用            |
 | orientation           | DisplayOrientation                                       | 是   | 否   | Ability的显示模式                         |
 | launchMode            | LaunchMode                                               | 是   | 否   | Ability的启动模式                         |
-| permissions           | Array\<string>                                           | 是   | 否   | 被其他应用Ability调用时需要申请的权限集合 |
+| permissions           | Array\<string>                                           | 是   | 否   | 被其他应用Ability调用时需要申请的权限集合<br />通过传入GET_ABILITY_INFO_WITH_PERMISSION获取 |
 | deviceTypes           | Array\<string>                                           | 是   | 否   | Ability支持的设备类型                     |
 | deviceCapabilities    | Array\<string>                                           | 是   | 否   | Ability需要的设备能力                     |
-| readPermission        | string                                                   | 是   | 否   | 读取Ability数据所需的权限                 |
-| writePermission       | string                                                   | 是   | 否   | 向Ability写数据所需的权限                 |
-| applicationInfo       | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)     | 是   | 否   | 应用程序的配置信息                        |
-| uri                   | string                                                   | 是   | 否   | 获取Ability的统一资源标识符(URI)        |
+| readPermission        | string                                                   | 是   | 否   | 读取Ability数据所需的权限<br />此属性仅可在FA模型下使用 |
+| writePermission       | string                                                   | 是   | 否   | 向Ability写数据所需的权限<br />此属性仅可在FA模型下使用 |
+| applicationInfo       | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)     | 是   | 否   | 应用程序的配置信息<br />通过传入GET_ABILITY_INFO_WITH_APPLICATION获取 |
+| uri                   | string                                                   | 是   | 否   | 获取Ability的统一资源标识符(URI)<br />此属性仅可在FA模型下使用 |
 | labelId               | number                                                   | 是   | 否   | Ability的标签id                           |
-| subType               | AbilitySubType                                           | 是   | 否   | Ability中枚举使用的模板的子类型           |
-| metaData<sup>8+</sup> | Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)> | 是   | 否   | ability的自定义信息                       |
-| metadata<sup>9+</sup> | Array\<[Metadata](js-apis-bundle-Metadata.md)>           | 是   | 否   | ability的元信息                           |
+| subType               | AbilitySubType                                           | 是   | 否   | Ability中枚举使用的模板的子类型<br />此属性仅可在FA模型下使用 |
+| metaData<sup>8+</sup> | Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)> | 是   | 否   | ability的自定义信息<br />通过传入GET_ABILITY_INFO_WITH_METADATA获取 |
+| metadata<sup>9+</sup> | Array\<[Metadata](js-apis-bundle-Metadata.md)>           | 是   | 否   | ability的元信息<br />通过传入GET_ABILITY_INFO_WITH_METADATA获取 |
 | enabled<sup>8+</sup>  | boolean                                                  | 是   | 否   | ability是否可用                           |
 | supportWindowMode<sup>9+</sup>  | Array\<[SupportWindowMode](js-apis-Bundle.md)> | 是   | 否   | ability支持的窗口模式                      |
 | maxWindowRatio<sup>9+</sup>  | number                                            | 是   | 否   | ability支持的最大的窗口比例                      |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
index d2a181f5e3014483f941d2f1c3f5f20eaa3369e0..14e35a748a226853453725b3e638a90cabc30b8f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md
@@ -3,7 +3,7 @@
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
-应用程序信息
+应用程序信息,未做特殊说明的属性,均通过GET_BUNDLE_DEFAULT获取
 
 ## ApplicationInfo
 
@@ -25,17 +25,17 @@
 | process                    | string                                                       | 是   | 否   | 应用程序的进程,如果不设置,默认为包的名称。                   |
 | supportedModes             | number                                                       | 是   | 否   | 应用程序支持的运行模式。                                       |
 | moduleSourceDirs           | Array\<string>                                               | 是   | 否   | 应用程序的资源存放的相对路径。                                 |
-| permissions                | Array\<string>                                               | 是   | 否   | 访问应用程序所需的权限。                                       |
+| permissions                | Array\<string>                                               | 是   | 否   | 访问应用程序所需的权限。<br />通过传入GET_APPLICATION_INFO_WITH_PERMISSION获取 |
 | moduleInfos                | Array\<[ModuleInfo](js-apis-bundle-ModuleInfo.md)>           | 是   | 否   | 应用程序的模块信息。                                           |
 | entryDir                   | string                                                       | 是   | 否   | 应用程序的文件保存路径。                                       |
 | codePath<sup>8+</sup>      | string                                                       | 是   | 否   | 应用程序的安装目录。                                           |
-| metaData<sup>8+</sup>      | Map\<string, Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)>> | 是   | 否   | 应用程序的自定义元信息。                                       |
-| metadata<sup>9+</sup>      | Map\<string, Array\<[Metadata](js-apis-bundle-Metadata.md)>> | 是   | 否   | 应用程序的元信息。                                             |
+| metaData<sup>8+</sup>      | Map\<string, Array\<[CustomizeData](js-apis-bundle-CustomizeData.md)>> | 是   | 否   | 应用程序的自定义元信息。<br />通过传入GET_APPLICATION_INFO_WITH_METADATA获取 |
+| metadata<sup>9+</sup>      | Map\<string, Array\<[Metadata](js-apis-bundle-Metadata.md)>> | 是   | 否   | 应用程序的元信息。<br />通过传入GET_APPLICATION_INFO_WITH_METADATA获取 |
 | removable<sup>8+</sup>     | boolean                                                      | 是   | 否   | 应用程序是否可以被移除。                                       |
 | accessTokenId<sup>8+</sup> | number                                                       | 是   | 否   | 应用程序的accessTokenId。                                      |
 | uid<sup>8+</sup>           | number                                                       | 是   | 否   | 应用程序的uid。                                                |
 | entityType<sup>8+</sup>    | string                                                       | 是   | 否   | 应用程序的实体类型。                                           |
-| fingerprint<sup>9+</sup>   | string                                                       | 是   | 否   | 应用程序的签名证书指纹信息,即开发者申请的签名证书的sha256值。 |
+| fingerprint<sup>9+</sup>   | string                                                       | 是   | 否   | 应用程序的签名证书指纹信息,即开发者申请的签名证书的sha256值。<br />通过传入GET_APPLICATION_INFO_WITH_CERTIFICATE_FINGERPRINT获取 |
 | iconResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | 是 | 否 | 应用程序的图标资源信息。 |
 | labelResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | 是 | 否 | 应用程序的标签资源信息。 |
 | descriptionResource<sup>9+</sup> | [Resource](js-apis-resource-manager.md#resource9) | 是 | 否 | 应用程序的描述资源信息。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
index 80ace94cbd2a31c487b360e029480feb54394d27..f92370a7861bdb78dbcd0df1ae92e6eab04d1f38 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInfo.md
@@ -7,38 +7,38 @@
 
 
 
-应用包的信息
+应用包的信息,未做特殊说明的属性,均通过GET_BUNDLE_DEFAULT获取
 
 ## BundleInfo
 
  **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
 
-| 名称                              | 类型                                                         | 可读 | 可写 | 说明                                       |
-| --------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------ |
-| name                              | string                                                       | 是   | 否   | 应用包的名称                               |
-| type                              | string                                                       | 是   | 否   | 应用包类型                                 |
-| appId                             | string                                                       | 是   | 否   | 应用包里应用程序的id                       |
-| uid                               | number                                                       | 是   | 否   | 应用包里应用程序的uid                      |
-| installTime                       | number                                                       | 是   | 否   | HAP包安装时间                              |
-| updateTime                        | number                                                       | 是   | 否   | HAP包更新时间                              |
-| appInfo                           | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)         | 是   | 否   | 应用程序的配置信息                         |
-| abilityInfos                      | Array\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)>         | 是   | 否   | Ability的配置信息                          |
-| reqPermissions                    | Array\<string>                                               | 是   | 否   | 应用运行时需向系统申请的权限集合           |
-| reqPermissionDetails              | Array\<[ReqPermissionDetail](#ReqPermissionDetail)>          | 是   | 否   | 应用运行时需向系统申请的权限集合的详细信息 |
-| vendor                            | string                                                       | 是   | 否   | 应用包的供应商                             |
-| versionCode                       | number                                                       | 是   | 否   | 应用包的版本号                             |
-| versionName                       | string                                                       | 是   | 否   | 应用包的版本文本描述信息                   |
-| compatibleVersion                 | number                                                       | 是   | 否   | 运行应用包所需要最低的SDK版本号            |
-| targetVersion                     | number                                                       | 是   | 否   | 运行应用包所需要最高SDK版本号              |
-| isCompressNativeLibs              | boolean                                                      | 是   | 否   | 是否压缩应用包的本地库,默认为true         |
-| hapModuleInfos                    | Array\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)>     | 是   | 否   | 模块的配置信息                             |
-| entryModuleName                   | string                                                       | 是   | 否   | Entry的模块名称                            |
-| cpuAbi                            | string                                                       | 是   | 否   | 应用包的cpuAbi信息                         |
-| isSilentInstallation              | string                                                       | 是   | 否   | 是否通过静默安装                           |
-| minCompatibleVersionCode          | number                                                       | 是   | 否   | 分布式场景下的应用包兼容的最低版本         |
-| entryInstallationFree             | boolean                                                      | 是   | 否   | Entry是否支持免安装                        |
-| reqPermissionStates<sup>8+</sup>  | Array\<number>                                               | 是   | 否   | 申请权限的授予状态                         |
-| extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | 是   | 否   | ability的可扩展信息                        |
+| 名称                              | 类型                                                         | 可读 | 可写 | 说明                                                         |
+| --------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
+| name                              | string                                                       | 是   | 否   | 应用包的名称                                                 |
+| type                              | string                                                       | 是   | 否   | 应用包类型                                                   |
+| appId                             | string                                                       | 是   | 否   | 应用包里应用程序的id                                         |
+| uid                               | number                                                       | 是   | 否   | 应用包里应用程序的uid                                        |
+| installTime                       | number                                                       | 是   | 否   | HAP包安装时间                                                |
+| updateTime                        | number                                                       | 是   | 否   | HAP包更新时间                                                |
+| appInfo                           | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md)         | 是   | 否   | 应用程序的配置信息                                           |
+| abilityInfos                      | Array\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)>         | 是   | 否   | Ability的配置信息<br />通过传入GET_BUNDLE_WITH_ABILITIES获取 |
+| reqPermissions                    | Array\<string>                                               | 是   | 否   | 应用运行时需向系统申请的权限集合<br />通过传入GET_BUNDLE_WITH_REQUESTED_PERMISSION获取 |
+| reqPermissionDetails              | Array\<[ReqPermissionDetail](#reqpermissiondetail)>          | 是   | 否   | 应用运行时需向系统申请的权限集合的详细信息<br />通过传入GET_BUNDLE_WITH_REQUESTED_PERMISSION获取 |
+| vendor                            | string                                                       | 是   | 否   | 应用包的供应商                                               |
+| versionCode                       | number                                                       | 是   | 否   | 应用包的版本号                                               |
+| versionName                       | string                                                       | 是   | 否   | 应用包的版本文本描述信息                                     |
+| compatibleVersion                 | number                                                       | 是   | 否   | 运行应用包所需要最低的SDK版本号                              |
+| targetVersion                     | number                                                       | 是   | 否   | 运行应用包所需要最高SDK版本号                                |
+| isCompressNativeLibs              | boolean                                                      | 是   | 否   | 是否压缩应用包的本地库,默认为true                           |
+| hapModuleInfos                    | Array\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)>     | 是   | 否   | 模块的配置信息                                               |
+| entryModuleName                   | string                                                       | 是   | 否   | Entry的模块名称                                              |
+| cpuAbi                            | string                                                       | 是   | 否   | 应用包的cpuAbi信息                                           |
+| isSilentInstallation              | string                                                       | 是   | 否   | 是否通过静默安装                                             |
+| minCompatibleVersionCode          | number                                                       | 是   | 否   | 分布式场景下的应用包兼容的最低版本                           |
+| entryInstallationFree             | boolean                                                      | 是   | 否   | Entry是否支持免安装                                          |
+| reqPermissionStates<sup>8+</sup>  | Array\<number>                                               | 是   | 否   | 申请权限的授予状态                                           |
+| extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | 是   | 否   | ability的可扩展信息<br />通过传入GET_BUNDLE_WITH_EXTENSION_ABILITY获取 |
 
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md
new file mode 100644
index 0000000000000000000000000000000000000000..003becc599ab3271b038237b783994d0751a8681
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md
@@ -0,0 +1,105 @@
+# BundleInstaller
+
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+在设备上安装、升级和删除捆绑包
+
+
+
+## 系统能力
+
+SystemCapability.BundleManager.BundleFramework
+
+## BundleInstaller.install
+
+install(bundleFilePaths: Array&lt;string&gt;, param: InstallParam, callback: AsyncCallback&lt;InstallStatus&gt;): void;
+
+以异步方法在HAP中安装应用程序,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.INSTALL_BUNDLE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**参数:**
+
+| 名称            | 类型                                                 | 必填 | 描述                                                         |
+| --------------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| bundleFilePaths | Array&lt;string&gt;                                  | 是   | 指示存储应用程序包的路径。路径应该是当前应用程序的数据目录的相对路径。 |
+| param           | [InstallParam](#installparam)                        | 是   | 指定安装所需的其他参数。                                     |
+| callback        | AsyncCallback&lt;[InstallStatus](#installstatus)&gt; | 是   | 程序启动作为入参的回调函数,返回安装状态信息。               |
+
+## BundleInstaller.uninstall
+
+uninstall(bundleName: string, param: InstallParam, callback: AsyncCallback&lt;InstallStatus&gt;): void;
+
+以异步方法卸载应用程序,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.INSTALL_BUNDLE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**参数:**
+
+| 名称       | 类型                                                 | 必填 | 描述                                           |
+| ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- |
+| bundleName | string                                               | 是   | 包名                                           |
+| param      | [InstallParam](#installparam)                        | 是   | 指定安装所需的其他参数。                       |
+| callback   | AsyncCallback&lt;[InstallStatus](#installstatus)&gt; | 是   | 程序启动作为入参的回调函数,返回安装状态信息。 |
+
+## BundleInstaller.recover
+
+recover(bundleName: string, param: InstallParam, callback: AsyncCallback&lt;InstallStatus&gt;): void;
+
+以异步方法恢复一个应用程序,使用callback形式返回结果。
+
+**需要权限:**
+
+ohos.permission.INSTALL_BUNDLE
+
+**系统能力:**
+
+SystemCapability.BundleManager.BundleFramework
+
+**参数:**
+
+| 名称       | 类型                                                 | 必填 | 描述                                           |
+| ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- |
+| bundleName | string                                               | 是   | 包名                                           |
+| param      | [InstallParam](#installparam)                        | 是   | 指定安装所需的其他参数。                       |
+| callback   | AsyncCallback&lt;[InstallStatus](#installstatus)&gt; | 是   | 程序启动作为入参的回调函数,返回安装状态信息。 |
+
+## InstallParam
+
+应用程序安装卸载信息
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称        | 类型    | 说明               |
+| ----------- | ------- | ------------------ |
+| userId      | number  | 指示用户id         |
+| installFlag | number  | 指示安装标志       |
+| isKeepData  | boolean | 指示参数是否有数据 |
+
+## InstallStatus
+
+应用程序安装状态
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称          | 类型                                                         | 可读 | 可写 | 说明                           |
+| ------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------ |
+| status        | bundle.[InstallErrorCode](js-apis-Bundle.md#installerrorcode) | 是   | 否   | 表示安装或卸载错误状态码       |
+| statusMessage | string                                                       | 是   | 否   | 表示安装或卸载的字符串结果信息 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md
index 33b58e0721464c04d2f6d966a9322f02c0b8322b..c7fc3de209c93551ef06d170a8b941c91fa5821d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md
@@ -2,17 +2,17 @@
 
 
 
-**说明:**
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
-
-
 ElementName信息
 
 ## ElementName
 
  **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
 
+
+
 | 名称                     | 类型     | 可读 | 可写 | 说明                       |
 | ----------------------- | ---------| ---- | ---- | ------------------------- |
 | deviceId                | string   | 是   | 是   | 设备id                     |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
index 879d9f4b48468c5a564f9e9685dcc262e60fe762..6ca778bf7ca5bb9f2fec9af3680d485fb27ac12e 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ExtensionAbilityInfo.md
@@ -7,7 +7,7 @@
 
 
 
-ExtensionAbility信息
+ExtensionAbility信息,未做特殊说明的属性,均通过GET_BUNDLE_DEFAULT获取
 
 ## ExtensionAbilityInfo
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
index f21241cda3ae6467ea1198b4496961725a4f9c90..8cb5642e31bd0805ae7b5f0424406506c1df763d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-HapModuleInfo.md
@@ -7,7 +7,7 @@
 
 
 
-Hap模块信息
+Hap模块信息,未做特殊说明的属性,均通过GET_BUNDLE_DEFAULT获取
 
 ## HapModuleInfo
 
@@ -35,4 +35,5 @@ Hap模块信息
 | mainElementName<sup>9+</sup>      | string                                                       | 是   | 否   | 入口ability信息      |
 | extensionAbilityInfo<sup>9+</sup> | Array\<[ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md)> | 是   | 否   | extensionAbility信息 |
 | metadata<sup>9+</sup>             | Array\<[Metadata](js-apis-bundle-Metadata.md)>               | 是   | 否   | Ability的元信息      |
-| hashValue<sup>9+</sup>            | string                                                       | 是   | 否   | Module的Hash值      |
\ No newline at end of file
+| hashValue<sup>9+</sup>            | string                                                       | 是   | 否   | Module的Hash值<br />通过传入GET_BUNDLE_WITH_HASH_VALUE获取 |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..c2ca416a6b9ee5a46f61672259d39951481abce6
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md
@@ -0,0 +1,23 @@
+# LauncherAbilityInfo
+
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+LauncherAbilityInfo信息
+
+## LauncherAbilityInfo
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称            | 类型                                                 | 可读 | 可写 | 说明                                 |
+| --------------- | ---------------------------------------------------- | ---- | ---- | ------------------------------------ |
+| applicationInfo | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md) | 是   | 否   | launcher ability的应用程序的配置信息 |
+| elementName     | [ElementName](js-apis-bundle-ElementName.md)         | 是   | 否   | launcher ability的ElementName信息    |
+| labelId         | number                                               | 是   | 否   | launcher ability的标签ID             |
+| iconId          | number                                               | 是   | 否   | launcher ability的图标ID             |
+| userId          | number                                               | 是   | 否   | launcher ability的用户ID             |
+| installTime     | number                                               | 是   | 否   | launcher ability的安装时间           |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md
new file mode 100644
index 0000000000000000000000000000000000000000..62cc922bfff3498be6dbba4c3ecc935bbc6c7221
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md
@@ -0,0 +1,21 @@
+# PermissionDef
+
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+配置文件中定义的权限详细信息
+
+## **PermissionDef**
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称           | 类型   | 可读 | 可写 | 说明           |
+| -------------- | ------ | ---- | ---- | -------------- |
+| permissionName | string | 是   | 否   | 用户权限名称   |
+| grantMode      | number | 是   | 否   | 权限的授予模式 |
+| labelId        | number | 是   | 否   | 权限的标签ID   |
+| descriptionId  | number | 是   | 否   | 描述权限的ID   |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..2a1eb5a9b7e34e472b584258e8014939910c785d
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md
@@ -0,0 +1,47 @@
+# ShortcutInfo
+
+
+
+> **说明:**
+>
+> 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+配置文件中定义的快捷方式信息。
+
+
+
+## ShortcutWant
+
+快捷方式所指向的目标信息。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称                      | 类型   | 可读 | 可写 | 说明                 |
+| ------------------------- | ------ | ---- | ---- | -------------------- |
+| targetBundle              | string | 是   | 否   | 快捷方式的目标捆绑包 |
+| targetModule<sup>9+</sup> | string | 是   | 否   | 快捷方式的目标模块   |
+| targetClass               | string | 是   | 否   | 快捷方式所需的目标类 |
+
+## ShortcutInfo
+
+快捷方式属性信息。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称                    | 类型                                       | 可读 | 可写 | 说明                         |
+| ----------------------- | ------------------------------------------ | ---- | ---- | ---------------------------- |
+| id                      | string                                     | 是   | 否   | 快捷方式所属应用程序的Id     |
+| bundleName              | string                                     | 是   | 否   | 包含快捷方式的包名称         |
+| hostAbility             | string                                     | 是   | 否   | 快捷方式的本地Ability信息    |
+| icon                    | string                                     | 是   | 否   | 快捷方式的图标               |
+| iconId<sup>8+</sup>     | number                                     | 是   | 否   | 快捷方式的图标Id             |
+| label                   | string                                     | 是   | 否   | 快捷方式的标签               |
+| labelId<sup>8+</sup>    | number                                     | 是   | 否   | 快捷方式的标签Id             |
+| disableMessage          | string                                     | 是   | 否   | 快捷方式的禁用消息           |
+| wants                   | Array&lt;[ShortcutWant](#shortcutwant)&gt; | 是   | 否   | 快捷方式所需要的信息         |
+| isStatic                | boolean                                    | 是   | 否   | 快捷方式是否为静态           |
+| isHomeShortcut          | boolean                                    | 是   | 否   | 快捷方式是否为主页面快捷方式 |
+| isEnabled               | boolean                                    | 是   | 否   | 是否启用快捷方式             |
+| moduleName<sup>9+</sup> | string                                     | 是   | 否   | 快捷方式的模块名             |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md
index 502a72801becf2d912d4da660d1e78c13dd98c93..7e2f8e3deede69d1204b7b91589a4f5d7a73167d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md
@@ -96,7 +96,7 @@ getDefaultApplication(type: string, userId?: number): Promise\<BundleInfo>
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -141,7 +141,7 @@ getDefaultApplication(type: string, userId: number, callback: AsyncCallback\<Bun
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -181,7 +181,7 @@ getDefaultApplication(type: string, callback: AsyncCallback\<BundleInfo>) : void
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -220,7 +220,7 @@ setDefaultApplication(type: string, elementName: ElementName, userId?: number):
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -268,7 +268,7 @@ setDefaultApplication(type: string, elementName: ElementName, userId: number, ca
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -317,7 +317,7 @@ setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCal
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -365,7 +365,7 @@ resetDefaultApplication(type: string, userId?: number): Promise\<void>
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -404,7 +404,7 @@ resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<v
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
@@ -444,7 +444,7 @@ resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void;
 
 **系统能力:** SystemCapability.BundleManager.BundleFramework
 
-**System API:** 此接口为系统接口
+**系统API:**  此接口为系统接口,三方应用不支持调用
 
 **参数:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..37601a3c83847c49bdab956e6782934c4f5c5499
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md
@@ -0,0 +1,20 @@
+# RemoteAbilityInfo
+
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+包含基本远程能力信息
+
+## RemoteAbilityInfo
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称        | 类型                                         | 可读 | 可写 | 说明                    |
+| ----------- | -------------------------------------------- | ---- | ---- | ----------------------- |
+| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是   | 否   | 指明的ability信息       |
+| label       | string                                       | 是   | 否   | 指明ability的标签信息   |
+| icon        | string                                       | 是   | 否   | 指明的ability的图标信息 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bytrace.md b/zh-cn/application-dev/reference/apis/js-apis-bytrace.md
index add046e1ff964c4f3d54cf4e5657f74a456b0c62..b35171946c40d103048917acf969d8173553a8fe 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bytrace.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bytrace.md
@@ -18,7 +18,10 @@ startTrace(name: string, taskId: number, expectedTime?: number): void
 
 标记一个时间片跟踪任务的开始。
 
-**系统能力:** SystemCapability.Developtools.Bytrace
+> **说明:**
+> 如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且这些跟踪任务会同时被执行,则每次调用startTrace的taskId必须不一致。如果具有相同name的跟踪任务是串行执行的,则taskId可以相同。在下面bytrace.finishTrace的示例中会举例说明。
+
+**系统能力:** SystemCapability.HiviewDFX.HiTrace
 
 **参数:**
 
@@ -28,8 +31,6 @@ startTrace(name: string, taskId: number, expectedTime?: number): void
 | taskId | number | 是 | 时间片跟踪任务id |
 | expectedTime | number | 否 | 期望的耗时时间(单位:ms) |
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且这些跟踪任务会同时被执行,则每次调用startTrace的taskId必须不一致。如果具有相同name的跟踪任务是串行执行的,则taskId可以相同。在下面bytrace.finishTrace的示例中会举例说明。
 
 **示例:**
 
@@ -44,7 +45,10 @@ finishTrace(name: string, taskId: number): void
 
 标记一个时间片跟踪事件的结束。
 
-**系统能力:** SystemCapability.Developtools.Bytrace
+> **说明:**<br>
+> finishTrace的name和taskId必须与流程开始的startTrace对应参数值一致。
+
+**系统能力:** SystemCapability.HiviewDFX.HiTrace
 
 **参数:**
 
@@ -53,8 +57,6 @@ finishTrace(name: string, taskId: number): void
 | name | string | 是 | 时间片跟踪任务名称 |
 | taskId | number | 是 | 时间片跟踪任务id |
 
-> **说明:**<br>
-> finishTrace的name和taskId必须与流程开始的startTrace对应参数值一致。
 
 **示例:**
 
@@ -90,7 +92,7 @@ traceByValue(name: string, count: number): void
 
 标记预追踪耗时任务的数值变量,该变量的数值会不断变化。
 
-**系统能力:** SystemCapability.Developtools.Bytrace
+**系统能力:** SystemCapability.HiviewDFX.HiTrace
 
 **参数:**
 | 参数名 | 类型 | 必填 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md
index 4b67f61a0c4270e6764eb411710754b43c1c9702..485b10f670342d3aa081ab927f735d305404e184 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-call.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-call.md
@@ -514,15 +514,2241 @@ promise.then(data => {
 });
 ```
 
+## call.muteRinger<sup>8+</sup>
+
+muteRinger\(callback: AsyncCallback<void\>\): void
+
+如果来电铃声响起,设备将停止铃声。否则,此方法不起作用。使用callback异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名      | 类型                      | 必填 | 说明       |
+| ----------- | ------------------------- | ---- | ---------- |
+| callback    | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.muteRinger((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.muteRinger<sup>8+</sup>
+
+muteRinger\(\): Promise<void\>
+
+如果来电铃声响起,设备将停止铃声。否则,此方法不起作用。使用Promise异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.muteRinger();
+promise.then(data => {
+    console.log(`muteRinger success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`muteRinger fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.answer<sup>7+</sup>
+
+answer\(callback: AsyncCallback<void\>\): void
+
+接听来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.ANSWER_CALL
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.answer((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.answer<sup>7+</sup>
+
+answer\(callId: number, callback: AsyncCallback<void\>\): void
+
+接听来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.ANSWER_CALL
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                            |
+| -------- | ------------------------- | ---- | ----------------------------------------------- |
+| callId   | number                    | 是   | 呼叫Id。可以通过订阅callDetailsChange事件获得。 |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                                      |
+
+**示例:**
+
+```js
+call.answer(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.answer<sup>7+</sup>
+
+answer(callId?: number\): Promise<void\>
+
+接听来电。使用Promise异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.ANSWER_CALL
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| callId | number | 否   | 呼叫Id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.answer(1);
+promise.then(data => {
+    console.log(`answer success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`answer fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.hangup<sup>7+</sup>
+
+hangup\(callback: AsyncCallback<void\>\): void
+
+挂断电话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.hangup((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.hangup<sup>7+</sup>
+
+hangup\(callId: number, callback: AsyncCallback<void\>\): void
+
+挂断电话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                            |
+| -------- | ------------------------- | ---- | ----------------------------------------------- |
+| callId   | number                    | 是   | 呼叫id。可以通过订阅callDetailsChange事件获得。 |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                                      |
+
+**示例:**
+
+```js
+call.hangup(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.hangup<sup>7+</sup>
+
+hangup\(callId?: number\): Promise<void\>
+
+挂断电话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| callId | number | 否   | 呼叫id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.hangup(1);
+promise.then(data => {
+    console.log(`hangup success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`hangup fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.reject<sup>7+</sup>
+
+reject\(callback: AsyncCallback<void\>\): void
+
+拒绝来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.reject((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.reject<sup>7+</sup>
+
+reject\(options: RejectMessageOptions, callback: AsyncCallback<void\>\): void
+
+拒绝来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                           | 必填 | 说明           |
+| -------- | ---------------------------------------------- | ---- | -------------- |
+| options  | [RejectMessageOptions](#rejectmessageoptions7) | 是   | 拒绝消息选项。 |
+| callback | AsyncCallback&lt;void&gt;                      | 是   | 回调函数。     |
+
+**示例:**
+
+```js
+let rejectMessageOptions={
+    messageContent: "拦截陌生号码"
+}
+call.reject(rejectMessageOptions, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.reject<sup>7+</sup>
+
+reject(callId: number, callback: AsyncCallback<void\>): <void\>
+
+拒绝来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                            |
+| -------- | ------------------------- | ---- | ----------------------------------------------- |
+| callId   | number                    | 是   | 呼叫Id。可以通过订阅callDetailsChange事件获得。 |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                                      |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.reject(1);
+promise.then(data => {
+    console.log(`reject success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`reject fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.reject<sup>7+</sup>
+
+reject\(callId: number, options: RejectMessageOption, callback: AsyncCallback<void\>\): void
+
+拒绝来电。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                           | 必填 | 说明                                            |
+| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
+| callId   | number                                         | 是   | 呼叫Id。可以通过订阅callDetailsChange事件获得。 |
+| options  | [RejectMessageOptions](#rejectmessageoptions7) | 是   | 拒绝消息选项。                                  |
+| callback | AsyncCallback&lt;void&gt;                      | 是   | 回调函数。                                      |
+
+**示例:**
+
+```js
+let rejectMessageOptions={
+    messageContent: "拦截陌生号码"
+}
+call.reject(1, rejectMessageOptions, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.reject<sup>7+</sup>
+
+reject(callId?: number, options?: RejectMessageOptions\): Promise<void\>
+
+拒绝来电。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名  | 类型                                           | 必填 | 说明                                                         |
+| ------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ |
+| callId  | number                                         | 否   | 呼叫Id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 |
+| options | [RejectMessageOptions](#rejectmessageoptions7) | 否   | 拒绝消息选项。                                               |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let rejectMessageOptions={
+    messageContent: "拦截陌生号码"
+}
+let promise = call.reject(1, rejectMessageOptions);
+promise.then(data => {
+    console.log(`reject success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`reject fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.holdCall<sup>7+</sup>
+
+holdCall\(callId: number, callback: AsyncCallback<void\>\): void
+
+保持通话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.holdCall(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.holdCall<sup>7+</sup>
+
+holdCall\(callId: number\): Promise<void\>
+
+保持通话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.holdCall(1);
+promise.then(data => {
+    console.log(`holdCall success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`holdCall fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.unHoldCall<sup>7+</sup>
+
+unHoldCall\(callId: number, callback: AsyncCallback<void\>\): void
+
+取消保持通话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.unHoldCall(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.unHoldCall<sup>7+</sup>
+
+unHoldCall\(callId: number\): Promise<void\>
+
+取消保持通话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.unHoldCall(1);
+promise.then(data => {
+    console.log(`unHoldCall success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`unHoldCall fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.switchCall<sup>7+</sup>
+
+switchCall\(callId: number, callback: AsyncCallback<void\>\): void
+
+切换呼叫。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.switchCall(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.switchCall<sup>7+</sup>
+
+switchCall\(callId: number\): Promise<void\>
+
+切换呼叫。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.switchCall(1);
+promise.then(data => {
+    console.log(`switchCall success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`switchCall fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.combineConference<sup>7+</sup>
+
+combineConference\(callId: number, callback: AsyncCallback<void\>\): void
+
+合并通话,将两通电话合并成会议电话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.combineConference(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.combineConference<sup>7+</sup>
+
+combineConference\(callId: number\): Promise<void\>
+
+合并通话,将两通电话合并成会议电话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.combineConference(1);
+promise.then(data => {
+    console.log(`combineConference success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`combineConference fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getMainCallId<sup>7+</sup>
+
+getMainCallId\(callId: number, callback: AsyncCallback<number\>\): void
+
+获取主呼叫Id。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                        | 必填 | 说明                     |
+| -------- | --------------------------- | ---- | ------------------------ |
+| callId   | number                      | 是   | 呼叫Id。                 |
+| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。返回主呼叫Id。 |
+
+**示例:**
+
+```js
+call.getMainCallId(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getMainCallId<sup>7+</sup>
+
+getMainCallId\(callId: number\): Promise<number\>
+
+获取主呼叫Id。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                            |
+| ------------------- | ------------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回主呼叫Id。 |
+
+**示例:**
+
+```js
+let promise = call.getMainCallId(1);
+promise.then(data => {
+    console.log(`getMainCallId success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getMainCallId fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getSubCallIdList<sup>7+</sup>
+
+getSubCallIdList\(callId: number, callback: AsyncCallback<Array<string\>\>\): void
+
+获取子呼叫Id列表。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                           | 必填 | 说明                         |
+| -------- | ------------------------------ | ---- | ---------------------------- |
+| callId   | number                         | 是   | 呼叫Id。                     |
+| callback | AsyncCallback<Array<string\>\> | 是   | 回调函数。返回子呼叫Id列表。 |
+
+**示例:**
+
+```js
+call.getSubCallIdList(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getSubCallIdList<sup>7+</sup>
+
+getSubCallIdList\(callId: number\): Promise<Array<string\>\>
+
+获取子呼叫Id列表。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                          | 说明                                |
+| ----------------------------- | ----------------------------------- |
+| Promise&lt;Array<string\>&gt; | 以Promise形式异步返回子呼叫Id列表。 |
+
+**示例:**
+
+```js
+let promise = call.getSubCallIdList(1);
+promise.then(data => {
+    console.log(`getSubCallIdList success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getSubCallIdList fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getCallIdListForConference<sup>7+</sup>
+
+getCallIdListForConference\(callId: number, callback: AsyncCallback<Array<string\>>\): void
+
+获取会议的呼叫Id列表。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                | 必填 | 说明                             |
+| -------- | ----------------------------------- | ---- | -------------------------------- |
+| callId   | number                              | 是   | 呼叫Id。                         |
+| callback | AsyncCallback&lt;Array<string\>&gt; | 是   | 回调函数。返回会议的呼叫Id列表。 |
+
+**示例:**
+
+```js
+call.getCallIdListForConference(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getCallIdListForConference<sup>7+</sup>
+
+getCallIdListForConference\(callId: number\): Promise<Array<string\>\>
+
+获取会议的呼叫Id列表。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                          | 说明                                    |
+| ----------------------------- | --------------------------------------- |
+| Promise&lt;Array<string\>&gt; | 以Promise形式异步返回会议的呼叫Id列表。 |
+
+**示例:**
+
+```js
+let promise = call.getCallIdListForConference(1);
+promise.then(data => {
+    console.log(`getCallIdListForConference success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getCallIdListForConference fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getCallWaitingStatus<sup>7+</sup>
+
+getCallWaitingStatus\(slotId: number, callback: AsyncCallback<CallWaitingStatus\>\): void
+
+获取呼叫等待状态。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                        | 必填 | 说明                                                         |
+| -------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| slotId   | number                                                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
+| callback | AsyncCallback&lt;[CallWaitingStatus](#callwaitingstatus7)\> | 是   | 回调函数。<br/>返回呼叫等待状态。<br/>- 0:禁用呼叫等待 <br/>- 1:启用呼叫等待 |
+
+**示例:**
+
+```js
+call.getCallWaitingStatus(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getCallWaitingStatus<sup>7+</sup>
+
+getCallWaitingStatus\(slotId: number\): Promise<CallWaitingStatus\>
+
+获取呼叫等待状态。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                                    | 说明                                                         |
+| ------------------------------------------------------- | ------------------------------------------------------------ |
+| Promise&lt;[CallWaitingStatus](#callwaitingstatus7)&gt; | 以Promise形式异步返回呼叫等待状态。<br/>- 0:禁用呼叫等待 <br/>- 1:启用呼叫等待 |
+
+**示例:**
+
+```js
+let promise = call.getCallWaitingStatus(0);
+promise.then(data => {
+    console.log(`getCallWaitingStatus success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getCallWaitingStatus fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.setCallWaiting<sup>7+</sup>
+
+setCallWaiting\(slotId: number, activate: boolean, callback: AsyncCallback<void\>\): void
+
+设置呼叫等待。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                 | 必填 | 说明                                                         |
+| -------- | -------------------- | ---- | ------------------------------------------------------------ |
+| slotId   | number               | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
+| activate | boolean              | 是   | 呼叫等待是否处于启用状态。<br/>- false:禁用呼叫等待<br/>- true:启用呼叫等待 |
+| callback | AsyncCallback<void\> | 是   | 回调函数。                                                   |
+
+**示例:**
+
+```js
+call.setCallWaiting(0, true, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setCallWaiting<sup>7+</sup>
+
+setCallWaiting\(slotId: number, activate: boolean\): Promise<void\>
+
+设置呼叫等待。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型    | 必填 | 说明                                                         |
+| -------- | ------- | ---- | ------------------------------------------------------------ |
+| slotId   | number  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
+| activate | boolean | 是   | 呼叫等待是否处于启用状态。<br/>- false:禁用呼叫等待<br/>- true:启用呼叫等待 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.setCallWaiting(0, true);
+promise.then(data => {
+    console.log(`setCallWaiting success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setCallWaiting fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.startDTMF<sup>7+</sup>
+
+startDTMF\(callId: number, character: string, callback: AsyncCallback<void\>\): void
+
+启动双音多频。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名    | 类型                 | 必填 | 说明       |
+| --------- | -------------------- | ---- | ---------- |
+| callId    | number               | 是   | 呼叫Id。   |
+| character | string               | 是   | DTMF码。   |
+| callback  | AsyncCallback<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.startDTMF(1, "0", (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.startDTMF<sup>7+</sup>
+
+startDTMF\(callId: number, character: string\): Promise<void\>
+
+启动双音多频。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名    | 类型   | 必填 | 说明     |
+| --------- | ------ | ---- | -------- |
+| callId    | number | 是   | 呼叫Id。 |
+| character | string | 是   | DTMF码。 |
+
+**返回值:**
+
+| 类型                | 说明                    |
+| ------------------- | ----------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回。 |
+
+**示例:**
+
+```js
+let promise = call.startDTMF(1, "0");
+promise.then(data => {
+    console.log(`startDTMF success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`startDTMF fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.stopDTMF<sup>7+</sup>
+
+stopDTMF\(callId: number, callback: AsyncCallback<void\>\): void
+
+停止双音多频。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.stopDTMF(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.stopDTMF<sup>7+</sup>
+
+stopDTMF\(callId: number\): Promise<void\>
+
+停止双音多频。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.stopDTMF(1);
+promise.then(data => {
+    console.log(`stopDTMF success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`stopDTMF fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.isInEmergencyCall<sup>7+</sup>
+
+isInEmergencyCall\(callback: AsyncCallback<boolean\>\): void
+
+判断是否正在处于紧急呼叫。使用callback异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明       |
+| -------- | ---------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.isInEmergencyCall((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.isInEmergencyCall<sup>7+</sup>
+
+isInEmergencyCall\(\): Promise<boolean\>
+
+判断是否正在处于紧急呼叫。使用Promise异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                   | 说明                        |
+| ---------------------- | --------------------------- |
+| Promise&lt;boolean&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.isInEmergencyCall();
+promise.then(data => {
+    console.log(`isInEmergencyCall success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`isInEmergencyCall fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.on('callDetailsChange')<sup>7+</sup>
+
+on\(type: 'callDetailsChange', callback: Callback<CallAttributeOptions\>\): void
+
+订阅callDetailsChange事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                    | 必填 | 说明                       |
+| -------- | ------------------------------------------------------- | ---- | -------------------------- |
+| type     | string                                                  | 是   | 通话时监听通话详情的变化。 |
+| callback | Callback<[CallAttributeOptions](#callattributeoptions7)> | 是   | 回调函数。                 |
+
+**示例:**
+
+```js
+call.on('callDetailsChange', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.on('callEventChange')<sup>8+</sup>
+
+on\(type: 'callEventChange', callback: Callback<CallEventOptions\>\): void
+
+订阅callEventChange事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                             | 必填 | 说明                       |
+| -------- | ------------------------------------------------ | ---- | -------------------------- |
+| type     | string                                           | 是   | 通话时监听通话事件的变化。 |
+| callback | Callback<[CallEventOptions](#calleventoptions8)> | 是   | 回调函数。                 |
+
+**示例:**
+
+```js
+call.on('callEventChange', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.on('callDisconnectedCause')<sup>8+</sup>
+
+on\(type: 'callDisconnectedCause', callback: Callback<DisconnectedDetails\>): void
+
+订阅callDisconnectedCause事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                   | 必填 | 说明                       |
+| -------- | ------------------------------------------------------ | ---- | -------------------------- |
+| type     | string                                                 | 是   | 通话时监听断开连接的原因。 |
+| callback | Callback<[DisconnectedDetails](#disconnecteddetails8)> | 是   | 回调函数。                 |
+
+**示例:**
+
+```js
+call.on('callDisconnectedCause', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.on('mmiCodeResult')<sup>9+</sup>
+
+on\(type: 'mmiCodeResult', callback: Callback<MmiCodeResults\>\): void
+
+订阅mmiCodeResult事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                         | 必填 | 说明                  |
+| -------- | -------------------------------------------- | ---- | --------------------- |
+| type     | string                                       | 是   | 通话时监听MMI码结果。 |
+| callback | Callback<[MmiCodeResults](#mmicoderesults9)> | 是   | 回调函数。            |
+
+**示例:**
+
+```js
+isNewCallAllowedcall.on('mmiCodeResult', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.off('callDetailsChange')<sup>7+</sup>
+
+off\(type: 'callDetailsChange', callback?: Callback<CallAttributeOptions\>\): void
+
+取消订阅callDetailsChange事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                     | 必填 | 说明                               |
+| -------- | -------------------------------------------------------- | ---- | ---------------------------------- |
+| type     | string                                                   | 是   | 通话结束时取消监听通话详情的变化。 |
+| callback | Callback<[CallAttributeOptions](#callattributeoptions7)> | 否   | 回调函数。                         |
+
+**示例:**
+
+```js
+call.off('callDetailsChange', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.off('callEventChange')<sup>8+</sup>
+
+off\(type: 'callEventChange', callback?: Callback<CallEventOptions\>\): void
+
+取消订阅callEventChange事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                             | 必填 | 说明                               |
+| -------- | ------------------------------------------------ | ---- | ---------------------------------- |
+| type     | string                                           | 是   | 通话结束时取消监听通话事件的变化。 |
+| callback | Callback<[CallEventOptions](#calleventoptions8)> | 否   | 回调函数。                         |
+
+**示例:**
+
+```js
+call.off('callEventChange', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.off('callDisconnectedCause')<sup>8+</sup>
+
+off\(type: 'callDisconnectedCause', callback?: Callback<DisconnectedDetails\>\): void
+
+取消订阅callDisconnectedCause事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                       | 必填 | 说明                 |
+| -------- | ---------------------------------------------------------- | ---- | -------------------- |
+| type     | 'callDisconnectedCause'                                    | 是   | 调用断开连接的原因。 |
+| callback | Callback**<**[DisconnectedDetails](#disconnecteddetails8)> | 否   | 回调函数。           |
+
+**示例:**
+
+```js
+call.off('callDisconnectedCause', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.off('mmiCodeResult')<sup>9+</sup>
+
+off\(type: 'mmiCodeResult', callback?: Callback<MmiCodeResults\>\): void
+
+取消订阅mmiCodeResult事件。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                             | 必填 | 说明        |
+| -------- | ------------------------------------------------ | ---- | ----------- |
+| type     | 'mmiCodeResult'                                  | 是   | MMI码结果。 |
+| callback | Callback<[MmiCodeResults](#mmicoderesults9)> | 否   | 回调函数。  |
+
+**示例:**
+
+```js
+call.off('mmiCodeResult', (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.isNewCallAllowed<sup>8+</sup>
+
+isNewCallAllowed\(callback: AsyncCallback<boolean\>\): void
+
+判断是否允许再拨打一通新电话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明       |
+| -------- | ---------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.isNewCallAllowed((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.isNewCallAllowed<sup>8+</sup>
+
+isNewCallAllowed\(\): Promise<boolean\>
+
+判断是否允许再拨打一通新电话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                   | 说明                        |
+| ---------------------- | --------------------------- |
+| Promise&lt;boolean&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.isNewCallAllowed();
+promise.then(data => {
+    console.log(`isNewCallAllowed success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`isNewCallAllowed fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.separateConference<sup>8+</sup>
+
+separateConference\(callId: number, callback: AsyncCallback<void\>\): void
+
+分离会议电话。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callId   | number                    | 是   | 呼叫Id。   |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.separateConference(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.separateConference<sup>8+</sup>
+
+separateConference\(callId: number\): Promise<void\>
+
+分离会议电话。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| callId | number | 是   | 呼叫Id。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.separateConference(1);
+promise.then(data => {
+    console.log(`separateConference success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`separateConference fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getCallRestrictionStatus<sup>8+</sup>
+
+getCallRestrictionStatus\(slotId: number, type: CallRestrictionType, callback: AsyncCallback<RestrictionStatus\>\): void
+
+获取呼叫限制状态。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                   |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| type     | [CallRestrictionType](#callrestrictiontype8)                 | 是   | 呼叫限制类型。                        |
+| callback | AsyncCallback&lt;[RestrictionStatus](#restrictionstatus8)&gt; | 是   | 回调函数。返回限制状态。               |
+
+**示例:**
+
+```js
+call.getCallRestrictionStatus(0, 1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getCallRestrictionStatus<sup>8+</sup>
+
+getCallRestrictionStatus\(slotId: number, type: CallRestrictionType\): Promise<RestrictionStatus\>
+
+获取呼叫限制状态。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型                                         | 必填 | 说明                                   |
+| ------ | -------------------------------------------- | ---- | -------------------------------------- |
+| slotId | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| type   | [CallRestrictionType](#callrestrictiontype8) | 是   | 呼叫限制类型。                        |
+
+**返回值:**
+
+| 类型                                                    | 说明                        |
+| ------------------------------------------------------- | --------------------------- |
+| Promise&lt;[RestrictionStatus](#restrictionstatus8)&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.getCallRestrictionStatus(0, 1);
+promise.then(data => {
+    console.log(`getCallRestrictionStatus success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getCallRestrictionStatus fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.setCallRestriction<sup>8+</sup>
+
+setCallRestriction\(slotId: number, info: CallRestrictionInfo, callback: AsyncCallback<void\>\): void
+
+设置呼叫限制状态。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                        | 必填 | 说明                                   |
+| -------- | ------------------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| info     | [CallRestrictionInfo](#callrestrictioninfo8) | 是   | 呼叫限制信息。                         |
+| callback | AsyncCallback&lt;void&gt;                   | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+let callRestrictionInfo={
+    type: 1,
+    password: "123456",
+    mode: 1
+}
+call.setCallRestriction(0, callRestrictionInfo, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setCallRestriction<sup>8+</sup>
+
+setCallRestriction\(slotId: number, info: CallRestrictionInfo\): Promise<void\>
+
+设置呼叫限制状态。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型                                         | 必填 | 说明                                   |
+| ------ | -------------------------------------------- | ---- | -------------------------------------- |
+| slotId | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| info   | [CallRestrictionInfo](#callrestrictioninfo8) | 是   | 呼叫限制信息。                         |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let callRestrictionInfo={
+    type: 1,
+    password: "123456",
+    mode: 1
+}
+let promise = call.setCallRestriction(0, callRestrictionInfo);
+promise.then(data => {
+    console.log(`setCallRestriction success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setCallRestriction fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.getCallTransferInfo<sup>8+</sup>
+
+getCallTransferInfo\(slotId: number, type: CallTransferType, callback: AsyncCallback<CallTransferResult\>\): void
+
+获取呼叫转移信息。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                   |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| type     | [CallTransferType](#calltransfertype8)                       | 是   | 呼叫转移类型。                         |
+| callback | AsyncCallback&lt;[CallTransferResult](#calltransferresult8)&gt; | 是   | 回调函数。返回呼叫转移信息。           |
+
+**示例:**
+
+```js
+let callTransferTyp={
+    CallTransferType: 1
+}
+call.getCallTransferInfo(0, callTransferTyp, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.getCallTransferInfo<sup>8+</sup>
+
+getCallTransferInfo\(slotId: number, type: CallTransferType): Promise<CallTransferResult\>
+
+获取呼叫转移信息。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型                                   | 必填 | 说明                                   |
+| ------ | -------------------------------------- | ---- | -------------------------------------- |
+| slotId | number                                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| type   | [CallTransferType](#calltransfertype8) | 是   | 呼叫转移类型。                         |
+
+**返回值:**
+
+| 类型                                                      | 说明                        |
+| --------------------------------------------------------- | --------------------------- |
+| Promise&lt;[CallTransferResult](#calltransferresult8)&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let callTransferTyp={
+    CallTransferType: 1
+}
+let promise = call.getCallTransferInfo(0, callTransferTyp);
+promise.then(data => {
+    console.log(`getCallTransferInfo success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getCallTransferInfo fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.setCallTransfer<sup>8+</sup>
+
+setCallTransfer\(slotId: number, info: CallTransferInfo, callback: AsyncCallback<void\>\): void
+
+设置呼叫转移信息。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                  | 必填 | 说明                                   |
+| -------- | ------------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                                | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| info     | [CallTransferInfo](#calltransferinfo8) | 是   | 呼叫转移信息。                        |
+| callback | AsyncCallback&lt;void&gt;             | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+let callTransferInfo={
+    transferNum: "111",
+    type: 1,
+    settingType: 1
+}
+call.setCallTransfer(0, callTransferInfo, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setCallTransfer<sup>8+</sup>
+
+setCallTransfer\(slotId: number, info: CallTransferInfo): Promise<void\>
+
+设置呼叫转移信息。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型                                  | 必填 | 说明                                   |
+| ------ | ------------------------------------- | ---- | -------------------------------------- |
+| slotId | number                                | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| info   | [CallTransferInfo](#calltransferinfo8) | 是   | 呼叫转移信息。                        |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let callTransferInfo={
+    transferNum: "111",
+    type: 1,
+    settingType: 1
+}
+let promise = call.setCallTransfer(0, callTransferInfo);
+promise.then(data => {
+    console.log(`setCallTransfer success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setCallTransfer fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.isRinging<sup>8+</sup>
+
+isRinging\(callback: AsyncCallback<boolean\>\): void
+
+判断是否正在响铃。使用callback异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明       |
+| -------- | ---------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.isRinging((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.isRinging<sup>8+</sup>
+
+isRinging\(\): Promise<boolean\>
+
+判断是否正在响铃。使用Promise异步回调。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                   | 说明                        |
+| ---------------------- | --------------------------- |
+| Promise&lt;boolean&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.isRinging();
+promise.then(data => {
+    console.log(`isRinging success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`isRinging fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.setMuted<sup>8+</sup>
+
+setMuted\(callback: AsyncCallback<void\>\): void
+
+设置通话中的静音。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.setMuted((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setMuted<sup>8+</sup>
+
+setMuted\(\): Promise<void\>
+
+设置通话中的静音。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.setMuted();
+promise.then(data => {
+    console.log(`setMuted success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setMuted fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.cancelMuted<sup>8+</sup>
+
+cancelMuted(callback: AsyncCallback<void\>): void
+
+取消通话中的静音。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明       |
+| -------- | ------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.cancelMuted((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.cancelMuted<sup>8+</sup>
+
+cancelMuted(): Promise<void\>
+
+取消通话中的静音。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.cancelMuted();
+promise.then(data => {
+    console.log(`cancelMuted success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`cancelMuted fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.setAudioDevice<sup>8+</sup>
+
+setAudioDevice\(device: AudioDevice, callback: AsyncCallback<void\>\): void
+
+设置通话音频设备。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明       |
+| -------- | ---------------------------- | ---- | ---------- |
+| device   | [AudioDevice](#audiodevice8) | 是   | 音频设备。 |
+| callback | AsyncCallback&lt;void&gt;    | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+call.setAudioDevice(1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setAudioDevice<sup>8+</sup>
+
+setAudioDevice\(device: AudioDevice, options: AudioDeviceOptions, callback: AsyncCallback<void\>\): void
+
+设置通话音频设备。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                                       | 必填 | 说明           |
+| -------- | ------------------------------------------ | ---- | -------------- |
+| device   | [AudioDevice](#audiodevice8)               | 是   | 音频设备。     |
+| options  | [AudioDeviceOptions](#audiodeviceoptions9) | 是   | 音频设备参数。 |
+| callback | AsyncCallback&lt;void&gt;                  | 是   | 回调函数。     |
+
+**示例:**
+
+```js
+let audioDeviceOptions={
+    bluetoothAddress: "IEEE 802-2014"
+}
+call.setAudioDevice(1, bluetoothAddress, (err, value) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## call.setAudioDevice<sup>8+</sup>
+
+setAudioDevice(device: AudioDevice, options?: AudioDeviceOptions): Promise<void\>
+
+设置通话音频设备。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名  | 类型                                       | 必填 | 说明               |
+| ------- | ------------------------------------------ | ---- | ------------------ |
+| device  | [AudioDevice](#audiodevice8)               | 是   | 音频设备。         |
+| options | [AudioDeviceOptions](#audiodeviceoptions9) | 否   | 音频设备参数参数。 |
+
+**返回值:**
+
+| 类型                | 说明                            |
+| ------------------- | ------------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回设置结果。 |
+
+**示例:**
+
+```js
+let audioDeviceOptions={
+    bluetoothAddress: "IEEE 802-2014"
+}
+let promise = call.setAudioDevice(1, audioDeviceOptions);
+promise.then(data => {
+    console.log(`setAudioDevice success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setAudioDevice fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.joinConference<sup>8+</sup>
+
+joinConference(mainCallId: number, callNumberList: Array<string\>, callback: AsyncCallback<void\>): void
+
+加入会议。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名         | 类型                      | 必填 | 说明            |
+| -------------- | ------------------------- | ---- | --------------- |
+| mainCallId     | number                    | 是   | 主通话Id。      |
+| callNumberList | Array<string\>            | 是   | 呼叫号码列表。 |
+| callback       | AsyncCallback&lt;void&gt; | 是   | 回调函数。      |
+
+**示例:**
+
+```js
+call.joinConference(1, "138XXXXXXXX", (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.joinConference<sup>8+</sup>
+
+joinConference(mainCallId: number, callNumberList: Array<string\>): Promise<void\>
+
+加入会议。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名         | 类型           | 必填 | 说明            |
+| -------------- | -------------- | ---- | --------------- |
+| mainCallId     | number         | 是   | 主通话Id。      |
+| callNumberList | Array<string\> | 是   | 呼叫号码列表。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.joinConference(1, "138XXXXXXXX");
+promise.then(data => {
+    console.log(`joinConference success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`joinConference fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.updateImsCallMode<sup>8+</sup>
+
+updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback<void\>): void
+
+更新Ims呼叫模式。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明           |
+| -------- | ---------------------------- | ---- | -------------- |
+| callId   | number                       | 是   | 呼叫Id。       |
+| mode     | [ImsCallMode](#imscallmode8) | 是   | Ims呼叫模式。 |
+| callback | AsyncCallback&lt;void&gt;    | 是   | 回调函数。     |
+
+**示例:**
+
+```js
+call.updateImsCallMode(1, 1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.updateImsCallMode<sup>8+</sup>
+
+updateImsCallMode(callId: number, mode: ImsCallMode): Promise<void\>
+
+更新Ims呼叫模式。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型                         | 必填 | 说明           |
+| ------ | ---------------------------- | ---- | -------------- |
+| callId | number                       | 是   | 呼叫Id。       |
+| mode   | [ImsCallMode](#imscallmode8) | 是   | Ims呼叫模式。 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.updateImsCallMode(1, 1);
+promise.then(data => {
+    console.log(`updateImsCallMode success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`updateImsCallMode fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.enableImsSwitch<sup>8+</sup>
+
+enableImsSwitch(slotId: number, callback: AsyncCallback<void\>): void
+
+启用Ims开关。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                   |
+| -------- | ------------------------- | ---- | -------------------------------------- |
+| slotId   | number                    | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+call.enableImsSwitch(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.enableImsSwitch<sup>8+</sup>
+
+enableImsSwitch(slotId: number): Promise<void\>
+
+启用Ims开关。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.enableImsSwitch(0);
+promise.then(data => {
+    console.log(`enableImsSwitch success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`enableImsSwitch fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.disableImsSwitch<sup>8+</sup>
+
+disableImsSwitch(slotId: number, callback: AsyncCallback<void\>): void
+
+禁用Ims开关。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                   |
+| -------- | ------------------------- | ---- | -------------------------------------- |
+| slotId   | number                    | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+call.disableImsSwitch(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.disableImsSwitch<sup>8+</sup>
+
+disableImsSwitch(slotId: number): Promise<void\>
+
+禁用Ims开关。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.disableImsSwitch(0);
+promise.then(data => {
+    console.log(`disableImsSwitch success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`disableImsSwitch fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## call.isImsSwitchEnabled<sup>8+</sup>
+
+isImsSwitchEnabled(slotId: number, callback: AsyncCallback<boolean\>): void
+
+判断Ims开关是否启用。使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明                                   |
+| -------- | ---------------------------- | ---- | -------------------------------------- |
+| slotId   | number                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+call.isImsSwitchEnabled(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## call.isImsSwitchEnabled<sup>8+</sup>
+
+isImsSwitchEnabled(slotId: number): Promise<boolean\>
+
+判断Ims开关是否启用。使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                | 说明                        |
+| ------------------- | --------------------------- |
+| Promise&lt;void&gt; | 以Promise形式异步返回结果。 |
+
+**示例:**
+
+```js
+let promise = call.isImsSwitchEnabled(0);
+promise.then(data => {
+    console.log(`isImsSwitchEnabled success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`isImsSwitchEnabled fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
 ## DialOptions
 
 拨打电话的可选参数。
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
 
-| 参数名 | 类型    | 必填 | 说明                                                         |
-| ------ | ------- | ---- | ------------------------------------------------------------ |
-| extras | boolean | 否   | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 |
+| 参数名     | 类型                               | 必填 | 说明                                                         |
+| ---------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| extras     | boolean                            | 否   | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 |
+| accountId  | number                             | 否   | 帐户Id。从API version 8开始支持。此接口为系统接口。          |
+| videoState | [VideoStateType](#videostatetype7) | 否   | 视频状态类型。从API version 8开始支持。此接口为系统接口。    |
+| dialScene  | [DialScene](#dialscene8)           | 否   | 拨号场景。从API version 8开始支持。此接口为系统接口。        |
+| dialType   | [DialType](#dialtype8)             | 否   | 拨号类型。从API version 8开始支持。此接口为系统接口。        |
 
 ## CallState
 
@@ -555,4 +2781,396 @@ promise.then(data => {
 
 | 参数名      | 类型   | 必填 | 说明                                                       |
 | ----------- | ------ | ---- | ---------------------------------------------------------- |
-| countryCode | string | 否   | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 |
\ No newline at end of file
+| countryCode | string | 否   | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 |
+
+## ImsCallMode<sup>8+</sup>
+
+IP多媒体系统调用模式。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                   | 值   | 说明               |
+| ---------------------- | ---- | ------------------ |
+| CALL_MODE_AUDIO_ONLY   | 0    | 仅限音频呼叫       |
+| CALL_MODE_SEND_ONLY    | 1    | 仅发送呼叫         |
+| CALL_MODE_RECEIVE_ONLY | 2    | 仅接收呼叫         |
+| CALL_MODE_SEND_RECEIVE | 3    | 允许发送和接收呼叫 |
+| CALL_MODE_VIDEO_PAUSED | 4    | 暂停视频呼叫       |
+
+## AudioDevice<sup>8+</sup>
+
+音频设备。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                 | 值   | 说明         |
+| -------------------- | ---- | ------------ |
+| DEVICE_EARPIECE      | 0    | 耳机设备     |
+| DEVICE_SPEAKER       | 1    | 扬声器设备 |
+| DEVICE_WIRED_HEADSET | 2    | 有线耳机设备 |
+| DEVICE_BLUETOOTH_SCO | 3    | 蓝牙SCO设备  |
+
+## CallRestrictionType<sup>8+</sup>
+
+呼叫限制类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                                          | 值   | 说明                       |
+| --------------------------------------------- | ---- | -------------------------- |
+| RESTRICTION_TYPE_ALL_INCOMING                 | 0    | 限制所有呼入               |
+| RESTRICTION_TYPE_ALL_OUTGOING                 | 1    | 限制所有呼出               |
+| RESTRICTION_TYPE_INTERNATIONAL                | 2    | 限制国际通话               |
+| RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME | 3    | 限制除归属国以外的国际通话 |
+| RESTRICTION_TYPE_ROAMING_INCOMING             | 4    | 限制漫游呼入               |
+| RESTRICTION_TYPE_ALL_CALLS                    | 5    | 限制所有通话               |
+| RESTRICTION_TYPE_OUTGOING_SERVICES            | 6    | 限制传出业务               |
+| RESTRICTION_TYPE_INCOMING_SERVICES            | 7    | 限制呼入业务               |
+
+## CallTransferInfo<sup>8+</sup>
+
+呼叫转移信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名      | 类型                                                 | 必填 | 说明             |
+| ----------- | ---------------------------------------------------- | ---- | ---------------- |
+| transferNum | string                                               | 是   | 转移编号         |
+| type        | [CallTransferType](#calltransfertype8)               | 是   | 呼叫转移类型     |
+| settingType | [CallTransferSettingType](#calltransfersettingtype8) | 是   | 设置呼叫转移类型 |
+
+## CallTransferType<sup>8+</sup>
+
+呼叫转移类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                        | 值   | 说明         |
+| --------------------------- | ---- | ------------ |
+| TRANSFER_TYPE_UNCONDITIONAL | 0    | 无条件转移   |
+| TRANSFER_TYPE_BUSY          | 1    | 忙线转移     |
+| TRANSFER_TYPE_NO_REPLY      | 2    | 无回复转移   |
+| TRANSFER_TYPE_NOT_REACHABLE | 3    | 无法访问转移 |
+
+## CallTransferSettingType<sup>8+</sup>
+
+设置呼叫转移类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                       | 值   | 说明         |
+| -------------------------- | ---- | ------------ |
+| CALL_TRANSFER_DISABLE      | 0    | 禁用呼叫转移 |
+| CALL_TRANSFER_ENABLE       | 1    | 启用呼叫转移 |
+| CALL_TRANSFER_REGISTRATION | 3    | 登记呼叫转移 |
+| CALL_TRANSFER_ERASURE      | 4    | 消除呼叫转移 |
+
+## CallAttributeOptions<sup>7+</sup>
+
+调用属性选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名          | 类型                                     | 必填 | 说明           |
+| --------------- | ---------------------------------------- | ---- | -------------- |
+| accountNumber   | string                                   | 是   | 帐号号码       |
+| speakerphoneOn  | boolean                                  | 是   | 扬声器接通电话 |
+| accountId       | number                                   | 是   | 帐户Id         |
+| videoState      | [VideoStateType](#videostatetype7)       | 是   | 视频状态类型   |
+| startTime       | number                                   | 是   | 开始时间       |
+| isEcc           | boolean                                  | 是   | 是否是Ecc      |
+| callType        | [CallType](#calltype7)                   | 是   | 通话类型       |
+| callId          | number                                   | 是   | 呼叫Id         |
+| callState       | [DetailedCallState](#detailedcallstate7) | 是   | 详细呼叫状态   |
+| conferenceState | [ConferenceState](#conferencestate7)     | 是   | 会议状态       |
+
+## ConferenceState<sup>7+</sup>
+
+会议状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                         | 值   | 说明           |
+| ---------------------------- | ---- | -------------- |
+| TEL_CONFERENCE_IDLE          | 0    | 电话会议空闲   |
+| TEL_CONFERENCE_ACTIVE        | 1    | 电话会议激活   |
+| TEL_CONFERENCE_DISCONNECTING | 2    | 电话会议断开   |
+| TEL_CONFERENCE_DISCONNECTED  | 3    | 电话会议已断开 |
+
+## CallType<sup>7+</sup>
+
+通话类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称          | 值   | 说明         |
+| ------------- | ---- | ------------ |
+| TYPE_CS       | 0    | CS通话       |
+| TYPE_IMS      | 1    | IMS通话      |
+| TYPE_OTT      | 2    | OTT通话      |
+| TYPE_ERR_CALL | 3    | 其他类型通话 |
+
+## VideoStateType<sup>7+</sup>
+
+视频状态类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称       | 值   | 说明     |
+| ---------- | ---- | -------- |
+| TYPE_VOICE | 0    | 语音状态 |
+| TYPE_VIDEO | 1    | 视频状态 |
+
+## DetailedCallState<sup>7+</sup>
+
+详细的呼叫状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                      | 值   | 说明           |
+| ------------------------- | ---- | -------------- |
+| CALL_STATUS_ACTIVE        | 0    | 激活呼叫状态   |
+| CALL_STATUS_HOLDING       | 1    | 保持呼叫状态   |
+| CALL_STATUS_DIALING       | 2    | 呼叫状态拨号   |
+| CALL_STATUS_ALERTING      | 3    | 电话报警状态   |
+| CALL_STATUS_INCOMING      | 4    | 呼叫传入状态   |
+| CALL_STATUS_WAITING       | 5    | 呼叫等待状态   |
+| CALL_STATUS_DISCONNECTED  | 6    | 呼叫状态已断开 |
+| CALL_STATUS_DISCONNECTING | 7    | 呼叫状态断开   |
+| CALL_STATUS_IDLE          | 8    | 呼叫状态空闲   |
+
+## CallRestrictionInfo<sup>8+</sup>
+
+呼叫限制信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名   | 类型                                         | 必填 | 说明         |
+| -------- | -------------------------------------------- | ---- | ------------ |
+| type     | [CallRestrictionType](#callrestrictiontype8) | 是   | 呼叫限制类型 |
+| password | string                                       | 是   | 密码         |
+| mode     | [CallRestrictionMode](#callrestrictionmode8) | 是   | 呼叫限制模式 |
+
+## CallRestrictionMode<sup>8+</sup>
+
+呼叫限制模式。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                          | 值   | 说明         |
+| ----------------------------- | ---- | ------------ |
+| RESTRICTION_MODE_DEACTIVATION | 0    | 限制模式停用 |
+| RESTRICTION_MODE_ACTIVATION   | 1    | 限制模式激活 |
+
+## CallEventOptions<sup>8+</sup>
+
+呼叫事件的可选参数。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名  | 类型                                       | 必填 | 说明           |
+| ------- | ------------------------------------------ | ---- | -------------- |
+| eventId | [CallAbilityEventId](#callabilityeventid8) | 是   | 呼叫能力事件Id |
+
+## CallAbilityEventId<sup>8+</sup>
+
+呼叫能力事件Id。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                     | 值   | 说明            |
+| ------------------------ | ---- | --------------- |
+| EVENT_DIAL_NO_CARRIER    | 1    | 拨号无载波事件  |
+| EVENT_INVALID_FDN_NUMBER | 2    | 无效的FDN号事件 |
+
+## DialScene<sup>8+</sup>
+
+拨号场景。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称            | 值   | 说明         |
+| --------------- | ---- | ------------ |
+| CALL_NORMAL     | 0    | 呼叫正常     |
+| CALL_PRIVILEGED | 1    | 呼叫特权     |
+| CALL_EMERGENCY  | 2    | 拨打紧急电话 |
+
+## DialType<sup>8+</sup>
+
+拨号类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                 | 值   | 说明             |
+| -------------------- | ---- | ---------------- |
+| DIAL_CARRIER_TYPE    | 0    | 载波拨号类型     |
+| DIAL_VOICE_MAIL_TYPE | 1    | 语音邮件拨号类型 |
+| DIAL_OTT_TYPE        | 2    | OTT拨号类型      |
+
+## RejectMessageOptions<sup>7+</sup>
+
+拒绝消息可选参数。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名         | 类型   | 必填 | 说明     |
+| -------------- | ------ | ---- | -------- |
+| messageContent | string | 是   | 消息内容 |
+
+## CallTransferResult<sup>8+</sup>
+
+呼叫转移结果。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 参数名 | 类型                               | 必填 | 说明     |
+| ------ | ---------------------------------- | ---- | -------- |
+| status | [TransferStatus](#transferstatus8) | 是   | 转移状态 |
+| number | string                             | 是   | 号码     |
+
+## CallWaitingStatus<sup>7+</sup>
+
+呼叫等待状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                 | 值   | 说明         |
+| -------------------- | ---- | ------------ |
+| CALL_WAITING_DISABLE | 0    | 禁用呼叫等待 |
+| CALL_WAITING_ENABLE  | 1    | 启用呼叫等待 |
+
+## RestrictionStatus<sup>8+</sup>
+
+限制状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                | 值   | 说明     |
+| ------------------- | ---- | -------- |
+| RESTRICTION_DISABLE | 0    | 禁用限制 |
+| RESTRICTION_ENABLE  | 1    | 启用限制 |
+
+## TransferStatus<sup>8+</sup>
+
+转移状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称             | 值   | 说明     |
+| ---------------- | ---- | -------- |
+| TRANSFER_DISABLE | 0    | 禁用转移 |
+| TRANSFER_ENABLE  | 1    | 启用转移 |
+
+## DisconnectedDetails<sup>8+</sup>
+
+断开连接的详细信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称                        | 值   | 说明                   |
+| --------------------------- | ---- | ---------------------- |
+| UNASSIGNED_NUMBER           | 1    | 未分配的号码(空号)     |
+| NO_ROUTE_TO_DESTINATION     | 3    | 无至目的地的路由       |
+| CHANNEL_UNACCEPTABLE        | 6    | 不可接受的通路         |
+| OPERATOR_DETERMINED_BARRING | 8    | 运营商闭锁             |
+| NORMAL_CALL_CLEARING        | 16   | 清除正常呼叫           |
+| USER_BUSY                   | 17   | 用户忙                 |
+| NO_USER_RESPONDING          | 18   | 无用户响应             |
+| USER_ALERTING_NO_ANSWER     | 19   | 已有用户提醒,但无应答 |
+| CALL_REJECTED               | 21   | 呼叫拒绝               |
+| NUMBER_CHANGED              | 22   | 号码改变               |
+| DESTINATION_OUT_OF_ORDER    | 27   | 终点故障               |
+| INVALID_NUMBER_FORMAT       | 28   | 无效号码格式           |
+| NETWORK_OUT_OF_ORDER        | 38   | 网络故障               |
+| TEMPORARY_FAILURE           | 41   | 临时故障               |
+| INVALID_PARAMETER           | 1025 | 无效参数               |
+| SIM_NOT_EXIT                | 1026 | SIM卡未退出            |
+| SIM_PIN_NEED                | 1027 | 需要SIM卡PIN码         |
+| CALL_NOT_ALLOW              | 1029 | 不允许呼叫             |
+| SIM_INVALID                 | 1045 | SIM卡无效              |
+| UNKNOWN                     | 1279 | 未知原因               |
+
+## MmiCodeResults<sup>9+</sup>
+
+MMI码结果。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称    | 类型                             | 必填 | 说明            |
+| ------- | -------------------------------- | ---- | --------------- |
+| result  | [MmiCodeResult](#mmicoderesult9) | 是   | MMI码结果 |
+| message | string                           | 是   | MMI码消息 |
+
+## MmiCodeResult<sup>9+</sup>
+
+MMI码结果。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称             | 值   | 说明          |
+| ---------------- | ---- | ------------- |
+| MMI_CODE_SUCCESS | 0    | 表示MMI码成功 |
+| MMI_CODE_FAILED  | 1    | 表示MMI码失败 |
+
+## AudioDeviceOptions<sup>9+</sup>
+
+音频设备选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
+
+| 名称             | 类型   | 必填 | 说明     |
+| ---------------- | ------ | ---- | -------- |
+| bluetoothAddress | string | 否   | 蓝牙地址 |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md
index e3124823564897b99dcfe5ff043c215f26b74338..610a016686600e2073147458dda2598c5e556fa6 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-camera.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md
@@ -20,9 +20,9 @@ getCameraManager(context: Context, callback: AsyncCallback<CameraManager\>): voi
 
 **参数:**
 
-| 名称     | 类型                                            | 必填 | 说明                               |
-| -------- | ----------------------------------------------- | ---- | ---------------------------------- |
-| context  | Context                                         | 是   | 应用上下文。                       |
+| 名称     | 类型                                            | 必填 | 说明                           |
+| -------- | ----------------------------------------------- | ---- | ---------------------------- |
+| context  | Context                                         | 是   | 应用上下文。                   |
 | callback | AsyncCallback<[CameraManager](#cameramanager)\> | 是   | 回调函数,用于获取相机管理器实例。 |
 
 **示例:**
@@ -53,8 +53,8 @@ getCameraManager(context: Context): Promise<CameraManager\>
 
 **返回值:**
 
-| 类型                                      | 说明                                      |
-| ----------------------------------------- | ----------------------------------------- |
+| 类型                                      | 说明                                  |
+| ----------------------------------------- | ----------------------------------- |
 | Promise<[CameraManager](#cameramanager)\> | 使用Promise的方式获取一个相机管理器实例。 |
 
 **示例:**
@@ -73,84 +73,78 @@ camera.getCameraManager(context).then((cameraManager) => {
 
 | 名称                      | 值   | 说明         |
 | ------------------------- | ---- | ------------ |
-| CAMERA_STATUS_APPEAR      | 0    | 相机存在。   |
-| CAMERA_STATUS_DISAPPEAR   | 1    | 相机不存在。 |
-| CAMERA_STATUS_AVAILABLE   | 2    | 相机就绪。   |
-| CAMERA_STATUS_UNAVAILABLE | 3    | 相机未就绪。 |
+| CAMERA_STATUS_APPEAR      | 0    | 新的相机出现。   |
+| CAMERA_STATUS_DISAPPEAR   | 1    | 相机被移除。 |
+| CAMERA_STATUS_AVAILABLE   | 2    | 相机可用。   |
+| CAMERA_STATUS_UNAVAILABLE | 3    | 相机不可用。 |
 
+## Profile
 
-## CameraPosition
-
-枚举,相机方向。
+相机配置信息项。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称                        | 值   | 说明             |
-| --------------------------- | ---- | ---------------- |
-| CAMERA_POSITION_UNSPECIFIED | 0    | 未指定方向相机。 |
-| CAMERA_POSITION_BACK        | 1    | 后置相机。       |
-| CAMERA_POSITION_FRONT       | 2    | 前置相机。       |
+| 名称      | 类型                           | 只读 | 说明         |
+| -------- | ----------------------------- |---- | ------------- |
+| format   | [CameraFormat](#cameraformat) | 是  | 输出格式。      |
+| size     | [Size](#size)                 | 是  | 分辨率。       |
 
-## CameraType
+## FrameRateRange
 
-枚举,相机类型。
+ 帧率范围。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称                    | 值   | 说明             |
-| ----------------------- | ---- | ---------------- |
-| CAMERA_TYPE_UNSPECIFIED | 0    | 未指定相机类型。 |
-| CAMERA_TYPE_WIDE_ANGLE  | 1    | 广角相机。       |
-| CAMERA_TYPE_ULTRA_WIDE  | 2    | 超级广角相机。   |
-| CAMERA_TYPE_TELEPHOTO   | 3    | 长焦相机。       |
-| CAMERA_TYPE_TRUE_DEPTH  | 4    | 深度相机。       |
-
+| 名称                       | 类型    | 只读 | 说明                 |
+| ------------------------- | ------ | ---- | ------------------- |
+| min                       | number | 是   | 最小速率,单位fps      |
+| max                       | number | 是   | 最大速率,单位fps      |
 
-## ConnectionType
+## VideoProfile
 
-枚举,相机连接类型。
+视频配置信息项。 
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称                         | 值   | 说明          |
-| ---------------------------- | ---- | ------------- |
-| CAMERA_CONNECTION_BUILT_IN   | 0    | 内置相机。    |
-| CAMERA_CONNECTION_USB_PLUGIN | 1    | 外置USB相机。 |
-| CAMERA_CONNECTION_REMOTE     | 2    | 分布式相机。  |
+| 名称                       | 类型                                      | 只读 | 说明        |
+| ------------------------- | ----------------------------------------- | --- |------------ |
+| frameRateRanges           | [FrameRateRange](#frameraterange)          | 是  | 帧率。       |
 
-## Size
+## CameraOutputCapability
 
-用于表示相机预览、照片、视频支持的尺寸大小。
+相机输出能力项。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称   | 类型   | 可读 | 可写 | 说明         |
-| ------ | ------ | ---- | ---- | ------------ |
-| height | string | 是   | 是   | 图像的高度。 |
-| width  | number | 是   | 是   | 图像的宽度。 |
+| 名称                           | 类型                                               | 只读 | 说明                |
+| ----------------------------- | -------------------------------------------------- | --- |------------------- |
+| previewProfiles               | Array<[Profile](#profile)\>                        | 是  | 支持的预览配置信息。    |
+| photoProfiles                 | Array<[Profile](#profile)\>                        | 是  | 支持的拍照配置信息。    |
+| videoProfiles                 | Array<[VideoProfile](#videoprofile)\>              | 是  | 支持的录像配置信息。    |
+| supportedMetadataObjectTypes  | Array<[MetadataObjectType](#metadataobjecttype)\>  | 是  | 支持的metadata流类型信息。|
 
 ## CameraManager
 
 相机管理器类,使用前需要通过getCameraManager获取相机管理实例。
 
-### getCameras
+### getSupportedCameras
 
-getCameras(callback: AsyncCallback<Array<Camera\>\>): void
+getSupportedCameras(callback: AsyncCallback<Array<CameraDevice\>\>): void
 
-异步获取设备支持的相机列表,通过注册回调函数获取结果。
+获取支持指定的相机设备对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                      | 必填 | 说明                                 |
-| -------- | ----------------------------------------- | ---- | ------------------------------------ |
-| callback | AsyncCallback<Array<[Camera](#camera)\>\> | 是   | 使用callback方式获取支持的相机列表。 |
+| 名称      | 类型                                                   | 必填 | 说明                             |
+| -------- | ----------------------------------------------------- | ---- | ------------------------------- |
+| callback | AsyncCallback<Array<[CameraDevice](#cameradevice)\>\> | 是   | 使用callback方式获取支持的相机列表。 |
 
 **示例:**
 
 ```js
-cameraManager.getCameras((err, cameras) => {
+cameraManager.getSupportedCameras((err, cameras) => {
     if (err) {
         console.error('Failed to get the cameras. ${err.message}');
         return;
@@ -159,866 +153,1025 @@ cameraManager.getCameras((err, cameras) => {
 })
 ```
 
-### getCameras
+### getSupportedCameras
 
-getCameras(): Promise<Array<Camera\>\>
+getSupportedCameras(): Promise<Array<CameraDevice\>\>
 
-异步获取设备支持的相机列表,通过Promise获取结果。
+获取支持指定的相机设备对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型                                | 说明                          |
-| ----------------------------------- | ----------------------------- |
-| Promise<Array<[Camera](#camera)\>\> | 使用promise获取支持相机列表。 |
+| 类型                                             | 说明                       |
+| ----------------------------------------------- | ------------------------- |
+| Promise<Array<[CameraDevice](#cameradevice)\>\> | 使用promise获取支持相机列表。 |
 
 
 **示例:**
 
 ```js
-cameraManager.getCameras().then((cameraArray) => {
+cameraManager.getSupportedCameras().then((cameraArray) => {
     console.log('Promise returned with an array of supported cameras: ' + cameraArray.length);
 })
 ```
 
-### createCameraInput
-
-createCameraInput(cameraId: string, callback: AsyncCallback<CameraInput\>): void
+### getSupportedOutputCapability
 
-使用相机ID异步创建CameraInput实例,通过注册回调函数获取结果。
+getSupportedOutputCapability(camera:CameraDevice, callback: AsyncCallback<CameraOutputCapability\>): void
 
-**需要权限:** ohos.permission.CAMERA
+查询相机设备在模式下支持的输出能力,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                        | 必填 | 说明                                |
-| -------- | ------------------------------------------- | ---- | ----------------------------------- |
-| cameraId | string                                      | 是   | 指定相机ID。                        |
-| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是   | 回调函数,用于获取CameraInput实例。 |
+| 名称     | 类型                                                              | 必填 | 说明                      |
+| -------- | ---------------------------------------------------------------- | -- | -------------------------- |
+| camera   | [CameraDevice](#cameraDevice)                                    | 是 | CameraDevice对象。          |
+| callback | AsyncCallback<[CameraOutputCapability](#cameraoutputcapability)\> | 是 | 使用callback方式获取相机输出能力。 |
 
 **示例:**
 
 ```js
-cameraManager.createCameraInput(cameraId, (err, cameraInput) => {
+cameraManager.getSupportedOutputCapability(cameraDevice, (err, cameras) => {
     if (err) {
-        console.error('Failed to create the CameraInput instance. ${err.message}');
+        console.error('Failed to get the cameras. ${err.message}');
         return;
     }
-    console.log('Callback returned with the CameraInput instance.');
+    console.log('Callback returned with an array of supported outputCapability: ' + cameras.length);
 })
 ```
 
-### createCameraInput
-
-createCameraInput(cameraId: string): Promise<CameraInput\>
+### getSupportedOutputCapability
 
-使用相机ID异步创建CameraInput实例,通过Promise获取结果。
+getSupportedOutputCapability(camera:CameraDevice): Promise<CameraOutputCapability\>
 
-**需要权限:** ohos.permission.CAMERA
+查询相机设备在模式下支持的输出能力,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型   | 必填 | 说明         |
-| -------- | ------ | ---- | ------------ |
-| cameraId | string | 是   | 指定相机ID。 |
+| 名称      | 类型                              | 必填  | 说明        |
+| -------- | --------------------------------- | ---- | ---------- |
+| camera   | [CameraDevice](#cameraDevice)     |  是  | CameraDevice对象。|
 
 **返回值:**
 
-| 类型                                  | 说明                                     |
-| ------------------------------------- | ---------------------------------------- |
-| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 |
+| 类型                                                            | 说明                          |
+| -------------------------------------------------------------- | ----------------------------- |
+| Promise<[CameraOutputCapability](#cameraoutputcapability)\>    | 使用Promise的方式获取结果,返回相机输出能力。 |
+
 
 **示例:**
 
 ```js
-cameraManager.createCameraInput(cameraId).then((cameraInput) => {
-    console.log('Promise returned with the CameraInput instance');
+cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => {
+    console.log('Promise returned with an array of supported outputCapability: ' + cameraArray.length);
 })
 ```
 
-### createCameraInput
-
-createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback<CameraInput\>): void
+### isCameraMuted
 
-使用相机位置和相机类型异步创建CameraInput实例,通过注册回调函数获取结果。
+isCameraMuted(callback: AsyncCallback<boolean\>): void
 
-**需要权限:** ohos.permission.CAMERA
+查询相机是否被禁用,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                        | 必填 | 说明                                |
-| -------- | ------------------------------------------- | ---- | ----------------------------------- |
-| position | [CameraPosition](#cameraposition)           | 是   | 相机位置。                          |
-| type     | [CameraType](#cameratype)                   | 是   | 相机类型。                          |
-| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是   | 回调函数,用于获取CameraInput实例。 |
+| 名称      | 类型                                      | 必填 | 说明                                  |
+| -------- | ---------------------------------------- | ---- | ------------------------------------ |
+| callback | AsyncCallback<boolean\>                  | 是   | 回调函数,回调返回true即相机被禁用,否则为false。 |
 
 **示例:**
 
 ```js
-cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED, (err, cameraInput) => {
+cameraManager.isCameraMuted((err, status) => {
     if (err) {
-        console.error('Failed to create the CameraInput instance. ${err.message}');
+        console.error('Failed to get the cameraMuted status. ${err.message}');
         return;
     }
-    console.log('Callback returned with the CameraInput instance');
+    console.log('Callback returned with cameraMuted status');
 })
 ```
 
-### createCameraInput
-
-createCameraInput(position: CameraPosition, type: CameraType): Promise<CameraInput\>
+### isCameraMuted
 
-使用相机位置和相机类型异步创建CameraInput实例,通过Promise获取结果。
+isCameraMuted(): Promise<boolean\>
 
-**需要权限:** ohos.permission.CAMERA
+查询相机是否被禁用,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
-
-| 名称     | 类型                              | 必填 | 说明       |
-| -------- | --------------------------------- | ---- | ---------- |
-| position | [CameraPosition](#cameraposition) | 是   | 相机位置。 |
-| type     | [CameraType](#cameratype)         | 是   | 相机类型。 |
-
 **返回值:**
 
-| 类型                                  | 说明                                     |
-| ------------------------------------- | ---------------------------------------- |
-| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 |
+| 类型                                  | 说明                                          |
+| ------------------------------------ | --------------------------------------------- |
+| Promise<boolean\>                    | 使用Promise的方式获取结果,返回相机是否禁用的结果。  |
+
 
 **示例:**
 
 ```js
-cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED).then((cameraInput) => {
-    console.log('Promise returned with the CameraInput instance.');
+cameraManager.isCameraMuted().then((status) => {
+    console.log('Promise returned with the status whether camera is muted.');
 })
 ```
 
-### on('cameraStatus')
+### isCameraMuteSupported
 
-on(type: 'cameraStatus', callback: AsyncCallback<CameraStatusInfo\>): void
+isCameraMuteSupported(callback: AsyncCallback<boolean\>): void
+
+查询是否支持相机禁用,通过注册回调函数获取结果。
 
-监听相机的状态变化,通过注册回调函数获取相机的状态变化。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                                  | 必填 | 说明                                                 |
-| :------- | :---------------------------------------------------- | :--- | :--------------------------------------------------- |
-| type     | string                                                | 是   | 监听事件,固定为'cameraStatus',即相机状态变化事件。 |
-| callback | AsyncCallback<[CameraStatusInfo](#camerastatusinfo)\> | 是   | 回调函数,用于获取相机状态变化信息。                 |
+| 名称     | 类型                                      | 必填 | 说明                                 |
+| -------- | --------------------------------------- | ---- | ------------------------------------ |
+| callback | AsyncCallback<boolean\>                 |  是  |  使用callback方式获取是否支持相机禁用的结果。  |
 
 **示例:**
 
 ```js
-cameraManager.on('cameraStatus', (err, cameraStatusInfo) => {
+cameraManager.isCameraMuteSupported((err, status) => {
     if (err) {
-        console.error('Failed to get cameraStatus callback. ${err.message}');
+        console.error('Failed to get the cameraMuteSupported. ${err.message}');
         return;
     }
-    console.log('camera : ' + cameraStatusInfo.camera.cameraId);
-    console.log('status: ' + cameraStatusInfo.status);
+    console.log('Callback returned with the status whether cameraMuteSupported.');
 })
 ```
 
-## Camera
+### isCameraMuteSupported
 
-调用[camera.getCameraManager](#cameragetcameramanager)后,将返回Camera实例,包括相机ID、位置、类型、连接类型等相机相关的元数据。
+isCameraMuteSupported(): Promise<boolean\>
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core。
+查询是否支持相机禁用,通过Promise获取结果。
 
-| 名称           | 类型                              | 只读 | 说明           |
-| -------------- | --------------------------------- | ---- | -------------- |
-| cameraId       | string                            | 是   | 相机ID。       |
-| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。     |
-| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。     |
-| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
+此接口为系统接口。
 
-**示例:**
+**需要权限:** ohos.permission.CAMERA
 
-```js
-async function getCameraInfo("cameraId") {
-    var cameraManager = await camera.getCameraManager();
-    var cameras = await cameraManager.getCameras();
-    var cameraObj = cameras[0];
-    var cameraId = cameraObj.cameraId;
-    var cameraPosition = cameraObj.cameraPosition;
-    var cameraType = cameraObj.cameraType;
-    var connectionType = cameraObj.connectionType;
-}
-```
+**系统能力:** SystemCapability.Multimedia.Camera.Core
 
-## CameraStatusInfo
+**返回值:**
 
-相机管理器回调返回的接口实例,表示相机状态信息。
+| 类型                   | 说明                          |
+| --------------------- | ----------------------------- |
+| Promise<boolean\>     | 使用Promise的方式获取结果,返回是否支持相机禁用的结果。 |
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-| 名称   | 类型                          | 说明       |
-| ------ | ----------------------------- | ---------- |
-| camera | [Camera](#camera)             | 相机信息。 |
-| status | [CameraStatus](#camerastatus) | 相机状态。 |
+**示例:**
 
+```js
+cameraManager.isCameraMuteSupported().then((status) => {
+    console.log('Promise returned with the status whether cameraMuteSupported.');
+})
+```
 
-## CameraInput
+### muteCamera
 
-相机输入类。在使用该类的方法前,需要先构建一个CameraInput实例。
+muteCamera(mute:boolean, callback: AsyncCallback<void\>): void
 
-### getCameraId
+禁用相机,通过注册回调函数获取结果。
 
-getCameraId(callback: AsyncCallback<string\>\): void
+此接口为系统接口。
 
-异步获取该CameraInput实例的相机ID,通过注册回调函数获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 说明                       |
-| -------- | ---------------------- | ---- | -------------------------- |
-| callback | AsyncCallback<string\> | 是   | 回调函数,用于获取相机ID。 |
+| 名称     | 类型                                      | 必填   | 说明                                 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------ |
+| mute     | boolean                                   |  是  | 是否禁用相机。                    |
+| callback | AsyncCallback<void\>                      |  是  | 使用callback方式获取相机禁用的结果。 |
 
 **示例:**
 
 ```js
-cameraInput.getCameraId((err, cameraId) => {
+cameraManager.muteCamera(isMuted, (err) => {
     if (err) {
-        console.error('Failed to get the camera ID. ${err.message}');
+        console.error('Failed to mute the camera. ${err.message}');
         return;
     }
-    console.log('Callback returned with the camera ID: ' + cameraId);
+    console.log('Callback returned with the muteCamera.');
 })
 ```
 
-### getCameraId
+### muteCamera
+
+muteCamera(mute:boolean): Promise<void\>
+
+禁用相机,通过Promise获取结果。
 
-getCameraId(): Promise<string\>
+此接口为系统接口。
 
-异步获取该CameraInput实例的相机ID,通过Promise获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
+**参数:**
+
+| 名称     | 类型                                      | 必填 | 说明            |
+| -------- | ----------------------------------------- | ---- | ------------ |
+| mute     | boolean                                   |  是  | 是否禁用相机。  |
+
 **返回值:**
 
-| 类型             | 说明                          |
-| ---------------- | ----------------------------- |
-| Promise<string\> | 使用Promise的方式获取相机ID。 |
+| 类型                                | 说明                          |
+| ----------------------------------- | ----------------------------- |
+| Promise<void\>                      | 使用Promise的方式获取结果,返回是否禁用相机的结果。 |
+
 
 **示例:**
 
-```js
-cameraInput.getCameraId().then((cameraId) => {
-    console.log('Promise returned with the camera ID:' + cameraId);
+```js 
+cameraManager.muteCamera(isMuted).then(() => {
+    console.log('Promise returned muteCamera.');
 })
 ```
 
+### createCameraInput
 
-### hasFlash
+createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput\>): void
 
-hasFlash(callback: AsyncCallback<boolean\>): void
+使用CameraDevice对象异步创建CameraInput实例,通过注册回调函数获取结果。
+
+此接口为系统接口。
 
-判断设备是否支持闪光灯,通过注册回调函数获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                    | 必填 | 说明                                   |
-| -------- | ----------------------- | ---- | -------------------------------------- |
-| callback | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示设备支持闪光灯。 |
+| 名称     | 类型                                         | 必填 | 说明                                |
+| -------- | ------------------------------------------- | ---- | --------------------------------- |
+| camera   | [CameraDevice](#cameraDevice)               | 是   | CameraDevice对象。                        |
+| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是   | 回调函数,用于获取CameraInput实例。    |
 
 **示例:**
 
 ```js
-cameraInput.hasFlash((err, status) => {
+cameraManager.createCameraInput(camera, (err, cameraInput) => {
     if (err) {
-        console.error('Failed to check whether the device has flash light. ${err.message}');
+        console.error('Failed to create the CameraInput instance. ${err.message}');
         return;
     }
-    console.log('Callback returned with flash light support status: ' + status);
+    console.log('Callback returned with the CameraInput instance.');
 })
 ```
 
-### hasFlash
+### createCameraInput
 
-hasFlash(): Promise<boolean\>
+createCameraInput(camera: CameraDevice): Promise<CameraInput\>
+
+使用CameraDevice对象异步创建CameraInput实例,通过Promise获取结果。
+
+此接口为系统接口。
 
-判断设备是否支持闪光灯,通过Promise获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
+**参数:**
+
+| 名称     | 类型                           | 必填 | 说明         |
+| -------- | ----------------------------- | ---- | ---------- |
+| camera   | [CameraDevice](#cameraDevice) | 是   | CameraDevice对象。 |
+
 **返回值:**
 
-| 类型              | 说明                                                    |
-| ----------------- | ------------------------------------------------------- |
-| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持闪光灯。 |
+| 类型                                  | 说明                                   |
+| ------------------------------------- | ------------------------------------ |
+| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 |
 
 **示例:**
 
 ```js
-cameraInput.hasFlash().then((status) => {
-    console.log('Promise returned with the flash light support status:' + status);
+cameraManager.createCameraInput(camera).then((cameraInput) => {
+    console.log('Promise returned with the CameraInput instance');
 })
 ```
 
-### isFlashModeSupported
+### createCameraInput
 
-isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean\>): void
+createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback<CameraInput\>): void
+
+根据相机位置和类型创建CameraInput实例,通过注册回调函数获取结果。
+
+此接口为系统接口。
 
-判断设备是否支持指定闪光灯模式,通过注册回调函数获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                    | 必填 | 说明                                     |
-| --------- | ----------------------- | ---- | ---------------------------------------- |
-| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                         |
-| callback  | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示支持该闪光灯模式。 |
+| 名称     | 类型                                        | 必填 | 说明                                |
+| -------- | ------------------------------------------- | ---- | --------------------------------- |
+| position | [CameraPosition](#cameraposition)           | 是   | 相机位置。                          |
+| type     | [CameraType](#cameratype)                   | 是   | 相机类型。                          |
+| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是   | 回调函数,用于获取CameraInput实例。    |
 
 **示例:**
 
 ```js
-cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, (err, status) => {
+cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED, (err, cameraInput) => {
     if (err) {
-        console.error('Failed to check whether the flash mode is supported. ${err.message}');
+        console.error('Failed to create the CameraInput instance. ${err.message}');
         return;
     }
-    console.log('Callback returned with the flash mode support status: ' + status);
+    console.log('Callback returned with the CameraInput instance');
 })
 ```
 
-### isFlashModeSupported
+### createCameraInput
 
-isFlashModeSupported(flashMode: FlashMode): Promise<boolean\>
+createCameraInput(position: CameraPosition, type:CameraType ): Promise<CameraInput\>
+
+根据相机位置和类型创建CameraInput实例,通过Promise获取结果。
+
+此接口为系统接口。
 
-判断设备是否支持指定闪光灯模式,通过Promise获取结果。
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                    | 必填 | 说明             |
-| --------- | ----------------------- | ---- | ---------------- |
-| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。 |
+| 名称     | 类型                               | 必填 | 说明           |
+| -------- | --------------------------------- | ---- | ------------ |
+| position | [CameraPosition](#cameraposition) | 是   | 相机位置。     |
+| type     | [CameraType](#cameratype)         | 是   | 相机类型。     |
 
 **返回值:**
 
-| 类型              | 说明                                                         |
-| ----------------- | ------------------------------------------------------------ |
-| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持该闪光灯模式。 |
+| 类型                                  | 说明                                   |
+| ------------------------------------- | ------------------------------------ |
+| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 |
 
 **示例:**
 
 ```js
-cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO).then((status) => {
-    console.log('Promise returned with flash mode support status.' + status);
+cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED).then((cameraInput) => {
+    console.log('Promise returned with the CameraInput instance');
 })
 ```
 
-### setFlashMode
-
-setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void\>): void
-
-设置闪光灯模式,通过注册回调函数获取结果。
+### createPreviewOutput
 
-进行设置之前,需要先检查:
+createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput\>): void
 
-1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。
-2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。
+创建预览输出对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                    | 必填 | 说明                     |
-| --------- | ----------------------- | ---- | ------------------------ |
-| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。         |
-| callback  | AsyncCallback<void\>    | 是   | 回调函数,用于获取结果。 |
+| 名称     | 类型                                             | 必填 | 说明                              |
+| -------- | ----------------------------------------------- | ---- | ------------------------------- |
+| profile  | [Profile](#profile)                             | 是   | 支持的预览配置信息。                |
+| surfaceId| string | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的SurfaceID。|
+| callback | AsyncCallback<[PreviewOutput](#previewoutput)\>  | 是   | 回调函数,用于获取PreviewOutput实例。|
 
 **示例:**
 
 ```js
-cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, (err) => {
+cameraManager.createPreviewOutput(profile, surfaceId, (err, previewoutput) => {
     if (err) {
-        console.error('Failed to set the flash mode  ${err.message}');
+        console.error('Failed to gcreate previewOutput. ${err.message}');
         return;
     }
-    console.log('Callback returned with the successful execution of setFlashMode.');
+    console.log('Callback returned with previewOutput created.');
 })
 ```
 
-### setFlashMode
-
-setFlashMode(flashMode: FlashMode): Promise<void\>
-
-设置闪光灯模式,通过Promise获取结果。
+### createPreviewOutput
 
-进行设置之前,需要先检查:
+createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput\>
 
-1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。
-2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。
+创建预览输出对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                    | 必填 | 说明             |
-| --------- | ----------------------- | ---- | ---------------- |
-| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。 |
+| 名称     | 类型                              | 必填 | 说明                |
+| -------- | ---------------------------------| ---- | ----------------- |
+| profile  | [Profile](#profile)              | 是   | 支持的预览配置信息。  |
+| surfaceId| string | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的SurfaceID。 |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
+| 类型                                      | 说明                                     |
+| ---------------------------------------- | ---------------------------------------- |
+| Promise<[PreviewOutput](#previewoutput)\> | 使用Promise的方式获取PreviewOutput的实例。  |
 
 **示例:**
 
 ```js
-cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO).then(() => {
-    console.log('Promise returned with the successful execution of setFlashMode.');
+cameraManager.createPreviewOutput(profile, survaceId).then((previewoutput) => {
+    console.log('Promise returned with previewOutput created.');
 })
 ```
 
-### getFlashMode
+### createDeferredPreviewOutput
 
-getFlashMode(callback: AsyncCallback<FlashMode\>): void
+createDeferredPreviewOutput(profile: Profile, callback: AsyncCallback<PreviewOutput\>): void
 
-获取当前设备的闪光灯模式,通过注册回调函数获取结果。
+尚未获取surfaceID时创建预览输出对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                    | 必填 | 说明                                     |
-| -------- | --------------------------------------- | ---- | ---------------------------------------- |
-| callback | AsyncCallback<[FlashMode](#flashmode)\> | 是   | 回调函数,用于获取当前设备的闪光灯模式。 |
+| 名称     | 类型                                             | 必填 | 说明                                |
+| -------- | ----------------------------------------------- | ---- | --------------------------------- |
+| profile  | [Profile](#profile)                             | 是   | 支持的预览配置信息。                  |
+| callback | AsyncCallback<[PreviewOutput](#previewoutput)\> | 是   | 回调函数,用于获取PreviewOutput实例。  |
 
 **示例:**
 
 ```js
-cameraInput.getFlashMode((err, flashMode) => {
+cameraManager.createDeferredPreviewOutput(profile, (err, previewoutput) => {
     if (err) {
-        console.error('Failed to get the flash mode  ${err.message}');
+        console.error('Failed to create deferredPreviewOutput. ${err.message}');
         return;
     }
-    console.log('Callback returned with current flash mode: ' + flashMode);
+    console.log('Callback returned with deferredPreviewOutput created.');
 })
 ```
 
-### getFlashMode
+### createDeferredPreviewOutput
 
-getFlashMode(): Promise<FlashMode\>
+createDeferredPreviewOutput(profile: Profile): Promise<PreviewOutput\>
 
-获取当前设备的闪光灯模式,通过Promise获取结果。
+尚未获取surfaceID时创建预览输出对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
+**参数:**
+
+| 名称     | 类型                              | 必填  | 说明        |
+| -------- | ---------------------------------| ---- | ---------- |
+| profile  | [Profile](#profile)              | 是   | 支持的预览配置信息。  |
+
 **返回值:**
 
-| 类型                              | 说明                                    |
-| --------------------------------- | --------------------------------------- |
-| Promise<[FlashMode](#flashmode)\> | 使用Promise的方式获取当前的闪光灯模式。 |
+| 类型                                       | 说明                                     |
+| ----------------------------------------- | --------------------------------------- |
+| Promise<[PreviewOutput](#previewoutput)\>  | 使用Promise的方式获取PreviewOutput的实例。 |
 
 **示例:**
 
 ```js
-cameraInput.getFlashMode().then((flashMode) => {
-    console.log('Promise returned with current flash mode : ' + flashMode);
+cameraManager.createDeferredPreviewOutput(profile).then((previewoutput) => {
+    console.log('Promise returned with DefeerredPreviewOutput created.');
 })
 ```
 
-### isFocusModeSupported
+### createPhotoOutput
 
-isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean\>): void
+createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput\>): void
 
-判断设备是否支持指定的焦距模式,通过注册回调函数获取结果。
+创建拍照输出对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                    | 必填 | 说明                                   |
-| -------- | ----------------------- | ---- | -------------------------------------- |
-| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                       |
-| callback | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示支持该焦距模式。 |
+| 名称     | 类型                                         | 必填 | 说明                                  |
+| -------- | ------------------------------------------- | ---- | ----------------------------------- |
+| profile  | [Profile](#profile)                         | 是   | 支持的拍照配置信息。                    |
+| surfaceId| string            | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的SurfaceID。|
+| callback | AsyncCallback<[PhotoOutput](#photooutput)\>  | 是   | 回调函数,用于获取PhotoOutput实例。    |
 
 **示例:**
 
 ```js
-cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO, (err, status) => {
+cameraManager.createPhotoOutput(profile, surfaceId, (err, photooutput) => {
     if (err) {
-        console.error('Failed to check whether the focus mode is supported. ${err.message}');
+        console.error('Failed to create photoOutput. ${err.message}');
         return;
     }
-    console.log('Callback returned with the focus mode support status: ' + status);
+    console.log('Callback returned with photoOutput created.');
 })
 ```
 
-### isFocusModeSupported
+### createPhotoOutput
 
-isFocusModeSupported(afMode: FocusMode): Promise<boolean\>
+createPhotoOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput\>
 
-判断设备是否支持指定的焦距模式,通过Promise获取结果。
+创建拍照输出对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称   | 类型                    | 必填 | 说明             |
-| ------ | ----------------------- | ---- | ---------------- |
-| afMode | [FocusMode](#focusmode) | 是   | 指定的焦距模式。 |
+| 名称     | 类型                               | 必填 | 说明         |
+| -------- | ---------------------------------| ---- | ----------- |
+| profile  | [Profile](#profile)              | 是   | 支持的拍照配置信息。  |
+| surfaceId| string       | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的SurfaceID。|
 
 **返回值:**
 
-| 类型              | 说明                                                        |
-| ----------------- | ----------------------------------------------------------- |
-| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持该焦距模式。 |
+| 类型                                  | 说明                                     |
+| ------------------------------------- | -------------------------------------- |
+| Promise<[PhotoOutput](#photooutput)\>  | 使用Promise的方式获取PhotoOutput的实例。  |
 
 **示例:**
 
 ```js
-cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO).then((status) => {
-    console.log('Promise returned with focus mode support status.' + status);
+cameraManager.createPhotoOutput(profile, surfaceId).then((photooutput) => {
+    console.log('Promise returned with photoOutput created.');
 })
 ```
 
-### setFocusMode
-
-setFocusMode(afMode: FocusMode, callback: AsyncCallback<void\>): void
+### createVideoOutput
 
-设置焦距模式,通过注册回调函数获取结果。
+createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput\>): void
 
-进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。
+创建录像输出对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                    | 必填 | 说明                     |
-| -------- | ----------------------- | ---- | ------------------------ |
-| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。         |
-| callback | AsyncCallback<void\>    | 是   | 回调函数,用于获取结果。 |
+| 名称     | 类型                                        | 必填 | 说明                              |
+| -------- | ------------------------------------------- | ---- | ------------------------------ |
+| profile  | [VideoProfile](#videoprofile)               | 是   | 支持的录像配置信息。               |
+| surfaceId| string          | 是   | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的SurfaceID。|
+| callback | AsyncCallback<[VideoOutput](#videooutput)\>  | 是   | 回调函数,用于获取VideoOutput实例。 |
 
 **示例:**
 
 ```js
-cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO, (err) => {
+cameraManager.createVideoOutput(profile, surfaceId, (err, videooutput) => {
     if (err) {
-        console.error('Failed to set the focus mode  ${err.message}');
+        console.error('Failed to create videoOutput. ${err.message}');
         return;
     }
-    console.log('Callback returned with the successful execution of setFocusMode.');
+    console.log('Callback returned with an array of supported outputCapability: ' + cameras.length);
 })
 ```
 
-### setFocusMode
-
-setFocusMode(afMode: FocusMode): Promise<void\>
+### createVideoOutput
 
-设置焦距模式,通过Promise获取结果。
+createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput\>
 
-进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。
+创建录像输出对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称   | 类型                    | 必填 | 说明             |
-| ------ | ----------------------- | ---- | ---------------- |
-| afMode | [FocusMode](#focusmode) | 是   | 指定的焦距模式。 |
+| 名称     | 类型                              | 必填 | 说明         |
+| -------- | ---------------------------------| ---- | ---------- |
+| profile  | [VideoProfile](#videoprofile)    | 是   | 支持的录像配置信息。   |
+| surfaceId| string        | 是   | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的SurfaceID。|
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
+| 类型                                  | 说明                                     |
+| ------------------------------------- | -------------------------------------- |
+| Promise<[VideoOutput](#videooutput)\>  | 使用Promise的方式获取videoOutput的实例。  |
 
 **示例:**
 
 ```js
-cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO).then(() => {
-    console.log('Promise returned with the successful execution of setFocusMode.');
+cameraManager.createVideoOutput(profile, surfaceId).then((videooutput) => {
+    console.log('Promise returned with videoOutput created.');
 })
 ```
 
-### getFocusMode
+### createMetadataOutput
 
-getFocusMode(callback: AsyncCallback<FocusMode\>): void
+createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType\>, callback: AsyncCallback<MetadataOutput\>): void
 
-获取当前设备的焦距模式,通过注册回调函数获取结果。
+创建metadata流输出对象,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                    | 必填 | 说明                                   |
-| -------- | --------------------------------------- | ---- | -------------------------------------- |
-| callback | AsyncCallback<[FocusMode](#focusmode)\> | 是   | 回调函数,用于获取当前设备的焦距模式。 |
+| 名称                  | 类型                                               | 必填 | 说明                          |
+| -------------------- | -------------------------------------------------- | --- | ---------------------------- |
+| metadataObjectTypes  | Array<[MetadataObjectType](#metadataobjecttype)\>  | 是   | metadata流类型。              |
+| callback             | AsyncCallback<[MetadataOutput](#metadataoutput)\>  | 是   | 回调函数,用于获取MetadataOutput实例。    |
 
 **示例:**
 
 ```js
-cameraInput.getFocusMode((err, afMode) => {
+cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataoutput) => {
     if (err) {
-        console.error('Failed to get the focus mode  ${err.message}');
+        console.error('Failed to create metadataOutput. ${err.message}');
         return;
     }
-    console.log('Callback returned with current focus mode: ' + afMode);
+    console.log('Callback returned with metadataOutput created.');
 })
 ```
 
-### getFocusMode
+### createMetadataOutput
 
-getFocusMode(): Promise<FocusMode\>
+createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType\>): Promise<MetadataOutput>
 
-获取当前设备的焦距模式,通过Promise获取结果。
+创建metadata流输出对象,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
+**参数:**
+
+| 名称                  | 类型                                               | 必填 | 说明            |
+| -------------------- | -------------------------------------------------- | --- | -------------- |
+| metadataObjectTypes  | Array<[MetadataObjectType](#metadataobjecttype)\>  | 是  | metadata流类型。 |
+
 **返回值:**
 
-| 类型                | 说明                                  |
-| ------------------- | ------------------------------------- |
-| Promise<FocusMode\> | 使用Promise的方式获取当前的焦距模式。 |
+| 类型                                        | 说明                                       |
+| ------------------------------------------ | ----------------------------------------- |
+| Promise<[MetadataOutput](#metadataoutput)\> |  使用Promise的方式获取MetadataOutput的实例。 |
 
 **示例:**
 
 ```js
-cameraInput.getFocusMode().then((afMode) => {
-    console.log('Promise returned with current focus mode : ' + afMode);
+cameraManager.createMetadataOutput(metadataObjectTypes).then((metadataoutput) => {
+    console.log('Promise returned with metadataOutput created.');
 })
 ```
 
-### getZoomRatioRange
+### createCaptureSession
 
-getZoomRatioRange\(callback: AsyncCallback<Array<number\>\>\): void
+createCaptureSession(callback: AsyncCallback<CaptureSession\>): void
 
-获取可变焦距比范围,通过注册回调函数获取结果。
+创建CaptureSession实例,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                           | 必填 | 说明                     |
-| -------- | ------------------------------ | ---- | ------------------------ |
-| callback | AsyncCallback<Array<number\>\> | 是   | 回调函数,用于获取结果。 |
+| 名称                  | 类型                                      | 必填         | 说明                          |
+| -------------------- | ----------------------------------------- | ----------- | ---------------------------- |
+| callback             | AsyncCallback<[CaptureSession](#capturesession)\>  | 是   | 回调函数,用于获取拍照会话实例。 |
 
 **示例:**
 
 ```js
-cameraInput.getZoomRatioRange((err, zoomRatioRange) => {
+cameraManager.createCaptureSession((err, capturesession) => {
     if (err) {
-        console.error('Failed to get the zoom ratio range. ${err.message}');
+        console.error('Failed to create captureSession. ${err.message}');
         return;
     }
-    console.log('Callback returned with zoom ratio range: ' + zoomRatioRange.length);
+    console.log('Callback returned with captureSession created.');
 })
 ```
 
-### getZoomRatioRange
+### createCaptureSession
 
-getZoomRatioRange\(\): Promise<Array<number\>\>
+createCaptureSession(): Promise<CaptureSession\>
 
-获取可变焦距比范围,通过Promise获取结果。
+创建CaptureSession实例,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型                     | 说明                                        |
-| ------------------------ | ------------------------------------------- |
-| Promise<Array<number\>\> | 使用Promise的方式获取当前的可变焦距比范围。 |
+| 类型                                         | 说明                                      |
+| ------------------------------------------- | ---------------------------------------- |
+| Promise<[CaptureSession](#capturesession)\>  | 使用Promise的方式获取CaptureSession的实例。 |
 
 **示例:**
 
 ```js
-cameraInput.getZoomRatioRange().then((zoomRatioRange) => {
-    console.log('Promise returned with zoom ratio range: ' + zoomRatioRange.length);
+cameraManager.createCaptureSession().then((capturesession) => {
+    console.log('Promise returned with captureSession created.');
 })
 ```
 
-### setZoomRatio
+### on('cameraStatus')
 
-setZoomRatio(zoomRatio: number, callback: AsyncCallback<void\>): void
+on(type: 'cameraStatus', callback: AsyncCallback<CameraStatusInfo\>): void
 
-设置可变焦距比,通过注册回调函数获取结果。
+镜头状态回调,通过注册回调函数获取相机的状态变化。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                 | 必填 | 说明                     |
-| --------- | -------------------- | ---- | ------------------------ |
-| zoomRatio | number               | 是   | 可变焦距比。             |
-| callback  | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称     | 类型                                                    | 必填 | 说明       |
+| -------- | ----------------------------------------------------- | ---- | --------- |
+| type     | string                                                | 是   | 监听事件,固定为'cameraStatus',即镜头状态变化事件。 |
+| callback | AsyncCallback<[CameraStatusInfo](#camerastatusinfo)\> | 是   | 回调函数,用于获取镜头状态变化信息。                 |
 
 **示例:**
 
 ```js
-cameraInput.setZoomRatio(1, (err) => {
+cameraManager.on('cameraStatus', (err, cameraStatusInfo) => {
     if (err) {
-        console.error('Failed to set the zoom ratio value ${err.message}');
+        console.error('Failed to get cameraStatus callback. ${err.message}');
         return;
     }
-    console.log('Callback returned with the successful execution of setZoomRatio.');
+    console.log('camera : ' + cameraStatusInfo.camera.cameraId);
+    console.log('status: ' + cameraStatusInfo.status);
 })
 ```
 
-### setZoomRatio
+### on('cameraMute') 
 
-setZoomRatio(zoomRatio: number): Promise<void\>
+on(type: 'cameraMute', callback: AsyncCallback<boolean\>): void
+
+监听相机禁用的状态变化,通过注册回调函数获取相机的状态变化。
 
-设置可变焦距比,通过Promise获取结果。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.CAMERA
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型   | 必填 | 说明         |
-| --------- | ------ | ---- | ------------ |
-| zoomRatio | number | 是   | 可变焦距比。 |
+| 名称     | 类型                                      | 必填 | 说明                            |
+| -------- | --------------------------------------- | ---- | ------------------------------- |
+| type     | string                                  | 是   | 监听事件,固定为'cameraMute',即相机状禁用态变化事件。 |
+| callback | AsyncCallback<boolean\>                 | 是   | 回调函数,用于获取相机是否禁用。  |
 
-**返回值:**
+**示例:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
+```js
+cameraManager.on('cameraMute', (err, status) => {
+    if (err) {
+        console.error('Failed to get cameraMute callback. ${err.message}');
+        return;
+    }
+    console.log('status: ' + status);
+})
+```
+
+## CameraStatusInfo
+
+相机管理器回调返回的接口实例,表示相机状态信息。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core。
+
+| 名称   | 类型                            | 说明       |
+| ------ | ----------------------------- | ---------- |
+| camera | [CameraDevice](#CameraDevice) | 相机信息。 |
+| status | [CameraStatus](#camerastatus) | 相机状态。 |
+
+## CameraPosition
+
+枚举,相机位置。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                         | 值   | 说明            |
+| --------------------------- | ---- | -------------- |
+| CAMERA_POSITION_UNSPECIFIED | 0    | 相机位置未指定。  |
+| CAMERA_POSITION_BACK        | 1    | 后置相机。       |
+| CAMERA_POSITION_FRONT       | 2    | 前置相机。       |
+
+## CameraType
+
+枚举,相机类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                     | 值   | 说明            |
+| ----------------------- | ---- | -------------- |
+| CAMERA_TYPE_UNSPECIFIED | 0    | 相机类型未指定。  |
+| CAMERA_TYPE_WIDE_ANGLE  | 1    | 广角相机。       |
+| CAMERA_TYPE_ULTRA_WIDE  | 2    | 超广角相机。     |
+| CAMERA_TYPE_TELEPHOTO   | 3    | 长焦相机。       |
+| CAMERA_TYPE_TRUE_DEPTH  | 4    | 带景深信息的相机。 |
+
+## ConnectionType
+
+枚举,相机连接类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                          | 值   | 说明           |
+| ---------------------------- | ---- | ------------- |
+| CAMERA_CONNECTION_BUILT_IN   | 0    | 内置相机。      |
+| CAMERA_CONNECTION_USB_PLUGIN | 1    | USB连接的相机。 |
+| CAMERA_CONNECTION_REMOTE     | 2    | 远程连接的相机。 |
+
+## CameraDevice
+
+相机设备信息。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core。
+
+| 名称           | 类型                                | 只读 | 说明        |
+| -------------- | --------------------------------- | ---- | ---------- |
+| cameraId       | string                            | 是   | CameraDevice对象|
+| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
+| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
+| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
 
 **示例:**
 
 ```js
-cameraInput.setZoomRatio(1).then(() => {
-    console.log('Promise returned with the successful execution of setZoomRatio.');
-})
+async function getCameraInfo("cameraId") {
+    var cameraManager = await camera.getCameraManager(context);
+    var cameras = await cameraManager.getSupportedCameras();
+    var cameraObj = cameras[0];
+    var cameraId = cameraObj.cameraId;
+    var cameraPosition = cameraObj.cameraPosition;
+    var cameraType = cameraObj.cameraType;
+    var connectionType = cameraObj.connectionType;
+}
 ```
 
-### getZoomRatio
+## Size
 
-getZoomRatio(callback: AsyncCallback<number\>): void
+枚举,输出能力查询。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称   | 类型   | 可读 | 可写 | 说明         |
+| ------ | ------ | ---- | ---- | ------------ |
+| height | number | 是   | 是   | 图像尺寸高(像素)。 |
+| width  | number | 是   | 是   | 图像尺寸宽(像素)。 |
+
+## Point
+
+枚举,点坐标用于对焦、曝光配置。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
 
-获取当前的可变焦距比,通过注册回调函数获取结果。
+| 名称   | 类型   | 必填   | 说明         |
+| ------ | ------ | ---- | ------------ |
+| x      | number | 是    | 点的x坐标。   |
+| y      | number | 是    | 点的y坐标。   |
+
+## CameraFormat
+
+枚举,输出格式。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                     | 默认值     | 说明         |
+| ----------------------- | --------- | ------------ |
+| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
+| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |
+
+## CameraInput
+
+会话中[CaptureSession](#capturesession)使用的相机信息。
+
+### open
+
+open\(callback: AsyncCallback<void\>\): void
+
+打开相机,通过注册回调函数获取状态。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 说明                     |
-| -------- | ---------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<number\> | 是   | 回调函数,用于获取结果。 |
+| 名称     | 类型                  | 必填 | 说明                  |
+| -------- | -------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-cameraInput.getZoomRatio((err, zoomRatio) => {
+cameraInput.open((err) => {
     if (err) {
-        console.error('Failed to get the zoom ratio ${err.message}');
+        console.error('Failed to open the camera. ${err.message}');
         return;
     }
-    console.log('Callback returned with current zoom ratio: ' + zoomRatio);
+    console.log('Callback returned with camera opened.');
 })
 ```
 
-### getZoomRatio
+### open
 
-getZoomRatio(): Promise<number\>
+open(): Promise<void\>
 
-获取当前的可变焦距比,通过Promise获取结果。
+打开相机,通过Promise获取相机的状态。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型             | 说明                        |
-| ---------------- | --------------------------- |
-| Promise<number\> | 使用Promise的方式获取结果。 |
+| 类型           | 说明                      |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-cameraInput.getZoomRatio().then((zoomRatio) => {
-    console.log('Promise returned with current zoom ratio : ' + zoomRatio);
+cameraInput.open().then(() => {
+    console.log('Promise returned with camera opened.');
 })
 ```
 
-### release
+### close
 
-release\(callback: AsyncCallback<void\>\): void
+close\(callback: AsyncCallback<void\>\): void
 
-释放相机实例,通过注册回调函数获取结果。
+关闭相机,通过注册回调函数获取状态。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称     | 类型                   | 必填 | 说明                  |
+| -------- | -------------------- | ---- | -------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-cameraInput.release((err) => {
+cameraInput.close((err) => {
     if (err) {
-        console.error('Failed to release the CameraInput instance ${err.message}');
+        console.error('Failed to close the cameras. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the CameraInput instance is released successfully.');
-});
+    console.log('Callback returned with camera closed.');
+})
 ```
 
-### release
+### close
 
-release(): Promise<void\>
+close(): Promise<void\>
 
-释放相机实例,通过Promise获取结果。
+关闭相机,通过Promise获取状态。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型           | 说明                      |
+| -------------- | ----------------------- |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-cameraInput.release().then(() => {
-    console.log('Promise returned to indicate that the CameraInput instance is released successfully.');
+cameraInput.close().then(() => {
+    console.log('Promise returned with camera closed.');
 })
 ```
 
-### on('focusStateChange')
+### release
 
-on(type: 'focusStateChange', callback: AsyncCallback<FocusState\>): void
+release\(callback: AsyncCallback<void\>\): void
 
-监听焦距的状态变化,通过注册回调函数获取结果。
+释放资源,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                      | 必填 | 说明                                                     |
-| :------- | :---------------------------------------- | :--- | :------------------------------------------------------- |
-| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',即焦距状态变化事件。 |
-| callback | AsyncCallback<[FocusState](#focusstate)\> | 是   | 回调函数,用于获取焦距状态。                             |
+| 名称     | 类型                   | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-cameraInput.on('focusStateChange', (focusState) => {
-    console.log('Focus state  : ' + focusState);
+cameraInput.release((err) => {
+    if (err) {
+        console.error('Failed to release the CameraInput instance ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate that the CameraInput instance is released successfully.');
+});
+```
+
+### release
+
+release(): Promise<void\>
+
+释放资源,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型           | 说明                      |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+cameraInput.release().then(() => {
+    console.log('Promise returned to indicate that the CameraInput instance is released successfully.');
 })
 ```
 
@@ -1032,10 +1185,10 @@ on(type: 'error', callback: ErrorCallback<CameraInputError\>): void
 
 **参数:**
 
-| 名称     | 类型                             | 必填 | 说明                                             |
-| :------- | :------------------------------- | :--- | :----------------------------------------------- |
+| 名称     | 类型                             | 必填 | 说明                                          |
+| -------- | -------------------------------- | ---- | ------------------------------------------- |
 | type     | string                           | 是   | 监听事件,固定为'error',即CameraInput错误事件。 |
-| callback | ErrorCallback<[CameraInputError](#camerainputerror)\> | 是   | 回调函数,用于获取结果。                         |
+| callback | ErrorCallback<[CameraInputError](#camerainputerror)\> | 是   | 回调函数,用于获取结果。   |
 
 **示例:**
 
@@ -1045,24 +1198,29 @@ cameraInput.on('error', (cameraInputError) => {
 })
 ```
 
-##  CameraInputErrorCode
+## CameraInputErrorCode
 
-枚举,CameraInput的错误码。
+枚举,[CameraInput](#camerainput)错误类型。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称          | 值   | 说明       |
-| ------------- | ---- | ---------- |
-| ERROR_UNKNOWN | -1   | 未知错误。 |
+| 名称                       | 值   | 说明       |
+| ------------------------- | ---- | ---------- |
+| ERROR_UNKNOWN             | -1   | 未知错误。 |
+| ERROR_NO_PERMISSION       | 0    | 没有权限。 |
+| ERROR_DEVICE_PREEMPTED    | 1    | 相机被抢占。 |
+| ERROR_DEVICE_DISCONNECTED | 2    | 相机断开连接。 |
+| ERROR_DEVICE_IN_USE       | 3    | 相机正在使用。 |
+| ERROR_DRIVER_ERROR        | 4    | 驱动错误。    |
 
-##  CameraInputError
+## CameraInputError
 
-CameraInput错误对象。
+[CameraInput](#camerainput)错误码。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称 | 类型                                        | 说明                       |
-| ---- | ------------------------------------------- | -------------------------- |
+| 名称 | 类型                                           | 说明                   |
+| ---- | --------------------------------------------- | --------------------- |
 | code | [CameraInputErrorCode](#camerainputerrorcode) | CameraInput中的错误码。 |
 
 
@@ -1072,96 +1230,78 @@ CameraInput错误对象。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-| 名称                   | 值   | 说明         |
-| ---------------------- | ---- | ------------ |
+| 名称                    | 值   | 说明        |
+| ---------------------- | ---- | ---------- |
 | FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
-| FLASH_MODE_OPEN        | 1    | 闪光灯开启。 |
+| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
 | FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
 | FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
 
-## FocusMode
+## ExposureMode
 
-枚举,焦距模式。
+枚举,曝光模式。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-| 名称                       | 值   | 说明               |
-| -------------------------- | ---- | ------------------ |
-| FOCUS_MODE_MANUAL          | 0    | 手动变焦模式。     |
-| FOCUS_MODE_CONTINUOUS_AUTO | 1    | 连续自动变焦模式。 |
-| FOCUS_MODE_AUTO            | 2    | 自动变焦模式。     |
-| FOCUS_MODE_LOCKED          | 3    | 定焦模式。         |
+| 名称                           | 值   | 说明         |
+| ----------------------------- | ---- | ----------- |
+| EXPOSURE_MODE_LOCKED          | 0    | 锁定曝光模式。 |
+| EXPOSURE_MODE_AUTO            | 1    | 自动曝光模式。 |
+| EXPOSURE_MODE_CONTINUOUS_AUTO | 2    | 连续自动曝光。 |
 
-## FocusState
+## FocusMode
 
-枚举,焦距状态。
+枚举,焦距模式。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-| 名称                  | 值   | 说明         |
-| --------------------- | ---- | ------------ |
-| FOCUS_STATE_SCAN      | 0    | 扫描状态。   |
-| FOCUS_STATE_FOCUSED   | 1    | 相机已对焦。 |
-| FOCUS_STATE_UNFOCUSED | 2    | 相机未对焦。 |
-
-## camera.createCaptureSession
-
-createCaptureSession\(context: Context, callback: AsyncCallback<CaptureSession\>\): void
-
-获取CaptureSession实例,通过注册回调函数获取结果。
-
-**系统能力:** SystemCapability.Multimedia.Camera.Core
-
-**参数:**
-
-| 名称     | 类型                                              | 必填 | 说明                                   |
-| -------- | ------------------------------------------------- | ---- | -------------------------------------- |
-| context  | Context                                           | 是   | 应用上下文。                           |
-| callback | AsyncCallback<[CaptureSession](#capturesession)\> | 是   | 回调函数,用于获取CaptureSession实例。 |
+| 名称                        | 值   | 说明          |
+| -------------------------- | ---- | ------------ |
+| FOCUS_MODE_MANUAL          | 0    | 手动对焦。     |
+| FOCUS_MODE_CONTINUOUS_AUTO | 1    | 连续自动对焦。 |
+| FOCUS_MODE_AUTO            | 2    | 自动变焦。     |
+| FOCUS_MODE_LOCKED          | 3    | 对焦锁定。     |
 
-**示例:**
+## FocusState
 
-```js
-camera.createCaptureSession((context), (err, captureSession) => {
-    if (err) {
-        console.error('Failed to create the CaptureSession instance. ${err.message}');
-        return;
-    }
-    console.log('Callback returned with the CaptureSession instance.' + captureSession);
-});
-```
+枚举,焦距状态。
 
-## camera.createCaptureSession
+**系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-createCaptureSession(context: Context\): Promise<CaptureSession\>;
+| 名称                   | 值   | 说明       |
+| --------------------- | ---- | --------- |
+| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
+| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
+| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
 
-获取CaptureSession实例,通过Promise获取结果。
+## ExposureState
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+枚举,曝光状态。
 
-**参数:**
+**系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-| 名称    | 类型    | 必填 | 说明         |
-| ------- | ------- | ---- | ------------ |
-| context | Context | 是   | 应用上下文。 |
+| 名称                       | 值   | 说明       |
+| ------------------------- | ---- | -------- |
+| EXPOSURE_STATE_SCAN       | 0    | 曝光中。   |
+| EXPOSURE_STATE_CONVERGED  | 1    | 曝光收敛。 |
 
-**返回值:**
+## VideoStabilizationMode
 
-| 类型                                        | 说明                                      |
-| ------------------------------------------- | ----------------------------------------- |
-| Promise<[CaptureSession](#capturesession)\> | 使用Promise的方式获取CaptureSession实例。 |
+枚举,视频防抖模式。
 
-**示例:**
+**系统能力:** SystemCapability.Multimedia.Camera.Core。
 
-```js
-camera.createCaptureSession(context).then((captureSession) => {
-    console.log('Promise returned with the CaptureSession instance');
-})
-```
+| 名称       | 值   | 说明         |
+| --------- | ---- | ------------ |
+| OFF       | 0    | 关闭视频防抖功能。   |
+| LOW       | 1    | 使用基础防抖算法。   |
+| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
+| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
+| AUTO      | 4    | 自动进行选择。   |
 
 ## CaptureSession
 
-拍照会话类。
+拍照会话类,保存一次相机运行所需要的所有资源[CameraInput](#camerainput)、[CameraOutput](#cameraoutput),并向相机设备申请完成相机功能(录像,拍照)。
 
 ### beginConfig
 
@@ -1173,8 +1313,8 @@ beginConfig\(callback: AsyncCallback<void\>\): void
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称     | 类型                   | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
@@ -1199,8 +1339,8 @@ beginConfig\(\): Promise<void\>
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 
@@ -1216,14 +1356,14 @@ captureSession.beginConfig().then(() => {
 
 commitConfig\(callback: AsyncCallback<void\>\): void
 
-提交会话配置,通过注册回调函数获取结果。
+提交配置信息,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称     | 类型                   | 必填 | 说明                  |
+| -------- | -------------------- | ---- | -------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
@@ -1242,14 +1382,14 @@ captureSession.commitConfig((err) => {
 
 commitConfig\(\): Promise<void\>
 
-提交会话配置,通过Promise获取结果。
+提交配置信息,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                      |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
@@ -1260,546 +1400,529 @@ captureSession.commitConfig().then(() => {
 })
 ```
 
-### addInput
+### canAddInput
 
-addInput\(cameraInput: CameraInput, callback: AsyncCallback<void\>\): void
+canAddInput(cameraInput: CameraInput, callback: AsyncCallback<boolean\>): void
 
-在当前会话中,添加一个CameraInput实例,通过注册回调函数获取结果。
+判断是否可以添加[CameraInput](#camerainput)到会话中,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
+| 名称        | 类型                          | 必填 | 说明                      |
+| ----------- | --------------------------- | ---- | ------------------------ |
 | cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
-| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
+| callback    | AsyncCallback<boolean\>     | 是   | 回调函数,用于获取结果。    |
 
 **示例:**
 
 ```js
-captureSession.addInput(cameraInput, (err) => {
+captureSession.canAddInput(cameraInput, (err, status) => {
     if (err) {
-        console.error('Failed to add the CameraInput instance. ${err.message}');
+        console.error('Can not add cameraInput. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the CameraInput instance is added.');
-});
+    console.log('Callback returned with cameraInput can added.');
+})
 ```
 
-### addInput
+### canAddInput
 
-addInput\(cameraInput: CameraInput\): Promise<void\>
+canAddInput(cameraInput: CameraInput): Promise<boolean\>
 
-在当前会话中,添加一个CameraInput实例,通过Promise获取结果。
+判断是否可以添加[CameraInput](#camerainput)到会话中,通过注Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
+| 名称        | 类型                          | 必填 | 说明                      |
+| ----------- | --------------------------- | ---- | ------------------------ |
 | cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
+| 类型           | 说明                         |
+| -------------- | -------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.addInput(cameraInput).then(() => {
-    console.log('Promise used to indicate that the CameraInput instance is added.');
+captureSession.canAddInput(cameraInput).then(() => {
+    console.log('Promise returned with cameraInput can added.');
 })
 ```
 
-### addOutput
+### addInput
 
-addOutput\(previewOutput: PreviewOutput, callback: AsyncCallback<void\>\): void
+addInput\(cameraInput: CameraInput, callback: AsyncCallback<void\>\): void
 
-在当前会话中,添加一个PreviewOutput实例,通过注册回调函数获取结果。
+把[CameraInput](#camerainput)加入到会话,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称          | 类型                            | 必填 | 说明                          |
-| ------------- | ------------------------------- | ---- | ----------------------------- |
-| previewOutput | [PreviewOutput](#previewoutput) | 是   | 需要添加的PreviewOutput实例。 |
-| callback      | AsyncCallback<void\>            | 是   | 回调函数,用于获取结果。      |
+| 名称        | 类型                          | 必填 | 说明                     |
+| ----------- | --------------------------- | ---- | ------------------------ |
+| cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
+| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
 
 **示例:**
 
 ```js
-captureSession.addOutput(previewOutput, (err) => {
+captureSession.addInput(cameraInput, (err) => {
     if (err) {
-        console.error('Failed to add the PreviewOutput instance ${err.message}');
+        console.error('Failed to add the CameraInput instance. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the PreviewOutput instance is added.');
+    console.log('Callback invoked to indicate that the CameraInput instance is added.');
 });
 ```
 
-### addOutput
+### addInput
 
-addOutput\(previewOutput: PreviewOutput\): Promise<void\>
+addInput\(cameraInput: CameraInput\): Promise<void\>
 
-在当前会话中,添加一个PreviewOutput实例,通过Promise获取结果。
+把[CameraInput](#camerainput)加入到会话,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称          | 类型                            | 必填 | 说明                          |
-| ------------- | ------------------------------- | ---- | ----------------------------- |
-| previewOutput | [PreviewOutput](#previewoutput) | 是   | 需要添加的PreviewOutput实例。 |
+| 名称        | 类型                          | 必填 | 说明                     |
+| ----------- | --------------------------- | ---- | ------------------------ |
+| cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型           | 说明                      |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.addOutput(previewOutput).then(() => {
-    console.log('Promise used to indicate that the PreviewOutput instance is added.');
+captureSession.addInput(cameraInput).then(() => {
+    console.log('Promise used to indicate that the CameraInput instance is added.');
 })
 ```
 
-### addOutput
+### removeInput
 
-addOutput\(photoOutput: PhotoOutput, callback: AsyncCallback<void\>\): void
+removeInput\(cameraInput: CameraInput, callback: AsyncCallback<void\>\): void
 
-在当前会话中,添加一个PhotoOutput实例,通过注册回调函数获取结果。
+移除[CameraInput](#camerainput),通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| photoOutput | [PhotoOutput](#photooutput) | 是   | 需要添加的PhotoOutput实例。 |
+| 名称        | 类型                          | 必填 | 说明                      |
+| ----------- | --------------------------- | ---- | ------------------------ |
+| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
 | callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
 
 **示例:**
 
 ```js
-captureSession.addOutput(photoOutput, (err) => {
+captureSession.removeInput(cameraInput, (err) => {
     if (err) {
-        console.error('Failed to add the PhotoOutput instance ${err.message}');
+        console.error('Failed to remove the CameraInput instance. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the PhotoOutput instance is added.');
+    console.log('Callback invoked to indicate that the cameraInput instance is removed.');
 });
 ```
 
-### addOutput
+### removeInput
 
-addOutput\(photoOutput: PhotoOutput\): Promise<void\>
+removeInput\(cameraInput: CameraInput\): Promise<void\>
 
-在当前会话中,添加一个PhotoOutput实例,通过Promise获取结果。
+移除[CameraInput](#camerainput),通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| photoOutput | [PhotoOutput](#photooutput) | 是   | 需要添加的PhotoOutput实例。 |
+| 名称        | 类型                          | 必填 | 说明                      |
+| ----------- | --------------------------- | ---- | ------------------------ |
+| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise\<void> | 使用Promise的方式获取结果。 |
+| 类型            | 说明                      |
+| -------------- | ------------------------- |
+| Promise\<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.addOutput(photoOutput).then(() => {
-    console.log('Promise used to indicate that the PhotoOutput instance is added.');
+captureSession.removeInput(cameraInput).then(() => {
+    console.log('Promise returned to indicate that the cameraInput instance is removed.');
 })
 ```
 
-### addOutput
+### canAddOutput
 
-addOutput\(videoOutput: VideoOutput, callback: AsyncCallback<void\>\): void
+canAddOutput(cameraOutput: CameraOutput, callback: AsyncCallback<boolean\>\): void
 
-在当前会话中,添加一个VideoOutput实例,通过注册回调函数获取结果。
+查询是否可以添加[CameraOutput](#cameraoutput)到会话中,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| videoOutput | [VideoOutput](#videooutput) | 是   | 需要添加的VideoOutput实例。 |
-| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
+| 名称           | 类型                             | 必填 | 说明                      |
+| ------------- | ------------------------------- | ---- | ------------------------- |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要添加的CameraOutput实例。 |
+| callback      | AsyncCallback<boolean\>         | 是   | 回调函数,用于获取结果。   |
 
 **示例:**
 
 ```js
-captureSession.addOutput(videoOutput, (err) => {
+captureSession.canAddOutput(cameraOutput, (err, status) => {
     if (err) {
-        console.error('Failed to add the VideoOutput instance ${err.message}');
+        console.error('Can not add cameraOutput. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the VideoOutput instance is added.');
-});
+    console.log('Callback returned with cameraOutput can added.');
+})
 ```
 
-### addOutput
+### canAddOutput
 
-addOutput\(videoOutput: VideoOutput\): Promise<void\>
+canAddOutput(cameraOutput: CameraOutput): Promise<boolean\>
 
-在当前会话中,添加一个VideoOutput实例,通过Promise获取结果。
+查询是否可以添加[CameraOutput](#cameraoutput)到会话中,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| videoOutput | [VideoOutput](#videooutput) | 是   | 需要添加的VideoOutput实例。 |
+| 名称           | 类型                             | 必填 | 说明                      |
+| ------------- | ------------------------------- | ---- | ------------------------- |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要添加的CameraOutput实例。 |
+
 
 **返回值:**
 
-| 类型           | 说明                        |
+| 类型            | 说明                        |
 | -------------- | --------------------------- |
-| Promise\<void> | 使用Promise的方式获取结果。 |
+| Promise<boolean\> | 使用Promise的方式获取结果。 |
+
 
 **示例:**
 
 ```js
-captureSession.addOutput(videoOutput).then(() => {
-    console.log('Promise used to indicate that the VideoOutput instance is added.');
+captureSession.canAddOutput(cameraOutput).then(() => {
+    console.log('Promise returned with cameraOutput can added.');
 })
 ```
 
-### removeInput
+### addOutput
 
-removeInput\(cameraInput: CameraInput, callback: AsyncCallback<void\>\): void
+addOutput\(cameraOutput: CameraOutput, callback: AsyncCallback<void\>\): void
 
-在当前会话中,移除一个CameraInput实例,通过注册回调函数获取结果。
+把[CameraOutput](#cameraoutput)加入到会话,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
-| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
+| 名称           | 类型                             | 必填 | 说明                      |
+| ------------- | ------------------------------- | ---- | ------------------------ |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要添加的CameraOutput实例。 |
+| callback      | AsyncCallback<void\>            | 是   | 回调函数,用于获取结果。      |
 
 **示例:**
 
 ```js
-captureSession.removeInput(cameraInput, (err) => {
+captureSession.addOutput(cameraOutput, (err) => {
     if (err) {
-        console.error('Failed to remove the CameraInput instance. ${err.message}');
+        console.error('Failed to add output. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the cameraInput instance is removed.');
-});
+    console.log('Callback returned with output added.');
+})
 ```
 
-### removeInput
+### addOutput
 
-removeInput\(cameraInput: CameraInput\): Promise<void\>
+addOutput\(cameraOutput: CameraOutput\): Promise<void\>
 
-在当前会话中,移除一个CameraInput实例,通过Promise获取结果。
+把[CameraOutput](#cameraoutput)加入到会话,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
+| 名称           | 类型                             | 必填 | 说明                       |
+| ------------- | ------------------------------- | ---- | ------------------------- |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要添加的CameraOutput实例。 |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise\<void> | 使用Promise的方式获取结果。 |
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.removeInput(cameraInput).then(() => {
-    console.log('Promise returned to indicate that the cameraInput instance is removed.');
+captureSession.addOutput(cameraOutput).then(() => {
+    console.log('Promise returned with cameraOutput added.');
 })
 ```
 
 ### removeOutput
 
-removeOutput\(previewOutput: PreviewOutput, callback: AsyncCallback<void\>\): void
+removeOutput\(cameraOutput: CameraOutput, callback: AsyncCallback<void\>\): void
 
-在当前会话中,移除一个PreviewOutput实例,通过注册回调函数获取结果。
+从会话中移除[CameraOutput](#cameraoutput),通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称          | 类型                            | 必填 | 说明                          |
-| ------------- | ------------------------------- | ---- | ----------------------------- |
-| previewOutput | [PreviewOutput](#previewoutput) | 是   | 需要移除的PreviewOutput实例。 |
+| 名称           | 类型                             | 必填 | 说明                      |
+| ------------- | ------------------------------- | ---- | ------------------------ |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要移除的CameraOutput实例。 |
 | callback      | AsyncCallback<void\>            | 是   | 回调函数,用于获取结果。      |
 
 **示例:**
 
 ```js
-captureSession.removeOutput(previewOutput, (err) => {
+captureSession.removeOutput(cameraOutput, (err) => {
     if (err) {
-        console.error('Failed to remove the PreviewOutput instance. ${err.message}');
+        console.error('Failed to remove the CameraOutput instance. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the PreviewOutput instance is removed.');
+    console.log('Callback invoked to indicate that the CameraOutput instance is removed.');
 });
 ```
 
 ### removeOutput
 
-removeOutput(previewOutput: PreviewOutput): Promise<void\>
+removeOutput(cameraOutput: CameraOutput): Promise<void\>
 
-在当前会话中,移除一个PreviewOutput实例,通过Promise获取结果。
+从会话中移除[CameraOutput](#cameraoutput),通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称          | 类型                            | 必填 | 说明                          |
-| ------------- | ------------------------------- | ---- | ----------------------------- |
-| previewOutput | [PreviewOutput](#previewoutput) | 是   | 需要移除的PreviewOutput实例。 |
+| 名称           | 类型                             | 必填 | 说明                      |
+| ------------- | ------------------------------- | ---- | ------------------------- |
+| cameraOutput  | [CameraOutput](#cameraOutput)   | 是   | 需要移除的CameraOutput实例。 |
 
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 
 **示例:**
 
 ```js
-captureSession.removeOutput(previewOutput).then(() => {
-    console.log('Promise returned to indicate that the PreviewOutput instance is removed.');
+captureSession.removeOutput(cameraOutput).then(() => {
+    console.log('Promise returned to indicate that the CameraOutput instance is removed.');
 })
 ```
 
-### removeOutput
+### start
 
-removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback<void\>): void
+start\(callback: AsyncCallback<void\>\): void
 
-在当前会话中,移除一个PhotoOutput实例,通过注册回调函数获取结果。
+开始会话工作,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| photoOutput | [PhotoOutput](#photooutput) | 是   | 需要移除的PhotoOutput实例。 |
-| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.removeOutput(photoOutput, (err) => {
+captureSession.start((err) => {
     if (err) {
-        console.error('Failed to remove the PhotoOutput instance. ${err.message}');
+        console.error('Failed to start the session ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the PhotoOutput instance is removed.');
+    console.log('Callback invoked to indicate the session start success.');
 });
 ```
 
-### removeOutput
+### start
 
-removeOutput(photoOutput: PhotoOutput): Promise<void\>
+start\(\): Promise<void\>
 
-在当前会话中,移除一个PhotoOutput实例,通过Promise获取结果。
+开始会话工作,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
-
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| photoOutput | [PhotoOutput](#photooutput) | 是   | 需要移除的PhotoOutput实例。 |
-
-
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
-
 **示例:**
 
 ```js
-captureSession.removeOutput(photoOutput).then(() => {
-    console.log('Promise returned to indicate that the PhotoOutput instance is removed.');
+captureSession.start().then(() => {
+    console.log('Promise returned to indicate the session start success.');
 })
 ```
 
-### removeOutput
+### stop
 
-removeOutput(videoOutput: VideoOutput, callback: AsyncCallback<void\>): void
+stop\(callback: AsyncCallback<void\>\): void
 
-在当前会话中,移除一个VideoOutput实例,通过注册回调函数获取结果。
+停止会话工作,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| videoOutput | [VideoOutput](#videooutput) | 是   | 需要移除的VideoOutput实例。 |
-| callback    | AsyncCallback<void\>        | 是   | 回调函数,用于获取结果。    |
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.removeOutput(videoOutput, (err) => {
+captureSession.stop((err) => {
     if (err) {
-        console.error('Failed to remove the VideoOutput instance. ${err.message}');
+        console.error('Failed to stop the session ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the VideoOutput instance is removed.');
+    console.log('Callback invoked to indicate the session stop success.');
 });
 ```
 
-### removeOutput
+### stop
 
-removeOutput(videoOutput: VideoOutput): Promise<void\>
+stop(): Promise<void\>
 
-在当前会话中,移除一个VideoOutput实例,通过Promise获取结果。
+停止会话工作,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
-
-| 名称        | 类型                        | 必填 | 说明                        |
-| ----------- | --------------------------- | ---- | --------------------------- |
-| videoOutput | [VideoOutput](#videooutput) | 是   | 需要移除的VideoOutput实例。 |
-
-
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
-
 **示例:**
 
 ```js
-captureSession.removeOutput(videoOutput).then(() => {
-    console.log('Promise returned to indicate that the VideoOutput instance is removed.');
+captureSession.stop().then(() => {
+    console.log('Promise returned to indicate the session stop success.');
 })
 ```
 
-### start
+### lockForControl
 
-start\(callback: AsyncCallback<void\>\): void
+lockForControl(callback: AsyncCallback<void\>): void
 
-启动拍照会话,通过注册回调函数获取结果。
+请求以独占方式控制设备的硬件属性[CameraInput](#camerainput),需要调用[unlockForControl](#unlockforcontrol),通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.start((err) => {
+captureSession.lockForControl((err) => {
     if (err) {
-        console.error('Failed to start the session ${err.message}');
+        console.error('Failed to lock. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate the session start success.');
-});
+    console.log('Locked.');
+})
 ```
 
-### start
+### lockForControl
 
-start\(\): Promise<void\>
+lockForControl(): Promise<void\>
 
-启动拍照会话,通过Promise获取结果。
+请求以独占方式控制设备的硬件属性[CameraInput](#camerainput),需要调用[unlockForControl](#unlockforcontrol),通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.start().then(() => {
-    console.log('Promise returned to indicate the session start success.');
+captureSession.lockForControl().then(() => {
+    console.log('Locked.');
 })
 ```
 
-### stop
+### unlockForControl
 
-stop\(callback: AsyncCallback<void\>\): void
+unlockForControl(callback: AsyncCallback<void\>): void
 
-停止拍照会话,通过注册回调函数获取结果。
+控制生效,并放弃对设备配置的排他控制,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.stop((err) => {
+captureSession.unlockForControl((err) => {
     if (err) {
-        console.error('Failed to stop the session ${err.message}');
+        console.error('Failed to unlock. ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate the session stop success.');
-});
+    console.log('Unlocked.');
+})
 ```
 
-### stop
+### unlockForControl
 
-stop(): Promise<void\>
+unlockForControl(): Promise<void\>
 
-停止拍照会话,通过Promise获取结果。
+控制生效,并放弃对设备配置的排他控制,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-captureSession.stop().then(() => {
-    console.log('Promise returned to indicate the session stop success.');
+captureSession.unlockForControl().then(() => {
+    console.log('Unlocked.');
 })
 ```
 
@@ -1807,14 +1930,14 @@ captureSession.stop().then(() => {
 
 release\(callback: AsyncCallback<void\>\): void
 
-释放CaptureSession实例,通过注册回调函数获取结果。
+释放会话资源,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
 | callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
@@ -1833,14 +1956,14 @@ captureSession.release((err) => {
 
 release(): Promise<void\>
 
-释放CaptureSession实例,通过Promise获取结果。
+释放会话资源,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
@@ -1851,900 +1974,2536 @@ captureSession.release().then(() => {
 })
 ```
 
-### on('error')
+### hasFlash
 
-on(type: 'error', callback: ErrorCallback<CaptureSessionError\>): void
+hasFlash(callback: AsyncCallback<boolean\>): void
 
-监听拍照会话的错误事件,通过注册回调函数获取结果。
+检测是否有闪光灯,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                                        | 必填 | 说明                                          |
-| :------- | :---------------------------------------------------------- | :--- | :-------------------------------------------- |
-| type     | string                                                      | 是   | 监听事件,固定为'error',即拍照会话错误事件。 |
-| callback | ErrorCallback<[CaptureSessionError](#capturesessionerror)\> | 是   | 回调函数,用于获取错误信息。                  |
+| 名称      | 类型                     | 必填 | 说明                             |
+| -------- | ----------------------- | ---- | -------------------------------- |
+| callback | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示设备支持闪光灯。 |
 
 **示例:**
 
 ```js
-captureSession.on('error', (captureSessionError) => {
-    console.log('Capture session error code: ' + captureSessionError.code);
+cameraInput.hasFlash((err, status) => {
+    if (err) {
+        console.error('Failed to check whether the device has flash light. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with flash light support status: ' + status);
 })
 ```
 
-##  CaptureSessionErrorCode
+### hasFlash
 
-枚举,拍照会话的错误码。
+hasFlash(): Promise<boolean\>
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+检测是否有闪光灯,通过Promise获取结果。
 
-| 名称          | 值   | 说明       |
-| ------------- | ---- | ---------- |
-| ERROR_UNKNOWN | -1   | 未知错误。 |
+**系统能力:** SystemCapability.Multimedia.Camera.Core
 
-##  CaptureSessionError
+**返回值:**
 
-拍照会话错误对象。
+| 类型               | 说明                                             |
+| ----------------- | ----------------------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持闪光灯。 |
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+**示例:**
 
-| 名称 | 类型                                        | 说明                       |
-| ---- | ------------------------------------------- | -------------------------- |
-| code | [CaptureSessionError](#capturesessionerror) | CaptureSession中的错误码。 |
+```js
+cameraInput.hasFlash().then((status) => {
+    console.log('Promise returned with the flash light support status:' + status);
+})
+```
 
-## camera.createPreviewOutput
+### isFlashModeSupported
 
-createPreviewOutput(surfaceId: string, callback: AsyncCallback<PreviewOutput\>): void
+isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean\>): void
 
-获取PreviewOutput实例,通过注册回调函数获取结果。
+检测闪光灯模式是否支持,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                                            | 必填 | 说明                                  |
-| --------- | ----------------------------------------------- | ---- | ------------------------------------- |
-| surfaceId | string                                          | 是   | 从XComponent组件获取的Surface ID。    |
-| callback  | AsyncCallback<[PreviewOutput](#previewoutput)\> | 是   | 回调函数,用于获取PreviewOutput实例。 |
+| 名称       | 类型                     | 必填 | 说明                               |
+| --------- | ----------------------- | ---- | --------------------------------- |
+| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
+| callback  | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示支持该闪光灯模式。 |
 
 **示例:**
 
 ```js
-camera.createPreviewOutput(("surfaceId"), (err, previewOutput) => {
+cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, (err, status) => {
     if (err) {
-        console.error('Failed to create the PreviewOutput instance. ${err.message}');
+        console.error('Failed to check whether the flash mode is supported. ${err.message}');
         return;
     }
-    console.log('Callback returned with previewOutput instance');
-});
+    console.log('Callback returned with the flash mode support status: ' + status);
+})
 ```
 
-## camera.createPreviewOutput
+### isFlashModeSupported
 
-createPreviewOutput(surfaceId: string): Promise\<PreviewOutput>
+isFlashModeSupported(flashMode: FlashMode): Promise<boolean\>
 
-获取PreviewOutput实例,通过Promise获取结果。
+检测闪光灯模式是否支持,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型   | 必填 | 说明                               |
-| --------- | ------ | ---- | ---------------------------------- |
-| surfaceId | string | 是   | 从XComponent组件获取的Surface ID。 |
+| 名称       | 类型                    | 必填 | 说明            |
+| --------- | ----------------------- | ---- | ------------- |
+| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。 |
 
 **返回值:**
 
-| 类型                                      | 说明                        |
-| ----------------------------------------- | --------------------------- |
-| Promise<[PreviewOutput](#previewoutput)\> | 使用Promise的方式获取结果。 |
+| 类型               | 说明                                                  |
+| ----------------- | ---------------------------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持该闪光灯模式。 |
 
 **示例:**
 
 ```js
-camera.createPreviewOutput("surfaceId").then((previewOutput) => {
-    console.log('Promise returned with the PreviewOutput instance');
+cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO).then((status) => {
+    console.log('Promise returned with flash mode support status.' + status);
 })
 ```
 
-## PreviewOutput
+### setFlashMode
 
-预览输出类。
+setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void\>): void
 
-### release
+设置闪光灯模式,通过注册回调函数获取结果。
 
-release(callback: AsyncCallback<void\>): void
+进行设置之前,需要先检查:
 
-释放PreviewOutput实例,通过注册回调函数获取结果。
+1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。
+2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称       | 类型                     | 必填 | 说明                  |
+| --------- | ----------------------- | ---- | --------------------- |
+| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。         |
+| callback  | AsyncCallback<void\>    | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-previewOutput.release((err) => {
+cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, (err) => {
     if (err) {
-        console.error('Failed to release the PreviewOutput instance ${err.message}');
+        console.error('Failed to set the flash mode  ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
-});
+    console.log('Callback returned with the successful execution of setFlashMode.');
+})
 ```
 
-### release
+### setFlashMode
 
-release(): Promise<void\>
+setFlashMode(flashMode: FlashMode): Promise<void\>
+
+设置闪光灯模式,通过Promise获取结果。
+
+进行设置之前,需要先检查:
 
-释放PreviewOutput实例,通过Promise获取结果。
+1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。
+2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
+**参数:**
+
+| 名称       | 类型                     | 必填 | 说明           |
+| --------- | ----------------------- | ---- | ------------- |
+| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。 |
+
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
-
 **示例:**
 
 ```js
-previewOutput.release().then(() => {
-    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
+cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO).then(() => {
+    console.log('Promise returned with the successful execution of setFlashMode.');
 })
 ```
 
-### on('frameStart')
+### getFlashMode
 
-on(type: 'frameStart', callback: AsyncCallback<void\>): void
+getFlashMode(callback: AsyncCallback<FlashMode\>): void
 
-监听预览帧启动,通过注册回调函数获取结果。
+获取当前设备的闪光灯模式,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                                         |
-| :------- | :------------------- | :--- | :------------------------------------------- |
-| type     | string               | 是   | 监听事件,固定为'frameStart',即帧启动事件。 |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                     |
+| 名称      | 类型                                     | 必填 | 说明                              |
+| -------- | --------------------------------------- | ---- | --------------------------------- |
+| callback | AsyncCallback<[FlashMode](#flashmode)\> | 是   | 回调函数,用于获取当前设备的闪光灯模式。 |
 
 **示例:**
 
 ```js
-previewOutput.on('frameStart', () => {
-    console.log('Preview frame started');
+cameraInput.getFlashMode((err, flashMode) => {
+    if (err) {
+        console.error('Failed to get the flash mode  ${err.message}');
+        return;
+    }
+    console.log('Callback returned with current flash mode: ' + flashMode);
 })
 ```
 
-### on('frameEnd')
+### getFlashMode
 
-on(type: 'frameEnd', callback: AsyncCallback<void\>): void
+getFlashMode(): Promise<FlashMode\>
 
-监听预览帧结束,通过注册回调函数获取结果。
+获取当前设备的闪光灯模式,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
+**返回值:**
 
-| 名称     | 类型                 | 必填 | 说明                                       |
-| :------- | :------------------- | :--- | :----------------------------------------- |
-| type     | string               | 是   | 监听事件,固定为'frameEnd',即帧结束事件。 |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                   |
+| 类型                               | 说明                               |
+| --------------------------------- | --------------------------------- |
+| Promise<[FlashMode](#flashmode)\> | 使用Promise的方式获取当前的闪光灯模式。 |
 
 **示例:**
 
 ```js
-previewOutput.on('frameEnd', () => {
-    console.log('Preview frame ended');
+cameraInput.getFlashMode().then((flashMode) => {
+    console.log('Promise returned with current flash mode : ' + flashMode);
 })
 ```
 
-### on('error')
+### isExposureModeSupported
 
-on(type: 'error', callback: ErrorCallback<PreviewOutputError\>): void
+isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean\>): void;
 
-监听预览输出的错误事件,通过注册回调函数获取结果。
+检测曝光模式是否支持,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                                         | 必填 | 说明                                          |
-| :------- | :----------------------------------------------------------- | :--- | :-------------------------------------------- |
-| type     | string                                                       | 是   | 监听事件,固定为'error',即预览输出错误事件。 |
-| callback | ErrorCallback<[PreviewOutputErrorCode](#previewoutputerrorcode)\> | 是   | 回调函数,用于获取错误信息。                  |
+| 名称      | 类型                           | 必填  | 说明                           |
+| -------- | -------------------------------| ---- | ----------------------------- |
+| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                      |
+| callback | AsyncCallback<boolean\>        | 是   | 回调函数,用于获取是否支持曝光模式。 |
 
 **示例:**
 
 ```js
-previewOutput.on('error', (previewOutputError) => {
-    console.log('Preview output error code: ' + previewOutputError.code);
+cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKEN,(err) => {
+    if (err) {
+        console.log('Failed to check exposure mode supported ${err.message}');
+        return ;
+    }
+    console.log('Callback returned with the successful excution of isExposureModeSupported');
 })
 ```
 
-## PreviewOutputErrorCode
+### isExposureModeSupported
 
-枚举,预览输出的错误码。
+isExposureModeSupported(aeMode: ExposureMode): Promise<boolean\>
+
+检测曝光模式是否支持,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称          | 值   | 说明       |
-| ------------- | ---- | ---------- |
-| ERROR_UNKNOWN | -1   | 未知错误。 |
+**参数:**
 
-##  PreviewOutputError
+| 名称      | 类型                           | 必填  | 说明                           |
+| -------- | -------------------------------| ---- | ----------------------------- |
+| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                      |
 
-预览输出错误对象。
+**返回值:**
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+| 名称               | 说明                             |
+| ----------------- |--------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取支持的曝光模式。 |
 
-| 名称 | 类型                                              | 说明                   |
-| ---- | ------------------------------------------------- | ---------------------- |
-| code | [PreviewOutputErrorCode](#previewoutputerrorcode) | PreviewOutput中的错误码。 |
+**示例:**
+
+```js
+cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then((isSupported) => {
+    console.log('Promise returned with exposure mode supported : ' + isSupported);
+})
+```
 
-## camera.createPhotoOutput
+### getExposureMode
 
-createPhotoOutput(surfaceId: string, callback: AsyncCallback<PhotoOutput\>): void
+getExposureMode(callback: AsyncCallback<ExposureMode\>): void
 
-获取PhotoOutput实例,通过注册回调函数获取结果。
+获取当前曝光模式,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                                        | 必填 | 说明                                |
-| --------- | ------------------------------------------- | ---- | ----------------------------------- |
-| surfaceId | string                                      | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的Surface ID。   |
-| callback  | AsyncCallback<[PhotoOutput](#photooutput)\> | 是   | 回调函数,用于获取PhotoOutput实例。 |
+| 名称      | 类型                            | 必填 | 说明                                     |
+| -------- | -------------------------------| ---- | ---------------------------------------- |
+| callback | AsyncCallback<[ExposureMode](#exposuremode)\>   | 是   | 回调函数,用于获取当前曝光模式。 |
 
 **示例:**
 
 ```js
-camera.createPhotoOutput(("surfaceId"), (err, photoOutput) => {
+cameraInput.getExposureMode((err, exposureMode) => {
     if (err) {
-        console.error('Failed to create the PhotoOutput instance. ${err.message}');
-        return;
+        console.log('Failed to get the exposure mode ${err.message}');
+        return ;
     }
-    console.log('Callback returned with the PhotoOutput instance.');
-});
+    console.log('Callback returned with current exposure mode:' + exposureMode);
+})
 ```
 
-## camera.createPhotoOutput
+### getExposureMode
 
-createPhotoOutput(surfaceId: string): Promise<PhotoOutput\>
+getExposureMode(): Promise<ExposureMode\>
 
-获取PhotoOutput实例,通过Promise获取结果。
+获取当前曝光模式,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
-
-| 名称      | 类型   | 必填 | 说明                              |
-| --------- | ------ | ---- | --------------------------------- |
-| surfaceId | string | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的Surface ID。 |
-
 **返回值:**
 
-| 类型                                  | 说明                                   |
-| ------------------------------------- | -------------------------------------- |
-| Promise<[PhotoOutput](#photooutput)\> | 使用Promise的方式获取PhotoOutput实例。 |
+| 名称                                     | 说明                           |
+| --------------------------------------- |------------------------------- |
+| Promise<[ExposureMode](#exposuremode)\> | 使用Promise的方式获取当前曝光模式。 |
 
 **示例:**
 
 ```js
-camera.createPhotoOutput("surfaceId").then((photoOutput) => {
-    console.log('Promise returned with PhotoOutput instance');
+cameraInput.getExposureMode().then((exposureMode) => {
+    console.log('Promise returned with current exposure mode : ' + exposureMode);
 })
 ```
-## ImageRotation
 
-枚举,图片旋转角度。
+### setExposureMode
+
+setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void\>): void
+
+设置曝光模式,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称         | 值   | 说明            |
-| ------------ | ---- | --------------- |
-| ROTATION_0   | 0    | 图片旋转0度。   |
-| ROTATION_90  | 90   | 图片旋转90度。  |
-| ROTATION_180 | 180  | 图片旋转180度。 |
-| ROTATION_270 | 270  | 图片旋转270度。 |
-
-## QualityLevel
+**参数:**
 
-枚举,图片质量。
+| 名称      | 类型                            | 必填 | 说明                    |
+| -------- | -------------------------------| ---- | ----------------------- |
+| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                |
+| callback | AsyncCallback<void\>           | 是   | 回调函数,用于获取设置结果。 |
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+**示例:**
 
-| 名称                 | 值   | 说明           |
-| -------------------- | ---- | -------------- |
-| QUALITY_LEVEL_HIGH   | 0    | 图片质量高。   |
-| QUALITY_LEVEL_MEDIUM | 1    | 图片质量中等。 |
-| QUALITY_LEVEL_LOW    | 2    | 图片质量差。   |
+```js
+cameraInput.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKEN,(err) => {
+    if (err) {
+        console.log('Failed to set the exposure mode ${err.message}');
+        return ;
+    }
+    console.log('Callback returned with the successful excution of setExposureMode');
+})
+```
 
+### setExposureMode
 
-## PhotoCaptureSetting
+setExposureMode(aeMode: ExposureMode): Promise<void\>
 
-拍摄照片的设置。
+设置曝光模式,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称     | 类型                            | 必填 | 说明           |
-| -------- | ------------------------------- | ---- | -------------- |
-| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。     |
-| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。 |
+**返回值:**
 
+| 名称               | 说明                        |
+| ----------------- |---------------------------- |
+| Promise<void\>    | 使用Promise的方式获取设置结果。 |
 
-## PhotoOutput
+**示例:**
 
-照片输出类。
+```js
+cameraInput.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then(() => {
+    console.log('Promise returned with the successful execution of setExposureMode.');
+})
+```
 
-### capture
+### getMeteringPoint
 
-capture(callback: AsyncCallback<void\>): void
+getMeteringPoint(callback: AsyncCallback<Point\>): void
 
-拍照,通过注册回调函数获取结果。
+查询曝光区域中心点,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称     | 类型                            | 必填 | 说明                       |
+| -------- | -------------------------------| ---- | ------------------------ |
+| callback | AsyncCallback<[Point](#point)\>| 是   | 回调函数,用于获取当前曝光点。 |
 
 **示例:**
 
 ```js
-photoOutput.capture((err) => {
+cameraInput.getMeteringPoint((err, exposurePoint) => {
     if (err) {
-        console.error('Failed to capture the photo ${err.message}');
-        return;
+        console.log('Failed to get the current exposure point ${err.message}');
+        return ;
     }
-    console.log('Callback invoked to indicate the photo capture request success.');
-});
+    console.log('Callback returned with current exposure point:' + exposurePoint);
+})
 ```
 
-### capture
+### getMeteringPoint
 
-capture(setting: PhotoCaptureSetting, callback: AsyncCallback<void\>): void
+getMeteringPoint(): Promise<Point\>
+
+查询曝光区域中心点,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 名称                       | 说明                          |
+| ------------------------- |----------------------------- |
+| Promise<[Point](#point)\> | 使用Promise的方式获取当前曝光点。 |
+
+**示例:**
+
+```js
+cameraInput.getMeteringPoint().then((exposurePoint) => {
+    console.log('Promise returned with current exposure point : ' + exposurePoint);
+})
+```
+
+### setMeteringPoint
 
-根据拍照设置拍照,通过注册回调函数获取结果。
+setMeteringPoint(point: Point, callback: AsyncCallback<point\>): void
+
+设置曝光区域中心点,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                        | 必填 | 说明                     |
-| -------- | ------------------------------------------- | ---- | ------------------------ |
-| setting  | [PhotoCaptureSetting](#photocapturesetting) | 是   | 拍照设置。               |
-| callback | AsyncCallback<void\>                        | 是   | 回调函数,用于获取结果。 |
+| 名称           | 类型                            | 必填 | 说明                 |
+| ------------- | -------------------------------| ---- | ------------------- |
+| exposurePoint | [Point](#point)                | 是   | 曝光点。              |
+| callback      | AsyncCallback<void\>           | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-photoOutput.capture(settings, (err) => {
+var Point1 = {x: 1, y: 1};
+
+cameraInput.setMeteringPoint(Point1,(err) => {
     if (err) {
-        console.error('Failed to capture the photo ${err.message}');
-        return;
+        console.log('Failed to set the exposure point ${err.message}');
+        return ;
     }
-    console.log('Callback invoked to indicate the photo capture request success.');
-});
+    console.log('Callback returned with the successful excution of setMeteringPoint');
+})
 ```
 
-### capture
+### setMeteringPoint
 
-capture(setting?: PhotoCaptureSetting): Promise<void\>
+setMeteringPoint(point: Point): Promise<void\>
 
-根据拍照设置拍照,通过Promise获取结果。
+设置曝光区域中心点,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称    | 类型                                        | 必填 | 说明       |
-| ------- | ------------------------------------------- | ---- | ---------- |
-| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置。 |
+| 名称           | 类型                            | 必填 | 说明                 |
+| ------------- | -------------------------------| ---- | ------------------- |
+| exposurePoint | [Point](#point)                | 是   | 曝光点。              |
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
-
+| 名称               | 说明                     |
+| ----------------- |------------------------ |
+| Promise<void\>    | 使用Promise的方式返回结果。 |
 
 **示例:**
 
 ```js
-photoOutput.capture().then(() => {
-    console.log('Promise returned to indicate that photo capture request success.');
+var Point2 = {x: 2, y: 2};
+
+cameraInput.setMeteringPoint(Point2).then(() => {
+    console.log('Promise returned with the successful execution of setMeteringPoint');
 })
 ```
 
-### release
+### getExposureBiasRange
 
-release(callback: AsyncCallback<void\>): void
+getExposureBiasRange(callback: AsyncCallback<Array<number\>\>): void
 
-释放PhotoOutput实例,通过注册回调函数获取结果。
+查询曝光补偿范围,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称      | 类型                            | 必填 | 说明                           |
+| -------- | -------------------------------| ---- | ----------------------------- |
+| callback | AsyncCallback<Array<number\>\>  | 是   | 回调函数,用于获取补偿范围的数组。 |
 
 **示例:**
 
 ```js
-photoOutput.release((err) => {
+cameraInput.getExposureBiasRange((err, biasRangeArray) => {
     if (err) {
-        console.error('Failed to release the PhotoOutput instance ${err.message}');
-        return;
+        console.log('Failed to get the array of compenstation range ${err.message}');
+        return ;
     }
-    console.log('Callback invoked to indicate that the PhotoOutput instance is released successfully.');
-});
+    console.log('Callback returned with the array of compenstation range: ' + JSON.stringify(biasRangeArray));
+})
 ```
 
-### release
+### getExposureBiasRange
 
-release(): Promise<void\>
+getExposureBiasRange(): Promise<Array<number\>\>
 
-释放PhotoOutput实例,通过Promise获取结果。
+查询曝光补偿范围,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
-
+| 名称               | 说明                                   |
+| ----------------- |-------------------------------------- |
+| Promise<Array<number\>\> | 使用Promise的方式获取曝光补偿范围。 |
 
 **示例:**
 
 ```js
-photoOutput.release().then(() => {
-    console.log('Promise returned to indicate that the PhotoOutput instance is released successfully.');
+cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then((isSupported) => {
+    console.log('Promise returned with exposure mode supported : ' + isSupported);
 })
 ```
 
-### on('captureStart')
+### setExposureBias
 
-on(type: 'captureStart', callback: AsyncCallback<number\>): void
+setExposureBias(exposureBias: number, callback: AsyncCallback<void\>): void
 
-监听拍照启动,通过注册回调函数获取Capture ID。
+设置曝光补偿,通过注册回调函数获取结果。
+
+进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                   | 必填 | 说明                                             |
-| :------- | :--------------------- | :--- | :----------------------------------------------- |
-| type     | string                 | 是   | 监听事件,固定为'captureStart',即拍照启动事件。 |
-| callback | AsyncCallback<number\> | 是   | 使用callback的方式获取Capture ID。               |
+| 名称     | 类型                            | 必填 | 说明                 |
+| -------- | -------------------------------| ---- | ------------------- |
+| exposureBias   | number                   | 是   | 曝光补偿。            |
+| callback | AsyncCallback<void\>           | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-photoOutput.on('captureStart', (err, captureId) => {
-    console.log('photo capture stated, captureId : ' + captureId);
+cameraInput.setExposureBias(-4,(err) => {
+    if (err) {
+        console.log('Failed to set the exposure bias ${err.message}');
+        return ;
+    }
+    console.log('Callback returned with the successful excution of setExposureBias');
 })
 ```
 
-### on('frameShutter')
+### setExposureBias
 
-on(type: 'frameShutter', callback: AsyncCallback<FrameShutterInfo\>): void
+setExposureBias(exposureBias: number): Promise<void\>
 
-监听快门,通过注册回调函数获取结果。
+设置曝光补偿,通过Promise获取结果。
+
+进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                                  | 必填 | 说明                                           |
-| :------- | :---------------------------------------------------- | :--- | :--------------------------------------------- |
-| type     | string                                                | 是   | 监听事件,固定为'frameShutter',即帧刷新事件。 |
-| callback | AsyncCallback<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。                   |
+| 名称            | 类型      | 必填 | 说明        |
+| -------------- | --------- | ---- | --------- |
+| exposureBias   | number    | 是   | 曝光补偿。  |
+
+**返回值:**
+
+| 名称               | 说明                     |
+| ----------------- |------------------------- |
+| Promise<void\>    | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-photoOutput.on('frameShutter', (frameShutterInfo) => {
-    console.log('photo capture end, captureId : ' + frameShutterInfo.captureId);
-    console.log('Timestamp for frame : ' + frameShutterInfo.timestamp);
+cameraInput.setExposureBias(-4).then(() => {
+    console.log('Promise returned with the successful execution of setExposureBias.');
 })
 ```
 
-### on('captureEnd')
+### getExposureValue
 
-on(type: 'captureEnd', callback: AsyncCallback<CaptureEndInfo\>): void
+getExposureValue(callback: AsyncCallback<number\>): void
 
-监听拍照停止,通过注册回调函数获取结果。
+查询当前曝光值,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                              | 必填 | 说明                                           |
-| :------- | :------------------------------------------------ | :--- | :--------------------------------------------- |
-| type     | string                                            | 是   | 监听事件,固定为'captureEnd',即拍照停止事件。 |
-| callback | AsyncCallback<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                   |
+| 名称     | 类型                      | 必填 | 说明                   |
+| -------- | ------------------------| ---- | --------------------- |
+| callback | AsyncCallback<number\>  | 是   | 回调函数,用于获取曝光值。 |
 
 **示例:**
 
 ```js
-photoOutput.on('captureEnd', (captureEndInfo) => {
-    console.log('photo capture end, captureId : ' + captureEndInfo.captureId);
-    console.log('frameCount : ' + captureEndInfo.frameCount);
+cameraInput.getExposureValue((err, exposureValue) => {
+    if (err) {
+        console.log('Failed to get the exposure value ${err.message}');
+        return ;
+    }
+    console.log('Callback returned with the exposure value: ' + exposureValue);
 })
 ```
 
-### on('error')
+### getExposureValue
 
-on(type: 'error', callback: ErrorCallback<PhotoOutputError\>): void
+getExposureValue(): Promise<number\>
 
-监听拍照的错误事件,通过注册回调函数获取结果。
+查询当前曝光值,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
+**返回值:**
 
-| 名称     | 类型                                                  | 必填 | 说明                                      |
-| :------- | :---------------------------------------------------- | :--- | :---------------------------------------- |
-| type     | string                                                | 是   | 监听事件,固定为'error',即拍照错误事件。 |
-| callback | ErrorCallback<[PhotoOutputError](#photooutputerror)\> | 是   | 回调函数,用于获取错误信息。              |
+| 名称               | 说明                       |
+| ----------------- |-------------------------- |
+| Promise<number\>  | 使用Promise的方式获取曝光值。 |
 
 **示例:**
 
 ```js
-photoOutput.on('error', (photoOutputError) => {
-    console.log('Photo output error code: ' + photoOutputError.code);
+cameraInput.getExposureValue().then((exposureValue) => {
+    console.log('Promise returned with exposure value: ' + exposureValue);
 })
 ```
 
-## FrameShutterInfo
+### isFocusModeSupported
+
+isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean\>): void
 
-快门事件信息。
+检测对焦模式是否支持,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称      | 类型   | 必填 | 说明                          |
-| --------- | ------ | ---- | ----------------------------- |
-| captureId | number | 是   | CaptureId,本次拍摄动作的ID。 |
-| timestamp | number | 是   | 时间戳。                      |
+**参数:**
 
-## CaptureEndInfo
+| 名称      | 类型                     | 必填 | 说明                              |
+| -------- | ----------------------- | ---- | -------------------------------- |
+| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |
+| callback | AsyncCallback<boolean\> | 是   | 回调函数,返回true表示支持该焦距模式。 |
 
-拍照停止信息。
+**示例:**
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+```js
+cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO, (err, status) => {
+    if (err) {
+        console.error('Failed to check whether the focus mode is supported. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the focus mode support status: ' + status);
+})
+```
 
-| 名称       | 类型   | 必填 | 说明                          |
-| ---------- | ------ | ---- | ----------------------------- |
-| captureId  | number | 是   | CaptureId,本次拍摄动作的ID。 |
-| frameCount | number | 是   | 帧计数。                      |
+### isFocusModeSupported
 
-## PhotoOutputErrorCode
+isFocusModeSupported(afMode: FocusMode): Promise<boolean\>
 
-枚举,拍照输出的错误码。
+检测对焦模式是否支持,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称          | 值   | 说明       |
-| ------------- | ---- | ---------- |
-| ERROR_UNKNOWN | -1   | 未知错误。 |
+**参数:**
+
+| 名称    | 类型                     | 必填 | 说明           |
+| ------ | ----------------------- | ---- | ------------- |
+| afMode | [FocusMode](#focusmode) | 是   | 指定的焦距模式。 |
 
-##  PhotoOutputError
+**返回值:**
 
-拍照输出错误对象。
+| 类型               | 说明                                                |
+| ----------------- | --------------------------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果,返回true表示设备支持该焦距模式。 |
 
-**系统能力:** SystemCapability.Multimedia.Camera.Core
+**示例:**
 
-| 名称 | 类型                                  | 说明                    |
-| ---- | ------------------------------------- | ----------------------- |
-| code | [PhotoOutputError](#photooutputerror) | PhotoOutput中的错误码。 |
+```js
+cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO).then((status) => {
+    console.log('Promise returned with focus mode support status.' + status);
+})
+```
 
-## camera.createVideoOutput
+### setFocusMode
+
+setFocusMode(afMode: FocusMode, callback: AsyncCallback<void\>): void
 
-createVideoOutput(surfaceId: string, callback: AsyncCallback<VideoOutput\>): void
+设置对焦模式,通过注册回调函数获取结果。
 
-获取VideoOutput实例,通过注册回调函数获取结果。
+进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型                                        | 必填 | 说明                                |
-| --------- | ------------------------------------------- | ---- | ----------------------------------- |
-| surfaceId | string                                      | 是   | 从VideoRecorder获取的Surface ID。   |
-| callback  | AsyncCallback<[VideoOutput](#videooutput)\> | 是   | 回调函数,用于获取VideoOutput实例。 |
+| 名称      | 类型                     | 必填 | 说明                 |
+| -------- | ----------------------- | ---- | ------------------- |
+| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。       |
+| callback | AsyncCallback<void\>    | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-camera.createVideoOutput(("surfaceId"), (err, videoOutput) => {
+cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO, (err) => {
     if (err) {
-        console.error('Failed to create the VideoOutput instance. ${err.message}');
+        console.error('Failed to set the focus mode  ${err.message}');
         return;
     }
-    console.log('Callback returned with the VideoOutput instance');
-});
+    console.log('Callback returned with the successful execution of setFocusMode.');
+})
 ```
 
-## camera.createVideoOutput
+### setFocusMode
+
+setFocusMode(afMode: FocusMode): Promise<void\>
 
-createVideoOutput(surfaceId: string): Promise<VideoOutput\>
+设置对焦模式,通过Promise获取结果。
 
-获取VideoOutput实例,通过Promise获取结果。
+进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称      | 类型   | 必填 | 说明                              |
-| --------- | ------ | ---- | --------------------------------- |
-| surfaceId | string | 是   | 从VideoRecorder获取的Surface ID。 |
+| 名称    | 类型                     | 必填 | 说明           |
+| ------ | ----------------------- | ---- | ------------- |
+| afMode | [FocusMode](#focusmode) | 是   | 指定的焦距模式。 |
 
 **返回值:**
 
-| 类型                                  | 说明                                   |
-| ------------------------------------- | -------------------------------------- |
-| Promise<[VideoOutput](#videooutput)\> | 使用Promise的方式获取VideoOutput实例。 |
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
+| Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-camera.createVideoOutput("surfaceId"
-).then((videoOutput) => {
-    console.log('Promise returned with the VideoOutput instance');
+cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO).then(() => {
+    console.log('Promise returned with the successful execution of setFocusMode.');
 })
 ```
 
-## VideoOutput
-
-视频输出类。
-
-### start
+### getFocusMode
 
-start(callback: AsyncCallback<void\>): void
+getFocusMode(callback: AsyncCallback<FocusMode\>): void
 
-开始拍摄视频,通过注册回调函数获取结果。
+获取当前的对焦模式,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称      | 类型                                     | 必填 | 说明                             |
+| -------- | --------------------------------------- | ---- | ------------------------------- |
+| callback | AsyncCallback<[FocusMode](#focusmode)\> | 是   | 回调函数,用于获取当前设备的焦距模式。 |
 
 **示例:**
 
 ```js
-videoOutput.start((err) => {
+cameraInput.getFocusMode((err, afMode) => {
     if (err) {
-        console.error('Failed to start the video output ${err.message}');
+        console.error('Failed to get the focus mode  ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate the video output start success.');
-});
+    console.log('Callback returned with current focus mode: ' + afMode);
+})
 ```
 
-### start
+### getFocusMode
 
-start(): Promise<void\>
+getFocusMode(): Promise<FocusMode\>
 
-开始拍摄视频,通过Promise获取结果。
+获取当前的对焦模式,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
-
+| 类型                 | 说明                             |
+| ------------------- | -------------------------------- |
+| Promise<FocusMode\> | 使用Promise的方式获取当前的焦距模式。 |
 
 **示例:**
 
 ```js
-videoOutput.start().then(() => {
-    console.log('Promise returned to indicate that start method execution success.');
+cameraInput.getFocusMode().then((afMode) => {
+    console.log('Promise returned with current focus mode : ' + afMode);
 })
 ```
 
-### stop
+### setFocusPoint
 
-stop(callback: AsyncCallback<void\>): void
+setFocusPoint(point: Point, callback: AsyncCallback<void\>): void
 
-停止拍摄视频,通过注册回调函数获取结果。
+设置焦点,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称      | 类型                     | 必填 | 说明                 |
+| -------- | ----------------------- | ---- | ------------------- |
+| point    | [Point](#Point)         | 是   | 焦点。                |
+| callback | AsyncCallback<void\>    | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-videoOutput.stop((err) => {
+var Point1 = {x: 1, y: 1};
+
+cameraInput.setFocusPoint(Point1, (err) => {
     if (err) {
-        console.error('Failed to stop the video output ${err.message}');
+        console.error('Failed to set the focus point  ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate the video output stop success.');
-});
+    console.log('Callback returned with the successful execution of setFocusPoint.');
+})
 ```
 
-### stop
+### setFocusPoint
 
-stop(): Promise<void\>
+setFocusPoint(point: Point): Promise<void\>
 
-停止拍摄视频,通过Promise获取结果。
+设置焦点,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
+| 类型           | 说明                      |
+| -------------- | ----------------------- |
 | Promise<void\> | 使用Promise的方式获取结果。 |
 
 **示例:**
 
 ```js
-videoOutput.start().then(() => {
-    console.log('Promise returned to indicate that stop method execution success.');
+var Point2 = {x: 2, y: 2};
+
+cameraInput.setFocusPoint(Point2).then(() => {
+    console.log('Promise returned with the successful execution of setFocusPoint.');
 })
 ```
 
-### release
+### getFocusPoint
 
-release(callback: AsyncCallback<void\>): void
+getFocusPoint(callback: AsyncCallback<Point\>): void
 
-释放VideoOutput实例,通过注册回调函数获取结果。
+查询焦点,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                     |
-| -------- | -------------------- | ---- | ------------------------ |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+| 名称      | 类型                               | 必填 | 说明                     |
+| -------- | ---------------------------------- | ---- | ----------------------- |
+| callback | AsyncCallback<[Point](#point)\>    | 是   | 回调函数,用于获取当前焦点。 |
 
 **示例:**
 
 ```js
-videoOutput.release((err) => {
+cameraInput.getFocusPoint((err, point) => {
     if (err) {
-        console.error('Failed to release the VideoOutput instance ${err.message}');
+        console.error('Failed to get the current focus point ${err.message}');
         return;
     }
-    console.log('Callback invoked to indicate that the VideoOutput instance is released successfully.');
-});
+    console.log('Callback returned with the current focus point: ' + JSON.stringify(point));
+})
 ```
 
-### release
+### getFocusPoint
 
-release(): Promise<void\>
+getFocusPoint(): Promise<Point\>
 
-释放VideoOutput实例,通过Promise获取结果。
+查询焦点,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **返回值:**
 
-| 类型           | 说明                        |
-| -------------- | --------------------------- |
-| Promise<void\> | 使用Promise的方式获取结果。 |
-
+| 类型             | 说明                        |
+| --------------- | --------------------------- |
+| Promise<Point\> | 使用Promise的方式获取当前焦点。 |
 
 **示例:**
 
 ```js
-videoOutput.release().then(() => {
-    console.log('Promise returned to indicate that the VideoOutput instance is released successfully.');
+cameraInput.getFocusPoint().then((point) => {
+    console.log('Promise returned with the current focus point: ' + JSON.stringify(point));
 })
 ```
 
-### on('frameStart')
+### getFocalLength
 
-on(type: 'frameStart', callback: AsyncCallback<void\>): void
+getFocalLength(callback: AsyncCallback<number\>): void
 
-监听视频帧开启,通过注册回调函数获取结果。
+查询焦距值,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                 | 必填 | 说明                                             |
-| :------- | :------------------- | :--- | :----------------------------------------------- |
-| type     | string               | 是   | 监听事件,固定为'frameStart',即视频帧开启事件。 |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                         |
+| 名称      | 类型                       | 必填 | 说明                     |
+| -------- | ------------------------- | ---- | ----------------------- |
+| callback | AsyncCallback<number\>    | 是   | 回调函数,用于获取当前焦距。 |
 
 **示例:**
 
 ```js
-videoOutput.on('frameStart', () => {
-    console.log('Video frame started');
+cameraInput.getFocalLength((err, focalLength) => {
+    if (err) {
+        console.error('Failed to get the current focal length  ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the current focal length: ' + focalLength);
 })
 ```
 
-### on('frameEnd')
+### getFocalLength
 
-on(type: 'frameEnd', callback: AsyncCallback<void\>): void
+getFocalLength(): Promise<number\>
 
-监听视频帧结束,通过注册回调函数获取结果。
+查询焦距值,通过Promise获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-**参数:**
+**返回值:**
 
-| 名称     | 类型                 | 必填 | 说明                                           |
-| :------- | :------------------- | :--- | :--------------------------------------------- |
-| type     | string               | 是   | 监听事件,固定为'frameEnd',即视频帧结束事件。 |
-| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                       |
+| 类型              | 说明                     |
+| ---------------- | ----------------------- |
+| Promise<number\> | 使用Promise的方式获取焦距。 |
 
 **示例:**
 
 ```js
-videoOutput.on('frameEnd', () => {
-    console.log('Video frame ended');
+cameraInput.getFocalLength().then((focalLength) => {
+    console.log('Promise returned with the current focal length: ' + focalLength);
 })
 ```
 
-### on('error')
+### getZoomRatioRange
 
-on(type: 'error', callback: ErrorCallback<VideoOutputError\>): void
+getZoomRatioRange\(callback: AsyncCallback<Array<number\>\>\): void
 
-监听视频输出的错误事件,通过注册回调函数获取结果。
+获取支持的变焦范围,通过注册回调函数获取结果。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 **参数:**
 
-| 名称     | 类型                                             | 必填 | 说明                                          |
-| :------- | :----------------------------------------------- | :--- | :-------------------------------------------- |
-| type     | string                                           | 是   | 监听事件,固定为'error',即视频输出错误事件。 |
-| callback | Callback<[VideoOutputError](#videooutputerror)\> | 是   | 回调函数,用于获取错误信息。                  |
+| 名称      | 类型                            | 必填 | 说明                 |
+| -------- | ------------------------------ | ---- | ------------------- |
+| callback | AsyncCallback<Array<number\>\> | 是   | 回调函数,用于获取结果。 |
 
 **示例:**
 
 ```js
-videoOutput.on('error', (VideoOutputError) => {
-    console.log('Video output error code: ' + VideoOutputError.code);
-})
-```
-
+cameraInput.getZoomRatioRange((err, zoomRatioRange) => {
+    if (err) {
+        console.error('Failed to get the zoom ratio range. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with zoom ratio range: ' + zoomRatioRange.length);
+})
+```
+
+### getZoomRatioRange
+
+getZoomRatioRange\(\): Promise<Array<number\>\>
+
+获取支持的变焦范围,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                      | 说明                        |
+| ------------------------ | --------------------------- |
+| Promise<Array<number\>\> | 使用Promise的方式获取变焦范围。 |
+
+**示例:**
+
+```js
+cameraInput.getZoomRatioRange().then((zoomRatioRange) => {
+    console.log('Promise returned with zoom ratio range: ' + zoomRatioRange.length);
+})
+```
+
+### setZoomRatio
+
+setZoomRatio(zoomRatio: number, callback: AsyncCallback<void\>): void
+
+设置变焦比,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称       | 类型                  | 必填 | 说明                 |
+| --------- | -------------------- | ---- | ------------------- |
+| zoomRatio | number               | 是   | 可变焦距比。           |
+| callback  | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+cameraInput.setZoomRatio(1, (err) => {
+    if (err) {
+        console.error('Failed to set the zoom ratio value ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the successful execution of setZoomRatio.');
+})
+```
+
+### setZoomRatio
+
+setZoomRatio(zoomRatio: number): Promise<void\>
+
+设置变焦比,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称       | 类型    | 必填 | 说明       |
+| --------- | ------ | ---- | --------- |
+| zoomRatio | number | 是   | 可变焦距比。 |
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+cameraInput.setZoomRatio(1).then(() => {
+    console.log('Promise returned with the successful execution of setZoomRatio.');
+})
+```
+
+### getZoomRatio
+
+getZoomRatio(callback: AsyncCallback<number\>): void
+
+获取当前的变焦比,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                   | 必填 | 说明                  |
+| -------- | ---------------------- | ---- | ------------------- |
+| callback | AsyncCallback<number\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+cameraInput.getZoomRatio((err, zoomRatio) => {
+    if (err) {
+        console.error('Failed to get the zoom ratio ${err.message}');
+        return;
+    }
+    console.log('Callback returned with current zoom ratio: ' + zoomRatio);
+})
+```
+
+### getZoomRatio
+
+getZoomRatio(): Promise<number\>
+
+获取当前的变焦比,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型              | 说明                     |
+| ---------------- | ----------------------- |
+| Promise<number\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+cameraInput.getZoomRatio().then((zoomRatio) => {
+    console.log('Promise returned with current zoom ratio : ' + zoomRatio);
+})
+```
+
+### isVideoStablizationModeSupported
+
+isVideoStablizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback<boolean\>): void
+
+查询是否支持指定的视频防抖模式,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                              | 必填 | 说明                             |
+| -------- | ------------------------------------------------- | ---- | ------------------------------ |
+| vsMode   | [VideoStabilizationMode](#videostabilizationMode) | 是   | 视频防抖模式。                    |
+| callback | AsyncCallback<boolean\>                           | 是   | 回调函数,返回视频防抖模式是否支持。  |
+
+**示例:**
+
+```js
+captureSession.isVideoStablizationModeSupported(camera.VideoStabilizationMode.OFF, (err, isSupported) => {
+    if (err) {
+        console.error('Failed to check whether video stabilization mode supported. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the successful execution of isVideoStabilizationModeSupported: ' + status);
+})
+```
+
+### isVideoStablizationModeSupported
+
+isVideoStablizationModeSupported(vsMode: VideoStabilizationMode): Promise<boolean\>
+
+查询是否支持指定的视频防抖模式,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型               | 说明                                           |
+| ----------------- | --------------------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果,返回视频防抖模式是否支持。 |
+
+**示例:**
+
+```js
+captureSession.isVideoStablizationModeSupported(camera.VideoStabilizationMode.OFF).then((isSupported) => {
+    console.log('Promise returned with video stabilization mode supported: ' + isSupported);
+})
+```
+
+### getActiveVideoStabilizationMode
+
+getActiveVideoStabilizationMode(callback: AsyncCallback<VideoStabilizationMode\>): void
+
+查询当前正在使用的视频防抖模式,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                       | 必填 | 说明                            |
+| -------- | ----------------------------------------- | ---- | ------------------------------ |
+| callback | AsyncCallback<VideoStabilizationMode\>    | 是   | 回调函数,返回视频防抖是否正在使用。  |
+
+**示例:**
+
+```js
+captureSession.getActiveVideoStabilizationMode((err, vsMode) => {
+    if (err) {
+        console.error('Failed to get active video stabilization mode ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the successful execution of getActiveVideoStabilizationMode.');
+})
+```
+
+### getActiveVideoStabilizationMode
+
+getActiveVideoStabilizationMode(): Promise<VideoStabilizationMode\>
+
+查询当前正在使用的视频防抖模式,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                              | 说明                                              |
+| -------------------------------- | ------------------------------------------------- |
+| Promise<VideoStabilizationMode\> | 使用Promise的方式获取结果,返回视频防抖当前是否正在使用。  |
+
+**示例:**
+
+```js
+captureSession.getActiveVideoStabilizationMode().then((vsMode) => {
+    console.log('Promise returned with the current video stabilization mode: ' + vsMode);
+})
+```
+
+### setVideoStabilizationMode
+
+setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback<void\>): void
+
+设置视频防抖模式,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                              | 必填 | 说明                    |
+| -------- | ------------------------------------------------- | ---- | --------------------- |
+| mode     | [VideoStabilizationMode](#videostabilizationmode) | 是   | 需要设置的视频防抖模式。   |
+| callback | AsyncCallback<void\>                              | 是   | 回调函数。     |
+
+**示例:**
+
+```js
+captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF, (err) => {
+    if (err) {
+        console.error('Failed to set the video stabilization mode ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the successful execution of setVideoStabilizationMode.');
+})
+```
+
+### setVideoStabilizationMode
+
+setVideoStabilizationMode(mode: VideoStabilizationMode): Promise<void\>
+
+设置视频防抖,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                                               |
+| -------------- | ------------------------------------------------- |
+| Promise<void\> | 使用Promise的方式获取结果,返回设置的视频防抖模式的结果。  |
+
+**示例:**
+
+```js
+captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF).then(() => {
+    console.log('Promise returned with the successful execution of setVideoStabilizationMode.');
+})
+```
+
+### on('focusStateChange')
+
+on(type: 'focusStateChange', callback: AsyncCallback<FocusState\>): void
+
+监听焦距的状态变化,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                      | 必填 | 说明                       |
+| -------- | ----------------------------------------- | ---- | ------------------------ |
+| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',即焦距状态变化事件。 |
+| callback | AsyncCallback<[FocusState](#focusstate)\> | 是   | 回调函数,用于获取焦距状态。  |
+
+**示例:**
+
+```js
+cameraInput.on('focusStateChange', (focusState) => {
+    console.log('Focus state  : ' + focusState);
+})
+```
+
+### on('exposureStateChange')
+
+on(type: 'exposureStateChange', callback: AsyncCallback<ExposureState\>): void
+
+监听曝光的状态变化,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                      | 必填 | 说明                                             |
+| -------- | ----------------------------------------- | ---- | ---------------------------------------------- |
+| type     | string                             | 是   |   监听事件,固定为'exposureStateChange',即曝光状态变化事件。|
+| callback | AsyncCallback<[ExposureState](#exposureState)\> | 是   |  回调函数,用于获取曝光状态。                 |
+
+**示例:**
+
+```js
+cameraInput.on('exposureStateChange', (exposureState) => {
+    console.log('Exposuer state  : ' + exposureState);
+})
+```
+
+### on('error')
+
+on(type: 'error', callback: ErrorCallback<CaptureSessionError\>): void
+
+监听拍照会话的错误事件,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                          | 必填 | 说明                           |
+| -------- | ----------------------------------------------------------- | ---- | ------------------------------ |
+| type     | string                                                      | 是   | 监听事件,固定为'error',即拍照会话错误事件。 |
+| callback | ErrorCallback<[CaptureSessionError](#capturesessionerror)\> | 是   | 回调函数,用于获取错误信息。        |
+
+**示例:**
+
+```js
+captureSession.on('error', (captureSessionError) => {
+    console.log('Capture session error code: ' + captureSessionError.code);
+})
+```
+
+## CaptureSessionErrorCode
+
+枚举,会话错误类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                           | 值   | 说明      |
+| ----------------------------- | ---- | -------- |
+| ERROR_UNKNOWN                 | -1   | 未知错误。 |
+| ERROR_INSUFFICIENT_RESOURCES  | 0    | 资源不足。 |
+| ERROR_TIMEOUT                 | 1    | 超时。 |
+
+## CaptureSessionError
+
+会话错误码。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称 | 类型                                        | 说明                       |
+| ---- | ------------------------------------------- | -------------------------- |
+| code | [CaptureSessionError](#capturesessionerror) | CaptureSession中的错误码。 |
+
+## CameraOutput
+
+会话中[CaptureSession](#capturesession)使用的输出信息,output的基类。
+
+### release
+
+release(callback: AsyncCallback<void\>): void
+
+释放输出资源,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.release((err) => {
+    if (err) {
+        console.error('Failed to release the PreviewOutput instance ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
+});
+```
+
+### release
+
+release(): Promise<void\>
+
+释放输出资源,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.release().then(() => {
+    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
+})
+```
+
+## PreviewOutput
+
+预览输出类。继承[CameraOutput](#cameraOutput)
+
+### addDeferredSurface
+
+addDeferredSurface(surfaceId: string, callback: AsyncCallback<void\>): void
+
+在previewOutput生成之后添加surface,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                   | 必填 | 说明                                                                  |
+| -------- | -------------------- | ---- | -------------------------------------------------------------------- |
+| surfaceId| string     | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)组件获取的SurfaceID。|
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                                                  |
+
+**示例:**
+
+```js
+previewOutput.addDeferredSurface('surfaceId', (err) => {
+    if (err) {
+        console.error('Failed to add deferredSurface. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with deferredSurface added.');
+})
+```
+
+### addDeferredSurface
+
+addDeferredSurface(surfaceId: string): Promise<void\>
+
+在previewOutput生成之后添加surface,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型         | 必填 | 说明                                                                            |
+| -------- | -----------| ---- | ------------------------------------------------------------------------------ |
+| surfaceId| string     | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)组件获取的SurfaceID。|
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.addDeferredSurface('surfaceId').then(() => {
+    console.log('Promise returned with deferredSurface added.');
+})
+```
+
+### start
+
+start(callback: AsyncCallback<void\>): void
+
+开始输出预览流,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.start((err) => {
+    if (err) {
+        console.error('Failed to start the previewOutput. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with previewOutput started.');
+})
+```
+
+### start
+
+start(): Promise<void\>
+
+开始输出预览流,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.start().then(() => {
+    console.log('Promise returned with previewOutput started.');
+})
+```
+
+### stop
+
+stop(callback: AsyncCallback<void\>): void
+
+停止输出预览流,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.stop((err) => {
+    if (err) {
+        console.error('Failed to stop the previewOutput. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with previewOutput stoped.');
+})
+```
+
+### stop
+
+stop(): Promise<void\>
+
+停止输出预览流,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+previewOutput.stop().then(() => {
+    console.log('Callback returned with previewOutput stoped.');
+})
+```
+
+### on('frameStart')
+
+on(type: 'frameStart', callback: AsyncCallback<void\>): void
+
+监听预览帧启动,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                                     |
+| -------- | -------------------- | ---- | --------------------------------------- |
+| type     | string               | 是   | 监听事件,固定为'frameStart',即帧启动事件。 |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                     |
+
+**示例:**
+
+```js
+previewOutput.on('frameStart', () => {
+    console.log('Preview frame started');
+})
+```
+
+### on('frameEnd')
+
+on(type: 'frameEnd', callback: AsyncCallback<void\>): void
+
+监听预览帧结束,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                                  |
+| -------- | -------------------- | ---- | ------------------------------------- |
+| type     | string               | 是   | 监听事件,固定为'frameEnd',即帧结束事件。 |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                  |
+
+**示例:**
+
+```js
+previewOutput.on('frameEnd', () => {
+    console.log('Preview frame ended');
+})
+```
+
+### on('error')
+
+on(type: 'error', callback: ErrorCallback<PreviewOutputError\>): void
+
+监听预览输出的错误事件,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                               | 必填 | 说明                       |
+| -------- | ----------------------------------------------------------------- | ---- | ------------------------ |
+| type     | string                                               | 是   | 监听事件,固定为'error',即预览输出错误事件。|
+| callback | ErrorCallback<[PreviewOutputErrorCode](#previewoutputerrorcode)\> | 是   | 回调函数,用于获取错误信息。  |
+
+**示例:**
+
+```js
+previewOutput.on('error', (previewOutputError) => {
+    console.log('Preview output error code: ' + previewOutputError.code);
+})
+```
+
+## PreviewOutputErrorCode
+
+枚举,预览输出错误类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称          | 值   | 说明       |
+| ------------- | ---- | -------- |
+| ERROR_UNKNOWN | -1   | 未知错误。 |
+
+## PreviewOutputError
+
+预览输出错误码。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称 | 类型                                              | 说明                   |
+| ---- | ------------------------------------------------- | ---------------------- |
+| code | [PreviewOutputErrorCode](#previewoutputerrorcode) | PreviewOutput中的错误码。 |
+
+## ImageRotation
+
+枚举,图片旋转角度。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称          | 值   | 说明           |
+| ------------ | ---- | ------------- |
+| ROTATION_0   | 0    | 图片旋转0度。   |
+| ROTATION_90  | 90   | 图片旋转90度。  |
+| ROTATION_180 | 180  | 图片旋转180度。 |
+| ROTATION_270 | 270  | 图片旋转270度。 |
+
+## Location
+
+图片地理位置信息。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称          | 类型   | 必填 |说明         |
+| ------------ | ------ | --- |------------ |
+| latitude     | number | 是  |纬度(度)。    |
+| longitude    | number | 是  |经度(度)。    |
+| altitude     | number | 是  |海拔(米)。    |
+
+## QualityLevel
+
+枚举,图片质量。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                  | 值   | 说明         |
+| -------------------- | ---- | ------------ |
+| QUALITY_LEVEL_HIGH   | 0    | 图片质量高。   |
+| QUALITY_LEVEL_MEDIUM | 1    | 图片质量中等。 |
+| QUALITY_LEVEL_LOW    | 2    | 图片质量差。   |
+
+
+## PhotoCaptureSetting
+
+拍摄照片的设置。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称      | 类型                            | 必填  | 默认值             | 说明              |
+| -------- | ------------------------------- | ---- | ----------------- | -----------------|
+| quality  | [QualityLevel](#qualitylevel)   | 否   | QUALITY_LEVEL_HIGH| 图片质量。         |
+| rotation | [ImageRotation](#imagerotation) | 否   | ROTATION_0        | 图片旋转角度。      |
+| location | [Location](#location)           | 否   | (0,0,0)           | 图片地理位置信息。   |
+| mirror   | boolean                         | 否   | false             |镜像使能开关(默认关)。 |
+
+## PhotoOutput
+
+拍照会话中使用的输出信息。
+
+### getDefaultCaptureSetting
+
+getDefaultCaptureSetting(callback: AsyncCallback<PhotoCaptureSetting\>): void
+
+获取默认拍照参数,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 说明                  |
+| -------- | ----------------------------------------------------------- | ---- | -------------------- |
+| callback | AsyncCallback<[PhotoCaptureSetting](#photocapturesetting)\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+photoOutput.getDefaultCaptureSetting((err, photocapturesetting) => {
+    if (err) {
+        console.error('Failed to get the defaultCaptureSetting. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with an array of defaultCaptureSetting.');
+})
+```
+
+### getDefaultCaptureSetting
+
+getDefaultCaptureSetting(): Promise<PhotoCaptureSetting\>
+
+获取默认拍照参数,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                                                   | 说明                     |
+| ----------------------------------------------------- | ----------------------- |
+| Promise<[PhotoCaptureSetting](#photocapturesetting)\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+photoOutput.getDefaultCaptureSetting().then((photocapturesetting) => {
+    console.log('Callback returned with an array of defaultCaptureSetting.');
+})
+```
+
+### capture
+
+capture(callback: AsyncCallback<void\>): void
+
+以默认设置触发一次拍照,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+photoOutput.capture((err) => {
+    if (err) {
+        console.error('Failed to capture the photo ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate the photo capture request success.');
+});
+```
+
+### capture
+
+capture(setting: PhotoCaptureSetting, callback: AsyncCallback<void\>): void
+
+以指定参数触发一次拍照,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                         | 必填 | 说明                  |
+| -------- | ------------------------------------------- | ---- | -------------------- |
+| setting  | [PhotoCaptureSetting](#photocapturesetting) | 是   | 拍照设置。             |
+| callback | AsyncCallback<void\>                        | 是   | 回调函数,用于获取结果。  |
+
+**示例:**
+
+```js
+let settings:PhotoCaptureSetting = {
+    quality = 1,
+    rotation = 0
+}
+photoOutput.capture(settings, (err) => {
+    if (err) {
+        console.error('Failed to capture the photo ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate the photo capture request success.');
+});
+```
+
+### capture
+
+capture(setting?: PhotoCaptureSetting): Promise<void\>
+
+以指定参数触发一次拍照,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                         | 必填 | 说明      |
+| ------- | ------------------------------------------- | ---- | -------- |
+| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置。 |
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ------------------------ |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+
+**示例:**
+
+```js
+photoOutput.capture().then(() => {
+    console.log('Promise returned to indicate that photo capture request success.');
+})
+```
+
+### isMirrorSupported
+
+isMirrorSupported(callback: AsyncCallback<boolean\>): void
+
+查询是否支持镜像拍照,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                              | 必填 | 说明                         |
+| -------- | ------------------------------------------------- | ---- | -------------------------- |
+| callback | AsyncCallback<boolean\>                           | 是   | 回调函数,返回是否支持镜像拍照。  |
+
+**示例:**
+
+```js
+captureSession.isMirrorSupported((err, isSupported) => {
+    if (err) {
+        console.error('Failed to check mirror is supported ${err.message}');
+        return;
+    }
+    console.log('Callback returned with the successful execution of isMirrorSupported.');
+})
+```
+
+### isMirrorSupported
+
+isMirrorSupported(): Promise<boolean\>
+
+查询是否支持镜像拍照,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型               | 说明                                        |
+| ----------------- | ------------------------------------------- |
+| Promise<boolean\> | 使用Promise的方式获取结果,返回是否支持自拍结果。  |
+
+**示例:**
+
+```js
+captureSession.isMirrorSupported().then((isSupported) => {
+    console.log('Promise returned with mirror supported: ' + isSupported);
+})
+```
+
+### on('captureStart')
+
+on(type: 'captureStart', callback: AsyncCallback<number\>): void
+
+监听拍照开始,通过注册回调函数获取Capture ID。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                    | 必填 | 说明                                       |
+| -------- | ---------------------- | ---- | ------------------------------------------ |
+| type     | string                 | 是   | 监听事件,固定为'captureStart',即拍照启动事件。 |
+| callback | AsyncCallback<number\> | 是   | 使用callback的方式获取Capture ID。            |
+
+**示例:**
+
+```js
+photoOutput.on('captureStart', (err, captureId) => {
+    console.log('photo capture stated, captureId : ' + captureId);
+})
+```
+
+### on('frameShutter')
+
+on(type: 'frameShutter', callback: AsyncCallback<FrameShutterInfo\>): void
+
+监听拍照帧输出捕获,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                   | 必填 | 说明                                  |
+| -------- | ----------------------------------------------------- | --- | ------------------------------------ |
+| type     | string                                           | 是   | 监听事件,固定为'frameShutter',即帧刷新事件。 |
+| callback | AsyncCallback<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。             |
+
+**示例:**
+
+```js
+photoOutput.on('frameShutter', (err, frameShutterInfo) => {
+    console.log('photo capture end, captureId : ' + frameShutterInfo.captureId);
+    console.log('Timestamp for frame : ' + frameShutterInfo.timestamp);
+})
+```
+
+### on('captureEnd')
+
+on(type: 'captureEnd', callback: AsyncCallback<CaptureEndInfo\>): void
+
+监听拍照结束,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                              | 必填 | 说明                                       |
+| -------- | ------------------------------------------------- | ---- | ---------------------------------------- |
+| type     | string                                            | 是   | 监听事件,固定为'captureEnd',即拍照停止事件。 |
+| callback | AsyncCallback<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
+
+**示例:**
+
+```js
+photoOutput.on('captureEnd', (err, captureEndInfo) => {
+    console.log('photo capture end, captureId : ' + captureEndInfo.captureId);
+    console.log('frameCount : ' + captureEndInfo.frameCount);
+})
+```
+
+### on('error')
+
+on(type: 'error', callback: ErrorCallback<PhotoOutputError\>): void
+
+监听拍照输出发生错误,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                    | 必填 | 说明                                 |
+| -------- | ----------------------------------------------------- | ---- | ----------------------------------- |
+| type     | string                                                | 是   | 监听事件,固定为'error',即拍照错误事件。 |
+| callback | ErrorCallback<[PhotoOutputError](#photooutputerror)\> | 是   | 回调函数,用于获取错误信息。             |
+
+**示例:**
+
+```js
+photoOutput.on('error', (err, photoOutputError) => {
+    console.log('Photo output error code: ' + photoOutputError.code);
+})
+```
+
+## FrameShutterInfo
+
+拍照帧输出信息。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称      | 类型   | 必填 | 说明         |
+| --------- | ------ | ---- | ---------- |
+| captureId | number | 是   | 拍照的ID。  |
+| timestamp | number | 是   | 快门时间戳。 |
+
+## CaptureEndInfo
+
+拍照停止信息。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称       | 类型   | 必填 | 说明       |
+| ---------- | ------ | ---- | ---------|
+| captureId  | number | 是   | 拍照的ID。 |
+| frameCount | number | 是   | 帧数。    |
+
+## PhotoOutputErrorCode
+
+枚举,拍照输出错误类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                           | 值   | 说明             |
+| ----------------------------- | ---- | --------------- |
+| ERROR_UNKNOWN                 | -1   | 未知错误。        |
+| ERROR_DRIVER_ERROR            | 0    | 驱动或者硬件错误。 |
+| ERROR_INSUFFICIENT_RESOURCES  | 1    | 资源不足。        |
+| ERROR_TIMEOUT                 | 2    | 超时。           |
+
+## PhotoOutputError
+
+拍照输出错误码。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称 | 类型                                  | 说明                    |
+| ---- | ------------------------------------- | ----------------------- |
+| code | [PhotoOutputError](#photooutputerror) | PhotoOutput中的错误码。 |
+
+## VideoOutput
+
+录像会话中使用的输出信息。
+
+### start
+
+start(callback: AsyncCallback<void\>): void
+
+启动录制,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                 |
+| -------- | -------------------- | ---- | -------------------- |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+videoOutput.start((err) => {
+    if (err) {
+        console.error('Failed to start the video output ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate the video output start success.');
+});
+```
+
+### start
+
+start(): Promise<void\>
+
+启动录制,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+
+**示例:**
+
+```js
+videoOutput.start().then(() => {
+    console.log('Promise returned to indicate that start method execution success.');
+})
+```
+
+### stop
+
+stop(callback: AsyncCallback<void\>): void
+
+结束录制,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                 | 必填 | 说明                     |
+| -------- | -------------------- | ---- | ------------------------ |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+videoOutput.stop((err) => {
+    if (err) {
+        console.error('Failed to stop the video output ${err.message}');
+        return;
+    }
+    console.log('Callback invoked to indicate the video output stop success.');
+});
+```
+
+### stop
+
+stop(): Promise<void\>
+
+结束录制,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型            | 说明                     |
+| -------------- | ----------------------- |
+| Promise<void\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+videoOutput.stop().then(() => {
+    console.log('Promise returned to indicate that stop method execution success.');
+})
+``` 
+
+### on('frameStart')
+
+on(type: 'frameStart', callback: AsyncCallback<void\>): void
+
+监听录像开始,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                                       |
+| -------- | -------------------- | ---- | ----------------------------------------- |
+| type     | string               | 是   | 监听事件,固定为'frameStart',即视频帧开启事件。 |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                       |
+
+**示例:**
+
+```js
+videoOutput.on('frameStart', () => {
+    console.log('Video frame started');
+})
+```
+
+### on('frameEnd')
+
+on(type: 'frameEnd', callback: AsyncCallback<void\>): void
+
+监听录像结束,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                  | 必填 | 说明                                       |
+| -------- | -------------------- | ---- | ------------------------------------------ |
+| type     | string               | 是   | 监听事件,固定为'frameEnd',即视频帧结束事件  。 |
+| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。                       |
+
+**示例:**
+
+```js
+videoOutput.on('frameEnd', () => {
+    console.log('Video frame ended');
+})
+```
+
+### on('error')
+
+on(type: 'error', callback: ErrorCallback<VideoOutputError\>): void
+
+监听录像输出发生错误,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                               | 必填 | 说明                                    |
+| -------- | ------------------------------------------------ | ---- | -------------------------------------- |
+| type     | string                                           | 是   | 监听事件,固定为'error',即视频输出错误事件。 |
+| callback | Callback<[VideoOutputError](#videooutputerror)\> | 是   | 回调函数,用于获取错误信息。                 |
+
+**示例:**
+
+```js
+videoOutput.on('error', (VideoOutputError) => {
+    console.log('Video output error code: ' + VideoOutputError.code);
+})
+```
+
 ## VideoOutputErrorCode
 
-枚举,视频输出的错误码。
+枚举,录像输出错误类型。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
-| 名称          | 值   | 说明       |
-| ------------- | ---- | ---------- |
-| ERROR_UNKNOWN | -1   | 未知错误。 |
+| 名称                   | 值   | 说明          |
+| --------------------- | ---- | ------------ |
+| ERROR_UNKNOWN         | -1   | 未知错误。     |
+| ERROR_DRIVER_ERROR    | 0    | 驱动或者硬件错误。|
+
+## VideoOutputError
+
+录像输出错误码。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称 | 类型                                  | 说明                    |
+| ---- | ------------------------------------- | ----------------------- |
+| code | [PhotoOutputError](#photooutputerror) | VideoOutput中的错误码。 |
+
+## MetadataObjectType
+
+枚举,metadata流。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                       | 值   | 说明              |
+| ------------------------- | ---- | ----------------- |
+| FACE_DETECTION            | 0    | metadata对象类型。 |
+
+## Rect
+
+矩形定义。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称      | 类型   | 说明                 |
+| -------- | ------ | -------------------- |
+| topLeftX | number | 矩形区域左上角x坐标。   |
+| topLeftY | number | 矩形区域左上角y坐标。   |
+| width    | number | 矩形宽。              |
+| height   | number | 矩形高。              |
+
+## MetadataObject
+
+相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源。
+
+### getType
+
+getType(callback: AsyncCallback<MetadataObjectType\>): void
+
+查询metadata对象类型,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                       | 必填 | 说明                  |
+| -------- | --------------------------------------------------------- | --- | -------------------- |
+| callback | AsyncCallback<[MetadataObjectType](#metadataObjectType)\> | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getType((err, metadataObjectType) => {
+    if (err) {
+        console.error('Failed to get type. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with an array of metadataObjectType.');
+})
+```
+
+### getType
+
+getType(): Promise<MetadataObjectType\>
+
+查询metadata对象类型,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                                                 | 说明                        |
+| --------------------------------------------------- | --------------------------- |
+| Promise<[MetadataObjectType](#metadataObjectType)\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getType().then((metadataObjectType) => {
+    console.log('Callback returned with an array of metadataObjectType.');
+})
+```
+
+### getTimestamp
+
+getTimestamp(callback: AsyncCallback<number\>): void
+
+查询metadata时间戳,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 说明                     |
+| -------- | ----------------------------------------------------------- | ---- | ------------------------ |
+| callback | AsyncCallback<number\>                                      | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getTimestamp((err) => {
+    if (err) {
+        console.error('Failed to get timestamp. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with timestamp getted.');
+})
+```
+
+### getTimestamp
+
+getTimestamp(): Promise<number\>
+
+查询metadata时间戳,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型               | 说明                        |
+| ----------------  | --------------------------- |
+| Promise<number)\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getTimestamp().then(() => {
+    console.log('Callback returned with timestamp getted.');
+})
+```
+
+### getBoundingBox
+
+getBoundingBox(callback: AsyncCallback<Rect\>): void
+
+查询metadata的边界框,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 说明                     |
+| -------- | ----------------------------------------------------------- | ---- | ------------------------ |
+| callback | AsyncCallback<[Rect](#rect)\>                               | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getBoundingBox((err, rect) => {
+    if (err) {
+        console.error('Failed to get boundingBox. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with boundingBox getted.');
+})
+```
+
+### getBoundingBox
+
+getBoundingBox(): Promise<Rect\>
+
+查询metadata的边界框,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                    | 说明                        |
+| ----------------------  | --------------------------- |
+| Promise<[Rect](#rect)\> | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+metadataObject.getBoundingBox().then((rect) => {
+    console.log('Callback returned with boundingBox getted.');
+})
+```
+
+## MetadataFaceObject
+
+metadata的人脸对象。继承[MetadataObject](#metadataObject)
+
+## MetadataOutput
+
+metadata流。继承[CameraOutput](#cameraoutput)
+
+### start
+
+start(callback: AsyncCallback<void\>): void
+
+开始输出metadata,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                                         | 必填 | 说明                 |
+| -------- | ----------------------------------------------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\>                                       | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+metadataOutput.start((err) => {
+    if (err) {
+        console.error('Failed to start metadataOutput. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with metadataOutput started.');
+})
+```
+
+### start
+
+start(): Promise<void\>
+
+开始输出metadata,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                     | 说明                     |
+| ----------------------  | ------------------------ |
+| Promise<void\>          | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+metadataOutput.start().then(() => {
+    console.log('Callback returned with metadataOutput started.');
+})
+```
+
+### stop
+
+stop(callback: AsyncCallback<void\>): void
+
+停止输出metadata,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                         | 必填 | 说明                  |
+| -------- | -------------------------- | ---- | ------------------- |
+| callback | AsyncCallback<void\>       | 是   | 回调函数,用于获取结果。 |
+
+**示例:**
+
+```js
+metadataOutput.stop((err) => {
+    if (err) {
+        console.error('Failed to stop the metadataOutput. ${err.message}');
+        return;
+    }
+    console.log('Callback returned with metadataOutput stoped.');
+})
+```
+
+### stop
+
+stop(): Promise<void\>
+
+停止输出metadata,通过Promise获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**返回值:**
+
+| 类型                    | 说明                        |
+| ----------------------  | --------------------------- |
+| Promise<void\>         | 使用Promise的方式获取结果。 |
+
+**示例:**
+
+```js
+metadataOutput.stop().then(() => {
+    console.log('Callback returned with metadataOutput stoped.');
+})
+```
+
+### on('metadataObjectsAvailable')
+
+on(type: 'metadataObjectsAvailable', callback: AsyncCallback<Array<MetadataObject\>\>): void
+
+监听检测到的metadata对象,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称      | 类型                                                  | 必填 | 说明                                  |
+| -------- | -----------------------------------------------    - | ---- | ------------------------------------ |
+| type     | string                            | 是   | 监听事件,固定为'metadataObjectsAvailable',即metadata对象。 |
+| callback | Callback<Array<[MetadataObject](#metadataObject)\>\> | 是   | 回调函数,用于获取错误信息。               |
+
+**示例:**
+
+```js
+metadataOutput.on('metadataObjectsAvailable', (metadataObject) => {
+    console.log('metadata output error code: ' + metadataObject.code);
+})
+```
+
+### on('error')
+
+on(tuype: 'error', callback: ErrorCallback<MetadataOutputError\>): void
+
+监听metadata流的错误,通过注册回调函数获取结果。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+**参数:**
+
+| 名称     | 类型                                               | 必填 | 说明                                     |
+| -------- | ------------------------------------------------ | ---- | --------------------------------------- |
+| type     | string                                           | 是   | 监听事件,固定为'error',即metadata流的错误。 |
+| callback | Callback<[MetadataOutputError](#metadataOutputError)\> | 是   | 回调函数,用于获取错误信息。            |
+
+**示例:**
+
+```js
+metadataOutput.on('error', (metadataOutputError) => {
+    console.log('Metadata output error code: ' + metadataOutputError.code);
+})
+```
+
+## MetadataOutputErrorCode
+
+枚举,metadata输出错误类型。
+
+**系统能力:** SystemCapability.Multimedia.Camera.Core
+
+| 名称                             | 值   | 说明      |
+| ------------------------------- | ---- | -------- |
+| ERROR_UNKNOWN                   | -1   | 未知错误。 |
+| ERROR_INSUFFICIENT_RESOURCES    | 0    | 资源不足。 |
 
-##  VideoOutputError
+## MetadataOutputError
 
-视频输出错误对象。
+metadata输出错误码。
 
 **系统能力:** SystemCapability.Multimedia.Camera.Core
 
 | 名称 | 类型                                  | 说明                    |
 | ---- | ------------------------------------- | ----------------------- |
-| code | [PhotoOutputError](#photooutputerror) | VideoOutput中的错误码。 |
\ No newline at end of file
+| code | [MetadataOutputErrorCode](#MetadataOutputErrorCode) | MetadataOutput中的错误码。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md
index 26d43c37158ab489ad43a28c73d359d923e18dff..96d1d56624bb13cb4d835f0ad54399b0181874b5 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md
@@ -3,7 +3,7 @@
 本模块主要用于操作及管理NFC卡模拟。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## 导入模块
@@ -19,7 +19,7 @@ isSupported(feature: number): boolean
 
 是否支持某种类型的卡模拟
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -27,11 +27,11 @@ isSupported(feature: number): boolean
   | -------- | -------- |
   | boolean | true:支持该类型卡模拟,&nbsp;false:不支持该类型卡模拟。 |
 
-## HceService
+## HceService<sup>8+</sup>
 
 管理HCE卡模拟。在调用HceService的接口前,需要先通过new cardEmulation.HceService()创建实例。
 
-### startHCE
+### startHCE<sup>8+</sup>
 
 startHCE(aidList: string[]): boolean
 
@@ -39,7 +39,7 @@ startHCE(aidList: string[]): boolean
 
 **需要权限**:ohos.permission.NFC_CARD_EMULATION
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **参数:**
 
@@ -47,7 +47,7 @@ startHCE(aidList: string[]): boolean
 | ------- | -------- | ---- | ----------------------- |
 | aidList | string[] | 是   | 注册进行卡模拟的aid列表 |
 
-### stopHCE
+### stopHCE<sup>8+</sup>
 
 stopHCE(): boolean
 
@@ -55,9 +55,9 @@ stopHCE(): boolean
 
 **需要权限**:ohos.permission.NFC_CARD_EMULATION
 
-**系统能力:** SystemCapability.Communication.NFC
+**系统能力:** SystemCapability.Communication.NFC.Core
 
-### on
+### on<sup>8+</sup>
 
 on(type: "hceCmd", callback: AsyncCallback<number[]>): void;
 
@@ -65,7 +65,7 @@ on(type: "hceCmd", callback: AsyncCallback<number[]>): void;
 
 **需要权限**:ohos.permission.NFC_CARD_EMULATION
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **参数:**
 
@@ -74,7 +74,7 @@ on(type: "hceCmd", callback: AsyncCallback<number[]>): void;
 | type     | string                  | 是   | 固定填"hceCmd"字符串                         |
 | callback | AsyncCallback<number[]> | 是   | 订阅的事件回调,入参是符合APDU协议的数据数组 |
 
-### sendResponse
+### sendResponse<sup>8+</sup>
 
 sendResponse(responseApdu: number[]): void;
 
@@ -82,7 +82,7 @@ sendResponse(responseApdu: number[]): void;
 
 **需要权限**:ohos.permission.NFC_CARD_EMULATION
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **参数:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md b/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md
index f95af7bd892338a983429ae8ae1db23a9dd75c0d..df66790171ff88b2d42ee9dd784cf8eddd857ccf 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md
@@ -170,6 +170,8 @@ CommonEvent模块支持的事件类型。名称指的是系统公共事件宏;
 | COMMON_EVENT_FOUNDATION_READY                                | usual.event.data.FOUNDATION_READY                           | ohos.permission.RECEIVER_STARTUP_COMPLETED                   | 表示foundation已准备好的公共事件的动作。      |
 | COMMON_EVENT_AIRPLANE_MODE_CHANGED                           | usual.event.AIRPLANE_MODE                                   | 无                                                           | 表示设备飞行模式已更改的公共事件的动作。      |
 | COMMON_EVENT_SPLIT_SCREEN<sup>8+<sup>                                    | usual.event.SPLIT_SCREEN                                    | ohos.permission.RECEIVER_SPLIT_SCREEN                        | 表示分屏的公共事件的动作。      |
+| COMMON_EVENT_SLOT_CHANGE<sup>9+<sup>                                    | usual.event.SLOT_CHANGE                                    | ohos.permission.NOTIFICATION_CONTROLLER                        | 表示通知通道更新的动作。      |
+| COMMON_EVENT_SPN_INFO_CHANGED <sup>9+<sup>                                    | usual.event.SPN_INFO_CHANGED                                    | 无                        | 表示spn显示信息已更新的公共事件的动作。      |
 
 
 ## CommonEvent.publish
diff --git a/zh-cn/application-dev/reference/apis/js-apis-config-policy.md b/zh-cn/application-dev/reference/apis/js-apis-config-policy.md
index d79d5fdba78a9ea51a50f876b45e73cd160db4fa..d8531e35a584b9ba62f2b43e46ffb4b1ea9f5698 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-config-policy.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-config-policy.md
@@ -6,7 +6,7 @@
 >
 >  本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
->  本模块接口均为系统接口,三方应用不支持调用。
+>  本模块接口均为系统接口。
 
 ## 导入模块
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-configuration.md b/zh-cn/application-dev/reference/apis/js-apis-configuration.md
index 1889e753e1a868c5730c9f29e500b812fb11f64a..0f82948b512e9bd6b497befe3953562bcdb69c63 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-configuration.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-configuration.md
@@ -23,3 +23,5 @@ import Configuration from '@ohos.application.Configuration';
 | direction<sup>9+</sup> | Direction | 是 | 否 | 表示屏幕方向,取值范围:水平方向(DIRECTION_HORIZONTAL),垂直方向(DIRECTION_VERTICAL)。 | 
 | screenDensity<sup>9+</sup>  | ScreenDensity | 是 | 否 | 表示屏幕分辨率,取值范围:SCREEN_DENSITY_SDPI(120)、SCREEN_DENSITY_MDPI(160)、SCREEN_DENSITY_LDPI(240)、SCREEN_DENSITY_XLDPI(320)、SCREEN_DENSITY_XXLDPI(480)、SCREEN_DENSITY_XXXLDPI(640)。 | 
 | displayId<sup>9+</sup>  | number | 是 | 否 | 表示应用所在的displayId。 | 
+| hasPointerDevice<sup>9+</sup>  | boolean | 是 | 否 | 指示指针类型设备是否已连接。 | 
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-connectedTag.md b/zh-cn/application-dev/reference/apis/js-apis-connectedTag.md
index 6f62b388faf8642a95796829f7f39147e03db897..412d965ba806772193c751ebf212f67321e0fe14 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-connectedTag.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-connectedTag.md
@@ -129,7 +129,7 @@ writeNdefTag(data: string): Promise&lt;void&gt;
 
 ## connectedTag.writeNdefTag
 
-writeNdefTag(data: string, callback: AsyncCallback&lt;string&gt;): void
+writeNdefTag(data: string, callback: AsyncCallback&lt;void&gt;): void
 
 写入内容到有源标签,使用callback方式作为异步方法。
 
@@ -219,6 +219,8 @@ off(type: "notify", callback?: Callback&lt;number&gt;): void
 
 表示NFC场强状态的枚举。
 
+**系统能力**:SystemCapability.Communication.ConnectedTag
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | NFC_RF_LEAVE | 0 | NFC离场事件 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md
index 8270193601115937abe402bb26eb67e11f907411..bc7145c55e268f1da2a710f6d0f239132cb33ef8 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationExtraParams.md
@@ -1,19 +1,14 @@
 # ContinuationExtraParams
 
-本模块提供流转管理入口中互联面板所需的过滤参数。
+本模块提供流转管理入口中设备选择模块所需的过滤参数。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
+> 
 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
-## 导入模块
-
-```js
-import continuationManager from "@ohos.continuation.continuationManager"
-```
-
 ## ContinuationExtraParams
 
-表示流转管理入口中互联面板所需的过滤参数。
+表示流转管理入口中设备选择模块所需的过滤参数。
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.DistributedAbilityManager
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md
index 5153a98a31ae33a6ee20d9e321de71bf181518c4..6f8c8b23efd22a2dd9d3e287a7029a9037429af6 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md
@@ -1,10 +1,12 @@
 # continuationManager
 
+continuationManager模块提供了流转/协同入口管理服务能力,包括连接/取消流转管理服务,注册/解注册设备连接变化监听,拉起设备选择模块,更新连接状态。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+本模块接口用于拉起系统中的设备选择模块,由于该模块功能暂不完备,因此**流转能力整体暂不支持用于应用开发**。
 
-continuationManager模块提供了流转/协同入口管理服务能力,包括连接/取消流转管理服务,注册/解注册设备连接变化监听,拉起互联面板,更新连接状态。
+> **说明:**
+> 
+> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
 
@@ -86,9 +88,16 @@ register(options?: ContinuationExtraParams): Promise\<number>;
   | -------- | -------- | -------- | -------- |
   | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | 否 | 过滤可选择设备列表的额外参数,该参数可缺省|
 
+**返回值:**
+
+| 类型                        | 说明                 |
+| ------------------------- | ------------------ |
+| Promise\<number> | Promise形式返回流转管理服务连接后生成的token。 |
+
 **示例:**
 
   ```js
+  let token = -1;
   let continuationExtraParams = {
     deviceType: ["00E"]
   };
@@ -130,7 +139,7 @@ off(type: "deviceDisconnect", callback?: Callback\<string>): void;
 
 异步方法,取消监听设备断开状态,使用Callback形式返回连接的设备信息。
 
-## continuationManager.on("deviceConnect")
+## continuationManager.on("deviceConnect")<sup>9+</sup>
 
 on(type: "deviceConnect", token: number, callback: Callback\<Array\<ContinuationResult>>): void;
 
@@ -144,11 +153,12 @@ on(type: "deviceConnect", token: number, callback: Callback\<Array\<Continuation
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 监听的事件类型,固定值"deviceConnect"。 |
   | token | number | 是 | 注册后的token。 |
-  | callback | Callback\<Array\<[ContinuationResult](js-apis-continuation-continuationResult.md)>> | 是 | 当用户从互联面板中选择设备时调用,返回设备ID、设备类型和设备名称供开发者使用。 |
+  | callback | Callback\<Array\<[ContinuationResult](js-apis-continuation-continuationResult.md)>> | 是 | 当用户从设备选择模块中选择设备时调用,返回设备ID、设备类型和设备名称供开发者使用。 |
 
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.on("deviceConnect", token, (data) => {
     console.info('onDeviceConnect len: ' + data.length);
     for (let i = 0; i < data.length; i++) {
@@ -159,7 +169,7 @@ on(type: "deviceConnect", token: number, callback: Callback\<Array\<Continuation
   });
   ```
 
-## continuationManager.on("deviceDisconnect")
+## continuationManager.on("deviceDisconnect")<sup>9+</sup>
 
 on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>): void;
 
@@ -173,11 +183,12 @@ on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>)
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 监听的事件类型,固定值"deviceDisconnect"。 |
   | token | number | 是 | 注册后的token。 |
-  | callback | Callback\<Array\<string>> | 是 | 当用户从互联面板中断开设备时调用,返回设备ID供开发者使用。 |
+  | callback | Callback\<Array\<string>> | 是 | 当用户从设备选择模块中断开设备时调用,返回设备ID供开发者使用。 |
 
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.on("deviceDisconnect", token, (data) => {
     console.info('onDeviceDisconnect len: ' + data.length);
     for (let i = 0; i < data.length; i++) {
@@ -187,7 +198,7 @@ on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>)
   });
   ```
 
-## continuationManager.off("deviceConnect")
+## continuationManager.off("deviceConnect")<sup>9+</sup>
 
 off(type: "deviceConnect", token: number): void;
 
@@ -205,10 +216,11 @@ off(type: "deviceConnect", token: number): void;
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.off("deviceConnect", token);
   ```
 
-## continuationManager.off("deviceDisconnect")
+## continuationManager.off("deviceDisconnect")<sup>9+</sup>
 
 off(type: "deviceDisconnect", token: number): void;
 
@@ -226,6 +238,7 @@ off(type: "deviceDisconnect", token: number): void;
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.off("deviceDisconnect", token);
   ```
 
@@ -233,7 +246,7 @@ off(type: "deviceDisconnect", token: number): void;
 
 startDeviceManager(token: number, callback: AsyncCallback\<void>): void;
 
-拉起互联面板,可显示组网内可选择设备列表信息,无过滤条件,使用AsyncCallback方式作为异步方法。
+拉起设备选择模块,可显示组网内可选择设备列表信息,无过滤条件,使用AsyncCallback方式作为异步方法。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -247,6 +260,7 @@ startDeviceManager(token: number, callback: AsyncCallback\<void>): void;
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.startDeviceManager(token, (err, data) => {
     if (err.code != 0) {
       console.error('startDeviceManager failed, cause: ' + JSON.stringify(err));
@@ -260,7 +274,7 @@ startDeviceManager(token: number, callback: AsyncCallback\<void>): void;
 
 startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\<void>): void;
 
-拉起互联面板,可显示组网内可选择设备列表信息,使用AsyncCallback方式作为异步方法。
+拉起设备选择模块,可显示组网内可选择设备列表信息,使用AsyncCallback方式作为异步方法。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -275,6 +289,7 @@ startDeviceManager(token: number, options: ContinuationExtraParams, callback: As
 **示例:**
 
   ```js
+  let token = 1;
   let continuationExtraParams = {
     deviceType: ["00E"]
   };
@@ -291,7 +306,7 @@ startDeviceManager(token: number, options: ContinuationExtraParams, callback: As
 
 startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<void>;
 
-拉起互联面板,可显示组网内可选择设备列表信息,使用Promise方式作为异步方法。
+拉起设备选择模块,可显示组网内可选择设备列表信息,使用Promise方式作为异步方法。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -302,9 +317,16 @@ startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<v
   | token | number | 是 | 注册后的token。 |
   | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | 否 | 过滤可选择设备列表的额外参数,该参数可缺省|
 
+**返回值:**
+
+| 类型                        | 说明                 |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise形式返回接口调用结果。 |
+
 **示例:**
 
   ```js
+  let token = 1;
   let continuationExtraParams = {
     deviceType: ["00E"]
   };
@@ -321,7 +343,7 @@ startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<v
 
 updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState, callback: AsyncCallback\<void>): void;
 
-通知互联面板,更新当前的连接状态,使用AsyncCallback方式作为异步方法。
+通知设备选择模块,更新当前的连接状态,使用AsyncCallback方式作为异步方法。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -337,6 +359,7 @@ updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState,
 **示例:**
 
   ```js
+  let token = 1;
   let deviceId: string = "test deviceId";
   continuationManager.updateConnectStatus(token, deviceId, continuationManager.DeviceConnectState.CONNECTED, (err, data) => {
     if (err.code != 0) {
@@ -351,7 +374,7 @@ updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState,
 
 updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\<void>;
 
-通知互联面板,更新当前的连接状态,使用Promise方式作为异步方法。
+通知设备选择模块,更新当前的连接状态,使用Promise方式作为异步方法。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -363,9 +386,16 @@ updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState)
   | deviceId | string | 是 | 设备ID。 |
   | status | [DeviceConnectState](#deviceconnectstate) | 是 | 设备连接状态。 |
 
+**返回值:**
+
+| 类型                        | 说明                 |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise形式返回接口调用结果。 |
+
 **示例:**
 
   ```js
+  let token = 1;
   let deviceId: string = "test deviceId";
   continuationManager.updateConnectStatus(token, deviceId, continuationManager.DeviceConnectState.CONNECTED)
     .then((data) => {
@@ -394,6 +424,7 @@ unregister(token: number, callback: AsyncCallback\<void>): void;
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.unregister(token, (err, data) => {
     if (err.code != 0) {
       console.error('unregister failed, cause: ' + JSON.stringify(err));
@@ -417,9 +448,16 @@ unregister(token: number): Promise\<void>;
   | -------- | -------- | -------- | -------- |
   | token | number | 是 | 注册后的token。 |
 
+**返回值:**
+
+| 类型                        | 说明                 |
+| ------------------------- | ------------------ |
+| Promise\<void> | Promise形式返回接口调用结果。 |
+
 **示例:**
 
   ```js
+  let token = 1;
   continuationManager.unregister(token)
     .then((data) => {
       console.info('unregister finished, ' + JSON.stringify(data));
@@ -446,7 +484,7 @@ unregister(token: number): Promise\<void>;
 
 ## ContinuationMode
 
-互联面板连接模式。
+设备选择模块连接模式。
 
 **系统能力**:SystemCapability.Ability.DistributedAbilityManager
 
@@ -454,5 +492,5 @@ unregister(token: number): Promise\<void>;
 
   | 参数名 | 类型 | 值 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | COLLABORATION_SINGLE | number | 0 | 互联面板单选模式。 |
-  | COLLABORATION_MULTIPLE | number | 1 | 互联面板多选模式。 |
\ No newline at end of file
+  | COLLABORATION_SINGLE | number | 0 | 设备选择模块单选模式。 |
+  | COLLABORATION_MULTIPLE | number | 1 | 设备选择模块多选模式。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-convertxml.md b/zh-cn/application-dev/reference/apis/js-apis-convertxml.md
index b5bad4a12fb5be6631b00662311387e9f217dd18..cbb605b604614e67100be55225ba64230b8f4206 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-convertxml.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-convertxml.md
@@ -49,10 +49,10 @@ let xml =
     '</note>';
 let conv = new convertxml.ConvertXML();
 let options = {trim : false, declarationKey:"_declaration",
-               instructionKey : "_instruction", attributesKey : "_attributes",
-               textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
-               commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
-               nameKey : "_name", elementsKey : "_elements"}
+    instructionKey : "_instruction", attributesKey : "_attributes",
+    textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
+    commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
+    nameKey : "_name", elementsKey : "_elements"}
 let result = JSON.stringify(conv.convert(xml, options));
 console.log(result)
 ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md
index 8f6a8e74a15d7acd70863f92abd8c1adc122b956..c48c588a1110c8085feee3a9f88ec5167a7b1f32 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md
@@ -44,7 +44,10 @@ dataShareHelper.query(uri, da, columns).then((data) => {
 });
 ```
 
-## 属性
+## DataShareResultSet
+提供通过查询数据库生成的结果集的相关访问方法。
+
+### 属性
 
 **系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
 
@@ -55,7 +58,7 @@ dataShareHelper.query(uri, da, columns).then((data) => {
 | rowCount    | number        | 是   | 结果集中的行数。         |
 | isClosed    | boolean       | 是   | 标识当前结果集是否关闭。 |
 
-## goToFirstRow
+### goToFirstRow
 
 goToFirstRow(): boolean
 
@@ -76,7 +79,7 @@ let isGoTOFirstRow = resultSet.goToFirstRow();
 console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
 ```
 
-## goToLastRow
+### goToLastRow
 
 goToLastRow(): boolean
 
@@ -97,7 +100,7 @@ let isGoToLastRow = resultSet.goToLastRow();
 console.info('resultSet.goToLastRow: ' + isGoToLastRow);
 ```
 
-## goToNextRow
+### goToNextRow
 
 goToNextRow(): boolean
 
@@ -118,7 +121,7 @@ let isGoToNextRow = resultSet.goToNextRow();
 console.info('resultSet.goToNextRow: ' + isGoToNextRow);
 ```
 
-## goToPreviousRow
+### goToPreviousRow
 
 goToPreviousRow(): boolean
 
@@ -139,7 +142,7 @@ let isGoToPreviousRow = resultSet.goToPreviousRow();
 console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
 ```
 
-## goTo
+### goTo
 
 goTo(offset:number): boolean
 
@@ -167,7 +170,7 @@ let isGoTo = resultSet.goTo(goToNum);
 console.info('resultSet.goTo: ' + isGoTo);
 ```
 
-## goToRow
+### goToRow
 
 goToRow(position: number): boolean
 
@@ -195,7 +198,7 @@ let isGoToRow = resultSet.goToRow(goToRowNum);
 console.info('resultSet.goToRow: ' + isGoToRow);
 ```
 
-## getBlob
+### getBlob
 
 getBlob(columnIndex: number): Uint8Array
 
@@ -224,7 +227,7 @@ let getBlob = resultSet.getBlob(columnIndex);
 console.info('resultSet.getBlob: ' + getBlob);
 ```
 
-## getString
+### getString
 
 getString(columnIndex: number): *string*
 
@@ -253,7 +256,7 @@ let getString = resultSet.getString(columnIndex);
 console.info('resultSet.getString: ' + getString);
 ```
 
-## getLong
+### getLong
 
 getLong(columnIndex: number): number
 
@@ -282,7 +285,7 @@ let getLong = resultSet.getLong(columnIndex);
 console.info('resultSet.getLong: ' + getLong);
 ```
 
-## getDouble
+### getDouble
 
 getDouble(columnIndex: number): number
 
@@ -311,7 +314,7 @@ let getDouble = resultSet.getDouble(columnIndex);
 console.info('resultSet.getDouble: ' + getDouble);
 ```
 
-## close
+### close
 
 close(): void
 
@@ -325,7 +328,7 @@ close(): void
 resultSet.close();
 ```
 
-## getColumnIndex
+### getColumnIndex
 
 getColumnIndex(columnName: string): number
 
@@ -353,7 +356,7 @@ let getColumnIndex = resultSet.getColumnIndex(ColumnName)
 console.info('resultSet.getColumnIndex: ' + getColumnIndex);
 ```
 
-## getColumnName
+### getColumnName
 
 getColumnName(columnIndex: number): *string*
 
@@ -381,7 +384,7 @@ let getColumnName = resultSet.getColumnName(columnIndex)
 console.info('resultSet.getColumnName: ' + getColumnName);
 ```
 
-## getDataType
+### getDataType
 
 getDataType(columnIndex: number): DataType
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md b/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md
index 7190b74c45174c90482e16bc6dc3fe90514628b9..a533ef34ce47b3fa69235a680b92a2c1ae3ca915 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md
@@ -20,7 +20,7 @@ import { ValuesBucket } from '@ohos.data.ValuesBucket';
 
 **系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
 
-| 名称    | 说明                 |
+| 类型    | 说明                 |
 | ------- | -------------------- |
 | number  | 表示字段类型为数字。   |
 | string  | 表示字段类型为字符串。 |
@@ -28,11 +28,10 @@ import { ValuesBucket } from '@ohos.data.ValuesBucket';
 
 ## ValuesBucket
 
-该类型用于存储一系列键值对。
+用于存储键值对的类型。
 
 **系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
 
-| 名称          | 参数类型                                      | 必填 | 说明                                                         |
-| ------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
-| [key: string] | [ValueType](#valuetype)\| Uint8Array \| null | 是   | 键的类型为字符串型;值的类型可以为数字、字符串、布尔值、无符号整型8位数组、空值。 |
-
+| 键类型          | 值类型                                      | 
+| ------------- | --------------------------------------------- | 
+|  string | [ValueType](#valuetype)\| Uint8Array \| null | 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-ability.md b/zh-cn/application-dev/reference/apis/js-apis-data-ability.md
index aa8b98db48cf52c477131f2cea304462f2271634..4f8e0a3e017f84fc0e4091881a9a4e756d0ba136 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-ability.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-ability.md
@@ -789,7 +789,7 @@ notIn(field: string, value: Array&lt;ValueType&gt;): DataAbilityPredicates
 
 **系统能力:** SystemCapability.DistributedDataManager.DataShare.Core。
 
-| 名称    | 说明                 |
+| 类型    | 说明                 |
 | ------- | -------------------- |
 | number  | 表示值类型为数字。   |
 | string  | 表示值类型为字符。   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md
index a7d360e03bb5ce1e94fea59f9025ae9759af612d..993919600938aba0e516b8d9e65f2fdd5b668663 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md
@@ -10,7 +10,6 @@
 ## 导入模块
 
 ```ts
-import Ability from '@ohos.application.Ability'
 import dataShare from '@ohos.data.dataShare'
 ```
 
@@ -34,7 +33,7 @@ createDataShareHelper(context: Context, uri: string, callback: AsyncCallback&lt;
 **示例:**
 
 ```ts
-import dataShare from '@ohos.data.dataShare'
+import Ability from '@ohos.application.Ability'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let dataShareHelper;
@@ -72,7 +71,7 @@ createDataShareHelper(context: Context, uri: string): Promise&lt;DataShareHelper
 **示例:**
 
 ```ts
-import dataShare from '@ohos.data.dataShare'
+import Ability from '@ohos.application.Ability'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let dataShareHelper;
@@ -88,6 +87,8 @@ dataShare.createDataShareHelper(this.context, uri).then((data) => {
 
 DataShare管理工具实例,可使用此实例访问或管理服务端的数据。在调用DataShareHelper提供的方法前,需要先通过[createDataShareHelper](#datasharecreatedatasharehelper)构建一个实例。
 
+此接口仅可在Stage模型下使用。
+
 ### openFile
 
 openFile(uri: string, mode: string, callback: AsyncCallback&lt;number&gt;): void
@@ -109,6 +110,7 @@ openFile(uri: string, mode: string, callback: AsyncCallback&lt;number&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.openFile(uri, "rwt", (err, data) => {
     if (err != undefined) {
@@ -146,6 +148,7 @@ openFile(uri: string, mode: string): Promise&lt;number&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.openFile(uri, "rwt").then((data) => {
     console.info("openFile succeed, data : " + data);
@@ -176,6 +179,7 @@ on(type: 'dataChange', uri: string, callback: AsyncCallback&lt;void&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 function onCallback() {
     console.info("**** Observer on callback ****");
 }
@@ -204,6 +208,7 @@ off(type: 'dataChange', uri: string, callback?: AsyncCallback&lt;void&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 function offCallback() {
     console.info("**** Observer off callback ****");
 }
@@ -232,6 +237,7 @@ insert(uri: string, value: ValuesBucket, callback: AsyncCallback&lt;number&gt;):
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 const valueBucket = {
     "name": "rose",
@@ -273,6 +279,7 @@ insert(uri: string, value: ValuesBucket): Promise&lt;number&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 const valueBucket = {
     "name": "rose1",
@@ -301,12 +308,13 @@ delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callbac
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要删除的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。 |
 | callback   | AsyncCallback&lt;number&gt;                                  | 是   | 回调函数。当从数据库中删除一条或多条数据记录成功,err为undefined,data为获取到的已删除的数据记录数;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此callback也无法返回删除的数据记录数。 |
 
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -336,7 +344,7 @@ delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promis
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要删除的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。 |
 
 **返回值:**
 
@@ -347,6 +355,7 @@ delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promis
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -374,13 +383,14 @@ query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns:
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要查询的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。 |
 | columns    | Array&lt;string&gt;                                          | 是   | 指示要查询的列。如果此参数为空,则查询所有列。               |
 | callback   | AsyncCallback&lt;[DataShareResultSet](js-apis-data-DataShareResultSet.md#datashareresultset)&gt; | 是   | 回调函数。当查询数据库中的数据成功,err为undefined,data为获取到的查询到的结果集;否则为错误对象。 |
 
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -411,7 +421,7 @@ query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns:
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要查询的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。 |
 | columns    | Array&lt;string&gt;                                          | 是   | 指示要查询的列。如果此参数为空,则查询所有列。               |
 
 **返回值:**
@@ -423,6 +433,7 @@ query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns:
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -451,13 +462,14 @@ update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value:
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要更新的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。 |
 | value      | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)    | 是   | 指示要更新的数据。                                           |
 | callback   | AsyncCallback&lt;number&gt;                                  | 是   | 回调函数。当更新数据库中的数据记录成功,err为undefined,data为获取到的更新的数据记录数;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此callback也无法返回更新的数据记录数。 |
 
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -493,7 +505,7 @@ update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value:
 | 名称       | 类型                                                         | 必填 | 描述                                                         |
 | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri        | string                                                       | 是   | 指示要更新的数据的路径。                                     |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是   | 指示筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。 |
 | value      | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)    | 是   | 指示要更新的数据。                                           |
 
 **返回值:**
@@ -505,6 +517,7 @@ update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value:
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 import dataSharePredicates from '@ohos.data.dataSharePredicates'
 
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
@@ -544,6 +557,7 @@ batchInsert(uri: string, values: Array&lt;ValuesBucket&gt;, callback: AsyncCallb
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,},
                      {"name": "roe12", "age": 21, "salary": 20.5,},
@@ -583,6 +597,7 @@ batchInsert(uri: string, values: Array&lt;ValuesBucket&gt;): Promise&lt;number&g
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,},
                      {"name": "roe12", "age": 21, "salary": 20.5,},
@@ -614,6 +629,7 @@ getType(uri: string, callback: AsyncCallback&lt;string&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.getType(uri, (err, data)=>{
     if (err != undefined) {
@@ -650,6 +666,7 @@ getType(uri: string): Promise&lt;string&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.getType(uri).then((data) => {
     console.log("getType succeed, data : " + data);
@@ -674,11 +691,12 @@ getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback&lt;Arr
 | -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | uri            | string                                                       | 是   | 指示要获取的文件的路径。                                     |
 | mimeTypeFilter | string                                                       | 是   | 指示要筛选的MIME类型。例如:<br />“\*/\*”:获取支持的所有类型。<br/>“image/\*”:获取主类型image,子类型为任何类型的MIME。<br />”\*/jpg”:获取子类型为jpg,主类型为任何类型的MIME。 |
-| callback       | openFile(uri: string, mode: string, callback: AsyncCallback<number>) {    let err = {"code":0};    let fd = 0;    callback(err,fd);}ts | 是   | 回调函数。当获取支持的文件的MIME类型成功,err为undefined,data为获取到的匹配的MIME类型数组;否则为错误对象。 |
+| callback       |  AsyncCallback<Array\<string>> | 是   | 回调函数。当获取支持的文件的MIME类型成功,err为undefined,data为获取到的匹配的MIME类型数组;否则为错误对象。 |
 
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let mimeTypeFilter = "image/*";
 dataShareHelper.getFileTypes(uri, mimeTypeFilter, (err,data) => {
@@ -716,6 +734,7 @@ getFileTypes(uri: string, mimeTypeFilter: string): Promise&lt;Array&lt;string&gt
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 let mimeTypeFilter = "image/*";
 dataShareHelper.getFileTypes(uri, mimeTypeFilter).then((data) => {
@@ -745,6 +764,7 @@ normalizeUri(uri: string, callback: AsyncCallback&lt;string&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.normalizeUri(uri, (err, data) => {
     if (err != undefined) {
@@ -780,6 +800,7 @@ normalizeUri(uri: string): Promise&lt;string&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.normalizeUri(uri).then((data) => {
     console.log("normalizeUri = " + data);
@@ -808,6 +829,7 @@ denormalizeUri(uri: string, callback: AsyncCallback&lt;string&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.denormalizeUri(uri, (err, data) => {
     if (err != undefined) {
@@ -843,6 +865,7 @@ denormalizeUri(uri: string): Promise&lt;string&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.denormalizeUri(uri).then((data) => {
     console.log("denormalizeUri = " + data);
@@ -871,6 +894,7 @@ notifyChange(uri: string, callback: AsyncCallback&lt;void&gt;): void
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.notifyChange(uri, () => {
     console.log("***** notifyChange *****");
@@ -902,6 +926,7 @@ notifyChange(uri: string): Promise&lt;void&gt;
 **示例:**
 
 ```ts
+import Ability from '@ohos.application.Ability'
 let uri = ("datashare:///com.samples.datasharetest.DataShare");
 dataShareHelper.notifyChange(uri);
 ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md
index 7838b092adfab89d49626d67e093d056233841e0..91fcd5fa3bcd519cef639c39bdadfeac7b5b11b8 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md
@@ -13,7 +13,10 @@
 import dataSharePredicates from '@ohos.data.dataSharePredicates';
 ```
 
-## equalTo
+## DataSharePredicates
+提供用于不同实现不同查询方法的数据共享谓词。
+
+### equalTo
 
 equalTo(field: string, value: ValueType): DataSharePredicates
 
@@ -43,7 +46,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.equalTo("NAME", "Rose")
 ```
 
-## notEqualTo
+### notEqualTo
 
 notEqualTo(field: string, value: ValueType): DataSharePredicates
 
@@ -73,7 +76,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.notEqualTo("NAME", "Rose")
 ```
 
-## beginWrap
+### beginWrap
 
 beginWrap(): DataSharePredicates
 
@@ -99,7 +102,7 @@ predicates.equalTo("NAME", "lisi")
     .endWrap()
 ```
 
-## endWrap
+### endWrap
 
 endWrap(): DataSharePredicates
 
@@ -125,7 +128,7 @@ predicates.equalTo("NAME", "lisi")
     .endWrap()
 ```
 
-## or
+### or
 
 or(): DataSharePredicates
 
@@ -150,7 +153,7 @@ predicates.equalTo("NAME", "lisi")
     .equalTo("NAME", "Rose")
 ```
 
-## and
+### and
 
 and(): DataSharePredicates
 
@@ -175,7 +178,7 @@ predicates.equalTo("NAME", "lisi")
     .equalTo("SALARY", 200.5)
 ```
 
-## contains
+### contains
 
 contains(field: string, value: string): DataSharePredicates
 
@@ -203,7 +206,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.contains("NAME", "os")
 ```
 
-## beginsWith
+### beginsWith
 
 beginsWith(field: string, value: string): DataSharePredicates
 
@@ -231,7 +234,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.beginsWith("NAME", "os")
 ```
 
-## endsWith
+### endsWith
 
 endsWith(field: string, value: string): DataSharePredicates
 
@@ -259,7 +262,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.endsWith("NAME", "os")
 ```
 
-## isNull
+### isNull
 
 isNull(field: string): DataSharePredicates
 
@@ -288,7 +291,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.isNull("NAME")
 ```
 
-## isNotNull
+### isNotNull
 
 isNotNull(field: string): DataSharePredicates
 
@@ -317,7 +320,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.isNotNull("NAME")
 ```
 
-## like
+### like
 
 like(field: string, value: string): DataSharePredicates
 
@@ -347,7 +350,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.like("NAME", "%os%")
 ```
 
-## unlike
+### unlike
 
 unlike(field: string, value: string): DataSharePredicates
 
@@ -377,7 +380,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.unlike("NAME", "%os%")
 ```
 
-## glob
+### glob
 
 glob(field: string, value: string): DataSharePredicates
 
@@ -405,7 +408,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.glob("NAME", "?h*g")
 ```
 
-## between
+### between
 
 between(field: string, low: ValueType, high: ValueType): DataSharePredicates
 
@@ -434,7 +437,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.between("AGE", 10, 50)
 ```
 
-## notBetween
+### notBetween
 
 notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates
 
@@ -463,7 +466,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.notBetween("AGE", 10, 50)
 ```
 
-## greaterThan
+### greaterThan
 
 greaterThan(field: string, value: ValueType): DataSharePredicates
 
@@ -493,7 +496,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.greaterThan("AGE", 10)
 ```
 
-## lessThan
+### lessThan
 
 lessThan(field: string, value: ValueType): DataSharePredicates
 
@@ -523,7 +526,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.lessThan("AGE", 50)
 ```
 
-## greaterThanOrEqualTo
+### greaterThanOrEqualTo
 
 greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
 
@@ -553,7 +556,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.greaterThanOrEqualTo("AGE", 10)
 ```
 
-## lessThanOrEqualTo
+### lessThanOrEqualTo
 
 lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
 
@@ -583,7 +586,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.lessThanOrEqualTo("AGE", 50)
 ```
 
-## orderByAsc
+### orderByAsc
 
 orderByAsc(field: string): DataSharePredicates
 
@@ -612,7 +615,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.orderByAsc("AGE")
 ```
 
-## orderByDesc
+### orderByDesc
 
 orderByDesc(field: string): DataSharePredicates
 
@@ -641,7 +644,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.orderByDesc("AGE")
 ```
 
-## distinct
+### distinct
 
 distinct(): DataSharePredicates
 
@@ -662,7 +665,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.equalTo("NAME", "Rose").distinct()
 ```
 
-## limit
+### limit
 
 limit(total: number, offset: number): DataSharePredicates
 
@@ -692,7 +695,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.equalTo("NAME", "Rose").limit(10, 3)
 ```
 
-## groupBy
+### groupBy
 
 groupBy(fields: Array&lt;string&gt;): DataSharePredicates
 
@@ -719,7 +722,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.groupBy(["AGE", "NAME"])
 ```
 
-## indexedBy
+### indexedBy
 
 indexedBy(field: string): DataSharePredicates
 
@@ -746,7 +749,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.indexedBy("SALARY_INDEX")
 ```
 
-## in
+### in
 
 in(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
 
@@ -776,7 +779,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.in("AGE", [18, 20])
 ```
 
-## notIn
+### notIn
 
 notIn(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
 
@@ -806,7 +809,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.notIn("NAME", ["Lisa", "Rose"])
 ```
 
-## prefixKey
+### prefixKey
 
 prefixKey(prefix: string): DataSharePredicates
 
@@ -833,7 +836,7 @@ let predicates = new dataSharePredicates.DataSharePredicates()
 predicates.prefixKey("NAME")
 ```
 
-## inKeys
+### inKeys
 
 inKeys(keys: Array&lt;string&gt;): DataSharePredicates
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md b/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md
index 99bd4b7ea270c1afb786f1e284507b1d726fe868..c58b2ad12209b1fabfd32d7c7e83fa38eec097a3 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md
@@ -307,7 +307,7 @@ g_object.save("local").then((result)=>{
 
 ### revokeSave<sup>9+</sup>
 
-revokeSave(callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void
+revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void
 
 撤回保存的分布式数据对象。使用callback方式作为异步方法。
 
@@ -334,7 +334,7 @@ g_object.revokeSave((result, data) =>{
 
 ### revokeSave<sup>9+</sup>
 
-revokeSave(): Promise&lt;SaveSuccessResponse&gt;
+revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt;
 
 撤回保存的分布式数据对象。使用Promise方式作为异步方法。
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md b/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md
index 8ed0dd29dfb55764bece703a3d3ef21ba2ed2f8d..827571daedecf93ec7ba80b78565b3a12fa46f28 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md
@@ -681,7 +681,7 @@ data_preferences.getPreferences(this.context, 'mystore', function (err, preferen
 
 **系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
 
-| 名称           | 说明                           |
+| 类型           | 说明                           |
 | -------------- | ------------------------------ |
 | number         | 表示值类型为数字。             |
 | string         | 表示值类型为字符串。           |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
index d66146a2651c473b10eb82089cddd59c0122a32f..ac3e4d5e4c5da4f553e8979f5c972e7338a60308 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
@@ -21,7 +21,7 @@ import data_rdb from '@ohos.data.rdb';
 
 getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback&lt;RdbStore&gt;): void
 
-获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。
+获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -51,7 +51,7 @@ data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
 
 getRdbStore(context: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;
 
-获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。
+获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -85,7 +85,7 @@ promise.then(async (rdbStore) => {
 
 deleteRdbStore(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
 
-删除数据库,结果以callback形式返回。
+删除数据库,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -111,7 +111,7 @@ data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
 
 deleteRdbStore(context: Context, name: string): Promise&lt;void&gt;
 
-使用指定的数据库文件配置删除数据库,结果以Promise形式返回。
+使用指定的数据库文件配置删除数据库,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -953,7 +953,7 @@ predicates.notIn("NAME", ["Lisa", "Rose"])
 
 insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
 
-向目标表中插入一行数据,结果以callback形式返回。
+向目标表中插入一行数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -972,12 +972,12 @@ const valueBucket = {
     "SALARY": 100.5,
     "CODES": new Uint8Array([1, 2, 3, 4, 5]),
 }
-rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
-    if (err) {
-        console.info("Insert failed, err: " + err)
-        return
+rdbStore.insert("EMPLOYEE", valueBucket, function (status, rowId) {
+    if (status) {
+        console.log("Insert is failed");
+        return;
     }
-    console.log("Insert first done: " + ret)
+    console.log("Insert is successful, rowId = " + rowId);
 })
 ```
 
@@ -986,7 +986,7 @@ rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
 
 insert(table: string, values: ValuesBucket):Promise&lt;number&gt;
 
-向目标表中插入一行数据,结果以Promise形式返回。
+向目标表中插入一行数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1010,19 +1010,113 @@ const valueBucket = {
     "CODES": new Uint8Array([1, 2, 3, 4, 5]),
 }
 let promise = rdbStore.insert("EMPLOYEE", valueBucket)
-promise.then(async (ret) => {
-    console.log("Insert first done: " + ret)
-}).catch((err) => {
-    console.log("Insert failed, err: " + err)
+promise.then((rowId) => {
+    console.log("Insert is successful, rowId = " + rowId);
+}).catch((status) => {
+    console.log("Insert is failed");
+})
+```
+
+### batchInsert<sup>9+</sup>
+
+batchInsert(table: string, values: Array&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;):void
+
+向目标表中插入一组数据,使用callback异步回调。
+
+**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
+
+**参数:**
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| table | string | 是 | 指定的目标表名。 |
+| values | Array&lt;[ValuesBucket](#valuesbucket)&gt; | 是 | 表示要插入到表中的一组数据。 |
+| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回插入的数据个数,否则返回-1。 |
+
+**示例:**
+```js
+const valueBucket1 = {
+    "NAME": "Lisa",
+    "AGE": 18,
+    "SALARY": 100.5,
+    "CODES": new Uint8Array([1, 2, 3, 4, 5])
+}
+const valueBucket2 = {
+    "NAME": "Jack",
+    "AGE": 19,
+    "SALARY": 101.5,
+    "CODES": new Uint8Array([6, 7, 8, 9, 10])
+}
+const valueBucket3 = {
+    "NAME": "Tom",
+    "AGE": 20,
+    "SALARY": 102.5,
+    "CODES": new Uint8Array([11, 12, 13, 14, 15])
+}
+
+var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
+rdbStore.batchInsert("EMPLOYEE", valueBuckets, function(status, insertNum) {
+    if (status) {
+        console.log("bathInsert is failed, status = " + status);
+        return;
+    }
+    console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
 })
 ```
 
+### batchInsert<sup>9+</sup>
+
+batchInsert(table: string, values: Array&lt;ValuesBucket&gt;):Promise&lt;number&gt;
+
+向目标表中插入一组数据,使用Promise异步回调。
+
+**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
+
+**参数:**
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| table | string | 是 | 指定的目标表名。 |
+| values | Array&lt;[ValuesBucket](#valuesbucket)&gt; | 是 | 表示要插入到表中的一组数据。 |
+
+**返回值**:
+| 类型 | 说明 |
+| -------- | -------- |
+| Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回插入的数据个数,否则返回-1。 |
+
+**示例:**
+```js
+const valueBucket1 = {
+    "NAME": "Lisa",
+    "AGE": 18,
+    "SALARY": 100.5,
+    "CODES": new Uint8Array([1, 2, 3, 4, 5])
+}
+const valueBucket2 = {
+    "NAME": "Jack",
+    "AGE": 19,
+    "SALARY": 101.5,
+    "CODES": new Uint8Array([6, 7, 8, 9, 10])
+}
+const valueBucket3 = {
+    "NAME": "Tom",
+    "AGE": 20,
+    "SALARY": 102.5,
+    "CODES": new Uint8Array([11, 12, 13, 14, 15])
+}
+
+var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
+let promise = rdbStore.batchInsert("EMPLOYEE", valueBuckets);
+promise.then((insertNum) => {
+    console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
+}).catch((status) => {
+    console.log("bathInsert is failed, status = " + status);
+})
+```
 
 ### update
 
 update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
 
-根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。
+根据RdbPredicates的指定实例对象更新数据库中的数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1057,7 +1151,7 @@ rdbStore.update(valueBucket, predicates, function (err, ret) {
 
 update(values: ValuesBucket, predicates: RdbPredicates):Promise&lt;number&gt;
 
-根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。
+根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1093,7 +1187,7 @@ promise.then(async (ret) => {
 ### update<sup>9+</sup>
 update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
 
-根据DataSharePredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。
+根据DataSharePredicates的指定实例对象更新数据库中的数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1102,7 +1196,7 @@ update(table: string, values: ValuesBucket, predicates: dataSharePredicates.Data
 | -------- | -------- | -------- | -------- |
 | table | string | 是 | 指定的目标表名。 |
 | values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)| 是 |  DataSharePredicates的实例对象指定的更新条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)| 是 |  DataSharePredicates的实例对象指定的更新条件。 |
 | callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |
 
 **示例:**
@@ -1128,7 +1222,7 @@ rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, ret) {
 
 update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
 
-根据DataSharePredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。
+根据DataSharePredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1137,7 +1231,7 @@ update(table: string, values: ValuesBucket, predicates: dataSharePredicates.Data
 | -------- | -------- | -------- | -------- |
 | table | string | 是 | 指定的目标表名。 |
 | values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的更新条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的更新条件。 |
 
 **返回值**:
 | 类型 | 说明 |
@@ -1168,7 +1262,7 @@ promise.then(async (ret) => {
 delete(predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
 
 
-根据RdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。
+根据RdbPredicates的指定实例对象从数据库中删除数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1196,7 +1290,7 @@ rdbStore.delete(predicates, function (err, rows) {
 
 delete(predicates: RdbPredicates):Promise&lt;number&gt;
 
-根据RdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。
+根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1227,7 +1321,7 @@ promise.then((rows) => {
 delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
 
 
-根据DataSharePredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。
+根据DataSharePredicates的指定实例对象从数据库中删除数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1235,7 +1329,7 @@ delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callb
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | table | string | 是 | 指定的目标表名。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 |  DataSharePredicates的实例对象指定的删除条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 |  DataSharePredicates的实例对象指定的删除条件。 |
 | callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |
 
 **示例:**
@@ -1255,7 +1349,7 @@ rdbStore.delete("EMPLOYEE", predicates, function (err, rows) {
 
 delete(table: string, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
 
-根据DataSharePredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。
+根据DataSharePredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1263,7 +1357,7 @@ delete(table: string, predicates: dataSharePredicates.DataSharePredicates):Promi
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | table | string | 是 | 指定的目标表名。 |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的删除条件。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的删除条件。 |
 
 **返回值**:
 | 类型 | 说明 |
@@ -1287,7 +1381,7 @@ promise.then((rows) => {
 
 query(predicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
 
-根据指定条件查询数据库中的数据,结果以callback形式返回。
+根据指定条件查询数据库中的数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1317,7 +1411,7 @@ rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (e
 
 query(predicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
 
-根据指定条件查询数据库中的数据,结果以Promise形式返回。
+根据指定条件查询数据库中的数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1347,16 +1441,17 @@ query(predicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;Resul
 
 ### query<sup>9+</sup>
 
-query(predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
+query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
 
-根据指定条件查询数据库中的数据,结果以callback形式返回。
+根据指定条件查询数据库中的数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
 **参数:**
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
+| table | string | 是 | 指定的目标表名。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
 | columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
 | callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
 
@@ -1377,16 +1472,17 @@ rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"],
 
 ### query<sup>9+</sup>
 
-query(predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
+query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
 
-根据指定条件查询数据库中的数据,结果以Promise形式返回。
+根据指定条件查询数据库中的数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
 **参数:**
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
+| table | string | 是 | 指定的目标表名。 |
+| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
 | columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
 
 **返回值**:
@@ -1412,7 +1508,7 @@ promise.then((resultSet) => {
 
 querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
 
-根据指定SQL语句查询数据库中的数据,结果以callback形式返回。
+根据指定SQL语句查询数据库中的数据,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1440,7 +1536,7 @@ rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?",
 
 querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt;
 
-根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。
+根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1471,7 +1567,7 @@ promise.then((resultSet) => {
 
 executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;void&gt;):void
 
-执行包含指定参数但不返回值的SQL语句,结果以callback形式返回。
+执行包含指定参数但不返回值的SQL语句,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1499,7 +1595,7 @@ rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
 
 executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
 
-执行包含指定参数但不返回值的SQL语句,结果以Promise形式返回。
+执行包含指定参数但不返回值的SQL语句,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1584,7 +1680,7 @@ rdbStore.commit()
 
 ### rollBack<sup>8+</sup>
 
-rollBack():void;
+rollBack():void
 
 回滚已经执行的SQL语句。
 
@@ -1618,7 +1714,7 @@ try {
 
 backup(destName:string, callback: AsyncCallback&lt;void&gt;):void
 
-以指定名称备份数据库,结果以callback形式返回。
+以指定名称备份数据库,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1643,7 +1739,7 @@ rdbStore.backup("dbBackup.db", function(err) {
 
 backup(destName:string): Promise&lt;void&gt;
 
-以指定名称备份数据库,结果以promise形式返回。
+以指定名称备份数据库,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1671,7 +1767,7 @@ promiseBackup.then(()=>{
 
 restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void
 
-从指定的数据库备份文件恢复数据库,结果以callback形式返回。
+从指定的数据库备份文件恢复数据库,使用callback异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1696,7 +1792,7 @@ rdbStore.restore("dbBackup.db", function(err) {
 
 restore(srcName:string): Promise&lt;void&gt;
 
-从指定的数据库备份文件恢复数据库,结果以promise形式返回。
+从指定的数据库备份文件恢复数据库,使用Promise异步回调。
 
 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
 
@@ -1724,7 +1820,7 @@ promiseRestore.then(()=>{
 
 setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
 
-设置分布式列表,结果以callback形式返回。
+设置分布式列表,使用callback异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1752,7 +1848,7 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
 
  setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
 
-设置分布式列表,结果以Promise形式返回。
+设置分布式列表,使用Promise异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1782,7 +1878,7 @@ promise.then(() => {
 
 obtainDistributedTableName(device: string, table: string, callback: AsyncCallback&lt;string&gt;): void
 
-根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 结果以callback形式返回。
+根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1811,7 +1907,7 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err,
 
  obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
 
-根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,结果以Promise形式返回。
+根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1842,7 +1938,7 @@ promise.then((tableName) => {
 
 sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback&lt;Array&lt;[string, number]&gt;&gt;): void
 
-在设备之间同步数据, 结果以callback形式返回。
+在设备之间同步数据, 使用callback异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1876,7 +1972,7 @@ rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, resul
 
  sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
 
-在设备之间同步数据,结果以Promise形式返回。
+在设备之间同步数据,使用Promise异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1945,7 +2041,7 @@ try {
 
 off(event:'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
 
-从数据库中删除指定类型的指定观察者, 结果以callback形式返回。
+从数据库中删除指定类型的指定观察者, 使用callback异步回调。
 
 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
 
@@ -1990,7 +2086,7 @@ try {
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
 
-| 名称 | 说明 |
+| 类型 | 说明 |
 | -------- | -------- |
 | number | 表示值类型为数字。 |
 | string | 表示值类型为字符。 |
@@ -1999,14 +2095,13 @@ try {
 
 ## ValuesBucket
 
-用于存储键值对。
+用于存储键值对的类型。
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
 
-| 名称 | 参数类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| [key:&nbsp;string] | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 是 | 用于存储键值对。 |
-
+| 键类型 | 值类型 |
+| -------- | -------- |
+| string | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 
 
 ## SyncMode<sup>8+</sup>
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-storage.md b/zh-cn/application-dev/reference/apis/js-apis-data-storage.md
index e0e2307ced5b2ace2a6699cd070f0fc37f6938c9..bf111b8806a4bce5cf224b160ea3746e2b688913 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-data-storage.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-data-storage.md
@@ -793,7 +793,7 @@ off(type: 'change', callback: Callback&lt;StorageObserver&gt;): void
 
 **系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
 
-| 名称    | 说明                 |
+| 类型    | 说明                 |
 | ------- | -------------------- |
 | number  | 表示值类型为数字。   |
 | string  | 表示值类型为字符。   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md
index 3810f7281a58ec11c0dbf0b7e6e376be05fd66fe..be98b82dab1e822070f37cf16c69135b7f2ffba7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md
@@ -662,7 +662,7 @@ DAHelper.delete(
 
 ## DataAbilityHelper.delete
 
-delete(uri: string, predicates: dataAbility.DataAbilityPredicates): Promise\<number>
+delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\<number>;
 
 从数据库中删除一个或多个数据记录(Promise形式)。
 
@@ -685,7 +685,7 @@ delete(uri: string, predicates: dataAbility.DataAbilityPredicates): Promise\<num
 
 ```js
 import featureAbility from '@ohos.ability.featureAbility'
-import ohos_data_ability from '@ohos.dataAbility'
+import ohos_data_ability from '@ohos.data.dataAbility'
 var DAHelper = featureAbility.acquireDataAbilityHelper(
     "dataability:///com.example.DataAbility"
 );
@@ -741,7 +741,7 @@ DAHelper.update(
 
 ## DataAbilityHelper.update
 
-update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates): Promise\<number>
+update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.DataAbilityPredicates): Promise\<number>;
 
 更新数据库中的数据记录(Promise形式)。
 
@@ -825,7 +825,7 @@ DAHelper.query(
 
 ## DataAbilityHelper.query
 
-query(uri: string, columns: Array\<string>, predicates: dataAbility.DataAbilityPredicates): Promise\<ResultSet>
+query(uri: string, columns?: Array\<string>, predicates?: dataAbility.DataAbilityPredicates): Promise\<ResultSet>;
 
 查询数据库中的数据(Promise形式)。
 
@@ -932,8 +932,107 @@ dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "
     console.info('Operation succeeded: ' + data);
 });
 ```
+
+## DataAbilityHelper.executeBatch
+
+executeBatch(uri: string, operations: Array\<DataAbilityOperation>, callback: AsyncCallback\<Array\<DataAbilityResult>>): void;
+
+查询数据库中的数据。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
+
+**参数:**
+
+| 名称            | 类型                                         | 必填 | 描述                                             |
+| ----------    | ---------------------------------             | ---- | ------------------------------------------------ |
+| uri           | string                                        | 是   | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。|
+| operations    |  Array\<[DataAbilityOperation](#dataabilityoperation)>               | 是   | 指示数据操作列表,其中可以包含对数据库的多个操作。   |
+| callback      |  AsyncCallback\<Array\<[DataAbilityResult](#dataabilityresult)>>    | 是   |在数组 DataAbilityResult中返回每个操作的结果。      |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility';
+
+// 根据DataAbilityOperation列表选择要对数据库做的操作
+let op=new Array();
+let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
+dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility", op, (err, data) => {
+    if (err) {
+        console.error('Operation failed. Cause: ' + err);
+        return;
+    }
+    console.info('Operation succeeded: ' + data);
+});
+```
+
+## DataAbilityHelper.executeBatch
+
+executeBatch(uri: string, operations: Array\<DataAbilityOperation>): Promise\<Array\<DataAbilityResult>>;
+
+查询数据库中的数据。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
+
+**参数:**
+
+| 名称          | 类型                            | 必填 | 描述                                             |
+| ----------    | -------------------------------| ---- | ------------------------------------------------ |
+| uri           | string                         | 是   | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。|
+| operations    |  Array\<[DataAbilityOperation](#dataabilityoperation)>  | 是   | 指示数据操作列表,其中可以包含对数据库的多个操作。   |
+
+**返回值:**
+
+| 类型 | 说明 |
+|------ | ------- |
+|Promise\<Array\<[DataAbilityResult](#dataabilityresult)>> | 在数组 DataAbilityResult中返回每个操作的结果。 |
+
+**示例:**
+
+```js
+import featureAbility from '@ohos.ability.featureAbility';
+
+// 根据DataAbilityOperation列表选择要对数据库做的操作
+let op=new Array();
+let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
+dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility",op ).then((data) => {
+    console.info('Operation succeeded: ' + data);
+}).catch((error) => {
+    console.error('Operation failed. Cause: ' + error);
+});
+
+```
+
 ## PacMap
 
+[key: string]: number | string | boolean | Array\<string | number | boolean> | null;
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
+
 | 名称 | 参数类型 | 必填 | 说明 |
 | ------ | ------ | ------ | ------ |
-| [key: string] | number \| string \| boolean \| Array\<string \| number \| boolean\> \| null | 是 | 数据存储在键值对中。 |
\ No newline at end of file
+| [key: string] | number \| string \| boolean \| Array\<string \| number \| boolean\> \| null | Yes| 数据存储在键值对中。|
+
+## DataAbilityOperation
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
+
+| 名称       | 参数类型     | 可读    |   可写    |     必填|       说明      |
+| --------  | --------    | -------- | -------- | --------| --------        |
+| uri   | string | 是      |     否    |      是    | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。  | 
+| type   | featureAbility.DataAbilityOperationType | 是      |     否    |      是    | 指示操作类型。  | 
+| valuesBucket?   |  rdb.ValuesBucket | 是      |     否    |      否    | 指示要设置的数据值。  | 
+| valueBackReferences?   | rdb.ValuesBucket | 是      |     否    |      否    | 指示包含一组键值对的valuesBucket对象。  | 
+| predicates?   | dataAbility.DataAbilityPredicates | 是      |     否    |      否    | 指示要设置的筛选条件。如果此参数为空,则所有数据记录。  | 
+| predicatesBackReferences?   | Map\<number, number> | 是      |     否    |      否    | 指示用作谓词中筛选条件的反向引用。  | 
+| interrupted?   | boolean | 是      |     否    |      否    | 指定是否可以中断批处理操作。  | 
+| expectedCount?   | number | 是      |     否    |      否    | 指示要更新或删除的预期行数。  | 
+
+## DataAbilityResult
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
+
+| 名称       | 参数类型  | 可读      |   可写     |     必填    |       说明   |
+| --------  | --------  | --------  | --------  | --------    | --------    |
+| uri?      | string    | 是        |     否     |      否    | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。  | 
+| count?     | number    | 是        |     否     |      否    | 指示受操作影响的行数。  | 
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md
index d37d15441adf61ff9df73d4728ac94ce973432b0..21a164bd5006b04eb34b932d543a8deed0419420 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md
@@ -9,7 +9,7 @@
 - 认证和取消认证设备
 - 查询可信设备列表
 - 查询本地设备信息,包括设备名称,设备类型和设备标识
-
+- 发布设备发现
 > **说明:**
 >
 > - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
@@ -32,10 +32,10 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | bundleName | string | 是 | 指示应用程序的包名。 |
-  | callback | AsyncCallback&lt;[DeviceManager](#devicemanager)&gt; | 是 | DeviceManager实例创建时调用的回调,返回设备管理器对象实例。 |
+  | 参数名        | 类型                                       | 必填   | 说明                                   |
+  | ---------- | ---------------------------------------- | ---- | ------------------------------------ |
+  | bundleName | string                                   | 是    | 指示应用程序的包名。                           |
+  | callback   | AsyncCallback&lt;[DeviceManager](#devicemanager)&gt; | 是    | DeviceManager实例创建时调用的回调,返回设备管理器对象实例。 |
 
 - 示例:
   ```
@@ -45,7 +45,7 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
           return;
       }
       console.info("createDeviceManager success");
-      this.dmInstance = data;
+      let dmInstance = data;
   });
   ```
 
@@ -55,13 +55,13 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 类型 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 设备的唯一标识。 |
-| deviceName | string | 是 | 设备名称。 |
-| deviceType | [DeviceType](#deviceType) | 是 | 设备类型。 |
-| networkId<sup>8+</sup> | string | 是 | 设备网络标识。 |
-
+| 名称                     | 类型                        | 必填   | 描述       |
+| ---------------------- | ------------------------- | ---- | -------- |
+| deviceId               | string                    | 是    | 设备的唯一标识。 |
+| deviceName             | string                    | 是    | 设备名称。    |
+| deviceType             | [DeviceType](#devicetype) | 是    | 设备类型。    |
+| networkId<sup>8+</sup> | string                    | 是    | 设备网络标识。  |
+| range<sup>9+</sup>     | number                    | 是    | 发现设备的距离。  |
 
 ## DeviceType
 
@@ -69,15 +69,15 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| SPEAKER | 0x0A | 智能音箱 |
-| PHONE | 0x0E | 手机 |
-| TABLET | 0x11 | 平板 |
-| WEARABLE | 0x6D | 智能穿戴 |
-| TV | 0x9C | 智慧屏 |
-| CAR | 0x83 | 车 |
-| UNKNOWN_TYPE | 0 | 未知设备 |
+| 名称           | 默认值  | 说明   |
+| ------------ | ---- | ---- |
+| SPEAKER      | 0x0A | 智能音箱 |
+| PHONE        | 0x0E | 手机   |
+| TABLET       | 0x11 | 平板   |
+| WEARABLE     | 0x6D | 智能穿戴 |
+| TV           | 0x9C | 智慧屏  |
+| CAR          | 0x83 | 车    |
+| UNKNOWN_TYPE | 0    | 未知设备 |
 
 
 ## DeviceStateChangeAction
@@ -86,12 +86,12 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| ONLINE | 0 | 设备上线。 |
-| READY | 1 | 设备就绪,设备信息同步已完成。 |
-| OFFLINE | 2 | 设备下线。 |
-| CHANGE | 3 | 设备信息更改。 |
+| 名称      | 默认值  | 说明              |
+| ------- | ---- | --------------- |
+| ONLINE  | 0    | 设备上线。           |
+| READY   | 1    | 设备就绪,设备信息同步已完成。 |
+| OFFLINE | 2    | 设备下线。           |
+| CHANGE  | 3    | 设备信息更改。         |
 
 ## SubscribeInfo
 
@@ -99,15 +99,15 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 类型 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- |
-| subscribeId | number | 是 | 发现标识,用于标识不同的发现周期。 |
-| mode | [DiscoverMode ](#discoverMode) | 否 | 发现模式。 |
-| medium | [ExchangeMedium](#exchangeMedium) | 否 | 发现类型。 |
-| freq | [ExchangeFreq](#exchangeFreq) | 否 | 发现频率。 |
-| isSameAccount | boolean | 否 | 是否同账号。 |
-| isWakeRemote | boolean | 否 | 是否唤醒设备。 |
-| capability | [SubscribeCap](#subscribeCap) | 否 | 发现能力。 |
+| 名称            | 类型                                | 必填   | 描述                |
+| ------------- | --------------------------------- | ---- | ----------------- |
+| subscribeId   | number                            | 是    | 发现标识,用于标识不同的发现周期。 |
+| mode          | [DiscoverMode ](#discovermode)    | 否    | 发现模式。             |
+| medium        | [ExchangeMedium](#exchangemedium) | 否    | 发现类型。             |
+| freq          | [ExchangeFreq](#exchangefreq)     | 否    | 发现频率。             |
+| isSameAccount | boolean                           | 否    | 是否同账号。            |
+| isWakeRemote  | boolean                           | 否    | 是否唤醒设备。           |
+| capability    | [SubscribeCap](#subscribecap)     | 否    | 发现能力。             |
 
 
 ## DiscoverMode 
@@ -116,10 +116,10 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
+| 名称                    | 默认值  | 说明    |
+| --------------------- | ---- | ----- |
 | DISCOVER_MODE_PASSIVE | 0x55 | 被动模式。 |
-| DISCOVER_MODE_ACTIVE | 0xAA | 主动模式。 |
+| DISCOVER_MODE_ACTIVE  | 0xAA | 主动模式。 |
 
 
 ## ExchangeMedium 
@@ -128,12 +128,12 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| AUTO | 0 | 自动发现类型。 |
-| BLE | 1 | 蓝牙发现类型。 |
-| COAP | 2 | WiFi发现类型。 |
-| USB | 3 | USB发现类型。 |
+| 名称   | 默认值  | 说明        |
+| ---- | ---- | --------- |
+| AUTO | 0    | 自动发现类型。   |
+| BLE  | 1    | 蓝牙发现类型。   |
+| COAP | 2    | WiFi发现类型。 |
+| USB  | 3    | USB发现类型。  |
 
 ## ExchangeFreq 
 
@@ -141,12 +141,12 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| LOW | 0 | 低频率。 |
-| MID | 1 | 中频率。 |
-| HIGH | 2 | 高频率。 |
-| SUPER_HIGH | 3 | 超高频率。 |
+| 名称         | 默认值  | 说明    |
+| ---------- | ---- | ----- |
+| LOW        | 0    | 低频率。  |
+| MID        | 1    | 中频率。  |
+| HIGH       | 2    | 高频率。  |
+| SUPER_HIGH | 3    | 超高频率。 |
 
 
 ## SubscribeCap 
@@ -155,10 +155,10 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| SUBSCRIBE_CAPABILITY_DDMP | 0 | DDMP能力,后续会被废弃。 |
-| SUBSCRIBE_CAPABILITY_OSD | 1 | OSD能力。 |
+| 名称                        | 默认值  | 说明             |
+| ------------------------- | ---- | -------------- |
+| SUBSCRIBE_CAPABILITY_DDMP | 0    | DDMP能力,后续会被废弃。 |
+| SUBSCRIBE_CAPABILITY_OSD  | 1    | OSD能力。         |
 
 
 ## AuthParam
@@ -167,10 +167,10 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 类型 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- |
-| authType | number | 是 | 认证类型。 |
-| extraInfo | {[key:string] : any} | 否 | 认证参数可扩展字段。 |
+| 名称        | 类型                   | 必填   | 描述         |
+| --------- | -------------------- | ---- | ---------- |
+| authType  | number               | 是    | 认证类型。      |
+| extraInfo | {[key:string] : any} | 否    | 认证参数可扩展字段。 |
 
 ## AuthInfo
 
@@ -178,12 +178,24 @@ createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager
 
 **系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
 
-| 名称 | 类型 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- |
-| authType | number | 是 | 认证类型。 |
-| token | number | 是 | 认证Token。 |
-| extraInfo | {[key:string] : any} | 否 | 认证信息可扩展字段。 |
+| 名称        | 类型                   | 必填   | 描述         |
+| --------- | -------------------- | ---- | ---------- |
+| authType  | number               | 是    | 认证类型。      |
+| token     | number               | 是    | 认证Token。   |
+| extraInfo | {[key:string] : any} | 否    | 认证信息可扩展字段。 |
 
+## PublishInfo
+
+发布设备参数
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
+
+| 名称          | 类型                              | 必填   | 描述                |
+| ------------- | --------------------------------- | ---- | ----------------- |
+| publishId     | number                            | 是    | 发布设备标识,用于标识不同的发布周期。 |
+| mode          | [DiscoverMode ](#discovermode)    | 是    | 发现模式。             |
+| freq          | [ExchangeFreq](#exchangefreq)     | 是    | 发现频率。             |
+| ranging       | boolean                           | 是    | 发布的设备是否支持测距能力。             |
 
 ## DeviceManager
 
@@ -213,8 +225,8 @@ getTrustedDeviceListSync(): Array&lt;DeviceInfo&gt;
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 返回值:
-  | 名称 | 说明 |
-  | -------- | -------- |
+  | 名称                                     | 说明        |
+  | -------------------------------------- | --------- |
   | Array&lt;[DeviceInfo](#deviceinfo)&gt; | 返回可信设备列表。 |
 
 - 示例:
@@ -232,9 +244,9 @@ getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;): voi
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | 是 | 获取所有可信设备列表的回调,返回设备信息。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                    |
+  | -------- | ---------------------------------------- | ---- | --------------------- |
+  | callback | AsyncCallback&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | 是    | 获取所有可信设备列表的回调,返回设备信息。 |
 
 - 示例:
   ```js
@@ -254,8 +266,8 @@ getTrustedDeviceList(): Promise&lt;Array&lt;DeviceInfo&gt;&gt;
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 返回值:
-  | 类型 | 说明 |
-  | -------- | -------- |
+  | 类型                                       | 说明                    |
+  | ---------------------------------------- | --------------------- |
   | Promise&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | Promise实例,用于获取异步返回结果。 |
 
 - 示例:
@@ -276,8 +288,8 @@ getLocalDeviceInfoSync(): [DeviceInfo](#deviceinfo)
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 返回值:
-  | 名称 | 说明 |
-  | -------- | -------- |
+  | 名称                                     | 说明        |
+  | -------------------------------------- | --------- |
   | Array&lt;[DeviceInfo](#deviceinfo)&gt; | 返回本地设备列表。 |
 
 - 示例:
@@ -295,9 +307,9 @@ getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是 | 获取本地设备信息。 |
+  | 名称       | 参数类型                                     | 必填   | 说明        |
+  | -------- | ---------------------------------------- | ---- | --------- |
+  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是    | 获取本地设备信息。 |
 
 - 示例:
   ```js
@@ -317,8 +329,8 @@ getLocalDeviceInfo(): Promise&lt;DeviceInfo&gt;
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 返回值:
-  | 类型 | 说明 |
-  | -------- | -------- |
+  | 类型                                       | 说明                    |
+  | ---------------------------------------- | --------------------- |
   | Promise&lt;[DeviceInfo](#deviceinfo)&gt; | Promise实例,用于获取异步返回结果。 |
 
 - 示例:
@@ -339,9 +351,9 @@ startDeviceDiscovery(subscribeInfo: SubscribeInfo): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | subscribeInfo | [SubscribeInfo](#subscribeInfo) | 是 | 发现信息。 |
+  | 名称            | 参数类型                            | 必填   | 说明    |
+  | ------------- | ------------------------------- | ---- | ----- |
+  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是    | 发现信息。 |
 
 - 示例:
   ```js
@@ -359,6 +371,45 @@ startDeviceDiscovery(subscribeInfo: SubscribeInfo): void
   dmInstance.startDeviceDiscovery(subscribeInfo); //当有设备发现时,通过deviceFound回调通知给应用程序
   ```
 
+### startDeviceDiscovery9+</sup>
+
+startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions: string): void
+
+发现周边设备。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称            | 参数类型                            | 必填   | 说明    |
+  | ------------- | ------------------------------- | ---- | ----- |
+  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是   | 发现信息。 |
+  | filterOptions | [string](#filteroptions)        | 否   | 发现设备过滤信息。|
+
+- 示例:
+  ```js
+  //生成发现标识,随机数确保每次调用发现接口的标识不一致
+  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
+  var subscribeInfo = {
+      "subscribeId": subscribeId,
+      "mode": 0xAA, //主动模式
+      "medium": 0,  //自动发现类型,同时支持多种发现类型
+      "freq": 2,    //高频率
+      "isSameAccount": false,
+      "isWakeRemote": false,
+      "capability": 1
+  };
+  var filterOptions = {
+    "filter_op": "OR", // 可选, 默认"OR"
+    "filters": [
+        {
+            "type": "range",
+            "value": 50 // 需过滤发现设备的距离,单位(cm)
+        }
+    ]
+};
+  dmInstance.startDeviceDiscovery(subscribeInfo, JSON.stringify(filterOptions)); //当有设备发现时,通过deviceFound回调通知给应用程序
+  ```
+  
 ### stopDeviceDiscovery
 
 stopDeviceDiscovery(subscribeId: number): void
@@ -368,9 +419,9 @@ stopDeviceDiscovery(subscribeId: number): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | subscribeId | number | 是 | 发现标识。 |
+  | 名称          | 参数类型   | 必填   | 说明    |
+  | ----------- | ------ | ---- | ----- |
+  | subscribeId | number | 是    | 发现标识。 |
 
 - 示例:
   ```js
@@ -378,6 +429,51 @@ stopDeviceDiscovery(subscribeId: number): void
   dmInstance.stopDeviceDiscovery(subscribeId);
   ```
 
+### publishDeviceDiscovery9+</sup>
+
+publishDeviceDiscovery(publishInfo: PublishInfo): void
+
+发现设备发现。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称          | 参数类型                        | 必填 | 说明    |
+  | ------------- | ------------------------------- | ---- | ----- |
+  | publishInfo   | [PublishInfo](#publishinfo)     | 是   | 发布设备发现信息。 |
+
+- 示例:
+  ```js
+  //生成发布标识,随机数确保每次调用发现接口的标识不一致
+  var publishId = Math.floor(Math.random() * 10000 + 1000);
+  var publishInfo = {
+      "publishId": publishId,
+      "mode": 0xAA, //主动模式
+      "freq": 2,    //高频率
+      "ranging": 1  //支持发现时测距
+  };
+  dmInstance.publishDeviceDiscovery(publishInfo); //当有发布结果时,通过回调通知给应用程序
+  ```
+  
+### unPublishDeviceDiscovery
+
+unPublishDeviceDiscovery(publishId: number): void
+
+停止发布设备发现。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称        | 参数类型 | 必填 | 说明  |
+  | ----------- | -------- | ---- | ----- |
+  | publishId   | number   | 是   | 发布标识。 |
+
+- 示例:
+  ```js
+  //入参需要和publishDeviceDiscovery接口传入的publishId配对使用
+  dmInstance.unPublishDeviceDiscovery(publishId);
+  ```
+
 ### authenticateDevice
 
 authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void
@@ -387,11 +483,11 @@ authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: Async
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | deviceInfo | [DeviceInfo](#deviceInfo) | 是 | 设备信息。 |
-  | authParam | [AuthParam](#authParam) | 是 | 认证参数。 |
-  | callback | AsyncCallback<{ deviceId: string, pinToken ?: number }> | 是 | 认证结果回调。 |
+  | 名称         | 参数类型                                     | 必填   | 说明      |
+  | ---------- | ---------------------------------------- | ---- | ------- |
+  | deviceInfo | [DeviceInfo](#deviceinfo)                | 是    | 设备信息。   |
+  | authParam  | [AuthParam](#authparam)                  | 是    | 认证参数。   |
+  | callback   | AsyncCallback<{ deviceId: string, pinToken ?: number }> | 是    | 认证结果回调。 |
 
 - 示例:
   ```js
@@ -424,9 +520,9 @@ unAuthenticateDevice(deviceInfo: DeviceInfo): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | deviceInfo | [DeviceInfo](#deviceInfo) | 是 | 设备信息。 |
+  | 名称         | 参数类型                      | 必填   | 说明    |
+  | ---------- | ------------------------- | ---- | ----- |
+  | deviceInfo | [DeviceInfo](#deviceinfo) | 是    | 设备信息。 |
 
 - 示例:
   ```js
@@ -443,10 +539,10 @@ verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, le
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | authInfo | [AuthInfo](#authInfo) | 是 | 认证信息。 |
-  | authInfo | AsyncCallback<{ deviceId: string, level: number }> | 是 | 验证结果回调。 |
+  | 名称       | 参数类型                                     | 必填   | 说明      |
+  | -------- | ---------------------------------------- | ---- | ------- |
+  | authInfo | [AuthInfo](#authinfo)                    | 是    | 认证信息。   |
+  | authInfo | AsyncCallback<{ deviceId: string, level: number }> | 是    | 验证结果回调。 |
 
 - 示例:
   ```js
@@ -474,10 +570,10 @@ on(type: 'deviceStateChange',  callback: Callback&lt;{ action: DeviceStateChange
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 注册设备状态回调,固定为deviceStateChange。 |
-  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是 | 指示要注册的设备状态回调,返回设备状态和设备信息。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                             |
+  | -------- | ---------------------------------------- | ---- | ------------------------------ |
+  | type     | string                                   | 是    | 注册设备状态回调,固定为deviceStateChange。 |
+  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 指示要注册的设备状态回调,返回设备状态和设备信息。      |
 
 - 示例:
   ```js
@@ -497,10 +593,10 @@ off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChang
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 根据应用程序的包名取消注册设备状态回调。 |
-  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;&nbsp;}&gt; | 是 | 指示要取消注册的设备状态回调,返回设备状态和设备信息。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                          |
+  | -------- | ---------------------------------------- | ---- | --------------------------- |
+  | type     | string                                   | 是    | 根据应用程序的包名取消注册设备状态回调。        |
+  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;&nbsp;}&gt; | 是    | 指示要取消注册的设备状态回调,返回设备状态和设备信息。 |
 
 - 示例:
   ```js
@@ -520,10 +616,10 @@ on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: Dev
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 注册设备发现回调,以便在发现周边设备时通知应用程序。 |
-  | callback | Callback&lt;{&nbsp;subscribeId: number, device: DeviceInfo&nbsp;}&gt; | 是 | 注册设备发现的回调方法。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                         |
+  | -------- | ---------------------------------------- | ---- | -------------------------- |
+  | type     | string                                   | 是    | 注册设备发现回调,以便在发现周边设备时通知应用程序。 |
+  | callback | Callback&lt;{&nbsp;subscribeId: number, device: DeviceInfo&nbsp;}&gt; | 是    | 注册设备发现的回调方法。               |
 
 - 示例:
   ```js
@@ -542,10 +638,10 @@ off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: D
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 取消注册设备发现回调。 |
-  | callback | Callback&lt;{&nbsp;subscribeId: number, device: DeviceInfo&nbsp;}&gt; | 是 | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                          |
+  | -------- | ---------------------------------------- | ---- | --------------------------- |
+  | type     | string                                   | 是    | 取消注册设备发现回调。                 |
+  | callback | Callback&lt;{&nbsp;subscribeId: number, device: [DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 |
 
 - 示例:
   ```js
@@ -564,10 +660,10 @@ on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: nu
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。 |
-  | callback | Callback&lt;{&nbsp;subscribeId: number, reason: number&nbsp;}&gt; | 是 | 注册设备发现失败的回调方法。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                             |
+  | -------- | ---------------------------------------- | ---- | ------------------------------ |
+  | type     | string                                   | 是    | 注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。 |
+  | callback | Callback&lt;{&nbsp;subscribeId: number, reason: number&nbsp;}&gt; | 是    | 注册设备发现失败的回调方法。                 |
 
 - 示例:
   ```js
@@ -586,10 +682,10 @@ off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason:
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 取消注册设备发现失败回调。 |
-  | callback | Callback&lt;{&nbsp;subscribeId: number, reason: number&nbsp;}&gt; | 是 | 指示要取消注册的设备发现失败回调。 |
+  | 名称       | 参数类型                                     | 必填   | 说明                |
+  | -------- | ---------------------------------------- | ---- | ----------------- |
+  | type     | string                                   | 是    | 取消注册设备发现失败回调。     |
+  | callback | Callback&lt;{&nbsp;subscribeId: number, reason: number&nbsp;}&gt; | 是    | 指示要取消注册的设备发现失败回调。 |
 
 - 示例:
   ```js
@@ -599,6 +695,93 @@ off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason:
   );
   ```
 
+### on('publishSuccess')
+
+on(type: 'publishSuccess', callback: Callback&lt;{ publishId: number }&gt;): void
+
+注册发布设备发现回调监听。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称     | 参数类型                                 | 必填 | 说明                       |
+  | -------- | ---------------------------------------- | ---- | -------------------------- |
+  | type     | string                                   | 是   | 注册发布设备发现回调,以便将发布结果时通知应用程序。 |
+  | callback | Callback&lt;{ publishId: number }&gt;    | 是   | 注册设备发布的回调方法。               |
+
+- 示例:
+  ```js
+  dmInstance.on('publishSuccess', (data) => {
+        console.info("publishSuccess:" + JSON.stringify(data));
+      }
+  );
+  ```
+
+### off('publishSuccess')
+
+off(type: 'publishSuccess', callback?: Callback&lt;{ publishId: number }&gt;): void
+
+取消注册设备发现回调。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称     | 参数类型                                 | 必填 | 说明                          |
+  | -------- | ---------------------------------------- | ---- | --------------------------- |
+  | type     | string                                   | 是   | 取消注册设备发现回调。                 |
+  | callback | Callback&lt;{ publishId: number }&gt;    | 是   | 指示要取消注册的设备发布回调。 |
+
+- 示例:
+  ```js
+  dmInstance.off('publishSuccess', (data) => {      
+        console.info('publishSuccess' + JSON.stringify(data));
+      }
+  );
+  ```
+
+### on('publishFail')
+
+on(type: 'publishFail', callback: Callback&lt;{ publishId: number, reason: number }&gt;): void
+
+注册设备发布失败回调监听。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称     | 参数类型                                              | 必填 | 说明                             |
+  | -------- | ----------------------------------------------------- | ---- | ------------------------------ |
+  | type     | string                                                | 是   | 注册设备发布失败回调,以便在发布设备失败时通知应用程序。 |
+  | callback | Callback&lt;{ publishId: number, reason: number }&gt; | 是   | 注册设备发布失败的回调方法。                 |
+
+- 示例:
+  ```js
+  dmInstance.on('publishFail', (data) => {
+        this.log("publishFail on:" + JSON.stringify(data));
+      }
+  );
+  ```
+
+### off('publishFail')
+
+off(type: 'publishFail', callback?: Callback&lt;{ publishId: number, reason: number }&gt;): void
+
+取消注册设备发现失败回调。
+
+**系统能力**:SystemCapability.DistributedHardware.DeviceManager
+
+- 参数:
+  | 名称     | 参数类型                                              | 必填 | 说明                |
+  | -------- | ----------------------------------------------------- | ---- | ----------------- |
+  | type     | string                                                | 是   | 取消注册设备发布失败回调。     |
+  | callback | Callback&lt;{ publishId: number, reason: number }&gt; | 是   | 指示要取消注册的设备发布失败回调。 |
+
+- 示例:
+  ```js
+  dmInstance.off('publishFail', (data) => {      
+        console.info('publishFail' + JSON.stringify(data));
+      }
+  );
+  ```
 
 ### on('serviceDie')
 
@@ -609,10 +792,10 @@ on(type: 'serviceDie', callback: () =&gt; void): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
-  | callback | ()&nbsp;=&gt;&nbsp;void | 是 | 注册serviceDie的回调方法。 |
+  | 名称       | 参数类型                    | 必填   | 说明                                       |
+  | -------- | ----------------------- | ---- | ---------------------------------------- |
+  | type     | string                  | 是    | 注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
+  | callback | ()&nbsp;=&gt;&nbsp;void | 是    | 注册serviceDie的回调方法。                       |
 
 - 示例:
   ```js
@@ -632,10 +815,10 @@ off(type: 'serviceDie', callback?: () =&gt; void): void
 **系统能力**:SystemCapability.DistributedHardware.DeviceManager
 
 - 参数:
-  | 名称 | 参数类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | type | string | 是 | 取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
-  | callback | ()&nbsp;=&gt;&nbsp;void | 否 | 取消注册serviceDie的回调方法。 |
+  | 名称       | 参数类型                    | 必填   | 说明                                       |
+  | -------- | ----------------------- | ---- | ---------------------------------------- |
+  | type     | string                  | 是    | 取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
+  | callback | ()&nbsp;=&gt;&nbsp;void | 否    | 取消注册serviceDie的回调方法。                     |
 
 - 示例:
   ```js
diff --git a/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md b/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..2ea328f8452288a0bf4461c6704217f5323cb971
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md
@@ -0,0 +1,20 @@
+# DispatchInfo
+
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+
+
+调度信息类
+
+## DispatchInfo
+
+**系统能力**: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
+
+| 名称        | 类型   | 可读 | 可写 | 说明                     |
+| ----------- | ------ | ---- | ---- | ------------------------ |
+| verison     | string | 是   | 否   | 包含dispatchInfo版本信息 |
+| dispatchAPI | string | 是   | 否   | 包含免安装接口版本号     |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-display.md b/zh-cn/application-dev/reference/apis/js-apis-display.md
index a0512d075e978281605477d13f402967fcb043b3..22e041d0a45217c562d4c421d82b9a721f0cfcce 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-display.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-display.md
@@ -174,6 +174,42 @@ getAllDisplay(): Promise&lt;Array&lt;Display&gt;&gt;
   });
   ```
 
+## display.hasPrivateWindow<sup>9+</sup>
+
+hasPrivateWindow(displayId: number): boolean
+
+查询指定display对象上是否有可见的隐私窗口。可通过[setPrivacyMode](js-apis-window.md#setprivacymode7)接口设置隐私窗口。隐私窗口内容将无法被截屏或录屏。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名 | 类型                      | 必填 | 说明       |
+| ------ | ------------------------- | ---- |----------|
+| id     | number                    | 是   | 显示设备的id。 |
+
+**返回值:**
+
+| 类型                             | 说明                                                                    |
+| -------------------------------- |-----------------------------------------------------------------------|
+|boolean | 查询的display对象上是否有可见的隐私窗口。<br>true表示此display对象上有可见的隐私窗口,false表示此display对象上没有可见的隐私窗口。</br> |
+
+**示例:**
+
+  ```js
+  var ret = display.hasPrivateWindow(displayClass.id);
+  if (ret == undefined) {
+      console.log("HasPrivateWindow undefined.");
+  }
+  if (ret) {
+      console.log("HasPrivateWindow.");
+  } else if (!ret) {
+      console.log("Don't HasPrivateWindow.");
+  }
+  ```
+
 ## display.on('add'|'remove'|'change')
 
 on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void
@@ -215,3 +251,4 @@ off(type: 'add'|'remove'|'change', callback?: Callback&lt;number&gt;): void
   ```js
   display.off("remove");
   ```
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md
index f6e715f41a98d066a88c4dc58c2064ee63dba262..626629182d7da7c388a03a3c4b0aa37168458d71 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md
@@ -43,7 +43,7 @@ queryOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): v
 
 **系统能力:** SystemCapability.Account.OsAccount
 
-**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。
+**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC。
 
 - 参数:
   | 参数名 | 类型 | 必填 | 说明 |
@@ -68,7 +68,7 @@ queryOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
 
 **系统能力:** SystemCapability.Account.OsAccount
 
-**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。
+**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC。
 
 - 返回值:
   | 类型 | 说明 |
@@ -94,7 +94,7 @@ updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCall
 
 **系统能力:** SystemCapability.Account.OsAccount
 
-**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该权限仅供系统应用使用。
+**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS。
 
 - 参数:
   | 参数名 | 类型 | 必填 | 说明 |
@@ -119,7 +119,7 @@ updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt
 
 **系统能力:** SystemCapability.Account.OsAccount
 
-**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该权限仅供系统应用使用。
+**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS。
 
 - 参数:
   | 参数名 | 类型 | 必填 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md
index f043079681dfc50caa3c56b86b6c7ee615bfda6a..42fee9042b090961be2e5b9e877b1fde48180745 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md
@@ -182,7 +182,7 @@ export default class MyAbilityStage extends AbilityStage {
 
 | 参数名 | 参数类型 | 必填 | 说明 |
 | ----- | ------ | ------ | ------ |
-| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
+| context<sup>9+<sup> | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
 | userInfo | [UserInfo](#userinfo) | 是  | 调用方的用户信息。 |
 | bundleName | string | 是  | 调用方的包名。 |
 
@@ -558,7 +558,7 @@ getAllKVStoreId(appId: string): Promise&lt;string[]&gt;
 let kvManager;
 try {
     console.log('GetAllKVStoreId');
-    kvManager.getAllKVStoreId('apppId').then((data) => {
+    kvManager.getAllKVStoreId('appId').then((data) => {
         console.log('getAllKVStoreId success');
         console.log('size = ' + data.length);
     }).catch((err) => {
@@ -844,7 +844,7 @@ let kvStore;
 try {
     let resultSet;
     kvStore.getResultSet('batch_test_string_key').then((result) => {
-        console.log('getResultSet succeeed.');
+        console.log('getResultSet succeeded.');
         resultSet = result;
     }).catch((err) => {
         console.log('getResultSet failed: ' + err);
@@ -2301,7 +2301,7 @@ try {
 
 ### delete<sup>9+</sup>
 
-delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;void&gt;): void
+delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;void&gt;)
 
 从数据库中删除符合predicates条件的键值对,并通过callback方式返回,此方法为异步方法。
 
@@ -2311,7 +2311,7 @@ delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallb
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------  | ----  | ----------------------- |
-| predicates    | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。|
+| predicates    | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。|
 | callback  | AsyncCallback&lt;void&gt;  | 是    |回调函数。   |
 
 **示例:**
@@ -2345,7 +2345,7 @@ delete(predicates: dataSharePredicates.DataSharePredicates): Promise&lt;void&gt;
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------  | ----  | ----------------------- |
-| predicates    | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。|
+| predicates    | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。|
 
 
 **返回值:**
@@ -2381,7 +2381,7 @@ try {
 
 ### on('dataChange')
 
-on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;ChangeNotification&gt;): void
+on(event: 'dataChange', type: SubscribeType, listener: Callback&lt;ChangeNotification&gt;): void
 
 订阅指定类型的数据变更通知。
 
@@ -2393,7 +2393,7 @@ on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;ChangeNotific
 | -----  | ------  | ----  | ----------------------- |
 | event  |string  | 是    |订阅的事件名,固定为'dataChange',表示数据变更事件。       |
 | type  |[SubscribeType](#subscribetype) | 是    |表示订阅的类型。     |
-| observer |Callback&lt;[ChangeNotification](#changenotification)&gt; | 是    |回调函数。 |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; | 是    |回调函数。 |
 
 **示例:**
 
@@ -2431,7 +2431,7 @@ kvStore.on('syncComplete', function (data) {
 
 ### off('dataChange')<sup>8+</sup>
 
-off(event:'dataChange', observer?: Callback&lt;ChangeNotification&gt;): void
+off(event:'dataChange', listener?: Callback&lt;ChangeNotification&gt;): void
 
 取消订阅数据变更通知。
 
@@ -2442,7 +2442,7 @@ off(event:'dataChange', observer?: Callback&lt;ChangeNotification&gt;): void
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------  | ----  | ----------------------- |
 | event  |string  | 是    |取消订阅的事件名,固定为'dataChange',表示数据变更事件。       |
-| observer |Callback&lt;[ChangeNotification](#changenotification)&gt; |否    |回调函数。 |
+| listener |Callback&lt;[ChangeNotification](#changenotification)&gt; |否    |回调函数。 |
 
 **示例:**
 
@@ -2522,10 +2522,10 @@ try {
     console.log('entries: ' + JSON.stringify(entries));
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key', function (err,entrys) {
+        kvStore.getEntries('batch_test_string_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -2574,7 +2574,7 @@ try {
     console.log('entries: ' + JSON.stringify(entries));
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
             console.log('getEntries success');
             console.log('PutBatch ' + JSON.stringify(entries));
         }).catch((err) => {
@@ -3313,10 +3313,10 @@ try {
     }
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_number_key', function (err,entrys) {
+        kvStore.getEntries('batch_test_number_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -3365,12 +3365,12 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('batch_test_string_key').then((entries) => {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
-            console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value));
-            console.log('entrys[0].value.value: ' + entrys[0].value.value);
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
         });
@@ -3421,10 +3421,10 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query, function (err,entrys) {
+        kvStore.getEntries(query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
     console.log('GetEntries success');
@@ -3477,7 +3477,7 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query).then((entrys) => {
+        kvStore.getEntries(query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
@@ -3717,8 +3717,8 @@ getResultSet(predicates: dataSharePredicates.DataSharePredicates, callback: Asyn
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------   | ----  | ----------------------- |
-| predicates  | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)    | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。             |
-| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultsetsup8sup)&gt;   | 是    |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 |
+| predicates  | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)    | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。             |
+| callback  |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt;   | 是    |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 |
 
 **示例:**
 
@@ -3752,7 +3752,7 @@ getResultSet(predicates: dataSharePredicates.DataSharePredicates): Promise&lt;Kv
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------   | ----  | ----------------------- |
-| predicates  |[DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。            |
+| predicates  |[DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)  | 是    |指示筛选条件,当此参数为null时,应定义处理逻辑。            |
 
 **返回值:**
 
@@ -4164,7 +4164,7 @@ kvStore.off('dataChange', function (data) {
 ### sync<sup>7+</sup>
 
 
-sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
+sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
 
 在手动同步方式下,触发数据库同步。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。
 
@@ -4176,9 +4176,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------   | ----  | ----------------------- |
-| deviceIdList  |string[]  | 是    |同一组网环境下,需要同步的设备的deviceId列表。    |
+| deviceIds  |string[]  | 是    |同一组网环境下,需要同步的设备的deviceId列表。    |
 | mode  |[SyncMode](#syncmode)   | 是   |同步模式。    |
-| allowedDelayMs  |number   | 否   |可选参数,允许延时时间,单位:ms(毫秒)。   |
+| delayMs  |number   | 否   |可选参数,允许延时时间,单位:ms(毫秒)。   |
 
 **示例:**
 
@@ -4202,7 +4202,7 @@ sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
 | -----  | ------   | ----  | ----------------------- |
 | deviceIds  |string[]  | 是    |同一组网环境下,需要同步的设备的deviceId列表。    |
 | mode            |[SyncMode](#syncmode)  | 是    |同步模式。  |
-| query  |[Query](#querysup8sup)   | 是   |表示数据库的查询谓词条件  |
+| query  |[Query](#query8)   | 是   |表示数据库的查询谓词条件  |
 | delayMs  |number   | 否   |可选参数,允许延时时间,单位:ms(毫秒)。   |
 
 **示例:**
@@ -4320,7 +4320,7 @@ try {
         console.log('getSecurityLevel success');
     });
 }catch(e) {
-    console.log('GetSecurityLeve e ' + e);
+    console.log('GetSecurityLevel e ' + e);
 }
 ```
 
@@ -4350,7 +4350,7 @@ try {
         console.log('getSecurityLevel fail ' + JSON.stringify(err));
     });
 }catch(e) {
-    console.log('GetSecurityLeve e ' + e);
+    console.log('GetSecurityLevel e ' + e);
 }
 ```
 
@@ -4480,10 +4480,10 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries, async function (err,data) {
         console.log('putBatch success');
-        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entrys) {
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
 }catch(e) {
@@ -4533,12 +4533,12 @@ try {
     console.log('entries: ' + entries);
     kvStore.putBatch(entries).then(async (err) => {
         console.log('putBatch success');
-        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entrys) => {
+        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
-            console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value));
-            console.log('entrys[0].value.value: ' + entrys[0].value.value);
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
+            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
+            console.log('entries[0].value.value: ' + entries[0].value.value);
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
         });
@@ -4590,10 +4590,10 @@ try {
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
         query.deviceId('localDeviceId');
-        kvStore.getEntries(query, function (err,entrys) {
+        kvStore.getEntries(query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         });
     });
     console.log('GetEntries success');
@@ -4646,7 +4646,7 @@ try {
         console.log('putBatch success');
         const query = new distributedData.Query();
         query.prefixKey("batch_test");
-        kvStore.getEntries(query).then((entrys) => {
+        kvStore.getEntries(query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
@@ -4701,10 +4701,10 @@ try {
         var query = new distributedData.Query();
         query.deviceId('localDeviceId');
         query.prefixKey("batch_test");
-        kvStore.getEntries('localDeviceId', query, function (err,entrys) {
+        kvStore.getEntries('localDeviceId', query, function (err,entries) {
             console.log('getEntries success');
-            console.log('entrys.length: ' + entrys.length);
-            console.log('entrys[0]: ' + JSON.stringify(entrys[0]));
+            console.log('entries.length: ' + entries.length);
+            console.log('entries[0]: ' + JSON.stringify(entries[0]));
         })
     });
     console.log('GetEntries success');
@@ -4759,7 +4759,7 @@ try {
         var query = new distributedData.Query();
         query.deviceId('localDeviceId');
         query.prefixKey("batch_test");
-        kvStore.getEntries('localDeviceId', query).then((entrys) => {
+        kvStore.getEntries('localDeviceId', query).then((entries) => {
             console.log('getEntries success');
         }).catch((err) => {
             console.log('getEntries fail ' + JSON.stringify(err));
@@ -5459,7 +5459,7 @@ try {
 
 ### sync<sup>8+</sup> ###
 
-sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
+sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
 
 在手动同步方式下,触发数据库同步。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。
 
@@ -5471,9 +5471,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
 
 | 参数名  | 参数类型 | 必填  | 说明                    |
 | -----  | ------   | ----  | ----------------------- |
-| deviceIdList    |string[]               | 是    |需要同步DeviceKvStore数据库的设备ID列表。 |
+| deviceIds    |string[]               | 是    |需要同步DeviceKvStore数据库的设备ID列表。 |
 | mode            |[SyncMode](#syncmode)  | 是    |同步模式。  |
-| allowedDelayMs  |number                 | 否    |可选参数,允许延时时间,单位:ms(毫秒)。  |
+| delayMs  |number                 | 否    |可选参数,允许延时时间,单位:ms(毫秒)。  |
 
 **示例:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md
index c231350a73495a1ac47f649f3171fafbee290044..a4eb7176cbbcd12ee85096a69f6e7542a12df77b 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md
@@ -1,20 +1,19 @@
-# distributedMissionManager
+# 分布式任务管理
 
-distributedMissionManager模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。
+分布式任务管理模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。
 
 > **说明:**
-> 
+>
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>
+> 本模块接口为系统接口。
 
 ## 导入模块
 
-```
+```js
 import distributedMissionManager from '@ohos.distributedMissionManager'
 ```
 
-## 权限列表
-
-ohos.permission.MANAGE_MISSIONS
 
 ## distributedMissionManager.registerMissionListener
 
@@ -26,15 +25,13 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback,
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 注册监听设备信息。 |
-  | options | <a href="#missioncallback">MissionCallback</a> | 是 | 注册的回调方法。 |
-  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
+| 参数名       | 类型                                      | 必填   | 说明        |
+| --------- | --------------------------------------- | ---- | --------- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 注册监听设备信息。 |
+| options   | [MissionCallback](#missioncallback)     | 是    | 注册的回调方法。  |
+| callback  | AsyncCallback&lt;void&gt;               | 是    | 执行结果回调函数。 |
 
 **示例:**
 
@@ -72,20 +69,18 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback):
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 设备信息。 |
-  | options | <a href="#missioncallback">MissionCallback</a> | 是 | 注册的回调方法。 |
+| 参数名       | 类型                                       | 必填   | 说明       |
+| --------- | ---------------------------------------- | ---- | -------- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo)  | 是    | 设备信息。    |
+| options   | <a href="#missioncallback">MissionCallback</a> | 是    | 注册的回调方法。 |
 
 **返回值:**
 
-  | 类型 | 说明 | 
-  | -------- | -------- |
-  | Promise&lt;void&gt; | promise方式返回执行结果。 | 
+| 类型                  | 说明               |
+| ------------------- | ---------------- |
+| Promise&lt;void&gt; | promise方式返回执行结果。 |
 
 **示例:**
 
@@ -128,15 +123,12 @@ unregisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback&
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 设备信息。 |
-  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
+| 参数名       | 类型                                      | 必填   | 说明        |
+| --------- | --------------------------------------- | ---- | --------- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 设备信息。     |
+| callback  | AsyncCallback&lt;void&gt;               | 是    | 执行结果回调函数。 |
 
 **示例:**
 
@@ -160,19 +152,17 @@ unregisterMissionListener(parameter: MissionDeviceInfo): Promise&lt;void&gt;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 设备信息。 |
+| 参数名       | 类型                                      | 必填   | 说明    |
+| --------- | --------------------------------------- | ---- | ----- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 设备信息。 |
 
 **返回值:**
 
-  | 类型 | 说明 | 
-  | -------- | -------- |
-  | Promise&lt;void&gt; | promise方式返回执行结果。 | 
+| 类型                  | 说明               |
+| ------------------- | ---------------- |
+| Promise&lt;void&gt; | promise方式返回执行结果。 |
 
 **示例:**
 
@@ -198,15 +188,12 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback&lt;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 |
-  | parameter | <a href="#missionparameter">MissionParameter</a> | 是 | 同步信息。 |
-  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
+| 参数名       | 类型                                    | 必填   | 说明        |
+| --------- | ------------------------------------- | ---- | --------- |
+| parameter | [MissionParameter](#missionparameter) | 是    | 同步信息。     |
+| callback  | AsyncCallback&lt;void&gt;             | 是    | 执行结果回调函数。 |
 
 **示例:**
 
@@ -231,19 +218,17 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise&lt;void&gt;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | parameter | <a href="#missionparameter">MissionParameter</a> | 是 | 同步信息。 |
+| 参数名       | 类型                                    | 必填   | 说明    |
+| --------- | ------------------------------------- | ---- | ----- |
+| parameter | [MissionParameter](#missionparameter) | 是    | 同步信息。 |
 
 **返回值:**
 
-  | 类型 | 说明 | 
-  | -------- | -------- |
-  | Promise&lt;void&gt; | promise方式返回执行结果。 | 
+| 类型                  | 说明               |
+| ------------------- | ---------------- |
+| Promise&lt;void&gt; | promise方式返回执行结果。 |
 
 **示例:**
 
@@ -271,15 +256,12 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback&lt;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 同步信息。 |
-  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
+| 参数名       | 类型                                      | 必填   | 说明        |
+| --------- | --------------------------------------- | ---- | --------- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 同步信息。     |
+| callback  | AsyncCallback&lt;void&gt;               | 是    | 执行结果回调函数。 |
 
 **示例:**
 
@@ -302,19 +284,17 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
 
 **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-**系统API**: 此接口为系统接口,三方应用不支持调用。
-
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | parameter | <a href="#missiondeviceinfo">MissionDeviceInfo</a> | 是 | 同步信息。 |
+| 参数名       | 类型                                      | 必填   | 说明    |
+| --------- | --------------------------------------- | ---- | ----- |
+| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 同步信息。 |
 
 **返回值:**
 
-  | 类型 | 说明 | 
-  | -------- | -------- |
-  | Promise&lt;void&gt; | promise方式返回执行结果。 | 
+| 类型                  | 说明               |
+| ------------------- | ---------------- |
+| Promise&lt;void&gt; | promise方式返回执行结果。 |
 
 **示例:**
 
@@ -330,42 +310,36 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
   })
   ```
 
-## <a id ="missioncallback">MissionCallback</a>
+## MissionCallback
 
 表示开始同步后,建立的回调函数。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission
-
-**系统API**: 此接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-| 名称 | 类型 | 可读 | 可写 | 说明 | 
-| -------- | -------- | -------- | -------- | -------- |
-| notifyMissionsChanged | function | 是 | 否 | 通知任务变化,返回设备ID。| 
-| notifySnapshot | function | 是 | 否 | 通知快照变化,返回设备ID,任务ID | 
-| notifyNetDisconnect | function | 是 | 否 | 通知断开连接,返回设备ID,网络状态 | 
+| 名称                    | 类型       | 可读   | 可写   | 说明                 |
+| --------------------- | -------- | ---- | ---- | ------------------ |
+| notifyMissionsChanged | function | 是    | 否    | 通知任务变化,返回设备ID。     |
+| notifySnapshot        | function | 是    | 否    | 通知快照变化,返回设备ID,任务ID |
+| notifyNetDisconnect   | function | 是    | 否    | 通知断开连接,返回设备ID,网络状态 |
 
-## <a id ="missionparameter">MissionParameter</a>
+## MissionParameter
 
 表示同步时所需参数的枚举。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission
-
-**系统API**: 此接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-| 名称 | 参数类型 | 可读 | 可写 | 说明 | 
-| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 是 | 表示设备ID。| 
-| fixConflict | boolean | 是 | 是 | 表示是否存在版本冲突。 | 
-| tag | number | 是 | 是 | 表示特定的标签。 | 
+| 名称          | 参数类型    | 可读   | 可写   | 说明          |
+| ----------- | ------- | ---- | ---- | ----------- |
+| deviceId    | string  | 是    | 是    | 表示设备ID。     |
+| fixConflict | boolean | 是    | 是    | 表示是否存在版本冲突。 |
+| tag         | number  | 是    | 是    | 表示特定的标签。    |
 
-## <a id ="missiondeviceinfo">MissionDeviceInfo</a>
+## MissionDeviceInfo
 
 表示注册监听时所需参数的枚举。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission
-
-**系统API**: 此接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
 
-| 名称 | 参数类型 | 可读 | 可写 | 说明 | 
-| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 是 | 表示设备ID。| 
\ No newline at end of file
+| 名称       | 参数类型   | 可读   | 可写   | 说明      |
+| -------- | ------ | ---- | ---- | ------- |
+| deviceId | string | 是    | 是    | 表示设备ID。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md
index b9524a5c74feb553d0cee49a6c549973388b0d65..cfa707255ee96189c9e872c52167da6691c7048d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md
@@ -42,10 +42,10 @@ createEffect(source: image.PixelMap): Filter
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
 image.createPixelMap(color, opts)
-    .then((pixelmap) => {
-        let headFilter = effectKit.createEffect(pixelmap)
+    .then((pixelMap) => {
+        let headFilter = effectKit.createEffect(pixelMap)
     })
 ```
 
@@ -74,13 +74,12 @@ createColorPicker(source: image.PixelMap): Promise\<ColorPicker>
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
-image.createPixelMap(color, opts, (pixelmap) => {
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts, (pixelMap) => {
     effectKit.createColorPicker(pixelMap).then(colorPicker => {
             console.info("color picker=" + colorPicker);
-        })
-        .catch(ex => console.error(".error=" + ex.toString()))
     })
+    .catch(ex => console.error(".error=" + ex.toString()))
 })
 ```
 
@@ -104,15 +103,15 @@ createColorPicker(source: image.PixelMap, callback: AsyncCallback\<ColorPicker>)
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
-image.createPixelMap(color, opts, (pixelmap) => {
-    effectKit.createColorPicker(pixelMap, (error, colorPicker) ) {
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
+image.createPixelMap(color, opts, (pixelMap) => {
+    effectKit.createColorPicker(pixelMap, (error, colorPicker) => {
         if(error) {
             console.log('Failed to create color picker.');
         } else {
             console.log('Succeeded in creating color picker.');
         }
-    })
+    }) 
 })
 ```
 
@@ -152,7 +151,7 @@ getMainColor(): Promise\<Color>
 ```js
 colorPicker.getMainColor().then(color => {
     console.log('Succeeded in getting main color.')
-    console.info("color[ARGB]=" + color.alpha "," + color.red + "," + color.green + "," + color.blue);
+    console.info("color[ARGB]=" + color.alpha + "," + color.red + "," + color.green + "," + color.blue);
 }).catch(error => {
     console.log('Failed to get main color.');
 })
@@ -175,8 +174,8 @@ getMainColorSync(): Color
 **示例:**
 
 ```js
-let color = colorPicker.getMainColorSync()
-console.log('get main color =' + color)
+let color = colorPicker.getMainColorSync();
+console.log('get main color =' + color);
 ```
 
 ## Filter
@@ -208,11 +207,11 @@ blur(radius: number): Filter
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
 image.createPixelMap(color, opts)
-    .then((pixelmap) => {
+    .then((pixelMap) => {
         let radius = 5;
-        let headFilter = effectKit.createEffect(pixelmap)
+        let headFilter = effectKit.createEffect(pixelMap)
         if (headFilter != null) {
             headFilter.blur(radius)
         }
@@ -244,11 +243,11 @@ brightness(bright: number): Filter
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
 image.createPixelMap(color, opts)
-    .then((pixelmap) => {
+    .then((pixelMap) => {
         let bright = 0.5;
-        let headFilter = effectKit.createEffect(pixelmap)
+        let headFilter = effectKit.createEffect(pixelMap)
         if (headFilter != null) {
             headFilter.brightness(bright)
         }
@@ -274,10 +273,10 @@ grayscale(): Filter
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
 image.createPixelMap(color, opts)
-    .then((pixelmap) => {
-        let headFilter = effectKit.createEffect(pixelmap)
+    .then((pixelMap) => {
+        let headFilter = effectKit.createEffect(pixelMap)
         if (headFilter != null) {
             headFilter.grayscale()
         }
@@ -303,9 +302,9 @@ getPixelMap(): image.PixelMap
 ```js
 import image from "@ohos.multimedia.image"
 const color = new ArrayBuffer(96);
-let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
+let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
 image.createPixelMap(color, opts)
-    .then((pixelmap) => {
-        let pixel = effectKit.createEffect(pixelmap).grayscale().getPixelMap()
+    .then((pixelMap) => {
+        let pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap()
     })
 ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md
index 970361fa37e59657f127bed9640d07a20ab35f6b..8f2b64adf74e242fc3b3686ca4d99e6bb492e345 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md
@@ -3,7 +3,7 @@
 本模块提供企业设备管理能力,使设备具备企业场景下所需的定制能力。
 
 > **说明:**
-> 
+>
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -18,20 +18,18 @@ enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callba
 
 以异步方法根据给定的包名和类名激活设备管理员应用,使用Callback形式返回是否激活成功。
 
-**需要权限:**
-ohos.permission.MANAGE_ADMIN
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名            | 类型                                  | 必填  | 说明                 |
-| -------------- | ----------------------------------- | --- | ------------------ |
-| admin          | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用            |
-| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是   | 设备管理员应用的企业信息       |
-| type           | [AdminType](#AdminType)             | 是   | 激活的设备管理员类型         |
-| callback       | AsyncCallback\<boolean>             | 是   | callback方式返回是否激活成功 |
+| 参数名            | 类型                                  | 必填   | 说明                 |
+| -------------- | ----------------------------------- | ---- | ------------------ |
+| admin          | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用            |
+| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是    | 设备管理员应用的企业信息       |
+| type           | [AdminType](#AdminType)             | 是    | 激活的设备管理员类型         |
+| callback       | AsyncCallback\<boolean>             | 是    | callback方式返回是否激活成功 |
 
 **示例**:
 
@@ -59,23 +57,19 @@ enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId
 
 以异步方法根据给定的包名和类名激活设备管理员应用,使用Callback形式返回是否激活成功。
 
-**需要权限:**
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-ohos.permission.MANAGE_ADMIN
-
-**系统能力:**
-
- SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名            | 类型                                  | 必填  | 说明                           |
-| -------------- | ----------------------------------- | --- | ---------------------------- |
-| admin          | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用                      |
-| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是   | 设备管理员应用的企业信息                 |
-| type           | [AdminType](#AdminType)             | 是   | 激活的设备管理员类型                   |
-| userId         | number                              | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
-| callback       | AsyncCallback\<boolean>             | 是   | callback方式返回是否激活成功           |
+| 参数名            | 类型                                  | 必填   | 说明                           |
+| -------------- | ----------------------------------- | ---- | ---------------------------- |
+| admin          | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用                      |
+| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是    | 设备管理员应用的企业信息                 |
+| type           | [AdminType](#AdminType)             | 是    | 激活的设备管理员类型                   |
+| userId         | number                              | 是    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| callback       | AsyncCallback\<boolean>             | 是    | callback方式返回是否激活成功           |
 
 **示例**:
 
@@ -103,20 +97,18 @@ enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId
 
 以异步方法根据给定的包名和类名激活设备管理员应用,使用Promise形式返回是否激活成功。
 
-**需要权限:**
-ohos.permission.MANAGE_ADMIN
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名            | 类型                                  | 必填  | 说明                           |
-| -------------- | ----------------------------------- | --- | ---------------------------- |
-| admin          | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用                      |
-| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是   | 设备管理员应用的企业信息                 |
-| type           | [AdminType](#AdminType)             | 是   | 激活的设备管理员类型                   |
-| userId         | number                              | 否   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| 参数名            | 类型                                  | 必填   | 说明                           |
+| -------------- | ----------------------------------- | ---- | ---------------------------- |
+| admin          | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用                      |
+| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是    | 设备管理员应用的企业信息                 |
+| type           | [AdminType](#AdminType)             | 是    | 激活的设备管理员类型                   |
+| userId         | number                              | 否    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
 
 **返回值:**
 
@@ -149,18 +141,16 @@ disableAdmin(admin: Want, callback: AsyncCallback\<boolean>): void
 
 以异步方法根据给定的包名和类名将设备普通管理员应用去激活,使用Callback形式返回是否去激活成功。
 
-**需要权限:**
-ohos.permission.MANAGE_ADMIN
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名      | 类型                                  | 必填  | 说明                  |
-| -------- | ----------------------------------- | --- | ------------------- |
-| admin    | [Want](js-apis-application-Want.md) | 是   | 普通设备管理员应用           |
-| callback | AsyncCallback\<boolean>             | 是   | callback方式返回是否去激活成功 |
+| 参数名      | 类型                                  | 必填   | 说明                  |
+| -------- | ----------------------------------- | ---- | ------------------- |
+| admin    | [Want](js-apis-application-Want.md) | 是    | 普通设备管理员应用           |
+| callback | AsyncCallback\<boolean>             | 是    | callback方式返回是否去激活成功 |
 
 **示例**:
 
@@ -184,21 +174,17 @@ disableAdmin(admin: Want, userId: number, callback: AsyncCallback\<boolean>): vo
 
 以异步方法根据给定的包名和类名将设备普通管理员应用去激活,使用Callback形式返回是否去激活成功。
 
-**需要权限:**
-
-ohos.permission.MANAGE_ADMIN
-
-**系统能力:**
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名      | 类型                                  | 必填  | 说明                           |
-| -------- | ----------------------------------- | --- | ---------------------------- |
-| admin    | [Want](js-apis-application-Want.md) | 是   | 普通设备管理员应用                    |
-| userId   | number                              | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
-| callback | AsyncCallback\<boolean>             | 是   | callback方式返回是否去激活成功          |
+| 参数名      | 类型                                  | 必填   | 说明                           |
+| -------- | ----------------------------------- | ---- | ---------------------------- |
+| admin    | [Want](js-apis-application-Want.md) | 是    | 普通设备管理员应用                    |
+| userId   | number                              | 是    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| callback | AsyncCallback\<boolean>             | 是    | callback方式返回是否去激活成功          |
 
 **示例**:
 
@@ -222,18 +208,16 @@ disableAdmin(admin: Want, userId?: number): Promise\<boolean>
 
 以异步方法根据给定的包名和类名将设备普通管理员应用去激活,使用Promise形式返回是否去激活成功。
 
-**需要权限:**
-ohos.permission.MANAGE_ADMIN
+**需要权限:** ohos.permission.MANAGE_ADMIN
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名    | 类型                                  | 必填  | 说明                           |
-| ------ | ----------------------------------- | --- | ---------------------------- |
-| admin  | [Want](js-apis-application-Want.md) | 是   | 普通设备管理员应用                    |
-| userId | number                              | 否   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| 参数名    | 类型                                  | 必填   | 说明                           |
+| ------ | ----------------------------------- | ---- | ---------------------------- |
+| admin  | [Want](js-apis-application-Want.md) | 是    | 普通设备管理员应用                    |
+| userId | number                              | 否    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
 
 **返回值:**
 
@@ -261,15 +245,14 @@ disableSuperAdmin(bundleName: String, callback: AsyncCallback\<boolean>): void
 
 以异步方法根据给定的包名将设备超级管理员应用去激活,使用Callback形式返回是否去激活成功。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名        | 类型                      | 必填  | 说明                  |
-| ---------- | ----------------------- | --- | ------------------- |
-| bundleName | String                  | 是   | 超级设备管理员应用的包名        |
-| callback   | AsyncCallback\<boolean> | 是   | callback方式返回是否去激活成功 |
+| 参数名        | 类型                      | 必填   | 说明                  |
+| ---------- | ----------------------- | ---- | ------------------- |
+| bundleName | String                  | 是    | 超级设备管理员应用的包名        |
+| callback   | AsyncCallback\<boolean> | 是    | callback方式返回是否去激活成功 |
 
 **示例**:
 
@@ -290,14 +273,13 @@ disableSuperAdmin(bundleName: String): Promise\<boolean>
 
 以异步方法根据给定的包名将设备超级管理员应用去激活,使用Promise形式返回是否去激活成功。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名        | 类型     | 必填  | 说明           |
-| ---------- | ------ | --- | ------------ |
-| bundleName | String | 是   | 超级设备管理员应用的包名 |
+| 参数名        | 类型     | 必填   | 说明           |
+| ---------- | ------ | ---- | ------------ |
+| bundleName | String | 是    | 超级设备管理员应用的包名 |
 
 **返回值:**
 
@@ -322,15 +304,14 @@ isAdminEnabled(admin: Want, callback: AsyncCallback\<boolean>): void
 
 以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Callback形式返回是否处于激活状态。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名      | 类型                                  | 必填  | 说明                   |
-| -------- | ----------------------------------- | --- | -------------------- |
-| admin    | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用              |
-| callback | AsyncCallback\<boolean>             | 是   | callback方式返回是否处于激活状态 |
+| 参数名      | 类型                                  | 必填   | 说明                   |
+| -------- | ----------------------------------- | ---- | -------------------- |
+| admin    | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用              |
+| callback | AsyncCallback\<boolean>             | 是    | callback方式返回是否处于激活状态 |
 
 **示例**:
 
@@ -354,17 +335,15 @@ isAdminEnabled(admin: Want, userId: number, callback: AsyncCallback\<boolean>):
 
 以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Callback形式返回是否处于激活状态。
 
-**系统能力:**
-
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名      | 类型                                  | 必填  | 说明                           |
-| -------- | ----------------------------------- | --- | ---------------------------- |
-| admin    | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用                      |
-| userId   | number                              | 是   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
-| callback | AsyncCallback\<boolean>             | 是   | callback方式返回是否处于激活状态         |
+| 参数名      | 类型                                  | 必填   | 说明                           |
+| -------- | ----------------------------------- | ---- | ---------------------------- |
+| admin    | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用                      |
+| userId   | number                              | 是    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| callback | AsyncCallback\<boolean>             | 是    | callback方式返回是否处于激活状态         |
 
 **示例**:
 
@@ -388,15 +367,14 @@ isAdminEnabled(admin: Want, userId?: number): Promise\<boolean>
 
 以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Promise形式返回是否处于激活状态。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名    | 类型                                  | 必填  | 说明                           |
-| ------ | ----------------------------------- | --- | ---------------------------- |
-| admin  | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用                      |
-| userId | number                              | 否   | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
+| 参数名    | 类型                                  | 必填   | 说明                           |
+| ------ | ----------------------------------- | ---- | ---------------------------- |
+| admin  | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用                      |
+| userId | number                              | 否    | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
 
 **返回值:**
 
@@ -424,15 +402,14 @@ isSuperAdmin(bundleName: String, callback: AsyncCallback\<boolean>): void
 
 以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Callback形式返回是否处于激活状态。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名        | 类型                      | 必填  | 说明                   |
-| ---------- | ----------------------- | --- | -------------------- |
-| bundleName | String                  | 是   | 设备管理员应用              |
-| callback   | AsyncCallback\<boolean> | 是   | callback方式返回是否处于激活状态 |
+| 参数名        | 类型                      | 必填   | 说明                   |
+| ---------- | ----------------------- | ---- | -------------------- |
+| bundleName | String                  | 是    | 设备管理员应用              |
+| callback   | AsyncCallback\<boolean> | 是    | callback方式返回是否处于激活状态 |
 
 **示例**:
 
@@ -453,14 +430,13 @@ isSuperAdmin(bundleName: String): Promise\<boolean>
 
 以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Promise形式返回是否处于激活状态。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数**:
 
-| 参数名        | 类型     | 必填  | 说明        |
-| ---------- | ------ | --- | --------- |
-| bundleName | String | 是   | 超级设备管理员应用 |
+| 参数名        | 类型     | 必填   | 说明        |
+| ---------- | ------ | ---- | --------- |
+| bundleName | String | 是    | 超级设备管理员应用 |
 
 **返回值:**
 
@@ -485,14 +461,13 @@ getDeviceSettingsManager(callback: AsyncCallback&lt;DeviceSettingsManager&gt;):
 
 获取DeviceSettingsManager对象,使用callback形式返回DeviceSettingsManager对象。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数:**
 
-| 参数名      | 类型                                      | 必填  | 说明                                  |
-| -------- | --------------------------------------- | --- | ----------------------------------- |
-| callback | AsyncCallback<DeviceSettingsManager&gt; | 是   | callback方式返回DeviceSettingsManager对象 |
+| 参数名      | 类型                                      | 必填   | 说明                                  |
+| -------- | --------------------------------------- | ---- | ----------------------------------- |
+| callback | AsyncCallback<DeviceSettingsManager&gt; | 是    | callback方式返回DeviceSettingsManager对象 |
 
 **示例:**
 
@@ -522,8 +497,7 @@ getDeviceSettingsManager(): Promise&lt;DeviceSettingsManager&gt;
 
 获取DeviceSettingsManager对象,使用Promise形式返回DeviceSettingsManager对象。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **返回值:**
 
@@ -555,16 +529,15 @@ setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo, callback: AsyncCa
 
 设置设备管理员应用的企业信息,使用callback形式返回是否设置成功。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数:**
 
-| 参数名            | 类型                                  | 必填  | 说明                     |
-| -------------- | ----------------------------------- | --- | ---------------------- |
-| admin          | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用                |
-| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是   | 设备管理员应用的企业信息           |
-| callback       | AsyncCallback\<boolean&gt;          | 是   | callback方式返回是否设置企业信息成功 |
+| 参数名            | 类型                                  | 必填   | 说明                     |
+| -------------- | ----------------------------------- | ---- | ---------------------- |
+| admin          | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用                |
+| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是    | 设备管理员应用的企业信息           |
+| callback       | AsyncCallback\<boolean&gt;          | 是    | callback方式返回是否设置企业信息成功 |
 
 **示例:**
 
@@ -591,21 +564,20 @@ setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise&lt;boole
 
 设置设备管理员应用的企业信息,使用Promise形式返回是否设置成功。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数:**
 
-| 参数名            | 类型                                  | 必填  | 说明           |
-| -------------- | ----------------------------------- | --- | ------------ |
-| admin          | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用      |
-| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是   | 设备管理员应用的企业信息 |
+| 参数名            | 类型                                  | 必填   | 说明           |
+| -------------- | ----------------------------------- | ---- | ------------ |
+| admin          | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用      |
+| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo)   | 是    | 设备管理员应用的企业信息 |
 
 **返回值:**
 
-| 类型                 | 说明                    |
-| ------------------ | --------------------- |
-| Promise\<boolean>; | Promise方式返回是否设置企业信息成功 |
+| 类型                | 说明                    |
+| ----------------- | --------------------- |
+| Promise\<boolean> | Promise方式返回是否设置企业信息成功 |
 
 **示例:**
 
@@ -632,15 +604,14 @@ getEnterpriseInfo(admin: Want, callback: AsyncCallback&lt;EnterpriseInfo&gt;): v
 
 获取设备管理员应用的企业信息,使用callback形式返回设备管理员应用的企业信息。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数:**
 
-| 参数名      | 类型                                                     | 必填  | 说明                       |
-| -------- | ------------------------------------------------------ | --- | ------------------------ |
-| admin    | [Want](js-apis-application-Want.md)                    | 是   | 设备管理员应用                  |
-| callback | AsyncCallback&lt;[EnterpriseInfo](#EnterpriseInfo)&gt; | 是   | callback方式返回设备管理员应用的企业信息 |
+| 参数名      | 类型                                       | 必填   | 说明                       |
+| -------- | ---------------------------------------- | ---- | ------------------------ |
+| admin    | [Want](js-apis-application-Want.md)      | 是    | 设备管理员应用                  |
+| callback | AsyncCallback&lt;[EnterpriseInfo](#EnterpriseInfo)&gt; | 是    | callback方式返回设备管理员应用的企业信息 |
 
 **示例:**
 
@@ -665,19 +636,18 @@ getEnterpriseInfo(admin: Want): Promise&lt;EnterpriseInfo&gt;
 
 获取设备管理员应用的企业信息,使用Promise形式返回设备管理员应用的企业信息。
 
-**系统能力:**
-SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
 
 **参数:**
 
-| 参数名   | 类型                                  | 必填  | 说明      |
-| ----- | ----------------------------------- | --- | ------- |
-| admin | [Want](js-apis-application-Want.md) | 是   | 设备管理员应用 |
+| 参数名   | 类型                                  | 必填   | 说明      |
+| ----- | ----------------------------------- | ---- | ------- |
+| admin | [Want](js-apis-application-Want.md) | 是    | 设备管理员应用 |
 
 **返回值:**
 
-| 类型                                               | 说明                        |
-| ------------------------------------------------ | ------------------------- |
+| 类型                                       | 说明                        |
+| ---------------------------------------- | ------------------------- |
 | Promise&lt;[EnterpriseInfo](#EnterpriseInfo)&gt; | Promise方式返回设备管理员应用的企业信息对象 |
 
 **示例:**
@@ -699,8 +669,8 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => {
 
 设备管理员应用的企业信息
 
-**系统能力:**
-以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
+
 | 名称          | 读写属性 | 类型     | 必填   | 描述                |
 | ----------- | ---- | ------ | ---- | ----------------- |
 | name        | 只读   | string | 是    | 表示设备管理员应用所属企业的名称。 |
@@ -710,8 +680,8 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => {
 
 设备管理员应用的管理员类型。
 
-**系统能力:**
-以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager
+**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager 
+
 | 名称                | 默认值  | 说明    |
 | ----------------- | ---- | ----- |
 | ADMIN_TYPE_NORMAL | 0x00 | 普通管理员 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-errorManager.md b/zh-cn/application-dev/reference/apis/js-apis-errorManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..4dfec1a0ff6f60c8fd02852f301cfe066402a606
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-errorManager.md
@@ -0,0 +1,139 @@
+# ErrorManager
+
+ErrorManager模块提供对错误观察器的注册和注销的能力。
+
+> **说明:**
+> 
+> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+```
+import errorManager from '@ohos.application.errorManager'
+```
+
+## ErrorManager.registerErrorObserver
+
+registerErrorObserver(observer: ErrorObserver): number;
+
+注册错误观测器。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+ 
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| observer | [ErrorObserver](#errorobserver) | 否 | 返回观察者的数字代码。 |
+
+**示例:**
+    
+```js
+var observer = {
+    onUnhandledException(errorMsg) {
+        console.log('onUnhandledException, errorMsg: ', errorMsg)
+    }
+}
+errorManager.registerErrorObserver(observer)
+    .then((data) => {
+        console.log('----------- registerErrorObserver success ----------', data);
+    })
+    .catch((err) => {
+        console.log('----------- registerErrorObserver fail ----------', err);
+    })
+
+```
+
+## ErrorManager.unregisterErrorObserver
+
+unregisterErrorObserver(observerId: number,  callback: AsyncCallback\<void>): void;
+
+注销错误观测器。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+ 
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| observerId | number | 否 | 返回观察者的数字代码。 |
+| callback | AsyncCallback\<void> | 否 | 表示指定的回调方法。 |
+
+**示例:**
+    
+```js
+var observerId = 100;
+
+function unregisterErrorObserverCallback(err) {
+    if (err) {
+        console.log('------------ unregisterErrorObserverCallback ------------', err);
+    }
+}
+errorManager.unregisterErrorObserver(observerId, unregisterErrorObserverCallback);
+
+```
+
+## ErrorManager.unregisterErrorObserver
+
+unregisterErrorObserver(observerId: number): Promise\<void>;
+
+注销错误观测器。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+ 
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| observerId | number | 否 | 返回观察者的数字代码。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| Promise\<void> | 返回执行结果。 |
+
+**示例:**
+    
+```js
+var observerId = 100;
+errorManager.unregisterErrorObserver(observerId)
+.then((data) => {
+    console.log('----------- unregisterErrorObserver success ----------', data);
+})
+.catch((err) => {
+    console.log('----------- unregisterErrorObserver fail ----------', err);
+})
+
+```
+
+## ErrorObserver
+
+onUnhandledException(errMsg: string): void;
+
+将在js运行时引发用户未捕获的异常时调用。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**参数:**
+ 
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| errMsg | string | 否 | 有关异常的消息和错误堆栈跟踪。 |
+
+**示例:**
+    
+```js
+var observer = {
+    onUnhandledException(errorMsg) {
+        console.log('onUnhandledException, errorMsg: ', errorMsg)
+    }
+}
+errorManager.registerErrorObserver(observer)
+    .then((data) => {
+        console.log('----------- registerErrorObserver success ----------', data);
+    })
+    .catch((err) => {
+        console.log('----------- registerErrorObserver fail ----------', err);
+    })
+
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-extension-context.md b/zh-cn/application-dev/reference/apis/js-apis-extension-context.md
index 9add67e43afa65b78f549df61a81eb3548f4883f..4be9d179fcea470a893c93043075a138a8760193 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-extension-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-extension-context.md
@@ -17,3 +17,6 @@ ExtensionContext模块提供扩展的上下文的能力,包括允许访问特
 | -------- | -------- | -------- | -------- | -------- |
 | currentHapModuleInfo | HapModuleInfo | 是 | 否 | 当前Hap包的信息。  | 
 | config   | Configuration | 是 | 否 | 模块的配置信息。 |
+| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md) | 是 | 否 | 服务扩展信息。 |
+
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md b/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md
index a20771dcdaae6d4071658b2a2f683582280349a5..5d131e1dfcab25145571f4b9b41e615965c969d2 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md
@@ -327,8 +327,6 @@ featureAbility.terminateSelfWithResult(
 });
 ```
 
-
-
 ## featureAbility.hasWindowFocus<sup>7+<sup>
 
 hasWindowFocus(callback: AsyncCallback\<boolean>): void
@@ -350,8 +348,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.hasWindowFocus()
 ```
 
-
-
 ## featureAbility.hasWindowFocus<sup>7+<sup>
 
 hasWindowFocus(): Promise\<boolean>
@@ -375,8 +371,6 @@ featureAbility.hasWindowFocus().then((data) => {
 });
 ```
 
-
-
 ## featureAbility.getWant
 
 getWant(callback: AsyncCallback\<Want>): void
@@ -398,8 +392,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.getWant()
 ```
 
-
-
 ## featureAbility.getWant
 
 getWant(): Promise\<Want>
@@ -445,8 +437,6 @@ var context = featureAbility.getContext()
 context.getBundleName()
 ```
 
-
-
 ## featureAbility.terminateSelf<sup>7+</sup>
 
 terminateSelf(callback: AsyncCallback\<void>): void
@@ -468,8 +458,6 @@ import featureAbility from '@ohos.ability.featureAbility';
 featureAbility.terminateSelf()
 ```
 
-
-
 ## featureAbility.terminateSelf<sup>7+</sup>
 
 terminateSelf(): Promise\<void>
@@ -508,18 +496,6 @@ connectAbility(request: Want, options:ConnectOptions): number
 | request | [Want](js-apis-application-Want.md)  | 是    | 表示被连接的ServiceAbility。 |
 | options | [ConnectOptions](#connectoptions) | 是    | 被指定的回调方法。             |
 
-## Want
-
-want类型说明
-
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase
-
-| 名称          | 读写属性 | 类型     | 必填   | 描述                                       |
-| ----------- | ---- | ------ | ---- | ---------------------------------------- |
-| deviceId    | 只读   | string | 否    | 表示被连接的ServiceAbility的设备id,缺省表示连接本地的ServiceAbility。 |
-| bundleName  | 只读   | string | 是    | 表示被连接的ServiceAbility的包名。                 |
-| abilityName | 只读   | string | 是    | 表示被连接的ServiceAbility的类名。                 |
-
 ## ConnectOptions
 
 ConnectOptions类型说明
diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileio.md b/zh-cn/application-dev/reference/apis/js-apis-fileio.md
index ebdc2315773a1166ee57e10a6750860225a89aa0..7393edf78b0726c0c7e057e83e04c2815f1ea0b6 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-fileio.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-fileio.md
@@ -17,15 +17,31 @@ import fileio from '@ohos.fileio';
 
 使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
 
+**Stage模型**
+
+ ```js
+import Ability from '@ohos.application.Ability';
+class MainAbility extends Ability {
+    onWindowStageCreate(windowStage) {
+        let context = this.context;
+        let path = context.filesDir;
+    }
+}
+ ```
+
+ Stage模型context的具体获取方法参见[Stage模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-ability-context.md#abilitycontext)。
+
+**FA模型**
+
  ```js
  import featureAbility from '@ohos.ability.featureAbility';
  let context = featureAbility.getContext();
- let path = '';
  context.getFilesDir().then((data) => {
-      path = data;
+      let path = data;
  })
  ```
-
+ 
+ FA模型context的具体获取方法参见[FA模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md#context%E6%A8%A1%E5%9D%97)。
 
 ## fileio.stat
 
@@ -2159,7 +2175,7 @@ createStream(path: string, mode: string): Promise&lt;Stream&gt;
 
   | 类型                                | 说明        |
   | --------------------------------- | --------- |
-  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
+  | Promise&lt;[Stream](#stream)&gt; | Promise对象。返回文件流的结果。 |
 
 **示例:**
 
@@ -2186,7 +2202,7 @@ createStream(path: string, mode: string, callback: AsyncCallback&lt;Stream&gt;):
 | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
 | path     | string                                  | 是   | 待打开文件的应用沙箱路径。                                   |
 | mode     | string                                  | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
-| callback | AsyncCallback&lt;[Stream](#stream7)&gt; | 是   | 异步打开文件流之后的回调。                                   |
+| callback | AsyncCallback&lt;[Stream](#stream)&gt; | 是   | 异步打开文件流之后的回调。                                   |
 
 **示例:**
 
@@ -2216,7 +2232,7 @@ createStreamSync(path: string, mode: string): Stream
 
   | 类型                | 说明        |
   | ------------------ | --------- |
-  | [Stream](#stream7) | 返回文件流的结果。 |
+  | [Stream](#stream) | 返回文件流的结果。 |
 
 **示例:**
 
@@ -2244,7 +2260,7 @@ fdopenStream(fd: number, mode: string): Promise&lt;Stream&gt;
 
   | 类型                               | 说明        |
   | --------------------------------- | --------- |
-  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
+  | Promise&lt;[Stream](#stream)&gt; | Promise对象。返回文件流的结果。 |
 
 **示例:**
 
@@ -2272,7 +2288,7 @@ fdopenStream(fd: number, mode: string, callback: AsyncCallback&lt;Stream&gt;): v
   | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
   | fd       | number                                   | 是    | 待打开文件的文件描述符。                             |
   | mode     | string                                   | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
-  | callback | AsyncCallback&nbsp;&lt;[Stream](#stream7)&gt; | 是    | 异步打开文件流之后的回调。                            |
+  | callback | AsyncCallback&nbsp;&lt;[Stream](#stream)&gt; | 是    | 异步打开文件流之后的回调。                            |
 
 **示例:**
 
@@ -2303,7 +2319,7 @@ fdopenStreamSync(fd: number, mode: string): Stream
 
   | 类型                | 说明        |
   | ------------------ | --------- |
-  | [Stream](#stream7) | 返回文件流的结果。 |
+  | [Stream](#stream) | 返回文件流的结果。 |
 
 **示例:**
 
@@ -2720,7 +2736,7 @@ stop(): Promise&lt;void&gt;
 
   ```js
   let filename = path +"/test.txt";
-  let watcher = await fileio.createWatcher(filename, 1, function(number){
+  let watcher = fileio.createWatcher(filename, 1, function(number){
       console.info("Monitoring times: "+number);
   });
   watcher.stop().then(function(){
@@ -2747,7 +2763,7 @@ stop(callback: AsyncCallback&lt;void&gt;): void
 
   ```js
   let filename = path +"/test.txt";
-  let watcher = await fileio.createWatcher(filename, 1, function(number){
+  let watcher = fileio.createWatcher(filename, 1, function(number){
       console.info("Monitoring times: "+number);
   });
   watcher.stop(function(){
@@ -3125,7 +3141,6 @@ read(): Promise&lt;Dirent&gt;
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   dir.read().then(function (dirent){
       console.log("read succeed:"+JSON.stringify(dirent));
   }).catch(function(err){
@@ -3151,7 +3166,6 @@ read(callback: AsyncCallback&lt;Dirent&gt;): void
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   dir.read(function (err, dirent) {
       if (dirent) {
           // do something
@@ -3178,7 +3192,6 @@ readSync(): Dirent
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   let dirent = dir.readSync();
   ```
 
@@ -3194,7 +3207,6 @@ close(): Promise&lt;void&gt;
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   dir.close().then(function(err){
       console.info("close dir successfully");
   });
@@ -3212,7 +3224,6 @@ close(callback: AsyncCallback&lt;void&gt;): void
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   dir.close(function(err){
       console.info("close dir successfully");
   });
@@ -3230,7 +3241,6 @@ closeSync(): void
 **示例:**
 
   ```js
-  let dir = fileio.opendirSync(path);
   dir.closeSync();
   ```
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-filemanager.md b/zh-cn/application-dev/reference/apis/js-apis-filemanager.md
index 802d3d71d66bb58f8cf9e49f85d4d2f336453140..ab92b4087e433f5409a19602b1028e3ee406c7cd 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-filemanager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-filemanager.md
@@ -35,12 +35,10 @@ getRoot(options? : {dev? : DevInfo}) : Promise&lt;FileInfo[]&gt;
 **示例:**
 
   ```js
-  filemanager.getRoot().then((fileInfo) => {
-      if(Array.isArray(fileInfo)) {
-          for (var i = 0; i < fileInfo.length; i++) {
-              console.log("file:"+JSON.stringify(fileInfo));
-          }
-      }
+  filemanager.getRoot().then((fileInfos) => {
+    for (var i = 0; i < fileInfos.length; i++) {
+        console.log("files:"+JSON.stringify(fileInfos));
+    }
   }).catch((err) => {
       console.log(err)
   });
@@ -69,14 +67,11 @@ getRoot(options? : {dev? : DevInfo}, callback : AsyncCallback&lt;FileInfo[]&gt;)
       "name":"local"
     }
   };
-  filemanager.getRoot(options, (err, fileInfo)=>{
-      if(Array.isArray(fileInfo)) {
-          for (var i = 0; i < fileInfo.length; i++) {
-              console.log("file:"+JSON.stringify(fileInfo));
-          }
-      } 
+  filemanager.getRoot(options, (err, fileInfos)=>{
+    for (var i = 0; i < fileInfos.length; i++) {
+        console.log("files:"+JSON.stringify(fileInfos));
+    }
   });
-  
   ```
 
 ## filemanager.listFile
@@ -111,18 +106,17 @@ listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : num
 **示例:**
 
   ```js
-  // 获取目录下所有文件
-  // 通过listFile、getRoot获取的文件uri
-  let media_path = ""
-  filemanager.listFile(media_path, "file")
-  .then((fileInfo) => {
-      if(Array.isArray(fileInfo)) {
-          for (var i = 0; i < fileInfo.length; i++) {
-              console.log("file:"+JSON.stringify(fileInfo));
-          }
-      }
+  // 获取目录下所有文件,通过getRoot获取的目录uri
+  filemanager.getRoot().then((fileInfos) => {
+    let file = fileInfos.find(item => item.name == "file_folder");
+    let path = file.path;
+    filemanager.listFile(path, "file").then((files) => {
+        console.log("files:" + JSON.stringify(files));
+      }).catch((err) => {
+        console.log("failed to get files" + err);
+      });
   }).catch((err) => {
-      console.log("failed to get file"+err);
+      console.log("failed to get root" + err);
   });
   ```
 
@@ -153,33 +147,18 @@ listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : num
 
 **示例:**
 
-  ```js
-  // 通过listFile、getRoot获取的文件path
-  let fileInfos = filemanager.getRoot(); 
-  let media_path  = "";
-  for (let i = 0; i < fileInfos.length; i++) {
-	if (fileInfos[i].name == "image_album") {
-	  media_path = fileInfos[i].path;
-	} else if (fileInfos[i].name == "audio_album") {
-	  media_path = fileInfos[i].path;
-	} else if (fileInfos[i].name == "video_album") {
-	  media_path = fileInfos[i].path;
-	} else if (fileInfos[i].name == "file_folder") {
-	  media_path = fileInfos[i].path;
-	}
-  }
-
-  filemanager.listFile(media_path, "file")
-  .then((fileInfo) => {
-    if(Array.isArray(fileInfo)) {
-        for (var i = 0; i < fileInfo.length; i++) {
-            console.log("file:"+JSON.stringify(fileInfo));
-        }
-    }
-  }).catch((err) => {
-    console.log("failed to get file"+err);
-  });
-  ```
+```js
+// 获取目录下所有文件,通过getRoot获取的目录uri
+filemanager.getRoot().then((fileInfos) => {
+  let file = fileInfos.find(item => item.name == "image_album");
+  let path = file.path;
+  filemanager.listFile(path, "image",function(err, files){
+    console.log("files:" + JSON.stringify(files));
+  })
+}).catch((err) => {
+    console.log("failed to get root" + err);
+});
+```
 
 ## filemanager.createFile
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-formInfo.md b/zh-cn/application-dev/reference/apis/js-apis-formInfo.md
index e8d857b2e2df72995164f0b47593c03e5c2c9700..119d7675b9a78fd454bfb52db57fd91e5bb9f353 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-formInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-formInfo.md
@@ -22,8 +22,6 @@ import formInfo from '@ohos.application.formInfo';
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 读写属性 | 类型                 | 描述                                                         |
 | ----------- | -------- | -------------------- | ------------------------------------------------------------ |
 | bundleName  | 只读     | string               | 表示卡片所属包的包名。                           |
@@ -51,8 +49,6 @@ SystemCapability.Ability.Form
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 值   | 说明         |
 | ----------- | ---- | ------------ |
 | JS      | 1    | 卡片类型为JS。   |
@@ -63,8 +59,6 @@ SystemCapability.Ability.Form
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 值   | 说明         |
 | ----------- | ---- | ------------ |
 | MODE_AUTO   | -1    | 自动模式。   |
@@ -77,8 +71,6 @@ SystemCapability.Ability.Form
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 读写属性 | 类型                 | 描述                                                         |
 | ----------- | -------- | -------------------- | ------------------------------------------------------------ |
 | formState  | 只读     | [FormState](#formstate)               | 表示卡片状态。                          |
@@ -90,8 +82,6 @@ SystemCapability.Ability.Form
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 值   | 说明         |
 | ----------- | ---- | ------------ |
 | UNKNOWN    | -1    | 未知状态。   |
@@ -104,8 +94,6 @@ SystemCapability.Ability.Form
 
 **系统能力**:SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
-
 | 名称        | 值   | 说明         |
 | ----------- | ---- | ------------ |
 | IDENTITY_KEY     | "ohos.extra.param.key.form_identity"    | 卡片标识。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-formextension.md b/zh-cn/application-dev/reference/apis/js-apis-formextension.md
index f014698cb88b80a3b5976a7da03f762ae708d89e..4c0c8a855454c9861d1d2ec95fc639445870bcb0 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-formextension.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-formextension.md
@@ -225,7 +225,7 @@ onConfigurationUpdated(config: Configuration): void;
   }
   ```
 
-  ## FormExtension.onAcquireFormState
+## FormExtension.onAcquireFormState
 
 onAcquireFormState?(want: Want): formInfo.FormState;
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md b/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md
index 841b484a23b78ad1ebb5152311d2963edf4b35a4..6a87544db5dc4e834e36b7e2d4b57298784aea74 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md
@@ -11,81 +11,22 @@ FormExtensionContext模块提供FormExtension具有的接口和能力。
 
 ## 使用说明
 
-FormExtensionContext模块是FormExtension的上下文环境,继承自ExtensionContext。
-
-## FormExtensionContext.updateForm
-
-updateForm(formId: string, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<void>): void
-
-主动更新卡片。
-
-**系统能力**:SystemCapability.Ability.Form
-
-**参数:**
-
-  | 参数名          | 类型                                                         | 必填 | 说明                                   |
-  | --------------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
-  | formId          | string                                                       | 是   | 请求更新的卡片ID。                     |
-  | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是   | 卡片新的数据。                         |
-  | callback        | AsyncCallback\<void>                                         | 是   | 回调函数,返回接口调用是否成功的结果。 |
-
-**示例:**
-
-  ```js
-  import formBindingData from '@ohos.application.formBindingData'
-  import FormExtension from '@ohos.application.FormExtension'
-  export default class MyFormExtension extends FormExtension {
-      onUpdate(formId) {
-          console.log('FormExtension onUpdate, formId:' + formId);
-          let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
-          this.context.updateForm(formId, obj2, (data)=>{
-              console.log('FormExtension context updateForm, data:' + data);
-          });
-      }
-  }
-
-
-  ```
-
-## FormExtensionContext.updateForm
-
-updateForm(formId: string, formBindingData: formBindingData.FormBindingData): Promise\<void>
-
-更新卡片。
-
-**系统能力**:SystemCapability.Ability.Form
-
-**参数:**
-
-  | 参数名          | 类型                                                         | 必填 | 说明               |
-  | --------------- | ------------------------------------------------------------ | ---- | ------------------ |
-  | formId          | string                                                       | 是   | 请求更新的卡片ID。 |
-  | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是   | 卡片新的数据。     |
-
-**返回值:**
-
-  | 类型           | 说明                              |
-  | -------------- | --------------------------------- |
-  | Promise\<void> | 返回一个Promise,包含接口的结果。 |
-
-**示例:**
+在使用FormExtensionContext的功能前,需要通过FormExtension获取。
+```js
+import FormExtension from '@ohos.application.FormExtension';
+import formBindingData from '@ohos.application.formBindingData'
+export default class MyFormExtension extends FormExtension {
+    onCreate() {
+        let dataObj1 = {
+            temperature:"11c",
+            "time":"11:00"
+        };
+        let obj1 = formBindingData.createFormBindingData(dataObj1);
+        return obj1;
+    }
+}
 
-  ```js
-  import formBindingData from '@ohos.application.formBindingData'
-  import FormExtension from '@ohos.application.FormExtension'
-  export default class MyFormExtension extends FormExtension {
-      onUpdate(formId) {
-          console.log('FormExtension onUpdate, formId:' + formId);
-          let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
-          this.context.updateForm(formId, obj2)
-              .then((data)=>{
-                  console.log('FormExtension context updateForm, data:' + data);
-              }).catch((error) => {
-              console.error('Operation updateForm failed. Cause: ' + error);});
-      }
-  }
-
-  ```
+```
 
 ## FormExtensionContext.startAbility
 
@@ -95,6 +36,8 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
 
 **系统能力**:SystemCapability.Ability.Form
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
 | 参数名 |                类型               | 必填 |              说明               |
@@ -124,8 +67,12 @@ this.context.startAbility(want, function(err) {
 
 startAbility(want: Want): Promise&lt;void&gt;
 
+拉起一个卡片所属应用的Ability。
+
 **系统能力**:SystemCapability.Ability.Form
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
 | 参数名 |                类型               | 必填 |              说明               |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-formprovider.md b/zh-cn/application-dev/reference/apis/js-apis-formprovider.md
index 9e7e8e0c5a2ae8b8cc3fd611d7e0230b3febc9d7..3d81a064465c818b2612eaf17563f65bcf738ffa 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-formprovider.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-formprovider.md
@@ -238,13 +238,13 @@ formProvider.getFormsInfo(filter).then((data) => {
 
 ## requestPublishForm<sup>9+</sup>
 
-requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback&lt;string&gt;): &lt;void&gt;;
+requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<string>): void;
 
 请求发布一张卡片到使用方。
 
-**系统能力:**
+**系统能力:** SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**系统API**: 此接口为系统接口,三方应用不支持调用。
 
 **参数:**
 
@@ -278,13 +278,13 @@ SystemCapability.Ability.Form
 
 ## requestPublishForm<sup>9+</sup>
 
-requestPublishForm(want: Want, callback: AsyncCallback&lt;string&gt;): &lt;void&gt;;
+requestPublishForm(want: Want, callback: AsyncCallback&lt;string&gt;): void;
 
 请求发布一张卡片到使用方。
 
-**系统能力:**
+**系统能力:** SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**系统API**: 此接口为系统接口,三方应用不支持调用。
 
 **参数:**
 
@@ -319,9 +319,9 @@ requestPublishForm(want: Want, formBindingData?: formBindingData.FormBindingData
 
 请求发布一张卡片到使用方。
 
-**系统能力:**
+**系统能力:** SystemCapability.Ability.Form
 
-SystemCapability.Ability.Form
+**系统API**: 此接口为系统接口,三方应用不支持调用。
 
 **参数:**
 
@@ -362,6 +362,8 @@ isRequestPublishFormSupported(callback: AsyncCallback&lt;boolean&gt;): void;
 
 **系统能力:** SystemCapability.Ability.Form
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
 | 参数名 | 类型    | 必填 | 说明    |
@@ -404,6 +406,8 @@ isRequestPublishFormSupported(): Promise&lt;boolean&gt;;
 
 **系统能力:** SystemCapability.Ability.Form
 
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
 **返回值:**
 
 | 类型          | 说明                                |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-geolocation.md b/zh-cn/application-dev/reference/apis/js-apis-geolocation.md
index 77ef5727a7148b5bcb46644f777524cc85862bb7..3cd5bb1b94919b8e48c4b2c8b215254963bd05aa 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-geolocation.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-geolocation.md
@@ -8,8 +8,7 @@
 
 ## 导入模块
 
-
-```
+```js
 import geolocation from '@ohos.geolocation';
 ```
 
@@ -23,17 +22,19 @@ on(type: 'locationChange', request: LocationRequest, callback: Callback&lt;Locat
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
   | request | LocationRequest | 是 | 设置位置请求参数。 |
   | callback | Callback&lt;[Location](#location)&gt; | 是 | 接收位置变化状态变化监听。 |
+  
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
   var locationChange = (location) => {
       console.log('locationChanger: data: ' + JSON.stringify(location));
@@ -52,16 +53,17 @@ off(type: 'locationChange', callback?: Callback&lt;Location&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
   | callback | Callback&lt;[Location](#location)&gt; | 否 | 接收位置变化状态变化监听。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
   var locationChange = (location) => {
       console.log('locationChanger: data: ' + JSON.stringify(location));
@@ -81,18 +83,19 @@ on(type: 'locationServiceState', callback: Callback&lt;boolean&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 |
   | callback | Callback&lt;boolean&gt; | 是 | 接收位置服务状态变化监听。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var locationServiceState = (state) => {
-      console.log('locationServiceState: ' + state);
+      console.log('locationServiceState: ' + JSON.stringify(state));
   }
   geolocation.on('locationServiceState', locationServiceState);
   ```
@@ -108,18 +111,19 @@ off(type: 'locationServiceState', callback?: Callback&lt;boolean&gt;) : void;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 |
   | callback | Callback&lt;boolean&gt; | 否 | 接收位置服务状态变化监听。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var locationServiceState = (state) => {
-      console.log('locationServiceState: state: ' + state);
+      console.log('locationServiceState: state: ' + JSON.stringify(state));
   }
   geolocation.on('locationServiceState', locationServiceState);
   geolocation.off('locationServiceState', locationServiceState);
@@ -136,19 +140,20 @@ on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, ca
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 |
   | request | CachedGnssLocationsRequest | 是 | GNSS缓存功能配置参数 |
   | callback | Callback&lt;boolean&gt; | 是 | 接收GNSS缓存位置上报。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var cachedLocationsCb = (locations) => {
-      console.log('cachedGnssLocationsReporting: locations: ' + locations);
+      console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations));
   }
   var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
   geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
@@ -165,18 +170,19 @@ off(type: 'cachedGnssLocationsReporting', callback?: Callback&lt;Array&lt;Locati
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 |
   | callback | Callback&lt;boolean&gt; | 否 | 接收GNSS缓存位置上报。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var cachedLocationsCb = (locations) => {
-      console.log('cachedGnssLocationsReporting: locations: ' + locations);
+      console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations));
   }
   var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
   geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
@@ -194,18 +200,19 @@ on(type: 'gnssStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;) : vo
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 |
   | callback | Callback&lt;SatelliteStatusInfo&gt; | 是 | 接收GNSS卫星状态信息上报。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var gnssStatusCb = (satelliteStatusInfo) => {
-      console.log('gnssStatusChange: ' + satelliteStatusInfo);
+      console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo));
   }
   geolocation.on('gnssStatusChange', gnssStatusCb);
   ```
@@ -221,17 +228,18 @@ off(type: 'gnssStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;) :
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 |
   | callback | Callback&lt;SatelliteStatusInfo&gt; | 否 | 接收GNSS卫星状态信息上报。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var gnssStatusCb = (satelliteStatusInfo) => {
-      console.log('gnssStatusChange: ' + satelliteStatusInfo);
+      console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo));
   }
   geolocation.on('gnssStatusChange', gnssStatusCb);
   geolocation.off('gnssStatusChange', gnssStatusCb);
@@ -248,18 +256,19 @@ on(type: 'nmeaMessageChange', callback: Callback&lt;string&gt;) : void;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS&nbsp;NMEA信息上报。 |
   | callback | Callback&lt;string&gt; | 是 | 接收GNSS&nbsp;NMEA信息上报。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var nmeaCb = (str) => {
-      console.log('nmeaMessageChange: ' + str);
+      console.log('nmeaMessageChange: ' + JSON.stringify(str));
   }
   geolocation.on('nmeaMessageChange', nmeaCb );
   ```
@@ -275,18 +284,19 @@ off(type: 'nmeaMessageChange', callback?: Callback&lt;string&gt;) : void;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS&nbsp;NMEA信息上报。 |
   | callback | Callback&lt;string&gt; | 否 | 接收GNSS&nbsp;NMEA信息上报。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var nmeaCb = (str) => {
-      console.log('nmeaMessageChange: ' + str);
+      console.log('nmeaMessageChange: ' + JSON.stringify(str));
   }
   geolocation.on('nmeaMessageChange', nmeaCb);
   geolocation.off('nmeaMessageChange', nmeaCb);
@@ -303,60 +313,38 @@ on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void;
 
 **系统能力**:SystemCapability.Location.Location.Geofence
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 |
   | request | GeofenceRequest | 是 | 围栏的配置参数。 |
   | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
 
 
-- 示例:
+**示例**
   
-  ```
-  import WantAgent from '@ohos.wantAgent';
-  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
-  //wantAgent对象
-  var wantAgent;
-  //getWantAgent回调
-  function getWantAgentCallback(err, data) {
-  	console.info("==========================>getWantAgentCallback=======================>");
-      if (err.code == 0) {
-  	wantAgent = data;
-      } else {
-          console.info('----getWantAgent failed!----');
-      }
-  }
-  //WantAgentInfo对象
-  var wantAgentInfo = {
+  ```js
+  import geolocation from '@ohos.geolocation';
+  import wantAgent from '@ohos.wantAgent';
+  
+  let wantAgentInfo = {
       wants: [
           {
-              deviceId: "deviceId",
-              bundleName: "com.neu.setResultOnAbilityResultTest1",
-              abilityName: "com.example.test.MainAbility",
+              bundleName: "com.example.myapplication",
+              abilityName: "com.example.myapplication.MainAbility"
               action: "action1",
-              entities: ["entity1"],
-              type: "MIMETYPE",
-              uri: "key={true,true,false}",
-              parameters:
-              {
-                  mykey0: 2222,
-                  mykey1: [1, 2, 3],
-                  mykey2: "[1, 2, 3]",
-                  mykey3: "ssssssssssssssssssssssssss",
-                  mykey4: [false, true, false],
-                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
-                  mykey6: true,
-              }
           }
       ],
-      operationType: OperationType.START_ABILITIES,
+      operationType: wantAgent.OperationType.START_ABILITY,
       requestCode: 0,
-      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
-  }
-  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
-  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
-  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
+      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+  };
+  
+  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+    var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
+    geolocation.on('fenceStatusChange', requestInfo, wantAgentObj);
+  });
   ```
 
 
@@ -370,60 +358,91 @@ off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void
 
 **系统能力**:SystemCapability.Location.Location.Geofence
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 |
   | request | GeofenceRequest | 是 | 围栏的配置参数。 |
   | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
 
-- 示例:
+**示例**
   
-  ```
-  import WantAgent from '@ohos.wantAgent';
-  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
-  //wantAgent对象
-  var wantAgent;
-  //getWantAgent回调
-  function getWantAgentCallback(err, data) {
-  	console.info("==========================>getWantAgentCallback=======================>");
-      if (err.code == 0) {
-  	wantAgent = data;
-      } else {
-          console.info('----getWantAgent failed!----');
-      }
-  }
-  //WantAgentInfo对象
-  var wantAgentInfo = {
+  ```js
+  import geolocation from '@ohos.geolocation';
+  import wantAgent from '@ohos.wantAgent';
+  
+  let wantAgentInfo = {
       wants: [
           {
-              deviceId: "deviceId",
-              bundleName: "com.neu.setResultOnAbilityResultTest1",
-              abilityName: "com.example.test.MainAbility",
+              bundleName: "com.example.myapplication",
+              abilityName: "com.example.myapplication.MainAbility"
               action: "action1",
-              entities: ["entity1"],
-              type: "MIMETYPE",
-              uri: "key={true,true,false}",
-              parameters:
-              {
-                  mykey0: 2222,
-                  mykey1: [1, 2, 3],
-                  mykey2: "[1, 2, 3]",
-                  mykey3: "ssssssssssssssssssssssssss",
-                  mykey4: [false, true, false],
-                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
-                  mykey6: true,
-              }
           }
       ],
-      operationType: OperationType.START_ABILITIES,
+      operationType: wantAgent.OperationType.START_ABILITY,
       requestCode: 0,
-      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
+      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+  };
+  
+  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+    var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
+    geolocation.on('fenceStatusChange', requestInfo, wantAgentObj);
+    geolocation.off('fenceStatusChange', requestInfo, wantAgentObj);
+  });
+  ```
+
+
+## geolocation.on('countryCodeChange')<sup>9+</sup>
+
+on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;) : void;
+
+订阅国家码信息上报事件。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息上报。 |
+  | callback | Callback&lt;CountryCode&gt; | 是 | 接收国家码信息上报。 |
+
+
+**示例**
+  
+  ```js
+  var callback = (code) => {
+      console.log('countryCodeChange: ' + JSON.stringify(code));
   }
-  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
-  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
-  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
-  geolocation.off('fenceStatusChange', requestInfo, wantAgent);
+  geolocation.on('countryCodeChange', callback);
+  ```
+
+
+## geolocation.off('countryCodeChange')<sup>9+</sup>
+
+off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;) : void;
+
+取消订阅国家码上报事件。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息上报。 |
+  | callback | Callback&lt;CountryCode&gt; | 是 | 接收国家码信息上报。 |
+
+
+**示例**
+  
+  ```js
+  var callback = (code) => {
+      console.log('countryCodeChange: ' + JSON.stringify(code));
+  }
+  geolocation.on('countryCodeChange', callback);
+  geolocation.off('countryCodeChange', callback);
   ```
 
 
@@ -438,18 +457,24 @@ getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;L
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
   | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
   var locationChange = (err, location) => {
-      console.log('locationChanger: ' + err + 'data: ' + location);
+      if (err) {
+          console.log('locationChanger: err=' + JSON.stringify(err));
+      }
+      if (location) {
+          console.log('locationChanger: location=' + JSON.stringify(location));
+      }
   };
   geolocation.getCurrentLocation(requestInfo, locationChange);
   geolocation.getCurrentLocation(locationChange);
@@ -467,22 +492,24 @@ getCurrentLocation(request?: CurrentLocationRequest) : Promise&lt;Location&gt;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;[Location](#location)&gt; | 返回位置信息。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
-  locationEventListener.getCurrentLocation(requestInfo).then((result) => {
+  geolocation.getCurrentLocation(requestInfo).then((result) => {
       console.log('current location: ' + JSON.stringify(result));
   });
   ```
@@ -498,17 +525,23 @@ getLastLocation(callback: AsyncCallback&lt;Location&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收上次位置的回调。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.getLastLocation((err, data) => {
-      console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getLastLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getLastLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -523,15 +556,16 @@ getLastLocation() : Promise&lt;Location&gt;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;[Location](#location)&gt; | 返回上次位置信息。 |
 
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.getLastLocation().then((result) => {
       console.log('getLastLocation: result: ' + JSON.stringify(result));
   });
@@ -549,17 +583,22 @@ isLocationEnabled(callback: AsyncCallback&lt;boolean&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isLocationEnabled((err, data) => {
-      console.log('isLocationEnabled: ' + err + " data: " + data);
+      if (err) {
+          console.log('isLocationEnabled: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('isLocationEnabled: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -574,16 +613,17 @@ isLocationEnabled() : Promise&lt;boolean&gt;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 返回位置服务是否可用的状态。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isLocationEnabled().then((result) => {
-      console.log('promise, isLocationEnabled: ' + result);
+      console.log('promise, isLocationEnabled: ' + JSON.stringify(result));
   });
   ```
 
@@ -599,17 +639,22 @@ requestEnableLocation(callback: AsyncCallback&lt;boolean&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.requestEnableLocation((err, data) => {
-      console.log('requestEnableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('requestEnableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('requestEnableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -624,17 +669,17 @@ requestEnableLocation() : Promise&lt;boolean&gt;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.requestEnableLocation().then((result) => {
-      console.log('promise, requestEnableLocation: ' + result);
+      console.log('promise, requestEnableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -647,21 +692,26 @@ enableLocation(callback: AsyncCallback&lt;boolean&gt;) : void;
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
-**需要权限**:ohos.permission.LOCATION
+**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.enableLocation((err, data) => {
-      console.log('enableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('enableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('enableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -674,21 +724,21 @@ enableLocation() : Promise&lt;boolean&gt;
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
-**需要权限**:ohos.permission.LOCATION
+**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.enableLocation().then((result) => {
-      console.log('promise, enableLocation: ' + result);
+      console.log('promise, enableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -700,21 +750,26 @@ disableLocation(callback: AsyncCallback&lt;boolean&gt;) : void;
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
-**需要权限**:ohos.permission.LOCATION
+**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.disableLocation((err, data) => {
-      console.log('disableLocation: ' + err + " data: " + data);
+      if (err) {
+          console.log('disableLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('disableLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -727,21 +782,21 @@ disableLocation() : Promise&lt;boolean&gt;
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
-**需要权限**:ohos.permission.LOCATION
+**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.disableLocation().then((result) => {
-      console.log('promise, disableLocation: ' + result);
+      console.log('promise, disableLocation: ' + JSON.stringify(result));
   });
   ```
 
@@ -755,17 +810,22 @@ isGeoServiceAvailable(callback: AsyncCallback&lt;boolean&gt;) : void
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收地理编码服务状态的回调。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isGeoServiceAvailable((err, data) => {
-      console.log('isGeoServiceAvailable: ' + err + " data: " + data);
+      if (err) {
+          console.log('isGeoServiceAvailable: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('isGeoServiceAvailable: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -780,22 +840,21 @@ isGeoServiceAvailable() : Promise&lt;boolean&gt;
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 返回地理编码服务是否可用的状态。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isGeoServiceAvailable().then((result) => {
-      console.log('promise, isGeoServiceAvailable: ' + result);
+      console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result));
   });
   ```
 
 
-
 ## geolocation.getAddressesFromLocation
 
 getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;) : void
@@ -806,18 +865,24 @@ getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
   | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 设置接收逆地理编码请求的回调参数。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
   geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
-      console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -832,19 +897,21 @@ getAddressesFromLocation(request: ReverseGeoCodeRequest) : Promise&lt;Array&lt;G
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 返回地理描述信息。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
   geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
       console.log('getAddressesFromLocation: ' + JSON.stringify(data));
@@ -862,19 +929,24 @@ getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback&lt
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
   | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 设置接收地理编码请求的回调参数。 |
 
-
-- 示例:
+**示例**
   
-  ```
+  ```js
   var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
   geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => {
-      console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data));
+      if (err) {
+          console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
+      }
   });
   ```
 
@@ -889,19 +961,21 @@ getAddressesFromLocationName(request: GeoCodeRequest) : Promise&lt;Array&lt;GeoA
 
 **系统能力**:SystemCapability.Location.Location.Geocoder
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 设置接收地理编码请求的回调参数。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
   geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => {
       console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
@@ -909,7 +983,6 @@ getAddressesFromLocationName(request: GeoCodeRequest) : Promise&lt;Array&lt;GeoA
   ```
 
 
-
 ## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
 
 getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;) : void;
@@ -920,16 +993,22 @@ getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;) : void;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.getCachedGnssLocationsSize((err, size) => {
-      console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size);
+      if (err) {
+          console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
+      }
+      if (size) {
+          console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
+      }
   });
   ```
 
@@ -944,16 +1023,17 @@ getCachedGnssLocationsSize() : Promise&lt;number&gt;;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;number&gt; | 返回GNSS缓存位置的个数。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.getCachedGnssLocationsSize().then((result) => {
-      console.log('promise, getCachedGnssLocationsSize: ' + result);
+      console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
   });
   ```
 
@@ -968,16 +1048,22 @@ flushCachedGnssLocations(callback: AsyncCallback&lt;boolean&gt;) : void;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.flushCachedGnssLocations((err, result) => {
-      console.log('flushCachedGnssLocations: err:' + err + " result: " + result);
+      if (err) {
+          console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('flushCachedGnssLocations: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -992,16 +1078,17 @@ flushCachedGnssLocations() : Promise&lt;boolean&gt;;
 
 **系统能力**:SystemCapability.Location.Location.Gnss
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 清空所有GNSS缓存位置是否成功。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.flushCachedGnssLocations().then((result) => {
-      console.log('promise, flushCachedGnssLocations: ' + result);
+      console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result));
   });
   ```
 
@@ -1016,18 +1103,24 @@ sendCommand(command: LocationCommand, callback: AsyncCallback&lt;boolean&gt;) :
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收命令发送的结果。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'scenario': 0x301, 'command': "command_1"};
   geolocation.sendCommand(requestInfo, (err, result) => {
-      console.log('sendCommand: err:' + err + " result: " + result);
+      if (err) {
+          console.log('sendCommand: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('sendCommand: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1042,22 +1135,24 @@ sendCommand(command: LocationCommand) : Promise&lt;boolean&gt;;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 表示命令发送成功或失败。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   var requestInfo = {'scenario': 0x301, 'command': "command_1"};
   geolocation.sendCommand(requestInfo).then((result) => {
-      console.log('promise, sendCommand: ' + result);
+      console.log('promise, sendCommand: ' + JSON.stringify(result));
   });
   ```
 
@@ -1074,17 +1169,23 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&l
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 表示用户是否同意定位服务隐私申明。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isLocationPrivacyConfirmed(1, (err, result) => {
-      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
+      if (err) {
+          console.log('isLocationPrivacyConfirmed: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('isLocationPrivacyConfirmed: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1101,21 +1202,23 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise&lt;boolean&gt;
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 表示用户是否同意定位服务隐私申明。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.isLocationPrivacyConfirmed(1).then((result) => {
-      console.log('promise, isLocationPrivacyConfirmed: ' + result);
+      console.log('promise, isLocationPrivacyConfirmed: ' + JSON.stringify(result));
   });
   ```
 
@@ -1132,18 +1235,24 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
   | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
   | callback | AsyncCallback&lt;boolean&gt; | 是 | 表示操作是否成功。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => {
-      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
+      if (err) {
+          console.log('setLocationPrivacyConfirmStatus: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('setLocationPrivacyConfirmStatus: result=' + JSON.stringify(result));
+      }
   });
   ```
 
@@ -1160,26 +1269,534 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea
 
 **系统能力**:SystemCapability.Location.Location.Core
 
-- 参数:
-    | 参数名 | 类型 | 必填 | 说明 |
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
   | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
 
-- 返回值:
-    | 参数名 | 说明 |
+**返回值**:
+
+  | 参数名 | 说明 |
   | -------- | -------- |
   | Promise&lt;boolean&gt; | 表示操作是否成功。 |
 
-- 示例:
+**示例**
   
-  ```
+  ```js
   geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => {
-      console.log('promise, setLocationPrivacyConfirmStatus: ' + result);
+      console.log('promise, setLocationPrivacyConfirmStatus: ' + JSON.stringify(result));
   });
   ```
 
 
+## geolocation.getCountryCode<sup>9+</sup>
+
+getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;) : void;
+
+查询当前的国家码。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;CountryCode&gt; | 是 | 用来接收国家码。 |
+
+**示例**
+  
+  ```js
+  geolocation.getCountryCode((err, result) => {
+      if (err) {
+          console.log('getCountryCode: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('getCountryCode: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.getCountryCode<sup>9+</sup>
+
+getCountryCode() : Promise&lt;CountryCode&gt;;
+
+查询当前的国家码。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**参数**:
+
+æ— 
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;CountryCode&gt; | 返回国家码。 |
+
+**示例**
+  
+  ```js
+  geolocation.getCountryCode()
+  .then((result) => {
+      console.log('promise, getCountryCode: result=' + JSON.stringify(result));
+  })
+  .catch((error) => {
+      console.log('promise, getCountryCode: error=' + JSON.stringify(error));
+  });
+  ```
+
+
+## geolocation.enableLocationMock<sup>9+</sup>
+
+enableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;) : void;
+
+使能某个场景的位置模拟功能,同一时间只能使能一个场景的位置模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | 否 | 指示在什么场景下使能位置模拟功能。 |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.enableLocationMock(request, (err, result) => {
+      if (err) {
+          console.log('enableLocationMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('enableLocationMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+## geolocation.enableLocationMock<sup>9+</sup>
+
+enableLocationMock(scenario?: LocationRequestScenario) : Promise&lt;void&gt;;
+
+使能某个场景的位置模拟功能,同一时间只能使能一个场景的位置模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | 否 | 指示使能什么场景的位置模拟功能。如果不携带该参数则表示使能所有场景的位置模拟功能。 |
+
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.enableLocationMock(request)
+  .then((result) => {
+      if (result) {
+        console.log('promise, enableLocationMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, enableLocationMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.disableLocationMock<sup>9+</sup>
+
+disableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;) : void;
+
+去使能位置模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | 否 | 指示去使能某个场景的位置模拟功能。如果不携带该参数则表示去使能所有场景的位置模拟功能。 |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.disableLocationMock(request, (err, result) => {
+      if (err) {
+          console.log('disableLocationMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('disableLocationMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.disableLocationMock<sup>9+</sup>
+
+disableLocationMock(scenario?: LocationRequestScenario) : Promise&lt;void&gt;;
+
+去使能位置模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | scenario | LocationRequestScenario | 否 | 指示去使能某个场景的位置模拟功能。如果不携带该参数则表示去使能所有场景的位置模拟功能。 |
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  var request = {"scenario": 0x0301};
+  geolocation.disableLocationMock(request)
+  .then((result) => {
+      if (result) {
+        console.log('promise, disableLocationMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, disableLocationMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.setMockedLocations<sup>9+</sup>
+
+setMockedLocations(config: LocationMockConfig, callback: AsyncCallback&lt;void&gt;) : void;
+
+设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | config | LocationMockConfig | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  var locations = [
+      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
+  ];
+  var config = {"timeInterval": 5, "locations": locations};
+  geolocation.setMockedLocations(config, (err, data) => {
+      if (err) {
+          console.log('setMockedLocations: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('setMockedLocations: data=' + JSON.stringify(data));
+      }
+  });
+  ```
+
+## geolocation.setMockedLocations<sup>9+</sup>
+
+setMockedLocations(config: LocationMockConfig) : Promise&lt;void&gt;;
+
+设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | config | LocationMockConfig | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 |
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  var locations = [
+      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
+      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
+  ];
+  var config = {"timeInterval": 5, "locations":locations};
+  geolocation.setMockedLocations(config)
+  .then((result) => {
+      if (result) {
+        console.log('promise, setMockedLocations: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, setMockedLocations: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+
+## geolocation.enableReverseGeocodingMock<sup>9+</sup>
+
+enableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;) : void;
+
+使能逆地理编码模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  geolocation.enableReverseGeocodingMock((err, data) => {
+      if (err) {
+          console.log('enableReverseGeocodingMock: err=' + JSON.stringify(err));
+      }
+      if (data) {
+          console.log('enableReverseGeocodingMock: data=' + JSON.stringify(data));
+      }
+  });
+  ```
+
+
+## geolocation.enableReverseGeocodingMock<sup>9+</sup>
+
+enableReverseGeocodingMock() : Promise&lt;void&gt;;
+
+使能逆地理编码模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+æ— 
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  geolocation.enableReverseGeocodingMock()
+  .then((result) => {
+      if (result) {
+        console.log('promise, enableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, enableReverseGeocodingMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.disableReverseGeocodingMock<sup>9+</sup>
+
+disableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;) : void;
+
+去使能逆地理编码模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  geolocation.disableReverseGeocodingMock((err, result) => {
+      if (err) {
+          console.log('disableReverseGeocodingMock: err=' + JSON.stringify(err));
+      }
+      if (result) {
+          console.log('disableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  });
+  ```
+
+
+## geolocation.disableReverseGeocodingMock<sup>9+</sup>
+
+disableReverseGeocodingMock() : Promise&lt;void&gt;;
+
+去使能逆地理编码模拟功能。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+æ— 
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  geolocation.disableReverseGeocodingMock()
+  .then((result) => {
+      if (result) {
+        console.log('promise, disableReverseGeocodingMock: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, disableReverseGeocodingMock: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
+
+## geolocation.setReverseGeocodingMockInfo<sup>9+</sup>
+
+setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;, callback: AsyncCallback&lt;void&gt;) : void;
+
+设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | mockInfos | Array&lt;ReverseGeocodingMockInfo&gt; | 是 | 指示逆地理编码模拟功能的配置参数数组。逆地理编码模拟功能的配置参数包含了一个位置和一个地名。 |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 |
+
+**示例**
+  
+  ```js
+  var mockInfos = [
+      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}},
+  ];
+  geolocation.setReverseGeocodingMockInfo(mockInfos, (err, data) => {
+      if (err) {
+          console.log('promise, setReverseGeocodingMockInfo, err:' + JSON.stringify(err));
+      } 
+      if (data) {
+          console.log('promise, setReverseGeocodingMockInfo, data:' + JSON.stringify(data));
+      }
+  });
+  ```
+
+
+## geolocation.setReverseGeocodingMockInfo<sup>9+</sup>
+
+setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;) : Promise&lt;void&gt;;
+
+设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**参数**:
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | mockInfos | Array&lt;ReverseGeocodingMockInfo&gt; | 是 | 指示逆地理编码模拟功能的配置信息数组。逆地理编码模拟功能的配置信息包含了一个位置和一个地名。 |
+
+**返回值**:
+
+  | 参数名 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。  |
+
+**示例**
+  
+  ```js
+  var mockInfos = [
+      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}},
+      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}},
+  ];
+  geolocation.setReverseGeocodingMockInfo(mockInfos)
+  .then((result) => {
+      if (result) {
+        console.log('promise, setReverseGeocodingMockInfo: result=' + JSON.stringify(result));
+      }
+  })
+  .catch((error) => {
+      if (error) {
+        console.log('promise, setReverseGeocodingMockInfo: error=' + JSON.stringify(error));
+      }
+  });
+  ```
+
 
 ## LocationRequestPriority
 
@@ -1225,13 +1842,15 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea
 
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
-| INPUT_PARAMS_ERROR | 101 | 表示输入参数错误。 |
-| REVERSE_GEOCODE_ERROR | 102 | 表示逆地理编码接口调用失败。 |
-| GEOCODE_ERROR | 103 | 表示地理编码接口调用失败。 |
-| LOCATOR_ERROR | 104 | 表示定位失败。 |
-| LOCATION_SWITCH_ERROR | 105 | 表示定位开关。 |
-| LAST_KNOWN_LOCATION_ERROR | 106 | 表示获取上次位置失败。 |
-| LOCATION_REQUEST_TIMEOUT_ERROR | 107 | 表示单次定位,没有在指定时间内返回位置。 |
+| NOT_SUPPORTED<sup>9+</sup> | 100 | 表示该接口功能不支持。 |
+| INPUT_PARAMS_ERROR<sup>7+</sup> | 101 | 表示输入参数错误。 |
+| REVERSE_GEOCODE_ERROR<sup>7+</sup> | 102 | 表示逆地理编码接口调用失败。 |
+| GEOCODE_ERROR<sup>7+</sup> | 103 | 表示地理编码接口调用失败。 |
+| LOCATOR_ERROR<sup>7+</sup> | 104 | 表示定位失败。 |
+| LOCATION_SWITCH_ERROR<sup>7+</sup> | 105 | 表示定位开关。 |
+| LAST_KNOWN_LOCATION_ERROR<sup>7+</sup> | 106 | 表示获取上次位置失败。 |
+| LOCATION_REQUEST_TIMEOUT_ERROR<sup>7+</sup> | 107 | 表示单次定位,没有在指定时间内返回位置。 |
+| QUERY_COUNTRY_CODE_ERROR<sup>9+</sup> | 108 | 表示国家码查询失败。 |
 
 
 ## ReverseGeoCodeRequest
@@ -1279,24 +1898,25 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea
 
 | 名称 | 参数类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| latitude | number | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
-| longitude | number | 否 | 表示经度信息,正值表示东经,负值表是西经。 |
-| locale | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
-| placeName | string | 否 | 表示地区信息。 |
-| countryCode | string | 否 | 表示国家码信息。 |
-| countryName | string | 否 | 表示国家信息。 |
-| administrativeArea | string | 否 | 表示省份区域信息。 |
-| subAdministrativeArea | string | 否 | 表示表示子区域信息。 |
-| locality | string | 否 | 表示城市信息。 |
-| subLocality | string | 否 | 表示子城市信息。 |
-| roadName | string | 否 | 表示路名信息。 |
-| subRoadName | string | 否 | 表示子路名信息。 |
-| premises | string | 否 | 表示门牌号信息。 |
-| postalCode | string | 否 | 表示邮政编码信息。 |
-| phoneNumber | string | 否 | 表示联系方式信息。 |
-| addressUrl | string | 否 | 表示位置信息附件的网址信息。 |
-| descriptions | Array&lt;string&gt; | 否 | 表示附加的描述信息。 |
-| descriptionsSize | number | 否 | 表示附加的描述信息数量。 |
+| latitude<sup>7+</sup> | number | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
+| longitude<sup>7+</sup> | number | 否 | 表示经度信息,正值表示东经,负值表是西经。 |
+| locale<sup>7+</sup> | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
+| placeName<sup>7+</sup> | string | 否 | 表示地区信息。 |
+| countryCode<sup>7+</sup> | string | 否 | 表示国家码信息。 |
+| countryName<sup>7+</sup> | string | 否 | 表示国家信息。 |
+| administrativeArea<sup>7+</sup> | string | 否 | 表示省份区域信息。 |
+| subAdministrativeArea<sup>7+</sup> | string | 否 | 表示表示子区域信息。 |
+| locality<sup>7+</sup> | string | 否 | 表示城市信息。 |
+| subLocality<sup>7+</sup> | string | 否 | 表示子城市信息。 |
+| roadName<sup>7+</sup> | string | 否 | 表示路名信息。 |
+| subRoadName<sup>7+</sup> | string | 否 | 表示子路名信息。 |
+| premises<sup>7+</sup> | string | 否 | 表示门牌号信息。 |
+| postalCode<sup>7+</sup> | string | 否 | 表示邮政编码信息。 |
+| phoneNumber<sup>7+</sup> | string | 否 | 表示联系方式信息。 |
+| addressUrl<sup>7+</sup> | string | 否 | 表示位置信息附件的网址信息。 |
+| descriptions<sup>7+</sup> | Array&lt;string&gt; | 否 | 表示附加的描述信息。 |
+| descriptionsSize<sup>7+</sup> | number | 否 | 表示附加的描述信息数量。 |
+| isFromMock<sup>9+</sup> | Boolean | 否 | 表示地名信息是否来自于逆地理编码模拟功能。 |
 
 
 ## LocationRequest
@@ -1434,13 +2054,68 @@ GNSS围栏的配置参数。目前只支持圆形围栏。
 
 | 名称 | 参数类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
-| longitude | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 |
-| altitude | number | 是 | 表示高度信息,单位米。 |
-| accuracy | number | 是 | 表示精度信息,单位米。 |
-| speed | number | 是 | 表示速度信息,单位米每秒。 |
-| timeStamp | number | 是 | 表示位置时间戳,UTC格式。 |
-| direction | number | 是 | 表示航向信息。 |
-| timeSinceBoot | number | 是 | 表示位置时间戳,开机时间格式。 |
-| additions | Array&lt;string&gt; | 否 | 附加信息。 |
-| additionSize | number | 否 | 附加信息数量。 |
+| latitude<sup>7+</sup> | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
+| longitude<sup>7+</sup> | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 |
+| altitude<sup>7+</sup> | number | 是 | 表示高度信息,单位米。 |
+| accuracy<sup>7+</sup> | number | 是 | 表示精度信息,单位米。 |
+| speed<sup>7+</sup> | number | 是 | 表示速度信息,单位米每秒。 |
+| timeStamp<sup>7+</sup> | number | 是 | 表示位置时间戳,UTC格式。 |
+| direction<sup>7+</sup> | number | 是 | 表示航向信息。 |
+| timeSinceBoot<sup>7+</sup> | number | 是 | 表示位置时间戳,开机时间格式。 |
+| additions<sup>7+</sup> | Array&lt;string&gt; | 否 | 附加信息。 |
+| additionSize<sup>7+</sup> | number | 否 | 附加信息数量。 |
+| isFromMock<sup>9+</sup> | Boolean | 否 | 表示位置信息是否来自于位置模拟功能。 |
+
+
+## ReverseGeocodingMockInfo<sup>9+</sup>
+
+逆地理编码模拟功能的配置信息,包含一个位置信息和一个地名信息。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+| 名称 | 参数类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| location | ReverseGeoCodeRequest | 是 | 表示经纬度信息。 |
+| geoAddress | GeoAddress | 是 | 表示地名信息。 |
+
+
+## LocationMockConfig<sup>9+</sup>
+
+位置模拟功能的配置参数,包含了模拟位置上报的时间间隔和模拟位置数组。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+| 名称 | 参数类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| timeInterval | number | 是 | 表示模拟位置上报的时间间隔,单位是秒。 |
+| locations | Array&lt;Location&gt; | 是 | 表示模拟位置数组。 |
+
+
+## CountryCode<sup>9+</sup>
+
+国家码信息结构体,包含国家码字符串和国家码的来源信息。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+| 名称 | 参数类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| country | string | 是 | 表示国家码字符串。 |
+| type | CountryCodeType | 是 | 表示国家码信息来源。 |
+
+
+## CountryCodeType<sup>9+</sup>
+
+国家码来源类型。
+
+**系统能力**:SystemCapability.Location.Location.Core
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| COUNTRY_CODE_FROM_LOCALE | 1 | 从全球化模块的语言配置信息中获取到的国家码。 |
+| COUNTRY_CODE_FROM_SIM | 2 | 从SIM卡中获取到的国家码。 |
+| COUNTRY_CODE_FROM_LOCATION | 3 | 基于用户的位置信息,通过逆地理编码查询到的国家码。 |
+| COUNTRY_CODE_FROM_NETWORK | 4 | 从蜂窝网络注册信息中获取到的国家码。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-hidebug.md b/zh-cn/application-dev/reference/apis/js-apis-hidebug.md
index 58da6c591b600ee7063a9fe2e00d642f50139888..26a7adcbafda064eedff82290d791b3e9016f40f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-hidebug.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-hidebug.md
@@ -26,7 +26,7 @@ getNativeHeapSize(): bigint
 
 | 类型   | 说明                        |
 | ------ | --------------------------- |
-| bigint | 返回native heap内存总大小。 |
+| bigint | 返回native heap内存总大小,单位为kB。 |
 
 
 **示例:**
@@ -49,7 +49,7 @@ getNativeHeapAllocatedSize(): bigint
 **返回值:**
 | 类型   | 说明                              |
 | ------ | --------------------------------- |
-| bigint | 返回native heap内存的已分配内存。 |
+| bigint | 返回native heap内存的已分配内存,单位为kB。 |
 
 
 **示例:**
@@ -72,7 +72,7 @@ getNativeHeapFreeSize(): bigint
 **返回值:**
 | 类型   | 说明                            |
 | ------ | ------------------------------- |
-| bigint | 返回native heap内存的空闲内存。 |
+| bigint | 返回native heap内存的空闲内存,单位为kB。 |
 
 
 **示例:**
@@ -93,7 +93,7 @@ getPss(): bigint
 **返回值:**
 | 类型   | 说明                      |
 | ------ | ------------------------- |
-| bigint | 返回应用进程PSS内存大小。 |
+| bigint | 返回应用进程PSS内存大小,单位为kB。 |
 
 
 **示例:**
@@ -114,7 +114,7 @@ getSharedDirty(): bigint
 **返回值:**
 | 类型   | 说明                       |
 | ------ | -------------------------- |
-| bigint | 返回进程的共享脏内存大小。 |
+| bigint | 返回进程的共享脏内存大小,单位为kB。 |
 
 
 **示例:**
@@ -134,7 +134,7 @@ getPrivateDirty(): bigint
 **返回值:**
 | 类型   | 说明                       |
 | ------ | -------------------------- |
-| bigint | 返回进程的私有脏内存大小。 |
+| bigint | 返回进程的私有脏内存大小,单位为kB。 |
 
 
 **示例:**
diff --git a/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md b/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
index 6cc5ea38e9bc6c15dfa73a02957d999c3406c5a0..c811da3849cdd8b77c0be23b5dd84ca15c123acb 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
@@ -4,7 +4,7 @@
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
-> - 本模块的接口为系统接口,三方应用不支持调用。
+> - 本模块的接口为系统接口。
 
 
 ## 导入模块
diff --git a/zh-cn/application-dev/reference/apis/js-apis-http.md b/zh-cn/application-dev/reference/apis/js-apis-http.md
index 33f83d33ea014f99f8d0e484b7d3a9cba2204dd3..54875254f16c162376e44e39b0239173193afd5e 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-http.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-http.md
@@ -1,6 +1,6 @@
 # 数据请求
 
-本模块提供http数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
+本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
 
 >**说明:** 
 >
@@ -18,15 +18,15 @@ import http from '@ohos.net.http';
 ```js
 import http from '@ohos.net.http';
 
-// 每一个httpRequest对应一个http请求任务,不可复用
+// 每一个httpRequest对应一个HTTP请求任务,不可复用
 let httpRequest = http.createHttp();
-// 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
+// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
 // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
 httpRequest.on('headersReceive', (header) => {
     console.info('header: ' + JSON.stringify(header));
 });
 httpRequest.request(
-    // 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
+    // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
     "EXAMPLE_URL",
     {
         method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
@@ -38,14 +38,14 @@ httpRequest.request(
         extraData: {
             "data": "data to send",
         },
-        connectTimeout: 60000, // 可选,默认为60s
-        readTimeout: 60000, // 可选,默认为60s
+        connectTimeout: 60000, // 可选,默认为60000ms
+        readTimeout: 60000, // 可选,默认为60000ms
     }, (err, data) => {
         if (!err) {
-            // data.result为http响应内容,可根据业务需要进行解析
+            // data.result为HTTP响应内容,可根据业务需要进行解析
             console.info('Result:' + data.result);
             console.info('code:' + data.responseCode);
-            // data.header为http响应头,可根据业务需要进行解析
+            // data.header为HTTP响应头,可根据业务需要进行解析
             console.info('header:' + JSON.stringify(data.header));
             console.info('cookies:' + data.cookies); // 8+
         } else {
@@ -61,7 +61,7 @@ httpRequest.request(
 
 createHttp\(\): HttpRequest
 
-创建一个http,里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。每一个HttpRequest对象对应一个Http请求。如需发起多个Http请求,须为每个Http请求创建对应HttpRequest对象。
+创建一个HTTP请求,里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header事件。每一个HttpRequest对象对应一个HTTP请求。如需发起多个HTTP请求,须为每个HTTP请求创建对应HttpRequest对象。
 
 **系统能力**:SystemCapability.Communication.NetStack
 
@@ -81,7 +81,7 @@ let httpRequest = http.createHttp();
 
 ## HttpRequest
 
-http请求任务。在调用HttpRequest的方法前,需要先通过[createHttp\(\)](#httpcreatehttp)创建一个任务。
+HTTP请求任务。在调用HttpRequest的方法前,需要先通过[createHttp\(\)](#httpcreatehttp)创建一个任务。
 
 ### request
 
@@ -432,9 +432,9 @@ request方法回调函数的返回值类型。
 
 | 参数名               | 类型                                         | 必填 | 说明                                                         |
 | -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
-| result               | string \| Object \| ArrayBuffer<sup>8+</sup> | 是   | Http请求根据响应头中Content-type类型返回对应的响应格式内容:<br />- application/json:返回JSON格式的字符串,如需Http响应具体内容,需开发者自行解析<br />- application/octet-stream:ArrayBuffer<br />- 其他:string |
+| result               | string \| Object \| ArrayBuffer<sup>8+</sup> | 是   | HTTP请求根据响应头中Content-type类型返回对应的响应格式内容:<br />- application/json:返回JSON格式的字符串,如需HTTP响应具体内容,需开发者自行解析<br />- application/octet-stream:ArrayBuffer<br />- 其他:string |
 | responseCode         | [ResponseCode](#responsecode) \| number      | 是   | 回调函数执行成功时,此字段为[ResponseCode](#responsecode)。若执行失败,错误码将会从AsyncCallback中的err字段返回。错误码参考[Response错误码](#response常用错误码)。 |
-| header               | Object                                       | 是   | 发起http请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:<br/>- Content-Type:header['Content-Type'];<br />- Status-Line:header['Status-Line'];<br />- Date:header.Date/header['Date'];<br />- Server:header.Server/header['Server']; |
+| header               | Object                                       | 是   | 发起HTTP请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:<br/>- Content-Type:header['Content-Type'];<br />- Status-Line:header['Status-Line'];<br />- Date:header.Date/header['Date'];<br />- Server:header.Server/header['Server']; |
 | cookies<sup>8+</sup> | Array\<string\>                              | 是   | 服务器返回的 cookies。                                       |
 
 ## Response常用错误码
diff --git a/zh-cn/application-dev/reference/apis/js-apis-huks.md b/zh-cn/application-dev/reference/apis/js-apis-huks.md
index e6ab60f61b19eebe48128c5dd85eef3f7de5586d..0f4c594431e26d488432f9fd63f1022d6713dcdb 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-huks.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-huks.md
@@ -16,7 +16,7 @@ import huks from '@ohos.security.huks'
 
 表示错误码的枚举。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                       | 值    | 说明 |
 | -------------------------- | ----- | ---- |
@@ -59,6 +59,11 @@ import huks from '@ohos.security.huks'
 | HUKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST | -36   |表示存在新的根密钥材料。|
 | HUKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL | -37   |表示更新根密钥材料失败。|
 | HUKS_ERROR_VERIFICATION_FAILED | -38   |表示验证证书链失败。|
+| HUKS_ERROR_GET_USERIAM_SECINFO_FAILED<sup>9+</sup> | -40 |表示获取当前用户安全属性信息失败。|
+| HUKS_ERROR_GET_USERIAM_AUTHINFO_FAILED<sup>9+</sup> | -41 |表示获取当前用户认证信息失败。|
+| HUKS_ERROR_USER_AUTH_TYPE_NOT_SUPPORT<sup>9+</sup> | -42 |表示不支持当前用户认证类型的访问控制。|
+| HUKS_ERROR_KEY_AUTH_FAILED<sup>9+</sup> | -43 |表示安全访问控制认证失败。|
+| HUKS_ERROR_DEVICE_NO_CREDENTIAL<sup>9+</sup> | -44 |表示设备当前未录入凭据。|
 | HUKS_ERROR_CHECK_GET_ALG_FAIL | -100  |表示检查获取 ALG 失败。|
 | HUKS_ERROR_CHECK_GET_KEY_SIZE_FAIL | -101  |表示检查获取密钥大小失败。|
 | HUKS_ERROR_CHECK_GET_PADDING_FAIL | -102  |表示检查获取填充失败。|
@@ -95,7 +100,7 @@ import huks from '@ohos.security.huks'
 
 表示密钥用途。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                     | 值   | 说明                             |
 | ------------------------ | ---- | -------------------------------- |
@@ -113,7 +118,7 @@ import huks from '@ohos.security.huks'
 
 表示摘要算法。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                   | 值   | 说明                                     |
 | ---------------------- | ---- | ---------------------------------------- |
@@ -130,7 +135,7 @@ import huks from '@ohos.security.huks'
 
 表示补齐算法。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                   | 值   | 说明                                     |
 | ---------------------- | ---- | ---------------------------------------- |
@@ -145,7 +150,7 @@ import huks from '@ohos.security.huks'
 
 表示加密模式。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称          | 值   | 说明                  |
 | ------------- | ---- | --------------------- |
@@ -160,7 +165,7 @@ import huks from '@ohos.security.huks'
 
 表示密钥长度。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                               | 值   | 说明                                       |
 | ---------------------------------- | ---- | ------------------------------------------ |
@@ -189,7 +194,7 @@ import huks from '@ohos.security.huks'
 
 表示密钥使用的算法。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                      | 值   | 说明                  |
 | ------------------------- | ---- | --------------------- |
@@ -212,7 +217,7 @@ import huks from '@ohos.security.huks'
 
 表示生成密钥的类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                           | 值   | 说明             |
 | ------------------------------ | ---- | ---------------- |
@@ -224,7 +229,7 @@ import huks from '@ohos.security.huks'
 
 表示密钥的产生方式。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                       | 值   | 说明                                 |
 | -------------------------- | ---- | ------------------------------------ |
@@ -237,7 +242,7 @@ import huks from '@ohos.security.huks'
 
 表示密钥存储方式。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                    | 值   | 说明                           |
 | ----------------------- | ---- | ------------------------------ |
@@ -248,7 +253,7 @@ import huks from '@ohos.security.huks'
 
 表示发送Tag的方式。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                 | 值   | 说明              |
 | -------------------- | ---- | ----------------- |
@@ -259,7 +264,7 @@ import huks from '@ohos.security.huks'
 
 表示导入加密密钥的算法套件。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                                           | 值   | 说明                                                  |
 | ---------------------------------------------- | ---- | ----------------------------------------------------- |
@@ -270,7 +275,7 @@ import huks from '@ohos.security.huks'
 
 表示导入密钥的密钥类型,默认为导入公钥,导入对称密钥时不需要该字段。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                      | 值   | 说明                           |
 | ------------------------- | ---- | ------------------------------ |
@@ -278,11 +283,69 @@ import huks from '@ohos.security.huks'
 | HUKS_KEY_TYPE_PRIVATE_KEY | 1    | 表示导入的密钥类型为私钥。     |
 | HUKS_KEY_TYPE_KEY_PAIR    | 2    | 表示导入的密钥类型为公私钥对。 |
 
+## HuksUserAuthType<sup>9+</sup>
+
+表示用户认证类型。
+
+**系统能力**:SystemCapability.Security.Huks
+
+| 名称                            | 值   | 说明                      |
+| ------------------------------- | ---- | ------------------------- |
+| HUKS_USER_AUTH_TYPE_FINGERPRINT | 1    | 表示用户认证类型为指纹。  |
+| HUKS_USER_AUTH_TYPE_FACE        | 2    | 表示用户认证类型为人脸 。 |
+| HUKS_USER_AUTH_TYPE_PIN         | 4    | 表示用户认证类型为PIN码。 |
+
+## HuksAuthAccessType<sup>9+</sup>
+
+表示安全访问控制类型。
+
+**系统能力**:SystemCapability.Security.Huks
+
+| 名称                                    | 值   | 说明                                             |
+| --------------------------------------- | ---- | ------------------------------------------------ |
+| HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORD | 1    | 表示安全访问控制类型为清除密码后密钥无效。       |
+| HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLL | 2    | 表示安全访问控制类型为新录入生物特征后密钥无效。 |
+
+## HuksChallengeType<sup>9+</sup>
+
+表示密钥使用时生成challenge的类型。
+
+**系统能力**:SystemCapability.Security.Huks
+
+| 名称                            | 值   | 说明                           |
+| ------------------------------- | ---- | ------------------------------ |
+| HUKS_CHALLENGE_TYPE_NORMAL | 0    | 表示challenge为普通类型,默认32字节。 |
+| HUKS_CHALLENGE_TYPE_CUSTOM        | 1    | 表示challenge为用户自定义类型。支持使用多个密钥仅一次认证。 |
+| HUKS_CHALLENGE_TYPE_NONE         | 2    | 表示免challenge类型。 |
+
+## HuksChallengePosition<sup>9+</sup>
+
+表示challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置 。
+
+**系统能力**:SystemCapability.Security.Huks
+
+| 名称                            | 值   | 说明                           |
+| ------------------------------- | ---- | ------------------------------ |
+| HUKS_CHALLENGE_POS_0 | 0    | 表示0~7字节为当前密钥的有效challenge。 |
+| HUKS_CHALLENGE_POS_1        | 1    | 表示8~15字节为当前密钥的有效challenge。 |
+| HUKS_CHALLENGE_POS_2         | 2    | 表示16~23字节为当前密钥的有效challenge。 |
+| HUKS_CHALLENGE_POS_3        | 3   | 表示24~31字节为当前密钥的有效challenge。 |
+
+## HuksSecureSignType<sup>9+</sup>
+
+表示生成或导入密钥时,指定该密钥的签名类型。
+
+**系统能力**:SystemCapability.Security.Huks
+
+| 名称                           | 值   | 说明                                                         |
+| ------------------------------ | ---- | ------------------------------------------------------------ |
+| HUKS_SECURE_SIGN_WITH_AUTHINFO | 1    | 表示签名类型为携带认证信息。生成或导入密钥时指定该字段,则在使用密钥进行签名时,对待签名的数据添加认证信息后进行签名。 |
+
 ## HuksTagType
 
 表示Tag的数据类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 
 | 名称                  | 值      | 说明                                    |
@@ -298,7 +361,7 @@ import huks from '@ohos.security.huks'
 
 表示调用参数的Tag。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 名称                                         | 值                                       | 说明                                   |
 | -------------------------------------------- | ---------------------------------------- | -------------------------------------- |
@@ -336,9 +399,13 @@ import huks from '@ohos.security.huks'
 | HUKS_TAG_ALL_USERS                           | ksTagType.HUKS_TAG_TYPE_BOOL \| 301      | 预留。                                 |
 | HUKS_TAG_USER_ID                             | HuksTagType.HUKS_TAG_TYPE_UINT \| 302    | 预留。                                 |
 | HUKS_TAG_NO_AUTH_REQUIRED                    | HuksTagType.HUKS_TAG_TYPE_BOOL \| 303    | 预留。                                 |
-| HUKS_TAG_USER_AUTH_TYPE                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 304    | 预留。                                 |
+| HUKS_TAG_USER_AUTH_TYPE                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 304    | 表示用户认证类型。从[HuksUserAuthType](#huksuserauthtype9)中选择,需要与安全访问控制类型同时设置。支持同时指定两种用户认证类型,如:安全访问控制类型指定为HKS_SECURE_ACCESS_INVALID_NEW_BIO_ENROLL时,密钥访问认证类型可以指定以下三种: HKS_USER_AUTH_TYPE_FACE 、HKS_USER_AUTH_TYPE_FINGERPRINT、HKS_USER_AUTH_TYPE_FACE \| HKS_USER_AUTH_TYPE_FINGERPRINT |
 | HUKS_TAG_AUTH_TIMEOUT                        | HuksTagType.HUKS_TAG_TYPE_UINT \| 305    | 预留。                                 |
 | HUKS_TAG_AUTH_TOKEN                          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 306   | 预留。                                 |
+| HUKS_TAG_KEY_AUTH_ACCESS_TYPE<sup>9+</sup> | HuksTagType.HUKS_TAG_TYPE_UINT \| 307 | 表示安全访问控制类型。从[HuksAuthAccessType](#huksauthaccesstype9)中选择,需要和用户认证类型同时设置。 |
+| HUKS_TAG_KEY_SECURE_SIGN_TYPE<sup>9+</sup> | HuksTagType.HUKS_TAG_TYPE_UINT \| 308 | 表示生成或导入密钥时,指定该密钥的签名类型。 |
+| HUKS_TAG_CHALLENGE_TYPE<sup>9+</sup> | HuksTagType.HUKS_TAG_TYPE_UINT \| 309 | 表示密钥使用时生成的challenge类型。从[HuksChallengeType](#hukschallengetype9)中选择 |
+| HUKS_TAG_CHALLENGE_POS<sup>9+</sup> | HuksTagType.HUKS_TAG_TYPE_UINT \| 310 | 表示challenge类型为用户自定义类型时,huks产生的challenge有效长度仅为8字节连续的数据。从[HuksChallengePosition](#hukschallengeposition9)中选择。 |
 | HUKS_TAG_ATTESTATION_CHALLENGE               | HuksTagType.HUKS_TAG_TYPE_BYTES \| 501   | 表示attestation时的挑战值。            |
 | HUKS_TAG_ATTESTATION_APPLICATION_ID          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 502   | 表示attestation时拥有该密钥的application的Id。    |
 | HUKS_TAG_ATTESTATION_ID_BRAND                | HuksTagType.HUKS_TAG_TYPE_BYTES \| 503   | 表示设备的品牌。                      |
@@ -387,7 +454,7 @@ generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<Huk
 
 生成密钥,使用Callback回调异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:** 
 
@@ -437,7 +504,7 @@ generateKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
 
 生成密钥,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:** 
 
@@ -488,7 +555,7 @@ deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksR
 
 删除密钥,使用Callback回调异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -515,7 +582,7 @@ deleteKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
 
 删除密钥,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -547,7 +614,7 @@ getSdkVersion(options: HuksOptions) : string
 
 获取当前系统sdk版本。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -577,7 +644,7 @@ importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksR
 
 导入明文密钥,使用Callback方式回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -635,7 +702,7 @@ importKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
 
 导入明文密钥,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -700,7 +767,7 @@ importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOption
 
 导入加密密钥,使用Callback方式回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -804,8 +871,8 @@ async function TestImportWrappedKeyFunc(
      * 假设待导入的密钥为keyA
      * 1.生成ECC公私钥keyB,公钥为keyB_pub, 私钥为keyB_pri
      * 2.使用keyB_pri和wrappingAlias密钥中获取的公钥进行密钥协商,协商出共享密钥share_key
-     * 3.随机生成密钥kek,用于加密keyA,采用AES-GCM加密,加密过程中需要记录:nonce1/aad1/加密后的密文keyA_enc/加密后的tag1。
-     * 4.使用share_key加密kek,采用AES-GCM加密,加密过程中需要记录:nonce2/aad2/加密后的密文kek_enc/加密后的tag2。
+     * 3.随机生成密钥kek,用于加密keyA,采用AES-GCM加密,加密过程中需要记录:nonce1、aad1、加密后的密文keyA_enc、加密后的tag1。
+     * 4.使用share_key加密kek,采用AES-GCM加密,加密过程中需要记录:nonce2、aad2、加密后的密文kek_enc、加密后的tag2。
      * 5.拼接importOptions.inData字段,满足以下格式:
      * keyB_pub的长度(4字节) + keyB_pub的数据 + aad2的长度(4字节) + aad2的数据 +
      * nonce2的长度(4字节)   + nonce2的数据   + tag2的长度(4字节) + tag2的数据 +
@@ -888,7 +955,7 @@ importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOption
 
 导入加密密钥,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -924,7 +991,7 @@ exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksR
 
 导出密钥,使用Callback方式回调异步返回的结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -951,7 +1018,7 @@ exportKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
 
 导出密钥,使用Promise方式回调异步返回的结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -983,7 +1050,7 @@ getKeyProperties(keyAlias: string, options: HuksOptions, callback: AsyncCallback
 
 获取密钥属性,使用Callback回调异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1010,7 +1077,7 @@ getKeyProperties(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
 
 获取密钥属性,使用Promise回调异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1042,7 +1109,7 @@ isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<bool
 
 判断密钥是否存在,使用Callback回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1069,7 +1136,7 @@ isKeyExist(keyAlias: string, options: HuksOptions) : Promise\<boolean>
 
 判断密钥是否存在,使用Promise回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1103,7 +1170,7 @@ init(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksHandle
 
 init操作密钥接口,使用Callback回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1120,7 +1187,7 @@ init(keyAlias: string, options: HuksOptions) : Promise\<HuksHandle>
 
 init操作密钥接口,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1131,41 +1198,94 @@ init操作密钥接口,使用Promise方式异步返回结果。
 | promise | Promise\<[HuksHandle](#hukshandle)> | 是   | 将Init操作返回的handle添加到密钥管理系统的回调。 |
 
 
-## huks.update
+## huks.update<sup>(deprecated)</sup>
 
 update(handle: number, token?: Uint8Array, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
 
 update操作密钥接口,使用Callback回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+>  **说明:** 从API Version 9开始废弃,建议使用[huks.update<sup>9+</sup>](#huksupdate9)替代。
 
-**参数:**
+**系统能力**: SystemCapability.Security.Huks
 
-| 参数名   | 类型                   | 必填 | 说明                                  |
-| -------- | ---------------------- | ---- | ------------------------------------- |
-| handle | number           | 是   | Update操作的handle。 |
-| token | Uint8Array | 否 | Update操作的token。 |
-| options  | [HuksOptions](#huksoptions) | 是   | Update的参数集合。 |
-| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 |
+**参数:**
 
+| 参数名   | 类型                                      | 必填 | 说明                                         |
+| -------- | ----------------------------------------- | ---- | -------------------------------------------- |
+| handle   | number                                    | 是   | Update操作的handle。                         |
+| token    | Uint8Array                                | 否   | Update操作的token。                          |
+| options  | [HuksOptions](#huksoptions)               | 是   | Update操作的参数集合。                       |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 将Update操作的结果添加到密钥管理系统的回调。 |
 
-## huks.update
+## huks.update<sup>(deprecated)</sup>
 
 update(handle: number, token?: Uint8Array, options: HuksOptions) : Promise\<HuksResult>
 
 update操作密钥接口,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+>  **说明:** 从API Version 9开始废弃,建议使用[huks.update<sup>9+</sup>](#huksupdate9)替代。
+
+**系统能力**: SystemCapability.Security.Huks
 
 **参数:**
 
-| 参数名   | 类型                   | 必填 | 说明                                  |
-| -------- | ---------------------- | ---- | ------------------------------------- |
-| handle | number           | 是   | Update操作的handle。 |
-| token | Uint8Array | 否 | Update操作的token。 |
-| options  | [HuksOptions](#huksoptions) | 是   | Update操作的参数集合。 |
-| promise | Promise\<[HuksResult](#huksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 |
+| 参数名  | 类型                                | 必填 | 说明                                         |
+| ------- | ----------------------------------- | ---- | -------------------------------------------- |
+| handle  | number                              | 是   | Update操作的handle。                         |
+| token   | Uint8Array                          | 否   | Update操作的token。                          |
+| options | [HuksOptions](#huksoptions)         | 是   | Update操作的参数集合。                       |
+| promise | Promise\<[HuksResult](#huksresult)> | 是   | 将Update操作的结果添加到密钥管理系统的回调。 |
+
+## huks.update<sup>9+</sup>
+
+update(handle: number, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
+
+update操作密钥接口,使用Callback回调异步返回结果 。
+
+**系统能力**:SystemCapability.Security.Huks
+
+**参数:**
 
+| 参数名   | 类型                                      | 必填 | 说明                                         |
+| -------- | ----------------------------------------- | ---- | -------------------------------------------- |
+| handle   | number                                    | 是   | Update操作的handle。                         |
+| options  | [HuksOptions](#huksoptions)               | 是   | Update的参数集合。                           |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 将Update操作的结果添加到密钥管理系统的回调。 |
+
+
+## huks.update<sup>9+</sup>
+
+update(handle: number, options: HuksOptions, token: Uint8Array, callback: AsyncCallback\<HuksResult>) : void
+
+update操作密钥接口,使用Callback回调异步返回结果 。
+
+**系统能力**:SystemCapability.Security.Huks
+
+**参数:**
+
+| 参数名   | 类型                                      | 必填 | 说明                                         |
+| -------- | ----------------------------------------- | ---- | -------------------------------------------- |
+| handle   | number                                    | 是   | Update操作的handle。                         |
+| options  | [HuksOptions](#huksoptions)               | 是   | Update操作的参数集合。                       |
+| token    | Uint8Array                                | 是   | Update操作的token。                          |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 将Update操作的结果添加到密钥管理系统的回调。 |
+
+## huks.update<sup>9+</sup>
+
+update(handle: number, options: HuksOptions, token?: Uint8Array) : Promise\<HuksResult>
+
+update操作密钥接口,使用Promise方式异步返回结果。
+
+**系统能力**:SystemCapability.Security.Huks
+
+**参数:**
+
+| 参数名  | 类型                                | 必填 | 说明                                         |
+| ------- | ----------------------------------- | ---- | -------------------------------------------- |
+| handle  | number                              | 是   | Update操作的handle。                         |
+| options | [HuksOptions](#huksoptions)         | 是   | Update操作的参数集合。                       |
+| token   | Uint8Array                          | 否   | Update操作的token。                          |
+| promise | Promise\<[HuksResult](#huksresult)> | 是   | 将Update操作的结果添加到密钥管理系统的回调。 |
 
 ## huks.finish
 
@@ -1173,7 +1293,7 @@ finish(handle: number, options: HuksOptions, callback: AsyncCallback\<HuksResult
 
 finish操作密钥接口,使用Callback回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1190,7 +1310,7 @@ finish(handle: number, options: HuksOptions) : Promise\<HuksResult>
 
 finish操作密钥接口,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1198,8 +1318,42 @@ finish操作密钥接口,使用Promise方式异步返回结果。
 | -------- | ---------------------- | ---- | ------------------------------------- |
 | handle | number           | 是   | Finish操作的handle。 |
 | options  | [HuksOptions](#huksoptions) | 是   | Finish操作的参数集合。 |
-| promise | Promise\<[HuksResult](#HuksResult)> | 是 | promise实例,用于获取异步返回结果。 |
+| promise | Promise\<[HuksResult](#huksresult)> | 是 | promise实例,用于获取异步返回结果。 |
+
+## huks.finish<sup>9+</sup>
+
+finish(handle: number, options: HuksOptions, token: Uint8Array, callback: AsyncCallback\<HuksResult>) : void
+
+finish操作密钥接口,使用Callback回调异步返回结果 。
+
+**系统能力**:SystemCapability.Security.Huks
+
+**参数:**
+
+| 参数名   | 类型                                      | 必填 | 说明                                         |
+| -------- | ----------------------------------------- | ---- | -------------------------------------------- |
+| handle   | number                                    | 是   | Finish操作的handle。                         |
+| options  | [HuksOptions](#huksoptions)               | 是   | Finish的参数集合。                           |
+| token    | Uint8Array                                | 是   | Finish操作的token。                          |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 将Finish操作的结果添加到密钥管理系统的回调。 |
+
+
+## huks.finish<sup>9+</sup>
+
+finish(handle: number, options: HuksOptions, token?: Uint8Array) : Promise\<HuksResult>
+
+finish操作密钥接口,使用Promise方式异步返回结果。
+
+**系统能力**:SystemCapability.Security.Huks
+
+**参数:**
 
+| 参数名  | 类型                                | 必填 | 说明                                |
+| ------- | ----------------------------------- | ---- | ----------------------------------- |
+| handle  | number                              | 是   | Finish操作的handle。                |
+| options | [HuksOptions](#huksoptions)         | 是   | Finish操作的参数集合。              |
+| token   | Uint8Array                          | 否   | Finish操作的token。                 |
+| promise | Promise\<[HuksResult](#Huksresult)> | 是   | promise实例,用于获取异步返回结果。 |
 
 ## huks.abort
 
@@ -1207,7 +1361,7 @@ abort(handle: number, options: HuksOptions, callback: AsyncCallback\<HuksResult>
 
 abort操作密钥接口,使用Callback回调异步返回结果 。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1427,7 +1581,7 @@ abort(handle: number, options: HuksOptions) : Promise\<HuksResult>;
 
 abort操作密钥接口,使用Promise方式异步返回结果。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 **参数:**
 
@@ -1651,49 +1805,49 @@ struct Index {
 
 调用接口使用的options中的properties数组中的param。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
-| 参数名 | 类型                                | 必填 | 说明       |
-| ------ | ----------------------------------- | ---- | ---------- |
-| tag    | HuksTag                             | 是   | 标签       |
-| value  | boolean\|number\|bigint\|Uint8Array | 是   | 标签对应值 |
+| 参数名 | 类型                                | 必填 | 说明         |
+| ------ | ----------------------------------- | ---- | ------------ |
+| tag    | [HuksTag](#hukstag)                 | 是   | 标签。       |
+| value  | boolean\|number\|bigint\|Uint8Array | 是   | 标签对应值。 |
 
 ## HuksOptions
 
 调用接口使用的options。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 参数名     | 类型              | 必填 | 说明                     |
 | ---------- | ----------------- | ---- | ------------------------ |
-| properties | Array\<HuksParam> | 否   | 属性,存HuksParam的数组。 |
+| properties | Array\<[HuksParam](#huksparam)> | 否   | 属性,用于存HuksParam的数组。 |
 | inData     | Uint8Array        | 否   | 输入数据。               |
 
 ## HuksHandle
 
 huks Handle结构体。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 | 参数名     | 类型             | 必填 | 说明     |
 | ---------- | ---------------- | ---- | -------- |
-| errorCode  | number           | 是   | 错误码 |
-| handle    | number       | 是 | handle值 |
-| token | Uint8Array | 否 | 预留字段 |
+| errorCode  | number           | 是   | 表示错误码。 |
+| handle    | number       | 是 | 表示handle值。 |
+| token | Uint8Array | 否 | 表示[init](#huksinit)操作之后获取到的challenge信息。 |
 
 
 ## HuksResult
 
 调用接口返回的result。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
+**系统能力**:SystemCapability.Security.Huks
 
 
 
-| 参数名     | 类型              | 必填 | 说明     |
-| ---------- | ----------------- | ---- | -------- |
-| errorCode  | number            | 是   | 错误码   |
-| outData    | Uint8Array        | 否   | 输出数据 |
-| properties | Array\<HuksParam> | 否   | 属性     |
-| certChains | Array\<string>    | 否   | 证书链   |
+| 参数名     | 类型                            | 必填 | 说明             |
+| ---------- | ------------------------------- | ---- | ---------------- |
+| errorCode  | number                          | 是   | 表示错误码。     |
+| outData    | Uint8Array                      | 否   | 表示输出数据。   |
+| properties | Array\<[HuksParam](#huksparam)> | 否   | 表示属性信息。   |
+| certChains | Array\<string>                  | 否   | 表示证书链数据。 |
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-i18n.md b/zh-cn/application-dev/reference/apis/js-apis-i18n.md
index 8d824eed79e430d8704481ca37a8243011ba834c..ba30c0778a1c0a056e16da4c7ac08605853c5ab5 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-i18n.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-i18n.md
@@ -3,15 +3,15 @@
  本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。
 [Intl模块](js-apis-intl.md)提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>  **说明:**
+>  - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
-> - I18N模块包含国际化能力增强接口(未在ECMA 402中定义),包括区域管理、电话号码处理、日历等,国际化基础能力请参考[Intl模块](js-apis-intl.md)。
+>  - I18N模块包含国际化能力增强接口(未在ECMA 402中定义),包括区域管理、电话号码处理、日历等,国际化基础能力请参考[Intl模块](js-apis-intl.md)。
 
 
 ## 导入模块
 
-```
+```js
 import i18n from '@ohos.i18n';
 ```
 
@@ -37,7 +37,7 @@ getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): st
 | string | 指定语言的本地化显示文本。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getDisplayLanguage("zh", "en-GB", true);
   i18n.getDisplayLanguage("zh", "en-GB");
   ```
@@ -64,7 +64,7 @@ getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): stri
 | string | 指定国家的本地化显示文本。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getDisplayCountry("zh-CN", "en-GB", true);
   i18n.getDisplayCountry("zh-CN", "en-GB");
   ```
@@ -89,7 +89,7 @@ isRTL(locale: string): boolean
 | boolean | true表示该locale从右至左显示语言;false表示该locale从左至右显示语言。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.isRTL("zh-CN");// 中文不是RTL语言,返回false
   i18n.isRTL("ar-EG");// 阿语是RTL语言,返回true
   ```
@@ -109,7 +109,7 @@ getSystemLanguage(): string
 | string | 系统语言ID。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getSystemLanguage();
   ```
 
@@ -118,8 +118,9 @@ getSystemLanguage(): string
 
 setSystemLanguage(language: string): boolean
 
-设置系统语言。<br>
-该接口为系统接口。
+设置系统语言。当前调用该接口不支持系统界面语言的实时刷新。
+
+此接口为系统接口。
 
 **需要权限**:ohos.permission.UPDATE_CONFIGURATION
 
@@ -136,7 +137,7 @@ setSystemLanguage(language: string): boolean
 | boolean | 返回true,表示系统语言设置成功;返回false,表示系统语言设置失败。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.setSystemLanguage('zh');
   ```
 
@@ -147,9 +148,9 @@ getSystemLanguages(): Array&lt;string&gt;
 
 获取系统支持的语言列表。
 
-**系统能力**:SystemCapability.Global.I18n
+此接口为系统接口。
 
-**系统API**: 该接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Global.I18n
 
 **返回值:** 
 | 类型                  | 说明           |
@@ -157,7 +158,7 @@ getSystemLanguages(): Array&lt;string&gt;
 | Array&lt;string&gt; | 系统支持的语言ID列表。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getSystemLanguages();
   ```
 
@@ -168,9 +169,9 @@ getSystemCountries(language: string): Array&lt;string&gt;
 
 获取针对输入语言系统支持的区域列表。
 
-**系统能力**:SystemCapability.Global.I18n
+此接口为系统接口。
 
-**系统API**: 该接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
 | 参数名      | 类型     | 说明    |
@@ -183,7 +184,7 @@ getSystemCountries(language: string): Array&lt;string&gt;
 | Array&lt;string&gt; | 系统支持的区域ID列表。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getSystemCountries('zh');
   ```
 
@@ -202,7 +203,7 @@ getSystemRegion(): string
 | string | 系统地区ID。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getSystemRegion();
   ```
 
@@ -211,8 +212,9 @@ getSystemRegion(): string
 
 setSystemRegion(region: string): boolean
 
-设置系统区域。<br>
-该接口为系统接口。
+设置系统区域。
+
+此接口为系统接口。
 
 **需要权限**:ohos.permission.UPDATE_CONFIGURATION
 
@@ -229,7 +231,7 @@ setSystemRegion(region: string): boolean
 | boolean | 返回true,表示系统区域设置成功;返回false,表示系统区域设置失败。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.setSystemRegion('CN');
   ```
 
@@ -248,7 +250,7 @@ getSystemLocale(): string
 | string | 系统区域ID。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getSystemLocale();
   ```
 
@@ -257,8 +259,9 @@ getSystemLocale(): string
 
 setSystemLocale(locale: string): boolean
 
-设置系统Locale。<br>
-该接口为系统接口。 
+设置系统Locale。
+
+此接口为系统接口。 
 
 **需要权限**:ohos.permission.UPDATE_CONFIGURATION
 
@@ -275,7 +278,7 @@ setSystemLocale(locale: string): boolean
 | boolean | 返回true,表示系统Locale设置成功;返回false,表示系统Locale设置失败。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.setSystemLocale('zh-CN');
   ```
 
@@ -286,9 +289,9 @@ isSuggested(language: string, region?: string): boolean
 
 判断当前语言和区域是否匹配。
 
-**系统能力**:SystemCapability.Global.I18n
+此接口为系统接口。
 
-**系统API**: 该接口为系统接口,三方应用不支持调用。
+**系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
 | 参数名      | 类型     | 必填   | 说明            |
@@ -302,7 +305,7 @@ isSuggested(language: string, region?: string): boolean
 | boolean | 返回true,表示当前语言和地区匹配;返回false,表示当前语言和地区不匹配。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.isSuggested('zh', 'CN');
   ```
 
@@ -327,7 +330,7 @@ getCalendar(locale: string, type? : string): Calendar
 | [Calendar](#calendar8) | 日历对象。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.getCalendar("zh-Hans", "gregory");
   ```
 
@@ -349,7 +352,7 @@ setTime(date: Date): void
 | date | Date | 是    | 将要设置的日历对象的内部时间日期。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("en-US", "gregory");
   var date = new Date(2021, 10, 7, 8, 0, 0, 0);
   calendar.setTime(date);
@@ -370,7 +373,7 @@ setTime(time: number): void
 | time | number | 是    | time为从1970.1.1&nbsp;00:00:00&nbsp;GMT逝去的毫秒数。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("en-US", "gregory");
   calendar.setTime(10540800000);
   ```
@@ -395,7 +398,7 @@ set(year: number, month: number, date:number, hour?: number, minute?: number, se
 | second | number | 否    | 设置的秒。  |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00
   ```
@@ -415,7 +418,7 @@ setTimeZone(timezone: string): void
 | timezone | string | 是    | 设置的时区id,如“Asia/Shanghai”。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.setTimeZone("Asia/Shanghai");
   ```
@@ -435,7 +438,7 @@ getTimeZone(): string
 | string | 日历对象的时区id。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.setTimeZone("Asia/Shanghai");
   calendar.getTimeZone(); // Asia/Shanghai"
@@ -456,7 +459,7 @@ getFirstDayOfWeek(): number
 | number | 获取一周的起始日,1代表周日,7代表周六。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("en-US", "gregory");
   calendar.getFirstDayOfWeek();
   ```
@@ -476,7 +479,7 @@ setFirstDayOfWeek(value: number): void
 | value | number | 否    | 设置一周的起始日,1代表周日,7代表周六。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.setFirstDayOfWeek(0);
   ```
@@ -496,7 +499,7 @@ getMinimalDaysInFirstWeek(): number
 | number | 一年中第一周的最小天数。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.getMinimalDaysInFirstWeek();
   ```
@@ -516,7 +519,7 @@ setMinimalDaysInFirstWeek(value: number): void
 | value | number | 否    | 一年中第一周的最小天数。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.setMinimalDaysInFirstWeek(3);
   ```
@@ -541,7 +544,7 @@ get(field: string): number
 | number | 与field相关联的值,如当前Calendar对象的内部日期的年份为1990,get("year")返回1990。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00
   calendar.get("hour_of_day"); // 8
@@ -567,7 +570,7 @@ getDisplayName(locale: string): string
 | string | 日历在locale所指示的区域的名字。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("en-US", "buddhist");
   calendar.getDisplayName("zh"); // 佛历
   ```
@@ -592,7 +595,7 @@ isWeekend(date?: Date): boolean
 | boolean | 当所判断的日期为周末时,返回&nbsp;true,否则返回false。 |
 
 **示例:** 
-  ```
+  ```js
   var calendar = i18n.getCalendar("zh-Hans");
   calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.11.11 08:00:00
   calendar.isWeekend(); // false
@@ -619,7 +622,7 @@ constructor(country: string, options?: PhoneNumberFormatOptions)
 | options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | 否    | 电话号码格式化对象的相关选项。  |
 
 **示例:** 
-  ```
+  ```js
   var phoneNumberFormat= new i18n.PhoneNumberFormat("CN", {"type": "E164"});
   ```
 
@@ -643,7 +646,7 @@ isValidNumber(number: string): boolean
 | boolean | 返回true表示电话号码的格式正确,返回false表示电话号码的格式错误。 |
 
 **示例:** 
-  ```
+  ```js
   var phonenumberfmt = new i18n.PhoneNumberFormat("CN");
   phonenumberfmt.isValidNumber("15812312312");
   ```
@@ -668,13 +671,13 @@ format(number: string): string
 | string | 格式化后的电话号码。 |
 
 **示例:** 
-  ```
+  ```js
   var phonenumberfmt = new i18n.PhoneNumberFormat("CN");
   phonenumberfmt.format("15812312312");
   ```
 
 
-### getLocationName<sup>8+</sup>
+### getLocationName<sup>9+</sup>
 
 static getLocationName(number: string, locale: string): string
 
@@ -683,19 +686,20 @@ static getLocationName(number: string, locale: string): string
 **系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
-| 参数名    | 类型     | 必填   | 说明         |
-| ------ | ------ | ---- | ---------- |
+| 参数名    | 类型     | 必填   | 说明   |
+| ------ | ------ | ---- | ---- |
 | number | string | 是    | 电话号码 |
 | locale | string | 是    | 区域ID |
 
 **返回值:** 
-| 类型     | 说明         |
-| ------ | ---------- |
+| 类型     | 说明       |
+| ------ | -------- |
 | string | 电话号码归属地。 |
 
 **示例:** 
-  ```
-  var location = i18n.PhoneNumberFormat.getLocationName('15812312345', 'zh-CN');
+  ```js
+  var phonenumberfmt = new i18n.PhoneNumberFormat("CN");
+  phonenumberfmt.getLocationName("15812312345", "zh-CN");
   ```
 
 
@@ -703,7 +707,7 @@ static getLocationName(number: string, locale: string): string
 
 表示电话号码格式化对象可设置的属性。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称   | 参数类型   | 可读   | 可写   | 说明                                       |
 | ---- | ------ | ---- | ---- | ---------------------------------------- |
@@ -714,7 +718,7 @@ static getLocationName(number: string, locale: string): string
 
 度量衡单位信息。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称            | 参数类型   | 可读   | 可写   | 说明                                       |
 | ------------- | ------ | ---- | ---- | ---------------------------------------- |
@@ -748,11 +752,35 @@ static unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale:
 | string | 按照toUnit的单位格式化后,得到的字符串。 |
 
 **示例:** 
-  ```
+  ```js
   i18n.Util.unitConvert({unit: "cup", measureSystem: "US"}, {unit: "liter", measureSystem: "SI"}, 1000, "en-US", "long");
   ```
 
 
+### getDateOrder<sup>9+</sup>
+
+static getDateOrder(locale: string): string
+
+获取某一区域的日期的年、月、日排列顺序。
+
+**系统能力**:SystemCapability.Global.I18n
+
+**参数:** 
+| 参数名    | 类型     | 必填   | 说明                        |
+| ------ | ------ | ---- | ------------------------- |
+| locale | string | 是    | 格式化时使用的区域参数,如:zh-Hans-CN。 |
+
+**返回值:** 
+| 类型     | 说明                  |
+| ------ | ------------------- |
+| string | 返回某一区域的日期的年、月、日排列顺序 |
+
+**示例:** 
+  ```js
+  i18n.Util.getDateOrder("zh-CN");
+  ```
+
+
 ## getInstance<sup>8+</sup>
 
 getInstance(locale?:string): IndexUtil
@@ -772,7 +800,7 @@ getInstance(locale?:string): IndexUtil
 | [IndexUtil](#indexutil8) | locale对应的IndexUtil对象。 |
 
 **示例:** 
-  ```
+  ```js
   var indexUtil= i18n.getInstance("zh-CN");
   ```
 
@@ -794,7 +822,7 @@ getIndexList(): Array&lt;string&gt;
 | Array&lt;string&gt; | 返回当前locale对应的索引列表。 |
 
 **示例:** 
-  ```
+  ```js
   var indexUtil = i18n.getInstance("zh-CN");
   var indexList = indexUtil.getIndexList();
   ```
@@ -814,7 +842,7 @@ addLocale(locale: string): void
 | locale | string | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
 
 **示例:** 
-  ```
+  ```js
   var indexUtil = i18n.getInstance("zh-CN");
   indexUtil.addLocale("en-US");
   ```
@@ -839,9 +867,9 @@ getIndex(text: string): string
 | string | 输入文本对应的索引值。 |
 
 **示例:** 
-  ```
+  ```js
   var indexUtil= i18n.getInstance("zh-CN");
-  indexUtil.getIndex("hi");  // 返回h
+  indexUtil.getIndex("hi");  // 返回hi
   ```
 
 
@@ -867,7 +895,7 @@ static isDigit(char: string): boolean
 | boolean | 返回true表示输入的字符是数字,返回false表示输入的字符不是数字。 |
 
 **示例:** 
-  ```
+  ```js
   var isdigit = i18n.Character.isDigit("1");  // 返回true
   ```
 
@@ -891,7 +919,7 @@ static isSpaceChar(char: string): boolean
 | boolean | 返回true表示输入的字符是空格符,返回false表示输入的字符不是空格符。 |
 
 **示例:** 
-  ```
+  ```js
   var isspacechar = i18n.Character.isSpaceChar("a");  // 返回false
   ```
 
@@ -915,7 +943,7 @@ static isWhitespace(char: string): boolean
 | boolean | 返回true表示输入的字符是空白符,返回false表示输入的字符不是空白符。 |
 
 **示例:** 
-  ```
+  ```js
   var iswhitespace = i18n.Character.isWhitespace("a");  // 返回false
   ```
 
@@ -939,7 +967,7 @@ static isRTL(char: string): boolean
 | boolean | 返回true表示输入的字符是从右到左语言的字符,返回false表示输入的字符不是从右到左语言的字符。 |
 
 **示例:** 
-  ```
+  ```js
   var isrtl = i18n.Character.isRTL("a");  // 返回false
   ```
 
@@ -963,7 +991,7 @@ static isIdeograph(char: string): boolean
 | boolean | 返回true表示输入的字符是表意文字,返回false表示输入的字符不是表意文字。 |
 
 **示例:** 
-  ```
+  ```js
   var isideograph = i18n.Character.isIdeograph("a");  // 返回false
   ```
 
@@ -987,7 +1015,7 @@ static isLetter(char: string): boolean
 | boolean | 返回true表示输入的字符是字母,返回false表示输入的字符不是字母。 |
 
 **示例:** 
-  ```
+  ```js
   var isletter = i18n.Character.isLetter("a");  // 返回true
   ```
 
@@ -1011,7 +1039,7 @@ static isLowerCase(char: string): boolean
 | boolean | 返回true表示输入的字符是小写字母,返回false表示输入的字符不是小写字母。 |
 
 **示例:** 
-  ```
+  ```js
   var islowercase = i18n.Character.isLowerCase("a");  // 返回true
   ```
 
@@ -1035,7 +1063,7 @@ static isUpperCase(char: string): boolean
 | boolean | 返回true表示输入的字符是大写字母,返回false表示输入的字符不是大写字母。 |
 
 **示例:** 
-  ```
+  ```js
   var isuppercase = i18n.Character.isUpperCase("a");  // 返回false
   ```
 
@@ -1059,7 +1087,7 @@ static getType(char: string): string
 | string | 输入字符的一般类别值。 |
 
 **示例:** 
-  ```
+  ```js
   var type = i18n.Character.getType("a");
   ```
 
@@ -1083,7 +1111,7 @@ getLineInstance(locale: string): BreakIterator
 | [BreakIterator](#breakiterator8) | 用于进行断句的处理器。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   ```
 
@@ -1105,7 +1133,7 @@ setLineBreakText(text: string): void
 | text | string | 是    | 指定BreakIterator进行断句的文本。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   ```
@@ -1125,7 +1153,7 @@ getLineBreakText(): string
 | string | BreakIterator对象正在处理的文本 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.getLineBreakText(); // Apple is my favorite fruit.
@@ -1146,7 +1174,7 @@ current(): number
 | number | BreakIterator在当前所处理的文本中的位置。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.current(); // 0
@@ -1167,7 +1195,7 @@ first(): number
 | number | 被处理文本的第一个分割点的偏移量。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.first(); // 0
@@ -1188,7 +1216,7 @@ last(): number
 | number | 被处理的文本的最后一个分割点的偏移量 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.last(); // 27
@@ -1214,7 +1242,7 @@ next(index?: number): number
 | number | 返回移动了index个分割点后,当前[BreakIterator](#breakiterator8)在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.first(); // 0
@@ -1237,7 +1265,7 @@ previous(): number
 | number | 返回移动到前一个分割点后,当前[BreakIterator](#breakiterator8)在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.first(); // 0
@@ -1265,7 +1293,7 @@ following(offset: number): number
 | number | 返回[BreakIterator](#breakiterator8)移动后的位置,如果由offset所指定的位置的下一个分割点超出了文本的范围则返回-1。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.following(0); // 6
@@ -1293,7 +1321,7 @@ isBoundary(offset: number): boolean
 | boolean | 如果是一个分割点返回true,&nbsp;否则返回false。 |
 
 **示例:** 
-  ```
+  ```js
   var iterator = i18n.getLineInstance("en");
   iterator.setLineBreakText("Apple is my favorite fruit.");
   iterator.isBoundary(0); // true;
@@ -1315,7 +1343,7 @@ is24HourClock(): boolean
 | boolean | 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。 |
 
 **示例:** 
-  ```
+  ```js
   var is24HourClock = i18n.is24HourClock();
   ```
 
@@ -1341,7 +1369,7 @@ set24HourClock(option: boolean): boolean
 | boolean | 返回true,表示修改成功;返回false,表示修改失败。 |
 
 **示例:** 
-  ```
+  ```js
   // 将系统时间设置为24小时制
   var success = i18n.set24HourClock(true);
   ```
@@ -1369,7 +1397,7 @@ addPreferredLanguage(language: string, index?: number): boolean
 | boolean | 返回true,表示添加成功;返回false,表示添加失败。 |
 
 **示例:** 
-  ```
+  ```js
   // 将语言zh-CN添加到系统偏好语言列表中
   var language = 'zh-CN';
   var index = 0;
@@ -1398,7 +1426,7 @@ removePreferredLanguage(index: number): boolean
 | boolean | 返回true,表示删除成功;返回false,表示删除失败。 |
 
 **示例:** 
-  ```
+  ```js
   // 删除系统偏好语言列表中的第一个偏好语言
   var index = 0;
   var success = i18n.removePreferredLanguage(index);
@@ -1419,7 +1447,7 @@ getPreferredLanguageList(): Array&lt;string&gt;
 | Array&lt;string&gt; | 系统偏好语言列表。 |
 
 **示例:** 
-  ```
+  ```js
   var preferredLanguageList = i18n.getPreferredLanguageList();
   ```
 
@@ -1438,7 +1466,7 @@ getFirstPreferredLanguage(): string
 | string | 偏好语言列表中的第一个语言。 |
 
 **示例:** 
-  ```
+  ```js
   var firstPreferredLanguage = i18n.getFirstPreferredLanguage();
   ```
 
@@ -1452,12 +1480,12 @@ getAppPreferredLanguage(): string
 **系统能力**:SystemCapability.Global.I18n
 
 **返回值:** 
-| 类型     | 说明             |
-| ------ | -------------- |
+| 类型     | 说明       |
+| ------ | -------- |
 | string | 应用的偏好语言。 |
 
 **示例:** 
-  ```
+  ```js
   var appPreferredLanguage = i18n.getAppPreferredLanguage();
   ```
 
@@ -1481,15 +1509,15 @@ getTimeZone(zoneID?: string): TimeZone
 | TimeZone | 时区ID对应的时区对象。 |
 
 **示例:** 
-  ```
+  ```js
   var timezone = i18n.getTimeZone();
   ```
 
 
-## TimeZone<sup>8+</sup>
+## TimeZone
 
 
-### getID<sup>8+</sup>
+### getID
 
 getID(): string
 
@@ -1503,13 +1531,13 @@ getID(): string
 | string | 时区对象对应的时区ID。 |
 
 **示例:** 
-  ```
+  ```js
   var timezone = i18n.getTimeZone();
   timezone.getID();
   ```
 
 
-### getDisplayName<sup>8+</sup>
+### getDisplayName
 
 getDisplayName(locale?: string, isDST?: boolean): string
 
@@ -1529,13 +1557,13 @@ getDisplayName(locale?: string, isDST?: boolean): string
 | string | 时区对象在指定区域的表示。 |
 
 **示例:** 
-  ```
+  ```js
   var timezone = i18n.getTimeZone();
   timezone.getDisplayName("zh-CN", false);
   ```
 
 
-### getRawOffset<sup>8+</sup>
+### getRawOffset
 
 getRawOffset(): number
 
@@ -1549,13 +1577,13 @@ getRawOffset(): number
 | number | 时区对象表示的时区与UTC时区的偏差。 |
 
 **示例:** 
-  ```
+  ```js
   var timezone = i18n.getTimeZone();
   timezone.getRawOffset();
   ```
 
 
-### getOffset<sup>8+</sup>
+### getOffset
 
 getOffset(date?: number): number
 
@@ -1569,7 +1597,7 @@ getOffset(date?: number): number
 | number | 某一时刻时区对象表示的时区与UTC时区的偏差。 |
 
 **示例:** 
-  ```
+  ```js
   var timezone = i18n.getTimeZone();
   timezone.getOffset(1234567890);
   ```
@@ -1584,12 +1612,12 @@ static getAvailableIDs(): Array&lt;string&gt;
 **系统能力**:SystemCapability.Global.I18n
 
 **返回值:** 
-| 类型     | 说明                      |
-| ------ | ----------------------- |
+| 类型                  | 说明          |
+| ------------------- | ----------- |
 | Array&lt;string&gt; | 系统支持的时区ID列表 |
 
 **示例:** 
-  ```
+  ```ts
   var ids = i18n.TimeZone.getAvailableIDs();
   ```
 
@@ -1603,12 +1631,12 @@ static getAvailableZoneCityIDs(): Array&lt;string&gt;
 **系统能力**:SystemCapability.Global.I18n
 
 **返回值:** 
-| 类型     | 说明                      |
-| ------ | ----------------------- |
+| 类型                  | 说明            |
+| ------------------- | ------------- |
 | Array&lt;string&gt; | 系统支持的时区城市ID列表 |
 
 **示例:** 
-  ```
+  ```ts
   var cityIDs = i18n.TimeZone.getAvailableZoneCityIDs();
   ```
 
@@ -1622,18 +1650,18 @@ static getCityDisplayName(cityID: string, locale: string): string
 **系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
-| 参数名    | 类型     | 必填   | 说明    |
-| ------ | ------ | ---- | ----- |
+| 参数名    | 类型     | 必填   | 说明     |
+| ------ | ------ | ---- | ------ |
 | cityID | string | 是    | 时区城市ID |
-| locale | string | 是    | 区域ID |
+| locale | string | 是    | 区域ID   |
 
 **返回值:** 
-| 类型     | 说明                      |
-| ------ | ----------------------- |
+| 类型     | 说明                 |
+| ------ | ------------------ |
 | string | 时区城市在locale下的本地化显示 |
 
 **示例:** 
-  ```
+  ```ts
   var displayName = i18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN");
   ```
 
@@ -1647,17 +1675,17 @@ static getTimezoneFromCity(cityID: string): TimeZone
 **系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
-| 参数名    | 类型     | 必填   | 说明    |
-| ------ | ------ | ---- | ----- |
+| 参数名    | 类型     | 必填   | 说明     |
+| ------ | ------ | ---- | ------ |
 | cityID | string | 是    | 时区城市ID |
 
 **返回值:** 
-| 类型     | 说明                      |
-| ------ | ----------------------- |
+| 类型       | 说明          |
+| -------- | ----------- |
 | TimeZone | 时区城市对应的时区对象 |
 
 **示例:** 
-  ```
+  ```ts
   var timezone = i18n.TimeZone.getTimezoneFromCity("Shanghai");
   ```
 
@@ -1666,25 +1694,26 @@ static getTimezoneFromCity(cityID: string): TimeZone
 
 setUsingLocalDigit(flag: boolean): boolean
 
-设置是否打开本地数字开关。<br>
-该接口为系统接口。
+设置是否打开本地数字开关。
+
+此接口为系统接口。
 
 **需要权限**:ohos.permission.UPDATE_CONFIGURATION
 
 **系统能力**:SystemCapability.Global.I18n
 
 **参数:** 
-| 参数名    | 类型     | 必填   | 说明    |
-| ------ | ------ | ---- | ----- |
+| 参数名  | 类型      | 必填   | 说明                              |
+| ---- | ------- | ---- | ------------------------------- |
 | flag | boolean | 是    | true表示打开本地数字开关,false表示关闭本地数字开关。 |
 
 **返回值:** 
-| 类型       | 说明           |
-| -------- | ------------ |
+| 类型      | 说明                                  |
+| ------- | ----------------------------------- |
 | boolean | true表示本地数字开关设置成功,false表示本地数字开关设置失败。 |
 
 **示例:** 
-  ```
+  ```ts
   var status = i18n.setUsingLocalDigit(true);
   ```
 
@@ -1698,11 +1727,82 @@ getUsingLocalDigit(): boolean
 **系统能力**:SystemCapability.Global.I18n
 
 **返回值:** 
-| 类型       | 说明           |
-| -------- | ------------ |
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
 | boolean | true表示系统当前已打开本地数字开关,false表示系统当前未打开本地数字开关。 |
 
 **示例:** 
-  ```
+  ```ts
   var status = i18n.getUsingLocalDigit();
+  ```
+
+
+## Transliterator<sup>9+</sup>
+
+
+### getAvailableIDs<sup>9+</sup>
+
+static getAvailableIDs(): string[]
+
+获取音译支持的ID列表。
+
+**系统能力**:SystemCapability.Global.I18n
+
+**返回值:** 
+| 类型       | 说明         |
+| -------- | ---------- |
+| string[] | 音译支持的ID列表。 |
+
+**示例:** 
+  ```ts
+  i18n.Transliterator.getAvailableIDs();
+  ```
+
+
+### getInstance<sup>9+</sup>
+
+static getInstance(id: string): Transliterator
+
+创建音译对象。
+
+**系统能力**:SystemCapability.Global.I18n
+
+**参数:** 
+| 参数名  | 类型     | 必填   | 说明       |
+| ---- | ------ | ---- | -------- |
+| id   | string | 是    | 音译支持的ID。 |
+
+**返回值:** 
+| 类型                                 | 说明    |
+| ---------------------------------- | ----- |
+| [Transliterator](#transliterator9) | 音译对象。 |
+
+**示例:** 
+  ```ts
+  var transliterator = i18n.Transliterator.getInstance("Any-Latn");
+  ```
+
+
+### transform<sup>9+</sup>
+
+transform(text: string): string
+
+将输入字符串从源格式转换为目标格式。
+
+**系统能力**:SystemCapability.Global.I18n
+
+**参数:** 
+| 参数名  | 类型     | 必填   | 说明     |
+| ---- | ------ | ---- | ------ |
+| text | string | 是    | 输入字符串。 |
+
+**返回值:** 
+| 类型     | 说明       |
+| ------ | -------- |
+| string | 转换后的字符串。 |
+
+**示例:** 
+  ```ts
+  var transliterator = i18n.Transliterator.getInstance("Any-Latn");
+  transliterator.transform("中国");
   ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md
index 6720c5cbcdd506327ca1bd9fd5e5b9af698563fe..f4aeef3b877acfc2634927e33743d707f60a7c07 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-image.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-image.md
@@ -82,9 +82,9 @@ image.createPixelMap(color, opts, (error, pixelmap) => {
 
 **系统能力:** SystemCapability.Multimedia.Image.Core
 
-| 名称                    | 类型    | 可读 | 可写 | 说明                       |
-| ----------------------- | ------- | ---- | ---- | -------------------------- |
-| isEditable<sup>7+</sup> | boolean | 是   | 否   | 设定是否图像像素可被编辑。 |
+| 名称       | 类型    | 可读 | 可写 | 说明                       |
+| ---------- | ------- | ---- | ---- | -------------------------- |
+| isEditable | boolean | 是   | 否   | 设定是否图像像素可被编辑。 |
 
 ### readPixelsToBuffer<sup>7+</sup>
 
@@ -96,20 +96,20 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
 
 **参数:**
 
-| 参数名 | 类型        | 必填 | 说明                                                         |
-| ------ | ----------- | ---- | ------------------------------------------------------------ |
-| dst    | ArrayBuffer | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
+| 参数名 | 类型        | 必填 | 说明                                                                                                  |
+| ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- |
+| dst    | ArrayBuffer | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
 
 **返回值:**
 
 | 类型           | 说明                                            |
-| :------------- | :---------------------------------------------- |
+| -------------- | ----------------------------------------------- |
 | Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
 
 **示例:**
 
 ```js
-const readBuffer = new ArrayBuffer(400);
+const readBuffer = new ArrayBuffer(96);
 pixelmap.readPixelsToBuffer(readBuffer).then(() => {
     console.log('Succeeded in reading image pixel data.');  //符合条件则进入 
 }).catch(error => {
@@ -127,15 +127,15 @@ readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void
 
 **参数:**
 
-| 参数名   | 类型                 | 必填 | 说明                                                         |
-| -------- | -------------------- | ---- | ------------------------------------------------------------ |
-| dst      | ArrayBuffer          | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
-| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。                               |
+| 参数名   | 类型                 | 必填 | 说明                                                                                                  |
+| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- |
+| dst      | ArrayBuffer          | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
+| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。                                                                        |
 
 **示例:**
 
 ```js
-const readBuffer = new ArrayBuffer(400);
+const readBuffer = new ArrayBuffer(96);
 pixelmap.readPixelsToBuffer(readBuffer, (err, res) => {
     if(err) {
         console.log('Failed to read image pixel data.');  //不符合条件则进入
@@ -279,7 +279,7 @@ writePixels(area: PositionArea, callback: AsyncCallback\<void>): void
 | 参数名    | 类型                           | 必填 | 说明                           |
 | --------- | ------------------------------ | ---- | ------------------------------ |
 | area      | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。           |
-| callback: | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
+| callback  | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
 
 **示例:**
 
@@ -892,8 +892,6 @@ let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
 image.createPixelMap(color, opts, (pixelmap) => {
     pixelmap.release().then(() => {
 	    console.log('Succeeded in releasing pixelmap object.');
-    }).catch(error => {
-	    console.log('Failed to release pixelmap object.');
     })
 })
 ```
@@ -925,6 +923,33 @@ let path = this.context.getApplicationContext().fileDirs + "test.jpg";
 const imageSourceApi = image.createImageSource(path);
 ```
 
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(uri: string, options: SourceOptions): ImageSource
+
+通过传入的uri创建图片源实例。
+
+**系统能力:** SystemCapability.Multimedia.Image.ImageSource
+
+**参数:**
+
+| 参数名  | 类型                            | 必填 | 说明                                |
+| ------- | ------------------------------- | ---- | ----------------------------------- |
+| uri     | string                          | 是   | 图片路径,当前仅支持应用沙箱路径。  |
+| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。|
+
+**返回值:**
+
+| 类型                        | 说明                                         |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
+
+**示例:**
+
+```js
+const imageSourceApi = image.createImageSource('/sdcard/test.jpg');
+```
+
 ## image.createImageSource<sup>7+</sup>
 
 createImageSource(fd: number): ImageSource
@@ -948,7 +973,34 @@ createImageSource(fd: number): ImageSource
 **示例:**
 
 ```js
-const imageSourceApi = image.createImageSource(0)
+const imageSourceApi = image.createImageSource(0);
+```
+
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(fd: number, options: SourceOptions): ImageSource
+
+通过传入文件描述符来创建图片源实例。
+
+**系统能力:** SystemCapability.Multimedia.Image.ImageSource
+
+**参数:**
+
+| 参数名  | 类型                            | 必填 | 说明                                |
+| ------- | ------------------------------- | ---- | ----------------------------------- |
+| fd      | number                          | 是   | 文件描述符fd。                      |
+| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。|
+
+**返回值:**
+
+| 类型                        | 说明                                         |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
+
+**示例:**
+
+```js
+const imageSourceApi = image.createImageSource(fd);
 ```
 
 ## image.createImageSource<sup>9+</sup>
@@ -972,9 +1024,64 @@ const buf = new ArrayBuffer(96);
 const imageSourceApi = image.createImageSource(buf);
 ```
 
+## image.createImageSource<sup>9+</sup>
+
+createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
+
+通过缓冲区创建图片源实例。
+
+**系统能力:** SystemCapability.Multimedia.Image.ImageSource
+
+**参数:**
+
+| 参数名 | 类型                             | 必填 | 说明                                 |
+| ------ | -------------------------------- | ---- | ------------------------------------ |
+| buf    | ArrayBuffer                      | 是   | 图像缓冲区数组。                     |
+| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。 |
+
+**返回值:**
+
+| 类型                        | 说明                                         |
+| --------------------------- | -------------------------------------------- |
+| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
+
+**示例:**
+
+```js
+const data = new ArrayBuffer(112);
+const imageSourceApi = image.createImageSource(data);
+```
+
+## image.CreateIncrementalSource<sup>9+</sup>
+
+CreateIncrementalSource(buf: ArrayBuffer): ImageSource
+
+通过缓冲区以增量的方式创建图片源实例。
+
+**系统能力:** SystemCapability.Multimedia.Image.ImageSource
+
+**参数:**
+
+| 参数名  | 类型        | 必填 | 说明      |
+| ------- | ------------| ---- | ----------|
+| buf     | ArrayBuffer | 是   | 增量数据。|
+
+**返回值:**
+
+| 类型                        | 说明                              |
+| --------------------------- | --------------------------------- |
+| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 |
+
+**示例:**
+
+```js
+const buf = new ArrayBuffer(96);
+const imageSourceApi = image.CreateIncrementalSource(buf);
+```
+
 ## image.CreateIncrementalSource<sup>9+</sup>
 
-function CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
+CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
 
 通过缓冲区以增量的方式创建图片源实例。
 
@@ -985,7 +1092,7 @@ function CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): Ima
 | 参数名  | 类型                            | 必填 | 说明                                 |
 | ------- | ------------------------------- | ---- | ------------------------------------ |
 | buf     | ArrayBuffer                     | 是   | 增量数据。                           |
-| options | [SourceOptions](#SourceOptions) | 否   | 图片属性,包括图片序号与默认属性值。 |
+| options | [SourceOptions](#sourceoptions9) | 否   | 图片属性,包括图片序号与默认属性值。 |
 
 **返回值:**
 
@@ -1109,8 +1216,8 @@ getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string
 
 **返回值:**
 
-| 类型             | 说明                                                         |
-| ---------------- | ------------------------------------------------------------ |
+| 类型             | 说明                                                              |
+| ---------------- | ----------------------------------------------------------------- |
 | Promise\<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
 
 **示例:**
@@ -1159,11 +1266,11 @@ getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCa
 
 **参数:**
 
-| 参数名   | 类型                                                 | 必填 | 说明                                                         |
-| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
-| key      | string                                               | 是   | 图片属性名。                                                 |
-| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是   | 图片属性,包括图片序号与默认属性值。                         |
-| callback | AsyncCallback\<string>                               | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
+| 参数名   | 类型                                                 | 必填 | 说明                                                          |
+| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- |
+| key      | string                                               | 是   | 图片属性名。                                                  |
+| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是   | 图片属性,包括图片序号与默认属性值。                          |
+| callback | AsyncCallback\<string>                               | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。|
 
 **示例:**
 
@@ -1202,7 +1309,7 @@ modifyImageProperty(key: string, value: string): Promise\<void>
 **示例:**
 
 ```js
-imageSourceApi.modifyImageProperty("ImageWidth", "abc")
+imageSourceApi.modifyImageProperty("ImageWidth", "120")
             .then(() => {
                 const w = imageSourceApi.getImageProperty("ImageWidth")
                 console.info('w', w);
@@ -1211,7 +1318,7 @@ imageSourceApi.modifyImageProperty("ImageWidth", "abc")
 
 ### modifyImageProperty<sup>9+</sup>
 
-modifyImageProperty(key: string, value: string, callback: AsyncCallback<void>): void
+modifyImageProperty(key: string, value: string, callback: AsyncCallback\<void>): void
 
 通过指定的键修改图片属性的值,callback形式返回结果。
 
@@ -1223,12 +1330,12 @@ modifyImageProperty(key: string, value: string, callback: AsyncCallback<void>):
 | -------- | ------------------- | ---- | ------------------------------ |
 | key      | string              | 是   | 图片属性名。                   |
 | value    | string              | 是   | 属性值。                       |
-| callback | AsyncCallback<void> | 是   | 修改属性值,callback返回结果。 |
+| callback | AsyncCallback\<void> | 是   | 修改属性值,callback返回结果。 |
 
 **示例:**
 
 ```js
-imageSourceApi.modifyImageProperty("ImageWidth", "abc",() => {})
+imageSourceApi.modifyImageProperty("ImageWidth", "120",() => {})
 ```
 
 ### updateData<sup>9+</sup>
@@ -1266,7 +1373,7 @@ imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
 
 ### updateData<sup>9+</sup>
 
-updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback<void>): void
+updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback\<void>): void
 
 更新增量数据,callback形式返回结果。
 
@@ -1280,7 +1387,7 @@ updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number,
 | isFinished | boolean             | 是   | 是否更新完。         |
 | value      | number              | 否   | 偏移量。             |
 | length     | number              | 否   | 数组长。             |
-| callback   | AsyncCallback<void> | 是   | 回调表示成功或失败。 |
+| callback   | AsyncCallback\<void> | 是   | 回调表示成功或失败。 |
 
 **示例:**
 
@@ -1340,11 +1447,9 @@ createPixelMap(callback: AsyncCallback\<PixelMap>): void
 **示例:**
 
 ```js
-imageSourceApi.createPixelMap(pixelmap => { 
-    console.log('Succeeded in creating pixelmap object.');
-}).catch(error => {
-    console.log('Failed to create pixelmap object.');
-})
+imageSourceApi.createPixelMap((err, pixelmap) => {
+                    console.info('Succeeded in creating pixelmap object.')ï¼›
+                })
 ```
 
 ### createPixelMap<sup>7+</sup>
@@ -1423,7 +1528,7 @@ createImagePacker(): ImagePacker
 
 创建ImagePacker实例。
 
-**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
+**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
 
 **返回值:**
 
@@ -1491,8 +1596,8 @@ packing(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer>
 **返回值:**
 
 | 类型                         | 说明                                          |
-| :--------------------------- | :-------------------------------------------- |
-| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
+| ---------------------------- | --------------------------------------------- |
+| Promise\<ArrayBuffer>        | Promise实例,用于异步获取压缩或打包后的数据。 |
 
 **示例:**
 
@@ -1530,8 +1635,6 @@ let packOpts = { format:"image/jpeg", quality:98 }
 const pixelMapApi = new ArrayBuffer(400);
 imagePackerApi.packing(pixelMapApi, packOpts, data => { 
     console.log('Succeeded in packing the image.');
-}).catch(error => {
-	console.log('Failed to pack the image.');
 })
 ```
 
@@ -1552,9 +1655,9 @@ packing(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer>
 
 **返回值:**
 
-| 类型                         | 说明                                          |
-| :--------------------------- | :-------------------------------------------- |
-| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
+| 类型                  | 说明                                         |
+| --------------------- | -------------------------------------------- |
+| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。|
 
 **示例:**
 
@@ -1601,9 +1704,9 @@ release(): Promise\<void>
 
 **返回值:**
 
-| 类型           | 说明                                                    |
-| :------------- | :------------------------------------------------------ |
-| Promise\<void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。 |
+| 类型           | 说明                                                   |
+| -------------- | ------------------------------------------------------ |
+| Promise\<void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。|
 
 **示例:**
 
@@ -1654,11 +1757,11 @@ var receiver = image.createImageReceiver(8192, 8, 4, 8);
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver
 
-| 名称                  | 类型                         | 可读 | 可写 | 说明               |
-| --------------------- | ---------------------------- | ---- | ---- | ------------------ |
-| size<sup>9+</sup>     | [Size](#size)                | 是   | 否   | 图片大小。         |
-| capacity<sup>9+</sup> | number                       | 是   | 否   | 同时访问的图像数。 |
-| format<sup>9+</sup>   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
+| 名称     | 类型                         | 可读 | 可写 | 说明               |
+| -------- | ---------------------------- | ---- | ---- | ------------------ |
+| size     | [Size](#size)                | 是   | 否   | 图片大小。         |
+| capacity | number                       | 是   | 否   | 同时访问的图像数。 |
+| format   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
 
 ### getReceivingSurfaceId<sup>9+</sup>
 
@@ -1748,7 +1851,7 @@ readLatestImage(): Promise\<Image>
 
 | 类型                      | 说明               |
 | ------------------------- | ------------------ |
-| Promise<[Image](#image8)> | 异步返回最新图片。 |
+| Promise<[Image](#image9)> | 异步返回最新图片。 |
 
 **示例:**
 
@@ -1883,11 +1986,11 @@ receiver.release().then(() => {
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
 
-| 名称                  | 类型               | 可读 | 可写 | 说明                                               |
-| --------------------- | ------------------ | ---- | ---- | -------------------------------------------------- |
-| clipRect<sup>9+</sup> | [Region](#region7) | 是   | 是   | 要裁剪的图像区域。                                 |
-| size<sup>9+</sup>     | [Size](#size)      | 是   | 否   | 图像大小。                                         |
-| format<sup>9+</sup>   | number             | 是   | 否   | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 |
+| 名称     | 类型               | 可读 | 可写 | 说明                                               |
+| -------- | ------------------ | ---- | ---- | -------------------------------------------------- |
+| clipRect | [Region](#region7) | 是   | 是   | 要裁剪的图像区域。                                 |
+| size     | [Size](#size)      | 是   | 否   | 图像大小。                                         |
+| format   | number             | 是   | 否   | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 |
 
 ### getComponent<sup>9+</sup>
 
@@ -1963,8 +2066,6 @@ release(callback: AsyncCallback\<void>): void
 ```js
 img.release(() =>{ 
     console.log('release succeeded.');
-}).catch(error => {
-    console.log('release failed.');
 }) 
 ```
 
@@ -2034,11 +2135,12 @@ img.release().then(() =>{
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
 
-| 名称      | 默认值 | 描述              |
-| --------- | ------ | ---------------- |
-| UNKNOWN   | 0      | 未知格式。        |
-| RGB_565   | 2      | 格式为RGB_565。   |
-| RGBA_8888 | 3      | 格式为RGBA_8888。 |
+| 名称                   | 默认值 | 描述              |
+| ---------------------- | ------ | ----------------- |
+| UNKNOWN                | 0      | 未知格式。        |
+| RGB_565                | 2      | 格式为RGB_565     |
+| RGBA_8888              | 3      | 格式为RGBA_8888。 |
+| BGRA_8888<sup>9+</sup> | 4      | 格式为BGRA_8888。 |
 
 ## AlphaType<sup>9+</sup>
 
@@ -2064,19 +2166,32 @@ img.release().then(() =>{
 | CENTER_CROP     | 1      | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
 | FIT_TARGET_SIZE | 2      | 图像适合目标尺寸的效果。                           |
 
+## SourceOptions<sup>9+</sup>
+
+ImageSource的初始化选项。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
+
+| 名称              | 类型                               | 可读 | 可写 | 说明               |
+| ----------------- | ---------------------------------- | ---- | ---- | ------------------ |
+| sourceDensity     | number                             | 是   | 是   | ImageSource的密度。|
+| sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 图片像素格式。     |
+| sourceSize        | [Size](#size)                      | 是   | 是   | 图像像素大小。     |
+
+
 ## InitializationOptions<sup>8+</sup>
 
 PixelMap的初始化选项。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Code
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
 
-| 名称                   | 类型                               | 可读 | 可写 | 说明           |
-| ---------------------- | ---------------------------------- | ---- | ---- | -------------- |
-| alphaType<sup>9+</sup> | [AlphaType](#alphatype9)           | 是   | 是   | 透明度。       |
-| editable               | boolean                            | 是   | 是   | 是否可编辑。   |
-| pixelFormat            | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 像素格式。     |
-| scaleMode<sup>9+</sup> | [ScaleMode](#scalemode9)           | 是   | 是   | 缩略值。       |
-| size                   | [Size](#size)                      | 是   | 是   | 创建图片大小。 |
+| 名称                     | 类型                               | 可读 | 可写 | 说明           |
+| ------------------------ | ---------------------------------- | ---- | ---- | -------------- |
+| alphaType<sup>9+</sup>   | [AlphaType](#alphatype9)           | 是   | 是   | 透明度。       |
+| editable                 | boolean                            | 是   | 是   | 是否可编辑。   |
+| pixelFormat              | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 像素格式。     |
+| scaleMode<sup>9+</sup>   | [ScaleMode](#scalemode9)           | 是   | 是   | 缩略值。       |
+| size                     | [Size](#size)                      | 是   | 是   | 创建图片大小。 |
 
 ## DecodingOptions<sup>7+</sup>
 
@@ -2112,9 +2227,9 @@ PixelMap的初始化选项。
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImagePacker
 
-| 名称    | 类型   | 可读 | 可写 | 说明           |
-| ------- | ------ | ---- | ---- | -------------- |
-| format  | string | 是   | 是   | 目标格式。     |
+| 名称    | 类型   | 可读 | 可写 | 说明                                                |
+| ------- | ------ | ---- | ---- | --------------------------------------------------- |
+| format  | string | 是   | 是   | 目标格式。                                          |
 | quality | number | 是   | 是   | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
 
 ## GetImagePropertyOptions<sup>7+</sup>
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md
index 0a34cefa86bb57dfcac8a65484982ca413899405..d47a7f5604c3609161e6da3faeee04697685b811 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md
@@ -2,17 +2,17 @@
 
 InputConsumer模块提供对按键事件的监听。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 >
 > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
-> - 本模块接口均为系统接口,三方应用不支持调用。
+> - 本模块接口为系统接口。
 
 
 ## 导入模块
 
 
-```
+```js
 import inputConsumer from '@ohos.multimodalInput.inputConsumer';
 ```
 
@@ -23,19 +23,19 @@ on(type: "key", keyOptions: KeyOptions, callback: Callback&lt;KeyOptions&gt;): v
 
 开始监听组合按键事件, 当满足条件的组合按键输入事件发生时,将keyOptions回调到入参callback表示的回调函数上。
 
-此接口为系统接口。
+**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
 
 **参数:** 
 
-| 参数 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| type | string | 是 | 监听输入事件类型,只支持“key”。 |
-| keyOptions | [keyOptions](#keyOptions) | 是 | 组合键选项,用来指定组合键输入时应该符合的条件。 |
-| callback | Callback&lt;KeyOptions&gt; | 是 | 回调函数。当满足条件的按键输入产生时,回调到此函数,以传入的KeyOptions为入参。 |
+| 参数         | 类型                         | 必填   | 说明                                       |
+| ---------- | -------------------------- | ---- | ---------------------------------------- |
+| type       | string                     | 是    | 监听输入事件类型,只支持“key”。                       |
+| keyOptions | [keyOptions](#keyoptions)  | 是    | 组合键选项,用来指定组合键输入时应该符合的条件。                 |
+| callback   | Callback&lt;KeyOptions&gt; | 是    | 回调函数。当满足条件的按键输入产生时,回调到此函数,以传入的KeyOptions为入参。 |
 
 **示例:** 
 
-```
+```js
 let keyOptions = {preKeys: [], finalKey: 3, isFinalKeyDown: true, finalKeyDownDuration: 0}
 let callback = function(keyOptions) {
     console.info("preKeys: " + keyOptions.preKeys, "finalKey: " + keyOptions.finalKey, 
@@ -51,21 +51,19 @@ off(type: "key", keyOptions: KeyOptions, callback?: Callback&lt;KeyOptions&gt;):
 
 停止监听组合按键事件。
 
-此接口为系统接口。
-
 **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
 
 **参数:** 
 
-| 参数 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| type | string | 是 | 监听输入事件类型,只支持“key”。 |
-| keyOptions | [keyOptions](#keyOptions) | 是 | 开始监听时传入的keyOptions。 |
-| callback | Callback&lt;KeyOptions&gt; | 是 | 开始监听时与KeyOption一同传入的回调函数&nbsp;。 |
+| 参数         | 类型                         | 必填   | 说明                              |
+| ---------- | -------------------------- | ---- | ------------------------------- |
+| type       | string                     | 是    | 监听输入事件类型,只支持“key”。              |
+| keyOptions | [keyOptions](#keyoptions)  | 是    | 开始监听时传入的keyOptions。             |
+| callback   | Callback&lt;KeyOptions&gt; | 是    | 开始监听时与KeyOption一同传入的回调函数&nbsp;。 |
 
 **示例:** 
 
-```
+```js
 let keyOptions = {preKeys: [], finalKey: 3, isFinalKeyDown: true, finalKeyDownDuration: 0}
 let callback = function(keyOptions) {
     console.info("preKeys: " + keyOptions.preKeys, "finalKey: " + keyOptions.finalKey, 
@@ -75,17 +73,15 @@ inputConsumer.off('key', keyOptions, callback);
 ```
 
 
-## KeyOption
+## KeyOptions
 
 组合键输入事件发生时,组合键满足的选项。
 
-此接口为系统接口。
-
-**系统能力:**SystemCapability.MultimodalInput.Input.InputConsumer
+**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
 
-  | 参数 | 类型 | 必填 | 说明 | 
-| -------- | -------- | -------- | -------- |
-| preKeys | Array | 是 | 组合键前置按键集合,可为空,前置按键无顺序要求。 | 
-| finalKey | Number | 是 | 组合键最后按键,不能为空。 | 
-| isFinalKeyDown | boolean | 是 | 组合键最后按键是按下还是抬起,默认是按下。 | 
-| finalKeyDownDuration | Number | 是 | 组合键最后按键按下持续时长,默认无时长要求。 | 
+| 参数                   | 类型      | 必填   | 说明                       |
+| -------------------- | ------- | ---- | ------------------------ |
+| preKeys              | Array   | 是    | 组合键前置按键集合,可为空,前置按键无顺序要求。 |
+| finalKey             | Number  | 是    | 组合键最后按键,不能为空。            |
+| isFinalKeyDown       | boolean | 是    | 组合键最后按键是按下还是抬起,默认是按下。    |
+| finalKeyDownDuration | Number  | 是    | 组合键最后按键按下持续时长,默认无时长要求。   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
index 74d20ddb543e4ec64160ae3f22be1f5010fdaecf..902b060a0fe746ce5b2fa529e62a088d25d2190d 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
@@ -4,7 +4,8 @@
 输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的id、name和指针移动速度等信息。
 
 
-> **说明**:<br>
+> **说明**:
+>
 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
@@ -28,7 +29,7 @@ on(type: “change”, listener: Callback&lt;DeviceListener&gt;): void
 | 参数       | 类型                                       | 必填   | 说明          |
 | -------- | ---------------------------------------- | ---- | ----------- |
 | type     | string                                   | 是    | 输入设备的事件类型。  |
-| listener | Callback&lt;[DeviceListener](#devicelistener<sup>9+</sup>)&gt; | 是    | 可上报的输入设备事件。 |
+| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 是    | 可上报的输入设备事件。 |
 
 **示例**:
 
@@ -63,7 +64,7 @@ off(type: “change”, listener?: Callback&lt;DeviceListener&gt;): void
 | 参数       | 类型                                       | 必填   | 说明          |
 | -------- | ---------------------------------------- | ---- | ----------- |
 | type     | string                                   | 是    | 输入设备的事件类型。  |
-| listener | Callback&lt;[DeviceListener](#devicelistener<sup>9+</sup>)&gt; | 否    | 可上报的输入设备事件。 |
+| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 否    | 可上报的输入设备事件。 |
 
 **示例**:
 
@@ -245,7 +246,7 @@ getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;):
 | 参数       | 类型                                       | 必填   | 说明                                |
 | -------- | ---------------------------------------- | ---- | --------------------------------- |
 | deviceId | number                                   | 是    | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
-| callback | AsyncCallback&lt;[KeyboardType](#keyboardtype)&gt; | 是    | 回调函数,异步返回查询结果。                    |
+| callback | AsyncCallback&lt;[KeyboardType](#keyboardtype9)&gt; | 是    | 回调函数,异步返回查询结果。                    |
 
 **示例**:
 
@@ -268,7 +269,7 @@ getKeyboardType(deviceId: number): Promise&lt;KeyboardType&gt;
 
 | 参数                                       | 说明                  |
 | ---------------------------------------- | ------------------- |
-| Promise&lt;[KeyboardType](#keyboardtype)&gt; | Promise实例,用于异步获取结果。 |
+| Promise&lt;[KeyboardType](#keyboardtype9)&gt; | Promise实例,用于异步获取结果。 |
 
 **示例**:
 
@@ -283,7 +284,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 输入设备的描述信息。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称       | 参数类型                        | 说明                                |
 | -------- | --------------------------- | --------------------------------- |
@@ -294,7 +295,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 输入设备的描述信息。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称                   | 参数类型                                   | 说明                                       |
 | -------------------- | -------------------------------------- | ---------------------------------------- |
@@ -313,7 +314,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 输入设备的轴类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称          | 参数类型   | 说明              |
 | ----------- | ------ | --------------- |
@@ -331,12 +332,12 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 输入设备的轴信息。
 
-**系统能力**: 以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**: SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称                      | 参数类型                      | 说明       |
 | ----------------------- | ------------------------- | -------- |
 | source                  | [SourceType](#sourcetype) | 轴的输入源类型。 |
-| axis                    | [AxisType](#axistype)     | 轴的类型。    |
+| axis                    | [AxisType](#axistype9)    | 轴的类型。    |
 | max                     | number                    | 轴的最大值。   |
 | min                     | number                    | 轴的最小值。   |
 | fuzz<sup>9+</sup>       | number                    | 轴的模糊值。   |
@@ -347,7 +348,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 定义这个轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的源就是鼠标。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称          | 参数类型   | 说明          |
 | ----------- | ------ | ----------- |
@@ -358,11 +359,11 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 | touchpad    | string | 表示输入设备是触摸板。 |
 | joystick    | string | 表示输入设备是操纵杆。 |
 
-## ChangeType
+## ChangedType
 
 定义监听设备热插拔事件。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称     | 参数类型   | 说明        |
 | ------ | ------ | --------- |
@@ -373,7 +374,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{
 
 定义键盘输入设备的类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
+**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
 
 | 名称                  | 参数类型   | 值    | 说明        |
 | ------------------- | ------ | ---- | --------- |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputevent.md b/zh-cn/application-dev/reference/apis/js-apis-inputevent.md
index 01aaa9b2ba3954da6e5836be22729fb6d8a066f2..df973465e5b7341c60de3740e757d320dc3feed7 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-inputevent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputevent.md
@@ -2,7 +2,7 @@
 
 InputEvent模块描述了设备上报的基本事件。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -13,12 +13,12 @@ import InputEvent from '@ohos.multimodalInput.inputEvent';
 
 ## InputEvent 
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| id | number | 是 | 否 | 由服务端生成全局唯一事件id |
-| deviceId | number | 是 | 否 | 上报输入事件的设备id |
-| actionTime | number | 是 | 否 | 输入事件的上报时间 |
-| screenId | number | 是 | 否 | 目标屏幕id |
-| windowId | number | 是 | 否 | 目标窗口id |
\ No newline at end of file
+| 名称         | 参数类型   | 可读   | 可写   | 描述             |
+| ---------- | ------ | ---- | ---- | -------------- |
+| id         | number | 是    | 否    | 由服务端生成全局唯一事件id |
+| deviceId   | number | 是    | 否    | 上报输入事件的设备id    |
+| actionTime | number | 是    | 否    | 输入事件的上报时间      |
+| screenId   | number | 是    | 否    | 目标屏幕id         |
+| windowId   | number | 是    | 否    | 目标窗口id         |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputeventclient.md b/zh-cn/application-dev/reference/apis/js-apis-inputeventclient.md
index d199635658c38b565315bc9b0e760b8e67ba0cee..82c05b94b72c330b921d6d868768d19268fcc023 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-inputeventclient.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputeventclient.md
@@ -6,7 +6,7 @@ InputEventClient模块提供了注入按键能力。
 >
 > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
-> - 本模块接口均为系统接口,三方应用不支持调用。
+> - 本模块接口为系统接口。
 
 
 ## 导入模块
@@ -23,8 +23,6 @@ injectEvent({KeyEvent: KeyEvent}): void
 
 注入按键,KeyEvent为注入按键的描述信息。
 
-此接口为系统接口。
-
 **系统能力:** SystemCapability.MultimodalInput.Input.InputSimulator
 
 **参数:**
@@ -48,15 +46,13 @@ let res = inputEventClient.injectEvent({KeyEvent: keyEvent});
 
 ## KeyEvent
 
-注入按键的描述信息
-
-此接口为系统接口。
+注入按键的描述信息。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputSimulator
+**系统能力:** SystemCapability.MultimodalInput.Input.InputSimulator
 
 | 参数              | 类型      | 必填   | 说明        |
 | --------------- | ------- | ---- | --------- |
 | isPressed       | boolean | 是    | 按键是否按下    |
 | keyCode         | number  | 是    | 按键键值      |
-| keyDownDuration | number | 是    | 按键按下持续时间  |
-| isIntercepted   | boolean  | 是    | 按键是否可以被拦截 |
+| keyDownDuration | number  | 是    | 按键按下持续时间  |
+| isIntercepted   | boolean | 是    | 按键是否可以被拦截 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md b/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md
index 09f90747863be35c6e4f32e971fbce67f03f6c09..a11614d149bfd2db3c3b8370aeba57ea906f880d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md
@@ -2,14 +2,15 @@
 
 本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
+>
 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## 导入模块
 
 ```
-import inputMethod from '@ohos.inputMethod';
+import inputMethod from '@ohos.inputmethod';
 ```
 
 ## inputMethod<sup>8+</sup>
@@ -38,7 +39,7 @@ import inputMethod from '@ohos.inputMethod';
 
 getInputMethodController(): InputMethodController
 
-获取客户端实例[InputMethodController](#InputMethodController)。
+获取客户端实例[InputMethodController](#inputmethodcontroller)。
 
 **系统能力**:SystemCapability.MiscServices.InputMethodFramework
 
@@ -46,7 +47,7 @@ getInputMethodController(): InputMethodController
 
     | 类型 | 说明 |
     | -------- | -------- |
-    | [InputMethodController](#InputMethodController) | 回调返回当前客户端实例。 |
+    | [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
 
 **示例:**
 
@@ -58,7 +59,7 @@ getInputMethodController(): InputMethodController
 
 getInputMethodSetting(): InputMethodSetting
 
-获取客户端设置实例[InputMethodSetting](#InputMethodSetting)。
+获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)。
 
 **系统能力**: SystemCapability.MiscServices.InputMethodFramework
 
@@ -66,7 +67,7 @@ getInputMethodSetting(): InputMethodSetting
 
 | 类型                                      | 说明                         |
 | ----------------------------------------- | ---------------------------- |
-| [InputMethodSetting](#InputMethodSetting) | 回调返回当前客户端设置实例。 |
+| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |
 
 
 **示例:**
@@ -78,6 +79,8 @@ getInputMethodSetting(): InputMethodSetting
 
 switchInputMethod(target: InputmethodProperty, callback: AsyncCallback&lt;boolean&gt;): void;
 
+切换输入法。此接口仅可在Stage模型下使用。
+
 
 **系统能力**:SystemCapability.Miscservices.InputMethodFramework
 
@@ -99,6 +102,7 @@ switchInputMethod(target: InputmethodProperty, callback: AsyncCallback&lt;boolea
 ## inputMethod.switchInputMethod<sup>9+</sup>
 switchInputMethod(target: InputmethodProperty): Promise&lt;boolean&gt;
 
+切换输入法。此接口仅可在Stage模型下使用。
 
 **系统能力**: SystemCapability.Miscservices.InputMethodFramework
 
@@ -111,7 +115,7 @@ switchInputMethod(target: InputmethodProperty): Promise&lt;boolean&gt;
 **返回值:**
   | 类型                                      | 说明                         |
   | ----------------------------------------- | ---------------------------- |
-  | [Promise](#Promise) | 回调返回切换后的输入法。 |
+  | Promise\<boolean> | 回调返回切换后的输入法。 |
 
 **示例:**
 
@@ -123,7 +127,7 @@ switchInputMethod(target: InputmethodProperty): Promise&lt;boolean&gt;
 ```
 ## InputMethodController
 
-下列API示例中都需使用[getInputMethodController](#getInputMethodController)回调获取到InputMethodController实例,再通过此实例调用对应方法。
+下列API示例中都需使用[getInputMethodController](#inputmethodgetinputmethodcontroller)回调获取到InputMethodController实例,再通过此实例调用对应方法。
 
 ### stopInput
 
@@ -171,7 +175,7 @@ stopInput(): Promise&lt;boolean&gt;
 
 ## InputMethodSetting<sup>8+</sup>
 
-下列API示例中都需使用[getInputMethodSetting](#getInputMethodSetting)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。
+下列API示例中都需使用[getInputMethodSetting](#inputmethodgetinputmethodcontroller)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。
 
 ### listInputMethod
 
@@ -184,7 +188,7 @@ listInputMethod(callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;)
 **参数:**
 | 参数名   | 类型                                               | 必填 | 说明                   |
 | -------- | -------------------------------------------------- | ---- | ---------------------- |
-| callback | Array<[InputMethodProperty](#InputMethodProperty)> | 是   | 返回已安装输入法列表。 |
+| callback | Array<[InputMethodProperty](#inputmethodproperty8)> | 是   | 返回已安装输入法列表。 |
 
 **示例:**
 
@@ -208,7 +212,7 @@ listInputMethod(): Array&lt;InputMethodProperty&gt;
 **返回值:**
 | 类型                                                        | 说明                   |
 | ----------------------------------------------------------- | ---------------------- |
-| Promise<Array<[InputMethodProperty](#InputMethodProperty)>> | 返回已安装输入法列表。 |
+| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | 返回已安装输入法列表。 |
 
 **示例:**
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md b/zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md
index 438362623786e279ffe399efd31c88358fa41b62..3a9f870ae16920a3c5c4a1c9bf6c4f0ad5b347a4 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md
@@ -8,7 +8,7 @@
 ## 导入模块
 
 ```
-import inputMethodEngine from '@ohos.inputMethodEngine';
+import inputMethodEngine from '@ohos.inputmethodengine';
 ```
 
 ## inputMethodEngine
diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputmonitor.md b/zh-cn/application-dev/reference/apis/js-apis-inputmonitor.md
index be52e915593fe57342e8e74ca2d5ac4a2a73f0de..6659984f7fa36cafaaae252913f4c84e5f3e6d1a 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-inputmonitor.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-inputmonitor.md
@@ -2,10 +2,10 @@
 
 InputMonitor模块提供了监听全局触摸事件的功能。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
-> - 本模块接口均为系统接口,三方应用不支持调用。
+> - 本模块接口均为系统接口。
 
 
 ## 导入模块
@@ -16,28 +16,21 @@ import inputMonitor from '@ohos.multimodalInput.inputMonitor';
 ```
 
 
-## 权限
-
-ohos.permission.INPUT_MONITORING
-
-
 ## inputMonitor.on
 
 on(type: "touch", receiver: TouchEventReceiver): void
 
 开始监听全局触屏事件。
 
-此接口为系统接口。
-
-**需要权限:**ohos.permission.INPUT_MONITORING
+**需要权限:** ohos.permission.INPUT_MONITORING
 
-**系统能力:**SystemCapability.MultimodalInput.Input.InputMonitor
+**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
 
   **参数:**
-| 参数     | 类型                                      | 必填 | 说明                            |
-| -------- | ----------------------------------------- | ---- | ------------------------------- |
-| type     | string                                    | 是   | 监听输入事件类型,取值“touch”。 |
-| receiver | [TouchEventReceiver](#toucheventreceiver) | 是   | 触摸输入事件回调函数。          |
+| 参数       | 类型                                       | 必填   | 说明                  |
+| -------- | ---------------------------------------- | ---- | ------------------- |
+| type     | string                                   | 是    | 监听输入事件类型,取值“touch”。 |
+| receiver | [TouchEventReceiver](#toucheventreceiver) | 是    | 触摸输入事件回调函数。         |
 
   **示例:**
 
@@ -53,18 +46,16 @@ on(type: "mouse", receiver: Callback&lt;MouseEvent&gt;): void
 
 开始监听全局鼠标事件。
 
-此接口为系统接口。
-
 **需要权限:** ohos.permission.INPUT_MONITORING
 
 **系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
 
   **参数:** 
 
-| 参数     | 类型                       | 必填 | 说明                            |
-| -------- | -------------------------- | ---- | ------------------------------- |
-| type     | string                     | 是   | 监听输入事件类型,取值“mouse”。 |
-| receiver | Callback&lt;MouseEvent&gt; | 是   | 鼠标输入事件回调函数。          |
+| 参数       | 类型                         | 必填   | 说明                  |
+| -------- | -------------------------- | ---- | ------------------- |
+| type     | string                     | 是    | 监听输入事件类型,取值“mouse”。 |
+| receiver | Callback&lt;MouseEvent&gt; | 是    | 鼠标输入事件回调函数。         |
 
   **示例:**
 
@@ -82,17 +73,15 @@ off(type: "touch", receiver?: TouchEventReceiver): void
 
 停止监听全局触屏事件。
 
-此接口为系统接口。
-
-**需要权限:**ohos.permission.INPUT_MONITORING
+**需要权限:** ohos.permission.INPUT_MONITORING
 
-**系统能力:**SystemCapability.MultimodalInput.Input.InputMonitor
+**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
 
   **参数:**
-| 参数     | 类型                                      | 必填 | 说明                            |
-| -------- | ----------------------------------------- | ---- | ------------------------------- |
-| type     | string                                    | 是   | 监听输入事件类型,取值“touch”。 |
-| receiver | [TouchEventReceiver](#toucheventreceiver) | 否   | 触摸输入事件回调函数。          |
+| 参数       | 类型                                       | 必填   | 说明                  |
+| -------- | ---------------------------------------- | ---- | ------------------- |
+| type     | string                                   | 是    | 监听输入事件类型,取值“touch”。 |
+| receiver | [TouchEventReceiver](#toucheventreceiver) | 否    | 触摸输入事件回调函数。         |
 
   **示例:**
 
@@ -104,18 +93,16 @@ off(type: "mouse", receiver?: Callback&lt;MouseEvent&gt;): void
 
 停止监听全局鼠标事件。
 
-此接口为系统接口。
-
-**需要权限:**ohos.permission.INPUT_MONITORING
+**需要权限:** ohos.permission.INPUT_MONITORING
 
-**系统能力:**SystemCapability.MultimodalInput.Input.InputMonitor
+**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
 
   **参数:**
 
-| 参数     | 类型                       | 必填 | 说明                            |
-| -------- | -------------------------- | ---- | ------------------------------- |
-| type     | string                     | 是   | 监听输入事件类型,取值“mouse”。 |
-| receiver | Callback&lt;MouseEvent&gt; | 否   | 鼠标输入事件回调函数。          |
+| 参数       | 类型                         | 必填   | 说明                  |
+| -------- | -------------------------- | ---- | ------------------- |
+| type     | string                     | 是    | 监听输入事件类型,取值“mouse”。 |
+| receiver | Callback&lt;MouseEvent&gt; | 否    | 鼠标输入事件回调函数。         |
 
 **示例:**
 
@@ -129,9 +116,9 @@ inputMonitor.off("mouse");
 
 触摸输入事件的回调函数。如果返回true,则触摸输入被监听器消耗,系统将执行关闭动作。
 
-此接口为系统接口。
+**需要权限:** ohos.permission.INPUT_MONITORING
 
-**系统能力:**SystemCapability.MultimodalInput.Input.InputMonitor
+**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
 
   **参数:**
 | 参数         | 类型                                       | 必填   | 说明                                       |
@@ -139,8 +126,8 @@ inputMonitor.off("mouse");
 | touchEvent | [TouchEvent](../arkui-js/js-components-common-events.md) | 是    | 触摸输入事件回调函数,返回true表示输触事件被监听器消费,false表示输触事件未被监听器消费。 |
 
   **返回值:**
-| 类型    | 说明                                    |
-| ------- | -------------------------------------- |
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
 | Boolean | 返回true表示触摸输入事件被监听器消费,false表示触摸输入事件未被监听器消费。 |
 
   **示例:**
diff --git a/zh-cn/application-dev/reference/apis/js-apis-intl.md b/zh-cn/application-dev/reference/apis/js-apis-intl.md
index f3c4df4e1deee00198bb19f0a79f16c0760af3ff..9157c68e4501463b98633d1c86451b6e455c0f44 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-intl.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-intl.md
@@ -3,7 +3,7 @@
  本模块提供提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。
 [I18N模块](js-apis-i18n.md)提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 >
 > - Intl模块包含国际化能力基础接口(在ECMA 402中定义),包括时间日期格式化、数字格式化、排序等,国际化增强能力请参考[I18N模块](js-apis-i18n.md)。
@@ -11,7 +11,7 @@
 
 ## 导入模块
 
-```
+```js
 import Intl from '@ohos.intl';
 ```
 
@@ -46,7 +46,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var locale = new Intl.Locale();
   ```
 
@@ -66,7 +66,7 @@ constructor(locale: string, options?: LocaleOptions)
 | options | LocaleOptions | 否    | 用于创建区域对象的选项。                 |
 
 **示例:** 
-  ```
+  ```js
   var locale = new Intl.Locale("zh-CN");
   ```
 
@@ -85,7 +85,7 @@ toString(): string
 | string | 字符串形式的区域信息。 |
 
 **示例:** 
-  ```
+  ```js
   var locale = new Intl.Locale("zh-CN");
   locale.toString();
   ```
@@ -105,7 +105,7 @@ maximize(): Locale
 | [Locale](#locale) | 最大化后的区域对象。 |
 
 **示例:** 
-  ```
+  ```js
   var locale = new Intl.Locale("zh-CN");
   locale.maximize();
   ```
@@ -125,7 +125,7 @@ minimize(): Locale
 | [Locale](#locale) | 最小化后的区域对象。 |
 
 **示例:** 
-  ```
+  ```js
   var locale = new Intl.Locale("zh-CN");
   locale.minimize();
   ```
@@ -135,7 +135,7 @@ minimize(): Locale
 
 表示区域初始化选项。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称              | 参数类型    | 可读   | 可写   | 说明                                       |
 | --------------- | ------- | ---- | ---- | ---------------------------------------- |
@@ -159,7 +159,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var datefmt= new Intl.DateTimeFormat();
   ```
 
@@ -179,13 +179,13 @@ constructor(locale: string | Array&lt;string&gt;, options?: DateTimeOptions)
 | options | [DateTimeOptions](#datetimeoptions) | 否    | 用于创建时间日期格式化的选项。              |
 
 **示例:** 
-  ```
+  ```js
   var datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' });
   ```
 
 
 **示例:** 
-  ```
+  ```js
   var datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' });
   ```
 
@@ -209,7 +209,7 @@ format(date: Date): string
 | string | 格式化后的时间日期字符串 |
 
 **示例:** 
-  ```
+  ```js
   var date = new Date(2021, 11, 17, 3, 24, 0);
   var datefmt = new Intl.DateTimeFormat("en-GB");
   datefmt.format(date);
@@ -236,7 +236,7 @@ formatRange(startDate: Date, endDate: Date): string
 | string | 格式化后的时间日期段字符串。 |
 
 **示例:** 
-  ```
+  ```js
   var startDate = new Date(2021, 11, 17, 3, 24, 0);
   var endDate = new Date(2021, 11, 18, 3, 24, 0);
   var datefmt = new Intl.DateTimeFormat("en-GB");
@@ -258,7 +258,7 @@ resolvedOptions(): DateTimeOptions
 | [DateTimeOptions](#datetimeoptions) | DateTimeFormat&nbsp;对象的格式化选项。 |
 
 **示例:** 
-  ```
+  ```js
   var datefmt = new Intl.DateTimeFormat("en-GB");
   datefmt.resolvedOptions();
   ```
@@ -268,7 +268,7 @@ resolvedOptions(): DateTimeOptions
 
 表示时间日期格式化选项。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称              | 参数类型    | 可读   | 可写   | 说明                                       |
 | --------------- | ------- | ---- | ---- | ---------------------------------------- |
@@ -305,7 +305,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var numfmt = new Intl.NumberFormat();
   ```
 
@@ -325,7 +325,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: NumberOptions)
 | options | [NumberOptions](#numberoptions) | 否    | 用于创建数字格式化的选项。                |
 
 **示例:** 
-  ```
+  ```js
   var numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"});
   ```
 
@@ -350,7 +350,7 @@ format(number: number): string;
 
 
 **示例:** 
-  ```
+  ```js
   var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
   numfmt.format(1223);
   ```
@@ -371,7 +371,7 @@ resolvedOptions(): NumberOptions
 
 
 **示例:** 
-  ```
+  ```js
   var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
   numfmt.resolvedOptions();
   ```
@@ -391,7 +391,7 @@ resolvedOptions(): NumberOptions
 | currencyDisplay          | string  | 是    | 是    | 货币的显示方式,取值包括:"symbol",&nbsp;"narrowSymbol",&nbsp;"code",&nbsp;"name"。 |
 | unit                     | string  | 是    | 是    | 单位名称,如:"meter","inch",“hectare”等。        |
 | unitDisplay              | string  | 是    | 是    | 单位的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
-| unitUsage<sup>8+</sup>                | string  | 是    | 是    | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 |
+| unitUsage<sup>8+</sup>   | string  | 是    | 是    | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 |
 | signDisplay              | string  | 是    | 是    | 数字符号的显示格式,取值包括:"auto",&nbsp;"never",&nbsp;"always",&nbsp;"expectZero"。 |
 | compactDisplay           | string  | 是    | 是    | 紧凑型的显示格式,取值包括:"long",&nbsp;"short"。      |
 | notation                 | string  | 是    | 是    | 数字的格式化规格,取值包括:"standard",&nbsp;"scientific",&nbsp;"engineering",&nbsp;"compact"。 |
@@ -418,7 +418,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var collator = new Intl.Collator();
   ```
 
@@ -439,7 +439,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: CollatorOptions)
 | options | [CollatorOptions](#collatoroptions) | 否    | 用于创建排序对象的选项。                 |
 
 **示例:** 
-  ```
+  ```js
   var collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"});
   ```
 
@@ -464,7 +464,7 @@ compare(first: string, second: string): number
 | number | 比较结果。当number为负数,表示first排序在second之前;当number为0,表示first与second排序相同;当number为正数,表示first排序在second之后。 |
 
 **示例:** 
-  ```
+  ```js
   var collator = new Intl.Collator("zh-Hans");
   collator.compare("first", "second");
   ```
@@ -484,17 +484,17 @@ resolvedOptions(): CollatorOptions
 | [CollatorOptions](#collatoroptions) | 返回的Collator对象的属性。 |
 
 **示例:** 
-  ```
+  ```js
   var collator = new Intl.Collator("zh-Hans");
   var options = collator.resolvedOptions();
   ```
 
 
-## CollatorOptions<sup>8+</sup><a name=collatoroptions></a>
+## CollatorOptions<sup>8+</sup>
 
 表示Collator可设置的属性。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称                | 参数类型    | 可读   | 可写   | 说明                                       |
 | ----------------- | ------- | ---- | ---- | ---------------------------------------- |
@@ -519,7 +519,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var pluralRules = new Intl.PluralRules();
   ```
 
@@ -539,8 +539,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: PluralRulesOptions)
 | options | [PluralRulesOptions](#pluralrulesoptions) | 否    | 用于创建单复数对象的选项。                |
 
 **示例:** 
-  ```
-  var pluralRules= new Intl.PluraRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"});
+  ```js
+  var pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"});
   ```
 
 
@@ -563,17 +563,17 @@ select(n: number): string
 | string | 单复数类别,取值包括:"zero","one","two",&nbsp;"few",&nbsp;"many",&nbsp;"others"。 |
 
 **示例:** 
-  ```
+  ```js
   var pluralRules = new Intl.PluralRules("zh-Hans");
   pluralRules.select(1);
   ```
 
 
-## PluralRulesOptions<sup>8+</sup><a name=pluralrulesoptions></a>
+## PluralRulesOptions<sup>8+</sup>
 
 表示PluralRules对象可设置的属性。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称                       | 参数类型   | 可读   | 可写   | 说明                                       |
 | ------------------------ | ------ | ---- | ---- | ---------------------------------------- |
@@ -598,7 +598,7 @@ constructor()
 **系统能力**:SystemCapability.Global.I18n
 
 **示例:** 
-  ```
+  ```js
   var relativetimefmt = new Intl.RelativeTimeFormat();
   ```
 
@@ -618,7 +618,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: RelativeTimeFormatIn
 | options | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions) | 否    | 用于创建相对时间格式化对象的选项。            |
 
 **示例:** 
-  ```
+  ```js
   var relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"});
   ```
 
@@ -643,7 +643,7 @@ format(value: number, unit: string): string
 | string | 格式化后的相对时间。 |
 
 **示例:** 
-  ```
+  ```js
   var relativetimefmt = new Intl.RelativeTimeFormat("zh-CN");
   relativetimefmt.format(3, "quarter")
   ```
@@ -669,7 +669,7 @@ formatToParts(value: number, unit: string): Array&lt;object&gt;
 | Array&lt;object&gt; | 返回可用于自定义区域设置格式的相对时间格式的对象数组。 |
 
 **示例:** 
-  ```
+  ```js
   var relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"});
   var parts = relativetimefmt.format(10, "seconds");
   ```
@@ -689,17 +689,17 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
 | [RelativeTimeFormatResolvedOptions](#relativetimeformatresolvedoptions) | RelativeTimeFormat&nbsp;对象的格式化选项。 |
 
 **示例:** 
-  ```
+  ```js
   var relativetimefmt= new Intl.RelativeTimeFormat("en-GB");
   relativetimefmt.resolvedOptions();
   ```
 
 
-## RelativeTimeFormatInputOptions<sup>8+</sup><a name=relativetimeformatinputoptions></a>
+## RelativeTimeFormatInputOptions<sup>8+</sup>
 
 表示RelativeTimeFormat对象可设置的属性。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称            | 参数类型   | 可读   | 可写   | 说明                                       |
 | ------------- | ------ | ---- | ---- | ---------------------------------------- |
@@ -708,11 +708,11 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
 | style         | string | 是    | 是    | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
 
 
-## RelativeTimeFormatResolvedOptions<sup>8+</sup><a name=relativetimeformatresolvedoptions></a>
+## RelativeTimeFormatResolvedOptions<sup>8+</sup>
 
 表示RelativeTimeFormat对象可设置的属性。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.I18n
+**系统能力**:SystemCapability.Global.I18n
 
 | 名称              | 参数类型   | 可读   | 可写   | 说明                                       |
 | --------------- | ------ | ---- | ---- | ---------------------------------------- |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-keycode.md b/zh-cn/application-dev/reference/apis/js-apis-keycode.md
index 2559bcf9dc665a91d8f79a60006e9a04cc1fcf10..ae30bf1186b06d7a034f219c5407f30becbcc01c 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-keycode.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-keycode.md
@@ -2,7 +2,7 @@
 
 KeyCode模块提供了按键类设备的键值。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -13,337 +13,337 @@ import {KeyCode} from '@ohos.multimodalInput.keyCode'
 
 ## KeyCode
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| KEYCODE_FN | number | 是 | 否 | 功能(Fn)键 |
-| KEYCODE_UNKNOWN | number | 是 | 否 | 未知按键 |
-| KEYCODE_HOME | number | 是 | 否 | 按键Home |
-| KEYCODE_BACK | number | 是 | 否 |  返回键 |
-| KEYCODE_MEDIA_PLAY_PAUSE | number | 是 | 否 | 多媒体键 播放/暂停 |
-| KEYCODE_MEDIA_STOP | number | 是 | 否 | 多媒体键 停止 |
-| KEYCODE_MEDIA_NEXT | number | 是 | 否 | 多媒体键 下一首 |
-| KEYCODE_MEDIA_PREVIOUS | number | 是 | 否 | 多媒体键 上一首 |
-| KEYCODE_MEDIA_REWIND | number | 是 | 否 | 多媒体键 快退 |
-| KEYCODE_MEDIA_FAST_FORWARD | number | 是 | 否 | 多媒体键 快进 |
-| KEYCODE_VOLUME_UP | number | 是 | 否 | 音量增加键 |
-| KEYCODE_VOLUME_DOWN | number | 是 | 否 | 音量减小键 |
-| KEYCODE_POWER | number | 是 | 否 | 电源键 |
-| KEYCODE_CAMERA | number | 是 | 否 | 拍照键 |
-| KEYCODE_VOLUME_MUTE | number | 是 | 否 | 扬声器静音键 |
-| KEYCODE_MUTE | number | 是 | 否 | 话筒静音键 |
-| KEYCODE_BRIGHTNESS_UP | number | 是 | 否 | 亮度调节按键 调亮 |
-| KEYCODE_BRIGHTNESS_DOWN | number | 是 | 否 | 亮度调节按键 调暗 |
-| KEYCODE_0 | number | 是 | 否 | 按键'0' |
-| KEYCODE_1 | number | 是 | 否 | 按键'1' |
-| KEYCODE_2 | number | 是 | 否 | 按键'2' |
-| KEYCODE_3 | number | 是 | 否 | 按键'3' |
-| KEYCODE_4 | number | 是 | 否 | 按键'4' |
-| KEYCODE_5 | number | 是 | 否 | 按键'5' |
-| KEYCODE_6 | number | 是 | 否 | 按键'6' |
-| KEYCODE_7 | number | 是 | 否 | 按键'7' |
-| KEYCODE_8 | number | 是 | 否 | 按键'8' |
-| KEYCODE_9 | number | 是 | 否 | 按键'9' |
-| KEYCODE_STAR | number | 是 | 否 | 按键'*' |
-| KEYCODE_POUND | number | 是 | 否 | 按键'#' |
-| KEYCODE_DPAD_UP | number | 是 | 否 | 导航键 向上 |
-| KEYCODE_DPAD_DOWN | number | 是 | 否 | 导航键 向下 |
-| KEYCODE_DPAD_LEFT | number | 是 | 否 | 导航键 向左 |
-| KEYCODE_DPAD_RIGHT | number | 是 | 否 | 导航键 向右 |
-| KEYCODE_DPAD_CENTER | number | 是 | 否 | 导航键 确定键 |
-| KEYCODE_A | number | 是 | 否 | 按键'A' |
-| KEYCODE_B | number | 是 | 否 | 按键'B' |
-| KEYCODE_C | number | 是 | 否 | 按键'C' |
-| KEYCODE_D | number | 是 | 否 | 按键'D' |
-| KEYCODE_E | number | 是 | 否 | 按键'E' |
-| KEYCODE_F | number | 是 | 否 | 按键'F' |
-| KEYCODE_G | number | 是 | 否 | 按键'G' |
-| KEYCODE_H | number | 是 | 否 | 按键'H' |
-| KEYCODE_I | number | 是 | 否 | 按键'I' |
-| KEYCODE_J | number | 是 | 否 | 按键'J' |
-| KEYCODE_K | number | 是 | 否 | 按键'K' |
-| KEYCODE_L | number | 是 | 否 | 按键'L' |
-| KEYCODE_M | number | 是 | 否 | 按键'M' |
-| KEYCODE_N | number | 是 | 否 | 按键'N' |
-| KEYCODE_O | number | 是 | 否 | 按键'O' |
-| KEYCODE_P | number | 是 | 否 | 按键'P' |
-| KEYCODE_Q | number | 是 | 否 | 按键'Q' |
-| KEYCODE_R | number | 是 | 否 | 按键'R' |
-| KEYCODE_S | number | 是 | 否 | 按键'S' |
-| KEYCODE_T | number | 是 | 否 | 按键'T' |
-| KEYCODE_U | number | 是 | 否 | 按键'U' |
-| KEYCODE_V | number | 是 | 否 | 按键'V' |
-| KEYCODE_W | number | 是 | 否 | 按键'W' |
-| KEYCODE_X | number | 是 | 否 | 按键'X' |
-| KEYCODE_Y | number | 是 | 否 | 按键'Y' |
-| KEYCODE_Z | number | 是 | 否 | 按键'Z' |
-| KEYCODE_COMMA | number | 是 | 否 | 按键',' |
-| KEYCODE_PERIOD | number | 是 | 否 |  按键'.' |
-| KEYCODE_ALT_LEFT | number | 是 | 否 | Alt+Left |
-| KEYCODE_ALT_RIGHT | number | 是 | 否 | Alt+Right |
-| KEYCODE_SHIFT_LEFT | number | 是 | 否 | Shift+Left |
-| KEYCODE_SHIFT_RIGHT | number | 是 | 否 | Shift+Right |
-| KEYCODE_TAB | number | 是 | 否 | Tab键 |
-| KEYCODE_SPACE | number | 是 | 否 | 空格键 |
-| KEYCODE_SYM | number | 是 | 否 | 符号修改器按键 |
-| KEYCODE_EXPLORER | number | 是 | 否 | 浏览器功能键,此键用于启动浏览器应用程序。 |
-| KEYCODE_ENVELOPE | number | 是 | 否 | 电子邮件功能键,此键用于启动电子邮件应用程序。|
-| KEYCODE_ENTER | number | 是 | 否 | 回车键 |
-| KEYCODE_DEL | number | 是 | 否 | 退格键 |
-| KEYCODE_GRAVE | number | 是 | 否 | 按键'`' |
-| KEYCODE_MINUS | number | 是 | 否 | 按键'-' |
-| KEYCODE_EQUALS | number | 是 | 否 | 按键'=' |
-| KEYCODE_LEFT_BRACKET | number | 是 | 否 | 按键'[' |
-| KEYCODE_RIGHT_BRACKET | number | 是 | 否 | 按键']' |
-| KEYCODE_BACKSLASH | number | 是 | 否 | 按键'\' |
-| KEYCODE_SEMICOLON | number | 是 | 否 | 按键';' |
-| KEYCODE_APOSTROPHE | number | 是 | 否 | 按键''' (单引号) |
-| KEYCODE_SLASH | number | 是 | 否 | 按键'/' |
-| KEYCODE_AT | number | 是 | 否 | 按键'@' |
-| KEYCODE_PLUS | number | 是 | 否 | 按键'+' |
-| KEYCODE_MENU | number | 是 | 否 | 菜单键 |
-| KEYCODE_PAGE_UP | number | 是 | 否 | 向上翻页键 |
-| KEYCODE_PAGE_DOWN | number | 是 | 否 | 向下翻页键 |
-| KEYCODE_ESCAPE | number | 是 | 否 | ESC键 |
-| KEYCODE_FORWARD_DEL | number | 是 | 否 | 删除键 |
-| KEYCODE_CTRL_LEFT | number | 是 | 否 | Control+Left |
-| KEYCODE_CTRL_RIGHT | number | 是 | 否 | Control+Right |
-| KEYCODE_CAPS_LOCK | number | 是 | 否 | 大写锁定键 |
-| KEYCODE_SCROLL_LOCK | number | 是 | 否 | 滚动锁定键 |
-| KEYCODE_META_LEFT | number | 是 | 否 | 左元修改器键 |
-| KEYCODE_META_RIGHT | number | 是 | 否 | 右元修改器键 |
-| KEYCODE_FUNCTION | number | 是 | 否 | 函数修改器键 |
-| KEYCODE_SYSRQ | number | 是 | 否 | 系统请求/打印屏幕键 |
-| KEYCODE_BREAK | number | 是 | 否 | Break/Pause键 |
-| KEYCODE_MOVE_HOME | number | 是 | 否 | 光标移动到开始键 |
-| KEYCODE_MOVE_END | number | 是 | 否 | 光标移动到末尾键 |
-| KEYCODE_INSERT | number | 是 | 否 | 插入键 |
-| KEYCODE_FORWARD | number | 是 | 否 | 删除键  |
-| KEYCODE_MEDIA_PLAY | number | 是 | 否 | 多媒体键 播放 |
-| KEYCODE_MEDIA_PAUSE | number | 是 | 否 | 多媒体键 暂停 |
-| KEYCODE_MEDIA_CLOSE | number | 是 | 否 | 多媒体键 关闭 |
-| KEYCODE_MEDIA_EJECT | number | 是 | 否 | 多媒体键 弹出 |
-| KEYCODE_MEDIA_RECORD | number | 是 | 否 | 多媒体键 录音 |
-| KEYCODE_F1 | number | 是 | 否 | 按键'F1' |
-| KEYCODE_F2 | number | 是 | 否 | 按键'F2' |
-| KEYCODE_F3 | number | 是 | 否 | 按键'F3' |
-| KEYCODE_F4 | number | 是 | 否 | 按键'F4' |
-| KEYCODE_F5 | number | 是 | 否 | 按键'F5' |
-| KEYCODE_F6 | number | 是 | 否 | 按键'F6' |
-| KEYCODE_F7 | number | 是 | 否 | 按键'F7' |
-| KEYCODE_F8 | number | 是 | 否 | 按键'F8' |
-| KEYCODE_F9 | number | 是 | 否 | 按键'F9' |
-| KEYCODE_F10 | number | 是 | 否 | 按键'F10' |
-| KEYCODE_F11 | number | 是 | 否 | 按键'F11' |
-| KEYCODE_F12 | number | 是 | 否 | 按键'F12' |
-| KEYCODE_NUM_LOCK | number | 是 | 否 | 小键盘锁 |
-| KEYCODE_NUMPAD_0 | number | 是 | 否 | 小键盘按键'0' |
-| KEYCODE_NUMPAD_1 | number | 是 | 否 | 小键盘按键'1' |
-| KEYCODE_NUMPAD_2 | number | 是 | 否 | 小键盘按键'2' |
-| KEYCODE_NUMPAD_3 | number | 是 | 否 | 小键盘按键'3' |
-| KEYCODE_NUMPAD_4 | number | 是 | 否 | 小键盘按键'4' |
-| KEYCODE_NUMPAD_5 | number | 是 | 否 | 小键盘按键'5' |
-| KEYCODE_NUMPAD_6 | number | 是 | 否 | 小键盘按键'6' |
-| KEYCODE_NUMPAD_7 | number | 是 | 否 | 小键盘按键'7' |
-| KEYCODE_NUMPAD_8 | number | 是 | 否 | 小键盘按键'8' |
-| KEYCODE_NUMPAD_9 | number | 是 | 否 | 小键盘按键'9' |
-| KEYCODE_NUMPAD_DIVIDE | number | 是 | 否 | 小键盘按键'/' |
-| KEYCODE_NUMPAD_MULTIPLY | number | 是 | 否 | 小键盘按键'*' |
-| KEYCODE_NUMPAD_SUBTRACT | number | 是 | 否 | 小键盘按键'-' |
-| KEYCODE_NUMPAD_ADD | number | 是 | 否 | 小键盘按键'+' |
-| KEYCODE_NUMPAD_DOT | number | 是 | 否 | 小键盘按键'.' |
-| KEYCODE_NUMPAD_COMMA | number | 是 | 否 | 小键盘按键',' |
-| KEYCODE_NUMPAD_ENTER | number | 是 | 否 | 小键盘按键回车 |
-| KEYCODE_NUMPAD_EQUALS | number | 是 | 否 | 小键盘按键'=' |
-| KEYCODE_NUMPAD_LEFT_PAREN | number | 是 | 否 | 小键盘按键'(' |
-| KEYCODE_NUMPAD_RIGHT_PAREN | number | 是 | 否 | 小键盘按键')' |
-| KEYCODE_VIRTUAL_MULTITASK | number | 是 | 否 | 虚拟多任务键 |
-| KEYCODE_SLEEP | number | 是 | 否 | 睡眠键 |
-| KEYCODE_ZENKAKU_HANKAKU | number | 是 | 否 | 日文全宽/半宽键 |
-| KEYCODE_102ND | number | 是 | 否 | 102nd按键 |
-| KEYCODE_RO | number | 是 | 否 | 日文Ro键 |
-| KEYCODE_KATAKANA | number | 是 | 否 | 日文片假名键 |
-| KEYCODE_HIRAGANA | number | 是 | 否 | 日文平假名键 |
-| KEYCODE_HENKAN | number | 是 | 否 | 日文转换键 |
-| KEYCODE_KATAKANA_HIRAGANA | number | 是 | 否 | 日语片假名/平假名键 |
-| KEYCODE_MUHENKAN | number | 是 | 否 | 日文非转换键 |
-| KEYCODE_LINEFEED | number | 是 | 否 | 换行键 |
-| KEYCODE_MACRO | number | 是 | 否 | 宏键 |
-| KEYCODE_NUMPAD_PLUSMINUS | number | 是 | 否 | 数字键盘上的加号/减号键 |
-| KEYCODE_SCALE | number | 是 | 否 | 扩展键 |
-| KEYCODE_HANGUEL | number | 是 | 否 | 日文韩语键 |
-| KEYCODE_HANJA | number | 是 | 否 | 日文汉语键 |
-| KEYCODE_YEN | number | 是 | 否 | 日元键 |
-| KEYCODE_STOP | number | 是 | 否 | 停止键 |
-| KEYCODE_AGAIN | number | 是 | 否 | 重复键 |
-| KEYCODE_PROPS | number | 是 | 否 | 道具键 |
-| KEYCODE_UNDO | number | 是 | 否 | 撤消键 |
-| KEYCODE_COPY | number | 是 | 否 | 复制键 |
-| KEYCODE_OPEN | number | 是 | 否 | 打开键 |
-| KEYCODE_PASTE | number | 是 | 否 | 粘贴键 |
-| KEYCODE_FIND | number | 是 | 否 | 查找键 |
-| KEYCODE_CUT | number | 是 | 否 | 剪切键 |
-| KEYCODE_HELP | number | 是 | 否 | 帮助键 |
-| KEYCODE_CALC | number | 是 | 否 | 计算器特殊功能键,用于启动计算器应用程序 |
-| KEYCODE_FILE | number | 是 | 否 | 文件按键 |
-| KEYCODE_BOOKMARKS | number | 是 | 否 | 书签键 |
-| KEYCODE_NEXT | number | 是 | 否 | 下一个按键 |
-| KEYCODE_PLAYPAUSE | number | 是 | 否 | 播放/暂停键 |
-| KEYCODE_PREVIOUS | number | 是 | 否 | 上一个按键 |
-| KEYCODE_STOPCD | number | 是 | 否 | CD停止键 |
-| KEYCODE_CONFIG | number | 是 | 否 | 配置键 |
-| KEYCODE_REFRESH | number | 是 | 否 | 刷新键 |
-| KEYCODE_EXIT | number | 是 | 否 | 退出键 |
-| KEYCODE_EDIT | number | 是 | 否 | 编辑键 |
-| KEYCODE_SCROLLUP | number | 是 | 否 | 向上滚动键 |
-| KEYCODE_SCROLLDOWN | number | 是 | 否 | 向下滚动键 |
-| KEYCODE_NEW | number | 是 | 否 | 新建键 |
-| KEYCODE_REDO | number | 是 | 否 | 恢复键 |
-| KEYCODE_CLOSE | number | 是 | 否 | 关闭键 |
-| KEYCODE_PLAY | number | 是 | 否 | 播放键 |
-| KEYCODE_BASSBOOST | number | 是 | 否 | 低音增强键 |
-| KEYCODE_PRINT | number | 是 | 否 | 打印键 | 
-| KEYCODE_CHAT | number | 是 | 否 | 聊天键 |
-| KEYCODE_FINANCE | number | 是 | 否 | 金融键 |
-| KEYCODE_CANCEL | number | 是 | 否 | 取消键 |
-| KEYCODE_KBDILLUM_TOGGLE | number | 是 | 否 | 键盘灯光切换键 |
-| KEYCODE_KBDILLUM_DOWN | number | 是 | 否 | 键盘灯光调亮键 |
-| KEYCODE_KBDILLUM_UP | number | 是 | 否 | 键盘灯光调暗键 |
-| KEYCODE_SEND | number | 是 | 否 | 发送键 |
-| KEYCODE_REPLY | number | 是 | 否 | 答复键 |
-| KEYCODE_FORWARDMAIL | number | 是 | 否 | 邮件转发键 |
-| KEYCODE_SAVE | number | 是 | 否 | 保存键 |
-| KEYCODE_DOCUMENTS | number | 是 | 否 | 文件键 |
-| KEYCODE_VIDEO_NEXT | number | 是 | 否 | 下一个视频键 |
-| KEYCODE_VIDEO_PREV | number | 是 | 否 | 上一个视频键 |
-| KEYCODE_BRIGHTNESS_CYCLE | number | 是 | 否 | 背光渐变键 |
-| KEYCODE_BRIGHTNESS_ZERO | number | 是 | 否 | 亮度调节为0键 |
-| KEYCODE_DISPLAY_OFF | number | 是 | 否 | 显示关闭键 |
-| KEYCODE_BTN_MISC | number | 是 | 否 | 游戏手柄上的各种按键 |
-| KEYCODE_GOTO | number | 是 | 否 | 进入键 |
-| KEYCODE_INFO | number | 是 | 否 | 信息查看键 |
-| KEYCODE_PROGRAM | number | 是 | 否 | 程序键 |
-| KEYCODE_PVR | number | 是 | 否 | 个人录像机(PVR)键 |
-| KEYCODE_SUBTITLE | number | 是 | 否 | 字幕键 |
-| KEYCODE_FULL_SCREEN | number | 是 | 否 | 全屏键 |
-| KEYCODE_KEYBOARD | number | 是 | 否 | 键盘 |
-| KEYCODE_ASPECT_RATIO | number | 是 | 否 | 屏幕纵横比调节键 |
-| KEYCODE_PC | number | 是 | 否 | 端口控制键 |
-| KEYCODE_TV | number | 是 | 否 | TV键 |
-| KEYCODE_TV2 | number | 是 | 否 | TV键2 |
-| KEYCODE_VCR | number | 是 | 否 | 录像机开启键 |
-| KEYCODE_VCR2 | number | 是 | 否 | 录像机开启键2 |
-| KEYCODE_SAT | number | 是 | 否 | SIM卡应用工具包(SAT)键 |
-| KEYCODE_CD | number | 是 | 否 | CD键 |
-| KEYCODE_TAPE | number | 是 | 否 | 磁带键 |
-| KEYCODE_TUNER | number | 是 | 否 | 调谐器键 |
-| KEYCODE_PLAYER | number | 是 | 否 | 播放器键 |
-| KEYCODE_DVD | number | 是 | 否 | DVD键 |
-| KEYCODE_AUDIO | number | 是 | 否 | 音频键 |
-| KEYCODE_VIDEO | number | 是 | 否 | 视频键 |
-| KEYCODE_MEMO | number | 是 | 否 | 备忘录键 |
-| KEYCODE_CALENDAR | number | 是 | 否 | 日历键 |
-| KEYCODE_RED | number | 是 | 否 | 红色指示器 |
-| KEYCODE_GREEN | number | 是 | 否 | 绿色指示器 |
-| KEYCODE_YELLOW | number | 是 | 否 | 黄色指示器 |
-| KEYCODE_BLUE | number | 是 | 否 | 蓝色指示器 |
-| KEYCODE_CHANNELUP | number | 是 | 否 | 频道向上键 |
-| KEYCODE_CHANNELDOWN | number | 是 | 否 | 频道向下键 |
-| KEYCODE_LAST | number | 是 | 否 | 末尾键 |
-| KEYCODE_RESTART | number | 是 | 否 | 重启键 |
-| KEYCODE_SLOW | number | 是 | 否 | 慢速键 |
-| KEYCODE_SHUFFLE | number | 是 | 否 | 随机播放键 |
-| KEYCODE_VIDEOPHONE | number | 是 | 否 | 可视电话键 |
-| KEYCODE_GAMES | number | 是 | 否 | 游戏键 |
-| KEYCODE_ZOOMIN | number | 是 | 否 | 放大键 |
-| KEYCODE_ZOOMOUT | number | 是 | 否 | 缩小键 |
-| KEYCODE_ZOOMRESET | number | 是 | 否 | 缩放重置键 |
-| KEYCODE_WORDPROCESSOR | number | 是 | 否 | 文字处理键 |
-| KEYCODE_EDITOR | number | 是 | 否 | 编辑器键 |
-| KEYCODE_SPREADSHEET | number | 是 | 否 | 电子表格键 |
-| KEYCODE_GRAPHICSEDITOR | number | 是 | 否 | 图形编辑器键 |
-| KEYCODE_PRESENTATION | number | 是 | 否 | 演示文稿键 |
-| KEYCODE_DATABASE | number | 是 | 否 | 数据库键标 |
-| KEYCODE_NEWS | number | 是 | 否 | 新闻键 |
-| KEYCODE_VOICEMAIL | number | 是 | 否 | 语音信箱 |
-| KEYCODE_ADDRESSBOOK | number | 是 | 否 | 通讯簿 |
-| KEYCODE_MESSENGER | number | 是 | 否 | 通信键 |
-| KEYCODE_BRIGHTNESS_TOGGLE | number | 是 | 否 | 亮度切换键 |
-| KEYCODE_SPELLCHECK | number | 是 | 否 | AL拼写检查 |
-| KEYCODE_COFFEE | number | 是 | 否 | 终端锁/屏幕保护程序 |
-| KEYCODE_MEDIA_REPEAT | number | 是 | 否 | 媒体循环键 |
-| KEYCODE_IMAGES | number | 是 | 否 | 图像键 |
-| KEYCODE_BUTTONCONFIG | number | 是 | 否 | 按键配置键 |
-| KEYCODE_TASKMANAGER | number | 是 | 否 | 任务管理器 |
-| KEYCODE_JOURNAL | number | 是 | 否 | 日志按键 |
-| KEYCODE_CONTROLPANEL | number | 是 | 否 | 控制面板键 |
-| KEYCODE_APPSELECT | number | 是 | 否 | 应用程序选择键 |
-| KEYCODE_SCREENSAVER | number | 是 | 否 | 屏幕保护程序键 |
-| KEYCODE_ASSISTANT | number | 是 | 否 | 辅助键 |
-| KEYCODE_KBD_LAYOUT_NEXT | number | 是 | 否 | 下一个键盘布局键 |
-| KEYCODE_BRIGHTNESS_MIN | number | 是 | 否 | 最小亮度键 |
-| KEYCODE_BRIGHTNESS_MAX | number | 是 | 否 | 最大亮度键 |
-| KEYCODE_KBDINPUTASSIST_PREV | number | 是 | 否 | 键盘输入Assist_Previous |
-| KEYCODE_KBDINPUTASSIST_NEXT | number | 是 | 否 | 键盘输入Assist_Next |
-| KEYCODE_KBDINPUTASSIST_PREVGROUP | number | 是 | 否 | 键盘输入Assist_Previous |
-| KEYCODE_KBDINPUTASSIST_NEXTGROUP | number | 是 | 否 | 键盘输入Assist_Next |
-| KEYCODE_KBDINPUTASSIST_ACCEPT | number | 是 | 否 | 键盘输入Assist_Accept |
-| KEYCODE_KBDINPUTASSIST_CANCEL | number | 是 | 否 | 键盘输入Assist_Cancel |
-| KEYCODE_FRONT | number | 是 | 否 | 挡风玻璃除雾器开关 |
-| KEYCODE_SETUP | number | 是 | 否 | 设置键 |
-| KEYCODE_WAKEUP | number | 是 | 否 | 唤醒键 |
-| KEYCODE_SENDFILE | number | 是 | 否 | 发送文件按键 |
-| KEYCODE_DELETEFILE | number | 是 | 否 | 删除文件按键 |
-| KEYCODE_XFER | number | 是 | 否 | 文件传输(XFER)按键 |
-| KEYCODE_PROG1 | number | 是 | 否 | 程序键1 |
-| KEYCODE_PROG2 | number | 是 | 否 | 程序键2 |
-| KEYCODE_MSDOS | number | 是 | 否 | MS-DOS键(微软磁盘操作系统 |
-| KEYCODE_SCREENLOCK | number | 是 | 否 | 屏幕锁定键 |
-| KEYCODE_DIRECTION_ROTATE_DISPLAY | number | 是 | 否 | 方向旋转显示键 |
-| KEYCODE_CYCLEWINDOWS | number | 是 | 否 | Windows循环键 |
-| KEYCODE_COMPUTER | number | 是 | 否 | 计算机按键 |
-| KEYCODE_EJECTCLOSECD | number | 是 | 否 | 弹出CD键 |
-| KEYCODE_ISO | number | 是 | 否 | ISO键 |
-| KEYCODE_MOVE | number | 是 | 否 | 移动键 |
-| KEYCODE_F13 | number | 是 | 否 | 按键'F13' |
-| KEYCODE_F14 | number | 是 | 否 | 按键'F14' |
-| KEYCODE_F15 | number | 是 | 否 | 按键'F15' |
-| KEYCODE_F16 | number | 是 | 否 | 按键'F16' |
-| KEYCODE_F17 | number | 是 | 否 | 按键'F17' |
-| KEYCODE_F18 | number | 是 | 否 | 按键'F18' |
-| KEYCODE_F19 | number | 是 | 否 | 按键'F19' |
-| KEYCODE_F20 | number | 是 | 否 | 按键'F20' |
-| KEYCODE_F21 | number | 是 | 否 | 按键'F21' |
-| KEYCODE_F22 | number | 是 | 否 | 按键'F22' |
-| KEYCODE_F23 | number | 是 | 否 | 按键'F23' |
-| KEYCODE_F24 | number | 是 | 否 | 按键'F24' |
-| KEYCODE_PROG3 | number | 是 | 否 | 程序键3 |
-| KEYCODE_PROG4 | number | 是 | 否 | 程序键4 |
-| KEYCODE_DASHBOARD | number | 是 | 否 | 仪表板 |
-| KEYCODE_SUSPEND | number | 是 | 否 | 挂起键 |
-| KEYCODE_HP | number | 是 | 否 | 高阶路径键 |
-| KEYCODE_SOUND | number | 是 | 否 | 音量键 |
-| KEYCODE_QUESTION | number | 是 | 否 | 疑问按键 |
-| KEYCODE_CONNECT | number | 是 | 否 | 连接键 |
-| KEYCODE_SPORT | number | 是 | 否 | 运动按键 |
-| KEYCODE_SHOP | number | 是 | 否 | 商城键 |
-| KEYCODE_ALTERASE | number | 是 | 否 | 交替键 |
-| KEYCODE_SWITCHVIDEOMODE | number | 是 | 否 | 在可用视频之间循环输出(监视器/LCD/TV输出/等)|
-| KEYCODE_BATTERY | number | 是 | 否 | 电池按键 |
-| KEYCODE_BLUETOOTH | number | 是 | 否 | 蓝牙按键 |
-| KEYCODE_WLAN | number | 是 | 否 | 无线局域网 |
-| KEYCODE_UWB | number | 是 | 否 | 超宽带(UWB)|
-| KEYCODE_WWAN_WIMAX | number | 是 | 否 | WWAN WiMAX按键 |
-| KEYCODE_RFKILL | number | 是 | 否 | 控制所有收音机的键 |
-| KEYCODE_CHANNEL | number | 是 | 否 | 向上频道键 |
-| KEYCODE_BTN_0 | number | 是 | 否 | 按键0 |
-| KEYCODE_BTN_1 | number | 是 | 否 | 按键1 |
-| KEYCODE_BTN_2 | number | 是 | 否 | 按键2 |
-| KEYCODE_BTN_3 | number | 是 | 否 | 按键3 |
-| KEYCODE_BTN_4 | number | 是 | 否 | 按键4 |
-| KEYCODE_BTN_5 | number | 是 | 否 | 按键5 |
-| KEYCODE_BTN_6 | number | 是 | 否 | 按键6 |
-| KEYCODE_BTN_7 | number | 是 | 否 | 按键7 |
-| KEYCODE_BTN_8 | number | 是 | 否 | 按键8 |
-| KEYCODE_BTN_9 | number | 是 | 否 | 按键9 |
\ No newline at end of file
+| 名称                               | 参数类型   | 可读   | 可写   | 描述                          |
+| -------------------------------- | ------ | ---- | ---- | --------------------------- |
+| KEYCODE_FN                       | number | 是    | 否    | 功能(Fn)键                     |
+| KEYCODE_UNKNOWN                  | number | 是    | 否    | 未知按键                        |
+| KEYCODE_HOME                     | number | 是    | 否    | 按键Home                      |
+| KEYCODE_BACK                     | number | 是    | 否    | 返回键                         |
+| KEYCODE_MEDIA_PLAY_PAUSE         | number | 是    | 否    | 多媒体键 播放/暂停                  |
+| KEYCODE_MEDIA_STOP               | number | 是    | 否    | 多媒体键 停止                     |
+| KEYCODE_MEDIA_NEXT               | number | 是    | 否    | 多媒体键 下一首                    |
+| KEYCODE_MEDIA_PREVIOUS           | number | 是    | 否    | 多媒体键 上一首                    |
+| KEYCODE_MEDIA_REWIND             | number | 是    | 否    | 多媒体键 快退                     |
+| KEYCODE_MEDIA_FAST_FORWARD       | number | 是    | 否    | 多媒体键 快进                     |
+| KEYCODE_VOLUME_UP                | number | 是    | 否    | 音量增加键                       |
+| KEYCODE_VOLUME_DOWN              | number | 是    | 否    | 音量减小键                       |
+| KEYCODE_POWER                    | number | 是    | 否    | 电源键                         |
+| KEYCODE_CAMERA                   | number | 是    | 否    | 拍照键                         |
+| KEYCODE_VOLUME_MUTE              | number | 是    | 否    | 扬声器静音键                      |
+| KEYCODE_MUTE                     | number | 是    | 否    | 话筒静音键                       |
+| KEYCODE_BRIGHTNESS_UP            | number | 是    | 否    | 亮度调节按键 调亮                   |
+| KEYCODE_BRIGHTNESS_DOWN          | number | 是    | 否    | 亮度调节按键 调暗                   |
+| KEYCODE_0                        | number | 是    | 否    | 按键'0'                       |
+| KEYCODE_1                        | number | 是    | 否    | 按键'1'                       |
+| KEYCODE_2                        | number | 是    | 否    | 按键'2'                       |
+| KEYCODE_3                        | number | 是    | 否    | 按键'3'                       |
+| KEYCODE_4                        | number | 是    | 否    | 按键'4'                       |
+| KEYCODE_5                        | number | 是    | 否    | 按键'5'                       |
+| KEYCODE_6                        | number | 是    | 否    | 按键'6'                       |
+| KEYCODE_7                        | number | 是    | 否    | 按键'7'                       |
+| KEYCODE_8                        | number | 是    | 否    | 按键'8'                       |
+| KEYCODE_9                        | number | 是    | 否    | 按键'9'                       |
+| KEYCODE_STAR                     | number | 是    | 否    | 按键'*'                       |
+| KEYCODE_POUND                    | number | 是    | 否    | 按键'#'                       |
+| KEYCODE_DPAD_UP                  | number | 是    | 否    | 导航键 向上                      |
+| KEYCODE_DPAD_DOWN                | number | 是    | 否    | 导航键 向下                      |
+| KEYCODE_DPAD_LEFT                | number | 是    | 否    | 导航键 向左                      |
+| KEYCODE_DPAD_RIGHT               | number | 是    | 否    | 导航键 向右                      |
+| KEYCODE_DPAD_CENTER              | number | 是    | 否    | 导航键 确定键                     |
+| KEYCODE_A                        | number | 是    | 否    | 按键'A'                       |
+| KEYCODE_B                        | number | 是    | 否    | 按键'B'                       |
+| KEYCODE_C                        | number | 是    | 否    | 按键'C'                       |
+| KEYCODE_D                        | number | 是    | 否    | 按键'D'                       |
+| KEYCODE_E                        | number | 是    | 否    | 按键'E'                       |
+| KEYCODE_F                        | number | 是    | 否    | 按键'F'                       |
+| KEYCODE_G                        | number | 是    | 否    | 按键'G'                       |
+| KEYCODE_H                        | number | 是    | 否    | 按键'H'                       |
+| KEYCODE_I                        | number | 是    | 否    | 按键'I'                       |
+| KEYCODE_J                        | number | 是    | 否    | 按键'J'                       |
+| KEYCODE_K                        | number | 是    | 否    | 按键'K'                       |
+| KEYCODE_L                        | number | 是    | 否    | 按键'L'                       |
+| KEYCODE_M                        | number | 是    | 否    | 按键'M'                       |
+| KEYCODE_N                        | number | 是    | 否    | 按键'N'                       |
+| KEYCODE_O                        | number | 是    | 否    | 按键'O'                       |
+| KEYCODE_P                        | number | 是    | 否    | 按键'P'                       |
+| KEYCODE_Q                        | number | 是    | 否    | 按键'Q'                       |
+| KEYCODE_R                        | number | 是    | 否    | 按键'R'                       |
+| KEYCODE_S                        | number | 是    | 否    | 按键'S'                       |
+| KEYCODE_T                        | number | 是    | 否    | 按键'T'                       |
+| KEYCODE_U                        | number | 是    | 否    | 按键'U'                       |
+| KEYCODE_V                        | number | 是    | 否    | 按键'V'                       |
+| KEYCODE_W                        | number | 是    | 否    | 按键'W'                       |
+| KEYCODE_X                        | number | 是    | 否    | 按键'X'                       |
+| KEYCODE_Y                        | number | 是    | 否    | 按键'Y'                       |
+| KEYCODE_Z                        | number | 是    | 否    | 按键'Z'                       |
+| KEYCODE_COMMA                    | number | 是    | 否    | 按键','                       |
+| KEYCODE_PERIOD                   | number | 是    | 否    | 按键'.'                       |
+| KEYCODE_ALT_LEFT                 | number | 是    | 否    | Alt+Left                    |
+| KEYCODE_ALT_RIGHT                | number | 是    | 否    | Alt+Right                   |
+| KEYCODE_SHIFT_LEFT               | number | 是    | 否    | Shift+Left                  |
+| KEYCODE_SHIFT_RIGHT              | number | 是    | 否    | Shift+Right                 |
+| KEYCODE_TAB                      | number | 是    | 否    | Tab键                        |
+| KEYCODE_SPACE                    | number | 是    | 否    | 空格键                         |
+| KEYCODE_SYM                      | number | 是    | 否    | 符号修改器按键                     |
+| KEYCODE_EXPLORER                 | number | 是    | 否    | 浏览器功能键,此键用于启动浏览器应用程序。       |
+| KEYCODE_ENVELOPE                 | number | 是    | 否    | 电子邮件功能键,此键用于启动电子邮件应用程序。     |
+| KEYCODE_ENTER                    | number | 是    | 否    | 回车键                         |
+| KEYCODE_DEL                      | number | 是    | 否    | 退格键                         |
+| KEYCODE_GRAVE                    | number | 是    | 否    | 按键'`'                       |
+| KEYCODE_MINUS                    | number | 是    | 否    | 按键'-'                       |
+| KEYCODE_EQUALS                   | number | 是    | 否    | 按键'='                       |
+| KEYCODE_LEFT_BRACKET             | number | 是    | 否    | 按键'['                       |
+| KEYCODE_RIGHT_BRACKET            | number | 是    | 否    | 按键']'                       |
+| KEYCODE_BACKSLASH                | number | 是    | 否    | 按键'\'                       |
+| KEYCODE_SEMICOLON                | number | 是    | 否    | 按键';'                       |
+| KEYCODE_APOSTROPHE               | number | 是    | 否    | 按键''' (单引号)                 |
+| KEYCODE_SLASH                    | number | 是    | 否    | 按键'/'                       |
+| KEYCODE_AT                       | number | 是    | 否    | 按键'@'                       |
+| KEYCODE_PLUS                     | number | 是    | 否    | 按键'+'                       |
+| KEYCODE_MENU                     | number | 是    | 否    | 菜单键                         |
+| KEYCODE_PAGE_UP                  | number | 是    | 否    | 向上翻页键                       |
+| KEYCODE_PAGE_DOWN                | number | 是    | 否    | 向下翻页键                       |
+| KEYCODE_ESCAPE                   | number | 是    | 否    | ESC键                        |
+| KEYCODE_FORWARD_DEL              | number | 是    | 否    | 删除键                         |
+| KEYCODE_CTRL_LEFT                | number | 是    | 否    | Control+Left                |
+| KEYCODE_CTRL_RIGHT               | number | 是    | 否    | Control+Right               |
+| KEYCODE_CAPS_LOCK                | number | 是    | 否    | 大写锁定键                       |
+| KEYCODE_SCROLL_LOCK              | number | 是    | 否    | 滚动锁定键                       |
+| KEYCODE_META_LEFT                | number | 是    | 否    | 左元修改器键                      |
+| KEYCODE_META_RIGHT               | number | 是    | 否    | 右元修改器键                      |
+| KEYCODE_FUNCTION                 | number | 是    | 否    | 函数修改器键                      |
+| KEYCODE_SYSRQ                    | number | 是    | 否    | 系统请求/打印屏幕键                  |
+| KEYCODE_BREAK                    | number | 是    | 否    | Break/Pause键                |
+| KEYCODE_MOVE_HOME                | number | 是    | 否    | 光标移动到开始键                    |
+| KEYCODE_MOVE_END                 | number | 是    | 否    | 光标移动到末尾键                    |
+| KEYCODE_INSERT                   | number | 是    | 否    | 插入键                         |
+| KEYCODE_FORWARD                  | number | 是    | 否    | 删除键                         |
+| KEYCODE_MEDIA_PLAY               | number | 是    | 否    | 多媒体键 播放                     |
+| KEYCODE_MEDIA_PAUSE              | number | 是    | 否    | 多媒体键 暂停                     |
+| KEYCODE_MEDIA_CLOSE              | number | 是    | 否    | 多媒体键 关闭                     |
+| KEYCODE_MEDIA_EJECT              | number | 是    | 否    | 多媒体键 弹出                     |
+| KEYCODE_MEDIA_RECORD             | number | 是    | 否    | 多媒体键 录音                     |
+| KEYCODE_F1                       | number | 是    | 否    | 按键'F1'                      |
+| KEYCODE_F2                       | number | 是    | 否    | 按键'F2'                      |
+| KEYCODE_F3                       | number | 是    | 否    | 按键'F3'                      |
+| KEYCODE_F4                       | number | 是    | 否    | 按键'F4'                      |
+| KEYCODE_F5                       | number | 是    | 否    | 按键'F5'                      |
+| KEYCODE_F6                       | number | 是    | 否    | 按键'F6'                      |
+| KEYCODE_F7                       | number | 是    | 否    | 按键'F7'                      |
+| KEYCODE_F8                       | number | 是    | 否    | 按键'F8'                      |
+| KEYCODE_F9                       | number | 是    | 否    | 按键'F9'                      |
+| KEYCODE_F10                      | number | 是    | 否    | 按键'F10'                     |
+| KEYCODE_F11                      | number | 是    | 否    | 按键'F11'                     |
+| KEYCODE_F12                      | number | 是    | 否    | 按键'F12'                     |
+| KEYCODE_NUM_LOCK                 | number | 是    | 否    | 小键盘锁                        |
+| KEYCODE_NUMPAD_0                 | number | 是    | 否    | 小键盘按键'0'                    |
+| KEYCODE_NUMPAD_1                 | number | 是    | 否    | 小键盘按键'1'                    |
+| KEYCODE_NUMPAD_2                 | number | 是    | 否    | 小键盘按键'2'                    |
+| KEYCODE_NUMPAD_3                 | number | 是    | 否    | 小键盘按键'3'                    |
+| KEYCODE_NUMPAD_4                 | number | 是    | 否    | 小键盘按键'4'                    |
+| KEYCODE_NUMPAD_5                 | number | 是    | 否    | 小键盘按键'5'                    |
+| KEYCODE_NUMPAD_6                 | number | 是    | 否    | 小键盘按键'6'                    |
+| KEYCODE_NUMPAD_7                 | number | 是    | 否    | 小键盘按键'7'                    |
+| KEYCODE_NUMPAD_8                 | number | 是    | 否    | 小键盘按键'8'                    |
+| KEYCODE_NUMPAD_9                 | number | 是    | 否    | 小键盘按键'9'                    |
+| KEYCODE_NUMPAD_DIVIDE            | number | 是    | 否    | 小键盘按键'/'                    |
+| KEYCODE_NUMPAD_MULTIPLY          | number | 是    | 否    | 小键盘按键'*'                    |
+| KEYCODE_NUMPAD_SUBTRACT          | number | 是    | 否    | 小键盘按键'-'                    |
+| KEYCODE_NUMPAD_ADD               | number | 是    | 否    | 小键盘按键'+'                    |
+| KEYCODE_NUMPAD_DOT               | number | 是    | 否    | 小键盘按键'.'                    |
+| KEYCODE_NUMPAD_COMMA             | number | 是    | 否    | 小键盘按键','                    |
+| KEYCODE_NUMPAD_ENTER             | number | 是    | 否    | 小键盘按键回车                     |
+| KEYCODE_NUMPAD_EQUALS            | number | 是    | 否    | 小键盘按键'='                    |
+| KEYCODE_NUMPAD_LEFT_PAREN        | number | 是    | 否    | 小键盘按键'('                    |
+| KEYCODE_NUMPAD_RIGHT_PAREN       | number | 是    | 否    | 小键盘按键')'                    |
+| KEYCODE_VIRTUAL_MULTITASK        | number | 是    | 否    | 虚拟多任务键                      |
+| KEYCODE_SLEEP                    | number | 是    | 否    | 睡眠键                         |
+| KEYCODE_ZENKAKU_HANKAKU          | number | 是    | 否    | 日文全宽/半宽键                    |
+| KEYCODE_102ND                    | number | 是    | 否    | 102nd按键                     |
+| KEYCODE_RO                       | number | 是    | 否    | 日文Ro键                       |
+| KEYCODE_KATAKANA                 | number | 是    | 否    | 日文片假名键                      |
+| KEYCODE_HIRAGANA                 | number | 是    | 否    | 日文平假名键                      |
+| KEYCODE_HENKAN                   | number | 是    | 否    | 日文转换键                       |
+| KEYCODE_KATAKANA_HIRAGANA        | number | 是    | 否    | 日语片假名/平假名键                  |
+| KEYCODE_MUHENKAN                 | number | 是    | 否    | 日文非转换键                      |
+| KEYCODE_LINEFEED                 | number | 是    | 否    | 换行键                         |
+| KEYCODE_MACRO                    | number | 是    | 否    | 宏键                          |
+| KEYCODE_NUMPAD_PLUSMINUS         | number | 是    | 否    | 数字键盘上的加号/减号键                |
+| KEYCODE_SCALE                    | number | 是    | 否    | 扩展键                         |
+| KEYCODE_HANGUEL                  | number | 是    | 否    | 日文韩语键                       |
+| KEYCODE_HANJA                    | number | 是    | 否    | 日文汉语键                       |
+| KEYCODE_YEN                      | number | 是    | 否    | 日元键                         |
+| KEYCODE_STOP                     | number | 是    | 否    | 停止键                         |
+| KEYCODE_AGAIN                    | number | 是    | 否    | 重复键                         |
+| KEYCODE_PROPS                    | number | 是    | 否    | 道具键                         |
+| KEYCODE_UNDO                     | number | 是    | 否    | 撤消键                         |
+| KEYCODE_COPY                     | number | 是    | 否    | 复制键                         |
+| KEYCODE_OPEN                     | number | 是    | 否    | 打开键                         |
+| KEYCODE_PASTE                    | number | 是    | 否    | 粘贴键                         |
+| KEYCODE_FIND                     | number | 是    | 否    | 查找键                         |
+| KEYCODE_CUT                      | number | 是    | 否    | 剪切键                         |
+| KEYCODE_HELP                     | number | 是    | 否    | 帮助键                         |
+| KEYCODE_CALC                     | number | 是    | 否    | 计算器特殊功能键,用于启动计算器应用程序        |
+| KEYCODE_FILE                     | number | 是    | 否    | 文件按键                        |
+| KEYCODE_BOOKMARKS                | number | 是    | 否    | 书签键                         |
+| KEYCODE_NEXT                     | number | 是    | 否    | 下一个按键                       |
+| KEYCODE_PLAYPAUSE                | number | 是    | 否    | 播放/暂停键                      |
+| KEYCODE_PREVIOUS                 | number | 是    | 否    | 上一个按键                       |
+| KEYCODE_STOPCD                   | number | 是    | 否    | CD停止键                       |
+| KEYCODE_CONFIG                   | number | 是    | 否    | 配置键                         |
+| KEYCODE_REFRESH                  | number | 是    | 否    | 刷新键                         |
+| KEYCODE_EXIT                     | number | 是    | 否    | 退出键                         |
+| KEYCODE_EDIT                     | number | 是    | 否    | 编辑键                         |
+| KEYCODE_SCROLLUP                 | number | 是    | 否    | 向上滚动键                       |
+| KEYCODE_SCROLLDOWN               | number | 是    | 否    | 向下滚动键                       |
+| KEYCODE_NEW                      | number | 是    | 否    | 新建键                         |
+| KEYCODE_REDO                     | number | 是    | 否    | 恢复键                         |
+| KEYCODE_CLOSE                    | number | 是    | 否    | 关闭键                         |
+| KEYCODE_PLAY                     | number | 是    | 否    | 播放键                         |
+| KEYCODE_BASSBOOST                | number | 是    | 否    | 低音增强键                       |
+| KEYCODE_PRINT                    | number | 是    | 否    | 打印键                         |
+| KEYCODE_CHAT                     | number | 是    | 否    | 聊天键                         |
+| KEYCODE_FINANCE                  | number | 是    | 否    | 金融键                         |
+| KEYCODE_CANCEL                   | number | 是    | 否    | 取消键                         |
+| KEYCODE_KBDILLUM_TOGGLE          | number | 是    | 否    | 键盘灯光切换键                     |
+| KEYCODE_KBDILLUM_DOWN            | number | 是    | 否    | 键盘灯光调亮键                     |
+| KEYCODE_KBDILLUM_UP              | number | 是    | 否    | 键盘灯光调暗键                     |
+| KEYCODE_SEND                     | number | 是    | 否    | 发送键                         |
+| KEYCODE_REPLY                    | number | 是    | 否    | 答复键                         |
+| KEYCODE_FORWARDMAIL              | number | 是    | 否    | 邮件转发键                       |
+| KEYCODE_SAVE                     | number | 是    | 否    | 保存键                         |
+| KEYCODE_DOCUMENTS                | number | 是    | 否    | 文件键                         |
+| KEYCODE_VIDEO_NEXT               | number | 是    | 否    | 下一个视频键                      |
+| KEYCODE_VIDEO_PREV               | number | 是    | 否    | 上一个视频键                      |
+| KEYCODE_BRIGHTNESS_CYCLE         | number | 是    | 否    | 背光渐变键                       |
+| KEYCODE_BRIGHTNESS_ZERO          | number | 是    | 否    | 亮度调节为0键                     |
+| KEYCODE_DISPLAY_OFF              | number | 是    | 否    | 显示关闭键                       |
+| KEYCODE_BTN_MISC                 | number | 是    | 否    | 游戏手柄上的各种按键                  |
+| KEYCODE_GOTO                     | number | 是    | 否    | 进入键                         |
+| KEYCODE_INFO                     | number | 是    | 否    | 信息查看键                       |
+| KEYCODE_PROGRAM                  | number | 是    | 否    | 程序键                         |
+| KEYCODE_PVR                      | number | 是    | 否    | 个人录像机(PVR)键                 |
+| KEYCODE_SUBTITLE                 | number | 是    | 否    | 字幕键                         |
+| KEYCODE_FULL_SCREEN              | number | 是    | 否    | 全屏键                         |
+| KEYCODE_KEYBOARD                 | number | 是    | 否    | 键盘                          |
+| KEYCODE_ASPECT_RATIO             | number | 是    | 否    | 屏幕纵横比调节键                    |
+| KEYCODE_PC                       | number | 是    | 否    | 端口控制键                       |
+| KEYCODE_TV                       | number | 是    | 否    | TV键                         |
+| KEYCODE_TV2                      | number | 是    | 否    | TV键2                        |
+| KEYCODE_VCR                      | number | 是    | 否    | 录像机开启键                      |
+| KEYCODE_VCR2                     | number | 是    | 否    | 录像机开启键2                     |
+| KEYCODE_SAT                      | number | 是    | 否    | SIM卡应用工具包(SAT)键             |
+| KEYCODE_CD                       | number | 是    | 否    | CD键                         |
+| KEYCODE_TAPE                     | number | 是    | 否    | 磁带键                         |
+| KEYCODE_TUNER                    | number | 是    | 否    | 调谐器键                        |
+| KEYCODE_PLAYER                   | number | 是    | 否    | 播放器键                        |
+| KEYCODE_DVD                      | number | 是    | 否    | DVD键                        |
+| KEYCODE_AUDIO                    | number | 是    | 否    | 音频键                         |
+| KEYCODE_VIDEO                    | number | 是    | 否    | 视频键                         |
+| KEYCODE_MEMO                     | number | 是    | 否    | 备忘录键                        |
+| KEYCODE_CALENDAR                 | number | 是    | 否    | 日历键                         |
+| KEYCODE_RED                      | number | 是    | 否    | 红色指示器                       |
+| KEYCODE_GREEN                    | number | 是    | 否    | 绿色指示器                       |
+| KEYCODE_YELLOW                   | number | 是    | 否    | 黄色指示器                       |
+| KEYCODE_BLUE                     | number | 是    | 否    | 蓝色指示器                       |
+| KEYCODE_CHANNELUP                | number | 是    | 否    | 频道向上键                       |
+| KEYCODE_CHANNELDOWN              | number | 是    | 否    | 频道向下键                       |
+| KEYCODE_LAST                     | number | 是    | 否    | 末尾键                         |
+| KEYCODE_RESTART                  | number | 是    | 否    | 重启键                         |
+| KEYCODE_SLOW                     | number | 是    | 否    | 慢速键                         |
+| KEYCODE_SHUFFLE                  | number | 是    | 否    | 随机播放键                       |
+| KEYCODE_VIDEOPHONE               | number | 是    | 否    | 可视电话键                       |
+| KEYCODE_GAMES                    | number | 是    | 否    | 游戏键                         |
+| KEYCODE_ZOOMIN                   | number | 是    | 否    | 放大键                         |
+| KEYCODE_ZOOMOUT                  | number | 是    | 否    | 缩小键                         |
+| KEYCODE_ZOOMRESET                | number | 是    | 否    | 缩放重置键                       |
+| KEYCODE_WORDPROCESSOR            | number | 是    | 否    | 文字处理键                       |
+| KEYCODE_EDITOR                   | number | 是    | 否    | 编辑器键                        |
+| KEYCODE_SPREADSHEET              | number | 是    | 否    | 电子表格键                       |
+| KEYCODE_GRAPHICSEDITOR           | number | 是    | 否    | 图形编辑器键                      |
+| KEYCODE_PRESENTATION             | number | 是    | 否    | 演示文稿键                       |
+| KEYCODE_DATABASE                 | number | 是    | 否    | 数据库键标                       |
+| KEYCODE_NEWS                     | number | 是    | 否    | 新闻键                         |
+| KEYCODE_VOICEMAIL                | number | 是    | 否    | 语音信箱                        |
+| KEYCODE_ADDRESSBOOK              | number | 是    | 否    | 通讯簿                         |
+| KEYCODE_MESSENGER                | number | 是    | 否    | 通信键                         |
+| KEYCODE_BRIGHTNESS_TOGGLE        | number | 是    | 否    | 亮度切换键                       |
+| KEYCODE_SPELLCHECK               | number | 是    | 否    | AL拼写检查                      |
+| KEYCODE_COFFEE                   | number | 是    | 否    | 终端锁/屏幕保护程序                  |
+| KEYCODE_MEDIA_REPEAT             | number | 是    | 否    | 媒体循环键                       |
+| KEYCODE_IMAGES                   | number | 是    | 否    | 图像键                         |
+| KEYCODE_BUTTONCONFIG             | number | 是    | 否    | 按键配置键                       |
+| KEYCODE_TASKMANAGER              | number | 是    | 否    | 任务管理器                       |
+| KEYCODE_JOURNAL                  | number | 是    | 否    | 日志按键                        |
+| KEYCODE_CONTROLPANEL             | number | 是    | 否    | 控制面板键                       |
+| KEYCODE_APPSELECT                | number | 是    | 否    | 应用程序选择键                     |
+| KEYCODE_SCREENSAVER              | number | 是    | 否    | 屏幕保护程序键                     |
+| KEYCODE_ASSISTANT                | number | 是    | 否    | 辅助键                         |
+| KEYCODE_KBD_LAYOUT_NEXT          | number | 是    | 否    | 下一个键盘布局键                    |
+| KEYCODE_BRIGHTNESS_MIN           | number | 是    | 否    | 最小亮度键                       |
+| KEYCODE_BRIGHTNESS_MAX           | number | 是    | 否    | 最大亮度键                       |
+| KEYCODE_KBDINPUTASSIST_PREV      | number | 是    | 否    | 键盘输入Assist_Previous         |
+| KEYCODE_KBDINPUTASSIST_NEXT      | number | 是    | 否    | 键盘输入Assist_Next             |
+| KEYCODE_KBDINPUTASSIST_PREVGROUP | number | 是    | 否    | 键盘输入Assist_Previous         |
+| KEYCODE_KBDINPUTASSIST_NEXTGROUP | number | 是    | 否    | 键盘输入Assist_Next             |
+| KEYCODE_KBDINPUTASSIST_ACCEPT    | number | 是    | 否    | 键盘输入Assist_Accept           |
+| KEYCODE_KBDINPUTASSIST_CANCEL    | number | 是    | 否    | 键盘输入Assist_Cancel           |
+| KEYCODE_FRONT                    | number | 是    | 否    | 挡风玻璃除雾器开关                   |
+| KEYCODE_SETUP                    | number | 是    | 否    | 设置键                         |
+| KEYCODE_WAKEUP                   | number | 是    | 否    | 唤醒键                         |
+| KEYCODE_SENDFILE                 | number | 是    | 否    | 发送文件按键                      |
+| KEYCODE_DELETEFILE               | number | 是    | 否    | 删除文件按键                      |
+| KEYCODE_XFER                     | number | 是    | 否    | 文件传输(XFER)按键                |
+| KEYCODE_PROG1                    | number | 是    | 否    | 程序键1                        |
+| KEYCODE_PROG2                    | number | 是    | 否    | 程序键2                        |
+| KEYCODE_MSDOS                    | number | 是    | 否    | MS-DOS键(微软磁盘操作系统            |
+| KEYCODE_SCREENLOCK               | number | 是    | 否    | 屏幕锁定键                       |
+| KEYCODE_DIRECTION_ROTATE_DISPLAY | number | 是    | 否    | 方向旋转显示键                     |
+| KEYCODE_CYCLEWINDOWS             | number | 是    | 否    | Windows循环键                  |
+| KEYCODE_COMPUTER                 | number | 是    | 否    | 按键                          |
+| KEYCODE_EJECTCLOSECD             | number | 是    | 否    | 弹出CD键                       |
+| KEYCODE_ISO                      | number | 是    | 否    | ISO键                        |
+| KEYCODE_MOVE                     | number | 是    | 否    | 移动键                         |
+| KEYCODE_F13                      | number | 是    | 否    | 按键'F13'                     |
+| KEYCODE_F14                      | number | 是    | 否    | 按键'F14'                     |
+| KEYCODE_F15                      | number | 是    | 否    | 按键'F15'                     |
+| KEYCODE_F16                      | number | 是    | 否    | 按键'F16'                     |
+| KEYCODE_F17                      | number | 是    | 否    | 按键'F17'                     |
+| KEYCODE_F18                      | number | 是    | 否    | 按键'F18'                     |
+| KEYCODE_F19                      | number | 是    | 否    | 按键'F19'                     |
+| KEYCODE_F20                      | number | 是    | 否    | 按键'F20'                     |
+| KEYCODE_F21                      | number | 是    | 否    | 按键'F21'                     |
+| KEYCODE_F22                      | number | 是    | 否    | 按键'F22'                     |
+| KEYCODE_F23                      | number | 是    | 否    | 按键'F23'                     |
+| KEYCODE_F24                      | number | 是    | 否    | 按键'F24'                     |
+| KEYCODE_PROG3                    | number | 是    | 否    | 程序键3                        |
+| KEYCODE_PROG4                    | number | 是    | 否    | 程序键4                        |
+| KEYCODE_DASHBOARD                | number | 是    | 否    | 仪表板                         |
+| KEYCODE_SUSPEND                  | number | 是    | 否    | 挂起键                         |
+| KEYCODE_HP                       | number | 是    | 否    | 高阶路径键                       |
+| KEYCODE_SOUND                    | number | 是    | 否    | 音量键                         |
+| KEYCODE_QUESTION                 | number | 是    | 否    | 疑问按键                        |
+| KEYCODE_CONNECT                  | number | 是    | 否    | 连接键                         |
+| KEYCODE_SPORT                    | number | 是    | 否    | 运动按键                        |
+| KEYCODE_SHOP                     | number | 是    | 否    | 商城键                         |
+| KEYCODE_ALTERASE                 | number | 是    | 否    | 交替键                         |
+| KEYCODE_SWITCHVIDEOMODE          | number | 是    | 否    | 在可用视频之间循环输出(监视器/LCD/TV输出/等) |
+| KEYCODE_BATTERY                  | number | 是    | 否    | 电池按键                        |
+| KEYCODE_BLUETOOTH                | number | 是    | 否    | 蓝牙按键                        |
+| KEYCODE_WLAN                     | number | 是    | 否    | 无线局域网                       |
+| KEYCODE_UWB                      | number | 是    | 否    | 超宽带(UWB)                    |
+| KEYCODE_WWAN_WIMAX               | number | 是    | 否    | WWAN WiMAX按键                |
+| KEYCODE_RFKILL                   | number | 是    | 否    | 控制所有收音机的键                   |
+| KEYCODE_CHANNEL                  | number | 是    | 否    | 向上频道键                       |
+| KEYCODE_BTN_0                    | number | 是    | 否    | 按键0                         |
+| KEYCODE_BTN_1                    | number | 是    | 否    | 按键1                         |
+| KEYCODE_BTN_2                    | number | 是    | 否    | 按键2                         |
+| KEYCODE_BTN_3                    | number | 是    | 否    | 按键3                         |
+| KEYCODE_BTN_4                    | number | 是    | 否    | 按键4                         |
+| KEYCODE_BTN_5                    | number | 是    | 否    | 按键5                         |
+| KEYCODE_BTN_6                    | number | 是    | 否    | 按键6                         |
+| KEYCODE_BTN_7                    | number | 是    | 否    | 按键7                         |
+| KEYCODE_BTN_8                    | number | 是    | 否    | 按键8                         |
+| KEYCODE_BTN_9                    | number | 是    | 否    | 按键9                         |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-keyevent.md b/zh-cn/application-dev/reference/apis/js-apis-keyevent.md
index a2d63e44c662562c36e169786426ab8f0cecce2e..2dcf562d995aa43115528998f8fb14e625ab884d 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-keyevent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-keyevent.md
@@ -2,7 +2,8 @@
 
 KeyEvent模块提供了设备可以上报的按键事件。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
+>
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -13,39 +14,39 @@ import {Action,Key,KeyEvent} from '@ohos.multimodalInput.keyEvent';
 
 ## Action
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| CANCEL | number | 是 | 否 | 取消 |
-| DOWN | number | 是 | 否 | 按下按钮 |
-| UP | number | 是 | 否 | 抬起按钮 |
+| 名称     | 参数类型   | 可读   | 可写   | 描述   |
+| ------ | ------ | ---- | ---- | ---- |
+| CANCEL | number | 是    | 否    | 取消   |
+| DOWN   | number | 是    | 否    | 按下按钮 |
+| UP     | number | 是    | 否    | 抬起按钮 |
 
 ## Key
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| code | KeyCode | 是 | 否 | 按键码 |
-| pressedTime | number | 是 | 否 | 按下时间 |
-| deviceId | number | 是 | 否 | 按键所属设备 |
+| 名称          | 参数类型    | 可读   | 可写   | 描述     |
+| ----------- | ------- | ---- | ---- | ------ |
+| code        | KeyCode | 是    | 否    | 按键码    |
+| pressedTime | number  | 是    | 否    | 按下时间   |
+| deviceId    | number  | 是    | 否    | 按键所属设备 |
 
 ## KeyEvent
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
-
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| action | Action | 是 | 否 | 按键动作 |
-| key | Key | 是 | 否 | 当前发生变化的按键 |
-| unicodeChar | number | 是 | 否 | 按键对应的uniCode字符 |
-| keys | Key[] | 是 | 否 | 当前处于按下状态的按键列表 |
-| ctrlKey | boolean | 是 | 否 | 当前ctrlKey是否处于按下状态 |
-| altKey | boolean | 是 | 否 | 当前altKey是否处于按下状态 |
-| shiftKey | boolean | 是 | 否 | 当前shiftKey是否处于按下状态 |
-| logoKey | boolean | 是 | 否 | 当前logoKey是否处于按下状态 |
-| fnKey | boolean | 是 | 否 | 当前fnKey是否处于按下状态 |
-| capsLock | boolean | 是 | 否 | 当前capsLock是否处于激活状态 |
-| numLock | boolean | 是 | 否 | 当前numLock是否处于激活状态 |
-| scrollLock | boolean | 是 | 否 | 当前scrollLock是否处于激活状态 |
\ No newline at end of file
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
+
+| 名称          | 参数类型    | 可读   | 可写   | 描述                   |
+| ----------- | ------- | ---- | ---- | -------------------- |
+| action      | Action  | 是    | 否    | 按键动作                 |
+| key         | Key     | 是    | 否    | 当前发生变化的按键            |
+| unicodeChar | number  | 是    | 否    | 按键对应的uniCode字符       |
+| keys        | Key[]   | 是    | 否    | 当前处于按下状态的按键列表        |
+| ctrlKey     | boolean | 是    | 否    | 当前ctrlKey是否处于按下状态    |
+| altKey      | boolean | 是    | 否    | 当前altKey是否处于按下状态     |
+| shiftKey    | boolean | 是    | 否    | 当前shiftKey是否处于按下状态   |
+| logoKey     | boolean | 是    | 否    | 当前logoKey是否处于按下状态    |
+| fnKey       | boolean | 是    | 否    | 当前fnKey是否处于按下状态      |
+| capsLock    | boolean | 是    | 否    | 当前capsLock是否处于激活状态   |
+| numLock     | boolean | 是    | 否    | 当前numLock是否处于激活状态    |
+| scrollLock  | boolean | 是    | 否    | 当前scrollLock是否处于激活状态 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md
index d3bcdb125e4fb4321580a5ed9a2644ae1ec87a06..4c0a3d2cac9d0341f4edc8d77bc0a3cdd9fc1627 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-media.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-media.md
@@ -105,6 +105,7 @@ media.createVideoPlayer().then((video) => {
 createAudioRecorder(): AudioRecorder
 
 创建音频录制的实例来控制音频的录制。
+一台设备只允许创建一个录制实例。
 
 **系统能力:** SystemCapability.Multimedia.Media.AudioRecorder
 
@@ -125,6 +126,7 @@ let audioRecorder = media.createAudioRecorder();
 createVideoRecorder(callback: AsyncCallback\<[VideoRecorder](#videorecorder9)>): void
 
 异步方式创建视频录制实例。通过注册回调函数获取返回值。
+一台设备只允许创建一个录制实例。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -154,6 +156,7 @@ media.createVideoRecorder((error, video) => {
 createVideoRecorder(): Promise<[VideoRecorder](#videorecorder9)>
 
 异步方式创建视频录制实例。通过Promise获取返回值。
+一台设备只允许创建一个录制实例。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -271,14 +274,15 @@ Codec MIME类型枚举。
 
 **系统能力:** 以下各项对应的系统能力均为 SystemCapability.Multimedia.Media.AudioPlayer。
 
-| 名称        | 类型                      | 可读 | 可写 | 说明                                                         |
-| ----------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
-| src         | string                    | 是   | 是   | 音频媒体URI,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。<br>**支持路径示例**:<br>1. fd类型播放:fd://xx<br>![](figures/zh-cn_image_url.png)<br>2. http网络播放: http://xx<br/>3. https网络播放: https://xx<br/>4. hls网络播放路径:http://xx或者https://xx<br/>**注意事项**:<br>使用媒体素材需要获取读权限,否则无法正常播放。 |
-| loop        | boolean                   | 是   | 是   | 音频循环播放属性,设置为'true'表示循环播放。                 |
-| currentTime | number                    | 是   | 否   | 音频的当前播放位置。                                         |
-| duration    | number                    | 是   | 否   | 音频时长。                                                   |
-| state       | [AudioState](#audiostate) | 是   | 否   | 音频播放的状态。                                             |
-
+| 名称                            | 类型                                | 可读 | 可写 | 说明                                                         |
+| ------------------------------- | ----------------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| src                             | string                              | 是   | 是   | 音频媒体URI,支持当前主流的音频格式(m4a、aac、mp3、ogg、wav)。<br>**支持路径示例**:<br>1. fd类型播放:fd://xx<br>![](figures/zh-cn_image_url.png)<br>2. http网络播放: http://xx<br/>3. https网络播放: https://xx<br/>4. hls网络播放路径:http://xx或者https://xx<br/>**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 |
+| fdSrc<sup>9+</sup>              | [AVFileDescriptor](#interruptmode9) | 是   | 是   | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。<br/>**使用示例**:<br/>假设一个连续存储的音乐文件: <br/>音乐1(地址偏移:0,字节长度:100)<br/>音乐2(地址偏移:101,字节长度:50)<br/>音乐3(地址偏移:151,字节长度:150)<br/>1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }<br/>2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }<br/>3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }<br/>假设是一个独立的音乐文件: 请使用src=fd://xx <br/>**注意事项**:<br/>**需要权限:** ohos.permission.READ_MEDIA |
+| loop                            | boolean                             | 是   | 是   | 音频循环播放属性,设置为'true'表示循环播放。                 |
+| audioInterruptMode<sup>9+</sup> | [InterruptMode](#interruptmode9)    | 是   | 是   | 音频焦点模型。                                               |
+| currentTime                     | number                              | 是   | 否   | 音频的当前播放位置,单位为毫秒(ms)。                       |
+| duration                        | number                              | 是   | 否   | 音频时长,单位为毫秒(ms)。                                 |
+| state                           | [AudioState](#audiostate)           | 是   | 否   | 可以查询音频播放的状态,该状态不可作为调用play/pause/stop等状态切换的触发条件。 |
 ### play<a name=audioplayer_play></a>
 
 play(): void
@@ -617,7 +621,7 @@ audioPlayer.seek(30000);    //seek到30000ms的位置
 
 on(type: 'error', callback: ErrorCallback): void
 
-开始订阅音频播放错误事件。
+开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。
 
 **系统能力:** SystemCapability.Multimedia.Media.AudioPlayer
 
@@ -645,13 +649,38 @@ audioPlayer.setVolume(3);  //设置volume为无效值,触发'error'事件
 
 **系统能力:** 以下各项对应的系统能力均为 SystemCapability.Multimedia.Media.AudioPlayer。
 
-| 名称               | 类型   | 描述           |
-| ------------------ | ------ | -------------- |
-| idle               | string | 音频播放空闲。 |
-| playing            | string | 音频正在播放。 |
-| paused             | string | 音频暂停播放。 |
-| stopped            | string | 音频播放停止。 |
-| error<sup>8+</sup> | string | 错误状态。     |
+| 名称               | 类型   | 描述                                           |
+| ------------------ | ------ | ---------------------------------------------- |
+| idle               | string | 音频播放空闲,dataload/reset成功后处于此状态。 |
+| playing            | string | 音频正在播放,play成功后处于此状态。           |
+| paused             | string | 音频暂停播放,pause成功后处于此状态。          |
+| stopped            | string | 音频播放停止,stop/播放结束后处于此状态。      |
+| error<sup>8+</sup> | string | 错误状态。                                     |
+
+## AVFileDescriptor<sup>9+</sup>
+
+音视频文件资源描述,一种特殊资源的播放方式,使用场景:应用中的音频资源被连续存储在同一个文件中,需要根据偏移量和长度进行播放。
+
+**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| fd     | number | 是   | 资源句柄,通过resourceManager.getRawFileDescriptor获取       |
+| offset | number | 是   | 资源偏移量,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误 |
+| length | number | 是   | 资源长度,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误 |
+
+## InterruptMode<sup>9+</sup>
+
+音频焦点模式。
+
+**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer
+
+| 名称                         | 默认值 | 描述       |
+| ---------------------------- | ------ | ---------- |
+| SHARE_MODE      | 0      | 共享焦点模式。 |
+| INDEPENDENT_MODE| 1      | 独立焦点模式。     |
 
 ## VideoPlayer<sup>8+</sup>
 
@@ -665,13 +694,16 @@ audioPlayer.setVolume(3);  //设置volume为无效值,触发'error'事件
 
 | 名称                     | 类型                               | 可读 | 可写 | 说明                                                         |
 | ------------------------ | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ |
-| url<sup>8+</sup>         | string                             | 是   | 是   | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。<br>**支持路径示例**:<br>1. fd类型播放:fd://xx<br>![](figures/zh-cn_image_url.png)<br>2. http网络播放: http://xx<br/>3. https网络播放: https://xx<br/>4. hls网络播放路径:http://xx或者https://xx<br/>**注意事项**:<br>使用媒体素材需要获取读权限,否则无法正常播放。 |
+| url<sup>8+</sup>         | string                             | 是   | 是   | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。<br>**支持路径示例**:<br>1. fd类型播放:fd://xx<br>![](figures/zh-cn_image_url.png)<br>2. http网络播放: http://xx<br/>3. https网络播放: https://xx<br/>4. hls网络播放路径:http://xx或者https://xx<br/>**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 |
+| fdSrc<sup>9+</sup> | [AVFileDescriptor](#interruptmode9) | 是 | 是 | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。<br/>**使用示例**:<br/>假设一个连续存储的音乐文件: <br/>视频1(地址偏移:0,字节长度:100)<br/>视频2(地址偏移:101,字节长度:50)<br/>视频3(地址偏移:151,字节长度:150)<br/>1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }<br/>2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }<br/>3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }<br/>假设是一个独立的视频文件: 请使用src=fd://xx <br/>**注意事项**:<br/>**需要权限:** ohos.permission.READ_MEDIA |
 | loop<sup>8+</sup>        | boolean                            | 是   | 是   | 视频循环播放属性,设置为'true'表示循环播放。                 |
-| currentTime<sup>8+</sup> | number                             | 是   | 否   | 视频的当前播放位置。                                         |
-| duration<sup>8+</sup>    | number                             | 是   | 否   | 视频时长,返回-1表示直播模式。                               |
+| videoScaleType<sup>9+</sup>        | [VideoScaleType](#videoscaletype9)                   | 是   | 是   | 视频缩放模式。       |
+| audioInterruptMode<sup>9+</sup>        | [InterruptMode](#interruptmode9)                   | 是   | 是   | 音频焦点模型。       |
+| currentTime<sup>8+</sup> | number                             | 是   | 否   | 视频的当前播放位置,单位为毫秒(ms)。                       |
+| duration<sup>8+</sup>    | number                             | 是   | 否   | 视频时长,单位为毫秒(ms),返回-1表示直播模式。             |
 | state<sup>8+</sup>       | [VideoPlayState](#videoplaystate8) | 是   | 否   | 视频播放的状态。                                             |
-| width<sup>8+</sup>       | number                             | 是   | 否   | 视频宽。                                                     |
-| height<sup>8+</sup>      | number                             | 是   | 否   | 视频高。                                                     |
+| width<sup>8+</sup>       | number                             | 是   | 否   | 视频宽,单位为像素(px)。                                   |
+| height<sup>8+</sup>      | number                             | 是   | 否   | 视频高,单位为像素(px)。                                   |
 
 ### setDisplaySurface<sup>8+</sup>
 
@@ -1333,7 +1365,7 @@ videoPlayer.setSpeed(speed).then() => {
 
 selectBitrate(bitrate:number, callback: AsyncCallback\<number>): void
 
-通过回调方式设置码率,通过[availableBitrateCollected](#on('availableBitrateCollected')<sup>9+</sup>)获取当前码流支持的Bitrate。
+通过回调方式设置码率,通过[availableBitratesCollect](#onavailablebitratescollect9)获取当前码流支持的Bitrate。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
 
@@ -1361,7 +1393,7 @@ videoPlayer.selectBitrate(bitrate, (err, result) => {
 
 selectBitrate(bitrate:number): Promise\<number>
 
-通过Promise方式设置码率,通过[availableBitrateCollected](#on('availableBitrateCollected')<sup>9+</sup>)获取当前码流支持的Bitrate。
+通过Promise方式设置码率,通过[availableBitratesCollect](#onavailablebitratescollect9)获取当前码流支持的Bitrate。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
 
@@ -1486,7 +1518,7 @@ videoPlayer.on('videoSizeChanged', (width, height) => {
 
 on(type: 'error', callback: ErrorCallback): void
 
-开始监听视频播放错误事件。
+开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
 
@@ -1505,12 +1537,12 @@ videoPlayer.on('error', (error) => {      // 设置'error'事件回调
     console.info(`video error called, errCode is ${error.code}`);      // 打印错误码
     console.info(`video error called, errMessage is ${error.message}`);// 打印错误类型详细描述
 });
-videoPlayer.setVolume(3);  //设置volume为无效值,触发'error'事件
+videoPlayer.url = 'fd://error';  //设置错误的播放地址,触发'error'事件
 ```
 
-### on('availableBitrateCollected')<sup>9+</sup>
+### on('availableBitratesCollect')<sup>9+</sup>
 
-on(type: 'availableBitrateCollected', callback: (bitrates: Array<number>) => void): void
+on(type: 'availableBitratesCollect', callback: (bitrates: Array\<number>) => void): void
 
 开始监听视频播放码率上报事件。
 
@@ -1520,15 +1552,15 @@ on(type: 'availableBitrateCollected', callback: (bitrates: Array<number>) => voi
 
 | 参数名   | 类型     | 必填 | 说明                                                         |
 | -------- | -------- | ---- | ------------------------------------------------------------ |
-| type     | string   | 是   | 视频播放码率上报事件回调类型,支持的事件:'availableBitrateCollected',只在开始播放时候上报一次 |
-| callback | function | 是   | 视频播放码率事件回调方法,使用数组存放支持的码率。      |
+| type     | string   | 是   | 视频播放码率上报事件回调类型,支持的事件:'availableBitratesCollect',只在开始播放时候上报一次 |
+| callback | function | 是   | 视频播放码率事件回调方法,使用数组存放支持的码率。           |
 
 **示例:**
 
 ```js
-videoPlayer.on('availableBitrateCollected', (bitrates) => {
+videoPlayer.on('availableBitratesCollect', (bitrates) => {
     for (let i = 0; i < bitrates.length; i++) {
-        console.info('case availableBitrateCollected bitrates: '  + bitrates[i]);  //打印支持的码率
+        console.info('case availableBitratesCollect bitrates: '  + bitrates[i]);  //打印支持的码率
     }
 });
 ```
@@ -1573,6 +1605,17 @@ videoPlayer.on('availableBitrateCollected', (bitrates) => {
 | SPEED_FORWARD_1_75_X | 3    | 表示视频播放正常播速的1.75倍。 |
 | SPEED_FORWARD_2_00_X | 4    | 表示视频播放正常播速的2.00倍。 |
 
+## VideoScaleType<sup>9+</sup>
+
+枚举,视频缩放模式。
+
+**系统能力:** 以下各项对应的系统能力均为 SystemCapability.Multimedia.Media.VideoPlayer。
+
+| 名称                         | 默认值 | 描述       |
+| ---------------------------- | ------ | ---------- |
+| VIDEO_SCALE_TYPE_FIT     | 0      | 视频拉伸至与窗口等大。 |
+| VIDEO_SCALE_TYPE_FIT_CROP| 1      | 保持视频宽高比拉伸至填满窗口,内容可能会有裁剪。     |
+
 ## MediaDescription<sup>8+</sup>
 
 ### [key : string] : Object
@@ -1814,7 +1857,7 @@ audioRecorder.prepare(audioRecorderConfig)
 
 on(type: 'error', callback: ErrorCallback): void
 
-开始订阅音频录制错误事件。
+开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。
 
 **系统能力:** SystemCapability.Multimedia.Media.AudioRecorder
 
@@ -1977,7 +2020,7 @@ prepare(config: VideoRecorderConfig): Promise\<void>;
 
 异步方式进行视频录制的参数设置。通过Promise获取返回值。
 
-**需要权限:** ohos.permission.MICROPHONE,ohos.permission.CAMERA
+**需要权限:** ohos.permission.MICROPHONE
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2108,7 +2151,7 @@ start(callback: AsyncCallback\<void>): void;
 
 异步方式开始视频录制。通过注册回调函数获取返回值。
 
-在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)后调用,需要依赖数据源先给surface传递数据。
+在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2137,7 +2180,7 @@ start(): Promise\<void>;
 
 异步方式开始视频录制。通过Promise获取返回值。
 
-在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)后调用,需要依赖数据源先给surface传递数据。
+在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2272,7 +2315,7 @@ stop(callback: AsyncCallback\<void>): void;
 
 异步方式停止视频录制。通过注册回调函数获取返回值。
 
-需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)接口才能重新录制。
+需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2301,7 +2344,7 @@ stop(): Promise\<void>;
 
 异步方式停止视频录制。通过Promise获取返回值。
 
-需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)接口才能重新录制。
+需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2380,7 +2423,7 @@ reset(callback: AsyncCallback\<void>): void;
 
 异步方式重置视频录制。通过注册回调函数获取返回值。
 
-需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)接口才能重新录制。
+需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2409,7 +2452,7 @@ reset(): Promise\<void>;
 
 异步方式重置视频录制。通过Promise获取返回值。
 
-需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface8)接口才能重新录制。
+需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2434,7 +2477,7 @@ videoRecorder.reset().then(() => {
 
 on(type: 'error', callback: ErrorCallback): void
 
-开始订阅视频录制错误事件。
+开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。
 
 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder
 
@@ -2484,7 +2527,7 @@ videoRecorder.on('error', (error) => {                                  // 设
 | profile         | [VideoRecorderProfile](#videorecorderprofile9) | 是   | 视频录制的profile。                                          |
 | rotation        | number                                         | 否   | 录制视频的旋转角度。                                         |
 | location        | [Location](#location)                          | 否   | 录制视频的地理位置。                                         |
-| url             | string                                         | 是   | 视频输出URL:fd://xx&nbsp;(fd&nbsp;number)<br/>![](figures/zh-cn_image_url.png) <br/>文件需要由调用者创建,并赋予适当的权限。 |
+| url             | string                                         | 是   | 视频输出URL:fd://xx&nbsp;(fd&nbsp;number)<br/>![](figures/zh-cn_image_url.png) <br/>**需要权限:** ohos.permission.READ_MEDIA; |
 
 ## AudioSourceType<sup>9+</sup>
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md b/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md
index 3b407a460442bb4efb95fc1ff80e45d0a2e30cac..79e539d30e5f18e0a468e6e05cc000ba66115c20 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md
@@ -14,6 +14,8 @@ getMediaLibrary(context: Context): MediaLibrary
 
 获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
 
+此接口仅可在Stage模型下使用。
+
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
 **参数:** 
@@ -48,6 +50,8 @@ getMediaLibrary(): MediaLibrary
 
 获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
 
+此接口仅可在FA模型下使用。
+
 > **说明**: 从API Version 8开始,该接口不再维护,推荐使用新接口[mediaLibrary.getMediaLibrary<sup>8+</sup>](#medialibrarygetmedialibrary8)。
 
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
@@ -98,7 +102,9 @@ media.getFileAssets(imagesfetchOp, (error, fetchFileResult) => {
         console.info('mediaLibraryTest : ASSET_CALLBACK fetchFileResult success');
         fetchFileResult.getAllObject((err, fileAssetList) => {
             if (fileAssetList != undefined) {
-                fileAssetList.forEach(getAllObjectInfo);
+                fileAssetList.forEach(function(getAllObjectInfo){
+                    console.info("getAllObjectInfo.displayName :" + getAllObjectInfo.displayName);
+                });
             }
     	});
     }
@@ -136,7 +142,7 @@ let imagesfetchOp = {
     selectionArgs: [imageType.toString()],
 };
 media.getFileAssets(imagesfetchOp).then(function(fetchFileResult){
-    console.info("getFileAssets successfully:"+ JSON.stringify(dir));
+    console.info("getFileAssets successfully: image number is "+ fetchFileResult.getCount());
 }).catch(function(err){
     console.info("getFileAssets failed with error:"+ err);
 });
@@ -160,7 +166,7 @@ on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|
 **示例:**
 
 ```
-mediaLibrary.on('imageChange', () => {
+media.on('imageChange', () => {
     // image file had changed, do something
 })
 ```
@@ -251,17 +257,12 @@ createAsset(mediaType: MediaType, displayName: string, relativePath: string): Pr
 **示例:**
 
 ```
-async function example() {
-    // 使用Promise方式创建Image类型文件
-    let mediaType = mediaLibrary.MediaType.IMAGE;
-    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
-    const path = await media.getPublicDirectory(DIR_IMAGE);
-    media.createAsset(mediaType, "image01.jpg", path + 'myPicture/').then (function (asset) {
-        console.info("createAsset successfully:"+ JSON.stringify(asset));
-    }).catch(function(err){
-        console.info("createAsset failed with error:"+ err);
-    });
-}
+let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
+media.getPublicDirectory(DIR_CAMERA).then(function(dicResult){
+    console.info("getPublicDirectory successfully:"+ JSON.stringify(dicResult));
+}).catch(function(err){
+    console.info("getPublicDirectory failed with error:"+ err);
+});
 ```
 
 ### getPublicDirectory<sup>8+</sup>
@@ -665,7 +666,7 @@ startMediaSelect(option: MediaSelectOption, callback: AsyncCallback&lt;Array&lt;
 
   ```
 let option = {
-    type : "image",
+    type : "media",
     count : 2
 };
 mediaLibrary.getMediaLibrary().startMediaSelect(option, (err, value) => {
@@ -705,7 +706,7 @@ startMediaSelect(option: MediaSelectOption): Promise&lt;Array&lt;string&gt;&gt;
 
   ```
 let option = {
-    type : "image",
+    type : "media",
     count : 2
 };
 mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
@@ -770,6 +771,7 @@ isDirectory(callback: AsyncCallback&lt;boolean&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -805,6 +807,7 @@ isDirectory():Promise&lt;boolean&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -842,6 +845,7 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -878,6 +882,7 @@ commitModify(): Promise&lt;void&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -900,7 +905,7 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void
 
 **注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放
 
-**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
+**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -918,7 +923,7 @@ async function example() {
     let mediaType = mediaLibrary.MediaType.IMAGE;
     let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
     const path = await media.getPublicDirectory(DIR_IMAGE);
-    asset = await media.createAsset(mediaType, "image00003.jpg", path);
+    const asset = await media.createAsset(mediaType, "image00003.jpg", path);
     asset.open('rw', (openError, fd) => {
             if(fd > 0){
                 asset.close(fd);
@@ -937,7 +942,7 @@ open(mode: string): Promise&lt;number&gt;
 
 **注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放
 
-**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
+**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -960,7 +965,7 @@ async function example() {
     let mediaType = mediaLibrary.MediaType.IMAGE;
     let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
     const path = await media.getPublicDirectory(DIR_IMAGE);
-    asset = await media.createAsset(mediaType, "image00003.jpg", path);
+    const asset = await media.createAsset(mediaType, "image00003.jpg", path);
     asset.open('rw')
         .then((fd) => {
             console.info('File fd!' + fd);
@@ -977,7 +982,7 @@ close(fd: number, callback: AsyncCallback&lt;void&gt;): void
 
 关闭当前文件,使用callback方式返回异步结果。
 
-**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
+**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -992,6 +997,7 @@ close(fd: number, callback: AsyncCallback&lt;void&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1001,13 +1007,19 @@ async function example() {
     };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
-    asset.close(fd, (closeErr) => {
-        if (closeErr != undefined) {
-            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
-            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
-        } else {
-            console.info("=======asset.close success====>");
-        }
+    asset.open('rw').then((fd) => {
+        console.info('File fd!' + fd);
+        asset.close(fd, (closeErr) => {
+            if (closeErr != undefined) {
+                console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
+                console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
+            } else {
+                console.info("=======asset.close success====>");
+            }
+        });
+    })
+    .catch((err) => {
+        console.info('File err!' + err);
     });
 }
 ```
@@ -1018,7 +1030,7 @@ close(fd: number): Promise&lt;void&gt;
 
 关闭当前文件,使用promise方式返回异步结果。
 
-**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
+**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
 
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
@@ -1038,6 +1050,7 @@ close(fd: number): Promise&lt;void&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1047,14 +1060,20 @@ async function example() {
     };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
-    asset.close(fd).then((closeErr) => {
-        if (closeErr != undefined) {
-            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
-            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
+    asset.open('rw').then((fd) => {
+        console.info('File fd!' + fd);
+        asset.close(fd).then((closeErr) => {
+            if (closeErr != undefined) {
+                console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
+                console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
 
-        } else {
-            console.info("=======asset.close success====>");
-        }
+            } else {
+                console.info("=======asset.close success====>");
+            }
+        });
+    })
+    .catch((err) => {
+        console.info('File err!' + err);
     });
 }
 ```
@@ -1079,6 +1098,7 @@ getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1115,6 +1135,7 @@ getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1122,6 +1143,7 @@ async function example() {
       order: fileKeyObj.DATE_ADDED + " DESC",
       extendArgs: "",
     };
+    let size = { width: 720, height: 720 };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
     asset.getThumbnail(size, (err, pixelmap) => {
@@ -1156,6 +1178,7 @@ getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
         selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1163,6 +1186,7 @@ async function example() {
         order: fileKeyObj.DATE_ADDED + " DESC",
         extendArgs: "",
     };
+    let size = { width: 720, height: 720 };
     const fetchFileResult = await media.getFileAssets(getImageOp);
     const asset = await fetchFileResult.getFirstObject();
     asset.getThumbnail(size)
@@ -1196,6 +1220,7 @@ favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1237,6 +1262,7 @@ favorite(isFavorite: boolean): Promise&lt;void&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1274,6 +1300,7 @@ isFavorite(callback: AsyncCallback&lt;boolean&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1313,6 +1340,7 @@ isFavorite():Promise&lt;boolean&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1353,6 +1381,7 @@ trash(isTrash: boolean, callback: AsyncCallback&lt;void&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1397,6 +1426,7 @@ trash(isTrash: boolean): Promise&lt;void&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1434,6 +1464,7 @@ isTrash(callback: AsyncCallback&lt;boolean&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1447,7 +1478,7 @@ async function example() {
     function isTrashCallBack(err, isTrash) {
             if (isTrash == true) {
                 console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash);
-                asset.trash(true, trashCallBack);
+                asset.trash(true, istrashCallBack);
 
             } else {
                 console.info('mediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err);
@@ -1478,6 +1509,7 @@ isTrash():Promise&lt;boolean&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1517,6 +1549,8 @@ getCount(): number
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
+    let fileType = mediaLibrary.MediaType.FILE;
     let getFileCountOneOp = {
         selections: fileKeyObj.MEDIA_TYPE + '= ?',
         selectionArgs: [fileType.toString()],
@@ -1546,6 +1580,7 @@ isAfterLast(): boolean
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1583,6 +1618,7 @@ close(): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1613,6 +1649,7 @@ getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1621,12 +1658,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getFirstObject((err, value) => {
+    fetchFileResult.getFirstObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1649,6 +1686,7 @@ getFirstObject(): Promise&lt;FileAsset&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1671,8 +1709,6 @@ async function example() {
 
 获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。
 
-**需要权限**:ohos.permission.READ_MEDIA
-
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
 **参数**:
@@ -1685,6 +1721,7 @@ async function example() {
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1693,12 +1730,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getNextObject((err, value) => {
+    fetchFileResult.getNextObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1709,8 +1746,6 @@ async function example() {
 
 获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回FileAsset。
 
-**需要权限**:ohos.permission.READ_MEDIA
-
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
 **返回值**:
@@ -1723,6 +1758,7 @@ async function example() {
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1733,7 +1769,7 @@ async function example() {
     let fetchFileResult = await media.getFileAssets(getImageOp);
     const fetchCount = fetchFileResult.getCount();
     console.info('mediaLibraryTest : count:' + fetchCount);
-    fileAsset = await fetchFileResult.getNextObject();
+    let fileAsset = await fetchFileResult.getNextObject();
 }
 ```
 
@@ -1755,6 +1791,7 @@ getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1763,12 +1800,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getLastObject((err, value) => {
+    fetchFileResult.getLastObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1791,6 +1828,7 @@ getLastObject(): Promise&lt;FileAsset&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1822,6 +1860,7 @@ getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1830,12 +1869,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getPositionObject(0, (err, value) => {
+    fetchFileResult.getPositionObject(0, (err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1846,8 +1885,6 @@ getPositionObject(index: number): Promise&lt;FileAsset&gt;
 
 获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。
 
-**需要权限**:ohos.permission.READ_MEDIA
-
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
 **参数**:
@@ -1866,6 +1903,7 @@ getPositionObject(index: number): Promise&lt;FileAsset&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1874,13 +1912,11 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getPositionObject(1, (err, value) => {
-       if (err) {
-           console.error('Failed ');
-           return;
-       }
-       console.log(value);
-    })
+    fetchFileResult.getPositionObject(1) .then(function (fileAsset){
+        console.log('[Demo] fileAsset.displayName : ' + fileAsset.displayName);
+    }).catch(function (err) {
+        console.info("[Demo] getFileAssets failed with error:" + err);
+    });
 }
 ```
 
@@ -1890,8 +1926,6 @@ getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
 
 获取文件检索结果中的所有文件资产。此方法使用Callback回调来返回FileAsset结果集。
 
-**需要权限**:ohos.permission.READ_MEDIA
-
 **系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
 
 **参数**:
@@ -1904,6 +1938,7 @@ getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -1912,12 +1947,12 @@ async function example() {
       extendArgs: "",
     };
     let fetchFileResult = await media.getFileAssets(getImageOp);
-    fetchFileResult.getAllObject((err, value) => {
+    fetchFileResult.getAllObject((err, fileAsset) => {
        if (err) {
            console.error('Failed ');
            return;
        }
-       console.log(value);
+       console.log('fileAsset.displayName : ' + fileAsset.displayName);
     })
 }
 ```
@@ -1940,6 +1975,7 @@ getAllObject(): Promise&lt;Array&lt;FileAsset&gt;&gt;
 
 ```
 async function example() {
+    let fileKeyObj = mediaLibrary.FileKey
     let imageType = mediaLibrary.MediaType.IMAGE;
     let getImageOp = {
       selections: fileKeyObj.MEDIA_TYPE + '= ?',
@@ -2067,6 +2103,10 @@ async function example() {
         selections: '',
         selectionArgs: [],
     };
+    let fileNoArgsfetchOp = {
+    selections: '',
+    selectionArgs: [],
+    }
     const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
     const album = albumList[0];
     album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
@@ -2106,6 +2146,10 @@ async function example() {
         selections: '',
         selectionArgs: [],
     };
+    let fileNoArgsfetchOp = {
+    selections: '',
+    selectionArgs: [],
+    }
     const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
     const album = albumList[0];
     album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){
@@ -2119,8 +2163,9 @@ async function example() {
 ## PeerInfo<sup>8+</sup>
 
 注册设备的信息。
+此接口为系统接口。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
 
 | 名称       | 类型                       | 可读 | 可写 | 说明             |
 | ---------- | -------------------------- | ---- | ---- | ---------------- |
@@ -2165,7 +2210,7 @@ async function example() {
 | TITLE         | title               | 文件标题                                                   |
 | ARTIST        | artist              | 作者                                                       |
 | AUDIOALBUM    | audio_album         | 专辑                                                       |
-| DURATION      | duration            | 持续时间(单位:秒)                                       |
+| DURATION      | duration            | 持续时间(单位:毫秒)                                       |
 | WIDTH         | width               | 图片宽度(单位:像素)                                     |
 | HEIGHT        | height              | 图片高度(单位:像素)                                     |
 | ORIENTATION   | orientation         | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) |
@@ -2190,8 +2235,9 @@ async function example() {
 ## DeviceType<sup>8+</sup>
 
 枚举,设备类型。
+此接口为系统接口。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
 
 | 名称         |  说明       |
 | ------------ |  ---------- |
@@ -2221,6 +2267,7 @@ async function example() {
 ## Size<sup>8+</sup>
 
 图片尺寸。
+系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
 
 | 名称     | 类型     | 可读   | 可写   | 说明       |
 | ------ | ------ | ---- | ---- | -------- |
@@ -2253,4 +2300,5 @@ async function example() {
 | 名称    | 类型     | 必填   | 描述                   |
 | ----- | ------ | ---- | -------------------- |
 | type  | string | 是    | 媒体类型,包括:image, video, media,当前仅支持media类型 |
-| count | number | 是    | 媒体选择,count = 1表示单选,count大于1表示多选。            |
\ No newline at end of file
+| count | number | 是    | 媒体选择,count = 1表示单选,count大于1表示多选。            |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md b/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md
index 0b6e423c1731de71958ee1a18e21db2da46c09f9..aef2af9a2b4a2f402df7673594865bb815990582 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md
@@ -3,6 +3,7 @@
 提供根据不同媒体类型定义不同的样式。
 
 > **说明:**
+>
 > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
@@ -118,7 +119,7 @@ off(type: 'change', callback?: Callback&lt;MediaQueryResult&gt;): void
 
 ### 示例
 
-```js
+```ts
 import mediaquery from '@ohos.mediaquery'
 
 let portraitFunc = null
diff --git a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md
index af0eb8d91ab0f4e8e42a3021a95edac2f3c8d34d..bb2deac5e536bae5841fd28fd6fe1c112df1b801 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md
@@ -362,6 +362,88 @@ getMissionSnapShot(deviceId: string, missionId: number): Promise&lt;MissionSnaps
     });
   ```
 
+## missionManager.getLowResolutionMissionSnapShot<sup>9+</sup>
+
+getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\<MissionSnapshot>): void;
+
+使用给定的任务ID获取任务低分辨率快照。
+
+**需要权限**:ohos.permission.MANAGE_MISSIONS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
+  | missionId | number | 是 | 任务ID。 |
+  | callback | AsyncCallback&lt;[MissionSnapshot](js-apis-application-MissionSnapshot.md)&gt; | 是 | 执行结果回调函数,返回任务快照信息。 |
+
+**示例:**
+
+  ```js
+  import missionManager from '@ohos.application.missionManager'
+
+  missionManager.getMissionInfos("", 10, (error, missions) => {
+    console.log("getMissionInfos is called, error.code = " + error.code);
+    console.log("size = " + missions.length);
+    console.log("missions = " + JSON.stringify(missions));
+    var id = missions[0].missionId;
+
+    missionManager.getLowResolutionMissionSnapShot("", id, (error, snapshot) => {
+  	console.log("getLowResolutionMissionSnapShot is called, error.code = " + error.code);
+  	console.log("bundleName = " + snapshot.ability.bundleName);
+  })
+  })
+  ```
+
+
+## missionManager.getLowResolutionMissionSnapShot<sup>9+</sup>
+
+getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\<MissionSnapshot>;
+
+使用给定的任务ID获取任务低分辨率快照。
+
+**需要权限**:ohos.permission.MANAGE_MISSIONS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
+  | missionId | number | 是 | 任务ID。 |
+
+**返回值:**
+
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;[MissionSnapshot](js-apis-application-MissionSnapshot.md)&gt; | 任务快照信息。 |
+
+**示例:**
+
+  ```js
+  import missionManager from '@ohos.application.missionManager'
+
+  var allMissions;
+  missionManager.getMissionInfos("",10).then(function(res){
+    allMissions=res;
+    }).catch(function(err){console.log(err);});
+    console.log("size = " + allMissions.length);
+    console.log("missions = " + JSON.stringify(allMissions));
+    var id = allMissions[0].missionId;
+
+    var snapshot = missionManager.getLowResolutionMissionSnapShot("", id).catch(function (err){
+        console.log(err);
+    });
+  ```
+
 
 ## missionManager.lockMission
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-mouseevent.md b/zh-cn/application-dev/reference/apis/js-apis-mouseevent.md
index 1262a33512efbf4c1678cac176733b27611fe8a1..b47a5d9bd5dcfaaae274b736ec7cf3052eb22703 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-mouseevent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-mouseevent.md
@@ -2,7 +2,7 @@
 
 设备上报的鼠标事件。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -13,77 +13,77 @@ import {Action,Button,Axis,AxisValue,MouseEvent} from '@ohos.multimodalInput.mou
 
 ## Action
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| CANCEL | number | 是 | 否 | 取消 |
-| MOVE | number | 是 | 否 | 鼠标移动 |
-| BUTTON_DOWN | number | 是 | 否 | 鼠标按钮按下 |
-| BUTTON_UP | number | 是 | 否 | 鼠标按钮抬起 |
-| AXIS_BEGIN | number | 是 | 否 | 鼠标关联的轴事件开始 |
-| AXIS_UPDATE | number | 是 | 否 | 鼠标关联的轴事件更新 |
-| AXIS_END | number | 是 | 否 | 鼠标关联的轴事件结束 |
+| 名称          | 参数类型   | 可读   | 可写   | 描述         |
+| ----------- | ------ | ---- | ---- | ---------- |
+| CANCEL      | number | 是    | 否    | 取消         |
+| MOVE        | number | 是    | 否    | 鼠标移动       |
+| BUTTON_DOWN | number | 是    | 否    | 鼠标按钮按下     |
+| BUTTON_UP   | number | 是    | 否    | 鼠标按钮抬起     |
+| AXIS_BEGIN  | number | 是    | 否    | 鼠标关联的轴事件开始 |
+| AXIS_UPDATE | number | 是    | 否    | 鼠标关联的轴事件更新 |
+| AXIS_END    | number | 是    | 否    | 鼠标关联的轴事件结束 |
 
 
 ## Button
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| LEFT | number | 是 | 否 | 鼠标左键 |
-| MIDDLE | number | 是 | 否 | 鼠标中键 |
-| RIGHT | number | 是 | 否 | 鼠标右键 |
-| SIDE | number | 是 | 否 | 鼠标侧边键 |
-| EXTRA | number | 是 | 否 | 鼠标扩展键 |
-| FORWARD | number | 是 | 否 | 鼠标前进键 |
-| BACK | number | 是 | 否 | 鼠标后退键 |
-| TASK | number | 是 | 否 | 鼠标任务键 |
+| 名称      | 参数类型   | 可读   | 可写   | 描述    |
+| ------- | ------ | ---- | ---- | ----- |
+| LEFT    | number | 是    | 否    | 鼠标左键  |
+| MIDDLE  | number | 是    | 否    | 鼠标中键  |
+| RIGHT   | number | 是    | 否    | 鼠标右键  |
+| SIDE    | number | 是    | 否    | 鼠标侧边键 |
+| EXTRA   | number | 是    | 否    | 鼠标扩展键 |
+| FORWARD | number | 是    | 否    | 鼠标前进键 |
+| BACK    | number | 是    | 否    | 鼠标后退键 |
+| TASK    | number | 是    | 否    | 鼠标任务键 |
 
 ## Axis
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| SCROLL_VERTICAL | number | 是 | 否 | 垂直滚动轴 |
-| SCROLL_HORIZONTAL | number | 是 | 否 | 水平滚动轴 |
-| PINCH | number | 是 | 否 | 捏合轴 |
+| 名称                | 参数类型   | 可读   | 可写   | 描述    |
+| ----------------- | ------ | ---- | ---- | ----- |
+| SCROLL_VERTICAL   | number | 是    | 否    | 垂直滚动轴 |
+| SCROLL_HORIZONTAL | number | 是    | 否    | 水平滚动轴 |
+| PINCH             | number | 是    | 否    | 捏合轴   |
 
 
 ## AxisValue
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| axis | Axis | 是 | 否 | 轴类型 |
-| value | number | 是 | 否 | 轴的值 |
+| 名称    | 参数类型   | 可读   | 可写   | 描述   |
+| ----- | ------ | ---- | ---- | ---- |
+| axis  | Axis   | 是    | 否    | 轴类型  |
+| value | number | 是    | 否    | 轴的值  |
 
 
 ## MouseEvent
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
-
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| action | Action | 是 | 否 | 鼠标事件动作 |
-| screenX | number | 是 | 否 | 鼠标光标在屏幕中的x坐标 |
-| screenY | number | 是 | 否 | 鼠标光标在屏幕中的y坐标 |
-| windowX | number | 是 | 否 | 鼠标归属窗口的x坐标 |
-| windowY | number | 是 | 否 | 鼠标归属窗口的y坐标 |
-| rawDeltaX | number | 是 | 否 | X轴相对上次上报鼠标位置的偏移,在屏幕边缘位置时,该值可能小于两次鼠标上报的坐标差 |
-| rawDeltaY | number | 是 | 否 | Y轴相对上次上报鼠标位置的偏移 |
-| button | Button | 是 | 否 | 当前按下/抬起的按钮 |
-| pressedButtons | Button[] | 是 | 否 | 当前处于按下状态的按钮 |
-| axes | AxisValue[] | 是 | 否 | 事件包含的所有轴数据 |
-| pressedKeys | KeyCode[] | 是 | 否 | 当前处于按下状态的按键列表 |
-| ctrlKey | boolean | 是 | 否 | 当前ctrlKey是否处于按下状态 |
-| altKey | boolean | 是 | 否 | 当前altKey是否处于按下状态 |
-| shiftKey | boolean | 是 | 否 | 当前shiftKey是否处于按下状态 |
-| logoKey | boolean | 是 | 否 | 当前logoKey是否处于按下状态 |
-| fnKey | boolean | 是 | 否 | 当前fnKey是否处于按下状态 |
-| capsLock | boolean | 是 | 否 | 当前capsLock是否处于激活状态 |
-| numLock | boolean | 是 | 否 | 当前numLock是否处于激活状态 |
-| scrollLock | boolean | 是 | 否 | 当前scrollLock是否处于激活状态 |
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
+
+| 名称             | 参数类型        | 可读   | 可写   | 描述                                       |
+| -------------- | ----------- | ---- | ---- | ---------------------------------------- |
+| action         | Action      | 是    | 否    | 鼠标事件动作                                   |
+| screenX        | number      | 是    | 否    | 鼠标光标在屏幕中的x坐标                             |
+| screenY        | number      | 是    | 否    | 鼠标光标在屏幕中的y坐标                             |
+| windowX        | number      | 是    | 否    | 鼠标归属窗口的x坐标                               |
+| windowY        | number      | 是    | 否    | 鼠标归属窗口的y坐标                               |
+| rawDeltaX      | number      | 是    | 否    | X轴相对上次上报鼠标位置的偏移,在屏幕边缘位置时,该值可能小于两次鼠标上报的坐标差 |
+| rawDeltaY      | number      | 是    | 否    | Y轴相对上次上报鼠标位置的偏移                          |
+| button         | Button      | 是    | 否    | 当前按下/抬起的按钮                               |
+| pressedButtons | Button[]    | 是    | 否    | 当前处于按下状态的按钮                              |
+| axes           | AxisValue[] | 是    | 否    | 事件包含的所有轴数据                               |
+| pressedKeys    | KeyCode[]   | 是    | 否    | 当前处于按下状态的按键列表                            |
+| ctrlKey        | boolean     | 是    | 否    | 当前ctrlKey是否处于按下状态                        |
+| altKey         | boolean     | 是    | 否    | 当前altKey是否处于按下状态                         |
+| shiftKey       | boolean     | 是    | 否    | 当前shiftKey是否处于按下状态                       |
+| logoKey        | boolean     | 是    | 否    | 当前logoKey是否处于按下状态                        |
+| fnKey          | boolean     | 是    | 否    | 当前fnKey是否处于按下状态                          |
+| capsLock       | boolean     | 是    | 否    | 当前capsLock是否处于激活状态                       |
+| numLock        | boolean     | 是    | 否    | 当前numLock是否处于激活状态                        |
+| scrollLock     | boolean     | 是    | 否    | 当前scrollLock是否处于激活状态                     |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md
index 4f07a3ff32c1bf2873b4ba4415d852ecd5be6f69..2e77f939b7aecb764479e398adec859ce0b0cc04 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md
@@ -3,7 +3,7 @@
 本模块主要用于操作及管理NFC。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## **导入模块**
@@ -19,6 +19,8 @@ isNfcAvailable(): boolean
 
 查询是否有NFC功能
 
+**系统能力**:SystemCapability.Communication.NFC.Core
+
 **返回值:**
 
 | **类型** | **说明** |
@@ -34,7 +36,7 @@ openNfc(): boolean
 
 **需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -50,7 +52,7 @@ closeNfc(): boolean
 
 **需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -64,7 +66,7 @@ isNfcOpen(): boolean
 
 查询NFC是否打开。
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -78,7 +80,7 @@ getNfcState(): NfcState
 
 查询NFC状态。
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -92,7 +94,7 @@ on(type: "nfcStateChange", callback: Callback&lt;NfcState&gt;): void
 
 注册NFC开关状态事件。
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **参数**
   
@@ -109,7 +111,7 @@ off(type: "nfcStateChange", callback?: Callback&lt;NfcState&gt;): void
 
 取消NFC开关状态事件的注册。
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **参数**
   
@@ -140,6 +142,8 @@ off(type: "nfcStateChange", callback?: Callback&lt;NfcState&gt;): void
 
 表示NFC状态的枚举。
 
+**系统能力**:SystemCapability.Communication.NFC.Core
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | STATE_OFF | 1 | NFC关闭状态 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md
index 87fc40e6959e3da7907f5f70ab18f26893e13854..94550568a43da3bf71c1313b18d8a6a6cd1eafbd 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md
@@ -3,7 +3,7 @@
 本模块主要用于操作及管理NFC Tag。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 
 ## **导入模块**
@@ -21,7 +21,7 @@ getNfcATag(tagInfo: TagInfo): NfcATag
 
 **需要权限**:ohos.permission.NFC_TAG
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -37,7 +37,7 @@ getNfcBTag(tagInfo: TagInfo): NfcBTag
 
 **需要权限**:ohos.permission.NFC_TAG
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -53,7 +53,7 @@ getNfcFTag(tagInfo: TagInfo): NfcFTag
 
 **需要权限**:ohos.permission.NFC_TAG
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
@@ -69,10 +69,10 @@ getNfcVTag(tagInfo: TagInfo): NfcVTag
 
 **需要权限**:ohos.permission.NFC_TAG
 
-**系统能力**:SystemCapability.Communication.NFC
+**系统能力**:SystemCapability.Communication.NFC.Core
 
 **返回值:**
 
 | **类型** | **说明**         |
 | -------- | ---------------- |
-| NfcVTag  | NFC V类型Tag对象 |
\ No newline at end of file
+| NfcVTag  | NFC V类型Tag对象 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-notification.md b/zh-cn/application-dev/reference/apis/js-apis-notification.md
index 3684393fab272c6769669dd027498494fcd601cf..2288f0e23c7256f13c7a8daabd37d033ed1c9fd7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-notification.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-notification.md
@@ -2571,7 +2571,7 @@ Notification.enableDistributedByBundle(bundle, enable, enableDistributedByBundle
 
 ## Notification.enableDistributedByBundle<sup>8+</sup>
 
-bundleenableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\<void>
+enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\<void>
 
 根据应用的包设置应用程序是否支持分布式通知(Promise形式)。
 
@@ -2897,7 +2897,7 @@ Notification.cancelAsBundle(0, representativeBundle, userId).then(() => {
 
 ## Notification.enableNotificationSlot <sup>9+</sup>
 
-enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean, callback: AsyncCallback<void>): void
+enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean, callback: AsyncCallback\<void>): void
 
 设定指定类型的渠道使能状态(Callback形式)。
 
@@ -2905,6 +2905,8 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean, ca
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
 **参数:**
 
 | 参数名   | 类型                          | 必填 | 说明                   |
@@ -2924,14 +2926,14 @@ function enableSlotCallback(err) {
 
 Notification.enableNotificationSlot(
     { bundle: "ohos.samples.notification", },
-    notify.SlotType.SOCIAL_COMMUNICATION,
+    Notification.SlotType.SOCIAL_COMMUNICATION,
     true,
     enableSlotCallback);
 ```
 
 ## Notification.enableNotificationSlot <sup>9+</sup>
 
-enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): Promise<void> 
+enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): Promise\<void> 
 
 设定指定类型的渠道使能状态(Promise形式)。
 
@@ -2939,6 +2941,8 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): P
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
 **参数:**
 
 | 参数名 | 类型                          | 必填 | 说明           |
@@ -2953,7 +2957,7 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): P
 //enableNotificationSlot
 Notification.enableNotificationSlot(
     { bundle: "ohos.samples.notification", },
-    notify.SlotType.SOCIAL_COMMUNICATION,
+    Notification.SlotType.SOCIAL_COMMUNICATION,
     true).then(() => {
         console.log('====================>enableNotificationSlot====================>');
     });
@@ -2961,7 +2965,7 @@ Notification.enableNotificationSlot(
 
 ## Notification.isNotificationSlotEnabled <sup>9+</sup>
 
-isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncCallback<boolean>): void
+isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncCallback\<boolean\>): void
 
 获取指定类型的渠道使能状态(Callback形式)。
 
@@ -2969,13 +2973,15 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncC
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
 **参数:**
 
 | 参数名   | 类型                          | 必填 | 说明                   |
 | -------- | ----------------------------- | ---- | ---------------------- |
 | bundle   | [BundleOption](#bundleoption) | 是   | 指定包信息。           |
 | type     | [SlotType](#slottype)         | 是   | 指定渠道类型。         |
-| callback | AsyncCallback\<void\>         | 是   | 设定渠道使能回调函数。 |
+| callback | AsyncCallback\<boolean\>         | 是   | 设定渠道使能回调函数。 |
 
 **示例:**
 
@@ -2987,13 +2993,13 @@ function getEnableSlotCallback(err, data) {
 
 Notification.isNotificationSlotEnabled(
     { bundle: "ohos.samples.notification", },
-    notify.SlotType.SOCIAL_COMMUNICATION,
+    Notification.SlotType.SOCIAL_COMMUNICATION,
     getEnableSlotCallback);
 ```
 
 ## Notification.isNotificationSlotEnabled <sup>9+</sup>
 
-isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise<boolean>  
+isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise\<boolean\>  
 
 获取指定类型的渠道使能状态(Promise形式)。
 
@@ -3001,6 +3007,8 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise<boolean
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
 
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
 **参数:**
 
 | 参数名 | 类型                          | 必填 | 说明           |
@@ -3008,18 +3016,166 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise<boolean
 | bundle | [BundleOption](#bundleoption) | 是   | 指定包信息。   |
 | type   | [SlotType](#slottype)         | 是   | 指定渠道类型。 |
 
+**返回值:**
+
+| 类型                                                        | 说明                                                         |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| Promise\<boolean\> | 以Promise形式返回指定类型的渠道使能状态。 |
+
 **示例:**
 
 ```js
 //isNotificationSlotEnabled
 Notification.isNotificationSlotEnabled(
     { bundle: "ohos.samples.notification", },
-    notify.SlotType.SOCIAL_COMMUNICATION,
-    true).then((data) => {
+    Notification.SlotType.SOCIAL_COMMUNICATION
+    ).then((data) => {
       console.log('====================>isNotificationSlotEnabled====================>');
     });
 ```
 
+
+## Notification.setSyncNotificationEnabledForUninstallApp<sup>9+</sup>
+
+setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean, callback: AsyncCallback\<void\>): void
+
+设置是否将通知同步到未安装应用程序的设备(callback形式)。
+
+**系统能力**:SystemCapability.Notification.Notification
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
+**参数:**
+
+| 参数名 | 类型                          | 必填 | 说明           |
+| ------ | ----------------------------- | ---- | -------------- |
+| userId | number | 是   | 用户Id。   |
+| enable   | boolean         | 是   | 是否将通知同步到未安装应用程序的设备。true:是。false:否。 |
+| callback | AsyncCallback\<void\>         | 是   | 设置是否将通知同步到未安装应用程序的设备的回调函数。 |
+
+**示例:**
+
+```js
+let userId = 100;
+let enable = true;
+
+function setSyncNotificationEnabledForUninstallAppCallback(err) {
+    console.log('setSyncNotificationEnabledForUninstallAppCallback');
+}
+
+Notification.setSyncNotificationEnabledForUninstallApp(userId, enable, setSyncNotificationEnabledForUninstallAppCallback);
+```
+
+
+## Notification.setSyncNotificationEnabledForUninstallApp<sup>9+</sup>
+
+setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean): Promise\<void>
+
+设置是否将通知同步到未安装应用程序的设备(Promise形式)。
+
+**系统能力**:SystemCapability.Notification.Notification
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
+**参数:**
+
+| 参数名 | 类型                          | 必填 | 说明           |
+| ------ | ----------------------------- | ---- | -------------- |
+| userId | number | 是   | 用户Id。   |
+| enable   | boolean         | 是   | 是否将通知同步到未安装应用程序的设备。true:是。false:否。 |
+
+**示例:**
+
+```js
+let userId = 100;
+let enable = true;
+
+Notification.setSyncNotificationEnabledForUninstallApp(userId, enable)
+    .then((data) => {
+        console.log('setSyncNotificationEnabledForUninstallApp, data:', data);
+    })
+    .catch((err) => {
+        console.log('setSyncNotificationEnabledForUninstallApp, err:', err);
+    });
+```
+
+
+## Notification.getSyncNotificationEnabledForUninstallApp<sup>9+</sup>
+
+getSyncNotificationEnabledForUninstallApp(userId: number, callback: AsyncCallback\<boolean>): void
+
+获取是否同步通知到未安装应用程序的设备的结果(callback形式)。
+
+**系统能力**:SystemCapability.Notification.Notification
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
+**参数:**
+
+| 参数名 | 类型                          | 必填 | 说明           |
+| ------ | ----------------------------- | ---- | -------------- |
+| userId | number | 是   | 用户Id。   |
+| callback | AsyncCallback\<boolean\>    | 是   | 获取是否同步通知到未安装应用程序的设备的结果的回调函数。true:是。false:否。 |
+
+**示例:**
+
+```js
+let userId = 100;
+
+function getSyncNotificationEnabledForUninstallAppCallback(err, data) {
+    console.log('getSyncNotificationEnabledForUninstallAppCallback, data: ', data);
+}
+
+Notification.getSyncNotificationEnabledForUninstallApp(userId, getSyncNotificationEnabledForUninstallAppCallback);
+```
+
+
+## Notification.getSyncNotificationEnabledForUninstallApp<sup>9+</sup>
+
+getSyncNotificationEnabledForUninstallApp(userId: number): Promise\<boolean>
+
+获取是否同步通知到未安装应用程序的设备的结果(Promise形式)。
+
+**系统能力**:SystemCapability.Notification.Notification
+
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
+**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER
+
+**参数:**
+
+| 参数名 | 类型                          | 必填 | 说明           |
+| ------ | ----------------------------- | ---- | -------------- |
+| userId | number | 是   | 用户Id。   |
+
+**返回值:**
+
+| 类型                                                        | 说明                                                         |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| Promise\<boolean\> | 以Promise形式返回获取是否同步通知到未安装应用程序的设备的结果。true:是。false:否。 |
+
+**示例:**
+
+```js
+let userId = 100;
+
+Notification.getSyncNotificationEnabledForUninstallApp(userId)
+    .then((data) => {
+        console.log('getSyncNotificationEnabledForUninstallApp, data: ', data);
+    })
+    .catch((err) => {
+        console.log('getSyncNotificationEnabledForUninstallApp, err: ', err);
+    });
+```
+
+
+
 ## NotificationSubscriber
 
 **系统API**:此接口为系统接口,三方应用不支持调用。
@@ -3582,6 +3738,8 @@ Notification.subscribe(subscriber, subscribeCallback);
 | distributedOption<sup>8+</sup>   | 是  | 是  | [DistributedOptions](#distributedoptions8)                 | 否   | 分布式通知的选项。          |
 | deviceId<sup>8+</sup> | 是  | 否  | string                                        | 否   | 通知源的deviceId。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。          |
 | notificationFlags<sup>8+</sup> | 是  | 否  | [NotificationFlags](#notificationflags8)                    | 否   | 获取NotificationFlags。          |
+| removalWantAgent<sup>9+</sup> | 是  | 是  | WantAgent                    | 否   | 当移除通知时,通知将被重定向到的WantAgent实例。          |
+| badgeNumber<sup>9+</sup> | 是  | 是  | number                    | 否   | 应用程序图标上显示的通知数。          |
 
 
 ## DistributedOptions<sup>8+</sup>
diff --git a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md
index 9582d405e98c3e59c78cc3da3feb1dcdcdd54751..ae0ade3187e9075470956d16854e688dadd0e1d7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md
@@ -801,7 +801,7 @@ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCall
 
 | 参数名     | 类型                                    | 必填 | 说明                                         |
 | ---------- | --------------------------------------- | ---- | -------------------------------------------- |
-| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是   | 域帐号信息。                                 |
+| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是   | 域帐号信息。                                 |
 | callback   | AsyncCallback&lt;number&gt;             | 是   | 回调结果,返回的是和域帐号关联的系统帐号ID。 |
 
 **示例:**
@@ -829,7 +829,7 @@ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise&lt;number&
 
 | 参数名     | 类型                                    | 必填 | 说明         |
 | ---------- | --------------------------------------- | ---- | ------------ |
-| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是   | 域帐号信息。 |
+| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是   | 域帐号信息。 |
 
 **返回值:**
 
@@ -1156,7 +1156,7 @@ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, cal
 | 参数名     | 类型                                                 | 必填 | 说明                                       |
 | :--------- | ---------------------------------------------------- | ---- | ------------------------------------------ |
 | type       | [OsAccountType](#osaccounttype)                      | 是   | 创建的系统帐号的类型。                     |
-| domainInfo | [DomainAccountInfo](#domainaccountinfo)              | 是   | 域帐号信息。                               |
+| domainInfo | [DomainAccountInfo](#domainaccountinfo8)              | 是   | 域帐号信息。                               |
 | callback   | AsyncCallback&lt;[OsAccountInfo](#osaccountinfo)&gt; | 是   | 回调结果,返回的是新创建的系统帐号的信息。 |
 
 **示例:**
@@ -1187,7 +1187,7 @@ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Pr
 | 参数名     | 类型                                    | 必填 | 说明                   |
 | ---------- | --------------------------------------- | ---- | ---------------------- |
 | type       | [OsAccountType](#osaccounttype)         | 是   | 创建的系统帐号的类型。 |
-| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是   | 域帐号信息。           |
+| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是   | 域帐号信息。           |
 
 **返回值:**
 
@@ -1912,6 +1912,1289 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis
   console.info("queryOsAccountConstraintSourceType sourceTypeInfos:" + JSON.stringify(sourceTypeInfos));
   ```
 
+## UserAuth<sup>8+</sup>
+
+用户认证类。
+
+### constructor<sup>8+</sup>
+
+constructor()
+
+创建用户认证的实例。
+
+**系统能力**:SystemCapability.Account.OsAccount
+
+**示例:** 
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  console.info('====>test for examples constructor success');
+  ```
+
+
+### getVersion<sup>8+</sup>
+
+getVersion(): number;
+
+返回版本信息。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**返回值:**
+
+| 类型   | 说明         |
+| :----- | :----------- |
+| number | 返回版本信息。|
+
+**示例:** 
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  console.info('====>test for examples constructor success');
+  var version = userAuth.getVersion();
+  console.info('====>test for examples version is : ' + JSON.stringify(version));
+  ```
+
+### getAvailableStatus<sup>8+</sup>
+
+getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number;
+
+检查身份认证功能是否可用。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名           | 类型                                           | 必填 | 说明                       |
+| --------------- | -----------------------------------------------| ---- | ------------------------- |
+| authType        | [AuthType](#AuthType<sup>8+</sup>)             | 是   | 指示用于认证的凭据类型。     |
+| authTrustLevel  | [AuthTrustLevel](#AuthTrustLevel<sup>8+</sup>) | 是   | 表示身份验证结果的信任级别。 |
+
+**返回值:**
+
+| 类型   | 说明                                       |
+| :----- | :---------------------------------------- |
+| number | 返回验证[结果](#ResultCode<sup>8+</sup>)。 | 
+
+**示例:** 
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let authTrustLevel = osAccount.AuthTrustLevel.ATL1;
+  console.info('====>test for examples constructor success');
+  let availableStatus = userAuth.getAvailableStatus(authType, authTrustLevel);
+  console.info('====>test for examples AvailabeStatus is : ' + JSON.stringify(availableStatus));
+  ```
+
+### getProperty<sup>8+</sup>
+
+getProperty(request: GetPropertyRequest, callback: AsyncCallback&lt;ExecutorProperty&gt;): void;
+
+基于指定的请求信息获取属性,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名    | 类型                                                                    | 必填 | 说明                                |
+| -------- | ----------------------------------------------------------------------- | ---- | ---------------------------------- |
+| request  | [GetPropertyRequest](#GetPropertyRequest<sup>8+</sup>)                  | 是   | 请求信息,包括认证类型和属性类型列表。 |
+| callback | AsyncCallback&lt;[ExecutorProperty](#ExecutorProperty<sup>8+</sup>)&gt; | 是   | 回调结果,返回的是调用者属性。        |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let keys = new Array();
+  keys[0] = osAccount.GetPropertyType.AUTH_SUB_TYPE;
+  keys[1] = osAccount.GetPropertyType.REMAIN_TIMES;
+  keys[2] = osAccount.GetPropertyType.FREEZING_TIME;
+  let getPropertyRequest = {authType, keys};
+  userAuth.getProperty(getPropertyRequest,function (propReq) {
+      console.log("====>test for examples getallAuthInfo AsyncCallback = " + JSON.stringify(propReq));
+  })
+  ```
+
+### getProperty<sup>8+</sup>
+
+getProperty(request: GetPropertyRequest): Promise<ExecutorProperty>;
+
+基于指定的请求信息获取属性,使用Promise方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名    | 类型                                                   | 必填 | 说明                                |
+| -------- | ------------------------------------------------------ | ---- | ---------------------------------- |
+| request  | [GetPropertyRequest](#GetPropertyRequest<sup>8+</sup>) | 是   | 请求信息,包括认证类型和属性类型列表。 |
+
+**返回值:**
+
+| 类型                                                              | 说明                                                 |
+| :---------------------------------------------------------------- | :-------------------------------------------------- |
+| Promise&lt;[ExecutorProperty](#ExecutorProperty<sup>8+</sup>)&gt; | Promise实例,用于获取异步返回结果,返回的是调用者属性。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let keys = new Array();
+  keys[0] = osAccount.GetPropertyType.AUTH_SUB_TYPE;
+  keys[1] = osAccount.GetPropertyType.REMAIN_TIMES;
+  keys[2] = osAccount.GetPropertyType.FREEZING_TIME;
+  let getPropertyRequest = {authType, keys};
+  userAuth.getProperty(getPropertyRequest).then((propReq) => {
+      console.log("====>test for examples getallAuthInfo AsyncCallback = " + JSON.stringify(propReq));
+  });
+  ```
+
+### setProperty<sup>8+</sup>
+
+setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void;
+
+设置可用于初始化算法的属性,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名    | 类型                                                  | 必填 | 说明                                                                    |
+| -------- | ----------------------------------------------------- | ---- | ---------------------------------------------------------------------- |
+| request  | [SetPropertyRequest](#SetPropertyRequest<sup>8+</sup>)| 是   | 请求信息,包括认证类型和要设置的密钥值。                                   |
+| callback | AsyncCallback&lt;number&gt;                           | 是   | 回调结果,返回一个[数值](#ResultCode<sup>8+</sup>),指示属性设置是否成功。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let key = osAccount.SetPropertyType.INIT_ALGORITHM;
+  let setInfo = new Uint8Array();
+  let setPropertyRequest = {authType, key, setInfo};
+  userAuth.setProperty(setPropertyRequest,function (setProp) {
+      console.log("====>test for examples setProperty AsyncCallback = " + JSON.stringify(setProp));
+  });
+  ```
+
+### setProperty<sup>8+</sup>
+
+setProperty(request: SetPropertyRequest): Promise<number>;
+
+设置可用于初始化算法的属性,使用Promise方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名    | 类型                                                   | 必填 | 说明                                      |
+| -------- | ------------------------------------------------------ | ---- | ---------------------------------------- |
+| request  | [SetPropertyRequest](#SetPropertyRequest<sup>8+</sup>) | 是   | 请求信息,包括身份验证类型和要设置的密钥值。 |
+
+**返回值:**
+
+| 类型                  | 说明                                                                                           |
+| :-------------------- | :-------------------------------------------------------------------------------------------- |
+| Promise&lt;number&gt; | Promise实例,用于获取异步返回结果,返回一个[数值](#ResultCode<sup>8+</sup>),指示属性设置是否成功。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let key = osAccount.SetPropertyType.INIT_ALGORITHM;
+  let setInfo = new Uint8Array();
+  let setPropertyRequest = {authType, key, setInfo};
+  userAuth.setProperty(setPropertyRequest).then((setProp) => {
+      console.log("====>test for examples setProperty AsyncCallback = " + JSON.stringify(setProp));
+  });
+  ```
+
+### auth<sup>8+</sup>
+
+auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
+
+执行认证,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名           | 类型                                                 | 必填 | 说明                                |
+| --------------- | ---------------------------------------------------- | --- | ------------------------------------ |
+| challenge       | Uint8Array                                           | 是  | 指示挑战值,挑战值为一个随机数,用于提升安全性。|
+| authType        | [AuthType](#AuthType<sup>8+</sup>)                   | 是  | 指示认证类型。                        |
+| authTrustLevel  | [AuthTrustLevel](#AuthTrustLevel<sup>8+</sup>)       | 是  | 指示认证结果的信任级别。               |
+| callback        | [IUserAuthCallback](#IUserAuthCallback<sup>8+</sup>) | 是  | 回调结果,返回的是结果和所获取的信息。  |
+
+
+**返回值:**
+
+| 类型        | 说明               |
+| :--------- | :----------------- |
+| Uint8Array | 返回取消的上下文ID。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let challenge = 1;
+  let authTrustLevel = osAccount.AuthTrustLevel.ATL1;
+  let onresult = {
+      authresult: null,
+      authextr: null,
+  }
+  userAuth.auth(challenge, authType,authTrustLevel,{
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples auth result = " + result);
+          onresult.authresult = result;
+          console.log("====>test for examples auth extraInfo = " + JSON.stringify(extraInfo));
+          onresult.authextr = extraInfo;
+          console.info('====>test for examples auth onResult = ' + JSON.stringify(onresult));
+      }
+  });
+  ```
+
+### authUser<sup>8+</sup>
+
+authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
+
+执行用户认证,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名           | 类型                                                 | 必填 | 说明                                |
+| --------------- | ---------------------------------------------------- | --- | ------------------------------------ |
+| userId          | number                                               | 是  | 指示用户身份。                        |
+| challenge       | Uint8Array                                           | 是  | 指示挑战值,挑战值为一个随机数,用于提升安全性。                          |
+| authType        | [AuthType](#AuthType<sup>8+</sup>)                   | 是  | 指示认证类型。                        |
+| authTrustLevel  | [AuthTrustLevel](#AuthTrustLevel<sup>8+</sup>)       | 是  | 指示认证结果的信任级别。               |
+| callback        | [IUserAuthCallback](#IUserAuthCallback<sup>8+</sup>) | 是  | 回调结果,返回的是结果和所获取的信息。  |
+
+
+**返回值:**
+
+| 类型        | 说明               |
+| :--------- | :----------------- |
+| Uint8Array | 返回取消的上下文ID。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let challenge = 1;
+  let authTrustLevel = osAccount.AuthTrustLevel.ATL1;
+  let userID = 100;
+  let onresult = {
+      authresult: null,
+      authextr: null,
+  }
+  userAuth.authUser(userID, challenge, authType, authTrustLevel, {
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples authUser result = " + result);
+          onresult.authresult = result;
+          console.log("====>test for examples authUser extraInfo = " + JSON.stringify(extraInfo));
+          onresult.authextr = extraInfo;
+          console.info('====>test for examples authUser onResult = ' + JSON.stringify(onresult));
+      }
+  });
+  ```
+
+### cancelAuth<sup>8+</sup>
+
+cancelAuth(contextID: Uint8Array): number;
+
+取消特定的认证。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_USER_AUTH_INTERNAL
+
+**参数:**
+
+| 参数名    | 类型       | 必填  | 说明                                        |
+| ----------| ---------- | ---- | ------------------------------------------ |
+| contextID | Uint8Array | 是   | 指示身份验证上下文ID,此ID动态生成没有具体值。 |
+
+**返回值:**
+
+| 类型   | 说明                                                       |
+| :----- | :-------------------------------------------------------- |
+| number | 返回一个[数字](#ResultCode<sup>8+</sup>),指示取消是否成功。 |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let contextID = null;
+  let cancelAuthresult = null;
+  cancelAuthresult = userAuth.cancelAuth(contextID);
+  console.log("====>test for examples cancelAuthresult result = " + JSON.stringify(cancelAuthresult));
+  ```
+
+## PINAuth<sup>8+</sup>
+
+Pin码认证功能基类。
+
+### constructor<sup>8+</sup>
+
+constructor()
+
+创建Pin码认证的实例。
+
+**系统能力**:SystemCapability.Account.OsAccount
+
+**示例:** 
+  ```js
+  var pinAuth = new osAccount.PINAuth();
+  console.info('====>test for examples constructor success');
+  ```
+
+### registerInputer
+
+registerInputer(inputer: IInputer): boolean;
+
+注册输入器。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_PIN_AUTH
+
+**参数:**
+
+| 参数名    | 类型                                 | 必填 | 说明               |
+| ----------| ----------------------------------- | --- | ------------------ |
+| inputer   | [IInputer](#IInputer<sup>8+</sup>)  | 是  | 指示密码输入框回调。 |
+
+**返回值:**
+
+| 类型    | 说明                                           |
+| :------ | :-------------------------------------------- |
+| boolean | 返回布尔值,true表示注册成功,false表示注册失败。 |
+
+**示例:**
+  ```js
+  var pinAuth = new osAccount.PINAuth();
+  var GetAuthSubType = 0;
+  var AuthSubType = osAccount.AuthSubType.PIN_SIX;
+  var Inputerdata = [0,1,3];
+  var registerresult = pinAuth.registerInputer({
+      onGetData: (GetAuthSubType, IInputData) => {
+          if (GetAuthSubType == 0) {
+              IInputData.onSetData(AuthSubType, Inputerdata)
+          } else {
+              IInputData.onSetData(GetAuthSubType, Inputerdata);
+          }
+      }
+  })
+  console.log("====>test for examples RegisterInputer result is: " + registerresult);
+  ```
+
+### unregisterInputer
+
+unregisterInputer(): void;
+
+卸载输入器。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.ACCESS_PIN_AUTH
+
+**示例:**
+  ```js
+  var pinAuth = new osAccount.PinAuth();
+  pinAuth.unregisterInputer();
+  ```
+
+## UserIdentityManager<sup>8+</sup>
+
+获取用户身份管理类。
+
+### constructor<sup>8+</sup>
+
+constructor()
+
+创建用户认证的实例。
+
+**系统能力**:SystemCapability.Account.OsAccount
+
+**示例:** 
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  console.info('====>test for examples constructor success');
+  ```
+
+### openSession<sup>8+</sup>
+
+openSession(callback: AsyncCallback&lt;Uint8Array&gt;): void;
+
+打开会话,启动IDM操作以获取挑战值,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名    | 类型                             | 必填 | 说明                              |
+| -------- | -------------------------------- | ---- | -------------------------------- |
+| callback | AsyncCallback&lt;Uint8Array&gt;  | 是   | 回调结果,返回的是挑战值,非0即成功,为0则失败。|
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  var challenge;
+  userIDM.openSession(function(err, data){
+      try{
+          console.log("====>test for examples before get challenge");
+          console.log("====>test for examples + " + data);
+          challenge = data;
+          console.log("====>test for examples end ");
+          console.log("====>test for examples after get challenge");
+      }
+      catch(e) {
+          console.info('====>test for examples openSession error = ' + JSON.stringify(e));
+      }
+  });
+  ```
+
+### openSession<sup>8+</sup>
+
+openSession(): Promise&lt;Uint8Array&gt;;
+
+打开会话,启动IDM操作以获取挑战值,使用Promise方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**返回值:**
+
+| 类型                      | 说明                                                      |
+| :------------------------ | :------------------------------------------------------- |
+| Promise&lt;Uint8Array&gt; | Promise实例,用于获取异步返回结果,返回的是挑战值,非0即成功,为0则失败。|
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  var challenge;
+  userIDM.openSession().then((data) => {
+      try{
+          console.log("====>test for examples before get challenge");
+          console.log("====>test for examples + " + data);
+          challenge = data;
+          console.log("====>test for examples end ");
+          console.log("====>test for examples after get challenge");
+      }
+      catch(err) {
+          console.info('====>test for examples faceDemo openSession error1 = ' + JSON.stringify(err));
+      }
+  })
+  .catch((err) => {
+      console.info('====>test for examples faceDemo openSession error2 = ' + JSON.stringify(err));
+  })
+  ```
+
+### addCredential<sup>8+</sup>
+
+addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
+
+添加凭据,添加用户凭据信息,传入凭据添加方法和凭据信息(凭据类型,子类,如果添加用户的非密码凭据,则传入密码身份验证令牌),并获取结果/获取信息,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名           | 类型                                             | 必填 | 说明                            |
+| --------------- | ------------------------------------------------ | --- | -------------------------------- |
+| credentialInfo  | [CredentialInfo](#CredentialInfo<sup>8+</sup>)   | 是  | 指示凭据信息。                      |
+| callback        | [IIdmCallback](#IIdmCallback<sup>8+</sup>)       | 是  | 回调结果,返回的是结果和获取信息。  |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let CredentialInfo = null;
+  let onresult = {
+      addCredresult: null,
+      credentialId: null,
+  }
+  userIDM.addCredential(CredentialInfo, {
+      onResult: function(result,extraInfo){
+          console.info('====>test for examples aaaaaaaaaaaaa');
+          console.info("====>test for examples addCredential result = " + result);
+          console.info("====>test for examples addCredential extraInfo = " + JSON.stringify(extraInfo));
+          console.log(result)
+          onresult.addCredresult= result;
+          if(extraInfo != undefined) {
+              onresult.credentialId = extraInfo.credentialId
+          } else {
+              onresult.credentialId = null;
+          }
+      }
+  })
+  ```
+
+### updateCredential<sup>8+</sup>
+
+updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
+
+更新凭据,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名           | 类型                                              | 必填 | 说明                            |
+| --------------- | ------------------------------------------------- | --- | -------------------------------- |
+| credentialInfo  | [CredentialInfo](#CredentialInfo<sup>8+</sup>)    | 是  | 指示凭据信息。                    |
+| callback        | [IIdmCallback](#IIdmCallback<sup>8+</sup>)        | 是  | 回调结果,返回的是结果和获取信息。  |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let CredentialInfo = null;
+  let onresult = {
+      addCredresult: null,
+      credentialId: null,
+  }
+  userIDM.updateCredential(CredentialInfo, {
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples faceDemo updateCredential result = " + result)
+          onresult.updateCredresult = result
+          console.log("====>test for examples faceDemo updateCredential credentialId = " + extraInfo.credentialId)
+          if(extraInfo != undefined) {
+              onresult.CredentialId = extraInfo.credentialId
+          } else {
+              onresult.CredentialId = null;
+          }
+          console.info('====>test for examples publicupdateCred updateCredential  onResult = ' + JSON.stringify(onresult));
+      }
+  })
+  ```
+
+### closeSession<sup>8+</sup>
+
+closeSession(): void;
+
+关闭会话,结束IDM操作
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  userIDM.closeSession();
+  ```
+
+### cancel<sup>8+</sup>
+
+cancel(challenge: Uint8Array): number;
+
+根据挑战值取消条目。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名    | 类型        | 必填 | 说明   |
+| -------- | ----------- | ---- | ----- |
+| challenge | Uint8Array | 是   | 挑战值。 |
+
+**返回值:**
+
+| 类型   | 说明                                                       |
+| :----- | :-------------------------------------------------------- |
+| number | 返回一个[数字](#ResultCode<sup>8+</sup>),指示取消是否成功。 |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let challenge = 1;
+  let cancelresult = userIDM.cancel(challenge);
+  ```
+
+### delUser<sup>8+</sup>
+
+delUser(token: Uint8Array, callback: IIdmCallback): void;
+
+删除具有身份验证令牌的用户,使用callback方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名    | 类型                                       | 必填 | 说明                      |
+| -------- | ------------------------------------------ | --- | ------------------------- |
+| token    | Uint8Array                                 | 是  | 身份验证令牌。             |
+| callback | [IIdmCallback](#IIdmCallback<sup>8+</sup>) | 是  | 回调结果,返回的是删除结果。|
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let onresult = {
+      delUserresult: null,
+      CredentialId: null,
+  }
+  let token = null;
+  userIDM.delUser(token, {
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples  delUser result = " + result)
+          onresult.delUserresult = result
+          if(extraInfo != undefined) {
+              onresult.CredentialId = extraInfo.credentialId
+          } else {
+              onresult.CredentialId = null;
+          }
+          console.info('====>test for examples publicdelUser delUser = ' + JSON.stringify(onresult));
+      }
+  })
+  ```
+
+### delCred<sup>8+</sup>
+
+delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void;
+
+删除用户凭据信息,使用callback方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名           | 类型                                            | 必填 | 说明                      |
+| --------------- | ----------------------------------------------- | --- | ---------------------------|
+| credentialId    | Uint8Array                                      | 是  | 凭证索引。                  |
+| token           | Uint8Array                                      | 是  | 身份验证令牌。              |
+| callback        | [IIdmCallback](#IIdmCallback<sup>8+</sup>)      | 是  | 回调结果,返回的是删除结果。 |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let onresult = {
+      delUserresult: null,
+      CredentialId: null,
+  }
+  let credentialId = 1;
+  let token = null;
+  userIDM.delCred(credentialId, token,{
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples delCred result = " + result)
+          onresult.delCredresult = result
+          console.log("====>test for examples delCred extraInfo = " + extraInfo)
+          if(extraInfo != undefined) {
+              onresult.CredentialId = extraInfo.credentialId
+          } else {
+              onresult.CredentialId = null;
+          }
+          console.log("====>test for examples delCred onresult = " + JSON.stringify(onresult));
+      }
+  })
+  ```
+
+### getAuthInfo<sup>8+</sup>
+
+getAuthInfo(callback: AsyncCallback&lt;Array&lt;EnrolledCredInfo&gt;&gt;, authType?: AuthType): void;
+
+获取认证信息,使用callback回调异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名    | 类型                                               | 必填 | 说明                                                |
+| -------- | -------------------------------------------------- | ---- | -------------------------------------------------- |
+| callback | AsyncCallback&lt;Array&lt;[EnrolledCredInfo](#EnrolledCredInfo<sup>8+</sup>)&gt;&gt; | 是   | 回调结果,返回的是当前用户指定类型的所有已注册凭据信息。|
+| authType | [AuthType](#AuthType<sup>8+</sup>) | 否   | 认证类型。                                          |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  var authType = osAccount.AuthType.PIN;
+  userIDM.getAuthInfo(authType, function (authInfo) {
+      console.log("====>test for examples getAuthInfo AsyncCallback = " + JSON.stringify(authInfo))
+  })
+  ```
+
+### getAuthInfo<sup>8+</sup>
+
+getAuthInfo(authType?: AuthType): Promise&lt;Array&lt;EnrolledCredInfo&gt;&gt;;
+
+获取认证信息,使用Promise方式异步返回结果。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**需要权限:** ohos.permission.MANAGE_USER_IDM
+
+**参数:**
+
+| 参数名    | 类型                                | 必填 | 说明      |
+| -------- | ----------------------------------- | ---- | -------- |
+| authType | [AuthType](#AuthType<sup>8+</sup>)  | 否   | 认证类型。|
+
+**返回值:**
+
+| 类型                                         | 说明                                                                       |
+| :------------------------------------------- | :------------------------------------------------------------------------ |
+| Promise&lt;Array&lt;[EnrolledCredInfo](#EnrolledCredInfo<sup>8+</sup>)&gt;&gt; | Promise实例,用于获取异步返回结果,返回的是当前用户指定类型的所有已注册凭据信息。|
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  var authType = osAccount.AuthType.PIN;
+  userIDM.getAuthInfo(authType).then((authInfo) => {
+      console.log("====>test for examples getAuthInfo AsyncCallback = " + JSON.stringify(authInfo))
+  })
+  ```
+
+## IInputData<sup>8+</sup>
+
+密码数据回调。
+
+### onSetData<sup>8+</sup>
+
+onSetData: (pinSubType: AuthSubType, data: Uint8Array) => void;
+
+通知设置数据。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名      | 类型                                     | 必填 | 说明                                            |
+| ---------- | ---------------------------------------- | ---- | ----------------------------------------------- |
+| pinSubType | [AuthSubType](#AuthSubType<sup>8+</sup>) | 是   | 用于认证的凭据子类型。                            |
+| data       | Uint8Array                               | 是   | 要设置的数据是凭据,用来在认证、添加、修改凭据操作。 |
+
+**示例:**
+  ```js
+  console.log("====>test for examples onCreate start ");
+  var pinAuth = new osAccount.PINAuth();
+  var GetAuthSubType = 0;
+  var AuthSubType = osAccount.AuthSubType.PIN_SIX;
+  console.log("====>test for examples GetAuthSubType " + GetAuthSubType);
+  console.log("====>test for examples AuthSubType " + AuthSubType);
+  var Inputerdata = [0,1,3];
+  var registerresult = pinAuth.registerInputer({
+      onGetData: (GetAuthSubType, IInputData) => {
+          console.log("====>test for examples by GetAuthSubType " +GetAuthSubType );
+          if (GetAuthSubType == 0) {
+              console.log("====>test for examples GetAuthSubType == 0 ");
+              IInputData.onSetData(AuthSubType, Inputerdata)
+          } else {
+              console.log("====>test for examples GetAuthSubType == 1 ");
+              IInputData.onSetData(GetAuthSubType, Inputerdata);
+          }
+      }
+  })
+  console.log("====>test for examples RegisterInputer result is: " + registerresult);
+  ```
+
+## IInputer<sup>8+</sup>
+
+密码输入框回调。
+
+### onGetData<sup>8+</sup>
+
+onGetData: (callback: IInputData) => void;
+
+通知获取数据。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名      | 类型                                    | 必填 | 说明             |
+| ---------- | --------------------------------------- | ---- | --------------- |
+| callback   | [IInputData](#IInputData<sup>8+</sup>)  | 是   | 指示密码数据回调。|
+
+**示例:**
+  ```js
+  console.log("====>test for examples onCreate start ");
+  var pinAuth = new osAccount.PINAuth();
+  var GetAuthSubType = 0;
+  var AuthSubType = osAccount.AuthSubType.PIN_SIX;
+  console.log("====>test for examples GetAuthSubType " + GetAuthSubType);
+  console.log("====>test for examples AuthSubType " + AuthSubType);
+  var Inputerdata = [0,1,3];
+  var registerresult = pinAuth.registerInputer({
+      onGetData: (GetAuthSubType, IInputData) => {
+          console.log("====>test for examples by GetAuthSubType " +GetAuthSubType );
+          if (GetAuthSubType == 0) {
+              console.log("====>test for examples GetAuthSubType == 0 ");
+              IInputData.onSetData(AuthSubType, Inputerdata)
+          } else {
+              console.log("====>test for examples GetAuthSubType == 1 ");
+              IInputData.onSetData(GetAuthSubType, Inputerdata);
+          }
+      }
+  })
+  console.log("====>test for examples RegisterInputer result is: " + registerresult);
+  ```
+
+## IUserAuthCallback<sup>8+</sup>
+
+用户认证回调。
+
+### onResult<sup>8+</sup>
+
+onResult: (result: number, extraInfo: AuthResult) => void;
+
+身份认证结果代码通过回调返回。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名     | 类型                                    | 必填 | 说明                 |
+| --------- | --------------------------------------- | ---- | ------------------- |
+| result    | number                                   | 是   | 表示身份认证结果代码。|
+| extraInfo | [AuthResult](#AuthResult<sup>8+</sup>)  | 是   | 表示不同情况下的具体信息,如果认证通过,则在extrainfo中返回认证令牌,如果身份验证失败,则在extrainfo中返回剩余的身份验证时间,如果身份验证执行器被锁定,冻结时间将在extrainfo中返回。|
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let challenge = 1;
+  let authTrustLevel = osAccount.AuthTrustLevel.ATL1;
+  let onresult = {
+      authresult: null,
+      authextr: null,
+  }
+  userAuth.auth(challenge, authType,authTrustLevel,{
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples auth result = " + result);
+          onresult.authresult = result;
+          console.log("====>test for examples auth extraInfo = " + JSON.stringify(extraInfo));
+          onresult.authextr = extraInfo;
+          console.info('====>test for examples auth onResult = ' + JSON.stringify(onresult));
+      }
+  });
+  ```
+
+### onAcquireInfo?<sup>8+</sup>
+
+onAcquireInfo?: (module: number, acquire: number, extraInfo: any) => void;
+
+在身份验证期间,TipsCode通过回调返回。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名    | 类型     | 必填 | 说明                           |
+| --------- | ------- | ---- | ----------------------------- |
+| module    | number  | 是   | 指示用于身份验证的执行器类型。   |
+| acquire   | number  | 是   | 指示不同身份验证执行器的tip代码。|
+| extraInfo | any     | 是   | 保留参数。                     |
+
+**示例:**
+  ```js
+  let userAuth = new osAccount.UserAuth();
+  let authType = osAccount.AuthType.PIN;
+  let challenge = 1;
+  let authTrustLevel = osAccount.AuthTrustLevel.ATL1;
+  let onresult = {
+      authresult: null,
+      authextr: null,
+  }
+  let onacquireinfo = {
+      authmodule : null,
+      authacquire : null,
+      authextr : null
+  }
+  userAuth.auth(challenge, authType,authTrustLevel,{
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples auth result = " + result)
+          onresult.authresult = result
+          console.log("====>test for examples auth extraInfo = " + JSON.stringify(extraInfo));
+          onresult.authextr = extraInfo;
+          console.info('====>test for examples auth onResult = ' + JSON.stringify(onresult));
+      },
+      onAcquireInfo:function (modulea,acquire,extr){
+          console.info('====>test for examples publicauth auth onAcquireInfo in');
+          onacquireinfo.authmodule = modulea;
+          onacquireinfo.authacquire = acquire;
+          onacquireinfo.authextr = extr;
+          console.log("====>test for examples auth module = " + JSON.stringify(modulea));
+          console.info('====>test for examples publicauth auth onAcquireInfo = ' + JSON.stringify(onacquireinfo));
+      }
+  });
+  ```
+
+## IIdmCallback<sup>8+</sup>
+
+身份管理回调。
+
+### onResult<sup>8+</sup>
+
+onResult: (result: number, extraInfo: AuthResult) => void;
+
+身份认证结果代码通过回调返回。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名     | 类型                                    | 必填 | 说明                     |
+| --------- | --------------------------------------- | ---- | ----------------------- |
+| result    | number                                  | 是   | 表示身份认证结果代码。    |
+| extraInfo | [AuthResult](#AuthResult<sup>8+</sup>)  | 是   | 针对不同情况传递具体信息。|
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let CredentialInfo = null;
+  let onresult = {
+      addCredresult: null,
+      credentialId: null,
+  }
+  userIDM.updateCredential(CredentialInfo, {
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples updateCredential result = " + result)
+          onresult.updateCredresult = result
+          console.log("====>test for examples updateCredential credentialId = " + extraInfo.credentialId)
+          if(extraInfo != undefined) {
+              onresult.CredentialId = extraInfo.credentialId
+          } else {
+              onresult.CredentialId = null;
+          }
+          console.info('====>test for examples publicupdateCred updateCredential  onResult = ' + JSON.stringify(onresult));
+      }
+  })
+  ```
+
+### onAcquireInfo?<sup>8+</sup>
+
+onAcquireInfo?: (module: number, acquire: number, extraInfo: any) => void;
+
+在身份验证期间,TipsCode通过回调返回。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.Account.OsAccount
+
+**参数:**
+
+| 参数名    | 类型     | 必填 | 说明                           |
+| --------- | ------- | ---- | ----------------------------- |
+| module    | number  | 是   | 指示用于身份验证的执行器类型。   |
+| acquire   | number  | 是   | 指示不同身份验证执行器的tip代码。|
+| extraInfo | any     | 是   | 保留参数。                     |
+
+**示例:**
+  ```js
+  var userIDM = new osAccount.UserIdentityManager();
+  let CredentialInfo = null;
+  let onresult = {
+      addCredresult: null,
+      credentialId: null,
+  }
+  let onacquireinfo = {
+      updateCredmodule : null,
+      updateCredacquire : null,
+      updateCredextr : null
+  }
+  userIDM.updateCredential(CredentialInfo, {
+      onResult: function(result,extraInfo){
+          console.log("====>test for examples updateCredential result = " + result)
+          onresult.updateCredresult = result
+          console.log("====>test for examples updateCredential credentialId = " + extraInfo.credentialId)
+          if(extraInfo != undefined) {
+              onresult.CredentialId = extraInfo.credentialId
+          } else {
+              onresult.CredentialId = null;
+          }
+          console.info('====>test for examples publicupdateCred updateCredential  onResult = ' + JSON.stringify(onresult));
+      },
+      onAcquireInfo:function (modulea,acquire,extr){
+          console.info('====>test for examples publicupdateCred updateCredential  onAcquireInfo in ');
+          onacquireinfo.updateCredmodule = modulea
+          onacquireinfo.updateCredacquire = acquire
+          onacquireinfo.updateCredextr = extr
+          console.info('====>test for examples updateCredential onacquireinfo = ' + JSON.stringify(onacquireinfo));
+          console.log("====>test for examples updateCredential module = " + modulea)
+      }
+  })
+  ```
+
+## GetPropertyRequest<sup>8+</sup>
+
+提供获取属性请求的信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名    | 类型                                                          | 必填   | 说明                   |
+| -------- | ------------------------------------------------------------- | ----- | ----------------------- |
+| authType | [AuthType](#AuthType<sup>8+</sup>)                            | 是    | 身份验证凭据类型。        |
+| keys     | Array&lt;[GetPropertyType](#GetPropertyType<sup>8+</sup>)&gt; | 是    | 指示要获取的属性类型数组。 |
+
+## SetPropertyRequest<sup>8+</sup>
+
+提供设置属性请求的信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名    | 类型                                             | 必填   | 说明                 |
+| -------- | ------------------------------------------------ | ----- | -------------------- |
+| authType | [AuthType](#AuthType<sup>8+</sup>)               | 是    | 身份验证凭据类型。     |
+| keys     | [SetPropertyType](#SetPropertyType<sup>8+</sup>) | 是    | 指示要设置的属性类型。 |
+| setInfo  | Uint8Array                                       | 是    | 指示要设置的信息。     |
+
+## ExecutorProperty<sup>8+</sup>
+
+提供执行器的属性。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名        | 类型                                     | 必填   | 说明              |
+| ------------ | ---------------------------------------- | ----- | ----------------- |
+| result       | number                                   | 是    | 指示结果。         |
+| authSubType  | [AuthSubType](#AuthSubType<sup>8+</sup>) | 是    | 指示认证凭据子类型。|
+| remainTimes  | number                                   | 否    | 指示剩余时间。     |
+| freezingTime | number                                   | 否    | 指示冻结时间。     |
+
+## AuthResult<sup>8+</sup>
+
+指示认证结果的信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名        | 类型        | 必填   | 说明              |
+| ------------ | ----------- | ----- | ----------------- |
+| token        | Uint8Array  | 否    | 指示认证令牌。     |
+| remainTimes  | number      | 否    | 指示剩余时间。     |
+| freezingTime | number      | 否    | 指示冻结时间。     |
+
+## CredentialInfo<sup>8+</sup>
+
+指示凭证信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名        | 类型                                     | 必填   | 说明              |
+| ------------ | ---------------------------------------- | ----- | ----------------- |
+| credType     | [AuthType](#AuthType<sup>8+</sup>)       | 是    | 指示凭据类型。     |
+| credSubType  | [AuthSubType](#AuthSubType<sup>8+</sup>) | 是    | 指示凭据子类型。   |
+| token        | Uint8Array                               | 是    | 指示认证令牌。     |
+
+## RequestResult<sup>8+</sup>
+
+指示请求结果的信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名        | 类型        | 必填   | 说明              |
+| ------------ | ----------- | ----- | ----------------- |
+| credentialId | Uint8Array  | 否    | 指示凭据索引。     |
+
+## EnrolledCredInfo<sup>8+</sup>
+
+指示已注册凭据的信息。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数名        | 类型                                     | 必填   | 说明              |
+| ------------ | ---------------------------------------- | ----- | ------------------- |
+| credentialId | Uint8Array                               | 是    | 指示凭据索引。       |
+| authType     | [AuthType](#AuthType<sup>8+</sup>)       | 是    | 指示认证凭据类型。   |
+| authSubType  | [AuthSubType](#AuthSubType<sup>8+</sup>) | 是    | 指示认证凭据子类型。 |
+| templateId   | Uint8Array                               | 是    | 指示凭据模板ID。     |
+
+## GetPropertyType<sup>8+</sup>
+
+枚举,指示要获取的属性类型。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数           | 默认值 | 说明      |
+| ------------- | ------ | --------- |
+| AUTH_SUB_TYPE | 1      | 认证子类型。 |
+| REMAIN_TIMES  | 2      | 剩余时间。   |
+| FREEZING_TIME | 3      | 冻结时间。   |
+
+## SetPropertyType<sup>8+</sup>
+
+枚举,指示要设置的属性类型。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数           | 默认值 | 说明        |
+| -------------- | ----- | ----------- |
+| INIT_ALGORITHM | 1     | 初始化算法。 |
+
+## AuthType<sup>8+</sup>
+
+枚举,指示身份验证的凭据类型。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数  | 默认值 | 说明             |
+| ----- | ----- | ---------------- |
+| PIN   | 1     | 指示PIN认证类型。 |
+| FACE  | 2     | 指示脸部认证类型。|
+
+## AuthSubType<sup>8+</sup>
+
+枚举,指示用于认证的凭据子类型。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数       | 默认值 | 说明               |
+| ---------- | ----- | ------------------ |
+| PIN_SIX    | 10000 | 表示6位凭证。       |
+| PIN_NUMBER | 10001 | 表示自定义数字凭证。 |
+| PIN_MIXED  | 10002 | 表示自定义混合凭据。 |
+| FACE_2D    | 20000 | 指示2D 人脸凭证。   |
+| FACE_3D    | 20001 | 指示3D 人脸凭证。   |
+
+## AuthTrustLevel<sup>8+</sup>
+
+枚举,指示认证结果的受信任级别。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数  | 默认值 | 说明        |
+| ---- | ------ | ----------- |
+| ATL1 | 10000  | 信任级别 1。 |
+| ATL2 | 20000  | 信任级别 2。 |
+| ATL3 | 30000  | 信任级别 3。 |
+| ATL4 | 40000  | 信任级别 4。 |
+
+## Module<sup>8+</sup>
+
+枚举,表示获取信息的模块。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数       | 默认值 | 说明                     |
+| --------- | ------ | ------------------------ |
+| FACE_AUTH | 1      | 表示从人脸认证获取的信息。 |
+
+## ResultCode<sup>8+</sup>
+
+枚举,指示身份验证结果代码。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数                    | 默认值 | 说明                                     |
+| ----------------------- | ----- | ---------------------------------------- |
+| SUCCESS                 | 0     | 表示身份验证成功或支持此功能。             |
+| FAIL                    | 1     | 表示验证器无法识别用户。                   |
+| GENERAL_ERROR           | 2     | 表示其他错误。                            |
+| CANCELED                | 3     | 表示身份验证已取消。                       |
+| TIMEOUT                 | 4     | 表示身份验证已超时。                       |
+| TYPE_NOT_SUPPORT        | 5     | 表示不支持此身份验证类型。                 |
+| TRUST_LEVEL_NOT_SUPPORT | 6     | 表示不支持身份验证信任级别。               |
+| BUSY                    | 7     | 表示身份验证任务正忙。等待几秒钟,然后重试。 |
+| INVALID_PARAMETERS      | 8     | 表示参数不正确。                          |
+| LOCKED                  | 9     | 指示身份验证器已锁定。                     |
+| NOT_ENROLLED            | 10    | 表示用户尚未注册验证器。                   |
+
+## FaceTipsCode<sup>8+</sup>
+
+枚举,指示人脸验证过程中提示代码。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数                          | 默认值 | 说明                                     |
+| ----------------------------- | ----- | ---------------------------------------- |
+| FACE_AUTH_TIP_TOO_BRIGHT      | 1     | 表示由于高照明,获得的面部图像太亮。         |
+| FACE_AUTH_TIP_TOO_DARK        | 2     | 表示由于照明度低,获得的面部图像太暗。       |
+| FACE_AUTH_TIP_TOO_CLOSE       | 3     | 表示面部离设备太近。                       |
+| FACE_AUTH_TIP_TOO_FAR         | 4     | 表示面部离设备太远。                       |
+| FACE_AUTH_TIP_TOO_HIGH        | 5     | 表示设备太高,仅捕捉面部上部。              |
+| FACE_AUTH_TIP_TOO_LOW         | 6     | 表示设备太低,仅捕捉面部下部。              |
+| FACE_AUTH_TIP_TOO_RIGHT       | 7     | 指示设备向右偏移,并且仅捕捉面部的右侧部分。 |
+| FACE_AUTH_TIP_TOO_LEFT        | 8     | 指示设备向左偏移,并且仅捕捉面部的左侧部分。 |
+| FACE_AUTH_TIP_TOO_MUCH_MOTION | 9     | 表示面部信息收集过程中面部移动过快。         |
+| FACE_AUTH_TIP_POOR_GAZE       | 10    | 表示面未朝向设备。                         |
+| FACE_AUTH_TIP_NOT_DETECTED    | 11    | 表示未检测到人脸。                         |
+
+## ingerprintTips<sup>8+</sup>
+
+枚举,指示指纹身份验证过程中提示代码。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount
+
+| 参数                          | 默认值 | 说明                                            |
+| ----------------------------- | ----- | ----------------------------------------------- |
+| FINGERPRINT_TIP_GOOD          | 0     | 表明采集的图像良好。                              |
+| FINGERPRINT_TIP_IMAGER_DIRTY  | 1     | 表示由于传感器上可疑或检测到污垢,指纹图像噪声过大。 |
+| FINGERPRINT_TIP_INSUFFICIENT  | 2     | 表示由于检测到的情况,指纹图像噪声太大,无法处理。   |
+| FINGERPRINT_TIP_PARTIAL       | 3     | 指示仅检测到部分指纹图像。                         |
+| FINGERPRINT_TIP_TOO_FAST      | 4     | 表示指纹图像由于快速运动而不完整。                  |
+| FINGERPRINT_TIP_TOO_SLOW      | 5     | 表示由于缺少运动,指纹图像无法读取。                |
+
 ## OsAccountInfo
 
 系统帐号信息。
@@ -1932,7 +3215,7 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis
 | isActived<sup>8+</sup>         | boolean                                                      | 是   | 系统帐号激活状态                  |
 | isCreateCompleted<sup>8+</sup> | boolean                                                      | 是   | 系统帐号创建是否完整              |
 | distributedInfo                | [distributedAccount.DistributedInfo](js-apis-distributed-account.md) | 否   | 分布式帐号信息                    |
-| domainInfo<sup>8+</sup>        | [DomainAccountInfo](#domainaccountinfo)                      | 否   | 域帐号信息                        |
+| domainInfo<sup>8+</sup>        | [DomainAccountInfo](#domainaccountinfo8)                      | 否   | 域帐号信息                        |
 
 ## DomainAccountInfo<sup>8+</sup>
 
@@ -2017,6 +3300,8 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis
 
 约束来源类型信息。
 
+此接口为系统接口。
+
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount。
 
 | 参数名      | 类型   | 必填 | 说明       |
@@ -2028,6 +3313,8 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis
 
 枚举,约束来源类型。
 
+此接口为系统接口。
+
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount。
 
 | 参数   | 默认值 | 说明         |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-pasteboard.md b/zh-cn/application-dev/reference/apis/js-apis-pasteboard.md
index f3f3ba733bc56301ba22021a4fbd3edfaa1c92e2..e41944c75170b6c9d36d451a2500dcb77c7586e7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-pasteboard.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-pasteboard.md
@@ -1,5 +1,6 @@
 # 剪贴板
 
+ 剪贴板服务主要组件包括剪贴板管理客户端和剪贴板服务。剪贴板管理客户端负责剪贴板接口管理,提供剪贴板北向JS API给应用;在应用框架侧创建剪贴板数据、请求剪贴板SA执行剪贴板的新建、删除、查询、转换文本、配置等。剪贴板服务负责剪贴板事件管理,管理剪贴板SA的生命周期,为系统复制、粘贴功能提供支持。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
diff --git a/zh-cn/application-dev/reference/apis/js-apis-privacyManager.md b/zh-cn/application-dev/reference/apis/js-apis-privacyManager.md
index 38c1f1c7be9d1814ef5990dc61516e93975d04de..cadfc12098a6e85805136f8bf78d76705179f657 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-privacyManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-privacyManager.md
@@ -191,7 +191,7 @@ privacyManager.getPermissionUsedRecords(request, (err, data) => {
 | -------- | -------------- | ---- | ---------------------------------------- |
 | beginTime | number         | 否    | 查询记录的起始时间,单位:ms。 |
 | endTime | number         | 否    | 查询记录的终止时间,单位:ms。 |
-| bundleRecords  | Array&lt;[BundleUsedRecord](#BundleUsedRecord)&gt;         | 否    | 应用的权限使用记录集合。                                 |
+| bundleRecords  | Array&lt;[BundleUsedRecord](#bundleusedrecord)&gt;         | 否    | 应用的权限使用记录集合。                                 |
 
 ## BundleUsedRecord
 
@@ -205,7 +205,7 @@ privacyManager.getPermissionUsedRecords(request, (err, data) => {
 | isRemote | boolean         | 否    | 默认值false。 |
 | deviceId  | string         | 否    | 目标应用所在设备的ID。                                 |
 | bundleName | string         | 否    | 目标应用的包名。 |
-| permissionRecords  | Array&lt;[PermissionUsedRecord](#PermissionUsedRecord)&gt;         | 否    | 每个应用的权限使用记录集合。                                 |
+| permissionRecords  | Array&lt;[PermissionUsedRecord](#permissionusedrecord)&gt;         | 否    | 每个应用的权限使用记录集合。                                 |
 
 ## PermissionUsedRecord
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-process.md b/zh-cn/application-dev/reference/apis/js-apis-process.md
index 248789076260954647828c891e77e8aa5bba5b28..7484c7b566df6b9ba6b2b0118c348ddc65546865 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-process.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-process.md
@@ -232,7 +232,7 @@ is64Bit(): boolean
 **示例:**
 
 ```js
-var ressult = process.is64Bit();
+var result = process.is64Bit();
 ```
 
 
@@ -409,7 +409,7 @@ runCmd(command: string, options?: { timeout : number, killSignal : number | stri
 | 名称 | 参数类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | timeout | number | 否 | 子进程运行的ms数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。 |
-| killSignal | number&nbsp;&nbsp;\|&nbsp;string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal&nbsp;信号给子进程。killSignal&nbsp;默认为'SIGTERM'。 |
+| killSignal | number&nbsp;\|&nbsp;string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal&nbsp;信号给子进程。killSignal&nbsp;默认为'SIGTERM'。 |
 | maxBuffer | number | 否 | 子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024\*1024。 |
 
 **返回值:**
diff --git a/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md
index 0d5ceb5c8c30bb70fb506922a60613cf48e16475..ba97f38ccc7bc002fa643490d0652d1b4fab8e0a 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md
@@ -4,7 +4,7 @@ ProcessRunningInfo模块提供对进程运行信息进行设置和查询的能
 
 > **说明:**
 > 
-> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 使用说明
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-prompt.md b/zh-cn/application-dev/reference/apis/js-apis-prompt.md
index 774278b087ee2bf412e00548a84842bcb6df9c53..b2cd8bebcb6622fcabe249fa29ea1f7f0e0aed7d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-prompt.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-prompt.md
@@ -8,7 +8,7 @@
 
 ## 导入模块
 
-```
+```js
 import prompt from '@ohos.prompt'
 ```
 
@@ -26,15 +26,11 @@ showToast(options: ShowToastOptions): void
 | options | [ShowToastOptions](#showtoastoptions) | 是    | 文本弹窗选项。 |
 
 **示例:**
-  ```
-  export default {    
-    showToast() {        
-      prompt.showToast({            
-        message: 'Message Info',
-        duration: 2000,      
-      });
-    }
-  }
+  ```js
+prompt.showToast({            
+  message: 'Message Info',
+    duration: 2000,      
+});
   ```
 ## ShowToastOptions
 
@@ -42,11 +38,11 @@ showToast(options: ShowToastOptions): void
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
 
-| 名称       | 类型             | 必填   | 说明                                       |
-| -------- | -------------- | ---- | ---------------------------------------- |
-| message  | string         | 是    | 显示的文本信息。                                 |
-| duration | number         | 否    | 默认值1500ms,建议区间:1500ms-10000ms,若小于1500ms则取默认值。 |
-| bottom   | string | number | 否    | 设置弹窗边框距离屏幕底部的位置。                         |
+| 名称       | 类型                                       | 必填     | 说明                                       |
+| -------- | ---------------------------------------- | ------ | ---------------------------------------- |
+| message  | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 是      | 显示的文本信息。                                 |
+| duration | number                                   | 否      | 默认值1500ms,建议区间:1500ms-10000ms,若小于1500ms则取默认值。 |
+| bottom   | string                                   | number | 否                                        |
 
 ## prompt.showDialog
 
@@ -69,31 +65,27 @@ showDialog(options: ShowDialogOptions): Promise&lt;ShowDialogSuccessResponse&gt;
 
 **示例:**
 
-  ```
-  export default {
-    showDialog() {
-      prompt.showDialog({
-        title: 'Title Info',
-        message: 'Message Info',
-        buttons: [
-          {
-             text: 'button1',
-             color: '#000000',
-          },
-          {
-             text: 'button2',
-             color: '#000000',
-          }
-         ],
-      })
-      .then(data => {
-        console.info('showDialog success, click button: ' + data.index);
-      })
-      .catch(err => {
-        console.info('showDialog error: ' + err);
-      })
+  ```js
+prompt.showDialog({
+  title: 'Title Info',
+  message: 'Message Info',
+  buttons: [
+    {
+      text: 'button1',
+      color: '#000000',
+    },
+    {
+      text: 'button2',
+      color: '#000000',
     }
-  }
+  ],
+})
+  .then(data => {
+    console.info('showDialog success, click button: ' + data.index);
+  })
+  .catch(err => {
+    console.info('showDialog error: ' + err);
+  })
   ```
 
 ## prompt.showDialog
@@ -112,32 +104,27 @@ showDialog(options: ShowDialogOptions, callback: AsyncCallback&lt;ShowDialogSucc
 | callback | AsyncCallback&lt;[ShowDialogSuccessResponse](#showdialogsuccessresponse)&gt; | 是    | 对话框响应结果回调。   |
 
 **示例:**
-  ```
-  export default {
-    callback(err, data) {
-      if(err) {
-        console.info('showDialog err: ' + err);
-        return;
-      }
-      console.info('showDialog success callback, click button: ' + data.index);
+  ```js
+prompt.showDialog({
+  title: 'showDialog Title Info',
+  message: 'Message Info',
+  buttons: [
+    {
+      text: 'button1',
+      color: '#000000',
     },
-    showDialog() {
-      prompt.showDialog({
-        title: 'showDialog Title Info',
-        message: 'Message Info',
-        buttons: [
-          {
-            text: 'button1',
-            color: '#000000',
-          },
-          {
-            text: 'button2',
-            color: '#000000',
-          }
-        ]
-      }, this.callback);
+    {
+      text: 'button2',
+      color: '#000000',
     }
+  ]
+}, (err, data) => {
+  if (err) {
+    console.info('showDialog err: ' + err);
+    return;
   }
+  console.info('showDialog success callback, click button: ' + data.index);
+});
   ```
 
 ## ShowDialogOptions
@@ -146,11 +133,11 @@ showDialog(options: ShowDialogOptions, callback: AsyncCallback&lt;ShowDialogSucc
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
 
-| 名称      | 类型     | 必填   | 说明                                       |
-| ------- | ------ | ---- | ---------------------------------------- |
-| title   | string | 否    | 标题文本。                                    |
-| message | string | 否    | 内容文本。                                    |
-| buttons | Array  | 否    | 对话框中按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持1-3个按钮。其中第一个为positiveButton;第二个为negativeButton;第三个为neutralButton。 |
+| 名称      | 类型                                       | 必填   | 说明                                       |
+| ------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| title   | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 否    | 标题文本。                                    |
+| message | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 否    | 内容文本。                                    |
+| buttons | Array                                    | 否    | 对话框中按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持1-3个按钮。其中第一个为positiveButton;第二个为negativeButton;第三个为neutralButton。 |
 
 ## ShowDialogSuccessResponse 
 
@@ -179,31 +166,26 @@ showActionMenu(options: ActionMenuOptions, callback: AsyncCallback&lt;ActionMenu
 
 
 **示例:**
-  ```
-  export default {
-    callback(err, data) {
-      if(err) {
-        console.info('showActionMenu err: ' + err);
-        return;
-      }
-      console.info('showActionMenu success callback, click button: ' + data.index);
+  ```js
+prompt.showActionMenu({
+  title: 'Title Info',
+  buttons: [
+    {
+      text: 'item1',
+      color: '#666666',
     },
-    showActionMenu() {
-      prompt.showActionMenu({
-        title: 'Title Info',
-        buttons: [
-          {
-            text: 'item1',
-            color: '#666666',
-          },
-          {
-             text: 'item2',
-             color: '#000000',
-          },
-        ]
-      }, this.callback)
-    }
+    {
+      text: 'item2',
+      color: '#000000',
+    },
+  ]
+}, (err, data) => {
+  if (err) {
+    console.info('showActionMenu err: ' + err);
+    return;
   }
+  console.info('showActionMenu success callback, click button: ' + data.index);
+})
   ```
 
 ## prompt.showActionMenu
@@ -225,47 +207,43 @@ showActionMenu(options: ActionMenuOptions): Promise&lt;ActionMenuSuccessResponse
 | Promise&lt;[ActionMenuSuccessResponse](#actionmenusuccessresponse)&gt; | 菜单响应结果。 |
 
 **示例:**
-  ```
-  export default {
-    showActionMenu() {
-      prompt.showActionMenu({
-        title: 'showActionMenu Title Info',
-        buttons: [
-          {
-            text: 'item1',
-            color: '#666666',
-          },
-          {
-             text: 'item2',
-             color: '#000000',
-          },
-        ]
-      })
-      .then(data => {
-        console.info('showActionMenu success, click button: ' + data.index);
-      })
-      .catch(err => {
-        console.info('showActionMenu error: ' + err);
-      })
-    }
-  }
+  ```js
+prompt.showActionMenu({
+  title: 'showActionMenu Title Info',
+  buttons: [
+    {
+      text: 'item1',
+      color: '#666666',
+    },
+    {
+      text: 'item2',
+      color: '#000000',
+    },
+  ]
+})
+  .then(data => {
+    console.info('showActionMenu success, click button: ' + data.index);
+  })
+  .catch(err => {
+    console.info('showActionMenu error: ' + err);
+  })
   ```
 ## ActionMenuOptions
 
 操作菜单的选项。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full。
 
-| 名称      | 类型     | 必填   | 说明                                       |
-| ------- | ------ | ---- | ---------------------------------------- |
-| title   | string | 否    | 标题文本。                                    |
-| buttons | Array&lt;[Button](#button)&gt;  | 是    | 菜单中菜单项按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持1-6个按钮。大于6个按钮时弹窗不显示。 |
+| 名称      | 类型                                       | 必填   | 说明                                       |
+| ------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| title   | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 否    | 标题文本。                                    |
+| buttons | Array&lt;[Button](#button)&gt;           | 是    | 菜单中菜单项按钮的数组,结构为:{text:'button',&nbsp;color:&nbsp;'\#666666'},支持1-6个按钮。大于6个按钮时弹窗不显示。 |
 
 ## ActionMenuSuccessResponse
 
 操作菜单的响应结果。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 | 名称    | 类型     | 必填   | 说明                       |
 | ----- | ------ | ---- | ------------------------ |
@@ -275,10 +253,10 @@ showActionMenu(options: ActionMenuOptions): Promise&lt;ActionMenuSuccessResponse
 
 菜单中的菜单项按钮。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
-| 名称    | 类型     | 必填   | 说明                       |
-| ----- | ------ | ---- | ------------------------ |
-| text | string | 是    | 按钮文本内容。 |
-| color | string | 是    | 按钮文本颜色。 |
+| 名称    | 类型                                       | 必填   | 说明      |
+| ----- | ---------------------------------------- | ---- | ------- |
+| text  | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 是    | 按钮文本内容。 |
+| color | string\| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | 是    | 按钮文本颜色。 |
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md
index 5b6297b3f53f72eac45e6843652eddbea2af7676..90f0cbfd4f73a19d94b7d277ae8d875e47819372 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-radio.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md
@@ -701,7 +701,7 @@ getIMEI(slotId?: number): Promise<string\>
 
 | 类型              | 说明                                       |
 | ----------------- | ------------------------------------------ |
-| Promise\<string\> | 返回IMEI;如果IMEI不存在,则返回空字符串。 |
+| Promise\<string\> | 以Promise形式异步返回IMEI;如果IMEI不存在,则返回空字符串。 |
 
 **示例:**
 
@@ -899,6 +899,693 @@ promise.then(data => {
 });
 ```
 
+## radio.sendUpdateCellLocationRequest<sup>8+</sup>
+
+sendUpdateCellLocationRequest\(callback: AsyncCallback<void\>\): void
+
+发送更新小区位置请求,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明       |
+| -------- | --------------------- | ---- | ---------- |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+radio.sendUpdateCellLocationRequest((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## radio.sendUpdateCellLocationRequest<sup>8+</sup>
+
+sendUpdateCellLocationRequest\(\): Promise<void\>
+
+发送更新小区位置请求,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = radio.sendUpdateCellLocationRequest();
+promise.then(data => {
+    console.log(`sendUpdateCellLocationRequest success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`sendUpdateCellLocationRequest fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.getCellInformation<sup>8+</sup>
+
+getCellInformation(callback: AsyncCallback<Array<CellInformation\>>): void
+
+获取小区信息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.LOCATION
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                     |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------ |
+| callback | AsyncCallback\<Array<[CellInformation](#cellinformation8)\>\> | 是   | 回调函数,返回小区信息。 |
+
+**示例:**
+
+```js
+radio.getCellInformation((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.getCellInformation<sup>8+</sup>
+
+getCellInformation(slotId: number, callback: AsyncCallback<Array<CellInformation\>\>): void
+
+获取小区信息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.LOCATION
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                   |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<Array<[CellInformation](#cellinformation8)\>\> | 是   | 回调函数,返回小区信息。               |
+
+**示例:**
+
+```js
+let slotId = 0;
+radio.getCellInformation(slotId, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.getCellInformation<sup>8+</sup>
+
+getCellInformation(slotId?: number): Promise<Array<CellInformation\>\>
+
+获取小区信息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.LOCATION
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 否   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                                    | 说明                    |
+| ------------------------------------------------------- | ----------------------- |
+| Promise\<Array<[CellInformation](#cellinformation8)\>\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = radio.getCellInformation(slotId);
+promise.then(data => {
+    console.log(`getCellInformation success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getCellInformation fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.setNetworkSelectionMode
+
+setNetworkSelectionMode\(options: NetworkSelectionModeOptions, callback: AsyncCallback<void\>\): void
+
+设置网络选择模式,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                        | 必填 | 说明               |
+| -------- | ----------------------------------------------------------- | ---- | ------------------ |
+| options  | [NetworkSelectionModeOptions](#networkselectionmodeoptions) | 是   | 网络选择模式选项。 |
+| callback | AsyncCallback\<void\>                                       | 是   | 回调函数。         |
+
+**示例:**
+
+```js
+let networkInformation={
+    operatorName: "中国移动",
+    operatorNumeric: "898600",
+    state: 1,
+    radioTech: "CS"
+}
+let networkSelectionModeOptions={
+    slotid: 0,
+    selectMode: 1,
+    networkInformation: networkInformation,
+    resumeSelection: true
+}
+radio.setNetworkSelectionMode(networkSelectionModeOptions, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## radio.setNetworkSelectionMode
+
+setNetworkSelectionMode\(options: NetworkSelectionModeOptions\): Promise<void\>
+
+设置网络选择模式,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名  | 类型                                                        | 必填 | 说明               |
+| ------- | ----------------------------------------------------------- | ---- | ------------------ |
+| options | [NetworkSelectionModeOptions](#networkselectionmodeoptions) | 是   | 网络选择模式选项。 |
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let networkInformation={
+    operatorName: "中国移动",
+    operatorNumeric: "898600",
+    state: 1,
+    radioTech: "CS"
+}
+let networkSelectionModeOptions={
+    slotid: 0,
+    selectMode: 1,
+    networkInformation: networkInformation,
+    resumeSelection: true
+}
+let promise = radio.setNetworkSelectionMode(networkSelectionModeOptions);
+promise.then(data => {
+    console.log(`setNetworkSelectionMode success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`setNetworkSelectionMode fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.getNetworkSearchInformation
+
+getNetworkSearchInformation\(slotId: number, callback: AsyncCallback<NetworkSearchResult\>\): void
+
+获取网络搜索信息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                   |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<[NetworkSearchResult](#networksearchresult)\> | 是   | 回调函数。返回网络搜索信息。           |
+
+**示例:**
+
+```js
+radio.getNetworkSearchInformation(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## radio.getNetworkSearchInformation
+
+getNetworkSearchInformation\(slotId: number\): Promise<void\>
+
+获取网络搜索信息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                                   | 说明                    |
+| ------------------------------------------------------ | ----------------------- |
+| Promise\<[NetworkSearchResult](#networksearchresult)\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = radio.getNetworkSearchInformation(0);
+promise.then(data => {
+    console.log(`getNetworkSearchInformation success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getNetworkSearchInformation fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.getNrOptionMode<sup>8+</sup>
+
+getNrOptionMode(callback: AsyncCallback<NrOptionMode\>): void
+
+获取Nr选项模式 ,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                            | 必填 | 说明       |
+| -------- | ----------------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\<[NrOptionMode](#nroptionmode8)\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+radio.getNrOptionMode((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.getNrOptionMode<sup>8+</sup>
+
+getNrOptionMode(slotId: number, callback: AsyncCallback<NrOptionMode\>): void
+
+获取Nr选项模式 ,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                            | 必填 | 说明                                   |
+| -------- | ----------------------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                                          | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<[NrOptionMode](#nroptionmode8)\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+let slotId = 0;
+radio.getNrOptionMode(slotId, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.getNrOptionMode<sup>8+</sup>
+
+getNrOptionMode(slotId?: number): Promise<NrOptionMode\>
+
+获取Nr选项模式 ,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 否   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                      | 说明                    |
+| ----------------------------------------- | ----------------------- |
+| Promise\<[NrOptionMode](#nroptionmode8)\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = radio.getNrOptionMode(slotId);
+promise.then(data => {
+    console.log(`getNrOptionMode success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getNrOptionMode fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.turnOnRadio<sup>7+</sup>
+
+turnOnRadio(callback: AsyncCallback<void\>): void
+
+打开Radio,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明       |
+| -------- | --------------------- | ---- | ---------- |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+radio.turnOnRadio((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.turnOnRadio<sup>7+</sup>
+
+turnOnRadio(slotId: number, callback: AsyncCallback<void\>): void
+
+打开Radio,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明                                   |
+| -------- | --------------------- | ---- | -------------------------------------- |
+| slotId   | number                | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+let slotId = 0;
+radio.turnOnRadio(slotId, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.turnOnRadio<sup>7+</sup>
+
+turnOnRadio(slotId?: number): Promise<void\>
+
+打开Radio,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 否   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = radio.turnOnRadio(slotId);
+promise.then(data => {
+    console.log(`turnOnRadio success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`turnOnRadio fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.turnOffRadio<sup>7+</sup>
+
+turnOffRadio(callback: AsyncCallback<void\>): void
+
+关闭Radio,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明       |
+| -------- | --------------------- | ---- | ---------- |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+radio.turnOffRadio((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.turnOffRadio<sup>7+</sup>
+
+turnOffRadio(slotId: number, callback: AsyncCallback<void\>): void
+
+关闭Radio,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明                                   |
+| -------- | --------------------- | ---- | -------------------------------------- |
+| slotId   | number                | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+let slotId = 0;
+radio.turnOffRadio(slotId, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.turnOffRadio<sup>7+</sup>
+
+turnOffRadio(slotId?: number): Promise<void\>
+
+关闭Radio,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 否   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = radio.turnOffRadio(slotId);
+promise.then(data => {
+    console.log(`turnOffRadio success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`turnOffRadio fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.setPreferredNetwork<sup>8+</sup>
+
+setPreferredNetwork\(slotId: number, networkMode: PreferredNetworkMode, callback: AsyncCallback<void\>\): void
+
+设置首选网络,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名      | 类型                                           | 必填 | 说明                                   |
+| ----------- | ---------------------------------------------- | ---- | -------------------------------------- |
+| slotId      | number                                         | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| networkMode | [PreferredNetworkMode](#preferrednetworkmode8) | 是   | 设置首选网络模式                       |
+| callback    | AsyncCallback\<void\>                          | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+radio.setPreferredNetwork(0, 1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## radio.setPreferredNetwork<sup>8+</sup>
+
+setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise<void\>
+
+设置首选网络,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名      | 类型                                           | 必填 | 说明                                   |
+| ----------- | ---------------------------------------------- | ---- | -------------------------------------- |
+| slotId      | number                                         | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| networkMode | [PreferredNetworkMode](#preferrednetworkmode8) | 是   | 设置首选网络模式                       |
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = radio.setPreferredNetwork(0, 1);
+promise.then(data => {
+    console.log(`setPreferredNetwork success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`setPreferredNetwork fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## radio.getPreferredNetwork<sup>8+</sup>
+
+getPreferredNetwork\(slotId: number, callback: AsyncCallback<PreferredNetworkMode\>\): void
+
+获取首选网络,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                   |
+| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<[PreferredNetworkMode](#preferrednetworkmode8)\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+radio.getPreferredNetwork(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## radio.getPreferredNetwork<sup>8+</sup>
+
+getPreferredNetwork(slotId: number): Promise<void\>
+
+设置首选网络,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = radio.getPreferredNetwork(0);
+promise.then(data => {
+    console.log(`getPreferredNetwork success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getPreferredNetwork fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
 ## RadioTechnology
 
 无线接入技术。
@@ -1011,3 +1698,238 @@ promise.then(data => {
 | NETWORK_SELECTION_AUTOMATIC | 1    | 自动选网模式。 |
 | NETWORK_SELECTION_MANUAL    | 2    | 手动选网模式。 |
 
+## PreferredNetworkMode<sup>8+</sup>
+
+首选网络模式。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称                                                      | 值   | 说明                                          |
+| --------------------------------------------------------- | ---- | --------------------------------------------- |
+| PREFERRED_NETWORK_MODE_GSM                                | 1    | 首选GSM网络模式。                             |
+| PREFERRED_NETWORK_MODE_WCDMA                              | 2    | 首选WCDMA网络模式。                           |
+| PREFERRED_NETWORK_MODE_LTE                                | 3    | 首选LTE网络模式。                             |
+| PREFERRED_NETWORK_MODE_LTE_WCDMA                          | 4    | 首选LTE WCDMA网络模式。                       |
+| PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM                      | 5    | 首选LTE WCDMA GSM网络模式。                   |
+| PREFERRED_NETWORK_MODE_WCDMA_GSM                          | 6    | 首选WCDMA GSM网络模式。                       |
+| PREFERRED_NETWORK_MODE_CDMA                               | 7    | 首选CDMA网络模式。                            |
+| PREFERRED_NETWORK_MODE_EVDO                               | 8    | 首选EVDO网络模式。                            |
+| PREFERRED_NETWORK_MODE_EVDO_CDMA                          | 9    | 首选EVDO CDMA网络模式。                       |
+| PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA                | 10   | 首选WCDMA GSM EVDO CDMA网络模式。             |
+| PREFERRED_NETWORK_MODE_LTE_EVDO_CDMA                      | 11   | 首选LTE EVDO CDMA网络模式。                   |
+| PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA            | 12   | 首选LTE WCDMA GSM EVDO CDMA网络模式。         |
+| PREFERRED_NETWORK_MODE_TDSCDMA                            | 13   | 首选TDSCDMA网络模式。                         |
+| PREFERRED_NETWORK_MODE_TDSCDMA_GSM                        | 14   | 首选TDSCDMA GSM网络模式。                     |
+| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA                      | 15   | 首选TDSCDMA_WCDMA网络模式。                   |
+| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM                  | 16   | 首选TDSCDMA_WCDMA_GSM网络模式。               |
+| PREFERRED_NETWORK_MODE_LTE_TDSCDMA                        | 17   | 首选LTE TDSCDMA网络模式。                     |
+| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_GSM                    | 18   | 首选LTE TDSCDMA GSM网络模式。                 |
+| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA                  | 19   | 首选LTE TDSCDMA WCDMA网络模式。               |
+| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM              | 20   | 首选LTE TDSCDMA WCDMA GSM网络模式。           |
+| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA        | 21   | 首选TDSCDMA WCDMA GSM EVDO CDMA网络模式。     |
+| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA    | 22   | 首选LTE TDSCDMA WCDMA GSM EVDO CDMA网络模式。 |
+| PREFERRED_NETWORK_MODE_NR                                 | 31   | 首选NR网络模式。                              |
+| PREFERRED_NETWORK_MODE_NR_LTE                             | 32   | 首选NR LTE网络模式。                          |
+| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA                       | 33   | 首选NR LTE WCDMA网络模式。                    |
+| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM                   | 34   | 首选NR LTE WCDMA GSM网络模式。                |
+| PREFERRED_NETWORK_MODE_NR_LTE_EVDO_CDMA                   | 35   | 首选NR LTE EVDO CDMA网络模式。                |
+| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA         | 36   | 首选NR LTE WCDMA GSM EVDO CDMA网络模式。      |
+| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA                     | 37   | 首选NR LTE TDSCDMA网络模式。                  |
+| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_GSM                 | 38   | 首选NR LTE TDSCDMA GSM网络模式。              |
+| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA               | 39   | 首选NR LTE TDSCDMA WCDMA网络模式。            |
+| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM           | 40   | 首选NR LTE TDSCDMA WCDMA GSM网络模式。        |
+| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA | 41   | 首选NR LTE TDSCDMA WCDMA GSM网络模式。        |
+| PREFERRED_NETWORK_MODE_MAX_VALUE                          | 99   | 首选网络模式最大值。                          |
+
+## CellInformation<sup>8+</sup>
+
+小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称              | 类型                                                         | 说明                                                         |
+| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| networkType       | [NetworkType](#networktype)                                  | 获取服务单元的网络类型。                                     |
+| isCamped          | boolean                                                      | 获取服务单元的状态。                                         |
+| timeStamp         | number                                                       | 获取单元格信息时获取时间戳。                                 |
+| signalInformation | [SignalInformation](#signalinformation)                      | 信号信息。                                                   |
+| data              | [CdmaCellInformation](#cdmacellinformation) \| [GsmCellInformation](#gsmcellinformation) \| [LteCellInformation](#ltecellinformation) \| [NrCellInformation](#nrcellinformation) \| [TdscdmaCellInformation](#tdscdmacellinformation) | Cdma小区信息 \|Gsm小区信息\|Lte小区信息\|Nr小区信息\|Tdscdma小区信息 |
+
+## CdmaCellInformation<sup>8+</sup>
+
+Cdma小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称      | 类型   | 说明         |
+| --------- | ------ | ------------ |
+| baseId    | number | 基站Id。     |
+| latitude  | number | 经度。       |
+| longitude | number | 纬度。       |
+| nid       | number | 网络识别码。 |
+| sid       | number | 系统识别码。 |
+
+## GsmCellInformation<sup>8+</sup>
+
+Gsm小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称   | 类型   | 说明                 |
+| ------ | ------ | -------------------- |
+| lac    | number | 位置区编号。         |
+| cellId | number | 小区号。             |
+| arfcn  | number | 绝对无线频率信道号。 |
+| bsic   | number | 基站识别号。         |
+| mcc    | string | 移动国家码。         |
+| mnc    | string | 移动网号。           |
+
+## LteCellInformation<sup>8+</sup>
+
+Lte小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称          | 类型    | 说明                    |
+| ------------- | ------- | ----------------------- |
+| cgi           | number  | 小区全球标识。          |
+| pci           | number  | 物理小区识别。          |
+| tac           | number  | 跟踪区域代码。          |
+| earfcn        | number  | 绝对无线频率信道号。    |
+| bandwidth     | number  | 带宽。                  |
+| mcc           | string  | 移动国家码。            |
+| mnc           | string  | 移动网号。              |
+| isSupportEndc | boolean | 是否支持新无线电_双连接 |
+
+## NrCellInformation<sup>8+</sup>
+
+Nr小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称    | 类型   | 说明             |
+| ------- | ------ | ---------------- |
+| nrArfcn | number | 5G频点号。       |
+| pci     | number | 物理小区识别。   |
+| tac     | number | 跟踪区域代码。   |
+| nci     | number | 5G网络小区标识。 |
+| mcc     | string | 移动国家码。     |
+| mnc     | string | 移动网号。       |
+
+## TdscdmaCellInformation<sup>8+</sup>
+
+Tdscdma小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称   | 类型   | 说明         |
+| ------ | ------ | ------------ |
+| lac    | number | 位置区编号。 |
+| cellId | number | 小区号。     |
+| cpid   | number | 小区参数Id。 |
+| uarfcn | number | 绝对射频号。 |
+| mcc    | string | 移动国家码。 |
+| mnc    | string | 移动网号。   |
+
+## WcdmaCellInformation<sup>8+</sup>
+
+Wcdma小区信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称   | 类型   | 说明         |
+| ------ | ------ | ------------ |
+| lac    | number | 位置区编号。 |
+| cellId | number | 小区号。     |
+| psc    | number | 主扰码。     |
+| uarfcn | number | 绝对射频号。 |
+| mcc    | string | 移动国家码。 |
+| mnc    | string | 移动网号。   |
+
+## NrOptionMode<sup>8+</sup>
+
+Nr的选择模式。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称                 | 值   | 说明                               |
+| -------------------- | ---- | ---------------------------------- |
+| NR_OPTION_UNKNOWN    | 0    | 未知的Nr选择模式。                 |
+| NR_OPTION_NSA_ONLY   | 1    | 仅非独立组网的Nr选择模式。         |
+| NR_OPTION_SA_ONLY    | 2    | 仅独立组网的Nr选择模式。           |
+| NR_OPTION_NSA_AND_SA | 3    | 非独立组网和独立组网的Nr选择模式。 |
+
+## NetworkSearchResult
+
+网络搜索结果。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称                   | 类型                                              | 说明           |
+| ---------------------- | ------------------------------------------------- | -------------- |
+| isNetworkSearchSuccess | boolean                                           | 网络搜索成功。 |
+| networkSearchResult    | Array<[NetworkInformation](#networkinformation)\> | 网络搜索结果。 |
+
+## NetworkInformation
+
+网络信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称            | 类型                                      | 说明           |
+| --------------- | ----------------------------------------- | -------------- |
+| operatorName    | string                                    | 运营商的名称。 |
+| operatorNumeric | string                                    | 运营商数字。   |
+| state           | [NetworkInformationState](#networkinformationstate) | 网络信息状态。 |
+| radioTech       | string                                    | 无线电技术。   |
+
+## NetworkInformationState
+
+网络信息状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称              | 值   | 说明             |
+| ----------------- | ---- | ---------------- |
+| NETWORK_UNKNOWN   | 0    | 网络状态未知。   |
+| NETWORK_AVAILABLE | 1    | 网络可用于注册。 |
+| NETWORK_CURRENT   | 2    | 已在网络中注册。 |
+| NETWORK_FORBIDDEN | 3    | 网络无法注册。   |
+
+## NetworkSelectionModeOptions
+
+网络选择模式选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称               | 类型                                          | 说明                                   |
+| ------------------ | --------------------------------------------- | -------------------------------------- |
+| slotId             | number                                        | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| selectMode         | [NetworkSelectionMode](#networkselectionmode) | 网络选择模式。                        |
+| networkInformation | [NetworkInformation](#networkinformation)    | 网络信息。                            |
+| resumeSelection    | boolean                                       | 继续选择。                             |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-request.md b/zh-cn/application-dev/reference/apis/js-apis-request.md
index 75d6b4faa5586f948c01259d0d39fb90f7523f2f..b0e42ef70ce809931acd3248d1b99bb6d7b0cd6f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-request.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-request.md
@@ -16,9 +16,9 @@ import request from '@ohos.request';
 
 ## 限制与约束
 
-默认支持https,如果要支持http,需要在config.json里增加network标签,属性标识 "cleartextTraffic": true。即:
+在开发FA模型下的应用程序时, 默认支持https,如果要支持http,需要在config.json里增加network标签,属性标识 "cleartextTraffic": true。即:
 
-```
+```js
 var config = {
   "deviceConfig": {
     "default": {
@@ -31,6 +31,9 @@ var config = {
 }
 ```
 
+在开发stage模型下的应用程序时,不涉及属性标识 "cleartextTraffic"。
+
+
 
 ## 常量
 
@@ -68,6 +71,8 @@ upload(config: UploadConfig): Promise&lt;UploadTask&gt;
 
 上传,异步方法,使用promise形式返回结果。
 
+此接口仅可在FA模型下使用
+
 **需要权限**:ohos.permission.INTERNET
 
 **系统能力**: SystemCapability.MiscServices.Upload
@@ -87,11 +92,15 @@ upload(config: UploadConfig): Promise&lt;UploadTask&gt;
 **示例:**
   
   ```js
-  let file1 = { filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" };
-  let data = { name: "name123", value: "123" };
-  let header = { key1: "value1", key2: "value2" };
   let uploadTask;
-  request.upload({ url: 'https://patch', header: header, method: "POST", files: [file1], data: [data] }).then((data) => {
+  let uploadConfig = {
+    url: 'https://patch',
+    header: { key1: "value1", key2: "value2" },
+    method: "POST",
+    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
+    data: [{ name: "name123", value: "123" }],
+  };
+  request.upload(uploadConfig).then((data) => {
       uploadTask = data;
   }).catch((err) => {
       console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
@@ -105,6 +114,8 @@ upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
 
 上传,异步方法,使用callback形式返回结果。
 
+此接口仅可在FA模型下使用
+
 **需要权限**:ohos.permission.INTERNET
 
 **系统能力**: SystemCapability.MiscServices.Upload
@@ -119,11 +130,15 @@ upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
 **示例:**
   
   ```js
-  let file1 = { filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" };
-  let data = { name: "name123", value: "123" };
-  let header = { key1: "value1", key2: "value2" };
   let uploadTask;
-  request.upload({ url: 'https://patch', header: header, method: "POST", files: [file1], data: [data] }, (err, data) => {
+  let uploadConfig = {
+    url: 'https://patch',
+    header: { key1: "value1", key2: "value2" },
+    method: "POST",
+    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
+    data: [{ name: "name123", value: "123" }],
+  };
+  request.upload(uploadConfig, (err, data) => {
       if (err) {
           console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
           return;
@@ -131,7 +146,86 @@ upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
       uploadTask = data;
   });
   ```
+## request.upload<sup>9+</sup>
+
+upload(context: BaseContext, config: UploadConfig): Promise&lt;UploadTask&gt;
+
+上传,异步方法,使用promise形式返回结果。
+
+**需要权限**:ohos.permission.INTERNET
+
+**系统能力**: SystemCapability.MiscServices.Upload
+
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | context | BaseContext | 是 | 基于应用程序的上下文。 |
+  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
+  
 
+**返回值:**
+
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;[UploadTask](#uploadtask)&gt; | 返回上传任务。 |
+
+**示例:**
+  
+  ```js
+  let uploadTask;
+  let uploadConfig = {
+    url: 'https://patch',
+    header: { key1: "value1", key2: "value2" },
+    method: "POST",
+    files: { filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" },
+    data: { name: "name123", value: "123" },
+  };
+  request.upload(globalThis.abilityContext, uploadConfig).then((data) => {
+      uploadTask = data;
+  }).catch((err) => {
+      console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
+  });
+  ```
+
+
+## request.upload<sup>9+</sup>
+
+upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
+
+上传,异步方法,使用callback形式返回结果。
+
+**需要权限**:ohos.permission.INTERNET
+
+**系统能力**: SystemCapability.MiscServices.Upload
+
+**参数:**
+
+  | 参数名 | 参数类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | context | BaseContext | 是 | 基于应用程序的上下文。 |
+  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
+  | callback | AsyncCallback&lt;[UploadTask](#uploadtask)&gt; | 否 | 回调函数,异步返回UploadTask对象。 |
+
+**示例:**
+  
+  ```js
+  let uploadTask;
+  let uploadConfig = {
+    url: 'https://patch',
+    header: { key1: "value1", key2: "value2" },
+    method: "POST",
+    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
+    data: [{ name: "name123", value: "123" }],
+  };
+  request.upload(globalThis.abilityContext, uploadConfig, (err, data) => {
+      if (err) {
+          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
+          return;
+      }
+      uploadTask = data;
+  });
+  ```
 
 ## UploadTask
 
@@ -338,6 +432,8 @@ remove(callback: AsyncCallback&lt;boolean&gt;): void
 
 ## UploadConfig
 
+**需要权限**:ohos.permission.INTERNET
+
 **系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。
 
 | 名称 | 类型 | 必填 | 说明 |
@@ -351,7 +447,9 @@ remove(callback: AsyncCallback&lt;boolean&gt;): void
 
 ## File
 
-**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。
+**需要权限**:ohos.permission.INTERNET
+
+**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download
 
 | 名称 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
@@ -363,8 +461,9 @@ remove(callback: AsyncCallback&lt;boolean&gt;): void
 
 ## RequestData
 
-**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。
+**需要权限**:ohos.permission.INTERNET
 
+**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download
 | 名称 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | name | string | 是 | 表示表单元素的名称。 |
@@ -377,6 +476,8 @@ download(config: DownloadConfig): Promise&lt;DownloadTask&gt;
 
 下载,异步方法,使用promise形式返回结果。
 
+此接口仅可在FA模型下使用
+
 **需要权限**:ohos.permission.INTERNET
 
 **系统能力**: SystemCapability.MiscServices.Download
@@ -411,6 +512,8 @@ download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): v
 
 下载,异步方法,使用callback形式返回结果。
 
+此接口仅可在FA模型下使用
+
 **需要权限**:ohos.permission.INTERNET
 
 **系统能力**: SystemCapability.MiscServices.Download
@@ -436,7 +539,72 @@ download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): v
   });
   ```
 
+## request.download<sup>9+</sup>
+
+download(context: BaseContext, config: DownloadConfig): Promise&lt;DownloadTask&gt;
+
+下载,异步方法,使用promise形式返回结果。
+
+**需要权限**:ohos.permission.INTERNET
+
+**系统能力**: SystemCapability.MiscServices.Download
+
+**参数:**
+
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | context | BaseContext | 是 | 基于应用程序的上下文。 |
+  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
+
+**返回值:**
+
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;[DownloadTask](#downloadtask)&gt; | 返回下载任务。 |
+
+**示例:**
+  
+  ```js
+  let downloadTask;
+  request.download(globalThis.abilityContext, { url: 'https://xxxx/xxxx.hap' }).then((data) => {
+      downloadTask = data;
+  }).catch((err) => {
+      console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
+  })
+  ```
+
+
+## request.download<sup>9+</sup>
+
+download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void;
+
+下载,异步方法,使用callback形式返回结果。
+
+**需要权限**:ohos.permission.INTERNET
+
+**系统能力**: SystemCapability.MiscServices.Download
+
+**参数:**
+
+  | 参数名 | 参数类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | context | BaseContext | 是 | 基于应用程序的上下文。 |
+  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
+  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 否 | 下载接口的回调函数。 |
 
+**示例:**
+  
+  ```js
+  let downloadTask;
+  request.download(globalThis.abilityContext, { url: 'https://xxxx/xxxxx.hap', 
+  filePath: 'xxx/xxxxx.hap'}, (err, data) => {
+      if (err) {
+          console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
+          return;
+      }
+      downloadTask = data;
+  });
+  ```
 ## DownloadTask
 
 下载任务。
@@ -936,6 +1104,8 @@ resume(callback: AsyncCallback&lt;void&gt;): void
 
 ## DownloadConfig
 
+**需要权限**:ohos.permission.INTERNET
+
 **系统能力**: SystemCapability.MiscServices.Download
 
 | 名称 | 类型 | 必填 | 说明 |
@@ -948,10 +1118,13 @@ resume(callback: AsyncCallback&lt;void&gt;): void
 | filePath<sup>7+</sup> | string | 否 | 设置下载路径(默认在'internal://cache/'路径下)。<br/>-&nbsp;filePath:'workspace/test.txt':默认路径下创建workspace路径,并将文件存储在workspace路径下。<br/>-&nbsp;filePath:'test.txt':将文件存储在默认路径下。<br/>-&nbsp;filePath:'workspace/':默认路径下创建workspace路径,并将文件存储在workspace路径下。 |
 | networkType | number | 否 | 设置允许下载的网络类型。 |
 | title | string | 否 | 设置下载会话标题。 |
+| background | boolean | 否 | 后台任务通知开关,开启后可在通知中显示下载状态。 |
 
 
 ## DownloadInfo<sup>7+</sup>
 
+**需要权限**:ohos.permission.INTERNET
+
 **系统能力**: SystemCapability.MiscServices.Download
 
 | 名称 | 类型 | 必填 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md b/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md
index 14d19f464809e47dbd75d91af9eaf83143ec29c2..c187b3366cd892a42d791471a64fbf7d6ff23c9e 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md
@@ -9,7 +9,7 @@
 
 ## 导入模块
 
-```
+```js
 import resourceManager from '@ohos.resourceManager';
 ```
 
@@ -17,7 +17,7 @@ import resourceManager from '@ohos.resourceManager';
 
 从API Version9开始,Stage模型支持了通过context获取resourceManager对象的方式,再调用其内部获取资源的接口,无需再导入包,此方式FA模型不适用。
 
-```
+```ts
 this.context.resourceManager;
 ```
 
@@ -37,7 +37,7 @@ getResourceManager(callback: AsyncCallback&lt;ResourceManager&gt;): void
 | callback | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | 是    | callback方式返回ResourceManager对象 |
 
 **示例:** 
-  ```
+  ```js
   resourceManager.getResourceManager((error, mgr) => {
       if (error != null) {
           console.log("error is " + error);
@@ -71,7 +71,7 @@ getResourceManager(bundleName: string, callback: AsyncCallback&lt;ResourceManage
 | callback   | AsyncCallback&lt;[ResourceManager](#resourcemanager)&gt; | 是    | callback方式返回ResourceManager对象 |
 
 **示例:** 
-  ```
+  ```js
   resourceManager.getResourceManager("com.example.myapplication", (error, mgr) => {
   });
   ```
@@ -93,7 +93,7 @@ getResourceManager(): Promise&lt;ResourceManager&gt;
 | Promise&lt;[ResourceManager](#resourcemanager)&gt; | Promise方式返回资源管理对象 |
 
 **示例:** 
-  ```
+  ```js
   resourceManager.getResourceManager().then(mgr => {
       mgr.getString(0x1000000, (error, value) => {
           if (error != null) {
@@ -129,11 +129,9 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 | Promise&lt;[ResourceManager](#resourcemanager)&gt; | Promise方式返回的资源管理对象 |
 
 **示例:** 
-  ```
+  ```js
   resourceManager.getResourceManager("com.example.myapplication").then(mgr => {
-
   }).catch(error => {
-
   });
   ```
 
@@ -142,7 +140,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 用于表示设备屏幕方向。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+**系统能力**:SystemCapability.Global.ResourceManager
 
 | 名称                   | 默认值  | 说明   |
 | -------------------- | ---- | ---- |
@@ -154,7 +152,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 用于表示当前设备类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+**系统能力**:SystemCapability.Global.ResourceManager
 
 | 名称                   | 默认值  | 说明   |
 | -------------------- | ---- | ---- |
@@ -170,7 +168,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 用于表示当前设备屏幕密度。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+**系统能力**:SystemCapability.Global.ResourceManager
 
 | 名称             | 默认值  | 说明         |
 | -------------- | ---- | ---------- |
@@ -186,7 +184,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 表示当前设备的状态。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+**系统能力**:SystemCapability.Global.ResourceManager
 
 
 | 名称        | 参数类型                    | 可读   | 可写   | 说明       |
@@ -196,7 +194,7 @@ getResourceManager(bundleName: string): Promise&lt;ResourceManager&gt;
 
 **示例:**
 
-  ```
+  ```js
 resourceManager.getResourceManager((error, mgr) => {
       mgr.getConfiguration((error, value) => {
           let direction = value.direction;
@@ -209,7 +207,7 @@ resourceManager.getResourceManager((error, mgr) => {
 
 表示设备支持的能力。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+**系统能力**:SystemCapability.Global.ResourceManager
 
 
 | 名称            | 参数类型                            | 可读   | 可写   | 说明       |
@@ -219,7 +217,7 @@ resourceManager.getResourceManager((error, mgr) => {
 
 **示例:**
 
-  ```
+  ```js
 resourceManager.getResourceManager((error, mgr) => {
       mgr.getDeviceCapability((error, value) => {
           let screenDensity = value.screenDensity;
@@ -230,8 +228,9 @@ resourceManager.getResourceManager((error, mgr) => {
 
 ## RawFileDescriptor<sup>8+</sup>
 
-表示rawfile的descriptor信息。<br>
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
+表示rawfile的descriptor信息。
+
+**系统能力:** SystemCapability.Global.ResourceManager
 
 | 名称     | 类型     | 说明                 |
 | ------ | ------ | ------------------ |
@@ -245,11 +244,11 @@ resourceManager.getResourceManager((error, mgr) => {
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Global.ResourceManager
 
-| 名称     | 类型     | 说明                 |
-| ------ | ------ | ------------------ |
+| 名称         | 类型     | 说明          |
+| ---------- | ------ | ----------- |
 | bundleName | string | 应用的bundle名称 |
-| moduleName | string | 应用的module名称      |
-| id         | number | 资源的id值       |
+| moduleName | string | 应用的module名称 |
+| id         | number | 资源的id值      |
 
 
 ## ResourceManager
@@ -278,7 +277,7 @@ getString(resId: number, callback: AsyncCallback&lt;string&gt;): void
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getString($r('app.string.test').id, (error, value) => {
           if (error != null) {
@@ -310,7 +309,7 @@ getString(resId: number): Promise&lt;string&gt;
 | Promise&lt;string&gt; | 资源ID值对应的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getString($r('app.string.test').id).then(value => {
           let str = value;
@@ -332,11 +331,11 @@ getString(resource: Resource, callback: AsyncCallback&lt;string&gt;): void
 **参数:** 
 | 参数名      | 类型                          | 必填   | 说明              |
 | -------- | --------------------------- | ---- | --------------- |
-| resource    | [Resource](#resource9)                     | 是    | 资源信息           |
+| resource | [Resource](#resource9)      | 是    | 资源信息            |
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -360,17 +359,17 @@ getString(resource: Resource): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型                    | 说明               |
+| --------------------- | ---------------- |
 | Promise&lt;string&gt; | resource对象对应的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -398,7 +397,7 @@ getStringArray(resId: number, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;
 | callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | 异步回调,用于返回获取的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getStringArray($r('app.strarray.test').id, (error, value) => {
           if (error != null) {
@@ -430,7 +429,7 @@ getStringArray(resId: number): Promise&lt;Array&lt;string&gt;&gt;
 | Promise&lt;Array&lt;string&gt;&gt; | 资源ID值对应的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
        mgr.getStringArray($r('app.strarray.test').id).then(value => {
           let strArray = value;
@@ -449,13 +448,13 @@ getStringArray(resource: Resource, callback: AsyncCallback&lt;Array&lt;string&gt
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名      | 类型                          | 必填   | 说明              |
-| -------- | --------------------------- | ---- | --------------- |
-| resource    | [Resource](#resource9)                      | 是    | 资源信息           |
+| 参数名      | 类型                                       | 必填   | 说明                |
+| -------- | ---------------------------------------- | ---- | ----------------- |
+| resource | [Resource](#resource9)                   | 是    | 资源信息              |
 | callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | 异步回调,用于返回获取的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -479,17 +478,17 @@ getStringArray(resource: Resource): Promise&lt;Array&lt;string&gt;&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型                                 | 说明                 |
+| ---------------------------------- | ------------------ |
 | Promise&lt;Array&lt;string&gt;&gt; | resource对象对应的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -517,7 +516,7 @@ getMedia(resId: number, callback: AsyncCallback&lt;Uint8Array&gt;): void
 | callback | AsyncCallback&lt;Uint8Array&gt; | 是    | 异步回调,用于返回获取的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getMedia($r('app.media.test').id, (error, value) => {
           if (error != null) {
@@ -549,7 +548,7 @@ getMedia(resId: number): Promise&lt;Uint8Array&gt;
 | Promise&lt;Uint8Array&gt; | 资源ID值对应的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getMedia($r('app.media.test').id).then(value => {
           let media = value;
@@ -568,13 +567,13 @@ getMedia(resource: Resource, callback: AsyncCallback&lt;Uint8Array&gt;): void
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名      | 类型                          | 必填   | 说明              |
-| -------- | --------------------------- | ---- | --------------- |
-| resource    | [Resource](#resource9)                      | 是    | 资源信息           |
+| 参数名      | 类型                              | 必填   | 说明                 |
+| -------- | ------------------------------- | ---- | ------------------ |
+| resource | [Resource](#resource9)          | 是    | 资源信息               |
 | callback | AsyncCallback&lt;Uint8Array&gt; | 是    | 异步回调,用于返回获取的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -598,17 +597,17 @@ getMedia(resource: Resource): Promise&lt;Uint8Array&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型                        | 说明                  |
+| ------------------------- | ------------------- |
 | Promise&lt;Uint8Array&gt; | resource对象对应的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -636,7 +635,7 @@ getMediaBase64(resId: number, callback: AsyncCallback&lt;string&gt;): void
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getMediaBase64($r('app.media.test').id, (error, value) => {
           if (error != null) {
@@ -668,7 +667,7 @@ getMediaBase64(resId: number): Promise&lt;string&gt;
 | Promise&lt;string&gt; | 资源ID值对应的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getMediaBase64($r('app.media.test').id).then(value => {
           let media = value;
@@ -689,11 +688,11 @@ getMediaBase64(resource: Resource, callback: AsyncCallback&lt;string&gt;): void
 **参数:** 
 | 参数名      | 类型                          | 必填   | 说明                       |
 | -------- | --------------------------- | ---- | ------------------------ |
-| resource    | [Resource](#resource9)                      | 是    | 资源信息                    |
+| resource | [Resource](#resource9)      | 是    | 资源信息                     |
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -717,17 +716,17 @@ getMediaBase64(resource: Resource): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明                   |
-| --------------------- | -------------------- |
+| 类型                    | 说明                        |
+| --------------------- | ------------------------- |
 | Promise&lt;string&gt; | resource对象对应的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -755,7 +754,7 @@ getConfiguration(callback: AsyncCallback&lt;Configuration&gt;): void
 | callback | AsyncCallback&lt;[Configuration](#configuration)&gt; | 是    | 异步回调,用于返回设备的Configuration |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getConfiguration((error, value) => {
           if (error != null) {
@@ -783,7 +782,7 @@ getConfiguration(): Promise&lt;Configuration&gt;
 | Promise&lt;[Configuration](#configuration)&gt; | 设备的Configuration |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getConfiguration().then(value => {
           let direction = value.direction;
@@ -809,7 +808,7 @@ getDeviceCapability(callback: AsyncCallback&lt;DeviceCapability&gt;): void
 | callback | AsyncCallback&lt;[DeviceCapability](#devicecapability)&gt; | 是    | 异步回调,用于返回设备的DeviceCapability |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getDeviceCapability((error, value) => {
           if (error != null) {
@@ -837,7 +836,7 @@ getDeviceCapability(): Promise&lt;DeviceCapability&gt;
 | Promise&lt;[DeviceCapability](#devicecapability)&gt; | 设备的DeviceCapability |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getDeviceCapability().then(value => {
           let screenDensity = value.screenDensity;
@@ -865,7 +864,7 @@ getPluralString(resId: number, num: number, callback: AsyncCallback&lt;string&gt
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,返回根据指定数量获取指定ID字符串表示的单复数字符串 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getPluralString($r("app.plural.test").id, 1, (error, value) => {
           if (error != null) {
@@ -898,7 +897,7 @@ getPluralString(resId: number, num: number): Promise&lt;string&gt;
 | Promise&lt;string&gt; | 根据提供的数量获取对应ID字符串表示的单复数字符串 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getPluralString($r("app.plural.test").id, 1).then(value => {
           let str = value;
@@ -917,14 +916,14 @@ getPluralString(resource: Resource, num: number, callback: AsyncCallback&lt;stri
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名      | 类型                          | 必填   | 说明                              |
-| -------- | --------------------------- | ---- | ------------------------------- |
-| resource    | [Resource](#resource9)                      | 是    | 资源信息                           |
-| num      | number                      | 是    | 数量值                             |
+| 参数名      | 类型                          | 必填   | 说明                                   |
+| -------- | --------------------------- | ---- | ------------------------------------ |
+| resource | [Resource](#resource9)      | 是    | 资源信息                                 |
+| num      | number                      | 是    | 数量值                                  |
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,返回根据指定数量获取指定resource对象表示的单复数字符串 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -948,18 +947,18 @@ getPluralString(resource: Resource, num: number): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
-| num   | number | 是    | 数量值   |
+| num      | number                 | 是    | 数量值  |
 
 **返回值:** 
-| 类型                    | 说明                        |
-| --------------------- | ------------------------- |
+| 类型                    | 说明                             |
+| --------------------- | ------------------------------ |
 | Promise&lt;string&gt; | 根据提供的数量获取对应resource对象表示的单复数字符串 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -987,7 +986,7 @@ getRawFile(path: string, callback: AsyncCallback&lt;Uint8Array&gt;): void
 | callback | AsyncCallback&lt;Uint8Array&gt; | 是    | 异步回调,用于返回获取的rawfile文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getRawFile("test.xml", (error, value) => {
           if (error != null) {
@@ -1018,7 +1017,7 @@ getRawFile(path: string): Promise&lt;Uint8Array&gt;
 | Promise&lt;Uint8Array&gt; | rawfile文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getRawFile("test.xml").then(value => {
           let rawFile = value;
@@ -1043,7 +1042,7 @@ getRawFileDescriptor(path: string, callback: AsyncCallback&lt;RawFileDescriptor&
 | callback | AsyncCallback&lt;[RawFileDescriptor](#rawfiledescriptor8)&gt; | 是    | 异步回调,用于返回获取的rawfile文件的descriptor |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getRawFileDescriptor("test.xml", (error, value) => {
           if (error != null) {
@@ -1076,7 +1075,7 @@ getRawFileDescriptor(path: string): Promise&lt;RawFileDescriptor&gt;
 | Promise&lt;[RawFileDescriptor](#rawfiledescriptor8)&gt; | rawfile文件descriptor |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.getRawFileDescriptor("test.xml").then(value => {
           let fd = value.fd;
@@ -1103,7 +1102,7 @@ closeRawFileDescriptor(path: string, callback: AsyncCallback&lt;void&gt;): void
 | callback | AsyncCallback&lt;void&gt; | 是    | 异步回调        |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.closeRawFileDescriptor("test.xml", (error, value) => {
           if (error != null) {
@@ -1132,7 +1131,7 @@ closeRawFileDescriptor(path: string): Promise&lt;void&gt;
 | Promise&lt;void&gt; | 无返回值 |
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.closeRawFileDescriptor("test.xml").then(value => {
           let result = value;
@@ -1151,7 +1150,7 @@ release()
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **示例:** 
-  ```
+  ```ts
   resourceManager.getResourceManager((error, mgr) => {
       mgr.release();
   });
@@ -1168,11 +1167,11 @@ getStringByName(resName: string, callback: AsyncCallback&lt;string&gt;): void
 **参数:**
 | 参数名      | 类型                          | 必填   | 说明              |
 | -------- | --------------------------- | ---- | --------------- |
-| resName  | string                      | 是   | 资源名称        |
-| callback | AsyncCallback&lt;string&gt; | 是   | 异步回调,用于返回获取的字符串 |
+| resName  | string                      | 是    | 资源名称            |
+| callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的字符串 |
 
 **示例:**
-  ```
+  ```ts
   this.context.resourceManager.getStringByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
@@ -1191,17 +1190,17 @@ getStringByName(resName: string): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:**
-| 参数名   | 类型     | 必填   | 说明    |
+| 参数名     | 类型     | 必填   | 说明   |
 | ------- | ------ | ---- | ---- |
-| resName | string | 是   | 资源名称 |
+| resName | string | 是    | 资源名称 |
 
 **返回值:**
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型                    | 说明         |
+| --------------------- | ---------- |
 | Promise&lt;string&gt; | 资源名称对应的字符串 |
 
 **示例:**
-  ```
+  ```ts
   this.context.resourceManager.getStringByName("test").then(value => {
       let string = value;
   }).catch(error => {
@@ -1220,11 +1219,11 @@ getStringArrayByName(resName: string, callback: AsyncCallback&lt;Array&lt;string
 **参数:**
 | 参数名      | 类型                                       | 必填   | 说明                |
 | -------- | ---------------------------------------- | ---- | ----------------- |
-| resName  | string                                   | 是    | 资源名称             |
+| resName  | string                                   | 是    | 资源名称              |
 | callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | 异步回调,用于返回获取的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getStringArrayByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
@@ -1243,17 +1242,17 @@ getStringArrayByName(resName: string): Promise&lt;Array&lt;string&gt;&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ------- | ------ | ---- | ----- |
-| resName | string | 是   | 资源名称 |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
+| resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                                 | 说明            |
-| ---------------------------------- | ------------- |
+| 类型                                 | 说明           |
+| ---------------------------------- | ------------ |
 | Promise&lt;Array&lt;string&gt;&gt; | 资源名称对应的字符串数组 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getStringArrayByName("test").then(value => {
       let strArray = value;
   }).catch(error => {
@@ -1272,11 +1271,11 @@ getMediaByName(resName: string, callback: AsyncCallback&lt;Uint8Array&gt;): void
 **参数:** 
 | 参数名      | 类型                              | 必填   | 说明                 |
 | -------- | ------------------------------- | ---- | ------------------ |
-| resName  | string                          | 是    | 资源名称              |
+| resName  | string                          | 是    | 资源名称               |
 | callback | AsyncCallback&lt;Uint8Array&gt; | 是    | 异步回调,用于返回获取的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getMediaByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
@@ -1295,17 +1294,17 @@ getMediaByName(resName: string): Promise&lt;Uint8Array&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| -----   | ------ | ---- | ----- |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
 | resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                        | 说明             |
-| ------------------------- | -------------- |
+| 类型                        | 说明            |
+| ------------------------- | ------------- |
 | Promise&lt;Uint8Array&gt; | 资源名称对应的媒体文件内容 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getMediaByName("test").then(value => {
       let media = value;
   }).catch(error => {
@@ -1324,11 +1323,11 @@ getMediaBase64ByName(resName: string, callback: AsyncCallback&lt;string&gt;): vo
 **参数:** 
 | 参数名      | 类型                          | 必填   | 说明                       |
 | -------- | --------------------------- | ---- | ------------------------ |
-| resName  | string                      | 是    | 资源名称                    |
+| resName  | string                      | 是    | 资源名称                     |
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,用于返回获取的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getMediaBase64ByName("test", (error, value) => {
       if (error != null) {
           console.log("error is " + error);
@@ -1347,17 +1346,17 @@ getMediaBase64ByName(resName: string): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ------- | ------ | ---- | ----- |
-| resName | string | 是   | 资源名称 |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
+| resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                    | 说明                   |
-| --------------------- | -------------------- |
+| 类型                    | 说明                  |
+| --------------------- | ------------------- |
 | Promise&lt;string&gt; | 资源名称对应的图片资源Base64编码 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getMediaBase64ByName("test").then(value => {
       let media = value;
   }).catch(error => {
@@ -1374,14 +1373,14 @@ getPluralStringByName(resName: string, num: number, callback: AsyncCallback&lt;s
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名      | 类型                          | 必填   | 说明                              |
-| -------- | --------------------------- | ---- | ------------------------------- |
-| resName  | string                      | 是    | 资源名称                           |
-| num      | number                      | 是    | 数量值                             |
+| 参数名      | 类型                          | 必填   | 说明                            |
+| -------- | --------------------------- | ---- | ----------------------------- |
+| resName  | string                      | 是    | 资源名称                          |
+| num      | number                      | 是    | 数量值                           |
 | callback | AsyncCallback&lt;string&gt; | 是    | 异步回调,返回根据传入的数量值获取资源名称对应的字符串资源 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getPluralStringByName("test", 1, (error, value) => {
       if (error != null) {
           console.log("error is " + error);
@@ -1400,18 +1399,18 @@ getPluralStringByName(resName: string, num: number): Promise&lt;string&gt;
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ------- | ------ | ---- | ----- |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
 | resName | string | 是    | 资源名称 |
-| num     | number | 是    | 数量值   |
+| num     | number | 是    | 数量值  |
 
 **返回值:** 
-| 类型                    | 说明                        |
-| --------------------- | ------------------------- |
+| 类型                    | 说明                     |
+| --------------------- | ---------------------- |
 | Promise&lt;string&gt; | 根据传入的数量值获取资源名称对应的字符串资源 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getPluralStringByName("test", 1).then(value => {
       let str = value;
   }).catch(error => {
@@ -1433,12 +1432,12 @@ getStringSync(resId: number): string
 | resId | number | 是    | 资源ID值 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明          |
+| ------ | ----------- |
 | string | 资源ID值对应的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getStringSync($r('app.string.test').id);
   ```
 
@@ -1451,17 +1450,17 @@ getStringSync(resource: Resource): string
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明               |
+| ------ | ---------------- |
 | string | resource对象对应的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -1479,17 +1478,17 @@ getStringByNameSync(resName: string): string
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
 | resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明         |
+| ------ | ---------- |
 | string | 资源名称对应的字符串 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getStringByNameSync("test");
   ```
 
@@ -1507,12 +1506,12 @@ getBoolean(resId: number): boolean
 | resId | number | 是    | 资源ID值 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型      | 说明           |
+| ------- | ------------ |
 | boolean | 资源ID值对应的布尔结果 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getBoolean($r('app.boolean.boolean_test').id);
   ```
 ### getBoolean<sup>9+</sup>
@@ -1524,17 +1523,17 @@ getBoolean(resource: Resource): boolean
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型      | 说明                |
+| ------- | ----------------- |
 | boolean | resource对象对应的布尔结果 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -1552,17 +1551,17 @@ getBooleanByName(resName: string): boolean
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ------- | ------ | ---- | ----- |
-| resName | string | 是   | 资源名称 |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
+| resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型      | 说明          |
+| ------- | ----------- |
 | boolean | 资源名称对应的布尔结果 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getBooleanByName("boolean_test");
   ```
 
@@ -1580,12 +1579,12 @@ getNumber(resId: number): number
 | resId | number | 是    | 资源ID值 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明         |
+| ------ | ---------- |
 | number | 资源ID值对应的数值 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getNumber($r('app.integer.integer_test').id);
   this.context.resourceManager.getNumber($r('app.float.float_test').id);
   ```
@@ -1599,17 +1598,17 @@ getNumber(resource: Resource): number
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名      | 类型                     | 必填   | 说明   |
+| -------- | ---------------------- | ---- | ---- |
 | resource | [Resource](#resource9) | 是    | 资源信息 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明              |
+| ------ | --------------- |
 | number | resource对象对应的数值 |
 
 **示例:** 
-  ```
+  ```ts
   let resource = {
       bundleName: "com.example.myapplication",
       moduleName: "entry",
@@ -1627,17 +1626,17 @@ getNumberByName(resName: string): number
 **系统能力**:SystemCapability.Global.ResourceManager
 
 **参数:** 
-| 参数名   | 类型     | 必填   | 说明    |
-| ----- | ------ | ---- | ----- |
+| 参数名     | 类型     | 必填   | 说明   |
+| ------- | ------ | ---- | ---- |
 | resName | string | 是    | 资源名称 |
 
 **返回值:** 
-| 类型                    | 说明          |
-| --------------------- | ----------- |
+| 类型     | 说明        |
+| ------ | --------- |
 | number | 资源名称对应的数值 |
 
 **示例:** 
-  ```
+  ```ts
   this.context.resourceManager.getNumberByName("integer_test");
   this.context.resourceManager.getNumberByName("float_test");
   ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md
index 51f8738c2fdf55c470c2d5e4d4159e459974912b..2b6cf2dcb4dd56d65dc34cb7d3e7ef7c841833f6 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-router.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-router.md
@@ -2,9 +2,10 @@
 
 本模块提供通过不同的url访问不同的页面,包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明**
+> **说明**
 >
 > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 
 > - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。
 
 ## 导入模块
@@ -13,100 +14,108 @@
 import router from '@ohos.router'
 ```
 
-## 权限列表
-
-æ— 
-
 ## router.push
 
-push(options: RouterOptions, mode?: RouterMode): void
+push(options: RouterOptions): void
 
 跳转到应用内的指定页面。
 
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 |
-| mode<sup>9+</sup> | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 |
+| 参数名  | 类型                            | 必填 | 说明               |
+| ------- | ------------------------------- | ---- | ------------------ |
+| options | [RouterOptions](#routeroptions) | 是   | 跳转页面描述信息。 |
 
 
 **示例:**
-  ```js
-  // 在当前页面中
-  export default {
-    pushPage() {
-      router.push({
-        url: 'pages/routerpage2/routerpage2',
-        params: {
-  	data1: 'message',
-          data2: {
-            data3: [123, 456, 789]
-  	},
-        },
-      });
-    }
-  }
-  ```
-  ```js
-  // 在routerpage2页面中
-  export default {
-    data: {
-      data1: 'default',
-      data2: {
-        data3: [1, 2, 3]
-      }
+```js
+router.push({
+  url: 'pages/routerpage2',
+  params: {
+    data1: 'message',
+    data2: {
+      data3: [123, 456, 789]
     },
-    onInit() {
-      console.info('showData1:' + this.data1);
-      console.info('showData3:' + this.data2.data3);
-    }
-  }
-  ```
+  },
+});
+```
+## router.push<sup>9+</sup>
+
+push(options: RouterOptions, mode: RouterMode): void
 
+跳转到应用内的指定页面。
+
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full
+
+**参数:**
+| 参数名            | 类型                            | 必填 | 说明                 |
+| ----------------- | ------------------------------- | ---- | -------------------- |
+| options           | [RouterOptions](#routeroptions) | 是   | 跳转页面描述信息。   |
+| mode<sup>9+</sup> | [RouterMode](#routermode9)      | 是   | 跳转页面使用的模式。 |
+
+
+**示例:**
+```js
+router.push({
+  url: 'pages/routerpage2/routerpage2',
+  params: {
+    data1: 'message',
+    data2: {
+      data3: [123, 456, 789]
+    },
+  },
+},router.RouterMode.Standard);
+```
 
 ## router.replace
 
-replace(options: RouterOptions, mode?: RouterMode): void
+replace(options: RouterOptions): void
 
 用应用内的某个页面替换当前页面,并销毁被替换的页面。
 
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 |
-| mode<sup>9+</sup> | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 |
+| 参数名  | 类型                            | 必填 | 说明               |
+| ------- | ------------------------------- | ---- | ------------------ |
+| options | [RouterOptions](#routeroptions) | 是   | 替换页面描述信息。 |
 
 **示例:**
 
-  ```js
-  // 在当前页面中
-  export default {
-    replacePage() {
-      router.replace({
-        url: 'pages/detail/detail',
-        params: {
-          data1: 'message',
-        },
-      }, router.RouterMode.Standard);
-    }
-  }
-  ```
+```js
+router.replace({
+  url: 'pages/detail',
+  params: {
+    data1: 'message',
+  },
+});
+```
 
-  ```js
-  // 在detail页面中
-  export default {
-    data: {
-      data1: 'default'
-    },
-    onInit() {
-      console.info('showData1:' + this.data1)
-    }
-  }
-  ```
+  ## router.replace<sup>9+</sup>
+
+replace(options: RouterOptions, mode: RouterMode): void
+
+用应用内的某个页面替换当前页面,并销毁被替换的页面。
+
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full
+
+**参数:**
+| 参数名            | 类型                            | 必填 | 说明                 |
+| ----------------- | ------------------------------- | ---- | -------------------- |
+| options           | [RouterOptions](#routeroptions) | 是   | 替换页面描述信息。   |
+| mode<sup>9+</sup> | [RouterMode](#routermode9)      | 是   | 跳转页面使用的模式。 |
+
+**示例:**
+
+```js
+router.replace({
+  url: 'pages/detail/detail',
+  params: {
+    data1: 'message',
+  },
+}, router.RouterMode.Standard);
+```
 
 ## router.back
 
@@ -117,59 +126,15 @@ back(options?: RouterOptions ): void
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [RouterOptions](#routeroptions) | 是 | 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 |
+| 参数名  | 类型                            | 必填 | 说明                                                         |
+| ------- | ------------------------------- | ---- | ------------------------------------------------------------ |
+| options | [RouterOptions](#routeroptions) | 否   | 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 |
 
 **示例:**
-  ```js
-  // index页面
-  export default {    
-    indexPushPage() {        
-      router.push({            
-        url: 'pages/detail/detail',        
-      });        
-    }
-  }
-  ```
 
-  ```js
-  // detail页面
-  export default {    
-    detailPushPage() {        
-      router.push({            
-        url: 'pages/mall/mall',        
-      });    
-    }
-  }
-  ```
-
-  ```js
-  // mall页面通过back,将返回detail页面
-  export default {    
-    mallBackPage() {        
-      router.back();    
-    }
-  }
-  ```
-
-  ```js
-  // detail页面通过back,将返回index页面
-  export default {    
-    defaultBack() {        
-      router.back();    
-    }
-  }
-  ```
-
-  ```js
-  // 通过back,返回到detail页面
-  export default {    
-    backToDetail() {        
-      router.back({uri:'pages/detail/detail'});    
-    }
-  }
-  ```
+```js
+router.back({url:'pages/detail'});    
+```
 
 ## router.clear
 
@@ -180,13 +145,10 @@ clear(): void
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-  ```js
-  export default {    
-    clearPage() {        
-      router.clear();    
-    }
-  }js
-  ```
+
+```js
+router.clear();    
+```
 
 ## router.getLength
 
@@ -197,19 +159,15 @@ getLength(): string
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **返回值:**
-| 类型 | 说明 |
-| -------- | -------- |
+| 类型   | 说明                               |
+| ------ | ---------------------------------- |
 | string | 页面数量,页面栈支持最大数值是32。 |
 
 **示例:**
-  ```js
-  export default {     
-    getLength() {        
-      var size = router.getLength();        
-      console.log('pages stack size = ' + size);    
-    }
-  }
-  ```
+```js
+var size = router.getLength();        
+console.log('pages stack size = ' + size);    
+```
 
 ## router.getState
 
@@ -224,28 +182,26 @@ getState(): RouterState
 | 类型                        | 说明           |
 | --------------------------- | -------------- |
 | [RouterState](#routerstate) | 页面状态信息。 |
+**示例:** 
+
+```js
+var page = router.getState();
+console.log('current index = ' + page.index);
+console.log('current name = ' + page.name);
+console.log('current path = ' + page.path);
+```
+
 ## RouterState
-页面状态信息。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
+页面状态信息。
 
-| 名称 | 类型 | 说明 |
-| -------- | -------- | -------- |
-| index | number | 表示当前页面在页面栈中的索引。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;从栈底到栈顶,index从1开始递增。 |
-| name | string | 表示当前页面的名称,即对应文件名。 |
-| path | string | 表示当前页面的路径。 |
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full。
 
-**示例:**
-  ```js
-  export default {     
-    getState() {        
-      var page = router.getState();
-      console.log('current index = ' + page.index);
-      console.log('current name = ' + page.name);
-      console.log('current path = ' + page.path);
-    }
-  }
-  ```
+| 名称  | 类型   | 说明                                                         |
+| ----- | ------ | ------------------------------------------------------------ |
+| index | number | 表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。 |
+| name  | string | 表示当前页面的名称,即对应文件名。                           |
+| path  | string | 表示当前页面的路径。                                         |
 
 ## router.enableAlertBeforeBackPage
 
@@ -256,26 +212,16 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| options | [EnableAlertOptions](#enablealertoptions) | 是 | 文本弹窗信息描述。 |
+| 参数名  | 类型                                      | 必填 | 说明               |
+| ------- | ----------------------------------------- | ---- | ------------------ |
+| options | [EnableAlertOptions](#enablealertoptions) | 是   | 文本弹窗信息描述。 |
 
 **示例:**
 
-  ```js
-  export default {    
-    enableAlertBeforeBackPage() {        
-      router.enableAlertBeforeBackPage({            
-        message: 'Message Info',            
-        success: function() {                
-          console.log('success');            
-        },            
-        fail: function() {                
-          console.log('fail');            
-        },        
-      });    
-    }
-  }
+  ```js        
+  router.enableAlertBeforeBackPage({            
+    message: 'Message Info'        
+  });    
   ```
 ## EnableAlertOptions
 
@@ -283,9 +229,9 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
 
 **系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
 
-| 名称 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| message | string | 是 | 询问对话框内容。 |
+| 名称    | 类型   | 必填 | 说明             |
+| ------- | ------ | ---- | ---------------- |
+| message | string | 是   | 询问对话框内容。 |
 
 ## router.disableAlertBeforeBackPage
 
@@ -296,13 +242,9 @@ disableAlertBeforeBackPage(): void
 **系统能力:** SystemCapability.ArkUI.ArkUI.Full
 
 **示例:**
-  ```js
-  export default {    
-    disableAlertBeforeBackPage() {        
-      router.disableAlertBeforeBackPage();    
-    }
-  }
-  ```
+```js
+router.disableAlertBeforeBackPage();    
+```
 
 ##  router.getParams
 
@@ -320,133 +262,140 @@ getParams(): Object
 
 **示例:**
 
-- 类Web范示例
-  ```js
-  // 在当前页面中
-  export default {
-    pushPage() {
-      router.push({
-        url: 'pages/detail/detail',
-        params: {
-          data1: 'message',
-        },
-      });
-    }
-  }
-  ```
-  ```js
-  // 在detail页面中
-  export default {
-    onInit() {
-      console.info('showData1:' + router.getParams().data1);
-    }
-  }
-  ```
-
-- 声明式示例
-
-  ```ts
-  //通过router.push跳转至目标页携带params参数
-  import router from '@ohos.router'
-  
-  @Entry
-  @Component
-  struct Index {
-    async  routePage() {
-      let options = {
-        url: 'pages/second',
-        params: {
-          text: '这是第一页的值',
-          data: {
-            array: [12, 45, 78]
-          },
-        }
-      }
-      try {
-        await router.push(options)
-      } catch (err) {
-        console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
-      }
-    }
-  
-    build() {
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
-          Text('这是第一页')
-            .fontSize(50)
-            .fontWeight(FontWeight.Bold)
-        Button() {
-          Text('next page')
-            .fontSize(25)
-            .fontWeight(FontWeight.Bold)
-        }.type(ButtonType.Capsule)
-            .margin({ top: 20 })
-            .backgroundColor('#ccc')
-            .onClick(() => {
-              this.routePage()
-        })
-      }
-      .width('100%')
-      .height('100%')
-    }
-  }
-  ```
-
-  ```ts
-  //在second页面中接收传递过来的参数
-  import router from '@ohos.router'
-  
-  @Entry
-  @Component
-  struct Second {
-    private content: string = "这是第二页"
-    @State text: string = router.getParams()['text']
-    @State data: any = router.getParams()['data']
-    @State secondData : string = ''
-    
-    build() {
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
-        Text(`${this.content}`)
-          .fontSize(50)
-          .fontWeight(FontWeight.Bold)
-        Text(this.text)
-          .fontSize(30)
-          .onClick(()=>{
-            this.secondData = (this.data.array[1]).toString()
-          })
-        .margin({top:20})
-        Text('第一页传来的数值' + '  ' + this.secondData)
-          .fontSize(20)
-          .margin({top:20})
-          .backgroundColor('red')      
-      }
-      .width('100%')
-      .height('100%')
-    }
-  }
-  ```
+```
+router.getParams();
+```
 
 ## RouterOptions
 
 路由跳转选项。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。
+**系统能力:** SystemCapability.ArkUI.ArkUI.Lite。
 
-| 名称 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| url | string | 是 | 表示目标页面的uri,可以用以下两种格式:<br/>-&nbsp;页面绝对路径,由配置文件中pages列表提供,例如:<br/>&nbsp;&nbsp;-&nbsp;pages/index/index<br/>&nbsp;&nbsp;-&nbsp;pages/detail/detail<br/>-&nbsp;特殊值,如果uri的值是"/",则跳转到首页。 |
-| params | Object | 否 | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 |
+| 名称   | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| url    | string | 是   | 表示目标页面的uri,可以用以下两种格式:<br/>-&nbsp;页面绝对路径,由配置文件中pages列表提供,例如:<br/>&nbsp;&nbsp;-&nbsp;pages/index/index<br/>&nbsp;&nbsp;-&nbsp;pages/detail/detail<br/>-&nbsp;特殊值,如果uri的值是"/",则跳转到首页。 |
+| params | Object | 否   | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 |
 
 
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+  > **说明:**
   > 页面路由栈支持的最大Page数量为32。
 
 ## RouterMode<sup>9+</sup>
 
 路由跳转模式。
 
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。
+**系统能力:** SystemCapability.ArkUI.ArkUI.Full。
+
+| 名称     | 描述                                                         |
+| -------- | ------------------------------------------------------------ |
+| Standard | 标准模式。                                                   |
+| Single   | 单实例模式。<br/>如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。<br/>如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 |
+
+## 完整示例
 
-| 名称 | 描述 |
-| -------- | -------- |
-| Standard | 标准模式。 |
-| Single | 单实例模式。<br/>如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。<br/>如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 |
+### 基于JS扩展的类Web开发范式
+
+```js
+// 在当前页面中
+export default {
+  pushPage() {
+    router.push({
+      url: 'pages/detail/detail',
+      params: {
+        data1: 'message',
+      },
+    });
+  }
+}
+```
+```js
+// 在detail页面中
+export default {
+  onInit() {
+    console.info('showData1:' + router.getParams()[data1]);
+  }
+}
+```
+
+### 基于TS扩展的声明式开发范式
+
+```ts
+//通过router.push跳转至目标页携带params参数
+import router from '@ohos.router'
+
+@Entry
+@Component
+struct Index {
+  async  routePage() {
+    let options = {
+      url: 'pages/second',
+      params: {
+        text: '这是第一页的值',
+        data: {
+          array: [12, 45, 78]
+        },
+      }
+    }
+    try {
+      await router.push(options)
+    } catch (err) {
+      console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
+    }
+  }
+
+  build() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+        Text('这是第一页')
+          .fontSize(50)
+          .fontWeight(FontWeight.Bold)
+      Button() {
+        Text('next page')
+          .fontSize(25)
+          .fontWeight(FontWeight.Bold)
+      }.type(ButtonType.Capsule)
+          .margin({ top: 20 })
+          .backgroundColor('#ccc')
+          .onClick(() => {
+            this.routePage()
+      })
+    }
+    .width('100%')
+    .height('100%')
+  }
+}
+```
+
+```ts
+//在second页面中接收传递过来的参数
+import router from '@ohos.router'
+
+@Entry
+@Component
+struct Second {
+  private content: string = "这是第二页"
+  @State text: string = router.getParams()['text']
+  @State data: any = router.getParams()['data']
+  @State secondData : string = ''
+  
+  build() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+      Text(`${this.content}`)
+        .fontSize(50)
+        .fontWeight(FontWeight.Bold)
+      Text(this.text)
+        .fontSize(30)
+        .onClick(()=>{
+          this.secondData = (this.data.array[1]).toString()
+        })
+      .margin({top:20})
+      Text('第一页传来的数值' + '  ' + this.secondData)
+        .fontSize(20)
+        .margin({top:20})
+        .backgroundColor('red')      
+    }
+    .width('100%')
+    .height('100%')
+  }
+}
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-rpc.md b/zh-cn/application-dev/reference/apis/js-apis-rpc.md
index 2456ffa333aecefb4ef88ae0862ee8206325aeda..d45b3934bcdf596a5736864c81a19ef5fa7d5c94 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-rpc.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-rpc.md
@@ -1322,7 +1322,7 @@ writeFloatArray(floatArray: number[]): boolean
 **参数:**
     | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | floatArray | number[] | 是 | 要写入的浮点数组。 |
+  | floatArray | number[] | 是 | 要写入的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 |
 
 **返回值:**
     | 类型 | 说明 |
@@ -1349,7 +1349,7 @@ readFloatArray(dataIn: number[]) : void
 **参数:**
     | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | dataIn | number[] | 是 | 要读取的浮点数组。 |
+  | dataIn | number[] | 是 | 要读取的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 |
 
 
 **示例:**
@@ -1764,20 +1764,20 @@ readException(): void
   let reply = rpc.MessageParcel.create();
   data.writeInt(1);
   data.writeString("hello");
-  proxy.sendRequest(1, data, reply, option)
+  proxy.sendRequestAsync(1, data, reply, option)
       .then(function(errCode) {
           if (errCode === 0) {
-              console.log("sendRequest got result");
+              console.log("sendRequestAsync got result");
               reply.readException();
               let msg = reply.readString();
               console.log("RPCTest: reply msg: " + msg);
           } else {
-              console.log("RPCTest: sendRequest failed, errCode: " + errCode);
+              console.log("RPCTest: sendRequestAsync failed, errCode: " + errCode);
           }
       }).catch(function(e) {
-          console.log("RPCTest: sendRequest got exception: " + e.message);
+          console.log("RPCTest: sendRequestAsync got exception: " + e.message);
       }).finally (() => {
-          console.log("RPCTest: sendRequest ends, reclaim parcel");
+          console.log("RPCTest: sendRequestAsync ends, reclaim parcel");
           data.reclaim();
           reply.reclaim();
       });
@@ -2504,7 +2504,7 @@ queryLocalInterface(descriptor: string): IRemoteBroker
 ### sendRequest<sup>(deprecated)</sup>
 
 > **说明:**
-> 从 API Version 8 开始废弃,建议使用[sendRequest<sup>8+</sup>](#sendrequest8)替代。
+> 从 API Version 8 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
 
@@ -2526,7 +2526,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
   | boolean | 返回一个布尔值,true表示成功,false表示失败。|
 
 
-### sendRequest<sup>8+</sup>
+### sendRequest<sup>8+(deprecated)</sup>
+
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
 
@@ -2534,6 +2537,27 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
 
 **系统能力**:SystemCapability.Communication.IPC.Core
 
+**参数:**
+    | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
+  | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的&nbsp;MessageParcel对象。 |
+  | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 |
+  | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 |
+
+**返回值:**
+    | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;SendRequestResult&gt; | 返回一个期约,兑现值是sendRequestResult实例。|
+
+### sendRequestAsync<sup>9+</sup>
+
+sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
+
+以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
+
+**系统能力**:SystemCapability.Communication.IPC.Core
+
 **参数:**
     | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -2653,7 +2677,7 @@ isObjectDead(): boolean
 ### sendRequest<sup>(deprecated)</sup>
 
 > **说明:**
-> 从 API Version 8 开始废弃,建议使用[sendRequest<sup>8+</sup>](#sendrequest8-2)替代。
+> 从 API Version 8 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-1)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
 
@@ -2715,7 +2739,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
   reply.reclaim();
   ```
 
-### sendRequest<sup>8+</sup>
+### sendRequest<sup>8+(deprecated)</sup>
+
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-1)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
 
@@ -2782,6 +2809,72 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
       });
   ```
 
+### sendRequestAsync<sup>9+</sup>
+
+sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
+
+以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
+
+**系统能力**:SystemCapability.Communication.IPC.Core
+
+**参数:**
+    | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
+  | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的&nbsp;MessageParcel对象。 |
+  | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 |
+  | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 |
+
+**返回值:**
+    | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;SendRequestResult&gt; | 返回一个期约,兑现值是sendRequestResult实例。|
+
+**示例:**
+
+  ```
+  import FA from "@ohos.ability.featureAbility";
+  let proxy;
+  let connect = {
+      onConnect: function(elementName, remoteProxy) {
+          console.log("RpcClient: js onConnect called.");
+          proxy = remoteProxy;
+      },
+      onDisconnect: function(elementName) {
+          console.log("RpcClient: onDisconnect");
+      },
+      onFailed: function() {
+          console.log("RpcClient: onFailed");
+      }
+  };
+  let want = {
+      "bundleName": "com.ohos.server",
+      "abilityName": "com.ohos.server.MainAbility",
+  };
+  FA.connectAbility(want, connect);
+  let option = new rpc.MessageOption();
+  let data = rpc.MessageParcel.create();
+  let reply = rpc.MessageParcel.create();
+  data.writeInt(1);
+  data.writeString("hello");
+  proxy.sendRequestAsync(1, data, reply, option)
+      .then(function(result) {
+          if (result.errCode === 0) {
+              console.log("sendRequestAsync got result");
+              result.reply.readException();
+              let msg = result.reply.readString();
+              console.log("RPCTest: reply msg: " + msg);
+          } else {
+              console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode);
+          }
+      }).catch(function(e) {
+          console.log("RPCTest: sendRequestAsync got exception: " + e.message);
+      }).finally (() => {
+          console.log("RPCTest: sendRequestAsync ends, reclaim parcel");
+          data.reclaim();
+          reply.reclaim();
+      });
+  ```
 
 ### sendRequest<sup>8+</sup>
 
@@ -3082,7 +3175,7 @@ isObjectDead(): boolean
 | -------- | -------- | -------- |
 | TF_SYNC | 0 | 同步调用。 |
 | TF_ASYNC | 1 | 异步调用。 |
-| TF_ACCEPT_FDS | 0x10 | 指示[sendRequest](#sendrequest8)接口可以返回文件描述符。 |
+| TF_ACCEPT_FDS | 0x10 | 指示[sendRequestAsync](#sendrequestasync9)接口可以返回文件描述符。 |
 | TF_WAIT_TIME | 8 | 等待时间。单位秒。 |
 
 
@@ -3471,7 +3564,7 @@ RemoteObject构造函数。
 ### sendRequest<sup>(deprecated)</sup>
 
 > **说明:**
-> 从 API Version 8 开始废弃,建议使用[sendRequest<sup>8+</sup>](#sendrequest8-4)替代。
+> 从 API Version 8 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-2)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
 
@@ -3535,7 +3628,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
   ```
 
 
-### sendRequest<sup>8+</sup>
+### sendRequest<sup>8+(deprecated)</sup>
+
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-2)替代。
 
 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
 
@@ -3604,6 +3700,73 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
       });
   ```
 
+### sendRequestAsync<sup>9+</sup>
+
+sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise&lt;SendRequestResult&gt;
+
+以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
+
+**系统能力**:SystemCapability.Communication.IPC.Core
+
+**参数:**
+    | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
+  | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的&nbsp;MessageParcel对象。 |
+  | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 |
+  | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 |
+
+**返回值:**
+    | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;SendRequestResult&gt; | 返回一个期约,兑现值是sendRequestResult实例。|
+
+**示例:**
+
+  ```
+  class MyDeathRecipient {
+      onRemoteDied() {
+          console.log("server died");
+      }
+  }
+  class TestRemoteObject extends rpc.RemoteObject {
+      constructor(descriptor) {
+          super(descriptor);
+      }
+      addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+          return true;
+      }
+      removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+          return true;
+      }
+      isObjectDead(): boolean {
+          return false;
+      }
+  }
+  let testRemoteObject = new TestRemoteObject("testObject");
+  let option = new rpc.MessageOption();
+  let data = rpc.MessageParcel.create();
+  let reply = rpc.MessageParcel.create();
+  data.writeInt(1);
+  data.writeString("hello");
+  testRemoteObject.sendRequestAsync(1, data, reply, option)
+      .then(function(result) {
+          if (result.errCode === 0) {
+              console.log("sendRequestAsync got result");
+              result.reply.readException();
+              let msg = result.reply.readString();
+              console.log("RPCTest: reply msg: " + msg);
+          } else {
+              console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode);
+          }
+      }).catch(function(e) {
+          console.log("RPCTest: sendRequestAsync got exception: " + e.message);
+      }).finally (() => {
+          console.log("RPCTest: sendRequestAsync ends, reclaim parcel");
+          data.reclaim();
+          reply.reclaim();
+      });
+  ```
 
 ### sendRequest<sup>8+</sup>
 
@@ -3672,7 +3835,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
 
 onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean
 
-sendRequest请求的响应处理函数,服务端在该函数里处理请求,回复结果。
+sendRequestAsync请求的响应处理函数,服务端在该函数里处理请求,回复结果。
 
 **系统能力**:SystemCapability.Communication.IPC.Core
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md b/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md
index 7581861012f98b643114b083430ce37cf1ae0734..1f3b7ed1329150c973496061d0a4bd780cf08616 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md
@@ -177,6 +177,8 @@ on(type: 'beginWakeUp' | 'endWakeUp' | 'beginScreenOn' | 'endScreenOn' | 'beginS
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -199,6 +201,8 @@ on(type: 'beginSleep' | 'endSleep' | 'changeUser', callback: Callback\<number\>)
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -220,6 +224,8 @@ on(type: 'screenlockEnabled', callback: Callback\<boolean\>): void
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -243,6 +249,8 @@ off(type: 'beginWakeUp' | 'endWakeUp' | 'beginScreenOn' | 'endScreenOn' | 'begin
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -265,6 +273,8 @@ sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback\<b
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
@@ -282,12 +292,14 @@ sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback\<b
 
 ## screenlock.sendScreenLockEvent<sup>9+</sup>
 
-sendScreenLockEvent(event: String, parameter: number): Promise<boolean>
+sendScreenLockEvent(event: String, parameter: number): Promise\<boolean\>
 
 应用发送事件到锁屏服务,异步方法。
 
 **系统能力**: SystemCapability.MiscServices.ScreenLock
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数**:
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-screen.md b/zh-cn/application-dev/reference/apis/js-apis-screen.md
index d8725959e19a165c4db8560cee69e95e33cadc55..9472f9f6d445586231e7bbb44ec1c87b1cc1dc52 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-screen.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-screen.md
@@ -32,7 +32,7 @@ getAllScreens(callback: AsyncCallback&lt;Array&lt;Screen&gt;&gt;): void
 var screenClass = null;
 screen.getAllScreens((err, data) => {
     if (err.code) {
-        console.error('Failed to get all screens . Cuase:  ' + JSON.stringify(err));
+        console.error('Failed to get all screens . Cause:  ' + JSON.stringify(err));
         return;
     }
     console.info('Succeeded in getting all screens . Data:' + JSON.stringify(data));
@@ -223,6 +223,8 @@ createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Scre
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
+**需要权限**:ohos.permission.CAPTURE_SCREEN,如果VirtualScreenOption.surfaceId有效,此权限是必需的。仅系统应用可用。
+
 **参数:**
 
 | 参数名   | 类型                                        | 必填 | 说明                               |
@@ -256,6 +258,8 @@ createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
+**需要权限**:ohos.permission.CAPTURE_SCREEN,如果VirtualScreenOption.surfaceId有效,此权限是必需的。仅系统应用可用。
+
 **参数:** 
 | 参数名  | 类型                                        | 必填 | 说明                     |
 | ------- | ------------------------------------------- | ---- | ------------------------ |
@@ -343,6 +347,8 @@ setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallb
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
+**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
+
 **参数:**
 
 | 参数名    | 类型                      | 必填 | 说明                                                         |
@@ -372,6 +378,8 @@ setVirtualScreenSurface(screenId:number, surfaceId: string): Promise&lt;void&gt;
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
+**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
+
 **参数:**
 | 参数名    | 类型   | 必填 | 说明          |
 | --------- | ------ | ---- | ------------- |
@@ -531,7 +539,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => {
 | parent            | number                                         | 是   | 否   | 屏幕所属群组的id。     |
 | supportedModeInfo | Array&lt;[ScreenModeInfo](#screenmodeinfo)&gt; | 是   | 否   | 屏幕支持的模式集合。   |
 | activeModeIndex   | number                                         | 是   | 否   | 当前屏幕所处模式索引。 |
-| orientation       | [Orientation](#rientation)                     | 是   | 否   | 屏幕方向。             |
+| orientation       | [Orientation](#orientation)                     | 是   | 否   | 屏幕方向。             |
 
 ### setOrientation
 setOrientation(orientation: Orientation, callback: AsyncCallback&lt;void&gt;): void
@@ -696,9 +704,6 @@ promise.then((data) => {
 | HORIZONTAL         | 2    | 表示指定屏幕为水平方向。         |
 | REVERSE_VERTICAL   | 3    | 表示指定屏幕为反向垂直方向。     |
 | REVERSE_HORIZONTAL | 4    | 表示指定屏幕为反向水平方向。     |
-| SENSOR             | 5    | 表示屏幕方向跟随传感器方向。     |
-| SENSOR_VERTICAL    | 6    | 表示屏幕方向垂直跟随传感器方向。 |
-| SENSOR_HORIZONTAL  | 7    | 表示屏幕方向水平跟随传感器方向。 |
 
 ## ScreenModeInfo
 屏幕显示模式信息。
diff --git a/zh-cn/application-dev/reference/apis/js-apis-screenshot.md b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md
index 6871f0ce050609b9871ab727c4fae0a9e910494c..c0126a92a3da3dd958331483243e69f3a46b12f2 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-screenshot.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md
@@ -68,29 +68,30 @@ save(options?: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;)
 | 参数名   | 类型                                    | 必填 | 说明                                                         |
 | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
 | options  | [ScreenshotOptions](#screenshotoptions) | 否   | 该类型的参数包含screenRect,imageSize,rotation, displayId四个参数,可以分别设置这四个参数。 |
-| callback | AsyncCallback&lt;image.PixelMap&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |
+| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |
 
 **示例:**
 
   ```js
-  var ScreenshotOptions = {
-  	"screenRect": {
-  		"left": 200,
-  		"top": 100,
-  		"width": 200,
-  		"height": 200},
-  	"imageSize": {
-  		"width": 300,
-  		"height": 300},
-  	"rotation": 0,
-  	"displayId": 0
+  var screenshotOptions = {
+    "screenRect": {
+        "left": 200,
+        "top": 100,
+        "width": 200,
+        "height": 200},
+    "imageSize": {
+        "width": 300,
+        "height": 300},
+    "rotation": 0,
+    "displayId": 0
   };
-  screenshot.save(ScreenshotOptions, (err, data) => {
-  	if (err) {
-  		console.error('Failed to save the screenshot. Error: ' + JSON.stringify(err));
-  		return;
-  	}
-  	console.info('Screenshot saved. Data: ' + JSON.stringify(data));
+  screenshot.save(screenshotOptions, (err, pixelMap) => {
+    if (err) {
+        console.log('Failed to save screenshot: ' + JSON.stringify(err));
+        return;
+    }
+    console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
+    pixelMap.release(); // PixelMap使用完后及时释放内存
   });
   ```
 
@@ -114,12 +115,12 @@ save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;
 
 | 类型                          | 说明                                            |
 | ----------------------------- | ----------------------------------------------- |
-| Promise&lt;image.PixelMap&gt; | Promise对象。返回一个PixelMap对象。 |
+| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise对象。返回一个PixelMap对象。 |
 
 **示例:**
 
   ```js
-  var ScreenshotOptions = {
+  var screenshotOptions = {
   	"screenRect": {
   		"left": 200,
   		"top": 100,
@@ -131,10 +132,11 @@ save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;
   	"rotation": 0,
   	"displayId": 0
   };
-  let promise = screenshot.save(ScreenshotOptions);
-  promise.then(() => {
-      console.log('screenshot save success');
+  let promise = screenshot.save(screenshotOptions);
+  promise.then((pixelMap) => {
+      console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
+      pixelMap.release(); // PixelMap使用完后及时释放内存
   }).catch((err) => {
-      console.log('screenshot save fail: ' + JSON.stringify(err));
+      console.log('Failed to save screenshot: ' + JSON.stringify(err));
   });
   ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md b/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md
index 5dedb55f06c6e564743cda51a39057625791a518..85ecc774d519951c987c22e7cd9b1c40b3de19cd 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md
@@ -48,8 +48,7 @@ setSecurityLabel(path:string, type:dataLevel):Promise&lt;void&gt;
 **示例:**
 
   ```js
-  let type = "s4";
-  securityLabel.setSecurityLabel(path, type).then(function(){
+  securityLabel.setSecurityLabel(path, "s0").then(function(){
       console.info("setSecurityLabel successfully");
   }).catch(function(error){
       console.info("setSecurityLabel failed with error:" + error);
@@ -75,8 +74,7 @@ setSecurityLabel(path:string, type:dataLevel, callback: AsyncCallback&lt;void&gt
 **示例:**
 
   ```js
-  let type = "s4";
-  securityLabel.setSecurityLabel(path, type, function(error){
+  securityLabel.setSecurityLabel(path, "s0", function(error){
       console.info("setSecurityLabel:" + JSON.stringify(error));
   });
   ```
@@ -98,8 +96,7 @@ setSecurityLabelSync(path:string, type:dataLevel):void
 **示例:**
 
 ```js
-let type = "s4";
-securityLabel.setSecurityLabelSync(path, type);
+securityLabel.setSecurityLabelSync(path, "s0");
 ```
 
 ## securityLabel.getSecurityLabel
@@ -125,11 +122,10 @@ getSecurityLabel(path:string):Promise&lt;string&gt;
 **示例:**
 
   ```js
-  let type = "s4";
   securityLabel.getSecurityLabel(path).then(function(type){
       console.log("getSecurityLabel successfully:" + type);
-  }).catch(function(error){
-      console.log("getSecurityLabel failed with error:" + error);
+  }).catch(function(err){
+      console.log("getSecurityLabel failed with error:" + err);
   });
   ```
 
@@ -151,8 +147,7 @@ getSecurityLabel(path:string, callback:AsyncCallback&lt;string&gt;): void
 **示例:**
 
   ```js
-  let type = "s4";
-  securityLabel.getSecurityLabel(path,function(error, type){
+  securityLabel.getSecurityLabel(path, function(err, type){
       console.log("getSecurityLabel successfully:" + type);
   });
   ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-sensor.md b/zh-cn/application-dev/reference/apis/js-apis-sensor.md
index 9a6f1207744a901dac3d9bdc718d83eead38c923..51b33a58ec38d345f1d351d17606228ce7d04eb6 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-sensor.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-sensor.md
@@ -1,7 +1,5 @@
 # 传感器
 
-## 模块说明
-
 sensor模块提供订阅传感器数据基本能力,包括订阅、取消订阅传感器数据,获取传感器列表,以及通用的传感器算法接口如通过气压值计算海拔高度、通过旋转矩阵计算设备方向等。
 
 传感器是指用于侦测环境中所发生事件或变化,并将此消息发送至其他电子设备(如中央处理器)的设备,通常由敏感组件和转换组件组成。传感器是实现物联网智能化的重要基石,为实现全场景智慧化战略,支撑“1+8+N”产品需求,需要构筑统一的传感器管理框架,达到为各产品/业务提供低时延、低功耗的感知数据的目的。根据用途可分为以下六大类:
@@ -54,12 +52,14 @@ on(type:  SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback&lt;Acceler
   );
   ```
 
-### LINEAR_ACCELERATION
+### LINEAR_ACCELERATION<sup>deprecated</sup>
 
 on(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:Callback&lt;LinearAccelerometerResponse&gt;, options?: Options): void
 
 监听线性加速度传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。
 
+从API Version9开始该接口不再维护,推荐使用sensor.on.LINEAR_ACCELEROMETER<sup>9+</sup>
+
 **需要权限**:ohos.permission.ACCELEROMETER ,该权限为系统权限
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -82,6 +82,35 @@ on(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:Callback&lt;Line
   );
   ```
 
+### LINEAR_ACCELEROMETER<sup>9+</sup>
+
+on(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER,callback:Callback&lt;LinearAccelerometerResponse&gt;, options?: Options): void
+
+监听线性加速度传感器的数据变化。如果多次调用该接口,仅最后一次调用生效。
+
+
+**需要权限**:ohos.permission.ACCELEROMETER,该权限为系统权限
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)                | 是    | 要订阅的线性加速度传感器类型为SENSOR_TYPE_ID_LINEAR_ACCELEROMETER。 |
+| callback | Callback&lt;[LinearAccelerometerResponse](#linearaccelerometerresponse)&gt; | 是    | 注册线性加速度传感器的回调函数,上报的数据类型为LinearAccelerometerResponse。 |
+| options  | [Options](#options)                      | 否    | 可选参数列表,设置上报频率,默认值为200000000ns。           |
+
+**示例:**
+  ```js
+  sensor.on(sensor.SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER,function(data){
+      console.info('X-coordinate component: ' + data.x);
+      console.info('Y-coordinate component: ' + data.y);
+      console.info('Z-coordinate component: ' + data.z);
+  },
+      {interval: 10000000}
+  );
+  ```
+
 ### ACCELEROMETER_UNCALIBRATED
 
 on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback: Callback&lt;AccelerometerUncalibratedResponse&gt;, options?: Options): void
@@ -499,12 +528,14 @@ on(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback: Callback&lt;Orientatio
   );
   ```
 
-### HEART_RATE
+### HEART_RATE<sup>deprecated</sup>
 
 on(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback: Callback&lt;HeartRateResponse&gt;, options?: Options): void
 
 监听心率传感器数据变化一次。
 
+从API Version9开始该接口不再维护,推荐使用sensor.on.HEART_BEAT_RATE<sup>9+</sup>
+
 **需要权限**:ohos.permission.READ_HEALTH_DATA 
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -526,6 +557,33 @@ sensor.on(sensor.SensorType.SENSOR_TYPE_ID_HEART_RATE,function(data){
 );
 ```
 
+### HEART_BEAT_RATE<sup>9+</sup>
+
+on(type: SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE, callback: Callback&lt;HeartRateResponse&gt;, options?: Options): void
+
+监听心率传感器数据变化一次。
+
+**需要权限**:ohos.permission.READ_HEALTH_DATA
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)                | 是    | 要订阅的心率传感器类型为SENSOR_TYPE_ID_HEART_BEAT_RATE。   |
+| callback | Callback&lt;[HeartRateResponse](#heartrateresponse)&gt; | 是    | 注册一次心率传感器的回调函数,上报的数据类型为HeartRateResponse。 |
+
+**示例:**
+
+```js
+sensor.on(sensor.SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE,function(data){
+    console.info("Heart rate: " + data.heartRate);
+},
+    {interval: 10000000}
+);
+```
+
 ### ROTATION_VECTOR
 
 on(type: SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR,callback: Callback&lt;RotationVectorResponse&gt;,options?: Options): void
@@ -605,12 +663,14 @@ once(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback&lt;Accele
   );
   ```
 
-### LINEAR_ACCELERATION
+### LINEAR_ACCELERATION<sup>deprecated</sup>
 
 once(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:Callback&lt;LinearAccelerometerResponse&gt;): void
 
 监听线性加速度传感器数据变化一次。
 
+从API Version9开始该接口不再维护,推荐使用sensor.once.LINEAR_ACCELEROMETER<sup>9+</sup>
+
 **需要权限**:ohos.permission.ACCELEROMETER ,该权限为系统权限
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -631,6 +691,32 @@ once(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:Callback&lt;Li
   );
   ```
 
+### LINEAR_ACCELEROMETER<sup>9+</sup>
+
+once(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER,callback:Callback&lt;LinearAccelerometerResponse&gt;): void
+
+订阅一次线性加速度传感器数据。
+
+**需要权限**:ohos.permission.ACCELEROMETER ,该权限为系统权限
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)                | 是    | 线性加速度传感器类型为SENSOR_TYPE_ID_LINEAR_ACCELEROMETER。 |
+| callback | Callback&lt;[LinearAccelerometerResponse](#linearaccelerometerresponse)&gt; | 是    | 注册一次线性加速度传感器的回调函数,上报的数据类型为LinearAccelerometerResponse。 |
+
+**示例:**
+  ```js
+  sensor.once(sensor.SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER, function(data) {
+      console.info('X-coordinate component: ' + data.x);
+      console.info('Y-coordinate component: ' + data.y);
+      console.info('Z-coordinate component: ' + data.z);
+    }
+  );
+  ```
+
 ### ACCELEROMETER_UNCALIBRATED
 
 once(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback: Callback&lt;AccelerometerUncalibratedResponse&gt;): void
@@ -1041,12 +1127,14 @@ once(type: SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, callback: Callback&lt;Rota
   );
   ```
 
-### HEART_RATE
+### HEART_RATE<sup>deprecated</sup>
 
 once(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback: Callback&lt;HeartRateResponse&gt;): void
 
 监听心率传感器数据变化一次。
 
+从API Version9开始该接口不再维护,推荐使用sensor.once.HEART_BEAT_RATE<sup>9+</sup>
+
 **需要权限**:ohos.permission.READ_HEALTH_DATA 
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -1065,6 +1153,30 @@ once(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback: Callback&lt;HeartRate
   );
   ```
 
+### HEART_BEAT_RATE<sup>9+</sup>
+
+once(type: SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE, callback: Callback&lt;HeartRateResponse&gt;): void
+
+订阅一次心率传感器数据。
+
+**需要权限**:ohos.permission.READ_HEALTH_DATA
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)                | 是    | 心率传感器类型为SENSOR_TYPE_ID_HEART_BEAT_RATE。       |
+| callback | Callback&lt;[HeartRateResponse](#heartrateresponse)&gt; | 是    | 注册一次心率传感器的回调函数,上报的数据类型为HeartRateResponse。 |
+
+**示例:**
+  ```js
+  sensor.once(sensor.SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE, function(data) {
+      console.info("Heart rate: " + data.heartRate);
+    }
+  );
+  ```
+
 ### WEAR_DETECTION
 
 once(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback: Callback&lt;WearDetectionResponse&gt;): void
@@ -1326,12 +1438,14 @@ function callback(data) {
 sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HALL, callback);
 ```
 
-### HEART_RATE
+### HEART_RATE<sup>deprecated</sup>
 
 off(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback?: Callback&lt;HeartRateResponse&gt;): void
 
 取消订阅传感器数据。
 
+从API Version9开始该接口不再维护,推荐使用sensor.off.HEART_BEAT_RATE<sup>9+</sup>
+
 **需要权限**:ohos.permission.READ_HEALTH_DATA
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -1352,6 +1466,32 @@ function callback(data) {
 sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HEART_RATE, callback);
 ```
 
+### HEART_BEAT_RATE<sup>9+</sup>
+
+off(type: SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE, callback?: Callback&lt;HeartRateResponse&gt;): void
+
+取消订阅传感器数据。
+
+**需要权限**:ohos.permission.READ_HEALTH_DATA
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)[SensorType](#sensortype) | 是    | 要取消订阅的心率传感器类型为SENSOR_TYPE_ID_HEART_BEAT_RATE。 |
+| callback | Callback&lt;[HeartRateResponse](#heartrateresponse)&gt; | 是    | 取消注册一次心率传感器的回调函数,上报的数据类型为HeartRateResponse。 |
+
+**示例:**
+
+```js
+function callback(data) {
+    console.info("Heart rate: " + data.heartRate);
+}
+sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HEART_BEAT_RATE, callback);
+```
+
 ### HUMIDITY
 
 off(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback?: Callback&lt;HumidityResponse&gt;): void
@@ -1376,12 +1516,14 @@ function callback(data) {
 sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HUMIDITY, callback);
 ```
 
-### LINEAR_ACCELERATION
+### LINEAR_ACCELERATION<sup>deprecated</sup>
 
 off(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION, callback?: Callback&lt;LinearAccelerometerResponse&gt;): void
 
 取消订阅传感器数据。
 
+从API Version9开始该接口不再维护,推荐使用sensor.off.LINEAR_ACCELEROMETER<sup>9+</sup>
+
 **需要权限**:ohos.permission.ACCELEROMETER,该权限为系统权限
 
 **系统能力**:SystemCapability.Sensors.Sensor
@@ -1404,6 +1546,34 @@ function callback(data) {
 sensor.off(sensor.SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION, callback);
 ```
 
+### LINEAR_ACCELEROMETER<sup>9+</sup>
+
+off(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER, callback?: Callback&lt;LinearAccelerometerResponse&gt;): void
+
+取消订阅传感器数据。
+
+**需要权限**:ohos.permission.ACCELEROMETER,该权限为系统权限
+
+**系统能力**:SystemCapability.Sensors.Sensor
+
+**参数:**
+
+| 参数名      | 类型                                       | 必填   | 说明                                       |
+| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+| type     | [SensorType](#sensortype)                | 是    | 要取消订阅的线性加速度传感器类型为SENSOR_TYPE_ID_LINEAR_ACCELEROMETER。 |
+| callback | Callback&lt;[LinearAccelerometerResponse](#linearaccelerometerresponse)&gt; | 是    | 取消注册性加速度传感器的回调函数,上报的数据类型为LinearAccelerometerResponse。 |
+
+**示例:**
+
+```js
+function callback(data) {
+    console.info('X-coordinate component: ' + data.x);
+    console.info('Y-coordinate component: ' + data.y);
+    console.info('Z-coordinate component: ' + data.z);
+}
+sensor.off(sensor.SensorType.SENSOR_TYPE_ID_LINEAR_ACCELEROMETER, callback);
+```
+
 ### MAGNETIC_FIELD
 
  off(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback?: Callback&lt;MagneticFieldResponse&gt;): void
@@ -1972,7 +2142,7 @@ createRotationMatrix(rotationVector: Array&lt;number&gt;, callback: AsyncCallbac
                         err.message);
           return;
       }
-      for (var i=0; i < data.rotation.length; i++) {
+      for (var i=0; i < data.length; i++) {
           console.info("data[" + i + "]: " + data[i]);
       }
   })
@@ -2005,7 +2175,7 @@ createRotationMatrix(rotationVector: Array&lt;number&gt;): Promise&lt;Array&lt;n
   const promise = sensor.createRotationMatrix([0.20046076, 0.21907, 0.73978853, 0.60376877]);
       promise.then((data) => {
           console.info('createRotationMatrix_promise success');
-          for (var i=0; i < data.rotation.length; i++) {
+          for (var i=0; i < data.length; i++) {
               console.info("data[" + i + "]: " + data[i]);
           }
       }).catch((reason) => {
@@ -2172,7 +2342,7 @@ createRotationMatrix(gravity: Array&lt;number&gt;, geomagnetic: Array&lt;number&
                         err.message);
           return;
       }
-      for (var i=0; i < data.length; i++) {
+      for (var i=0; i < data.rotation.length; i++) {
           console.info("data[" + i + "]: " + data[i])
       }
   })
@@ -2206,7 +2376,7 @@ createRotationMatrix(gravity: Array&lt;number&gt;, geomagnetic: Array&lt;number&
   const promise = sensor.createRotationMatrix([-0.27775216, 0.5351276, 9.788099], [210.87253, -78.6096, -111.44444]);
       promise.then((data) => {
           console.info('createRotationMatrix_promise successed');
-          for (var i=0; i < data.length; i++) {
+          for (var i=0; i < data.rotation.length; i++) {
               console.info("data[" + i + "]: " + data[i]);
           }
       }).catch((err) => {
@@ -2234,7 +2404,8 @@ createRotationMatrix(gravity: Array&lt;number&gt;, geomagnetic: Array&lt;number&
 | SENSOR_TYPE_ID_HUMIDITY                  | 13   | 湿度传感器。      |
 | SENSOR_TYPE_ID_ORIENTATION               | 256  | 方向传感器。      |
 | SENSOR_TYPE_ID_GRAVITY                   | 257  | 重力传感器。      |
-| SENSOR_TYPE_ID_LINEAR_ACCELERATION       | 258  | 线性加速度传感器。   |
+| SENSOR_TYPE_ID_LINEAR_ACCELERATION<sup>deprecated</sup>       | 258  | 线性加速度传感器。   |
+| SENSOR_TYPE_ID_LINEAR_ACCELEROMETER       | 258  | 线性加速度传感器。   |
 | SENSOR_TYPE_ID_ROTATION_VECTOR           | 259  | 旋转矢量传感器。    |
 | SENSOR_TYPE_ID_AMBIENT_TEMPERATURE       | 260  | 环境温度传感器。    |
 | SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED | 261  | 未校准磁场传感器。   |
@@ -2242,7 +2413,8 @@ createRotationMatrix(gravity: Array&lt;number&gt;, geomagnetic: Array&lt;number&
 | SENSOR_TYPE_ID_SIGNIFICANT_MOTION        | 264  | 有效运动传感器。    |
 | SENSOR_TYPE_ID_PEDOMETER_DETECTION       | 265  | 计步检测传感器。    |
 | SENSOR_TYPE_ID_PEDOMETER                 | 266  | 计步传感器。      |
-| SENSOR_TYPE_ID_HEART_RATE                | 278  | 心率传感器。      |
+| SENSOR_TYPE_ID_HEART_RATE<sup>deprecated</sup>                | 278  | 心率传感器。      |
+| SENSOR_TYPE_ID_HEART_BEAT_RATE                | 278  | 心率传感器。      |
 | SENSOR_TYPE_ID_WEAR_DETECTION            | 280  | 佩戴检测传感器。    |
 | SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED | 281  | 未校准加速度计传感器。 |
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md b/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md
index 1a99c38a34b9863c991e63ba097c5c0e70c07cad..f3a72caed5eddbb876cadf1308be11c30cc481d9 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md
@@ -230,7 +230,7 @@ dump(params: Array\<string>): Array\<string>;
 
 转储客户端信息时调用。
 
-**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
 
 **系统API**: 此接口为系统接口,三方应用不支持调用。
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md b/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md
index b92fbe05c23d531c26aa788ea1685e0884862763..a6730e833657cbb840b7f34d41401697c5a27acb 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md
@@ -1,8 +1,8 @@
 # ServiceExtensionContext
 
-ServiceExtensionContext模块是ServiceExtension的上下文环境,继承自ExtensionContext。
+ServiceExtensionContext模块是ServiceExtensionAbility的上下文环境,继承自ExtensionContext。
 
-ServiceExtensionContext模块提供ServiceExtension具有的能力和接口,包括启动、停止、绑定、解绑Ability。
+ServiceExtensionContext模块提供ServiceExtensionAbility具有的能力和接口,包括启动、停止、绑定、解绑Ability。
 
 > **说明:**
 > 
@@ -11,15 +11,16 @@ ServiceExtensionContext模块提供ServiceExtension具有的能力和接口,
 
 ## 使用说明
 
-ServiceExtensionContext模块是ServiceExtension的上下文环境,继承自ExtensionContext。
+在使用ServiceExtensionContext的功能前,需要通过ServiceExtensionAbility子类实例获取。
 
-## 属性
-
-**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
-
-| 名称 | 参数类型 | 可读 | 可写 | 说明 | 
-| -------- | -------- | -------- | -------- | -------- |
-| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md) | 是 | 否 | 服务扩展信息。 |
+```js
+  import ServiceExtensionAbility from '@ohos.application.ServiceExtensionAbility';
+  class MainAbility extends ServiceExtensionAbility {
+      onCreate() {
+          let context = this.context;
+      }
+  }
+```
 
 ## startAbility
 
@@ -41,18 +42,12 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void;
 **示例:**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-  class MainAbility extends ExtensionContext {
-      onWindowStageCreate(windowStage) {
-          let want = {
-              "bundleName": "com.example.myapp",
-              "abilityName": "MyAbility"};
-          this.context.startAbility(want, (err) => {
-          console.log('startAbility result:' + JSON.stringify(err));
-          });
-      }
-  }
-
+    let want = {
+      "bundleName": "com.example.myapp",
+      "abilityName": "MyAbility"};
+      this.context.startAbility(want, (err) => {
+      console.log('startAbility result:' + JSON.stringify(err));
+    });
   ```
 
 ## startAbility
@@ -81,20 +76,16 @@ startAbility(want: Want, options?: StartOptions): Promise\<void>;
 **示例:**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-        onWindowStageCreate(windowStage) {
-            let want = {
-            "bundleName": "com.example.myapp",
-            "abilityName": "MyAbility"
-            };
-        this.context.startAbility(want).then((data) => {
-            console.log('success:' + JSON.stringify(data));
-        }).catch((error) => {
-            console.log('failed:' + JSON.stringify(error));
-        });
-        }
-    }
+    let want = {
+        "bundleName": "com.example.myapp",
+        "abilityName": "MyAbility"
+    };
+    this.context.startAbility(want).then((data) => {
+        console.log('success:' + JSON.stringify(data));
+    }).catch((error) => {
+        console.log('failed:' + JSON.stringify(error));
+    });
+
   ```
 
 ## startAbility
@@ -127,13 +118,13 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&
   	windowMode: 0,
   };
   this.context.startAbility(want, options, (error) => {
-      console.log("error.code = " + error.code)
+    console.log("error.code = " + error.code)
   })
   ```
 
 ## ServiceExtensionContext.startAbilityWithAccount
 
-startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void\>): void;
+startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
 
 根据account启动Ability(callback形式)。
 
@@ -146,7 +137,7 @@ startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
 
 **示例:**
@@ -179,7 +170,7 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | [StartOptions](js-apis-application-StartOptions.md) | 否 | 启动Ability所携带的参数。 |
 | callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
 
@@ -203,7 +194,7 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca
 
 ## ServiceExtensionContext.startAbilityWithAccount
 
-startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void\>;
+startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void>;
 
 根据account启动Ability(Promise形式)。
 
@@ -216,9 +207,15 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions):
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。。 |
 | options | [StartOptions](js-apis-application-StartOptions.md) | 否 | 启动Ability所携带的参数。 |
 
+**返回值:**
+
+  | 类型 | 说明 | 
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 | 
+
 **示例:**
 
   ```js
@@ -240,6 +237,297 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions):
     })
   ```
 
+## ServiceExtensionContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+启动一个新的ServiceExtensionAbility(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want, (err) => {
+    console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbility
+
+startServiceExtensionAbility(want: Want): Promise\<void>;
+
+启动一个新的ServiceExtensionAbility(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+
+**返回值:**
+
+  | 类型 | 说明 | 
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 | 
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.startServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+启动一个新的ServiceExtensionAbility(callback形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+| callback | AsyncCallback\<void\> | 是 | 启动Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.startServiceExtensionAbilityWithAccount
+
+startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+启动一个新的ServiceExtensionAbility(Promise形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+
+**返回值:**
+
+  | 类型 | 说明 | 
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 | 
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.startServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- startServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;
+
+停止同一应用程序内的服务(callback形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 停止Ability的want信息。 |
+| callback | AsyncCallback\<void\> | 是 | 停止Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want, (err) => {
+    console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbility
+
+stopServiceExtensionAbility(want: Want): Promise\<void>;
+
+停止同一应用程序内的服务(Promise形式)。
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 停止Ability的want信息。 |
+
+**返回值:**
+
+  | 类型 | 说明 | 
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 | 
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  this.context.stopServiceExtensionAbility(want)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbility success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbility fail, err:  -----------', err);
+    })
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;
+
+使用帐户停止同一应用程序内的服务(callback形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 停止Ability的want信息。 |
+| accountId | number | 是 | 需要停止的系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+| callback | AsyncCallback\<void\> | 是 | 停止Ability的回调函数。 |
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId, (err) => {
+    console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+  });
+  ```
+
+## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount
+
+stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>;
+
+使用帐户停止同一应用程序内的服务(Promise形式)。
+
+**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
+
+**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
+
+**系统API**: 此接口为系统接口,三方应用不支持调用。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](js-apis-application-Want.md) | 是 | 停止Ability的want信息。 |
+| accountId | number | 是 | 需要停止的系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
+
+**返回值:**
+
+  | 类型 | 说明 | 
+  | -------- | -------- |
+  | Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 | 
+
+**示例:**
+
+  ```js
+  var want = {
+    "deviceId": "",
+    "bundleName": "com.extreme.test",
+    "abilityName": "MainAbility"
+  };
+  var accountId = 100;
+  this.context.stopServiceExtensionAbilityWithAccount(want,accountId)
+    .then((data) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount success, data:  -----------', data);
+    })
+    .catch((err) => {
+        console.log('---------- stopServiceExtensionAbilityWithAccount fail, err:  -----------', err);
+    })
+  ```
 
 ## ServiceExtensionContext.terminateSelf
 
@@ -260,19 +548,11 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
 **示例:**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-        class MainAbility extends ExtensionContext {
-            onWindowStageCreate(windowStage) {
-            this.context.terminateSelf((err) => {
-              console.log('terminateSelf result:' + JSON.stringify(err));
-            });
-            }
-        }
-  
-
+  this.context.terminateSelf((err) => {
+    console.log('terminateSelf result:' + JSON.stringify(err));
+  });
   ```
 
-
 ## ServiceExtensionContext.terminateSelf
 
 terminateSelf(): Promise&lt;void&gt;;
@@ -292,17 +572,11 @@ terminateSelf(): Promise&lt;void&gt;;
 **示例:**
 
   ```js
-    import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      this.context.terminateSelf().then((data) => {
-        console.log('success:' + JSON.stringify(data));
-      }).catch((error) => {
-        console.log('failed:' + JSON.stringify(error));
-      });
-    }
-}
-
+  this.context.terminateSelf().then((data) => {
+      console.log('success:' + JSON.stringify(data));
+  }).catch((error) => {
+      console.log('failed:' + JSON.stringify(error));
+  });
   ```
 
 ## ServiceExtensionContext.connectAbility
@@ -332,13 +606,13 @@ connectAbility(want: Want, options: ConnectOptions): number;
 
   ```js
   let want = {
-      "bundleName": "com.example.myapp",
-      "abilityName": "MyAbility"
+    "bundleName": "com.example.myapp",
+    "abilityName": "MyAbility"
   };
   let options = {
-      onConnect: function(elementName, proxy) {},
-      onDisConnect: function(elementName) {},
-      onFailed: function(code) {}
+    onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
+    onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
+    onFailed(code) { console.log('----------- onFailed -----------') }
   }
   let connection = this.context.connectAbility(want,options);
   ```
@@ -358,7 +632,7 @@ connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
 | want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 |
-| accountId | number | 是 | 需要启动的accountId。 |
+| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
 | options | ConnectOptions | 否 | 远端对象实例。 |
 
 **返回值:**
@@ -405,17 +679,11 @@ disconnectAbility(connection: number, callback:AsyncCallback&lt;void&gt;): void;
 **示例:**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-    class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      let connection=1
-      this.context.disconnectAbility(connection, (err) => { 
+    let connection=1
+    this.context.disconnectAbility(connection, (err) => { 
         // connection为connectAbility中的返回值
         console.log('terminateSelf result:' + JSON.stringify(err));
-      });
-    }
-  }
-
+    });
   ```
 
 ## ServiceExtensionContext.disconnectAbility
@@ -443,16 +711,11 @@ disconnectAbility(connection: number): Promise&lt;void&gt;;
 **示例:**
 
   ```js
-  import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
-  class MainAbility extends ExtensionContext {
-    onWindowStageCreate(windowStage) {
-      let connection=1
-      this.context.disconnectAbility(connection).then((data) => { // connection为connectAbility中的返回值
+  let connection=1
+  this.context.disconnectAbility(connection).then((data) => { 
+      // connection为connectAbility中的返回值
       console.log('success:' + JSON.stringify(data));
-      }).catch((error) => {
+  }).catch((error) => {
       console.log('failed:' + JSON.stringify(error));
-      });
-    }
-  }
-
+  });
   ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-sim.md b/zh-cn/application-dev/reference/apis/js-apis-sim.md
index 1bc5bd4ae94bfdb0d1136ebf50a394d17cb2fc39..d49729103b2fcfc971ad369ea2de3bc682df3f6c 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-sim.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-sim.md
@@ -467,7 +467,7 @@ hasSimCard\(slotId: number, callback: AsyncCallback<boolean\>\): void
 
 **示例:**
 
-```jsjs
+```js
 sim.hasSimCard(0, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
@@ -522,7 +522,7 @@ getSimAccountInfo(slotId: number, callback: AsyncCallback<IccAccountInfo\>): voi
 | 参数名   | 类型                                                | 必填 | 说明                                   |
 | -------- | --------------------------------------------------- | ---- | -------------------------------------- |
 | slotId   | number                                              | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
-| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | 是   | 回调函数。                             |
+| callback | AsyncCallback\<[IccAccountInfo](#iccaccountinfo7)\> | 是   | 回调函数。                             |
 
 **示例:**
 
@@ -555,7 +555,7 @@ getSimAccountInfo(slotId: number): Promise<IccAccountInfo\>
 
 | 类型                                         | 说明                                       |
 | -------------------------------------------- | ------------------------------------------ |
-| Promise<[IccAccountInfo](#IccAccountInfo7)\> | 以Promise形式返回指定卡槽SIM卡的账户信息。 |
+| Promise<[IccAccountInfo](#iccaccountinfo7)\> | 以Promise形式返回指定卡槽SIM卡的账户信息。 |
 
 **示例:**
 
@@ -584,7 +584,7 @@ getActiveSimAccountInfoList(callback: AsyncCallback<Array<IccAccountInfo\>>): vo
 
 | 参数名   | 类型                                                        | 必填 | 说明       |
 | -------- | ----------------------------------------------------------- | ---- | ---------- |
-| callback | AsyncCallback\<Array<[IccAccountInfo](#IccAccountInfo7)\>\> | 是   | 回调函数。 |
+| callback | AsyncCallback\<Array<[IccAccountInfo](#iccaccountinfo7)\>\> | 是   | 回调函数。 |
 
 **示例:**
 
@@ -611,7 +611,7 @@ getActiveSimAccountInfoList(): Promise<Array<IccAccountInfo\>>;
 
 | 类型                                                 | 说明                                           |
 | ---------------------------------------------------- | ---------------------------------------------- |
-| Promise<Array<[IccAccountInfo](#IccAccountInfo7)\>\> | 以Promise形式返回活跃卡槽SIM卡的账户信息列表。 |
+| Promise<Array<[IccAccountInfo](#iccaccountinfo7)\>\> | 以Promise形式返回活跃卡槽SIM卡的账户信息列表。 |
 
 **示例:**
 
@@ -646,7 +646,7 @@ setDefaultVoiceSlotId(slotId: number, callback: AsyncCallback<void\>): void
 **示例:**
 
 ```js
-sim.setDefaultVoiceSlotId(0,(err, data) => {
+sim.setDefaultVoiceSlotId(0, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -710,8 +710,8 @@ setShowName\(slotId: number, name: string,callback: AsyncCallback<void\>\): void
 **示例:**
 
 ```js
-const name='中国移动';
-sim.setShowName(0, name,(err, data) => {
+const name = '中国移动';
+sim.setShowName(0, name, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -744,8 +744,8 @@ setShowName\(slotId: number, name: string\): Promise\<void\>
 **示例:**
 
 ```js
-const name='中国移动';
-let promise = sim.setShowName(0,name);
+const name = '中国移动';
+let promise = sim.setShowName(0, name);
 promise.then(data => {
     console.log(`setShowName success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -839,8 +839,8 @@ setShowNumber\(slotId: number, number: string,callback: AsyncCallback<void\>\):
 **示例:**
 
 ```js
-let number='+861xxxxxxxxxx';
-sim.setShowNumber(0, number,(err, data) => {
+let number = '+861xxxxxxxxxx';
+sim.setShowNumber(0, number, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -874,8 +874,8 @@ setShowNumber\(slotId: number,number: string\): Promise\<void\>
 **示例:**
 
 ```js
-let number='+861xxxxxxxxxx';
-let promise = sim.setShowNumber(0,number);
+let number = '+861xxxxxxxxxx';
+let promise = sim.setShowNumber(0, number);
 promise.then(data => {
     console.log(`setShowNumber success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1089,16 +1089,18 @@ setLockState(slotId: number, options: LockInfo, callback: AsyncCallback<LockStat
 | 参数名   | 类型                                                        | 必填 | 说明                                                         |
 | -------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
 | slotId   | number                                                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
-| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是   | 回调函数。                                                   |
-| options  | [LockInfo](#LockInfo8)                                      | 是   | 锁信息。<br/>lockType: [LockType](#LockType8)<br/>password: string<br/>state: [LockState](#LockState8) |
+| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是   | 回调函数。                                                   |
+| options  | [LockInfo](#lockinfo8)                                      | 是   | 锁信息。<br/>lockType: [LockType](#locktype8)<br/>password: string<br/>state: [LockState](#lockstate8) |
 
 **示例:**
 
 ```js
-LockInfo.lockType = 1;
-LockInfo.password = "1234";
-LockInfo.state = 0;
-sim.setLockState(0, LockInfo, (err, data) => {
+let lockInfo = {
+    lockType = 1,
+    password = "1234",
+    state = 0
+};
+sim.setLockState(0, lockInfo, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1121,21 +1123,23 @@ setLockState(slotId: number, options: LockInfo): Promise<LockStatusResponse\>
 | 参数名  | 类型                   | 必填 | 说明                                                         |
 | ------- | ---------------------- | ---- | ------------------------------------------------------------ |
 | slotId  | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
-| options | [LockInfo](#LockInfo8) | 是   | 锁信息。<br/>lockType: [LockType](#LockType8)<br/>password: string<br/>state: [LockState](#LockState8) |
+| options | [LockInfo](#lockinfo8) | 是   | 锁信息。<br/>lockType: [LockType](#locktype8)<br/>password: string<br/>state: [LockState](#lockstate8) |
 
 **返回值:**
 
 | 类型                                                 | 说明                                         |
 | ---------------------------------------------------- | -------------------------------------------- |
-| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 |
+| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 |
 
 **示例:**
 
 ```js
-LockInfo.lockType = 1;
-LockInfo.password = "1234";
-LockInfo.state = 0;
-let promise = sim.setLockState(0, LockInfo);
+let lockInfo = {
+    lockType = 1,
+    password = "1234",
+    state = 0
+};
+let promise = sim.setLockState(0, lockInfo);
 promise.then(data => {
     console.log(`setLockState success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1158,8 +1162,8 @@ getLockState(slotId: number, lockType: LockType, callback: AsyncCallback<LockSta
 | 参数名   | 类型                                      | 必填 | 说明                                    |
 | -------- | ----------------------------------------- | ---- | --------------------------------------- |
 | slotId   | number                                    | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2  |
-| callback | AsyncCallback\<[LockState](#LockState8)\> | 是   | 回调函数。                              |
-| options  | [LockType](#LockType8)                    | 是   | 锁类型。<br/>- 1: PIN锁<br/>- 2: PIN2锁 |
+| callback | AsyncCallback\<[LockState](#lockstate8)\> | 是   | 回调函数。                              |
+| options  | [LockType](#locktype8)                    | 是   | 锁类型。<br/>- 1: PIN锁<br/>- 2: PIN2锁 |
 
 **示例:**
 
@@ -1185,13 +1189,13 @@ getLockState(slotId: number, lockType: LockType): Promise<LockState\>
 | 参数名  | 类型                   | 必填 | 说明                                    |
 | ------- | ---------------------- | ---- | --------------------------------------- |
 | slotId  | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2  |
-| options | [LockType](#LockType8) | 是   | 锁类型。<br/>- 1: PIN锁<br/>- 2: PIN2锁 |
+| options | [LockType](#locktype8) | 是   | 锁类型。<br/>- 1: PIN锁<br/>- 2: PIN2锁 |
 
 **返回值:**
 
 | 类型                               | 说明                                         |
 | ---------------------------------- | -------------------------------------------- |
-| Promise<[LockState](#LockState8)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 |
+| Promise<[LockState](#lockstate8)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 |
 
 **示例:**
 
@@ -1221,14 +1225,14 @@ alterPin(slotId: number, newPin: string, oldPin: string, callback: AsyncCallback
 | 参数名   | 类型                                                        | 必填 | 说明                                   |
 | -------- | ----------------------------------------------------------- | ---- | -------------------------------------- |
 | slotId   | number                                                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
-| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是   | 回调函数。                             |
+| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是   | 回调函数。                             |
 | newPin   | string                                                      | 是   | 新密码。                               |
 | oldPin   | string                                                      | 是   | 旧密码。                               |
 
 **示例:**
 
 ```js
-sim.alterPin(0, "1234", "0000"(err, data) => {
+sim.alterPin(0, "1234", "0000", (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1258,7 +1262,7 @@ alterPin(slotId: number, newPin: string, oldPin: string): Promise<LockStatusResp
 
 | 类型                                                 | 说明                                          |
 | ---------------------------------------------------- | --------------------------------------------- |
-| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 |
+| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 |
 
 **示例:**
 
@@ -1288,7 +1292,7 @@ alterPin2(slotId: number, newPin2: string, oldPin2: string, callback: AsyncCallb
 | 参数名   | 类型                                                        | 必填 | 说明                                   |
 | -------- | ----------------------------------------------------------- | ---- | -------------------------------------- |
 | slotId   | number                                                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
-| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是   | 回调函数。                             |
+| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是   | 回调函数。                             |
 | newPin2  | string                                                      | 是   | 新密码。                               |
 | oldPin2  | string                                                      | 是   | 旧密码。                               |
 
@@ -1325,12 +1329,12 @@ alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise<LockStatusR
 
 | 类型                                                 | 说明                                          |
 | ---------------------------------------------------- | --------------------------------------------- |
-| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 |
+| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 |
 
 **示例:**
 
 ```js
-let promise = sim.alterPin2(0, "1234","0000");
+let promise = sim.alterPin2(0, "1234", "0000");
 promise.then(data => {
     console.log(`alterPin2 success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1356,13 +1360,13 @@ unlockPin(slotId: number,pin: string ,callback: AsyncCallback<LockStatusResponse
 | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
 | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
 | pin      | string                                                       | 是   | SIM卡的密码                            |
-| callback | AsyncCallback&lt;[LockStatusResponse](#LockStatusResponse7)> | 是   | 回调函数。                             |
+| callback | AsyncCallback&lt;[LockStatusResponse](#lockstatusresponse7)> | 是   | 回调函数。                             |
 
 **示例:**
 
 ```js
-let pin='1234';
-sim.unlockPin(0, pin,(err, data) => {
+let pin = '1234';
+sim.unlockPin(0, pin, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1391,13 +1395,13 @@ unlockPin(slotId: number,pin: string): Promise&lt;LockStatusResponse\>
 
 | 类型                                                 | 说明                                               |
 | ---------------------------------------------------- | -------------------------------------------------- |
-| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
+| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
 
 **示例:**
 
 ```js
-let pin='1234';
-let promise = sim.unlockPin(0,pin);
+let pin = '1234';
+let promise = sim.unlockPin(0, pin);
 promise.then(data => {
     console.log(`unlockPin success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1424,14 +1428,14 @@ unlockPuk(slotId: number,newPin: string,puk: string ,callback: AsyncCallback<Loc
 | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
 | newPin   | string                                                       | 是   | 重置SIM卡的密码                        |
 | puk      | string                                                       | 是   | SIM卡密码的解锁密码                    |
-| callback | AsyncCallback&lt;[LockStatusResponse](#LockStatusResponse7)&gt; | 是   | 回调函数。                             |
+| callback | AsyncCallback&lt;[LockStatusResponse](#lockstatusresponse7)&gt; | 是   | 回调函数。                             |
 
 **示例:**
 
 ```js
-let puk='1xxxxxxx';
-let newPin='1235';
-sim.unlockPuk(0, newPin,puk,(err, data) => {
+let puk = '1xxxxxxx';
+let newPin = '1235';
+sim.unlockPuk(0, newPin, puk, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1461,14 +1465,14 @@ unlockPuk(slotId: number,newPin: string,puk: string): Promise&lt;LockStatusRespo
 
 | 类型                                                 | 说明                                               |
 | ---------------------------------------------------- | -------------------------------------------------- |
-| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
+| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
 
 **示例:**
 
 ```js
-let puk='1xxxxxxx';
-let newPin='1235';
-let promise = sim.unlockPuk(0,newPin,puk);
+let puk = '1xxxxxxx';
+let newPin = '1235';
+let promise = sim.unlockPuk(0, newPin, puk);
 promise.then(data => {
     console.log(`unlockPuk success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1494,13 +1498,13 @@ promise.then(data => {
 | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
 | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
 | pin2     | string                                                       | 是   | SIM卡的密码                            |
-| callback | AsyncCallback&lt;[LockStatusResponse](#LockStatusResponse7)&gt; | 是   | 回调函数。                             |
+| callback | AsyncCallback&lt;[LockStatusResponse](#lockstatusresponse7)&gt; | 是   | 回调函数。                             |
 
 **示例:**
 
 ```js
-let pin2='1234';
-sim.unlockPin2(0, pin2,(err, data) => {
+let pin2 = '1234';
+sim.unlockPin2(0, pin2, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1529,7 +1533,7 @@ unlockPin2(slotId: number,pin2: string): Promise&lt;LockStatusResponse\>
 
 | 类型                                                  | 说明                                               |
 | ----------------------------------------------------- | -------------------------------------------------- |
-| Promise\<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
+| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
 
 **示例:**
 
@@ -1562,14 +1566,14 @@ unlockPuk2(slotId: number,newPin2: string,puk2: string ,callback: AsyncCallback<
 | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
 | newPin2  | string                                                       | 是   | 重置SIM卡的密码                        |
 | puk2     | string                                                       | 是   | SIM卡密码的解锁密码                    |
-| callback | AsyncCallback&lt;[LockStatusResponse](#LockStatusResponse7)&gt; | 是   | 回调函数。                             |
+| callback | AsyncCallback&lt;[LockStatusResponse](#lockstatusresponse7)&gt; | 是   | 回调函数。                             |
 
 **示例:**
 
 ```js
-let puk2='1xxxxxxx';
-let newPin2='1235';
-sim.unlockPuk2(0, newPin2,puk2,(err, data) => {
+let puk2 = '1xxxxxxx';
+let newPin2 = '1235';
+sim.unlockPuk2(0, newPin2, puk2, (err, data) => {
     console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
 });
 ```
@@ -1599,14 +1603,14 @@ unlockPuk2slotId: number,newPin2: string,puk2: string): Promise&lt;LockStatusRes
 
 | 类型                                                 | 说明                                               |
 | ---------------------------------------------------- | -------------------------------------------------- |
-| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
+| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 |
 
 **示例:**
 
 ```js
-let puk2='1xxxxxxx';
-let newPin2='1235';
-let promise = sim.unlockPuk2(0,newPin2,puk2);
+let puk2 = '1xxxxxxx';
+let newPin2 = '1235';
+let promise = sim.unlockPuk2(0, newPin2, puk2);
 promise.then(data => {
     console.log(`unlockPuk2 success, promise: data->${JSON.stringify(data)}`);
 }).catch(err => {
@@ -1634,143 +1638,1313 @@ getMaxSimCount\(\): number
 console.log("Result: "+ sim.getMaxSimCount())
 ```
 
+## sim.getSimIccId<sup>7+</sup>
 
-## SimState
+getSimIccId(slotId: number, callback: AsyncCallback<string\>): void
 
-SIM卡状态。
+获取指定卡槽SIM卡的ICCID,使用callback方式作为异步方法。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+此接口为系统接口。
 
-| 名称                  | 值   | 说明                                                       |
-| --------------------- | ---- | ---------------------------------------------------------- |
-| SIM_STATE_UNKNOWN     | 0    | SIM卡状态未知,即无法获取准确的状态。                      |
-| SIM_STATE_NOT_PRESENT | 1    | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。      |
-| SIM_STATE_LOCKED      | 2    | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。   |
-| SIM_STATE_NOT_READY   | 3    | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。    |
-| SIM_STATE_READY       | 4    | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。            |
-| SIM_STATE_LOADED      | 5    | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 |
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-## CardType<sup>7+</sup>
+**系统能力**:SystemCapability.Telephony.CoreService
 
-卡类型。
+**参数:**
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<string\> | 是   | 回调函数。                             |
 
-| 名称 | 值 | 说明 |
-| ----- | ----- | ----- |
-|UNKNOWN_CARD | -1 | 未知类型 |
-|SINGLE_MODE_SIM_CARD | 10 | 单SIM卡 |
-|SINGLE_MODE_USIM_CARD | 20 | 单USIM卡 |
-|SINGLE_MODE_RUIM_CARD | 30 | 单RUIM卡 |
-|DUAL_MODE_CG_CARD | 40 | 双卡模式C+G |
-|CT_NATIONAL_ROAMING_CARD | 41 | 中国电信内部漫游卡 |
-|CU_DUAL_MODE_CARD | 42 | 中国联通双模卡 |
-|DUAL_MODE_TELECOM_LTE_CARD | 43 | 双模式电信LTE卡 |
-|DUAL_MODE_UG_CARD | 50 | 双模式UG卡 |
-|SINGLE_MODE_ISIM_CARD<sup>8+</sup> | 60 | 单一ISIM卡类型 |
+**示例:**
 
-## LockType<sup>8+</sup>
+```js
+sim.getSimIccId(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
 
-锁类型。
+
+## sim.getSimIccId<sup>7+</sup>
+
+getSimIccId(slotId: number): Promise<string\>
+
+获取指定卡槽SIM卡的ICCID,使用Promise方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-| 名称     | 值   | 说明        |
-| -------- | ---- | ----------- |
-| PIN_LOCK | 1    | SIM卡密码锁 |
-| FDN_LOCK | 2    | 固定拨号锁  |
+**系统能力**:SystemCapability.Telephony.CoreService
 
-## LockState<sup>8+</sup>
+**参数:**
 
-锁状态。
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                        |
+| ---------------- | ------------------------------------------- |
+| Promise<string\> | 以Promise形式返回获取指定卡槽SIM卡的ICCID。 |
+
+**示例:**
+
+```js
+let promise = sim.getSimIccId(0);
+promise.then(data => {
+    console.log(`getSimIccId success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getSimIccId fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getVoiceMailIdentifier<sup>8+</sup>
+
+getVoiceMailIdentifier(slotId: number, callback: AsyncCallback<string\>): void
+
+获取指定卡槽中SIM卡语音信箱的alpha标识符,使用callback方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-| 名称     | 值   | 说明       |
-| -------- | ---- | ---------- |
-| LOCK_OFF | 0    | 锁关闭状态 |
-| LOCK_ON  | 1    | 锁开启状态 |
+**系统能力**:SystemCapability.Telephony.CoreService
 
-## **PersoLockType**<sup>8+</sup>
+**参数:**
 
-定制锁类型。
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<string\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getVoiceMailIdentifier(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getVoiceMailIdentifier<sup>8+</sup>
+
+getVoiceMailIdentifier(slotId: number): Promise<string\>
+
+获取指定卡槽中SIM卡语音信箱的alpha标识符,使用Promise方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-| 名称         | 值   | 说明                                            |
-| ------------ | ---- | ----------------------------------------------- |
-| PN_PIN_LOCK  | 0    | 定制网络PIN锁*(参照 3GPP TS 22.022 [33])*       |
-| PN_PUK_LOCK  | 1    | 定制网络PUk锁                                   |
-| PU_PIN_LOCK  | 2    | 定制网络子集PIN锁*(参照 3GPP TS 22.022 [33])*   |
-| PU_PUK_LOCK  | 3    | 定制网络子集PUK锁                               |
-| PP_PIN_LOCK  | 4    | 定制服务提供者PIN锁*(参照 3GPP TS 22.022 [33])* |
-| PP_PUK_LOCK  | 5    | 定制服务提供者PUK锁                             |
-| PC_PIN_LOCK  | 6    | 定制企业PIN锁*(参照 3GPP TS 22.022 [33])*       |
-| PC_PUK_LOCK  | 7    | 定制企业Puk锁                                   |
-| SIM_PIN_LOCK | 8    | 定制SIM的PIN锁*(参照 3GPP TS 22.022 [33])*      |
-| SIM_PUK_LOCK | 9    | 定制SIM的PUK锁                                  |
+**系统能力**:SystemCapability.Telephony.CoreService
 
-## **LockStatusResponse**<sup>7+</sup>
+**参数:**
 
-锁状态响应。
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                              |
+| ---------------- | ------------------------------------------------- |
+| Promise<string\> | 以Promise形式返回获取指定卡槽SIM卡的alpha标识符。 |
+
+**示例:**
+
+```js
+let promise = sim.getVoiceMailIdentifier(0);
+promise.then(data => {
+    console.log(`getVoiceMailIdentifier success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getVoiceMailIdentifier fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getVoiceMailNumber<sup>8+</sup>
+
+getVoiceMailNumber(slotId: number, callback: AsyncCallback<string\>): void
+
+获取指定卡槽中SIM卡的语音信箱号,使用callback方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-| 名称            | 类型   | 说明               |
-| --------------- | ------ | ------------------ |
-| result          | number | 当前操作的结果     |
-| remain?: number | number | 剩余次数(可以为空) |
+**系统能力**:SystemCapability.Telephony.CoreService
 
-## **LockInfo**<sup>8+</sup>
+**参数:**
+
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<string\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getVoiceMailNumber(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
 
-锁状态响应。
+
+## sim.getVoiceMailNumber<sup>8+</sup>
+
+getVoiceMailNumber(slotId: number): Promise<string\>
+
+获取指定卡槽中SIM卡的语音信箱号,使用Promise方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
 
-| 名称     | 类型      | 说明   |
-| -------- | --------- | ------ |
-| lockType | LockType  | 锁类型 |
-| password | string    | 密码   |
-| state    | LockState | 锁状态 |
+**系统能力**:SystemCapability.Telephony.CoreService
 
-## **PersoLockInfo**<sup>8+</sup>
+**参数:**
 
-锁状态响应。
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                             |
+| ---------------- | ------------------------------------------------ |
+| Promise<string\> | 以Promise形式返回获取指定卡槽SIM卡的语音信箱号。 |
+
+**示例:**
+
+```js
+let promise = sim.getVoiceMailNumber(0);
+promise.then(data => {
+    console.log(`getVoiceMailNumber success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getVoiceMailNumber fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.setVoiceMailInfo<sup>8+</sup>
+
+setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string, callback: AsyncCallback<void\>): void
+
+设置语音邮件信息,使用callback方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
 
-| 名称     | 类型          | 说明         |
-| -------- | ------------- | ------------ |
-| lockType | PersoLockType | 定制锁的类型 |
-| password | string        | 密码         |
+**参数:**
 
-## **IccAccountInfo**<sup>7+</sup>
+| 参数名     | 类型                 | 必填 | 说明                                   |
+| ---------- | -------------------- | ---- | -------------------------------------- |
+| slotId     | number               | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| mailName   | string               | 是   | 邮件名字                               |
+| mailNumber | string               | 是   | 邮件号码                               |
+| callback   | AsyncCallback<void\> | 是   | 回调函数。                             |
 
-Icc账户信息。
+**示例:**
+
+```js
+sim.setVoiceMailInfo(0, "mail", "xxx@xxx.com" , (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.setVoiceMailInfo<sup>8+</sup>
+
+setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise<void\>
+
+设置语音邮件信息,使用Promise方式作为异步方法。
 
 此接口为系统接口。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
 
-| 名称       | 类型    | 说明             |
-| ---------- | ------- | ---------------- |
-| simId      | number  | SIM卡ID          |
-| slotIndex  | number  | 卡槽ID           |
-| isEsim     | boolean | 标记卡是否是eSim |
-| isActive   | boolean | 卡是否被激活     |
-| iccId      | string  | ICCID号码        |
-| showName   | string  | SIM卡显示名称    |
-| showNumber | string  | SIM卡显示号码    |
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名     | 类型   | 必填 | 说明                                   |
+| ---------- | ------ | ---- | -------------------------------------- |
+| slotId     | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| mailName   | string | 是   | 邮件名字                               |
+| mailNumber | string | 是   | 邮件号码                               |
+
+**返回值:**
+
+| 类型           | 说明                    |
+| -------------- | ----------------------- |
+| Promise<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = sim.setVoiceMailInfo(0, "mail", "xxx@xxx.com");
+promise.then(data => {
+    console.log(`setVoiceMailInfo success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`setVoiceMailInfo fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getSimTelephoneNumber<sup>8+</sup>
+
+getSimTelephoneNumber(slotId: number, callback: AsyncCallback<string\>): void
+
+获取指定卡槽中SIM卡的MSISDN,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<string\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getSimTelephoneNumber(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getSimTelephoneNumber<sup>8+</sup>
+
+getSimTelephoneNumber(slotId: number): Promise<string\>
+
+获取指定卡槽中SIM卡的MSISDN,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                         |
+| ---------------- | -------------------------------------------- |
+| Promise<string\> | 以Promise形式返回获取指定卡槽SIM卡的MSISDN。 |
+
+**示例:**
+
+```js
+let promise = sim.getSimTelephoneNumber(0);
+promise.then(data => {
+    console.log(`getSimTelephoneNumber success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getSimTelephoneNumber fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getSimGid1<sup>7+</sup>
+
+getSimGid1(slotId: number, callback: AsyncCallback<string\>): void
+
+获取指定卡槽中SIM卡的组标识符级别1(GID1),使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                    | 必填 | 说明                                   |
+| -------- | ----------------------- | ---- | -------------------------------------- |
+| slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getSimGid1(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getSimGid1<sup>7+</sup>
+
+getSimGid1(slotId: number): Promise<string\>
+
+获取指定卡槽中SIM卡的组标识符级别1(GID1),使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                              |
+| ---------------- | ------------------------------------------------- |
+| Promise<string\> | 以Promise形式返回获取指定卡槽SIM卡的标识符级别1。 |
+
+**示例:**
+
+```js
+let promise = sim.getSimGid1(0);
+promise.then(data => {
+    console.log(`getSimGid1 success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getSimGid1 fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getIMSI
+
+getIMSI(slotId: number, callback: AsyncCallback<string\>): void
+
+获取国际移动用户识别码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                    | 必填 | 说明                                   |
+| -------- | ----------------------- | ---- | -------------------------------------- |
+| slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getIMSI(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getIMSI
+
+getIMSI(slotId: number): Promise<string\>
+
+获取国际移动用户识别码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                        |
+| ---------------- | ------------------------------------------- |
+| Promise<string\> | 以Promise形式返回获取的国际移动用户识别码。 |
+
+**示例:**
+
+```js
+let promise = sim.getIMSI(0);
+promise.then(data => {
+    console.log(`getIMSI success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getIMSI fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getOperatorConfigs<sup>8+</sup>
+
+getOperatorConfigs(slotId: number, callback: AsyncCallback<Array<OperatorConfig\>>): void
+
+获取运营商配置,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                      | 必填 | 说明                                   |
+| -------- | --------------------------------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                                                    | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<Array<[OperatorConfig](#operatorconfig8)\>> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.getOperatorConfigs(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getOperatorConfigs<sup>8+</sup>
+
+getOperatorConfigs(slotId: number): Promise<Array<OperatorConfig\>>
+
+获取运营商配置,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                                | 说明                          |
+| --------------------------------------------------- | ----------------------------- |
+| Promise<Array<[OperatorConfig](#operatorconfig8)\>> | 以Promise形式返回运营商配置。 |
+
+**示例:**
+
+```js
+let promise = sim.getOperatorConfigs(0);
+promise.then(data => {
+    console.log(`getOperatorConfigs success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getOperatorConfigs fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.queryIccDiallingNumbers<sup>8+</sup>
+
+queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallback<Array<DiallingNumbersInfo\>>): void
+
+查询SIM卡联系人号码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.READ_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                         | 必填 | 说明                                                       |
+| -------- | ------------------------------------------------------------ | ---- | ---------------------------------------------------------- |
+| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type     | [ContactType](#contacttype8)                                                  | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| callback | AsyncCallback<Array<[DiallingNumbersInfo](#diallingnumbersinfo8)\>> | 是   | 回调函数。                                                 |
+
+**示例:**
+
+```js
+sim.queryIccDiallingNumbers(0, 1, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.queryIccDiallingNumbers<sup>8+</sup>
+
+queryIccDiallingNumbers(slotId: number, type: ContactType): Promise<Array<DiallingNumbersInfo\>>
+
+查询SIM卡联系人号码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.READ_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型        | 必填 | 说明                                                       |
+| ------ | ----------- | ---- | ---------------------------------------------------------- |
+| slotId | number      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type   | [ContactType](#contacttype8)  | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+
+**返回值:**
+
+| 类型                                                         | 说明                           |
+| ------------------------------------------------------------ | ------------------------------ |
+| Promise<Array<[DiallingNumbersInfo](#diallingnumbersinfo8)\>> | 以Promise形式返回Icc拨号号码。 |
+
+**示例:**
+
+```js
+let promise = sim.queryIccDiallingNumbers(0, 1);
+promise.then(data => {
+    console.log(`queryIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`queryIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.addIccDiallingNumbers<sup>8+</sup>
+
+addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback<void\>): void
+
+添加SIM卡联系人号码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+| callback        | AsyncCallback<void\>                         | 是   | 回调函数                                                   |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+sim.addIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.addIccDiallingNumbers<sup>8+</sup>
+
+addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise<void\>
+
+添加SIM卡联系人号码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+
+**返回值:**
+
+| 类型           | 说明                        |
+| -------------- | --------------------------- |
+| Promise<void\> | 以Promise形式返回添加结果。 |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+let promise = sim.addIccDiallingNumbers(0, 1, diallingNumbersInof);
+promise.then(data => {
+    console.log(`addIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`addIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.delIccDiallingNumbers<sup>8+</sup>
+
+delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback<void\>): void
+
+删除SIM卡联系人号码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+| callback        | AsyncCallback<void\>                         | 是   | 回调函数                                                   |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+sim.delIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.delIccDiallingNumbers<sup>8+</sup>
+
+delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise<void\>
+
+删除SIM卡联系人号码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+
+**返回值:**
+
+| 类型           | 说明                        |
+| -------------- | --------------------------- |
+| Promise<void\> | 以Promise形式返回删除结果。 |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+let promise = sim.delIccDiallingNumbers(0, 1, diallingNumbersInof);
+promise.then(data => {
+    console.log(`delIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`delIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.updateIccDiallingNumbers<sup>8+</sup>
+
+updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback<void\>): void
+
+更新SIM卡联系人号码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+| callback        | AsyncCallback<void\>                         | 是   | 回调函数                                                   |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+sim.updateIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.updateIccDiallingNumbers<sup>8+</sup>
+
+updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise<void\>
+
+更新SIM卡联系人号码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.WRITE_CONTACTS
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名          | 类型                                         | 必填 | 说明                                                       |
+| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- |
+| slotId          | number                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                     |
+| type            | [ContactType](#contacttype8)                 | 是   | 联系人类型。<br/>1 : GENERAL_CONTACT<br/>2 : FIXED_DIALING |
+| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是   | 拨号号码信息                                               |
+
+**返回值:**
+
+| 类型           | 说明                          |
+| -------------- | ----------------------------- |
+| Promise<void\> | 以Promise形式返回更新的结果。 |
+
+**示例:**
+
+```js
+let diallingNumbersInof = {
+    alphaTag = "alpha",
+    number = "138xxxxxxxx",
+    recordNumber = 123,
+    pin2 = "1234"
+};
+let promise = sim.updateIccDiallingNumbers(0, 1, diallingNumbersInof);
+promise.then(data => {
+    console.log(`updateIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`updateIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.sendEnvelopeCmd<sup>8+</sup>
+
+sendEnvelopeCmd(slotId: number, cmd: string, callback: AsyncCallback<void\>): void
+
+发送信封命令,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                 | 必填 | 说明                                   |
+| -------- | -------------------- | ---- | -------------------------------------- |
+| slotId   | number               | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| cmd      | string               | 是   | 命令                                   |
+| callback | AsyncCallback<void\> | 是   | 是                                     |
+
+**示例:**
+
+```js
+sim.sendEnvelopeCmd(0, "ls", (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.sendEnvelopeCmd<sup>8+</sup>
+
+sendEnvelopeCmd(slotId: number, cmd: string): Promise<void\>
+
+发送信封命令,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| cmd    | string | 是   | 命令                                   |
+
+**返回值:**
+
+| 类型           | 说明                        |
+| -------------- | --------------------------- |
+| Promise<void\> | 以Promise形式返回发送结果。 |
+
+**示例:**
+
+```js
+let promise = sim.sendEnvelopeCmd(0, "ls");
+promise.then(data => {
+    console.log(`sendEnvelopeCmd success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`sendEnvelopeCmd fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.sendTerminalResponseCmd<sup>8+</sup>
+
+sendTerminalResponseCmd(slotId: number, cmd: string, callback: AsyncCallback<void\>): void
+
+发送终端响应命令,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                 | 必填 | 说明                                   |
+| -------- | -------------------- | ---- | -------------------------------------- |
+| slotId   | number               | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| cmd      | string               | 是   | 命令                                   |
+| callback | AsyncCallback<void\> | 是   | 回调函数。                             |
+
+**示例:**
+
+```js
+sim.sendTerminalResponseCmd(0, "ls", (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.sendTerminalResponseCmd<sup>8+</sup>
+
+sendTerminalResponseCmd(slotId: number, cmd: string): Promise<void\>
+
+发送终端响应命令,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| cmd    | string | 是   | 命令                                   |
+
+**返回值:**
+
+| 类型           | 说明                        |
+| -------------- | --------------------------- |
+| Promise<void\> | 以Promise形式返回发送结果。 |
+
+**示例:**
+
+```js
+let promise = sim.sendTerminalResponseCmd(0, "ls");
+promise.then(data => {
+    console.log(`sendTerminalResponseCmd success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`sendTerminalResponseCmd fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.unlockSimLock<sup>8+</sup>
+
+unlockSimLock(slotId: number, lockInfo: PersoLockInfo, callback: AsyncCallback<LockStatusResponse\>): void
+
+解锁SIM卡锁,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                                                       | 必填 | 说明                                   |
+| -------- | ---------------------------------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                                                     | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| lockInfo | [PersoLockInfo](#persolockinfo8)                           | 是   | 定制锁类型信息                         |
+| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)\> | 是   | 回调函数                               |
+
+**示例:**
+
+```js
+let persoLockInfo = {
+    lockType = 0,
+    password = "1234"
+};
+sim.unlockSimLock(0, persoLockInfo, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.unlockSimLock<sup>8+</sup>
+
+unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise<LockStatusResponse\>
+
+解锁SIM卡锁,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                             | 必填 | 说明                                   |
+| -------- | -------------------------------- | ---- | -------------------------------------- |
+| slotId   | number                           | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| lockInfo | [PersoLockInfo](#persolockinfo8) | 是   | 定制锁类型信息                         |
+
+**返回值:**
+
+| 类型                                                 | 说明                      |
+| ---------------------------------------------------- | ------------------------- |
+| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回锁状态。 |
+
+**示例:**
+
+```js
+let persoLockInfo = {
+    lockType = 0,
+    password = "1234"
+};
+let promise = sim.unlockSimLock(0, persoLockInfo);
+promise.then(data => {
+    console.log(`unlockSimLock success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`unlockSimLock fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getOpKey<sup>9+</sup>
+
+getOpKey(slotId: number, callback: AsyncCallback<number\>): void
+
+获取指定卡槽中SIM卡的opkey,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<number\> | 是   | 回调函数                               |
+
+**示例:**
+
+```js
+sim.getOpKey(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getOpKey<sup>9+</sup>
+
+getOpKey(slotId: number): Promise<number\>
+
+获取指定卡槽中SIM卡的opkey,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                      |
+| ---------------- | ----------------------------------------- |
+| Promise<number\> | 以Promise形式返回指定卡槽中SIM卡的opkey。 |
+
+**示例:**
+
+```js
+let promise = sim.getOpKey(0);
+promise.then(data => {
+    console.log(`getOpKey success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getOpKey fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getOpName<sup>9+</sup>
+
+getOpName(slotId: number, callback: AsyncCallback<string\>): void
+
+获取指定卡槽中SIM卡的OpName,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名   | 类型                   | 必填 | 说明                                   |
+| -------- | ---------------------- | ---- | -------------------------------------- |
+| slotId   | number                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<string\> | 是   | 回调函数                               |
+
+**示例:**
+
+```js
+sim.getOpName(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.getOpName<sup>9+</sup>
+
+getOpName(slotId: number): Promise<string\>
+
+获取指定卡槽中SIM卡的OpName,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                   |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型             | 说明                                       |
+| ---------------- | ------------------------------------------ |
+| Promise<string\> | 以Promise形式返回指定卡槽中SIM卡的OpName。 |
+
+**示例:**
+
+```js
+let promise = sim.getOpName(0);
+promise.then(data => {
+    console.log(`getOpName success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.log(`getOpName fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## SimState
+
+SIM卡状态。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称                  | 值   | 说明                                                       |
+| --------------------- | ---- | ---------------------------------------------------------- |
+| SIM_STATE_UNKNOWN     | 0    | SIM卡状态未知,即无法获取准确的状态。                      |
+| SIM_STATE_NOT_PRESENT | 1    | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。      |
+| SIM_STATE_LOCKED      | 2    | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。   |
+| SIM_STATE_NOT_READY   | 3    | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。    |
+| SIM_STATE_READY       | 4    | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。            |
+| SIM_STATE_LOADED      | 5    | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 |
+
+## CardType<sup>7+</sup>
+
+卡类型。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称 | 值 | 说明 |
+| ----- | ----- | ----- |
+|UNKNOWN_CARD | -1 | 未知类型 |
+|SINGLE_MODE_SIM_CARD | 10 | 单SIM卡 |
+|SINGLE_MODE_USIM_CARD | 20 | 单USIM卡 |
+|SINGLE_MODE_RUIM_CARD | 30 | 单RUIM卡 |
+|DUAL_MODE_CG_CARD | 40 | 双卡模式C+G |
+|CT_NATIONAL_ROAMING_CARD | 41 | 中国电信内部漫游卡 |
+|CU_DUAL_MODE_CARD | 42 | 中国联通双模卡 |
+|DUAL_MODE_TELECOM_LTE_CARD | 43 | 双模式电信LTE卡 |
+|DUAL_MODE_UG_CARD | 50 | 双模式UG卡 |
+|SINGLE_MODE_ISIM_CARD<sup>8+</sup> | 60 | 单一ISIM卡类型 |
+
+## LockType<sup>8+</sup>
+
+锁类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称     | 值   | 说明        |
+| -------- | ---- | ----------- |
+| PIN_LOCK | 1    | SIM卡密码锁 |
+| FDN_LOCK | 2    | 固定拨号锁  |
+
+## LockState<sup>8+</sup>
+
+锁状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称     | 值   | 说明       |
+| -------- | ---- | ---------- |
+| LOCK_OFF | 0    | 锁关闭状态 |
+| LOCK_ON  | 1    | 锁开启状态 |
+
+## PersoLockType<sup>8+</sup>
+
+定制锁类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称         | 值   | 说明                                            |
+| ------------ | ---- | ----------------------------------------------- |
+| PN_PIN_LOCK  | 0    | 定制网络PIN锁*(参照 3GPP TS 22.022 [33])*       |
+| PN_PUK_LOCK  | 1    | 定制网络PUk锁                                   |
+| PU_PIN_LOCK  | 2    | 定制网络子集PIN锁*(参照 3GPP TS 22.022 [33])*   |
+| PU_PUK_LOCK  | 3    | 定制网络子集PUK锁                               |
+| PP_PIN_LOCK  | 4    | 定制服务提供者PIN锁*(参照 3GPP TS 22.022 [33])* |
+| PP_PUK_LOCK  | 5    | 定制服务提供者PUK锁                             |
+| PC_PIN_LOCK  | 6    | 定制企业PIN锁*(参照 3GPP TS 22.022 [33])*       |
+| PC_PUK_LOCK  | 7    | 定制企业Puk锁                                   |
+| SIM_PIN_LOCK | 8    | 定制SIM的PIN锁*(参照 3GPP TS 22.022 [33])*      |
+| SIM_PUK_LOCK | 9    | 定制SIM的PUK锁                                  |
+
+## LockStatusResponse<sup>7+</sup>
+
+锁状态响应。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称            | 类型   | 说明               |
+| --------------- | ------ | ------------------ |
+| result          | number | 当前操作的结果     |
+| remain?: number | number | 剩余次数(可以为空) |
+
+## LockInfo<sup>8+</sup>
+
+锁状态响应。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称     | 类型                     | 说明   |
+| -------- | ------------------------ | ------ |
+| lockType | [LockType](#locktype8)   | 锁类型 |
+| password | string                   | 密码   |
+| state    | [LockState](#lockstate8) | 锁状态 |
+
+## PersoLockInfo<sup>8+</sup>
+
+锁状态响应。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称     | 类型                             | 说明         |
+| -------- | -------------------------------- | ------------ |
+| lockType | [PersoLockType](#persolocktype8) | 定制锁的类型 |
+| password | string                           | 密码         |
+
+## IccAccountInfo<sup>7+</sup>
+
+Icc账户信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称       | 类型    | 说明             |
+| ---------- | ------- | ---------------- |
+| simId      | number  | SIM卡ID          |
+| slotIndex  | number  | 卡槽ID           |
+| isEsim     | boolean | 标记卡是否是eSim |
+| isActive   | boolean | 卡是否被激活     |
+| iccId      | string  | ICCID号码        |
+| showName   | string  | SIM卡显示名称    |
+| showNumber | string  | SIM卡显示号码    |
+
+## OperatorConfig<sup>8+</sup>
+
+运营商配置。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称  | 类型   | 说明 |
+| ----- | ------ | ---- |
+| field | string | 字段 |
+| value | string | 值   |
+
+## DiallingNumbersInfo<sup>8+</sup>
+
+拨号号码信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
+
+| 名称         | 类型   | 说明     |
+| ------------ | ------ | -------- |
+| alphaTag     | string | 标签     |
+| number       | string | 号码     |
+| recordNumber | number | 记录编号 |
+| pin2         | string | pin2密码 |
+
+## ContactType<sup>8+</sup>
+
+联系人类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
 
+| 名称            | 值   | 说明       |
+| :-------------- | ---- | ---------- |
+| GENERAL_CONTACT | 1    | 通用联系人 |
+| FIXED_DIALING   | 2    | 固定拨号   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md
index ed5918167b1bc9108b845951f7ba8ef5eef4d23d..65468e08bab26059709abe64f47cf0eed8c0d5c7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-sms.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md
@@ -375,6 +375,739 @@ let result = sms.hasSmsCapability();
 console.log(`hasSmsCapability: ${JSON.stringify(result)}`);
 ```
 
+## sms.splitMessage<sup>8+</sup>
+
+splitMessage(content: string, callback: AsyncCallback<Array<string\>>): void
+
+将长短信拆分为多个片段,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                          | 必填 | 说明                          |
+| -------- | ----------------------------- | ---- | ----------------------------- |
+| content  | string                        | 是   | 指示短消息内容,不能为null。 |
+| callback | AsyncCallback<Array<string\>> | 是   | 回调函数。                    |
+
+**示例:**
+
+```js
+string content= "long message";
+sms.splitMessage(content, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.splitMessage<sup>8+</sup>
+
+splitMessage(content: string): Promise<Array<string\>>
+
+将长短信拆分为多个片段,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名  | 类型   | 必填 | 说明                         |
+| ------- | ------ | ---- | ---------------------------- |
+| content | string | 是   | 指示短消息内容,不能为null。 |
+
+**返回值:**
+
+| 类型                    | 说明                                |
+| ----------------------- | ----------------------------------- |
+| Promise<Array<string\>> | 以Promise形式返回多个片段的的结果。 |
+
+**示例:**
+
+```js
+string content = "long message";
+let promise = sms.splitMessage(content);
+promise.then(data => {
+    console.log(`splitMessage success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`splitMessage fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.addSimMessage<sup>7+</sup>
+
+addSimMessage(options: SimMessageOptions, callback: AsyncCallback<void\>): void
+
+添加SIM卡消息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                                     | 必填 | 说明            |
+| -------- | ---------------------------------------- | ---- | --------------- |
+| options  | [SimMessageOptions](#simmessageoptions7) | 是   | SIM卡消息选项。 |
+| callback | AsyncCallback&lt;void&gt;                | 是   | 回调函数。      |
+
+**示例:**
+
+```js
+let simMessageOptions = {
+    slotId = 0,
+    smsc = "test",
+    pdu = "xxxxxx",
+    status = 0
+};
+sms.addSimMessage(simMessageOptions, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.addSimMessage<sup>7+</sup>
+
+addSimMessage(options: SimMessageOptions): Promise<void\>
+
+添加SIM卡消息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名  | 类型                                     | 必填 | 说明            |
+| ------- | ---------------------------------------- | ---- | --------------- |
+| options | [SimMessageOptions](#simmessageoptions7) | 是   | SIM卡消息选项。 |
+
+**返回值:**
+
+| 类型                | 说明                          |
+| ------------------- | ----------------------------- |
+| Promise&lt;void&gt; | 以Promise形式返回添加的结果。 |
+
+**示例:**
+
+```js
+let simMessageOptions = {
+    slotId = 0,
+    smsc = "test",
+    pdu = "xxxxxx",
+    status = 0
+};
+let promise = sms.addSimMessage(simMessageOptions);
+promise.then(data => {
+    console.log(`addSimMessage success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`addSimMessage fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.delSimMessage<sup>7+</sup>
+
+delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback<void\>): void
+
+删除SIM卡消息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                      | 必填 | 说明                                      |
+| -------- | ------------------------- | ---- | ----------------------------------------- |
+| slotId   | number                    | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| msgIndex | number                    | 是   | 消息索引                                  |
+| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。                                |
+
+**示例:**
+
+```js
+let slotId = 0;
+let msgIndex = 1;
+sms.delSimMessage(slotId, msgIndex, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.delSimMessage<sup>7+</sup>
+
+delSimMessage(slotId: number, msgIndex: number): Promise<void\>
+
+删除SIM卡信息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型   | 必填 | 说明                                      |
+| -------- | ------ | ---- | ----------------------------------------- |
+| slotId   | number | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| msgIndex | number | 是   | 消息索引                                  |
+
+**返回值:**
+
+| 类型                | 说明                          |
+| ------------------- | ----------------------------- |
+| Promise&lt;void&gt; | 以Promise形式返回删除的结果。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let msgIndex = 1;
+let promise = sms.delSimMessage(slotId, msgIndex);
+promise.then(data => {
+    console.log(`delSimMessage success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`delSimMessage fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.updateSimMessage<sup>7+</sup>
+
+updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback<void\>): void
+
+更新SIM卡消息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                                                 | 必填 | 说明                |
+| -------- | ---------------------------------------------------- | ---- | ------------------- |
+| options  | [UpdateSimMessageOptions](#updatesimmessageoptions7) | 是   | 更新SIM卡消息选项。 |
+| callback | AsyncCallback&lt;void&gt;                            | 是   | 回调函数。          |
+
+**示例:**
+
+```js
+let updateSimMessageOptions = {
+    slotId = 0,
+    msgIndex = 1,
+    newStatus = 0,
+    pdu = "xxxxxxx",
+    smsc = "test"
+};
+sms.updateSimMessage(updateSimMessageOptions, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.updateSimMessage<sup>7+</sup>
+
+updateSimMessage(options: UpdateSimMessageOptions): Promise<void\>
+
+更新SIM卡消息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名  | 类型                                                 | 必填 | 说明                |
+| ------- | ---------------------------------------------------- | ---- | ------------------- |
+| options | [UpdateSimMessageOptions](#updatesimmessageoptions7) | 是   | 更新SIM卡消息选项。 |
+
+**返回值:**
+
+| 类型                | 说明                          |
+| ------------------- | ----------------------------- |
+| Promise&lt;void&gt; | 以Promise形式返回更新的结果。 |
+
+**示例:**
+
+```js
+let updateSimMessageOptions = {
+    slotId = 0,
+    msgIndex = 1,
+    newStatus = 0,
+    pdu = "xxxxxxx",
+    smsc = "test"
+};
+let promise = sms.updateSimMessage(updateSimMessageOptions);
+promise.then(data => {
+    console.log(`updateSimMessage success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`updateSimMessage fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.getAllSimMessages<sup>7+</sup>
+
+getAllSimMessages(slotId: number, callback: AsyncCallback<Array<SimShortMessage\>>): void
+
+获取所有SIM卡消息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                                                        | 必填 | 说明                                      |
+| -------- | ----------------------------------------------------------- | ---- | ----------------------------------------- |
+| slotId   | number                                                      | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| callback | AsyncCallback<Array<[SimShortMessage](#simshortmessage8)\>> | 是   | 回调函数。                                |
+
+**示例:**
+
+```js
+let slotId = 0;
+sms.getAllSimMessages(slotId, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.getAllSimMessages<sup>7+</sup>
+
+getAllSimMessages(slotId: number): Promise<Array<SimShortMessage\>>
+
+获取所有SIM卡消息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                      |
+| ------ | ------ | ---- | ----------------------------------------- |
+| slotId | number | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+
+**返回值:**
+
+| 类型                                                    | 说明                               |
+| ------------------------------------------------------- | ---------------------------------- |
+| PromiseArray<[SimShortMessage](#simshortmessage8)\>&gt; | 以Promise形式返回获取的SIM短消息。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = sms.getAllSimMessages(slotId);
+promise.then(data => {
+    console.log(`getAllSimMessages success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getAllSimMessages fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.setCBConfig<sup>7+</sup>
+
+setCBConfig(options: CBConfigOptions, callback: AsyncCallback<void\>): void
+
+设置小区广播配置,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                                 | 必填 | 说明         |
+| -------- | ------------------------------------ | ---- | ------------ |
+| options  | [CBConfigOptions](#cbconfigoptions8) | 是   | 小区广播配置选项。 |
+| callback | AsyncCallback&lt;void&gt;            | 是   | 回调函数。   |
+
+**示例:**
+
+```js
+let cbConfigOptions = {
+    slotId = 0,
+    smsc = "test",
+    pdu = "xxxxxxxx",
+    status = 0
+};
+sms.setCBConfig(cbConfigOptions, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.setCBConfig<sup>7+</sup>
+
+setCBConfig(options: CBConfigOptions): Promise<void\>
+
+设置小区广播配置,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.RECEIVE_SMS
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名  | 类型                                 | 必填 | 说明         |
+| ------- | ------------------------------------ | ---- | ------------ |
+| options | [CBConfigOptions](#cbconfigoptions8) | 是   | 小区广播配置选项。 |
+
+**返回值:**
+
+| 类型                | 说明                          |
+| ------------------- | ----------------------------- |
+| Promise&lt;void&gt; | 以Promise形式返回设置的结果。 |
+
+**示例:**
+
+```js
+let cbConfigOptions = {
+    slotId = 0,
+    smsc = "test",
+    pdu = "xxxxxxxx",
+    status = 0
+};
+let promise = sms.setCBConfig(cbConfigOptions);
+promise.then(data => 
+    console.log(`setCBConfig success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`setCBConfig fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.getSmsSegmentsInfo<sup>8+</sup>
+
+getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback<SmsSegmentsInfo\>): void
+
+获取短信段信息,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名    | 类型                                                         | 必填 | 说明                                      |
+| --------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
+| slotId    | number                                                       | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| message   | string                                                       | 是   | 消息                                      |
+| force7bit | boolean                                                      | 是   | 是否使用7bit编码                          |
+| callback  | AsyncCallback&lt;[SmsSegmentsInfo](#smssegmentsinfo8)&gt; | 是   | 回调函数                                  |
+
+**示例:**
+
+```js
+let slotId = 0;
+sms.getSmsSegmentsInfo(slotId, "message", false, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.getSmsSegmentsInfo<sup>8+</sup>
+
+getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise<SmsSegmentsInfo\>
+
+获取短信段信息,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名    | 类型    | 必填 | 说明                                      |
+| --------- | ------- | ---- | ----------------------------------------- |
+| slotId    | number  | 是   | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
+| message   | string  | 是   | 消息                                      |
+| force7bit | boolean | 是   | 是否使用7bit编码                          |
+
+**返回值:**
+
+| 类型                                                    | 说明                          |
+| ------------------------------------------------------- | ----------------------------- |
+| Promise&lt;[SmsSegmentsInfo](#smssegmentsinfo8)&gt; | 以Promise形式返回短信段信息。 |
+
+**示例:**
+
+```js
+let slotId = 0;
+let promise = sms.getSmsSegmentsInfo(slotId, "message", false);
+promise.then(data => 
+    console.log(`getSmsSegmentsInfo success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getSmsSegmentsInfo fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.isImsSmsSupported<sup>8+</sup>
+
+isImsSmsSupported(callback: AsyncCallback<boolean\>): void
+
+如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                         | 必填 | 说明       |
+| -------- | ---------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+sms.isImsSmsSupported((err, data) => {
+      console.log(`callback: err->${JSON.(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.isImsSmsSupported<sup>8+</sup>
+
+isImsSmsSupported(): Promise<boolean\>
+
+如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**返回值:**
+
+| 类型                   | 说明                    |
+| ---------------------- | ----------------------- |
+| Promise&lt;boolean&gt; | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = sms.isImsSmsSupported();
+promise.then(data => {
+    console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`isImsSmsSupported fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.getImsShortMessageFormat<sup>8+</sup>
+
+getImsShortMessageFormat(callback: AsyncCallback<string\>): void
+
+获取IMS上支持的SMS格式,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                        | 必填 | 说明       |
+| -------- | --------------------------- | ---- | ---------- |
+| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+sms.getImsShortMessageFormat((err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.getImsShortMessageFormat<sup>8+</sup>
+
+getImsShortMessageFormat(): Promise<string\>
+
+获取IMS上支持的SMS格式,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**返回值:**
+
+| 类型                  | 说明                       |
+| --------------------- | -------------------------- |
+| Promise&lt;string&gt; | 以Promise形式返回SMS格式。 |
+
+**示例:**
+
+```js
+let promise = sms.getImsShortMessageFormat();
+promise.then(data => {
+    console.log(`getImsShortMessageFormat success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`getImsShortMessageFormat fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.decodeMms<sup>8+</sup>
+
+decodeMms(mmsFilePathName: string | Array<number\>, callback: AsyncCallback<MmsInformation\>): void
+
+彩信解码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名          | 类型                                                    | 必填 | 说明           |
+| --------------- | ------------------------------------------------------- | ---- | -------------- |
+| mmsFilePathName | string \|Array<number\>                                 | 是   | 彩信文件路径名 |
+| callback        | AsyncCallback&lt;[MmsInformation](#mmsinformation8)&gt; | 是   | 回调函数。     |
+
+**示例:**
+
+```js
+let mmsFilePathName = "filename";
+sms.decodeMms(mmsFilePathName, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.decodeMms<sup>8+</sup>
+
+decodeMms(mmsFilePathName: string | Array<number\>): Promise<MmsInformation\>
+
+彩信解码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名          | 类型                    | 必填 | 说明           |
+| --------------- | ----------------------- | ---- | -------------- |
+| mmsFilePathName | string \|Array<number\> | 是   | 彩信文件路径名 |
+
+**返回值:**
+
+| 类型                                                      | 说明                        |
+| --------------------------------------------------------- | --------------------------- |
+| Promise&lt;&lt;[MmsInformation](#mmsinformation8)&gt;&gt; | 以Promise形式返回彩信信息。 |
+
+**示例:**
+
+```js
+let mmsFilePathName = "filename";
+let promise = sms.getSmscAddr(mmsFilePathName);
+promise.then(data => {
+    console.log(`decodeMms success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`decodeMms fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sms.encodeMms<sup>8+</sup>
+
+encodeMms(mms: MmsInformation, callback: AsyncCallback<Array<number\>>): void
+
+彩信编码,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名   | 类型                                | 必填 | 说明       |
+| -------- | ----------------------------------- | ---- | ---------- |
+| mms      | [MmsInformation](#mmsinformation8)  | 是   | 彩信信息。 |
+| callback | AsyncCallback&lt;Array<number\>&gt; | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+let mmsAcknowledgeInd = {
+    transactionId = "100",
+    version = 0x10,
+    reportAllowed = 128
+};
+let mmsInformation = {
+   messageType = 133,
+    mmsType = mmsAcknowledgeInd
+};
+sms.encodeMms(mmsInformation, (err, data) => {
+      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sms.encodeMms<sup>8+</sup>
+
+encodeMms(mms: MmsInformation): Promise<Array<number\>>
+
+彩信编码,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.Telephony.SmsMms
+
+**参数:**
+
+| 参数名 | 类型                               | 必填 | 说明       |
+| ------ | ---------------------------------- | ---- | ---------- |
+| mms    | [MmsInformation](#mmsinformation8) | 是   | 彩信信息。 |
+
+**返回值:**
+
+| 类型                          | 说明                                |
+| ----------------------------- | ----------------------------------- |
+| Promise&lt;Array<number\>&gt; | 以Promise形式返回彩信编码后的结果。 |
+
+**示例:**
+
+```js
+let mmsAcknowledgeInd = {
+    transactionId = "100",
+    version = 0x10,
+    reportAllowed = 128
+};
+let mmsInformation = {
+   messageType = 133,
+    mmsType = mmsAcknowledgeInd
+};
+let promise = sms.encodeMms(mmsInformation);
+promise.then(data => {
+    console.log(`encodeMms success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+    console.error(`encodeMms fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
 ## ShortMessage
 
 短信实例。
@@ -463,4 +1196,422 @@ console.log(`hasSmsCapability: ${JSON.stringify(result)}`);
 | SEND_SMS_SUCCESS                     | 0    | 发送短信成功。                                         |
 | SEND_SMS_FAILURE_UNKNOWN             | 1    | 发送短信失败,原因未知。                               |
 | SEND_SMS_FAILURE_RADIO_OFF           | 2    | 发送短信失败,原因为调制解调器关机。                   |
-| SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3    | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 |
\ No newline at end of file
+| SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3    | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 |
+
+## MmsInformation<sup>8+</sup>
+
+彩信信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名      | 类型                                                         | 必填 | 说明      |
+| ----------- | ------------------------------------------------------------ | ---- | --------- |
+| messageType | [MessageType](#messagetype8)                                 | 是   | 消息类型  |
+| mmsType     | [MmsSendReq](#mmssendreq8) \|[MmsSendConf](#mmssendconf8) \|[MmsNotificationInd](#mmsnotificationind8) \|[MmsRespInd](#mmsrespind8) \|[MmsRetrieveConf](#mmsretrieveconf8)\|[MmsAcknowledgeInd](#mmsacknowledgeind8)\|[MmsDeliveryInd](#mmsdeliveryind8)\|[MmsReadOrigInd](#mmsreadorigind8)\|[MmsReadRecInd](#mmsreadrecind8) | 是   | pdu头类型 |
+| attachment  | Array<[MmsAttachment](#mmsattachment8)\>                     | 否   | 附件      |
+
+## MmsSendReq<sup>8+</sup>
+
+彩信发送请求。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名           | 类型                                 | 必填 | 说明         |
+| ---------------- | ------------------------------------ | ---- | ------------ |
+| from             | [MmsAddress](#mmsaddress8)           | 是   | 彩信来源     |
+| transactionId    | string                               | 是   | 事务ID       |
+| contentType      | string                               | 是   | 内容类型     |
+| version          | [MmsVersionType](#mmsversiontype8)   | 是   | 版本         |
+| to               | Array<[MmsAddress](#mmsaddress8)\>   | 否   | 发送至       |
+| date             | number                               | 否   | 日期         |
+| cc               | Array<[MmsAddress](#mmsaddress8)\>   | 否   | 抄送         |
+| bcc              | Array<[MmsAddress](#mmsaddress8)\>   | 否   | 暗抄送       |
+| subject          | string                               | 否   | 主题         |
+| messageClass     | number                               | 否   | 消息类       |
+| expiry           | number                               | 否   | 到期         |
+| priority         | [MmsPriorityType](#mmsprioritytype8) | 否   | 优先         |
+| senderVisibility | number                               | 否   | 发件人可见性 |
+| deliveryReport   | number                               | 否   | 交付报告     |
+| readReport       | number                               | 否   | 阅读报告     |
+
+## MmsSendConf<sup>8+</sup>
+
+彩信发送配置。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名        | 类型                               | 必填 | 说明     |
+| ------------- | ---------------------------------- | ---- | -------- |
+| responseState | number                             | 是   | 响应状态 |
+| transactionId | string                             | 是   | 事务ID   |
+| version       | [MmsVersionType](#mmsversiontype8) | 是   | 版本     |
+| messageId     | string                             | 否   | 消息ID   |
+
+## MmsNotificationInd<sup>8+</sup>
+
+彩信通知索引。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名          | 类型                               | 必填 | 说明     |
+| --------------- | ---------------------------------- | ---- | -------- |
+| transactionId   | string                             | 是   | 事务ID   |
+| messageClass    | number                             | 是   | 消息类   |
+| messageSize     | number                             | 是   | 消息大小 |
+| expiry          | number                             | 是   | 到期     |
+| contentLocation | string                             | 是   | 内容位置 |
+| version         | [MmsVersionType](#mmsversiontype8) | 是   | 版本     |
+| from            | [MmsAddress](#mmsaddress8)         | 否   | 来源     |
+| subject         | string                             | 否   | 主题     |
+| deliveryReport  | number                             | 否   | 状态报告 |
+| contentClass    | number                             | 否   | 内容类   |
+
+## MmsAcknowledgeInd<sup>8+</sup>
+
+彩信确认索引。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名        | 类型                               | 必填 | 说明     |
+| ------------- | ---------------------------------- | ---- | -------- |
+| transactionId | string                             | 是   | 事务ID   |
+| version       | [MmsVersionType](#mmsversiontype8) | 是   | 版本     |
+| reportAllowed | [ReportType](#reporttype8)         | 否   | 允许报告 |
+
+## MmsRetrieveConf<sup>8+</sup>
+
+彩信检索配置。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名         | 类型                                 | 必填 | 说明     |
+| -------------- | ------------------------------------ | ---- | -------- |
+| transactionId  | string                               | 是   | 事务ID   |
+| messageId      | string                               | 是   | 消息ID   |
+| date           | number                               | 是   | 日期     |
+| contentType    | string                               | 是   | 内容类型 |
+| to             | Array<[MmsAddress](#mmsaddress8)\>   | 是   | 发送至   |
+| version        | [MmsVersionType](#mmsversiontype8)   | 是   | 版本     |
+| from           | [MmsAddress](#mmsaddress8)           | 否   | 来源     |
+| cc             | Array<[MmsAddress](#mmsaddress8)\>   | 否   | 抄送     |
+| subject        | string                               | 否   | 主题     |
+| priority       | [MmsPriorityType](#mmsprioritytype8) | 否   | 优先级   |
+| deliveryReport | number                               | 否   | 状态报告 |
+| readReport     | number                               | 否   | 阅读报告 |
+| retrieveStatus | number                               | 否   | 检索状态 |
+| retrieveText   | string                               | 否   | 检索文本 |
+
+## MmsReadOrigInd<sup>8+</sup>
+
+彩信读取原始索引。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名     | 类型                               | 必填 | 说明     |
+| ---------- | ---------------------------------- | ---- | -------- |
+| version    | [MmsVersionType](#mmsversiontype8) | 是   | 版本     |
+| messageId  | string                             | 是   | 消息ID   |
+| to         | Array<[MmsAddress](#mmsaddress8)\> | 是   | 发送至   |
+| from       | [MmsAddress](#mmsaddress8)         | 是   | 来源     |
+| date       | number                             | 是   | 日期     |
+| readStatus | number                             | 是   | 阅读状态 |
+
+## MmsAttachment<sup>8+</sup>
+
+彩信附件。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名                  | 类型                                 | 必填 | 说明               |
+| ----------------------- | ------------------------------------ | ---- | ------------------ |
+| contentId               | string                               | 是   | 内容ID             |
+| contentLocation         | string                               | 是   | 内容位置           |
+| contentDisposition      | [DispositionType](#dispositiontype8) | 是   | 内容处理           |
+| contentTransferEncoding | string                               | 是   | 内容传输编码       |
+| contentType             | string                               | 是   | 内容类型           |
+| isSmil                  | boolean                              | 是   | 同步多媒体集成语言 |
+| path                    | string                               | 否   | 路径               |
+| inBuff                  | Array<number\>                       | 否   | 缓冲区中           |
+| fileName                | string                               | 否   | 文件名             |
+| charset                 | [MmsCharSets](#mmscharsets8)         | 否   | 字符集             |
+
+## MmsAddress<sup>8+</sup>
+
+彩信地址。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名  | 类型                         | 必填 | 说明   |
+| ------- | ---------------------------- | ---- | ------ |
+| address | string                       | 是   | 地址   |
+| charset | [MmsCharSets](#mmscharsets8) | 是   | 字符集 |
+
+## MessageType<sup>8+</sup>
+
+消息类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名                    | 值   | 说明                 |
+| ------------------------- | ---- | -------------------- |
+| TYPE_MMS_SEND_REQ         | 128  | 彩信发送请求类型     |
+| TYPE_MMS_SEND_CONF        | 129  | 彩信发送配置类型     |
+| TYPE_MMS_NOTIFICATION_IND | 130  | 彩信通知索引类型     |
+| TYPE_MMS_RESP_IND         | 131  | 彩信回复索引类型     |
+| TYPE_MMS_RETRIEVE_CONF    | 132  | 彩信检索配置类型     |
+| TYPE_MMS_ACKNOWLEDGE_IND  | 133  | 彩信确认索引类型     |
+| TYPE_MMS_DELIVERY_IND     | 134  | 彩信传送索引类型     |
+| TYPE_MMS_READ_REC_IND     | 135  | 彩信读取接收索引类型 |
+| TYPE_MMS_READ_ORIG_IND    | 136  | 彩信读取原始索引类型 |
+
+## MmsPriorityType<sup>8+</sup>
+
+彩信优先级类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名     | 值   | 说明           |
+| ---------- | ---- | -------------- |
+| MMS_LOW    | 128  | 彩信优先级低   |
+| MMS_NORMAL | 129  | 彩信优先级正常 |
+| MMS_HIGH   | 130  | 彩信优先级高   |
+
+## MmsVersionType<sup>8+</sup>
+
+彩信版本类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名          | 值   | 说明        |
+| --------------- | ---- | ----------- |
+| MMS_VERSION_1_0 | 0x10 | 彩信版本1_0 |
+| MMS_VERSION_1_1 | 0x11 | 彩信版本1_1 |
+| MMS_VERSION_1_2 | 0x12 | 彩信版本1_2 |
+| MMS_VERSION_1_3 | 0x13 | 彩信版本1_3 |
+
+## MmsCharSets<sup>8+</sup>
+
+彩信字符集。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名          | 值     | 说明                |
+| --------------- | ------ | ------------------- |
+| BIG5            | 0X07EA | BIG5格式            |
+| ISO_10646_UCS_2 | 0X03E8 | ISO_10646_UCS_2格式 |
+| ISO_8859_1      | 0X04   | ISO_8859_1格式      |
+| ISO_8859_2      | 0X05   | ISO_8859_2格式      |
+| ISO_8859_3      | 0X06   | ISO_8859_3格式      |
+| ISO_8859_4      | 0X07   | ISO_8859_4格式      |
+| ISO_8859_5      | 0X08   | ISO_8859_5格式      |
+| ISO_8859_6      | 0X09   | ISO_8859_6格式      |
+| ISO_8859_7      | 0X0A   | ISO_8859_7格式      |
+| ISO_8859_8      | 0X0B   | ISO_8859_8格式      |
+| ISO_8859_9      | 0X0C   | ISO_8859_9格式      |
+| SHIFT_JIS       | 0X11   | SHIFT_JIS格式       |
+| US_ASCII        | 0X03   | US_ASCII格式        |
+| UTF_8           | 0X6A   | UTF_8格式           |
+
+## DispositionType<sup>8+</sup>
+
+处理类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名     | 值   | 说明     |
+| ---------- | ---- | -------- |
+| FROM_DATA  | 0    | 数据来源 |
+| ATTACHMENT | 1    | 附件     |
+| INLINE     | 2    | 内联     |
+
+## ReportType<sup>8+</sup>
+
+报告类型。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名  | 值   | 说明 |
+| ------- | ---- | ---- |
+| MMS_YES | 128  | YES  |
+| MMS_NO  | 129  | NO   |
+
+## CBConfigOptions<sup>8+</sup>
+
+小区广播配置选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名         | 类型                 | 必填 | 说明         |
+| -------------- | -------------------- | ---- | ------------ |
+| slotId         | number               | 是   | 卡槽ID       |
+| enable         | boolean              | 是   | 可行         |
+| startMessageId | number               | 是   | 消息起始ID   |
+| endMessageId   | number               | 是   | 消息结束ID   |
+| ranType        | [RanType](#rantype7) | 是   | 设备网络制式 |
+
+## SimMessageStatus<sup>7+</sup>
+
+SIM卡消息状态。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名                    | 值   | 说明                        |
+| ------------------------- | ---- | --------------------------- |
+| SIM_MESSAGE_STATUS_FREE   | 0    | SIM卡上的状态可用空间       |
+| SIM_MESSAGE_STATUS_READ   | 1    | 消息已读状态                |
+| SIM_MESSAGE_STATUS_UNREAD | 3    | 消息未读状态                |
+| SIM_MESSAGE_STATUS_SENT   | 5    | 存储发送消息(仅适用于SMS) |
+| SIM_MESSAGE_STATUS_UNSENT | 7    | 储未发送消息(仅适用于SMS) |
+
+## RanType<sup>7+</sup>
+
+设备网络制式。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名    | 值   | 说明 |
+| --------- | ---- | ---- |
+| TYPE_GSM  | 1    | GSM  |
+| TYPE_CDMA | 2    | CMDA |
+
+## SmsEncodingScheme<sup>8+</sup>
+
+短信编码方案。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名               | 值   | 说明         |
+| -------------------- | ---- | ------------ |
+| SMS_ENCODING_UNKNOWN | 0    | 未知短信编码 |
+| SMS_ENCODING_7BIT    | 1    | 7位短信编码  |
+| SMS_ENCODING_8BIT    | 2    | 8位短信编码  |
+| SMS_ENCODING_16BIT   | 3    | 16位短信编码 |
+
+## SimMessageOptions<sup>7+</sup>
+
+SIM卡消息选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名 | 类型                                   | 必填 | 说明           |
+| ------ | -------------------------------------- | ---- | -------------- |
+| slotId | number                                 | 是   | 卡槽ID         |
+| smsc   | string                                 | 是   | 短消息业务中心 |
+| pdu    | string                                 | 是   | 协议数据单元   |
+| status | [SimMessageStatus](#simmessagestatus7) | 是   | 状态           |
+
+## UpdateSimMessageOptions<sup>7+</sup>
+
+更新SIM卡消息选项。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名    | 类型                                   | 必填 | 说明           |
+| --------- | -------------------------------------- | ---- | -------------- |
+| slotId    | number                                 | 是   | 卡槽ID         |
+| msgIndex  | number                                 | 是   | 消息索引       |
+| newStatus | [SimMessageStatus](#simmessagestatus7) | 是   | 新状态         |
+| pdu       | string                                 | 是   | 协议数据单元   |
+| smsc      | string                                 | 是   | 短消息业务中心 |
+
+## SimShortMessage<sup>8+</sup>
+
+SIM卡短消息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名           | 类型                                   | 必填 | 说明          |
+| ---------------- | -------------------------------------- | ---- | ------------- |
+| shortMessage     | [ShortMessage](#shortmessage)          | 是   | 短消息        |
+| simMessageStatus | [SimMessageStatus](#simmessagestatus7) | 是   | SIM卡消息状态 |
+| indexOnSim       | number                                 | 是   | SIM卡索引     |
+
+## MmsDeliveryInd<sup>8+</sup>
+
+彩信发送标识。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名    | 类型                               | 必填 | 说明   |
+| --------- | ---------------------------------- | ---- | ------ |
+| messageId | string                             | 是   | 消息ID |
+| date      | number                             | 是   | 日期   |
+| to        | Array<[MmsAddress](#mmsaddress8)\> | 是   | 发送至 |
+| status    | number                             | 是   | 状态   |
+| version   | [MmsVersionType](#mmsversiontype8) | 是   | 版本   |
+
+## MmsRespInd<sup>8+</sup>
+
+彩信回复标志。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名        | 类型                               | 必填 | 说明     |
+| ------------- | ---------------------------------- | ---- | -------- |
+| transactionId | string                             | 是   | 事件ID   |
+| status        | number                             | 是   | 状态     |
+| version       | [MmsVersionType](#mmsversiontype8) | 是   | 版本     |
+| reportAllowed | [ReportType](#reporttype8)         | 否   | 允许报告 |
+
+## SmsSegmentsInfo<sup>8+</sup>
+
+短信段信息。
+
+此接口为系统接口。
+
+**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。
+
+| 参数名               | 类型                                     | 必填 | 说明         |
+| -------------------- | ---------------------------------------- | ---- | ------------ |
+| splitCount           | number                                   | 是   | 拆分计数     |
+| encodeCount          | number                                   | 是   | 编码计数     |
+| encodeCountRemaining | number                                   | 是   | 剩余编码计数 |
+| scheme               | [SmsEncodingScheme](#smsencodingscheme8) | 是   | 短信编码方案 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md
index d5d8993ad9b98294182b3abc3a547e1a9aee8a40..11c4b540ab18a6092fbfa12a795c70589426c23c 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md
@@ -264,14 +264,13 @@ getCurrentBundleStats(callback: AsyncCallback&lt;BundleStats&gt;): void
 
 ## BundleStats<sup>9+</sup>
 
+### 属性
+
 **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics
 
 
 该接口为系统接口,三方应用不支持调用
 
-
-### 属性
-
 | 名称      | 类型   | 说明           |
 | --------- | ------ | -------------- |
 | appSize   | number | app数据大小    |
@@ -523,14 +522,13 @@ getUserStorageStats(userId: number, callback:AsyncCallback&lt;StorageStats&gt;):
 
 ## StorageStats<sup>9+</sup>
 
+### 属性
+
 **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics
 
 
 该接口为系统接口,三方应用不支持调用
 
-
-### 属性
-
 | 名称      | 类型   | 说明           |
 | --------- | ------ | -------------- |
 | total   | number | 内卡总空间大小    |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-mediaquery.md b/zh-cn/application-dev/reference/apis/js-apis-system-mediaquery.md
index 03a18e692036dcb20736e2e068877fe4da0da26a..8863410838a0358dcf16328583d12a169d055d9b 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-system-mediaquery.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-system-mediaquery.md
@@ -40,11 +40,7 @@ matchMedia(condition: string): MediaQueryList
 **示例:**
 
 ```
-export default {    
-  matchMedia() {        
-    var mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');    
-  },
-}
+var mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');    
 ```
 
 ## MediaQueryEvent
@@ -102,6 +98,11 @@ addListener(callback: (event: MediaQueryEvent) => void): void
 **示例:**
 
 ```
+function maxWidthMatch(e){
+  if(e.matches){
+    // do something
+  }
+}
 mMediaQueryList.addListener(maxWidthMatch);
 ```
 
@@ -123,6 +124,11 @@ removeListener(callback: (event: MediaQueryEvent) => void): void
 **示例:**
 
 ```
+function maxWidthMatch(e){
+  if(e.matches){
+    // do something
+  }
+}
 mMediaQueryList.removeListener(maxWidthMatch);
 ```
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-parameter.md b/zh-cn/application-dev/reference/apis/js-apis-system-parameter.md
index e64cc5b50c418e0cf4145338a446a86d4cb4c381..148570c628d44da3cfcc9c5857ebab7f70b879eb 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-system-parameter.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-system-parameter.md
@@ -7,7 +7,7 @@
 ## 导入模块
 
 ```ts
-import parameter from '@ohos.systemParameter'
+import parameter from '@ohos.systemparameter'
 ```
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-storage.md b/zh-cn/application-dev/reference/apis/js-apis-system-storage.md
index ee590ae07ae5fdfa99de93abe9bb027989d6eec0..ebe7e93cc22df2b817124ae13cfc3a8666d704fb 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-system-storage.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-system-storage.md
@@ -5,7 +5,7 @@
 > - 从API Version 6开始,该模块不再维护,可以使用模块[`@ohos.data.storage`](js-apis-data-storage.md)。在API Version 9后,推荐使用新模块[`@ohos.data.preferences`](js-apis-data-preferences.md)。
 >
 > - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
-
+> - 本模块接口仅可在FA模型下使用。
 
 ## 导入模块
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-time.md b/zh-cn/application-dev/reference/apis/js-apis-system-time.md
index 40e5f6498283fd9625f251508de80b7e2b0d8faa..47ced8209ebc0e4508c4f56535041cc9d3004baa 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-system-time.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-system-time.md
@@ -3,8 +3,8 @@
 本模块主要由时间、时区和定时三大功能组成。其中,定时服务用来管理和使用时间、时区。开发者可以通过对系统进行设置、获取等操作管理系统时间、时区,也可以通过定时功能实现定时服务如闹钟服务等。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
-
+>- 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>- 本模块接口为系统接口,三方应用不支持调用。
 
 ## 导入模块
 
@@ -22,7 +22,7 @@ setTime(time : number, callback : AsyncCallback&lt;void&gt;) : void
 
 **需要权限:** ohos.permission.SET_TIME
 
-**系统能力:** SystemCapability.Miscservices.Time
+**系统能力:** SystemCapability.MiscServices.Time
 
 **参数:**
 
@@ -201,7 +201,7 @@ getRealActiveTime(isNano?: boolean): Promise&lt;number&gt;
 
 ## systemTime.getRealTime<sup>8+</sup>
 
-getRealTime(callback: AsyncCallback&lt;number&gt;): void
+getRealTime(isNano?: boolean, callback: AsyncCallback&lt;number&gt;): void
 
 获取自系统启动以来经过的时间,包括深度睡眠时间,使用callback形式返回结果。
 
@@ -229,7 +229,7 @@ getRealTime(callback: AsyncCallback&lt;number&gt;): void
 
 ## systemTime.getRealTime<sup>8+</sup>
 
-getRealTime(): Promise&lt;number&gt;
+getRealTime(isNano?: boolean): Promise&lt;number&gt;
 
 获取自系统启动以来经过的时间,包括深度睡眠时间,使用Promise形式返回结果。
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-timer.md b/zh-cn/application-dev/reference/apis/js-apis-system-timer.md
new file mode 100644
index 0000000000000000000000000000000000000000..6f16a4b45aa4c92ac1e5a3d3b617ccfa0def1799
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-system-timer.md
@@ -0,0 +1,287 @@
+# 设置系统时间
+
+本模块主要由时间、时区和定时三大功能组成。其中,定时服务用来管理和使用时间、时区。开发者可以通过对系统进行设置、获取等操作管理系统时间、时区,也可以通过定时功能实现定时服务如闹钟服务等。
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>- 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>- 本模块接口为系统接口,三方应用不支持调用。
+
+## 导入模块
+
+
+```
+import systemTimer from '@ohos.systemTimer';
+```
+
+
+## systemTime.createTimer
+
+createTimer(options: TimerOptions, callback: AsyncCallback&lt;number&gt;): void
+
+创建定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名   | 类型              | 必填 | 说明                                                                                    |
+| -------- | ------------------| ---- | --------------------------------------------------------------------------------------- |
+| options  | TimerOptions      | 是   | const TIMER_TYPE_REALTIME: 设置为系统启动时间定时器,否则为walltime定时器; <br/>const TIMER_TYPE_WAKEUP: 设置为唤醒定时器,否则为非唤醒; <br/>const TIMER_TYPE_EXACT: 设置为精准定时器,否则为非精准定时器; <br/>const TIMER_TYPE_IDLE: number: 设置为IDLE模式定时器,否则为非IDLE模式定时器(暂不支持) |
+| repeat   | boolean           | 是   | true 为循环定时器,false为单次定时器。                                                  |
+| interval | number            | 否   | 如果是循环定时器,repeat值应大于5000毫秒,非重复定时器置为0。                           |
+| wantAgent| wantAgent         | 否   | 设置通知的wantagent,定时器到期后通知。                                                 |
+
+**返回值:**
+
+| 类型                      | 说明                                                         |
+| ------------------------- | ------------------------------------------------------------ |
+| syncCallback&lt;number&gt;| 以回调函数的形式返回定时器的ID。                             |
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  systemTime.createTimer(options, (error, data) => {
+      if (error) {
+          console.error(`failed to systemTime.createTimer ` + JSON.stringify(error));
+          return;
+      }
+      console.log(`systemTime.createTimer success data : ` + JSON.stringify(data));
+  });
+  ```
+
+
+## systemTime.createTimer
+
+createTimer(options: TimerOptions): Promise&lt;number&gt;
+
+创建定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名   | 类型              | 必填 | 说明                                                                                    |
+| -------- | ------------------| ---- | --------------------------------------------------------------------------------------- |
+| options  | TimerOptions      | 是   | const TIMER_TYPE_REALTIME: 设置为系统启动时间定时器,否则为walltime定时器; <br/>const TIMER_TYPE_WAKEUP: 设置为唤醒定时器,否则为非唤醒; <br/>const TIMER_TYPE_EXACT: 设置为精准定时器,否则为非精准定时器; <br/>const TIMER_TYPE_IDLE: number: 设置为IDLE模式定时器,否则为非IDLE模式定时器(暂不支持) |
+| repeat   | boolean           | 是   | true 为循环定时器,false为单次定时器。                                                  |
+| interval | number            | 否   | 如果是循环定时器,repeat值应大于5000毫秒,非重复定时器置为0。                           |
+| wantAgent| wantAgent         | 否   | 设置通知的wantagent,定时器到期后通知。                                                 |
+
+**返回值:**
+
+| 类型                  | 说明                                                         |
+| --------------------- | ------------------------------------------------------------ |
+| Promise&lt;number&gt; | 以Promise形式返回定时器的ID。                                |
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  systemTime.createTimer(options).then((data) => {
+      console.log(`systemTime.createTimer success data : ` + JSON.stringify(data));
+  }).catch((error) => {
+      console.error(`failed to systemTime.createTimer because ` + JSON.stringify(error));
+  });
+  ```
+
+
+## systemTime.startTimer
+
+startTimer(timer: number, triggerTime: number, callback: AsyncCallback&lt;void&gt;): void
+
+开始定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名      | 类型                        | 必填 | 说明                                                         |
+| ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| timer       | number                      | 是   | 定时器的ID。                                                 |                                                                                                             
+| triggerTime | number                      | 是   | 定时器的触发时间,单位:毫秒。                               |
+
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options) 
+  systemTime.startTimer(timerId, 10000, (error, data) => {
+      if (error) {
+          console.error(`failed to systemTime.startTimer ` + JSON.stringify(error));
+          return;
+      }
+      console.log(`systemTime.startTimer success data : ` + JSON.stringify(data));
+  });
+  ```
+  
+## systemTime.startTimer
+
+startTimer(timer: number, triggerTime: number): Promise&lt;void&gt;
+
+开始定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名      | 类型                        | 必填 | 说明                                                         |
+| ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| timer       | number                      | 是   | 定时器的ID。                                                                                                                                                             
+| triggerTime | number                      | 是   | 定时器的触发时间,单位:毫秒。                               |                                                                                                                    
+
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options)
+  systemTime.startTimer(timerId, 10000).then((data) => {
+      console.log(`systemTime.startTimer success data : ` + JSON.stringify(data));
+  }).catch((error) => {
+      console.error(`failed to systemTime.startTimer because ` + JSON.stringify(error));
+  });
+  ```
+
+
+## systemTime.stopTimer
+
+stopTimer(timer: number, callback: AsyncCallback&lt;void&gt;): void
+
+停止定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名   | 类型                        | 必填 | 说明                                                         |
+| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| timer    | number                      | 是   | 定时器的ID。                                                 |
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options)
+  let startTimerRes = systemTimer.startTimer(timerId, 100000)
+  systemTime.stopTimer(timerId, (error, data) => {
+      if (error) {
+          console.error(`failed to systemTime.stopTimer ` + JSON.stringify(error));
+          return;
+      }
+      console.log(`systemTime.stopTimer success data : ` + JSON.stringify(data));
+  });
+  ```
+
+
+## systemTime.stopTimer
+
+stopTimer(timer: number): Promise&lt;void&gt;
+
+停止定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名 | 类型    | 必填 | 说明                                                         |
+| ------ | ------- | ---- | ------------------------------------------------------------ |
+| timer  | number  | 是   | 定时器的ID。                                                 |                                                                                                                      
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options)
+  let startTimerRes = systemTimer.startTimer(timerId, 100000)
+  systemTime.stopTimer(timerId).then((data) => {
+      console.log(`systemTime.stopTimer success data : ` + JSON.stringify(data));
+  }).catch((error) => {
+      console.error(`failed to systemTime.stopTimer because ` + JSON.stringify(error));
+  });
+  ```
+
+
+## systemTime.destroyTimer
+
+destroyTimer(timer: number, callback: AsyncCallback&lt;void&gt;): void
+
+销毁定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名   | 类型                        | 必填 | 说明                                                         |
+| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| timer    | number                      | 是   | 定时器的ID。                                                 |
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options)
+  let startTimerRes = systemTimer.startTimer(timerId, 100000)
+  let stopTimerRes = systemTimer.stopTimer(timerId)
+  systemTime.destroyTimer(timerId, (error, data) => {
+      if (error) {
+          console.error(`failed to systemTime.destroyTimer ` + JSON.stringify(error));
+          return;
+      }
+      console.log(`systemTime.destroyTimer success data : ` + JSON.stringify(data));
+  });
+  ```
+
+
+## systemTime.destroyTimer
+
+destroyTimer(timer: number): Promise&lt;void&gt;
+
+销毁定时器。
+
+**系统能力:** SystemCapability.MiscServices.Time
+
+**参数:**
+
+| 参数名 | 类型    | 必填 | 说明                                                         |
+| ------ | ------- | ---- | ------------------------------------------------------------ |
+| timer  | number  | 是   | 定时器的ID。                                                 |
+
+**示例:**
+
+  ```js
+  var options = TimerOptions {   
+        type:TIMER_TYPE_REALTIME,   
+        repeat:false  
+      }
+  let timerId = systemTimer.Timer(options)
+  let startTimerRes = systemTimer.startTimer(timerId, 100000)
+  let stopTimerRes = systemTimer.stopTimer(timerId)
+  systemTime.destroyTimer(timerId).then((data) => {
+      console.log(`systemTime.destroyTimer success data : ` + JSON.stringify(data));
+  }).catch((error) => {
+      console.error(`failed to systemTime.destroyTimer because ` + JSON.stringify(error));
+  });
+  ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md
index 0f1a07079c2d53227453da012f062e686683c2ae..c6b5f4294595552bea4d4ba1a3ec08e90abe4e55 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md
@@ -328,6 +328,240 @@ promise.then((data) => {
 });
 ```
 
+## data.enableCellularData
+
+enableCellularData(callback: AsyncCallback<void\>): void
+
+启用蜂窝数据服务,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明       |
+| -------- | --------------------- | ---- | ---------- |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+data.enableCellularData((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.enableCellularData
+
+enableCellularData(): Promise<void\>
+
+启用蜂窝数据服务,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型            | 说明                    |
+| --------------- | ----------------------- |
+| Promise\<void\> | 以Promise形式返回结果。 |
+
+**示例:**
+
+```js
+let promise = data.enableCellularData();
+promise.then((data) => {
+    console.log(`enableCellularData success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+    console.error(`enableCellularData fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.disableCellularData
+
+disableCellularData(callback: AsyncCallback<void\>): void
+
+禁用蜂窝数据服务,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明       |
+| -------- | --------------------- | ---- | ---------- |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。 |
+
+**示例:**
+
+```js
+data.disableCellularData((err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.disableCellularData
+
+disableCellularData(): Promise<void\>
+
+禁用蜂窝数据服务,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型            | 说明                        |
+| --------------- | --------------------------- |
+| Promise\<void\> | 以Promise形式返回禁用结果。 |
+
+**示例:**
+
+```js
+let promise = data.disableCellularData();
+promise.then((data) => {
+    console.log(`disableCellularData success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+    console.error(`disableCellularData fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.enableCellularDataRoaming
+
+enableCellularDataRoaming(slotId: number, callback: AsyncCallback<void\>): void
+
+启用蜂窝数据漫游,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明                                     |
+| -------- | --------------------- | ---- | ---------------------------------------- |
+| slotId   | number                | 是   | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。                               |
+
+**示例:**
+
+```js
+data.enableCellularDataRoaming(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.enableCellularDataRoaming
+
+enableCellularDataRoaming(slotId: number): Promise<void\>
+
+启用蜂窝数据漫游,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                     |
+| ------ | ------ | ---- | ---------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
+
+**返回值:**
+
+| 类型            | 说明                      |
+| --------------- | ------------------------- |
+| Promise\<void\> | 以Promise形式返回启用结果 |
+
+**示例:**
+
+```js
+let promise = data.enableCellularDataRoaming(0);
+promise.then((data) => {
+    console.log(`enableCellularDataRoaming success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+    console.error(`enableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.disableCellularDataRoaming
+
+disableCellularDataRoaming(slotId: number, callback: AsyncCallback<void\>): void
+
+禁用蜂窝数据漫游,使用callback方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名   | 类型                  | 必填 | 说明                                     |
+| -------- | --------------------- | ---- | ---------------------------------------- |
+| slotId   | number                | 是   | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
+| callback | AsyncCallback\<void\> | 是   | 回调函数。                               |
+
+**示例:**
+
+```js
+data.disableCellularDataRoaming(0, (err, data) => {
+    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.disableCellularDataRoaming
+
+disableCellularDataRoaming(slotId: number): Promise<void\>
+
+禁用蜂窝数据漫游,使用Promise方式作为异步方法。
+
+此接口为系统接口。
+
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                                     |
+| ------ | ------ | ---- | ---------------------------------------- |
+| slotId | number | 是   | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
+
+**返回值:**
+
+| 类型            | 说明                      |
+| --------------- | ------------------------- |
+| Promise\<void\> | 以Promise形式返回禁用结果 |
+
+**示例:**
+
+```js
+let promise = data.disableCellularDataRoaming(0);
+promise.then((data) => {
+    console.log(`disableCellularDataRoaming success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+    console.error(`disableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
 ## DataFlowType
 
 描述蜂窝数据流类型。 
@@ -354,4 +588,4 @@ promise.then((data) => {
 | DATA_STATE_DISCONNECTED | 0    | 表示蜂窝数据链路断开。     |
 | DATA_STATE_CONNECTING   | 1    | 表示正在连接蜂窝数据链路。 |
 | DATA_STATE_CONNECTED    | 2    | 表示蜂窝数据链路已连接。   |
-| DATA_STATE_SUSPENDED    | 3    | 表示蜂窝数据链路被挂起。   |
\ No newline at end of file
+| DATA_STATE_SUSPENDED    | 3    | 表示蜂窝数据链路被挂起。   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-touchevent.md b/zh-cn/application-dev/reference/apis/js-apis-touchevent.md
index 1cbc27d7ce248ea84d4c0e20acdeaec2fe176e04..98a499564467113a1fda62564c9f116658db6202 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-touchevent.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-touchevent.md
@@ -2,7 +2,8 @@
 
 设备上报的触屏事件。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+>  **说明:**
+>
 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -13,72 +14,72 @@ import {Action,ToolType,SourceType,Touch,TouchEvent} from '@ohos.multimodalInput
 
 ## Action
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| CANCEL | number | 是 | 否 | 触摸取消 |
-| DOWN | number | 是 | 否 | 触摸按下 |
-| MOVE | number | 是 | 否 | 触摸移动 |
-| UP | number | 是 | 否 | 触摸抬起 |
+| 名称     | 参数类型   | 可读   | 可写   | 描述   |
+| ------ | ------ | ---- | ---- | ---- |
+| CANCEL | number | 是    | 否    | 触摸取消 |
+| DOWN   | number | 是    | 否    | 触摸按下 |
+| MOVE   | number | 是    | 否    | 触摸移动 |
+| UP     | number | 是    | 否    | 触摸抬起 |
 
 ## ToolType
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| FINGER | number | 是 | 否 | 手指 |
-| PEN | number | 是 | 否 | 笔 |
-| RUBBER | number | 是 | 否 | 橡皮擦 |
-| BRUSH | number | 是 | 否 | 笔刷 |
-| PENCIL | number | 是 | 否 | 铅笔 |
-| AIRBRUSH | number | 是 | 否 | 气笔 |
-| MOUSE | number | 是 | 否 | 鼠标 |
-| LENS | number | 是 | 否 | 透镜 |
+| 名称       | 参数类型   | 可读   | 可写   | 描述   |
+| -------- | ------ | ---- | ---- | ---- |
+| FINGER   | number | 是    | 否    | 手指   |
+| PEN      | number | 是    | 否    | 笔    |
+| RUBBER   | number | 是    | 否    | 橡皮擦  |
+| BRUSH    | number | 是    | 否    | 笔刷   |
+| PENCIL   | number | 是    | 否    | 铅笔   |
+| AIRBRUSH | number | 是    | 否    | 气笔   |
+| MOUSE    | number | 是    | 否    | 鼠标   |
+| LENS     | number | 是    | 否    | 透镜   |
 
 ## SourceType 
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| TOUCH_SCREEN | number | 是 | 否 | 触摸屏 |
-| PEN | number | 是 | 否 | 手写笔 |
-| TOUCH_PAD | number | 是 | 否 | 触摸板 |
+| 名称           | 参数类型   | 可读   | 可写   | 描述   |
+| ------------ | ------ | ---- | ---- | ---- |
+| TOUCH_SCREEN | number | 是    | 否    | 触摸屏  |
+| PEN          | number | 是    | 否    | 手写笔  |
+| TOUCH_PAD    | number | 是    | 否    | 触摸板  |
 
 ## Touch
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
-
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| id | number | 是 | 否 | 指针标识 |
-| pressedTime  | number | 是 | 否 | 按下时的时间戳 |
-| screenX | number | 是 | 否 | 触摸位置所属的屏幕x坐标 |
-| screenY | number | 是 | 否 | 触摸位置所属的屏幕y坐标 |
-| windowX | number | 是 | 否 | 触摸位置在窗口中的x坐标 |
-| windowY | number | 是 | 否 | 触摸位置在窗口中的y坐标 |
-| pressure | number | 是 | 否 | 压力值,取值范围是[0.0, 1.0], 0.0表示不支持 |
-| width | number | 是 | 否 | 按下接触区域的宽度 |
-| height | number | 是 | 否 | 按下接触区域的高度 |
-| tiltX | number | 是 | 否 | 相对YZ平面的角度,取值的范围[-90, 90],其中正值是向右倾斜。 |
-| tiltY | number | 是 | 否 | 相对XZ平面的角度,值的范围[-90, 90],其中正值是向下倾斜。 |
-| toolX | number | 是 | 否 | 工具区域的中心点X |
-| toolY | number | 是 | 否 | 工具区域的中心点Y |
-| toolWidth | number | 是 | 否 | 工具区域宽度 |
-| toolHeight | number | 是 | 否 | 工具区域高度 |
-| rawX | number | 是 | 否 | 输入设备上的x坐标 |
-| rawY | number | 是 | 否 | 输入设备上的y坐标 |
-| toolType | number | 是 | 否 | 工具类型 |
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
+
+| 名称          | 参数类型   | 可读   | 可写   | 描述                                  |
+| ----------- | ------ | ---- | ---- | ----------------------------------- |
+| id          | number | 是    | 否    | 指针标识                                |
+| pressedTime | number | 是    | 否    | 按下时的时间戳                             |
+| screenX     | number | 是    | 否    | 触摸位置所属的屏幕x坐标                        |
+| screenY     | number | 是    | 否    | 触摸位置所属的屏幕y坐标                        |
+| windowX     | number | 是    | 否    | 触摸位置在窗口中的x坐标                        |
+| windowY     | number | 是    | 否    | 触摸位置在窗口中的y坐标                        |
+| pressure    | number | 是    | 否    | 压力值,取值范围是[0.0, 1.0], 0.0表示不支持       |
+| width       | number | 是    | 否    | 按下接触区域的宽度                           |
+| height      | number | 是    | 否    | 按下接触区域的高度                           |
+| tiltX       | number | 是    | 否    | 相对YZ平面的角度,取值的范围[-90, 90],其中正值是向右倾斜。 |
+| tiltY       | number | 是    | 否    | 相对XZ平面的角度,值的范围[-90, 90],其中正值是向下倾斜。  |
+| toolX       | number | 是    | 否    | 工具区域的中心点X                           |
+| toolY       | number | 是    | 否    | 工具区域的中心点Y                           |
+| toolWidth   | number | 是    | 否    | 工具区域宽度                              |
+| toolHeight  | number | 是    | 否    | 工具区域高度                              |
+| rawX        | number | 是    | 否    | 输入设备上的x坐标                           |
+| rawY        | number | 是    | 否    | 输入设备上的y坐标                           |
+| toolType    | number | 是    | 否    | 工具类型                                |
 
 ## TouchEvent
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.Core
+**系统能力**:SystemCapability.MultimodalInput.Input.Core
 
-| 名称 | 参数类型 | 可读 | 可写 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| action | Action | 是 | 否 | 触摸动作 |
-| touch | Touch | 是 | 否 | 当前触摸点 |
-| touches | Touch[] | 是 | 否 | 所有触摸点 |
-| sourceType | SourceType | 是 | 否 | 触摸来源的设备类型 |
+| 名称         | 参数类型       | 可读   | 可写   | 描述        |
+| ---------- | ---------- | ---- | ---- | --------- |
+| action     | Action     | 是    | 否    | 触摸动作      |
+| touch      | Touch      | 是    | 否    | 当前触摸点     |
+| touches    | Touch[]    | 是    | 否    | 所有触摸点     |
+| sourceType | SourceType | 是    | 否    | 触摸来源的设备类型 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-uiappearance.md b/zh-cn/application-dev/reference/apis/js-apis-uiappearance.md
index f4e5de83987e675bc8c5d262ee40326aea132b29..28402007b002e0f214060f8dc9a629d2d042a311 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-uiappearance.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-uiappearance.md
@@ -3,7 +3,9 @@
 用户界面外观提供管理系统外观的一些基础能力,目前仅包括深浅色模式配置。
 
 > **说明:**
+>
 > 从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>
 > 本模块接口为系统接口。
 
 
@@ -19,6 +21,8 @@ import uiAppearance from '@ohos.uiAppearance'
 深色模式枚举。
 
 
+**系统能力:** SystemCapability.ArkUI.UiAppearance
+
 | 名称 | 值 | 说明 |
 | -- | -- | -- |
 | ALWAYS_DARK | 0 | 系统始终为深色。  |
@@ -31,9 +35,9 @@ setDarkMode(mode: DarkMode, callback: AsyncCallback\<void>): void
 
 设置系统深色模式。
 
-**需要权限:** ohos.permission.UPDATE_CONFIGRATION
+**需要权限:** ohos.permission.UPDATE_CONFIGURATION
 
-**系统能力:** SystemCapability.ArkUI.ArkUI.Full
+**系统能力:** SystemCapability.ArkUI.UiAppearance
 
 **参数:** 
 | 参数名 | 类型 | 必填 | 说明 |
@@ -55,15 +59,21 @@ setDarkMode(mode: DarkMode): Promise\<void>;
 
 设置系统深色模式。
 
-**需要权限:** ohos.permission.UPDATE_CONFIGRATION
+**需要权限:** ohos.permission.UPDATE_CONFIGURATION
 
-**系统能力:** SystemCapability.ArkUI.ArkUI.Full
+**系统能力:** SystemCapability.ArkUI.UiAppearance
 
 **参数:** 
 | 参数名 | 类型 | 必填 | 说明 |
 | -- | -- | -- | -- |
 | mode | [DarkMode](#darkmode) | 是 | 指定系统深色模式配置 |
 
+**返回值:**
+
+| 类型   | 说明                           |
+| ------ | ------------------------------ |
+| Promise\<void> | Promise对象。无返回结果的Promise对象。|
+
 **示例:** 
   ```ts
 uiAppearance.setDarkMode(uiAppearance.DarkMode.ALWAYS_DARK).then(() => {
@@ -80,9 +90,9 @@ getDarkMode(): DarkMode;
 
 获取当前的深色模式配置。
 
-**需要权限:** ohos.permission.UPDATE_CONFIGRATION
+**需要权限:** ohos.permission.UPDATE_CONFIGURATION
 
-**系统能力:** SystemCapability.ArkUI.ArkUI.Full
+**系统能力:** SystemCapability.ArkUI.UiAppearance
 
 **返回值:** 
 | 类型 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-uitest.md b/zh-cn/application-dev/reference/apis/js-apis-uitest.md
index efe59299e6e362d09626f74dfb325f9e7283ab22..62303e6e2b0b1e1fc9df95835de8e19faeab3907 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-uitest.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-uitest.md
@@ -23,7 +23,7 @@ import {UiDriver, BY, MatchPattern, ResizeDirection, WindowMode} from '@ohos.uit
 ## By
 
 UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br>
-By提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[By.isBefore](#byisbefore)和[By.isAfter](#byisafter)等API限定邻近控件特征进行辅助定位。<br>By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。
+By提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[By.isBefore](#isbefore)和[By.isAfter](#isafter)等API限定邻近控件特征进行辅助定位。<br>By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。
 
 ```js
 BY.text('123').type('button')
@@ -1285,7 +1285,7 @@ async function demo() {
 
 ### triggerCombineKeys<sup>9+</sup>
 
-triggerCombineKeys(key0: number, key1: number, key2: number): Promise\<void>
+triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\<void>
 
 UiDriver对象通过给定的key值,找到对应组合键并点击。例如,Key值为(2072, 2019)时,UiDriver对象找到组合键并点击ctrl+c。
 
@@ -1566,7 +1566,7 @@ getWindowMode(): Promise\<WindowMode>
 
 | 类型                                             | 说明                                  |
 | ------------------------------------------------ | ------------------------------------- |
-| Promise\<[WindowMode](#WindowMode<sup>9+</sup>)> | 以Promise形式返回窗口的窗口模式信息。 |
+| Promise\<[WindowMode](#windowmode9)> | 以Promise形式返回窗口的窗口模式信息。 |
 
 **示例:**
 
@@ -1695,7 +1695,7 @@ resize(wide: number, height: number, direction: ResizeDirection): Promise\<bool>
 | --------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
 | wide      | number                                           | 是   | 以number的形式传入调整后窗口的宽度。                         |
 | height    | number                                           | 是   | 以number的形式传入调整后窗口的高度。                         |
-| direction | [ResizeDirection](#resizedirection<sup>9+</sup>) | 是   | 以[ResizeDirection](#ResizeDirection<sup>9+</sup>)的形式传入窗口调整的方向。 |
+| direction | [ResizeDirection](#resizedirection9) | 是   | 以[ResizeDirection](#resizedirection9)的形式传入窗口调整的方向。 |
 
 **返回值:**
 
@@ -1865,6 +1865,8 @@ async function demo() {
 
 ## WindowMode<sup>9+</sup>
 
+**系统能力**:SystemCapability.Test.UiTest
+
 窗口的窗口模式。
 
 | 名称       | 说明       |
@@ -1872,4 +1874,4 @@ async function demo() {
 | FULLSCREEN | 全屏模式。 |
 | PRIMARY    | 主窗口。   |
 | SECONDARY  | 第二窗口。 |
-| FLOAT      | 浮动窗口。 |
+| FLOATING   | 浮动窗口。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-update.md b/zh-cn/application-dev/reference/apis/js-apis-update.md
index 4e7e6257e6cb4fe209cca74d41a4cfad22304a85..558ebe9b2201eabd9ee25822947e05f231fb079f 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-update.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-update.md
@@ -29,9 +29,9 @@ getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater
 
 **参数:**
 
-| 参数名         | 类型                          | 必填   | 说明   |
-| ----------- | --------------------------- | ---- | ---- |
-| upgradeInfo | [UpgradeInfo](#upgradeinfo)                 | 是    | 升级信息对象 |
+| 参数名         | 类型                          | 必填   | 说明     |
+| ----------- | --------------------------- | ---- | ------ |
+| upgradeInfo | [UpgradeInfo](#upgradeinfo) | 是    | 升级信息对象 |
 
 **返回值:**
 
@@ -41,7 +41,7 @@ getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater
 
 **示例:**
 
-```
+```ts
 try {
   var upgradeInfo = {
     upgradeApp: "com.ohos.ota.updateclient",
@@ -67,13 +67,13 @@ getRestorer(): Restorer
 
 **返回值:**
 
-| 类型                  | 说明   |
-| ------------------- | ---- |
+| 类型                    | 说明     |
+| --------------------- | ------ |
 | [Restorer](#restorer) | 恢复出厂对象 |
 
 **示例:**
 
-```
+```ts
 try {
   let restorer = update.getRestorer();
 } catch(error) {
@@ -91,13 +91,13 @@ getLocalUpdater(): LocalUpdater
 
 **返回值:**
 
-| 类型                  | 说明   |
-| ------------------- | ---- |
+| 类型                            | 说明     |
+| ----------------------------- | ------ |
 | [LocalUpdater](#localupdater) | 本地升级对象 |
 
 **示例:**
 
-```
+```ts
 try {
   let localUpdater = update.getLocalUpdater();
 } catch(error) {
@@ -119,13 +119,13 @@ checkNewVersion(callback: AsyncCallback\<CheckResult>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                                       | 必填   | 说明             |
+| -------- | ---------------------------------------- | ---- | -------------- |
 | callback | AsyncCallback\<[CheckResult](#checkresult)> | 是    | 回调函数,返回搜包结果对象。 |
 
 **示例:**
 
-```
+```ts
 updater.checkNewVersion((err, result) => {
   console.log(`checkNewVersion isExistNewVersion  ${result?.isExistNewVersion}`);
 });
@@ -143,13 +143,13 @@ checkNewVersion(): Promise\<CheckResult>
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型                                    | 说明                  |
+| ------------------------------------- | ------------------- |
 | Promise\<[CheckResult](#checkresult)> | Promise对象,返回搜包结果对象。 |
 
 **示例:**
 
-```
+```ts
 updater.checkNewVersion().then(result => {
   console.log(`checkNewVersion isExistNewVersion: ${result.isExistNewVersion}`);
   // 版本摘要信息
@@ -171,13 +171,13 @@ getNewVersionInfo(callback: AsyncCallback\<NewVersionInfo>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                                       | 必填   | 说明              |
+| -------- | ---------------------------------------- | ---- | --------------- |
 | callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | 是    | 回调函数,返回新版本信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getNewVersionInfo((err, info) => {
   console.log(`info displayVersion = ${info?.versionComponents[0].displayVersion}`);
   console.log(`info innerVersion = ${info?.versionComponents[0].innerVersion}`);
@@ -196,13 +196,13 @@ getNewVersionInfo(): Promise\<NewVersionInfo>
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型                                       | 说明                   |
+| ---------------------------------------- | -------------------- |
 | Promise\<[NewVersionInfo](#newversioninfo)> | Promise对象,返回新版本信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getNewVersionInfo().then(info => {
   console.log(`info displayVersion = ${info.versionComponents[0].displayVersion}`);
   console.log(`info innerVersion = ${info.versionComponents[0].innerVersion}`);
@@ -211,6 +211,88 @@ updater.getNewVersionInfo().then(info => {
 });
 ```
 
+###  getNewVersionDescription
+
+getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOptions: DescriptionOptions, callback: AsyncCallback\<Array\<ComponentDescription>>): void
+
+获取新版本描述文件。使用callback异步回调。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
+**参数:**
+
+| 参数名                | 类型                                       | 必填   | 说明             |
+| ------------------ | ---------------------------------------- | ---- | -------------- |
+| versionDigestInfo  | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息         |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是    | 描述文件选项         |
+| callback           | AsyncCallback\<Array\<[ComponentDescription](#componentdescription)>>) | 是    | 回调函数,返回新版本描述文件 |
+
+**示例:**
+
+```ts
+// 版本摘要信息
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // 检测结果中的版本摘要信息
+}
+
+// 描述文件选项
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // 标准格式
+  language: "zh-cn" // 中文
+}
+
+updater.getNewVersionDescription(versionDigestInfo, descriptionOptions, (err, info) => {
+  console.log(`getNewVersionDescription info ${JSON.stringify(info)}`);
+  console.log(`getNewVersionDescription err ${JSON.stringify(err)}`);
+});
+```
+
+### getNewVersionDescription
+
+getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOptions: DescriptionOptions): Promise\<Array\<ComponentDescription>>;
+
+获取新版本描述文件。使用Promise异步回调。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
+**参数:**
+
+| 参数名                | 类型                                       | 必填   | 说明     |
+| ------------------ | ---------------------------------------- | ---- | ------ |
+| versionDigestInfo  | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息 |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是    | 描述文件选项 |
+
+**返回值:**
+
+| 类型                                       | 说明                  |
+| ---------------------------------------- | ------------------- |
+| Promise\<Array\<[ComponentDescription](#componentdescription)>> | Promise对象,返回新版本描述文件 |
+
+**示例:**
+
+```ts
+// 版本摘要信息
+var versionDigestInfo = {
+  versionDigest: "versionDigest" // 检测结果中的版本摘要信息
+}
+
+// 描述文件选项
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // 标准格式
+  language: "zh-cn" // 中文
+}
+
+updater.getNewVersionDescription(versionDigestInfo, descriptionOptions).then(info => {
+  console.log(`getNewVersionDescription promise info ${JSON.stringify(info)}`);
+}).catch(err => {
+  console.log(`getNewVersionDescription promise error ${JSON.stringify(err)}`);
+});
+```
+
 ###  getCurrentVersionInfo
 
 getCurrentVersionInfo(callback: AsyncCallback\<CurrentVersionInfo>): void
@@ -223,13 +305,13 @@ getCurrentVersionInfo(callback: AsyncCallback\<CurrentVersionInfo>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                                       | 必填   | 说明               |
+| -------- | ---------------------------------------- | ---- | ---------------- |
 | callback | AsyncCallback\<[CurrentVersionInfo](#currentversioninfo)> | 是    | 回调函数,返回当前版本信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getCurrentVersionInfo((err, info) => {
   console.log(`info osVersion = ${info?.osVersion}`);
   console.log(`info deviceName = ${info?.deviceName}`);
@@ -249,13 +331,13 @@ getCurrentVersionInfo(): Promise\<CurrentVersionInfo>
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型                                       | 说明                  |
+| ---------------------------------------- | ------------------- |
 | Promise\<[CurrentVersionInfo](#currentversioninfo)> | Promise对象,返回当前版本对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getCurrentVersionInfo().then(info => {
   console.log(`info osVersion = ${info.osVersion}`);
   console.log(`info deviceName = ${info.deviceName}`);
@@ -265,6 +347,76 @@ updater.getCurrentVersionInfo().then(info => {
 });
 ```
 
+###  getCurrentVersionDescription
+
+getCurrentVersionDescription(descriptionOptions: DescriptionOptions, callback: AsyncCallback\<Array\<ComponentDescription>>): void
+
+获取当前版本描述文件。使用callback异步回调。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
+**参数:**
+
+| 参数名                | 类型                                       | 必填   | 说明              |
+| ------------------ | ---------------------------------------- | ---- | --------------- |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是    | 描述文件选项          |
+| callback           | AsyncCallback\<Array\<[ComponentDescription](#componentdescription)>>) | 是    | 回调函数,返回当前版本描述文件 |
+
+**示例:**
+
+```ts
+// 描述文件选项
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // 标准格式
+  language: "zh-cn" // 中文
+}
+
+updater.getCurrentVersionDescription(descriptionOptions, (err, info) => {
+  console.log(`getCurrentVersionDescription info ${JSON.stringify(info)}`);
+  console.log(`getCurrentVersionDescription err ${JSON.stringify(err)}`);
+});
+```
+
+### getCurrentVersionDescription
+
+getCurrentVersionDescription(descriptionOptions: DescriptionOptions): Promise\<Array\<ComponentDescription>>
+
+获取当前版本描述文件。使用Promise异步回调。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
+**参数:**
+
+| 参数名                | 类型                                       | 必填   | 说明     |
+| ------------------ | ---------------------------------------- | ---- | ------ |
+| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是    | 描述文件选项 |
+
+**返回值:**
+
+| 类型                                       | 说明                   |
+| ---------------------------------------- | -------------------- |
+| Promise\<Array\<[ComponentDescription](#componentdescription)>> | Promise对象,返回当前版本描述文件 |
+
+**示例:**
+
+```ts
+// 描述文件选项
+var descriptionOptions = {
+  format: DescriptionFormat.STANDARD, // 标准格式
+  language: "zh-cn" // 中文
+}
+
+updater.getCurrentVersionDescription(descriptionOptions).then(info => {
+  console.log(`getCurrentVersionDescription promise info ${JSON.stringify(info)}`);
+}).catch(err => {
+  console.log(`getCurrentVersionDescription promise error ${JSON.stringify(err)}`);
+});
+```
+
 ###  getTaskInfo
 
 getTaskInfo(callback: AsyncCallback\<TaskInfo>): void
@@ -277,13 +429,13 @@ getTaskInfo(callback: AsyncCallback\<TaskInfo>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                                    | 必填   | 说明               |
+| -------- | ------------------------------------- | ---- | ---------------- |
 | callback | AsyncCallback\<[TaskInfo](#taskinfo)> | 是    | 回调函数,返回升级任务信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getTaskInfo((err, info) => {
   console.log(`getTaskInfo isexistTask= ${info?.existTask}`);
 });
@@ -297,15 +449,17 @@ getTaskInfo(): Promise\<TaskInfo>
 
 **系统能力**:SystemCapability.Update.UpdateService
 
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型                              | 说明                  |
+| ------------------------------- | ------------------- |
 | Promise\<[TaskInfo](#taskinfo)> | Promise对象,返回任务信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getTaskInfo().then(info => {
   console.log(`getTaskInfo isexistTask= ${info.existTask}`);
 }).catch(err => {
@@ -325,15 +479,15 @@ download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions,
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| downloadOptions | [DownloadOptions](#downloadoptions) | 是    | 下载选项 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当下载成功时,err为undefined,否则为错误对象。 |
+| 参数名               | 类型                                      | 必填   | 说明                                 |
+| ----------------- | --------------------------------------- | ---- | ---------------------------------- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息                             |
+| downloadOptions   | [DownloadOptions](#downloadoptions)     | 是    | 下载选项                               |
+| callback          | AsyncCallback\<void>                    | 是    | 回调函数。当下载成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -361,20 +515,20 @@ download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions)
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名               | 类型                                      | 必填   | 说明     |
+| ----------------- | --------------------------------------- | ---- | ------ |
 | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| downloadOptions | [DownloadOptions](#downloadoptions) | 是    | 下载选项 |
+| downloadOptions   | [DownloadOptions](#downloadoptions)     | 是    | 下载选项   |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -404,15 +558,15 @@ resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: Resu
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是    | 恢复下载选项 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当恢复下载成功时,err为undefined,否则为错误对象。 |
+| 参数名                   | 类型                                       | 必填   | 说明                                   |
+| --------------------- | ---------------------------------------- | ---- | ------------------------------------ |
+| versionDigestInfo     | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息                               |
+| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是    | 恢复下载选项                               |
+| callback              | AsyncCallback\<void>                     | 是    | 回调函数。当恢复下载成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -439,20 +593,20 @@ resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: Resu
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
+| 参数名                   | 类型                                       | 必填   | 说明     |
+| --------------------- | ---------------------------------------- | ---- | ------ |
+| versionDigestInfo     | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息 |
 | resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是    | 恢复下载选项 |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -481,15 +635,15 @@ pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseD
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是    | 暂停下载选项 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当暂停下载成功时,err为undefined,否则为错误对象。 |
+| 参数名                  | 类型                                       | 必填   | 说明                                   |
+| -------------------- | ---------------------------------------- | ---- | ------------------------------------ |
+| versionDigestInfo    | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息                               |
+| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是    | 暂停下载选项                               |
+| callback             | AsyncCallback\<void>                     | 是    | 回调函数。当暂停下载成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -516,20 +670,20 @@ pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseD
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
+| 参数名                  | 类型                                       | 必填   | 说明     |
+| -------------------- | ---------------------------------------- | ---- | ------ |
+| versionDigestInfo    | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要信息 |
 | pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是    | 暂停下载选项 |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -558,15 +712,15 @@ upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions, ca
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是    | 更新选项 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当升级执行成功时,err为undefined,否则为错误对象。 |
+| 参数名               | 类型                                      | 必填   | 说明                                   |
+| ----------------- | --------------------------------------- | ---- | ------------------------------------ |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息                               |
+| upgradeOptions    | [UpgradeOptions](#upgradeoptions)       | 是    | 更新选项                                 |
+| callback          | AsyncCallback\<void>                    | 是    | 回调函数。当升级执行成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -593,20 +747,20 @@ upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions): P
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名               | 类型                                      | 必填   | 说明     |
+| ----------------- | --------------------------------------- | ---- | ------ |
 | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是    | 更新选项 |
+| upgradeOptions    | [UpgradeOptions](#upgradeoptions)       | 是    | 更新选项   |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -635,15 +789,15 @@ clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, cal
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| clearOptions | [ClearOptions](#clearoptions) | 是    | 清除选项 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当清除异常成功时,err为undefined,否则为错误对象。 |
+| 参数名               | 类型                                      | 必填   | 说明                                   |
+| ----------------- | --------------------------------------- | ---- | ------------------------------------ |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息                               |
+| clearOptions      | [ClearOptions](#clearoptions)           | 是    | 清除选项                                 |
+| callback          | AsyncCallback\<void>                    | 是    | 回调函数。当清除异常成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -670,20 +824,20 @@ clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Pr
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名               | 类型                                      | 必填   | 说明     |
+| ----------------- | --------------------------------------- | ---- | ------ |
 | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是    | 版本摘要信息 |
-| clearOptions | [ClearOptions](#clearoptions) | 是    | 更新选项 |
+| clearOptions      | [ClearOptions](#clearoptions)           | 是    | 更新选项   |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 // 版本摘要信息
 var versionDigestInfo = {
   versionDigest: "versionDigest" // 检测结果中的版本摘要信息
@@ -712,13 +866,13 @@ getUpgradePolicy(callback: AsyncCallback\<UpgradePolicy>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明         |
-| -------- | ---------------------------------------- | ---- | ---------- |
+| 参数名      | 类型                                       | 必填   | 说明              |
+| -------- | ---------------------------------------- | ---- | --------------- |
 | callback | AsyncCallback\<[UpgradePolicy](#upgradepolicy)> | 是    | 回调函数,返回升级策略信息对象 |
 
 **示例:**
 
-```
+```ts
 updater.getUpgradePolicy((err, policy) => {
   console.log(`policy downloadStrategy = ${policy?.downloadStrategy}`);
   console.log(`policy autoUpgradeStrategy = ${policy?.autoUpgradeStrategy}`);
@@ -737,13 +891,13 @@ getUpgradePolicy(): Promise\<UpgradePolicy>
 
 **返回值:**
 
-| 类型                                      | 说明                |
-| --------------------------------------- | ----------------- |
+| 类型                                       | 说明                    |
+| ---------------------------------------- | --------------------- |
 | Promise\<[UpgradePolicy](#upgradepolicy)> | Promise对象,返回升级策略信息对象。 |
 
 **示例:**
 
-```
+```ts
 updater.getUpgradePolicy().then(policy => {
   console.log(`policy downloadStrategy = ${policy.downloadStrategy}`);
   console.log(`policy autoUpgradeStrategy = ${policy.autoUpgradeStrategy}`);
@@ -754,7 +908,7 @@ updater.getUpgradePolicy().then(policy => {
 
 ### setUpgradePolicy
 
-setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\<number>): void
+setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\<void>): void
 
 设置升级策略。使用callback异步回调。
 
@@ -764,27 +918,27 @@ setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\<number>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明         |
-| -------- | ---------------------------------------- | ---- | ---------- |
-| policy | [UpgradePolicy](#upgradepolicy) | 是    | 升级策略 |
-| callback | AsyncCallback\<number> | 是    | 回调函数,返回设置结果对象 |
+| 参数名      | 类型                              | 必填   | 说明            |
+| -------- | ------------------------------- | ---- | ------------- |
+| policy   | [UpgradePolicy](#upgradepolicy) | 是    | 升级策略          |
+| callback | AsyncCallback\<void>            | 是    | 回调函数,返回设置结果对象 |
 
 **示例:**
 
-```
+```ts
 let policy = {
   downloadStrategy: false,
   autoUpgradeStrategy: false,
   autoUpgradePeriods: [ { start: 120, end: 240 } ] // 自动升级时间段,用分钟表示
 }
-updater.setUpgradePolicy(policy, (err, value) => {
-  console.log(`setUpgradePolicy result: ${value}`);
+updater.setUpgradePolicy(policy, (err) => {
+  console.log(`setUpgradePolicy result: ${err}`);
 });
 ```
 
 ### setUpgradePolicy
 
-setUpgradePolicy(policy: UpgradePolicy): Promise\<number>
+setUpgradePolicy(policy: UpgradePolicy): Promise\<void>
 
 设置升级策略。使用Promise异步回调。
 
@@ -794,26 +948,26 @@ setUpgradePolicy(policy: UpgradePolicy): Promise\<number>
 
 **参数:**
 
-| 参数名    | 类型                            | 必填   | 说明     |
-| ------ | ----------------------------- | ---- | ------ |
+| 参数名    | 类型                              | 必填   | 说明   |
+| ------ | ------------------------------- | ---- | ---- |
 | policy | [UpgradePolicy](#upgradepolicy) | 是    | 升级策略 |
 
 **返回值:**
 
-| 类型               | 说明              |
-| ---------------- | --------------- |
-| Promise\<number> | Promise对象,返回设置结果对象。 |
+| 类型             | 说明                  |
+| -------------- | ------------------- |
+| Promise\<void> | Promise对象,返回设置结果对象。 |
 
 **示例:**
 
-```
+```ts
 let policy = {
   downloadStrategy: false,
   autoUpgradeStrategy: false,
   autoUpgradePeriods: [ { start: 120, end: 240 } ] // 自动升级时间段,用分钟表示
 }
-updater.setUpgradePolicy(policy).then(result => {
-  console.log(`setUpgradePolicy ${result}`);
+updater.setUpgradePolicy(policy).then(() => {
+  console.log(`setUpgradePolicy success`);
 }).catch(err => {
   console.log(`setUpgradePolicy promise error ${JSON.stringify(err)}`);
 });
@@ -831,13 +985,13 @@ terminateUpgrade(callback: AsyncCallback\<void>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                   | 必填   | 说明                                     |
+| -------- | -------------------- | ---- | -------------------------------------- |
 | callback | AsyncCallback\<void> | 是    | 回调函数。当清除升级缓存成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 updater.terminateUpgrade((err) => {
   console.log(`terminateUpgrade error ${JSON.stringify(err)}`);
 });
@@ -851,15 +1005,17 @@ terminateUpgrade(): Promise\<void>
 
 **系统能力**:SystemCapability.Update.UpdateService
 
+**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限
+
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 updater.terminateUpgrade().then(() => {
   console.log(`terminateUpgrade success`);
 }).catch(err => {
@@ -877,24 +1033,22 @@ on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): voi
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是    | 事件信息 |
-| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
+| 参数名               | 类型                                       | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo)  | 是    | 事件信息 |
+| taskCallback      | [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
 
 **示例:**
 
-```
+```ts
 var eventClassifyInfo = {
   eventClassify: update.EventClassify.TASK, // 订阅升级更新事件
   extraInfo: ""
 }
 
-function onTaskUpdate(eventInfo): void {
-  console.log(`on eventInfo id `, eventInfo.eventId);
-}
-
-updater.on(eventClassifyInfo, onTaskUpdate);
+updater.on(eventClassifyInfo, (eventInfo) => {
+  console.log("updater on " + JSON.stringify(eventInfo));
+});
 ```
 
 ### off
@@ -906,24 +1060,22 @@ off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): v
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是    | 事件信息 |
-| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | 否    | 事件回调 |
+| 参数名               | 类型                                       | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo)  | 是    | 事件信息 |
+| taskCallback      | [UpgradeTaskCallback](#upgradetaskcallback) | 否    | 事件回调 |
 
 **示例:**
 
-```
+```ts
 var eventClassifyInfo = {
   eventClassify: update.EventClassify.TASK, // 订阅升级更新事件
   extraInfo: ""
 }
 
-function onTaskUpdate(eventInfo): void {
-  console.log(`on eventInfo id `, eventInfo.eventId);
-}
-
-updater.off(eventClassifyInfo, onTaskUpdate);
+updater.off(eventClassifyInfo, (eventInfo) => {
+  console.log("updater off " + JSON.stringify(eventInfo));
+});
 ```
 
 ## Restorer
@@ -940,13 +1092,13 @@ factoryReset(callback: AsyncCallback\<void>): void
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
+| 参数名      | 类型                   | 必填   | 说明                                     |
+| -------- | -------------------- | ---- | -------------------------------------- |
 | callback | AsyncCallback\<void> | 是    | 回调函数。当恢复出厂执行成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 restorer.factoryReset((err) => {
   console.log(`factoryReset error ${JSON.stringify(err)}`);
 });
@@ -964,13 +1116,13 @@ factoryReset(): Promise\<void>
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 restorer.factoryReset().then(() => {
   console.log(`factoryReset success`);
 }).catch(err => {
@@ -982,7 +1134,7 @@ restorer.factoryReset().then(() => {
 
 ### verifyUpgradePackage
 
-verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\<number>): void
+verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\<void>): void
 
 校验升级包。使用callback异步回调。
 
@@ -992,28 +1144,28 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: Asyn
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| upgradeFile | [UpgradeFile](#upgradefile) | 是    | 升级文件 |
-| certsFile | string | 是    | 证书文件路径 |
-| callback | AsyncCallback\<number> | 是    | 回调函数,返回升级包校验结果对象 |
+| 参数名         | 类型                          | 必填   | 说明               |
+| ----------- | --------------------------- | ---- | ---------------- |
+| upgradeFile | [UpgradeFile](#upgradefile) | 是    | 升级文件             |
+| certsFile   | string                      | 是    | 证书文件路径           |
+| callback    | AsyncCallback\<void>        | 是    | 回调函数,返回升级包校验结果对象 |
 
 **示例:**
 
-```
+```ts
 var upgradeFile = {
   fileType: update.ComponentType.OTA, // OTA包
   filePath: "path" // 本地升级包路径
 }
 
-localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err, result) => {
+localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err) => {
   console.log(`factoryReset error ${JSON.stringify(err)}`);
 });
 ```
 
 ### verifyUpgradePackage
 
-verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\<number>
+verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\<void>
 
 校验升级包。使用Promise异步回调。
 
@@ -1023,26 +1175,26 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\<numb
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| upgradeFile | [UpgradeFile](#upgradefile) | 是    | 升级文件 |
-| certsFile | string | 是    | 证书文件路径 |
+| 参数名         | 类型                          | 必填   | 说明     |
+| ----------- | --------------------------- | ---- | ------ |
+| upgradeFile | [UpgradeFile](#upgradefile) | 是    | 升级文件   |
+| certsFile   | string                      | 是    | 证书文件路径 |
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
-| Promise\<number> | Promise对象,返回升级包校验结果对象。 |
+| 类型             | 说明                     |
+| -------------- | ---------------------- |
+| Promise\<void> | Promise对象,返回升级包校验结果对象。 |
 
 **示例:**
 
-```
+```ts
 var upgradeFile = {
   fileType: update.ComponentType.OTA, // OTA包
   filePath: "path" // 本地升级包路径
 }
-localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(result => {
-  console.log(`verifyUpgradePackage result: ${result}`);
+localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(() => {
+  console.log(`verifyUpgradePackage success`);
 }).catch(err => {
   console.log(`verifyUpgradePackage error ${JSON.stringify(err)}`);
 });
@@ -1059,14 +1211,14 @@ applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>, callback: Asyn
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| upgradeFile | Array<[UpgradeFile](#upgradefile)> | 是    | 升级文件 |
-| callback | AsyncCallback\<void> | 是    | 回调函数。当安装升级包执行成功时,err为undefined,否则为错误对象。 |
+| 参数名         | 类型                                 | 必填   | 说明                                      |
+| ----------- | ---------------------------------- | ---- | --------------------------------------- |
+| upgradeFile | Array<[UpgradeFile](#upgradefile)> | 是    | 升级文件                                    |
+| callback    | AsyncCallback\<void>               | 是    | 回调函数。当安装升级包执行成功时,err为undefined,否则为错误对象。 |
 
 **示例:**
 
-```
+```ts
 var upgradeFiles = [{
   fileType: update.ComponentType.OTA, // OTA包
   filePath: "path" // 本地升级包路径
@@ -1089,13 +1241,13 @@ applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>): Promise\<void
 
 **返回值:**
 
-| 类型                                       | 说明               |
-| ---------------------------------------- | ---------------- |
+| 类型             | 说明                         |
+| -------------- | -------------------------- |
 | Promise\<void> | Promise对象。无返回结果的Promise对象。 |
 
 **示例:**
 
-```
+```ts
 var upgradeFiles = [{
   fileType: update.ComponentType.OTA, // OTA包
   filePath: "path" // 本地升级包路径
@@ -1116,14 +1268,14 @@ on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): voi
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是    | 事件信息 |
-| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
+| 参数名               | 类型                                       | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo)  | 是    | 事件信息 |
+| taskCallback      | [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
 
 **示例:**
 
-```
+```ts
 var eventClassifyInfo = {
   eventClassify: update.EventClassify.TASK, // 订阅升级更新事件
   extraInfo: ""
@@ -1145,14 +1297,14 @@ off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): v
 
 **参数:**
 
-| 参数名      | 类型                                       | 必填   | 说明        |
-| -------- | ---------------------------------------- | ---- | --------- |
-| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是    | 事件信息 |
-| taskCallback |  [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
+| 参数名               | 类型                                       | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo)  | 是    | 事件信息 |
+| taskCallback      | [UpgradeTaskCallback](#upgradetaskcallback) | 是    | 事件回调 |
 
 **示例:**
 
-```
+```ts
 var eventClassifyInfo = {
   eventClassify: update.EventClassify.TASK, // 订阅升级更新事件
   extraInfo: ""
@@ -1171,10 +1323,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| upgradeApp          | string                      | 是    | 调用方包名  |
-| businessType        | [BusinessType](#businesstype) | 是    | 升级业务类型    |
+| 名称           | 参数类型                          | 必填   | 说明     |
+| ------------ | ----------------------------- | ---- | ------ |
+| upgradeApp   | string                        | 是    | 调用方包名  |
+| businessType | [BusinessType](#businesstype) | 是    | 升级业务类型 |
 
 ## BusinessType
 
@@ -1182,10 +1334,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| vendor              | [BusinessVendor](#businessvendor)   | 是    | 供应商  |
-| subType             | [BusinessSubType](#businesssubtype) | 是    | 类型    |
+| 名称      | 参数类型                                | 必填   | 说明   |
+| ------- | ----------------------------------- | ---- | ---- |
+| vendor  | [BusinessVendor](#businessvendor)   | 是    | 供应商  |
+| subType | [BusinessSubType](#businesssubtype) | 是    | 类型   |
 
 ## CheckResult
 
@@ -1193,10 +1345,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| isExistNewVersion              | bool   | 是    | 是否有新版本  |
-| newVersionInfo             | [NewVersionInfo](#newversioninfo) | 否    | 新版本数据    |
+| 名称                | 参数类型                              | 必填   | 说明     |
+| ----------------- | --------------------------------- | ---- | ------ |
+| isExistNewVersion | bool                              | 是    | 是否有新版本 |
+| newVersionInfo    | [NewVersionInfo](#newversioninfo) | 否    | 新版本数据  |
 
 ## NewVersionInfo
 
@@ -1204,10 +1356,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| versionDigestInfo              | [VersionDigestInfo](#versiondigestinfo)   | 是    | 版本摘要  |
-| versionComponents             | Array\<[VersionComponent](#versioncomponent)>  | 是    | 版本组件    |
+| 名称                | 参数类型                                     | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要 |
+| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是    | 版本组件 |
 
 ## VersionDigestInfo
 
@@ -1215,9 +1367,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| versionDigest              | string   | 是    | 版本摘要  |
+| 名称            | 参数类型   | 必填   | 说明   |
+| ------------- | ------ | ---- | ---- |
+| versionDigest | string | 是    | 版本摘要 |
 
 ## VersionComponent
 
@@ -1225,15 +1377,38 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| componentType              | [ComponentType](#componentyype)   | 是    | 组件类型  |
-| upgradeAction              | [UpgradeAction](#upgradeaction)   | 是    | 升级方式  |
-| displayVersion              | string   | 是    | 显示版本号  |
-| innerVersion              | string   | 是    | 版本号  |
-| size              | number   | 是    | 升级包大小  |
-| effectiveMode              | [EffectiveMode](#effectivemode)   | 是    | 生效模式  |
-| descriptionInfo              | [DescriptionInfo](#descriptioninfo)   | 是    | 版本描述文件信息  |
+| 名称              | 参数类型                                | 必填   | 说明       |
+| --------------- | ----------------------------------- | ---- | -------- |
+| componentId     | number                              | 是    | 组件标识     |
+| componentType   | [ComponentType](#componenttype)     | 是    | 组件类型     |
+| upgradeAction   | [UpgradeAction](#upgradeaction)     | 是    | 升级方式     |
+| displayVersion  | string                              | 是    | 显示版本号    |
+| innerVersion    | string                              | 是    | 版本号      |
+| size            | number                              | 是    | 升级包大小    |
+| effectiveMode   | [EffectiveMode](#effectivemode)     | 是    | 生效模式     |
+| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是    | 版本描述文件信息 |
+
+## DescriptionOptions
+
+描述文件选项。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+| 名称       | 参数类型                                    | 必填   | 说明     |
+| -------- | --------------------------------------- | ---- | ------ |
+| format   | [DescriptionFormat](#descriptionformat) | 是    | 描述文件格式 |
+| language | string                                  | 是    | 描述文件语言 |
+
+## ComponentDescription
+
+组件描述文件。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+| 名称              | 参数类型                                | 必填   | 说明     |
+| --------------- | ----------------------------------- | ---- | ------ |
+| componentId     | string                              | 是    | 组件标识   |
+| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是    | 描述文件信息 |
 
 ## DescriptionInfo
 
@@ -1241,10 +1416,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| descriptionType              | [DescriptionType](#descriptiontype)   | 是    | 描述文件类型  |
-| content              |  string  | 是    | 描述文件内容  |
+| 名称              | 参数类型                                | 必填   | 说明     |
+| --------------- | ----------------------------------- | ---- | ------ |
+| descriptionType | [DescriptionType](#descriptiontype) | 是    | 描述文件类型 |
+| content         | string                              | 是    | 描述文件内容 |
 
 ## CurrentVersionInfo
 
@@ -1252,11 +1427,11 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| osVersion              | string   | 是    | 系统版本号  |
-| deviceName              | string   | 是    | 设备名  |
-| versionComponents              | Array\<[VersionComponent](#vesioncomponent)>   | 否    | 版本组件  |
+| 名称                | 参数类型                                     | 必填   | 说明    |
+| ----------------- | ---------------------------------------- | ---- | ----- |
+| osVersion         | string                                   | 是    | 系统版本号 |
+| deviceName        | string                                   | 是    | 设备名   |
+| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 否    | 版本组件  |
 
 ## DownloadOptions
 
@@ -1264,10 +1439,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| allowNetwork              | [NetType](#nettype)   | 是    | 网络类型  |
-| order              | [Order](#order)   | 是    | 升级指令  |
+| 名称           | 参数类型                | 必填   | 说明   |
+| ------------ | ------------------- | ---- | ---- |
+| allowNetwork | [NetType](#nettype) | 是    | 网络类型 |
+| order        | [Order](#order)     | 是    | 升级指令 |
 
 ## ResumeDownloadOptions
 
@@ -1275,9 +1450,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| allowNetwork              | [NetType](#nettype)   | 是    | 网络类型  |
+| 名称           | 参数类型                | 必填   | 说明   |
+| ------------ | ------------------- | ---- | ---- |
+| allowNetwork | [NetType](#nettype) | 是    | 网络类型 |
 
 ## PauseDownloadOptions
 
@@ -1285,9 +1460,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| isAllowAutoResume              | bool   | 是    | 是否允许自动恢复  |
+| 名称                | 参数类型 | 必填   | 说明       |
+| ----------------- | ---- | ---- | -------- |
+| isAllowAutoResume | bool | 是    | 是否允许自动恢复 |
 
 ## UpgradeOptions
 
@@ -1295,9 +1470,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| order              | [Order](#order)   | 是    | 升级指令  |
+| 名称    | 参数类型            | 必填   | 说明   |
+| ----- | --------------- | ---- | ---- |
+| order | [Order](#order) | 是    | 升级指令 |
 
 ## ClearOptions
 
@@ -1305,9 +1480,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| status              | [UpgradeStatus](#upgradestatus)   | 是    | 异常状态  |
+| 名称     | 参数类型                            | 必填   | 说明   |
+| ------ | ------------------------------- | ---- | ---- |
+| status | [UpgradeStatus](#upgradestatus) | 是    | 异常状态 |
 
 ## UpgradePolicy
 
@@ -1315,11 +1490,11 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| downloadStrategy        | bool                        | 是    | 自动下载策略  |
-| autoUpgradeStrategy         | bool | 是    | 自动升级策略    |
-| autoUpgradePeriods | Array\<[UpgradePeriod](#upgradeperiod)>              | 是    | 自动升级时间段 |
+| 名称                  | 参数类型                                    | 必填   | 说明      |
+| ------------------- | --------------------------------------- | ---- | ------- |
+| downloadStrategy    | bool                                    | 是    | 自动下载策略  |
+| autoUpgradeStrategy | bool                                    | 是    | 自动升级策略  |
+| autoUpgradePeriods  | Array\<[UpgradePeriod](#upgradeperiod)> | 是    | 自动升级时间段 |
 
 ## UpgradePeriod
 
@@ -1327,10 +1502,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| start        | number                        | 是    | 开始时间  |
-| end         | number | 是    | 结束时间    |
+| 名称    | 参数类型   | 必填   | 说明   |
+| ----- | ------ | ---- | ---- |
+| start | number | 是    | 开始时间 |
+| end   | number | 是    | 结束时间 |
 
 ## TaskInfo
 
@@ -1338,10 +1513,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| existTask        | bool                        | 是    | 是否存在任务  |
-| taskBody         | [TaskBody](#taskinfo) | 是    | 任务数据    |
+| 名称        | 参数类型                  | 必填   | 说明     |
+| --------- | --------------------- | ---- | ------ |
+| existTask | bool                  | 是    | 是否存在任务 |
+| taskBody  | [TaskBody](#taskinfo) | 是    | 任务数据   |
 
 ## EventInfo
 
@@ -1349,10 +1524,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| eventId        |   [EventId](#eventid)    | 是    | 事件ID  |
-| taskBody         | [TaskBody](#taskinfo) | 是    | 任务数据    |
+| 名称       | 参数类型                  | 必填   | 说明   |
+| -------- | --------------------- | ---- | ---- |
+| eventId  | [EventId](#eventid)   | 是    | 事件ID |
+| taskBody | [TaskBody](#taskinfo) | 是    | 任务数据 |
 
 ## TaskBody
 
@@ -1360,15 +1535,15 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| versionDigestInfo        |   [VersionDigestInfo](#versiondigestinfo)    | 是    | 版本摘要  |
-| status         | [UpgradeStatus](#upgradestatus) | 是    | 升级状态    |
-| subStatus         | number | 否    | 子状态    |
-| progress         | number | 是    | 进度    |
-| installMode         | number | 是    | 安装模式    |
-| errorMessages         |  Array\<[ErrorMessage](#errormessage)>  | 否    | 错误信息    |
-| versionComponets         | Array\<[VersionComponet](#versioncomponet)> | 是    | 版本组件    |
+| 名称                | 参数类型                                     | 必填   | 说明   |
+| ----------------- | ---------------------------------------- | ---- | ---- |
+| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo)  | 是    | 版本摘要 |
+| status            | [UpgradeStatus](#upgradestatus)          | 是    | 升级状态 |
+| subStatus         | number                                   | 否    | 子状态  |
+| progress          | number                                   | 是    | 进度   |
+| installMode       | number                                   | 是    | 安装模式 |
+| errorMessages     | Array\<[ErrorMessage](#errormessage)>    | 否    | 错误信息 |
+| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是    | 版本组件 |
 
 ## ErrorMessage
 
@@ -1376,10 +1551,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| errorCode        |   number   | 是    | 错误码  |
-| errorMessage         | string | 是    | 错误描述    |
+| 名称           | 参数类型   | 必填   | 说明   |
+| ------------ | ------ | ---- | ---- |
+| errorCode    | number | 是    | 错误码  |
+| errorMessage | string | 是    | 错误描述 |
 
 ## EventClassifyInfo
 
@@ -1387,10 +1562,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| eventClassify        |   [EventClassify](#eventclassify)   | 是    | 事件类型  |
-| extraInfo         | string | 是    | 额外信息    |
+| 名称            | 参数类型                            | 必填   | 说明   |
+| ------------- | ------------------------------- | ---- | ---- |
+| eventClassify | [EventClassify](#eventclassify) | 是    | 事件类型 |
+| extraInfo     | string                          | 是    | 额外信息 |
 
 ## UpgradeFile
 
@@ -1398,23 +1573,22 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate);
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称                  | 参数类型                        | 必填   | 说明      |
-| ------------------- | --------------------------- | ---- | ------- |
-| fileType        |   [ComponentType](#componenttype)   | 是    | 文件类型  |
-| filePath         | string | 是    | 文件路径    |
+| 名称       | 参数类型                            | 必填   | 说明   |
+| -------- | ------------------------------- | ---- | ---- |
+| fileType | [ComponentType](#componenttype) | 是    | 文件类型 |
+| filePath | string                          | 是    | 文件路径 |
 
 ## UpgradeTaskCallback
 
-### onTaskUpdate
-onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
+### (eventInfo: [EventInfo](#eventinfo)): void
 
 事件回调。
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 名称              | 参数类型                                     | 必填   | 说明   |
-| --------------- | ---------------------------------------- | ---- | ---- |
-| eventInfo          | [EventInfo](#eventinfo)     | 是    | 事件信息 |
+| 名称        | 参数类型                    | 必填   | 说明   |
+| --------- | ----------------------- | ---- | ---- |
+| eventInfo | [EventInfo](#eventinfo) | 是    | 事件信息 |
 
 ## BusinessVendor
 
@@ -1422,9 +1596,9 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| PUBLIC   | "public" | 开源  |
+| 参数名    | 默认值      | 说明   |
+| ------ | -------- | ---- |
+| PUBLIC | "public" | 开源   |
 
 ## BusinessSubType
 
@@ -1432,19 +1606,19 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| FIRWARE   | 1 | 固件  |
+| 参数名      | 默认值  | 说明   |
+| -------- | ---- | ---- |
+| FIRMWARE | 1    | 固件   |
 
 ## ComponentType
 
-升级包类型。
+组件类型。
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| OTA   | 1 | 固件  |
+| 参数名  | 默认值  | 说明   |
+| ---- | ---- | ---- |
+| OTA  | 1    | 固件   |
 
 ## UpgradeAction
 
@@ -1452,10 +1626,10 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| UPGRADE   | "upgrade" | 差分包  |
-| RECOVERY   | "recovery" | 修复包  |
+| 参数名      | 默认值        | 说明   |
+| -------- | ---------- | ---- |
+| UPGRADE  | "upgrade"  | 差分包  |
+| RECOVERY | "recovery" | 修复包  |
 
 ## EffectiveMode
 
@@ -1463,11 +1637,11 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| COLD   | 1 | 冷升级  |
-| LIVE   | 2 | 热升级  |
-| LIVE_AND_COLD   | 3 | 融合升级  |
+| 参数名           | 默认值  | 说明   |
+| ------------- | ---- | ---- |
+| COLD          | 1    | 冷升级  |
+| LIVE          | 2    | 热升级  |
+| LIVE_AND_COLD | 3    | 融合升级 |
 
 ## DescriptionType
 
@@ -1475,10 +1649,21 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| CONTENT   | 0 | 内容  |
-| URI   | 1 | 链接  |
+| 参数名     | 默认值  | 说明   |
+| ------- | ---- | ---- |
+| CONTENT | 0    | 内容   |
+| URI     | 1    | 链接   |
+
+## DescriptionFormat
+
+描述文件格式。
+
+**系统能力**:SystemCapability.Update.UpdateService
+
+| 参数名        | 默认值  | 说明   |
+| ---------- | ---- | ---- |
+| STANDARD   | 0    | 标准格式 |
+| SIMPLIFIED | 1    | 简易格式 |
 
 ## NetType
 
@@ -1486,13 +1671,13 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| CELLULAR   | 1 | 数据网络  |
-| METERED_WIFI   | 2 | 热点WIFI  |
-| NOT_METERED_WIFI   | 4 | 非热点WIFI  |
-| WIFI   | 6 | WIFI  |
-| CELLULAR_AND_WIFI   | 7 | 数据网络和WIFI  |
+| 参数名               | 默认值  | 说明        |
+| ----------------- | ---- | --------- |
+| CELLULAR          | 1    | 数据网络      |
+| METERED_WIFI      | 2    | 热点WIFI    |
+| NOT_METERED_WIFI  | 4    | 非热点WIFI   |
+| WIFI              | 6    | WIFI      |
+| CELLULAR_AND_WIFI | 7    | 数据网络和WIFI |
 
 ## Order
 
@@ -1500,13 +1685,13 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| DOWNLOAD   | 1 | 下载  |
-| INSTALL   | 2 | 安装  |
-| APPLY   | 4 | 生效  |
-| DOWNLOAD_AND_INSTALL   | 3 | 下载并安装  |
-| INSTALL_AND_APPLY   | 6 | 安装并生效  |
+| 参数名                  | 默认值  | 说明    |
+| -------------------- | ---- | ----- |
+| DOWNLOAD             | 1    | 下载    |
+| INSTALL              | 2    | 安装    |
+| DOWNLOAD_AND_INSTALL | 3    | 下载并安装 |
+| APPLY                | 4    | 生效    |
+| INSTALL_AND_APPLY    | 6    | 安装并生效 |
 
 ## UpgradeStatus
 
@@ -1514,18 +1699,18 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| WAITING_DOWNLOAD   | 20 | 待下载  |
-| DOWNLOADING   | 21 | 下载中  |
-| DOWNLOAD_PAUSE   | 22 | 下载暂停  |
-| DOWNLOAD_FAIL   | 23 | 下载失败  |
-| WAITING_INSTALL   | 30 | 待安装  |
-| UPDATING   | 31 | 更新中  |
-| WATING_APPLY   | 40 | 待生效  |
-| APPLYING   | 21 | 生效中  |
-| UPGRADE_SUCCESS   | 50 | 升级成功  |
-| UPGRADE_FAIL   | 51 | 升级失败  |
+| 参数名              | 默认值  | 说明   |
+| ---------------- | ---- | ---- |
+| WAITING_DOWNLOAD | 20   | 待下载  |
+| DOWNLOADING      | 21   | 下载中  |
+| DOWNLOAD_PAUSED  | 22   | 下载暂停 |
+| DOWNLOAD_FAIL    | 23   | 下载失败 |
+| WAITING_INSTALL  | 30   | 待安装  |
+| UPDATING         | 31   | 更新中  |
+| WAITING_APPLY    | 40   | 待生效  |
+| APPLYING         | 21   | 生效中  |
+| UPGRADE_SUCCESS  | 50   | 升级成功 |
+| UPGRADE_FAIL     | 51   | 升级失败 |
 
 ## EventClassify
 
@@ -1533,9 +1718,9 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| TASK   | 0x01000000 | 任务事件  |
+| 参数名  | 默认值        | 说明   |
+| ---- | ---------- | ---- |
+| TASK | 0x01000000 | 任务事件 |
 
 ## EventId
 
@@ -1543,22 +1728,22 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void
 
 **系统能力**:SystemCapability.Update.UpdateService
 
-| 参数名                 | 默认值  | 说明       |
-| ------------------- | ---- | -------- |
-| EVENT_TASK_BASE   | 0x01000000 | 任务事件  |
-| EVENT_TASK_RECEIVE   | 0x01000001 | 收到任务  |
-| EVENT_TASK_CANCEL   | 0x01000010 | 取消任务  |
-| EVENT_DOWNLOAD_WAIT   | 0x01000011 | 待下载  |
-| EVENT_DOWNLOAD_START   | 0x01000100 | 开始下载  |
-| EVENT_DOWNLOAD_UPDATE   | 0x01000101 | 下载进度更新  |
-| EVENT_DOWNLOAD_PAUSE   | 0x01000110 | 下载暂停  |
-| EVENT_DOWNLOAD_RESUME   | 0x01000111 | 恢复下载  |
-| EVENT_DOWNLOAD_SUCCESS   | 0x01001000 | 下载成功  |
-| EVENT_DOWNLOAD_FAIL   | 0x01001001 | 下载失败  |
-| EVENT_UPGRADE_WAIT   | 0x01001010 | 待升级  |
-| EVENT_UPGRADE_START   | 0x01001011 | 开始升级  |
-| EVENT_UPGRADE_UPDATE   | 0x01001100 | 升级中  |
-| EVENT_APPLY_WAIT   | 0x01001101 | 待生效  |
-| EVENT_APPLY_START   | 0x01001110 | 开始生效  |
-| EVENT_UPGRADE_SUCCESS   | 0x01001111 | 更新成功  |
-| EVENT_UPGRADE_FAIL   | 0x01010000 | 更新失败  |
+| 参数名                    | 默认值        | 说明     |
+| ---------------------- | ---------- | ------ |
+| EVENT_TASK_BASE        | 0x01000000 | 任务事件   |
+| EVENT_TASK_RECEIVE     | 0x01000001 | 收到任务   |
+| EVENT_TASK_CANCEL      | 0x01000010 | 取消任务   |
+| EVENT_DOWNLOAD_WAIT    | 0x01000011 | 待下载    |
+| EVENT_DOWNLOAD_START   | 0x01000100 | 开始下载   |
+| EVENT_DOWNLOAD_UPDATE  | 0x01000101 | 下载进度更新 |
+| EVENT_DOWNLOAD_PAUSE   | 0x01000110 | 下载暂停   |
+| EVENT_DOWNLOAD_RESUME  | 0x01000111 | 恢复下载   |
+| EVENT_DOWNLOAD_SUCCESS | 0x01001000 | 下载成功   |
+| EVENT_DOWNLOAD_FAIL    | 0x01001001 | 下载失败   |
+| EVENT_UPGRADE_WAIT     | 0x01001010 | 待升级    |
+| EVENT_UPGRADE_START    | 0x01001011 | 开始升级   |
+| EVENT_UPGRADE_UPDATE   | 0x01001100 | 升级中    |
+| EVENT_APPLY_WAIT       | 0x01001101 | 待生效    |
+| EVENT_APPLY_START      | 0x01001110 | 开始生效   |
+| EVENT_UPGRADE_SUCCESS  | 0x01001111 | 更新成功   |
+| EVENT_UPGRADE_FAIL     | 0x01010000 | 更新失败   |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-url.md b/zh-cn/application-dev/reference/apis/js-apis-url.md
index eab93b045720c98fe9c3da9cde16a1f921f745a5..f7a30ab9b74c73fc034b9d8f37d69ff1337a21f2 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-url.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-url.md
@@ -108,10 +108,10 @@ getAll(name: string): string[]
 **示例:**
 
 ```js
-let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); 
-let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1)); 
-paramsObject.append('fod', '3'); // Add a second value for the fod parameter.
-console.log(params.getAll('fod')) // Output ["1","3"].
+let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
+let params = new Url.URLSearchParams(urlObject.search.slice(1));
+params.append('fod', '3'); // Add a second value for the fod parameter.
+console.log(params.getAll('fod').toString()) // Output ["1","3"].
 ```
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb.md b/zh-cn/application-dev/reference/apis/js-apis-usb.md
index 6f3b930ad6295efe57cb60f7543cec2a2c528990..12943e5dc43837fc335678354036d03fbf3a4e7d 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-usb.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-usb.md
@@ -3,7 +3,7 @@
 本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。
 
 >  **说明:**
->
+> 
 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
 ## 导入模块
@@ -22,66 +22,66 @@ getDevices(): Array&lt;Readonly&lt;USBDevice&gt;&gt;
 
 **返回值:**
 
-  | 类型 | 说明 |
-  | -------- | -------- |
-  | Array&lt;Readonly&lt;[USBDevice](#usbdevice)&gt;&gt; | 设备信息列表。 |
+| 类型                                                   | 说明      |
+| ---------------------------------------------------- | ------- |
+| Array&lt;Readonly&lt;[USBDevice](#usbdevice)&gt;&gt; | 设备信息列表。 |
 
 **示例:**
-  ```js
-  let devicesList = usb.getDevices();
-  console.log(`devicesList = ${JSON.stringify(devicesList)}`);
-  //devicesList  返回的数据结构
-  //此处提供一个简单的示例,如下
-  [
-    {
-      name: "1-1",
-      serial: "",
-      manufacturerName: "",
-      productName: "",
-      version: "",
-      vendorId: 7531,
-      productId: 2,
-      clazz: 9,
-      subclass: 0,
-      protocol: 1,
-      devAddress: 1,
-      busNum: 1,
-      configs: [
-        {
-          id: 1,
-          attributes: 224,
-          isRemoteWakeup: true,
-          isSelfPowered: true,
-          maxPower: 0,
-          name: "1-1",
-          interfaces: [
-            {
-              id: 0,
-              protocol: 0,
-              clazz: 9,
-              subclass: 0,
-              alternateSetting: 0,
-              name: "1-1",
-              endpoints: [
-                {
-                  address: 129,
-                  attributes: 3,
-                  interval: 12,
-                  maxPacketSize: 4,
-                  direction: 128,
-                  number: 1,
-                  type: 3,
-                  interfaceId: 0,
-                },
-              ],
-            },
-          ],
-        },
-      ],
-    },
-  ]
-  ```
 
+```js
+let devicesList = usb.getDevices();
+console.log(`devicesList = ${JSON.stringify(devicesList)}`);
+//devicesList  返回的数据结构
+//此处提供一个简单的示例,如下
+[
+  {
+    name: "1-1",
+    serial: "",
+    manufacturerName: "",
+    productName: "",
+    version: "",
+    vendorId: 7531,
+    productId: 2,
+    clazz: 9,
+    subclass: 0,
+    protocol: 1,
+    devAddress: 1,
+    busNum: 1,
+    configs: [
+      {
+        id: 1,
+        attributes: 224,
+        isRemoteWakeup: true,
+        isSelfPowered: true,
+        maxPower: 0,
+        name: "1-1",
+        interfaces: [
+          {
+            id: 0,
+            protocol: 0,
+            clazz: 9,
+            subclass: 0,
+            alternateSetting: 0,
+            name: "1-1",
+            endpoints: [
+              {
+                address: 129,
+                attributes: 3,
+                interval: 12,
+                maxPacketSize: 4,
+                direction: 128,
+                number: 1,
+                type: 3,
+                interfaceId: 0,
+              },
+            ],
+          },
+        ],
+      },
+    ],
+  },
+]
+```
 
 ## usb.connectDevice
 
@@ -104,11 +104,11 @@ connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt;
   | Readonly&lt;[USBDevicePipe](#usbdevicepipe)&gt; | 指定的传输通道对象。 |
 
 **示例:**
-  ```js
-  let devicepipe= usb.connectDevice(device);
-  console.log(`devicepipe = ${JSON.stringify(devicepipe)}`);
-  ```
 
+```js
+let devicepipe= usb.connectDevice(device);
+console.log(`devicepipe = ${JSON.stringify(devicepipe)}`);
+```
 
 ## usb.hasRight
 
@@ -129,12 +129,12 @@ hasRight(deviceName: string): boolean
   | boolean | true表示有访问设备的权限,false表示没有访问设备的权限。 |
 
 **示例:**
-  ```js
-  let divicesName="1-1";
-  let bool = usb.hasRight(divicesName);
-  console.log(bool);
-  ```
 
+```js
+let devicesName="1-1";
+let bool = usb.hasRight(devicesName);
+console.log(bool);
+```
 
 ## usb.requestRight
 
@@ -155,12 +155,13 @@ requestRight(deviceName: string): Promise&lt;boolean&gt;
   | Promise&lt;boolean&gt; | 获取到true则表示软件包的临时权限已访问成功,&nbsp;获取到false则表示软件包的临时权限已访问失败。 |
 
 **示例:**
-  ```js
-  let divicesName="1-1";
-  usb.requestRight(divicesName).then((ret) => {
-    console.log(`requestRight = ${JSON.stringify(ret)}`);
-  });
-  ```
+
+```js
+let devicesName="1-1";
+usb.requestRight(devicesName).then((ret) => {
+  console.log(`requestRight = ${JSON.stringify(ret)}`);
+});
+```
 
 ## usb.claimInterface
 
@@ -185,11 +186,11 @@ claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): numbe
   | number | 注册通信接口成功返回0;注册通信接口失败返回其他错误码。 |
 
 **示例:**
-  ```js
-  let ret = usb.claimInterface(devicepipe, interfaces);
-  console.log(`claimInterface = ${ret}`);
-  ```
 
+```js
+let ret = usb.claimInterface(devicepipe, interfaces);
+console.log(`claimInterface = ${ret}`);
+```
 
 ## usb.releaseInterface
 
@@ -213,11 +214,11 @@ releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number
   | number | 释放接口成功返回0;释放接口失败返回其他错误码。 |
 
 **示例:**
-  ```js
-  let ret = usb.releaseInterface(devicepipe, interfaces);
-  console.log(`releaseInterface = ${ret}`);
-  ```
 
+```js
+let ret = usb.releaseInterface(devicepipe, interfaces);
+console.log(`releaseInterface = ${ret}`);
+```
 
 ## usb.setConfiguration
 
@@ -241,10 +242,11 @@ setConfiguration(pipe: USBDevicePipe, config: USBConfig): number
   | number | 设置设备配置成功返回0;设置设备配置失败返回其他错误码。 |
 
 **示例:**
-  ```js
-  let ret = usb.setConfiguration(devicepipe, config);
-  console.log(`setConfiguration = ${ret}`);
-  ```
+
+```js
+let ret = usb.setConfiguration(devicepipe, config);
+console.log(`setConfiguration = ${ret}`);
+```
 
 ## usb.setInterface
 
@@ -258,10 +260,10 @@ setInterface(pipe: USBDevicePipe, iface: USBInterface): number
 
 **参数:**
 
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | pipe | [USBDevicePipe](#usbdevicepipe) | 是 | 用于确定总线号和设备地址。 |
-  | iface | [USBInterface](#usbinterface) | 是 | 用于确定需要设置的接口。 |
+| 参数名   | 类型                              | 必填  | 说明            |
+| ----- | ------------------------------- | --- | ------------- |
+| pipe  | [USBDevicePipe](#usbdevicepipe) | 是   | 用于确定总线号和设备地址。 |
+| iface | [USBInterface](#usbinterface)   | 是   | 用于确定需要设置的接口。  |
 
 **返回值:**
   | 类型 | 说明 |
@@ -269,10 +271,11 @@ setInterface(pipe: USBDevicePipe, iface: USBInterface): number
   | number | 设置设备接口成功返回0;设置设备接口失败返回其他错误码。 |
 
 **示例:**
-  ```js
-  let ret = usb.setInterface(devicepipe, interfaces);
-  console.log(`setInterface = ${ret}`);
-  ```
+
+```js
+let ret = usb.setInterface(devicepipe, interfaces);
+console.log(`setInterface = ${ret}`);
+```
 
 ## usb.getRawDescriptor
 
@@ -285,6 +288,7 @@ getRawDescriptor(pipe: USBDevicePipe): Uint8Array
 **系统能力:**  SystemCapability.USB.USBManager
 
 **参数:**
+
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
   | pipe | [USBDevicePipe](#usbdevicepipe) | 是 | 用于确定总线号和设备地址。 |
@@ -295,10 +299,10 @@ getRawDescriptor(pipe: USBDevicePipe): Uint8Array
 | Uint8Array | 返回获取的原始数据;失败返回undefined。 |
 
 **示例:**
-  ```js
-  let ret = usb.getRawDescriptor(devicepipe);
-  ```
 
+```js
+let ret = usb.getRawDescriptor(devicepipe);
+```
 
 ## usb.getFileDescriptor
 
@@ -317,15 +321,15 @@ getFileDescriptor(pipe: USBDevicePipe): number
 
 **返回值:**
 
-| 类型 | 说明 |
-| -------- | -------- |
+| 类型     | 说明                   |
+| ------ | -------------------- |
 | number | 返回设备对应的文件描述符;失败返回-1。 |
 
 **示例:**
-  ```js
-  let ret = usb.getFileDescriptor(devicepipe);
-  ```
 
+```js
+let ret = usb.getFileDescriptor(devicepipe);
+```
 
 ## usb.controlTransfer
 
@@ -350,12 +354,12 @@ controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?: nu
   | Promise&lt;number&gt; | 获取传输或接收到的数据块大小,&nbsp;获取到-1则表示异常。 |
 
 **示例:**
-  ```js
-  usb.controlTransfer(devicepipe, USBControlParams).then((ret) => {
-   console.log(`controlTransfer = ${JSON.stringify(ret)}`);
-  })
-  ```
 
+```js
+usb.controlTransfer(devicepipe, USBControlParams).then((ret) => {
+ console.log(`controlTransfer = ${JSON.stringify(ret)}`);
+})
+```
 
 ## usb.bulkTransfer
 
@@ -381,15 +385,15 @@ bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, tim
   | Promise&lt;number&gt; | 获取传输或接收到的数据块大小,&nbsp;获取到-1则表示异常。 |
 
 **示例:**
-  ```js
-  //usb.getDevices 接口返回数据集合,取其中一个设备对象,并获取权限 。
-  //把获取到的设备对象作为参数传入usb.connectDevice;当usb.connectDevice接口成功返回之后;
-  //才可以调用第三个接口usb.claimInterface.当usb.claimInterface 调用成功以后,再调用该接口。
-  usb.bulkTransfer(devicepipe, endpoint, buffer).then((ret) => {
-   console.log(`bulkTransfer = ${JSON.stringify(ret)}`);
-  });
-  ```
 
+```js
+//usb.getDevices 接口返回数据集合,取其中一个设备对象,并获取权限 。
+//把获取到的设备对象作为参数传入usb.connectDevice;当usb.connectDevice接口成功返回之后;
+//才可以调用第三个接口usb.claimInterface.当usb.claimInterface 调用成功以后,再调用该接口。
+usb.bulkTransfer(devicepipe, endpoint, buffer).then((ret) => {
+ console.log(`bulkTransfer = ${JSON.stringify(ret)}`);
+});
+```
 
 ## usb.closePipe
 
@@ -412,149 +416,424 @@ closePipe(pipe: USBDevicePipe): number
   | number | 关闭设备消息控制通道成功返回0;关闭设备消息控制通道失败返回其他错误码。 |
 
 **示例:**
-  ```js
-  let ret = usb.closePipe(devicepipe);
-  console.log(`closePipe = ${ret}`);
-  ```
 
+```js
+let ret = usb.closePipe(devicepipe);
+console.log(`closePipe = ${ret}`);
+```
+
+## usb.usbFunctionsFromString<sup>9+</sup>
+
+usbFunctionsFromString(funcs: string): number
+
+在设备模式下,将字符串形式的usb功能列表转化为数字掩码。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明                   |
+| ------ | ------ | ---- | ---------------------- |
+| funcs  | string | 是   | 字符串形式的功能列表。 |
+
+**返回值:**
+
+| 类型   | 说明               |
+| ------ | ------------------ |
+| number | 转化后的数字掩码。 |
+
+**示例:**
+
+```js
+let funcs = "acm";
+let ret = usb.usbFunctionsFromString(funcs);
+```
+
+## usb.usbFunctionsToString<sup>9+</sup>
+
+usbFunctionsToString(funcs: FunctionType): string
+
+在设备模式下,将数字掩码形式的usb功能列表转化为字符串。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**参数:**
+
+| 参数名 | 类型                           | 必填 | 说明              |
+| ------ | ------------------------------ | ---- | ----------------- |
+| funcs  | [FunctionType](#functiontype9) | 是   | usb功能数字掩码。 |
+
+**返回值:**
+
+| 类型   | 说明                           |
+| ------ | ------------------------------ |
+| string | 转化后的字符串形式的功能列表。 |
+
+**示例:**
+
+```js
+let funcs = ACM | ECM;
+let ret = usb.usbFunctionsToString(funcs);
+```
+
+## usb.setCurrentFunctions<sup>9+</sup>
+
+setCurrentFunctions(funcs: FunctionType): Promise\<boolean\>
+
+在设备模式下,设置当前的USB功能列表。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**参数:**
+
+| 参数名 | 类型                           | 必填 | 说明              |
+| ------ | ------------------------------ | ---- | ----------------- |
+| funcs  | [FunctionType](#functiontype9) | 是   | USB功能数字掩码。 |
+
+**返回值:**
+
+| 类型               | 说明                                                   |
+| ------------------ | ------------------------------------------------------ |
+| Promise\<boolean\> | 设置USB功能列表是否成功,true表示成功,false表示失败。 |
+
+**示例:**
+
+```js
+let funcs = HDC;
+let ret = usb.setCurrentFunctions(funcs);
+```
+
+## usb.getCurrentFunctions<sup>9+</sup>
+
+getCurrentFunctions(): FunctionType
+
+在设备模式下,获取当前的USB功能列表的数字组合掩码。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**返回值:**
+
+| 类型                           | 说明                              |
+| ------------------------------ | --------------------------------- |
+| [FunctionType](#functiontype9) | 当前的USB功能列表的数字组合掩码。 |
+
+**示例:**
+
+```js
+let ret = usb.getCurrentFunctions();
+```
+
+## usb.getPorts<sup>9+</sup>
+
+getPorts(): Array\<USBPort\>
+
+获取所有物理USB端口描述信息。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**返回值:**
+
+| 类型                          | 说明                  |
+| ----------------------------- | --------------------- |
+| [Array\<USBPort\>](#usbport9) | USB端口描述信息列表。 |
+
+**示例:**
+
+```js
+let ret = usb.getPorts();
+```
+
+## usb.getSupportedModes<sup>9+</sup>
+
+getSupportedModes(portId: number): PortModeType
+
+获取指定的端口支持的模式列表的组合掩码。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**参数:**
+
+| 参数名 | 类型   | 必填 | 说明     |
+| ------ | ------ | ---- | -------- |
+| portId | number | 是   | 端口号。 |
+
+**返回值:**
+
+| 类型                           | 说明                       |
+| ------------------------------ | -------------------------- |
+| [PortModeType](#portmodetype9) | 支持的模式列表的组合掩码。 |
+
+**示例:**
+
+```js
+let ret = usb.getSupportedModes(0);
+```
+
+## usb.setPortRoles<sup>9+</sup>
+
+setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<boolean\>
+
+设置指定的端口支持的角色模式,包含充电角色、数据传输角色。
+
+此接口为系统接口。
+
+**系统能力:**  SystemCapability.USB.USBManager
+
+**参数:**
+
+| 参数名    | 类型                             | 必填 | 说明             |
+| --------- | -------------------------------- | ---- | ---------------- |
+| portId    | number                           | 是   | 端口号。         |
+| powerRole | [PowerRoleType](#powerroletype9) | 是   | 充电的角色。     |
+| dataRole  | [DataRoleType](#dataroletype9)   | 是   | 数据传输的角色。 |
+
+**返回值:**
+
+| 类型               | 说明           |
+| ------------------ | -------------- |
+| Promise\<boolean\> | 设置是否成功。 |
+
+**示例:**
+
+```js
+let ret = usb.getSupportedModes(0);
+```
 
 ## USBEndpoint
 
 通过USB发送和接收数据的端口。通过[USBInterface](#usbinterface)获取。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| address | number | 端点地址。|
-| attributes | number | 端点属性。|
-| interval | number | 端点间隔。|
-| maxPacketSize | number | 端点最大数据包大小。|
-| direction | [USBRequestDirection](#usbrequestdirection) | 端点的方向。|
-| number | number | 端点号。|
-| type | number | 端点类型。|
-| interfaceId | number | 端点所属的接口的唯一标识。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称            | 参数类型                                        | 说明            |
+| ------------- | ------------------------------------------- | ------------- |
+| address       | number                                      | 端点地址。         |
+| attributes    | number                                      | 端点属性。         |
+| interval      | number                                      | 端点间隔。         |
+| maxPacketSize | number                                      | 端点最大数据包大小。    |
+| direction     | [USBRequestDirection](#usbrequestdirection) | 端点的方向。        |
+| number        | number                                      | 端点号。          |
+| type          | number                                      | 端点类型。         |
+| interfaceId   | number                                      | 端点所属的接口的唯一标识。 |
 
 ## USBInterface
 
 一个[USBConfig](#usbconfig)中可以含有多个USBInterface,每个USBInterface提供一个功能。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| id | number | 接口的唯一标识。|
-| protocol | number | 接口的协议。|
-| clazz | number | 设备类型。|
-| subClass | number | 设备子类。|
-| alternateSetting | number | 在同一个接口中的多个描述符中进行切换设置。|
-| name | string | 接口名称。|
-| endpoints | Array&lt;[USBEndpoint](#usbendpoint)&gt; | 当前接口所包含的端点。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称               | 参数类型                                     | 说明                    |
+| ---------------- | ---------------------------------------- | --------------------- |
+| id               | number                                   | 接口的唯一标识。              |
+| protocol         | number                                   | 接口的协议。                |
+| clazz            | number                                   | 设备类型。                 |
+| subClass         | number                                   | 设备子类。                 |
+| alternateSetting | number                                   | 在同一个接口中的多个描述符中进行切换设置。 |
+| name             | string                                   | 接口名称。                 |
+| endpoints        | Array&lt;[USBEndpoint](#usbendpoint)&gt; | 当前接口所包含的端点。           |
 
 ## USBConfig
 
 USB配置,一个[USBDevice](#usbdevice)中可以含有多个配置。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| id | number | 配置的唯一标识。|
-| attributes | number | 配置的属性。|
-| maxPower | number | 最大功耗,以毫安为单位。|
-| name | string | 配置的名称,可以为空。|
-| isRemoteWakeup | boolean | 检查当前配置是否支持远程唤醒。|
-| isSelfPowered | boolean | 检查当前配置是否支持独立电源。|
-| interfaces | Array&nbsp;&lt;[USBInterface](#usbinterface)&gt; | 配置支持的接口属性。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称             | 参数类型                                             | 说明              |
+| -------------- | ------------------------------------------------ | --------------- |
+| id             | number                                           | 配置的唯一标识。        |
+| attributes     | number                                           | 配置的属性。          |
+| maxPower       | number                                           | 最大功耗,以毫安为单位。    |
+| name           | string                                           | 配置的名称,可以为空。     |
+| isRemoteWakeup | boolean                                          | 检查当前配置是否支持远程唤醒。 |
+| isSelfPowered  | boolean                                          | 检查当前配置是否支持独立电源。 |
+| interfaces     | Array&nbsp;&lt;[USBInterface](#usbinterface)&gt; | 配置支持的接口属性。      |
 
 ## USBDevice
 
 USB设备信息。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| busNum | number | 总线地址。|
-| devAddress | number | 设备地址。|
-| serial | string | 序列号。|
-| name | string | 设备名字。|
-| manufacturerName | string | 产商信息。|
-| productName | string | 产品信息。|
-| version | string | 版本。|
-| vendorId | number | 厂商ID。|
-| productId | number | 产品ID。|
-| clazz | number | 设备类。|
-| subClass | number | 设备子类。|
-| protocol | number | 设备协议码。|
-| configs | Array&lt;[USBConfig](#usbconfig)&gt; | 设备配置描述符信息。|
-
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称               | 参数类型                                 | 说明         |
+| ---------------- | ------------------------------------ | ---------- |
+| busNum           | number                               | 总线地址。      |
+| devAddress       | number                               | 设备地址。      |
+| serial           | string                               | 序列号。       |
+| name             | string                               | 设备名字。      |
+| manufacturerName | string                               | 产商信息。      |
+| productName      | string                               | 产品信息。      |
+| version          | string                               | 版本。        |
+| vendorId         | number                               | 厂商ID。      |
+| productId        | number                               | 产品ID。      |
+| clazz            | number                               | 设备类。       |
+| subClass         | number                               | 设备子类。      |
+| protocol         | number                               | 设备协议码。     |
+| configs          | Array&lt;[USBConfig](#usbconfig)&gt; | 设备配置描述符信息。 |
 
 ## USBDevicePipe
 
 USB设备消息传输通道,用于确定设备。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| busNum | number | 总线地址。|
-| devAddress | number | 设备地址。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称         | 参数类型   | 说明    |
+| ---------- | ------ | ----- |
+| busNum     | number | 总线地址。 |
+| devAddress | number | 设备地址。 |
 
 ## USBControlParams
 
 控制传输参数。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称      | 参数类型                                            | 说明               |
+| ------- | ----------------------------------------------- | ---------------- |
+| request | number                                          | 请求类型。            |
+| target  | [USBRequestTargetType](#usbrequesttargettype)   | 请求目标类型。          |
+| reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。          |
+| value   | number                                          | 请求参数。            |
+| index   | number                                          | 请求参数value对应的索引值。 |
+| data    | Uint8Array                                      | 用于写入或读取的缓冲区。     |
+
+## USBPort<sup>9+</sup>
+
+USB设备端口。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称           | 参数类型                         | 说明                                |
+| -------------- | -------------------------------- | ----------------------------------- |
+| id             | number                           | USB端口唯一标识。                   |
+| supportedModes | [PortModeType](#portmodetype9)   | USB端口所支持的模式的数字组合掩码。 |
+| status         | [USBPortStatus](#usbportstatus9) | USB端口角色。                       |
+
+## USBPortStatus<sup>9+</sup>
+
+USB设备端口角色信息。
+
+此接口为系统接口。
 
-| 名称 | 参数类型 | 说明 |
-| -------- | -------- | -------- |
-| request | number | 请求类型。 |
-| target | [USBRequestTargetType](#usbrequesttargettype) | 请求目标类型。|
-| reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。|
-| value | number | 请求参数。|
-| index | number | 请求参数value对应的索引值。|
-| data | Uint8Array | 用于写入或读取的缓冲区。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称             | 参数类型 | 说明                   |
+| ---------------- | -------- | ---------------------- |
+| currentMode      | number   | 当前的USB模式。        |
+| currentPowerRole | number   | 当前设备充电模式。     |
+| currentDataRole  | number   | 当前设备数据传输模式。 |
 
 ## USBRequestTargetType
 
 请求目标类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| USB_REQUEST_TARGET_DEVICE | 0 | 设备。|
-| USB_REQUEST_TARGET_INTERFACE | 1 | 接口。|
-| USB_REQUEST_TARGET_ENDPOINT | 2 | 端点。|
-| USB_REQUEST_TARGET_OTHER | 3 | 其他。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称                         | 值   | 说明   |
+| ---------------------------- | ---- | ------ |
+| USB_REQUEST_TARGET_DEVICE    | 0    | 设备。 |
+| USB_REQUEST_TARGET_INTERFACE | 1    | 接口。 |
+| USB_REQUEST_TARGET_ENDPOINT  | 2    | 端点。 |
+| USB_REQUEST_TARGET_OTHER     | 3    | 其他。 |
 
 ## USBControlRequestType
 
 控制请求类型。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
-
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| USB_REQUEST_TYPE_STANDARD | 0 | 标准。|
-| USB_REQUEST_TYPE_CLASS | 1 | 类。|
-| USB_REQUEST_TYPE_VENDOR | 2 | 厂商。|
+**系统能力**:SystemCapability.USB.USBManager
 
+| 名称                      | 值   | 说明   |
+| ------------------------- | ---- | ------ |
+| USB_REQUEST_TYPE_STANDARD | 0    | 标准。 |
+| USB_REQUEST_TYPE_CLASS    | 1    | 类。   |
+| USB_REQUEST_TYPE_VENDOR   | 2    | 厂商。 |
 
 ## USBRequestDirection
 
 请求方向。
 
-**系统能力**:以下各项对应的系统能力均为 SystemCapability.USB.USBManager。
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称                        | 值   | 说明                     |
+| --------------------------- | ---- | ------------------------ |
+| USB_REQUEST_DIR_TO_DEVICE   | 0    | 写数据,主设备往从设备。 |
+| USB_REQUEST_DIR_FROM_DEVICE | 0x80 | 读数据,从设备往主设备。 |
+
+## FunctionType<sup>9+</sup>
+
+USB设备侧功能。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称         | 值   | 说明       |
+| ------------ | ---- | ---------- |
+| NONE         | 0    | 没有功能。 |
+| ACM          | 1    | acm功能。  |
+| ECM          | 2    | ecm功能。  |
+| HDC          | 4    | hdc功能。  |
+| MTP          | 8    | 暂不支持。 |
+| PTP          | 16   | 暂不支持。 |
+| RNDIS        | 32   | 暂不支持。 |
+| MIDI         | 64   | 暂不支持。 |
+| AUDIO_SOURCE | 128  | 暂不支持。 |
+| NCM          | 256  | 暂不支持。 |
+
+## PortModeType<sup>9+</sup>
+
+USB端口模式类型。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称      | 值   | 说明                                                 |
+| --------- | ---- | ---------------------------------------------------- |
+| NONE      | 0    | 无。                                                 |
+| UFP       | 1    | 数据上行,需要外部供电。                             |
+| DFP       | 2    | 数据下行,对外提供电源。                             |
+| DRP       | 3    | 既可以做DFP(Host),也可以做UFP(Device),当前不支持。 |
+| NUM_MODES | 4    | 当前不支持。                                         |
+
+## PowerRoleType<sup>9+</sup>
+
+电源角色类型。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称   | 值   | 说明       |
+| ------ | ---- | ---------- |
+| NONE   | 0    | 无。       |
+| SOURCE | 1    | 外部供电。 |
+| SINK   | 2    | 内部供电。 |
+
+## DataRoleType<sup>9+</sup>
+
+数据角色类型。
+
+此接口为系统接口。
+
+**系统能力**:SystemCapability.USB.USBManager
+
+| 名称   | 值   | 说明         |
+| ------ | ---- | ------------ |
+| NONE   | 0    | 无。         |
+| HOST   | 1    | 主设备角色。 |
+| DEVICE | 2    | 从设备角色。 |
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| USB_REQUEST_DIR_TO_DEVICE | 0 | 写数据,主设备往从设备。|
-| USB_REQUEST_DIR_FROM_DEVICE | 0x80 | 读数据,从设备往主设备。|
diff --git a/zh-cn/application-dev/reference/apis/js-apis-util.md b/zh-cn/application-dev/reference/apis/js-apis-util.md
index 3d100dcbe2556cd7b2aa0676d05877d1a9f0320e..284ed6b1fd24575280e07ec2c273d5fa2f58ea4e 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-util.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-util.md
@@ -60,7 +60,7 @@ getErrorString(errno: number): string
 
 **示例:**
   ```js
-  var errnum = 10; // 10:a system error number
+  var errnum = 10; // 10 : a system error number
   var result = util.getErrorString(errnum);
   console.log("result = " + result);
   ```
@@ -104,7 +104,7 @@ callbackWrapper(original: Function): (err: Object, value: Object )=&gt;void
 promiseWrapper(original: (err: Object, value: Object) =&gt; void): Object
 
 > **说明:**<br/>
-> 从API Version 9开始废弃,建议使用[util.promiseWrapper9+](#utilpromisewrapper9)替代。
+> 从API Version 9开始废弃,建议使用[util.promisify9+](#utilpromisify9)替代。
 
 对异步函数处理并返回一个promise的版本。
 
@@ -131,9 +131,9 @@ promiseWrapper(original: (err: Object, value: Object) =&gt; void): Object
   })
   ```
 
-## util.promiseWrapper<sup>9+</sup>
+## util.promisify<sup>9+</sup>
 
-promiseWrapper(original: (err: Object, value: Object) =&gt; void): Function
+promisify(original: (err: Object, value: Object) =&gt; void): Function
 
 对异步函数处理并返回一个promise的函数。
 
@@ -151,16 +151,16 @@ promiseWrapper(original: (err: Object, value: Object) =&gt; void): Function
 
 **示例:**
   ```js
-  function aysnFun(str1, str2, callback) {
-      if (typeof str1 === 'string' && typeof str2 === 'string') {
-          callback(null, str1 + str2);
-      } else {
-          callback('type err');
-      }
+  function aysnFun(str1, str2) {
+    if (typeof str1 === 'object' && typeof str2 === 'object') {
+      return str2
+    } else {
+      return str1
+    }
   }
-  let newPromiseObj = util.promiseWrapper(aysnFun);
-  newPromiseObj("Hello", 'World').then(res => {
-      console.log(res);
+  let newPromiseObj = util.promisify(aysnFun);
+  newPromiseObj({ err: "type error" }, {value:'HelloWorld'}).then(res => {
+    console.log(res);
   })
   ```
 
@@ -215,7 +215,7 @@ decode(input: Uint8Array, options?: { stream?: false }): string
 **参数:**
 | 参数名 | 类型 | 必填 | 说明 |
 | -------- | -------- | -------- | -------- |
-| input | Unit8Array | 是 | 符合格式需要解码的数组。 |
+| input | Uint8Array | 是 | 符合格式需要解码的数组。 |
 | options | Object | 否 | 解码相关选项参数。 |
 
   **表2** options
@@ -1910,8 +1910,7 @@ isExternal(value: Object): boolean
 **示例:**
   ```js
   var that = new util.types();
-  const data = util.createExternalType();
-  var result = that.isExternal(data);
+  var result = that.isExternal(true);
   ```
 
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md b/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md
index 535c50272bda24adad3d53bf78f20179de52cb0e..1e80088a9051d63bc368eaf24e6acdb6c25d7a0a 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md
@@ -191,13 +191,13 @@ getVolumeByUuid(uuid: string): Promise&lt;Volume&gt;
 **参数:**
 
   | 参数名   | 类型   | 必填 | 说明 |
-    | -------- | ------ | ---- | ---- |
+  | -------- | ------ | ---- | ---- |
   | uuid | string | 是   | 卷uuid |
 
 **返回值:**
 
   | 类型                               | 说明                       |
-    | ---------------------------------- | -------------------------- |
+  | ---------------------------------- | -------------------------- |
   | Promise&lt;[Volume](#volume)&gt; | 返回当前所有可获得的卷信息 |
 
 **示例:**
@@ -239,7 +239,7 @@ getVolumeByUuid(uuid: string, callback: AsyncCallback&lt;Volume&gt;): void
 
 ## volumemanager.getVolumeById
 
-getVolumeById(id: string): Promise&lt;Volume&gt;
+getVolumeById(volumeId: string): Promise&lt;Volume&gt;
 
 异步通过卷id获得卷信息,以promise方式返回。
 
@@ -251,7 +251,7 @@ getVolumeById(id: string): Promise&lt;Volume&gt;
 
   | 参数名    | 类型    | 必填  | 说明 |
   | -------- | ------ | ---- | ---- |
-  | id | string | 是   | 卷id |
+  | volumeId | string | 是   | 卷id |
 
 **返回值:**
 
@@ -262,8 +262,8 @@ getVolumeById(id: string): Promise&lt;Volume&gt;
 **示例:**
 
   ```js
-  let id = "";
-  volumemanager.getVolumeById(id).then(function(volume) {
+  let volumeId = "";
+  volumemanager.getVolumeById(volumeId).then(function(volume) {
       console.info("getVolumeById successfully:" + JSON.stringify(volume));
   }).catch(function(error){
       console.info("getVolumeById failed with error:"+ error);
@@ -272,7 +272,7 @@ getVolumeById(id: string): Promise&lt;Volume&gt;
 
 ## volumemanager.getVolumeById
 
-getVolumeById(id: string, callback: AsyncCallback&lt;Volume&gt;): void
+getVolumeById(volumeId: string, callback: AsyncCallback&lt;Volume&gt;): void
 
 异步通过卷id获得卷信息,以callback方式返回。
 
@@ -282,16 +282,16 @@ getVolumeById(id: string, callback: AsyncCallback&lt;Volume&gt;): void
 
 **参数:**
 
-  | 参数名    | 类型                                                 | 必填 | 说明                 |
-    | -------- | ------------------------------------------------ | ---- | -------------------- |
-  | id | string                                              | 是   | 卷id                 |
-  | callback | callback:AsyncCallback&lt;[Volume](#volume)&gt;  | 是   | 获取卷信息之后的回调 |
+  | 参数名   | 类型                      | 必填 | 说明                          |
+  | -------- | ------------------------- | ---- | ----------------------------- |
+  | volumeId | string                    | 是   | 卷id                |
+  | callback | callback:AsyncCallback&lt;[Volume](#volume)&gt; | 是   | 获取卷信息之后的回调  |
 
 **示例:**
 
   ```js
-  let id = "";
-  volumemanager.getVolumeById(id, (error, volume) => {
+  let volumeId = "";
+  volumemanager.getVolumeById(volumeId, (error, volume) => {
       // do something    
   });
   ```
@@ -361,7 +361,7 @@ setVolumeDescription(uuid: string, description: string, callback: AsyncCallback&
 
 ## volumemanager.format
 
-format(volId: string): Promise&lt;void&gt;
+format(volumeId: string, fsType: string): Promise&lt;void&gt;
 
 异步对指定卷进行格式化,以promise方式返回。
 
@@ -373,19 +373,21 @@ format(volId: string): Promise&lt;void&gt;
 
   | 参数名       | 类型   | 必填 | 说明 |
   | ----------- | ------ | ---- | ---- |
-  | volId    | string | 是   | 卷id |
+  | volumeId    | string | 是   | 卷id |
+  | fsType    | string | 是   | 文件系统类型 |
 
 **返回值:**
 
-  | 类型                    | 说明                       |
-    | --------------------- | ----------------------- |
-  | Promise&lt;void&gt; | 对指定卷进行格式化            |
+  | 类型                   | 说明       |
+  | ---------------------- | ---------- |
+  | Promise&lt;void&gt; | 对指定卷进行格式化 |
 
 **示例:**
 
   ```js
-  let volId = "";
-  volumemanager.format(volId).then(function() {
+  let volumeId = "";
+  let fsType = "";
+  volumemanager.format(volumeId, fsType).then(function() {
       console.info("format successfully");
   }).catch(function(error){
       console.info("format failed with error:"+ error);
@@ -394,7 +396,7 @@ format(volId: string): Promise&lt;void&gt;
 
 ## volumemanager.format
 
-format(volId: string, callback: AsyncCallback&lt;void&gt;): void
+format(volumeId: string, fsType: string, callback: AsyncCallback&lt;void&gt;): void
 
 异步对指定卷进行格式化,以callback方式返回。
 
@@ -404,23 +406,25 @@ format(volId: string, callback: AsyncCallback&lt;void&gt;): void
 
 **参数:**
 
-  | 参数名      | 类型                                     | 必填 | 说明              |
-    | -------- | --------------------------------------- | ---- | ---------------- |
-  | volId   | string                                  | 是   | 卷id            |
-  | callback   | callback:AsyncCallback&lt;void&gt;   | 是   | 对指定卷进行格式化  |
+  | 参数名   | 类型                      | 必填 | 说明                          |
+  | -------- | ------------------------- | ---- | ----------------------------- |
+  | volumeId | string                    | 是   | 卷id                |
+  | fsType    | string | 是   | 文件系统类型 |
+  | callback | callback:AsyncCallback&lt;void&gt;  | 是   | 对指定卷格式化后的回调  |
 
 **示例:**
 
   ```js
-  let volId = "";
-  volumemanager.format(volId, (error, bool) => {
+  let volumeId = "";
+  let fsType = "";
+  volumemanager.format(volumeId, fsType, (error, bool) => {
       // do something    
   });
   ```
 
 ## volumemanager.partition
 
-partition(volId: string, fstype: string): Promise&lt;void&gt;
+partition(diskId: string, type: number): Promise&lt;void&gt;
 
 异步对磁盘进行分区,以promise方式返回。
 
@@ -431,9 +435,9 @@ partition(volId: string, fstype: string): Promise&lt;void&gt;
 **参数:**
 
   | 参数名       | 类型   | 必填 | 说明 |
-    | ----------- | ------ | ---- | ---- |
-  | volId    | string | 是   | 卷所属的磁盘id |
-  | fstype      | string | 是   | 分区类型    |
+  | ----------- | ------ | ---- | ---- |
+  | diskId    | string | 是   | 卷所属的磁盘id |
+  | type      | number | 是   | 分区类型    |
 
 **返回值:**
 
@@ -444,9 +448,9 @@ partition(volId: string, fstype: string): Promise&lt;void&gt;
 **示例:**
 
   ```js
-  let volId = "";
-  let fstype = "";
-  volumemanager.partition(volId, fstype).then(function() {
+  let diskId = "";
+  let type = 0;
+  volumemanager.partition(diskId, type).then(function() {
       console.info("partition successfully");
   }).catch(function(error){
       console.info("partition failed with error:"+ error);
@@ -455,7 +459,7 @@ partition(volId: string, fstype: string): Promise&lt;void&gt;
 
 ## volumemanager.partition
 
-partition(volId: string, fstype : string, callback: AsyncCallback&lt;void&gt;): void
+partition(diskId: string, type: number, callback: AsyncCallback&lt;void&gt;): void
 
 异步对磁盘进行分区,以callback方式返回。
 
@@ -467,16 +471,16 @@ partition(volId: string, fstype : string, callback: AsyncCallback&lt;void&gt;):
 
   | 参数名      | 类型                                   | 必填 | 说明              |
   | -------- | --------------------------------------- | ---- | ---------------- |
-  | volId   | string                                  | 是   | 卷所属的磁盘id      |
-  | fstype     | string                                  | 是   | 分区类型           |
+  | diskId   | string                                  | 是   | 卷所属的磁盘id      |
+  | type     | number                                  | 是   | 分区类型           |
   | callback | callback:AsyncCallback&lt;void&gt;   | 是   | 对磁盘进行分区      |
 
 **示例:**
 
   ```js
-  let volId = "";
-  let fstype = "";
-  volumemanager.partition(volId, fstype, (error, bool) => {
+  let diskId = "";
+  let type = 0;
+  volumemanager.partition(diskId, type, (error, bool) => {
       // do something    
   });
   ```
@@ -491,6 +495,7 @@ partition(volId: string, fstype : string, callback: AsyncCallback&lt;void&gt;):
 | ----------- | ------- | -------------------- |
 | id          | string  | 卷id                 |
 | uuid        | string  | 卷uuid               |
+| diskId      | string  | 卷所属的磁盘id        |
 | description | string  | 卷相关描述           |
 | removable   | boolean | 是否为可移动存储设备 |
 | state       | number  | 当前卷状态           |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md
index 4a8a90137257be89ec32a2651130e15a6d94df77..a8a2ef957fda55a51383f73127df8edb805ba0b7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md
@@ -1,5 +1,7 @@
 # 壁纸
 
+壁纸管理服务是OpenHarmony中系统服务,是主题框架的部分组成,主要为系统提供壁纸管理服务能力,支持系统显示、设置、切换壁纸等功能。
+
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
 
@@ -389,7 +391,7 @@ reset(wallpaperType: WallpaperType): Promise&lt;void&gt;
 
 移除指定类型的壁纸,恢复为默认显示的壁纸。
 
-**需要权限:**ohos.permission.SET_WALLPAPER
+**需要权限**:ohos.permission.SET_WALLPAPER
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
@@ -422,7 +424,7 @@ setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, call
 
 将指定资源设置为指定类型的壁纸。
 
-**需要权限:** ohos.permission.SET_WALLPAPER
+**需要权限**:ohos.permission.SET_WALLPAPER
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
@@ -530,7 +532,7 @@ getFile(wallpaperType: WallpaperType, callback: AsyncCallback&lt;number&gt;): vo
 
 获取指定类型的壁纸文件。
 
-**需要权限**:ohos.permission.SET_WALLPAPER、ohos.permission.READ_USER_STORAGE
+**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
@@ -559,7 +561,7 @@ getFile(wallpaperType: WallpaperType): Promise&lt;number&gt;
 
 获取指定类型的壁纸文件。
 
-**需要权限:** ohos.permission.SET_WALLPAPER、ohos.permission.READ_USER_STORAGE
+**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
@@ -592,10 +594,12 @@ getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback&lt;image.Pixel
 
 获取壁纸图片的像素图。
 
-**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE
+**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
   | 参数名 | 类型 | 必填 | 说明 |
@@ -619,10 +623,12 @@ getPixelMap(wallpaperType: WallpaperType): Promise&lt;image.PixelMap&gt;
 
 获取壁纸图片的像素图。
 
-**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE
+**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE
 
 **系统能力**: SystemCapability.MiscServices.Wallpaper
 
+**系统API**:此接口为系统接口,三方应用不支持调用。
+
 **参数:**
 
   | 参数名 | 类型 | 必填 | 说明 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-wifi.md b/zh-cn/application-dev/reference/apis/js-apis-wifi.md
index 3e164fdca9aaa01222194bb704814a804bfaf3ce..36ca5c551e9b39b493de56f16df955595ea9a687 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-wifi.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-wifi.md
@@ -1,4 +1,5 @@
 # WLAN
+该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
@@ -10,11 +11,45 @@
 import wifi from '@ohos.wifi';
 ```
 
+## wifi.enableWifi
+
+enableWifi(): boolean
+
+使能WLAN。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。|
+
+
+## wifi.disableWifi
+
+disableWifi(): boolean
+
+去使能WLAN。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。|
+
+
 ## wifi.isWifiActive
 
 isWifiActive(): boolean
 
-查询WLAN是否已激活。
+查询WLAN是否已使能。
 
 **需要权限:** ohos.permission.GET_WIFI_INFO
 
@@ -23,7 +58,7 @@ isWifiActive(): boolean
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | boolean | true:已激活,&nbsp;false:未激活。 |
+  | boolean | true:已使能,&nbsp;false:未使能。 |
 
 
 ## wifi.scan
@@ -32,7 +67,7 @@ scan(): boolean
 
 启动WLAN扫描。
 
-**需要权限:** ohos.permission.SET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
@@ -46,32 +81,32 @@ scan(): boolean
 
 getScanInfos(): Promise&lt;Array&lt;WifiScanInfo&gt;&gt;
 
-获取扫描结果,使用promise方式作为异步方法。
+获取扫描结果,使用Promise异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO以及ohos.permission.GET_WIFI_PEERS_MAC和ohos.permission.LOCATION权限中的至少一个。
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&nbsp;&gt; | 返回扫描到的热点列表。 |
+  | Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&nbsp;&gt; | Promise对象。返回扫描到的热点列表。 |
 
 
 ## wifi.getScanInfos
 
 getScanInfos(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
 
-获取扫描结果,使用callback方式作为异步方法。
+获取扫描结果,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO以及ohos.permission.GET_WIFI_PEERS_MAC和ohos.permission.LOCATION权限中的至少一个。
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
 **参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&gt; | 是 | 扫描到的热点列表结果回调函数。 |
+  | callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&gt; | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 |
 
 **示例:**
   ```js
@@ -120,18 +155,21 @@ getScanInfos(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
 
 WLAN热点信息。
 
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
 | **参数名** | **类型** | **读写属性** | **说明** |
 | -------- | -------- | -------- | -------- |
 | ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 |
 | bssid | string | 只读 | 热点的BSSID。 |
 | capabilities | string | 只读 | 热点能力。 |
-| securityType | [WifiSecurityType](#WifiSecurityType) | 只读 | WLAN加密类型。 |
+| securityType | [WifiSecurityType](#wifisecuritytype) | 只读 | WLAN加密类型。 |
 | rssi | number | 只读 | 热点的信号强度(dBm)。 |
 | band | number | 只读 | WLAN接入点的频段。 |
 | frequency | number | 只读 | WLAN接入点的频率。 |
 | channelWidth | number | 只读 | WLAN接入点的带宽。 |
-| centerFrequency0 | number | 只读 | 中心频点。 |
-| centerFrequency1 | number | 只读 | 中心频点。 |
+| centerFrequency0<sup>9+</sup> | number | 只读 | 中心频点。 |
+| centerFrequency1<sup>9+</sup> | number | 只读 | 中心频点。 |
+| infoElems<sup>9+</sup> | Array&lt;[WifiInfoElem](#wifiinfoelem9)&gt; | 只读 | 信息元素。 |
 | timestamp | number | 只读 | 时间戳。 |
 
 
@@ -139,6 +177,8 @@ WLAN热点信息。
 
 表示加密类型的枚举。
 
+**系统能力:** SystemCapability.Communication.WiFi.Core
+
 | **名称** | **默认值** | **说明** |
 | -------- | -------- | -------- |
 | WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 |
@@ -146,48 +186,232 @@ WLAN热点信息。
 | WIFI_SEC_TYPE_WEP | 2 | Wired&nbsp;Equivalent&nbsp;Privacy&nbsp;(WEP)加密类型。 |
 | WIFI_SEC_TYPE_PSK | 3 | Pre-shared&nbsp;key&nbsp;(PSK)加密类型。 |
 | WIFI_SEC_TYPE_SAE | 4 | Simultaneous&nbsp;Authentication&nbsp;of&nbsp;Equals&nbsp;(SAE)加密类型。 |
+| WIFI_SEC_TYPE_EAP<sup>9+</sup> | 5 | EAP加密类型。 |
+| WIFI_SEC_TYPE_EAP_SUITE_B<sup>9+</sup> | 6 | Suite-B 192位加密类型。 |
+| WIFI_SEC_TYPE_OWE<sup>9+</sup> | 7 | 机会性无线加密类型。 |
+| WIFI_SEC_TYPE_WAPI_CERT<sup>9+</sup> | 8 | WAPI-Cert加密类型。 |
+| WIFI_SEC_TYPE_WAPI_PSK<sup>9+</sup> | 9 | WAPI-PSK加密类型。 |
 
 
-## wifi.addUntrustedConfig<sup>7+</sup>
+## WifiInfoElem<sup>9+</sup>
 
-addUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
+WLAN热点信息。
 
-添加不可信网络配置,使用promise方式作为异步方法。
+**系统能力:** SystemCapability.Communication.WiFi.STA
 
-**需要权限:**
-  ohos.permission.SET_WIFI_INFO
+| **参数名** | **类型** | **读写属性** | **说明** |
+| -------- | -------- | -------- | -------- |
+| eid | number | 只读 | 元素ID。 |
+| content | Uint8Array | 只读 | 元素内容。 |
 
-**系统能力:**
-  SystemCapability.Communication.WiFi.STA
+
+## WifiChannelWidth<sup>9+</sup>
+
+表示带宽类型的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| **名称** | **默认值** | **说明** |
+| -------- | -------- | -------- |
+| WIDTH_20MHZ | 0 | 20MHZ。 |
+| WIDTH_40MHZ | 1 | 40MHZ。 |
+| WIDTH_80MHZ | 2 | 80MHZ。 |
+| WIDTH_160MHZ | 3 | 160MHZ。 |
+| WIDTH_80MHZ_PLUS | 4 | 80MHZ<sup>+</sup>。 |
+| WIDTH_INVALID | 5 | 无效值 |
+
+
+## wifi.getScanInfosSync<sup>9+</sup>
+
+getScanInfosSync(): &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;
+
+获取扫描结果,使用同步方式返回结果。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt; | 扫描结果数组。 |
+
+
+## wifi.addDeviceConfig
+
+addDeviceConfig(config: WifiDeviceConfig): Promise&lt;number&gt;
+
+添加网络配置,使用Promise异步回调。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
 
 **参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | Promise&lt;boolean&gt; | 操作结果,ture: 成功, false: 失败。 |
+  | Promise&lt;number&gt; | Promise对象。返回添加的网络配置ID,如果值为-1表示添加失败。 |
 
 ## WifiDeviceConfig
 
 WLAN配置信息。
 
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
 | **参数名** | **类型** | **读写属性** | **说明** |
 | -------- | -------- | -------- | -------- |
 | ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 |
 | bssid | string | 只读 | 热点的BSSID。 |
 | preSharedKey | string | 只读 | 热点的密钥。 |
 | isHiddenSsid | boolean | 只读 | 是否是隐藏网络。 |
-| securityType | [WifiSecurityType](#WifiSecurityType) | 只读 | 加密类型。 |
+| securityType | [WifiSecurityType](#wifisecuritytype) | 只读 | 加密类型。 |
+| creatorUid | number | 只读 | 创建用户的ID,仅系统应用可用。 |
+| disableReason | number | 只读 | 禁用原因,仅系统应用可用。 |
+| netId | number | 只读 | 分配的网络ID, 仅系统应用可用。 |
+| randomMacType | number | 只读 | 随机MAC类型,仅系统应用可用。 |
+| randomMacAddr | string | 只读 | 随机MAC地址,仅系统应用可用。 |
+| ipType | [IpType](#iptype7) | 只读 | IP地址类型,仅系统应用可用。 |
+| staticIp | [IpConfig](#ipconfig7) | 只读 | 静态IP配置信息,仅系统应用可用。 |
+| eapConfig<sup>9+</sup> | [WifiEapConfig](#wifieapconfig9) | 只读 | 可扩展身份验证协议配置,仅系统应用可用。 |
+
+
+## IpType<sup>7+</sup>
+
+表示IP类型的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| STATIC | 0 | 静态IP。 |
+| DHCP | 1 | 通过DHCP获取。 |
+| UNKNOWN | 2 | 未指定。 |
+
+
+## IpConfig<sup>7+</sup>
+
+IP配置信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| **参数名** | **类型** | **读写属性** | **说明** |
+| -------- | -------- | -------- | -------- |
+| ipAddress | number | 只读 | IP地址。 |
+| gateway | number | 只读 | 网关。 |
+| dnsServers | number[] | 只读 | DNS服务器。 |
+| domains | Array&lt;string&gt; | 只读 | 域信息。 |
+
+
+## WifiEapConfig<sup>9+</sup>
+
+可扩展身份验证协议配置信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| **参数名** | **类型** | **读写属性** | **说明** |
+| -------- | -------- | -------- | -------- |
+| eapMethod | [EapMethod](#eapmethod9) | 只读 | EAP认证方式。 |
+| phase2Method | [Phase2Method](#phase2method9) | 只读 | 第二阶段认证方式。 |
+| identity | string | 只读 | 身份信息。 |
+| anonymousIdentity | string | 只读 | 匿名身份。 |
+| password | string | 只读 | 密码。 |
+| caCertAliases | string | 只读 | CA 证书别名。 |
+| caPath | string | 只读 | CA 证书路径。 |
+| clientCertAliases | string | 只读 | 客户端证书别名。 |
+| altSubjectMatch | string | 只读 | 替代主题匹配。 |
+| domainSuffixMatch | string | 只读 | 域后缀匹配。 |
+| realm | string | 只读 | 通行证凭证的领域。 |
+| plmn | string | 只读 | 公共陆地移动网的直通凭证提供商。 |
+| eapSubId | number | 只读 | SIM卡的子ID。 |
+
+
+## EapMethod<sup>9+</sup>
+
+表示EAP认证方式的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| EAP_NONE | 0 | 不指定。 |
+| EAP_PEAP | 1 | PEAP类型。 |
+| EAP_TLS | 2 | TLS类型。 |
+| EAP_TTLS | 3 | TTLS类型。 |
+| EAP_PWD | 4 | PWD类型。 |
+| EAP_SIM | 5 | SIM类型。 |
+| EAP_AKA | 6 | AKA类型。 |
+| EAP_AKA_PRIME | 7 | AKA Prime类型。 |
+| EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 |
+
+
+## Phase2Method<sup>9+</sup>
+
+表示第二阶段认证方式的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| PHASE2_NONE | 0 | 不指定。 |
+| PHASE2_PAP | 1 | PAP类型。 |
+| PHASE2_MSCHAP | 2 | MSCHAP类型。 |
+| PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 |
+| PHASE2_GTC | 4 | GTC类型。 |
+| PHASE2_SIM | 5 | SIM类型。 |
+| PHASE2_AKA | 6 | AKA类型。 |
+| PHASE2_AKA_PRIME | 7 | AKA Prime类型。 |
+
+
+## wifi.addDeviceConfig
+
+addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;number&gt;): void
+
+添加网络配置,使用callback异步回调。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+  | callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。当error为非0,表示处理出现错误。 |
+
+
+## wifi.addUntrustedConfig<sup>7+</sup>
+
+addUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
+
+添加不可信网络配置,使用Promise异步回调。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | Promise&lt;boolean&gt; | Promise对象。表示操作结果,true: 成功, false: 失败。 |
 
 
 ## wifi.addUntrustedConfig<sup>7+</sup>
 
 addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
 
-添加不可信网络配置,使用callback方式作为异步方法。
+添加不可信网络配置,使用callback异步回调。
 
 **需要权限:** ohos.permission.SET_WIFI_INFO
 
@@ -196,15 +420,15 @@ addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&
 **参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 |
-  | callback | AsyncCallback&lt;boolean&gt; | 是 | 操作结果,ture: 成功, false: 失败。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 |
 
 
 ## wifi.removeUntrustedConfig<sup>7+</sup>
 
 removeUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
 
-移除不可信网络配置,使用promise方式作为异步方法。
+移除不可信网络配置,使用Promise异步回调。
 
 **需要权限:** ohos.permission.SET_WIFI_INFO
 
@@ -213,19 +437,19 @@ removeUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
 **参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | Promise&lt;boolean&gt; | 操作结果,ture: 成功, false: 失败。 |
+  | Promise&lt;boolean&gt; | Promise对象。表示操作结果,true: 成功, false: 失败。 |
 
 
 ## wifi.removeUntrustedConfig<sup>7+</sup>
 
 removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
 
-移除不可信网络配置,使用callback方式作为异步方法。
+移除不可信网络配置,使用callback异步回调。
 
 **需要权限:** ohos.permission.SET_WIFI_INFO
 
@@ -234,364 +458,892 @@ removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boole
 **参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 |
-  | callback | AsyncCallback&lt;boolean&gt; | 是 | 操作结果,ture: 成功, false: 失败。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 |
 
 
-## wifi.getSignalLevel
+## wifi.addCandidateConfig<sup>9+</sup>
 
-getSignalLevel(rssi: number, band: number): number
+addCandidateConfig(config: WifiDeviceConfig): Promise&lt;number&gt;
 
-查询WLAN信号强度。
+添加候选网络配置,使用Promise异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.SET_WIFI_INFO
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
-**参数:**:
+**参数:**
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | rssi | number | 是 | 热点的信号强度(dBm)。 |
-  | band | number | 是 | WLAN接入点的频段。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | number | 信号强度,取值范围为[0,&nbsp;4]。 |
+  | Promise&lt;number&gt; | Promise对象。表示网络配置ID。 |
 
 
-## wifi.getLinkedInfo
+## wifi.addCandidateConfig<sup>9+</sup>
 
-getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;
+addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;number&gt;): void
 
-获取WLAN连接信息,使用promise方式作为异步方法。
+添加不可信网络配置,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.SET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+  | callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 |
+
+
+## wifi.removeCandidateConfig<sup>9+</sup>
+
+removeCandidateConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
+
+移除候选候选网络配置,使用Promise异步回调。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+
 **返回值:**
-  | 类型 | 说明 |
+  | **类型** | **说明** |
   | -------- | -------- |
-  | Promise&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | WLAN连接的相关信息。 |
+  | Promise&lt;void&gt; | Promise对象。返回操作结果,true: 成功, false |
 
 
-## wifi.getLinkedInfo
+## wifi.removeCandidateConfig<sup>9+</sup>
 
-getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
+removeCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
 
-获取WLAN连接信息,使用callback方式作为异步方法。
+移除候选网络配置,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.SET_WIFI_INFO
 
 **系统能力:** SystemCapability.Communication.WiFi.STA
 
 **参数:**
-  | 参数名 | 类型 | 必填 | 说明 |
+  | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiLinkedInfo](#WifiLinkedInfo)&gt; | 是 | WLAN连接信息结果回调函数。 |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 |
 
-**示例:**
-  ```js
-  import wifi from '@ohos.wifi';
-  
-  wifi.getLinkedInfo((err, data) => {
-      if (err) {
-          console.error("get linked info error");
-          return;
-      }
-      console.info("get wifi linked info: " + JSON.stringify(data));
-  });
-  
-  wifi.getLinkedInfo().then(data => {
-      console.info("get wifi linked info: " + JSON.stringify(data));
-  }).catch(error => {
-      console.info("get linked info error");
-  });
-  ```
 
+## wifi.getCandidateConfigs<sup>9+</sup>
 
-## WifiLinkedInfo
+getCandidateConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt;
 
-提供WLAN连接的相关信息。
+获取候选网络配置。
 
-| 参数名 | 类型 | 读写属性 | 说明 |
-| -------- | -------- | -------- | -------- |
-| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 |
-| bssid | string | 只读 | 热点的BSSID。 |
-| rssi | number | 只读 | 热点的信号强度(dBm)。 |
-| band | number | 只读 | WLAN接入点的频段。 |
-| linkSpeed | number | 只读 | WLAN接入点的速度。 |
-| frequency | number | 只读 | WLAN接入点的频率。 |
-| isHidden | boolean | 只读 | WLAN接入点是否是隐藏网络。 |
-| isRestricted | boolean | 只读 | WLAN接入点是否限制数据量。 |
-| macAddress | string | 只读 | 设备的MAC地址。 |
-| ipAddress | number | 只读 | WLAN连接的IP地址。 |
-| connState | [ConnState](#ConnState) | 只读 | WLAN连接状态。 |
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt; | 候选网络配置数组。 |
+
+
+## wifi.connectToCandidateConfig<sup>9+</sup>
+
+connectToCandidateConfig(networkId: number): boolean
+
+连接到候选网络。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | networkId | number | 是 | 候选网络配置的ID。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.connectToNetwork
+
+connectToNetwork(networkId: number): boolean
+
+连接到指定网络。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | networkId | number | 是 | 待连接的网络配置ID。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.connectToDevice
+
+connectToDevice(config: WifiDeviceConfig): boolean
+
+连接到指定网络。
+此接口为系统接口。
+
+**需要权限:**
+  ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 和 ohos.permissio.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:**
+  SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.disconnect
+
+disconnect(): boolean
+
+连接到指定网络。
+此接口为系统接口。
+
+**需要权限:**
+  ohos.permission.SET_WIFI_INFO 和 ohos.permissio.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:**
+  SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.getSignalLevel
+
+getSignalLevel(rssi: number, band: number): number
+
+查询WLAN信号强度。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**:
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | rssi | number | 是 | 热点的信号强度(dBm)。 |
+  | band | number | 是 | WLAN接入点的频段。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | number | 信号强度,取值范围为[0,&nbsp;4]。 |
+
+
+## wifi.getLinkedInfo
+
+getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;
+
+获取WLAN连接信息,使用Promise异步回调。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | Promise对象。表示WLAN连接信息。 |
+
+
+## wifi.getLinkedInfo
+
+getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
+
+获取WLAN连接信息,使用callback异步回调。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果error为非0,表示处理出现错误。 |
+
+**示例:**
+  ```js
+  import wifi from '@ohos.wifi';
+  
+  wifi.getLinkedInfo((err, data) => {
+      if (err) {
+          console.error("get linked info error");
+          return;
+      }
+      console.info("get wifi linked info: " + JSON.stringify(data));
+  });
+  
+  wifi.getLinkedInfo().then(data => {
+      console.info("get wifi linked info: " + JSON.stringify(data));
+  }).catch(error => {
+      console.info("get linked info error");
+  });
+  ```
+
+
+## WifiLinkedInfo
+
+提供WLAN连接的相关信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 参数名 | 类型 | 读写属性 | 说明 |
+| -------- | -------- | -------- | -------- |
+| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 |
+| bssid | string | 只读 | 热点的BSSID。 |
+| networkId | number | 只读 | 网络配置ID, 仅系统应用可用。 |
+| rssi | number | 只读 | 热点的信号强度(dBm)。 |
+| band | number | 只读 | WLAN接入点的频段。 |
+| linkSpeed | number | 只读 | WLAN接入点的速度。 |
+| frequency | number | 只读 | WLAN接入点的频率。 |
+| isHidden | boolean | 只读 | WLAN接入点是否是隐藏网络。 |
+| isRestricted | boolean | 只读 | WLAN接入点是否限制数据量。 |
+| chload | number | 只读 | 连接负载,值越大表示负载约高,仅系统应用可用。 |
+| snr | number | 只读 | 信噪比,仅系统应用可用。 |
+| macType<sup>9+</sup> | number | 只读 | MAC地址类型。 |
+| macAddress | string | 只读 | 设备的MAC地址。 |
+| ipAddress | number | 只读 | WLAN连接的IP地址。 |
+| suppState | [SuppState](#suppstate) | 只读 | 请求状态,仅系统应用可用。|
+| connState | [ConnState](#connstate) | 只读 | WLAN连接状态。 |
+
+
+## ConnState
+
+表示WLAN连接状态的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| SCANNING | 0 | 设备正在搜索可用的AP。 |
+| CONNECTING | 1 | 正在建立WLAN连接。 |
+| AUTHENTICATING | 2 | WLAN连接正在认证中。 |
+| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 |
+| CONNECTED | 4 | WLAN连接已建立。 |
+| DISCONNECTING | 5 | WLAN连接正在断开。 |
+| DISCONNECTED | 6 | WLAN连接已断开。 |
+| UNKNOWN | 7 | WLAN连接建立失败。 |
+
+
+## SuppState
+
+表示请求状态的枚举。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| DISCONNECTED | 0 | 已断开。 |
+| INTERFACE_DISABLED | 1 | 接口禁用。 |
+| INACTIVE | 2 | 未激活。 |
+| SCANNING | 3 | 扫描中。 |
+| AUTHENTICATING | 4 | 认证中。 |
+| ASSOCIATING | 5 | 关联中。 |
+| ASSOCIATED | 6 | 已关联。 |
+| FOUR_WAY_HANDSHAKE | 7 | 四次握手。 |
+| GROUP_HANDSHAKE | 8 | 组握手。 |
+| COMPLETED | 9 | 所有认证已完成。 |
+| UNINITIALIZED | 10 | 连接建立失败。 |
+| INVALID | 11 | 无效值。 |
+
+
+## wifi.isConnected<sup>7+</sup>
+
+isConnected(): boolean
+
+查询WLAN是否已连接。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:已连接,&nbsp;false:未连接。 |
+
+
+## wifi.getSupportedFeatures<sup>7+</sup>
+
+getSupportedFeatures(): number
+
+查询设备支持的特性。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.Core
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | number | 支持的特性值。 |
+
+**特性ID值枚举:**
+
+| 枚举值 | 说明 |
+| -------- | -------- |
+| 0x0001 | 基础结构模式特性。 |
+| 0x0002 | 5&nbsp;GHz带宽特性。 |
+| 0x0004 | GAS/ANQP特性。 |
+| 0x0008 | Wifi-Direct特性。 |
+| 0x0010 | Soft&nbsp;AP特性。 |
+| 0x0040 | Wi-Fi&nbsp;AWare组网特性。 |
+| 0x8000 | AP&nbsp;STA共存特性。 |
+| 0x8000000 | WPA3-Personal&nbsp;SAE特性。 |
+| 0x10000000 | WPA3-Enterprise&nbsp;Suite-B |
+| 0x20000000 | 增强开放特性。 |
+
+
+## wifi.isFeatureSupported<sup>7+</sup>
+
+isFeatureSupported(featureId: number): boolean
+
+判断设备是否支持相关WLAN特性。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.Core
+
+**参数:**
+
+  | **参数名** | **类型** | 必填 | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | featureId | number | 是 | 特性ID值。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:支持,&nbsp;false:不支持。 |
+
+
+## wifi.getDeviceMacAddress<sup>7+</sup>
+
+getDeviceMacAddress(): string[]
+
+获取设备的MAC地址。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_WIFI_LOCAL_MAC 和 ohos.permission.GET_WIFI_INFO,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | string[] | MAC地址。 |
+
+
+## wifi.getIpInfo<sup>7+</sup>
+
+getIpInfo(): IpInfo
+
+获取IP信息。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | [IpInfo](#ipinfo7) | IP信息。 |
+
+
+## IpInfo<sup>7+</sup>
+
+IP信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+| **参数名** | **类型** | **读写属性** | **说明** |
+| -------- | -------- | -------- | -------- |
+| ipAddress | number | 只读 | IP地址。 |
+| gateway | number | 只读 | 网关。 |
+| netmask | number | 只读 | 掩码。 |
+| primaryDns | number | 只读 | 主DNS服务器IP地址。 |
+| secondDns | number | 只读 | 备DNS服务器IP地址。 |
+| serverIp | number | 只读 | DHCP服务端IP地址。 |
+| leaseDuration | number | 只读 | IP地址租用时长。 |
+
+
+## wifi.getCountryCode<sup>7+</sup>
+
+getCountryCode(): string
+
+获取国家码信息。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.Core
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | string | 国家码。 |
+
+
+## wifi.reassociate<sup>7+</sup>
+
+reassociate(): boolean
+
+重新关联网络。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.reconnect<sup>7+</sup>
+
+reconnect(): boolean
+
+重新连接网络。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.getDeviceConfigs<sup>7+</sup>
+
+getDeviceConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt;
+
+获取网络配置。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.GET_WIFI_CONFIG
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt; | 网络配置信息的数组。 |
+
+
+## wifi.updateNetwork<sup>7+</sup>
+
+updateNetwork(config: WifiDeviceConfig): boolean
+
+更新网络配置。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.disableNetwork<sup>7+</sup>
+
+disableNetwork(netId: number): boolean
+
+去使能网络配置。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | netId | number | 是 | 网络配置ID。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.removeAllNetwork<sup>7+</sup>
+
+removeAllNetwork(): boolean
+
+移除所有网络配置。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.removeDevice<sup>7+</sup>
+
+removeDevice(id: number): boolean
+
+移除指定的网络配置。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.STA
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | id | number | 是 | 网络配置ID。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
+## wifi.enableHotspot<sup>7+</sup>
+
+enableHotspot(): boolean
+
+使能热点。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。|
 
 
-## ConnState
+## wifi.disableHotspot<sup>7+</sup>
 
-表示WLAN连接状态的枚举。
+disableHotspot(): boolean
 
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| SCANNING | 0 | 设备正在搜索可用的AP。 |
-| CONNECTING | 1 | 正在建立WLAN连接。 |
-| AUTHENTICATING | 2 | WLAN连接正在认证中。 |
-| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 |
-| CONNECTED | 4 | WLAN连接已建立。 |
-| DISCONNECTING | 5 | WLAN连接正在断开。 |
-| DISCONNECTED | 6 | WLAN连接已断开。 |
-| UNKNOWN | 7 | WLAN连接建立失败。 |
+去使能热点。
+此接口为系统接口。
 
+**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。
 
-## wifi.isConnected<sup>7+</sup>
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
-isConnected(): boolean
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。|
 
-查询WLAN是否已连接。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+## wifi.isHotspotDualBandSupported<sup>7+</sup>
 
-**系统能力:** SystemCapability.Communication.WiFi.STA
+isHotspotDualBandSupported(): boolean
+
+热点是否支持双频。
+此接口为系统接口。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | boolean | true:已连接,&nbsp;false:未连接。 |
+  | boolean | true:支持,&nbsp;false:不支持。|
 
 
-## wifi.isFeatureSupported<sup>7+</sup>
+## wifi.isHotspotActive<sup>7+</sup>
 
-isFeatureSupported(featureId: number): boolean
+isHotspotActive(): boolean
 
-判断设备是否支持相关WLAN特性。
+热点是否已使能。
+此接口为系统接口。
 
 **需要权限:** ohos.permission.GET_WIFI_INFO
 
-**系统能力:** SystemCapability.Communication.WiFi.Core
-
-**参数:**
-
-  | **参数名** | **类型** | 必填 | **说明** |
-  | -------- | -------- | -------- | -------- |
-  | featureId | number | 是 | 特性ID值。 |
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | boolean | true:支持,&nbsp;false:不支持。 |
-
-**特性ID值枚举:**
+  | boolean | true:已使能,&nbsp;false:未使能。|
 
-| 枚举值 | 说明 |
-| -------- | -------- |
-| 0x0001 | 基础结构模式特性。 |
-| 0x0002 | 5&nbsp;GHz带宽特性。 |
-| 0x0004 | GAS/ANQP特性。 |
-| 0x0008 | Wifi-Direct特性。 |
-| 0x0010 | Soft&nbsp;AP特性。 |
-| 0x0040 | Wi-Fi&nbsp;AWare组网特性。 |
-| 0x8000 | AP&nbsp;STA共存特性。 |
-| 0x8000000 | WPA3-Personal&nbsp;SAE特性。 |
-| 0x10000000 | WPA3-Enterprise&nbsp;Suite-B |
-| 0x20000000 | 增强开放特性。 |
 
+## wifi.setHotspotConfig<sup>7+</sup>
 
-## wifi.getIpInfo<sup>7+</sup>
+setHotspotConfig(config: HotspotConfig): boolean
 
-getIpInfo(): IpInfo
+设置热点配置信息。
+此接口为系统接口。
 
-获取IP信息。
+**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
-**系统能力:** SystemCapability.Communication.WiFi.STA
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | config | [HotspotConfig](#hotspotconfig7) | 是 | 热点配置信息。 |
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | [IpInfo](#IpInfo) | IP信息。 |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
 
 
-## IpInfo<sup>7+</sup>
+## HotspotConfig<sup>7+</sup>
 
-IP信息。
+热点配置信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
 | **参数名** | **类型** | **读写属性** | **说明** |
 | -------- | -------- | -------- | -------- |
-| ipAddress | number | 只读 | IP地址。 |
-| gateway | number | 只读 | 网关。 |
-| netmask | number | 只读 | 掩码。 |
-| primaryDns | number | 只读 | 主DNS服务器IP地址。 |
-| secondDns | number | 只读 | 备DNS服务器IP地址。 |
-| serverIp | number | 只读 | DHCP服务端IP地址。 |
-| leaseDuration | number | 只读 | IP地址租用时长。 |
+| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 |
+| securityType | [WifiSecurityType](#wifisecuritytype) | 只读 | 加密类型。 |
+| band | number | 只读 | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 |
+| preSharedKey | string | 只读 | 热点的密钥。 |
+| maxConn | number | 只读 | 最大设备连接数。 |
 
 
-## wifi.getCountryCode<sup>7+</sup>
+## wifi.getHotspotConfig<sup>7+</sup>
 
-getCountryCode(): string
+getHotspotConfig(): HotspotConfig
 
-获取国家码信息。
+获取热点配置信息。
+此接口为系统接口。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
 
-**系统能力:** SystemCapability.Communication.WiFi.Core
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
 **返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
-  | string | 国家码。 |
+  | [HotspotConfig](#hotspotconfig7) | 热点的配置信息。 |
 
 
-## wifi.getP2pLinkedInfo<sup>8+</sup>
+## wifi.getStations<sup>7+</sup>
 
-getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;
+getStations(): &nbsp;Array&lt;[StationInfo](#stationinfo7)&gt;
 
-获取P2P连接信息,使用promise方式作为异步方法。
+获取连接的设备。
+此接口为系统接口。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。
 
-**系统能力:** SystemCapability.Communication.WiFi.P2P
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
 
 **返回值:**
-  | 类型 | 说明 |
+  | **类型** | **说明** |
   | -------- | -------- |
-  | Promise&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | P2P连接信息。 |
+  | &nbsp;Array&lt;[StationInfo](#stationinfo7)&gt; | 连接的设备数组。 |
+
+
+## StationInfo<sup>7+</sup>
+
+接入的设备信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.AP.Core
+
+| **参数名** | **类型** | **读写属性** | **说明** |
+| -------- | -------- | -------- | -------- |
+| name | string | 只读 | 设备名称。 |
+| macAddress | string | 只读 | MAC地址。 |
+| ipAddress | string | 只读 | IP地址。 |
 
 
 ## wifi.getP2pLinkedInfo<sup>8+</sup>
 
-getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void
+getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;
 
-获取P2P连接信息,使用callback方式作为异步方法。
+获取P2P连接信息,使用Promise异步回调。
 
 **需要权限:** ohos.permission.GET_WIFI_INFO
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
-**参数:**
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | 是 | P2P连接信息结果回调函数。 |
+**返回值:**
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | Promise对象。表示P2P连接信息。 |
+
 
 
 ## WifiP2pLinkedInfo<sup>8+</sup>
 
 提供WLAN连接的相关信息。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 参数名 | 类型 | 读写属性 | 说明 |
 | -------- | -------- | -------- | -------- |
-| connectState | [P2pConnectState](#P2pConnectState) | 只读 | P2P连接状态。 |
-| isGroupOwner | boolean | 只读 | 是否是群组。 |
-| groupOwnerAddr | string | 只读 | 群组MAC地址。 |
+| connectState | [P2pConnectState](#p2pconnectstate8) | 只读 | P2P连接状态。 |
+| isGroupOwner | boolean | 只读 | 是否是群主。 |
+| groupOwnerAddr | string | 只读 | 群组MAC地址。 
 
 
 ## P2pConnectState<sup>8+</sup>
 
 表示P2P连接状态的枚举。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | DISCONNECTED | 0 | 断开状态。 |
 | CONNECTED | 1 | 连接状态。 |
 
 
+## wifi.getP2pLinkedInfo<sup>8+</sup>
+
+getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void
+
+获取P2P连接信息,使用callback异步回调。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+**参数:**
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果error为非0,表示处理出现错误。 |
+
+
 ## wifi.getCurrentGroup<sup>8+</sup>
 
 getCurrentGroup(): Promise&lt;WifiP2pGroupInfo&gt;
 
-获取P2P当前组信息,使用promise方式作为异步方法。
+获取P2P当前组信息,使用Promise异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | Promise&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | 当前组信息。 |
+  | Promise&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt; | Promise对象。表示当前组信息。 |
 
 
 ## wifi.getCurrentGroup<sup>8+</sup>
 
 getCurrentGroup(callback: AsyncCallback&lt;WifiP2pGroupInfo&gt;): void
 
-获取P2P当前组信息,使用callback方式作为异步方法。
+获取P2P当前组信息,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt; | 是 | 当前组信息的回调函数。 |
+  | callback | AsyncCallback&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。 |
 
-## wifi.getP2pGroups<sup>9+</sup>
 
-getP2pGroups(): Promise&lt;Array&lt;WifiP2pGroupInfo&gt;
+## wifi.getP2pPeerDevices<sup>8+</sup>
+
+getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;
 
-获取P2P当前创建的所有群组信息,使用promise方式作为异步方法。
+获取P2P对端设备列表信息,使用Promise异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | Promise&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt;&nbsp;&gt; | 当前创建的所有群组信息。 |
+  | Promise&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | Promise对象。表示对端设备列表信息。 |
 
-## wifi.getP2pGroups<sup>9+</sup>
 
-getP2pGroups(callback: AsyncCallback&lt;Array&lt;WifiP2pGroupInfo&gt;): void
+## wifi.getP2pPeerDevices<sup>8+</sup>
+
+getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void
 
-获取P2P当前创建的所有群组信息,使用callback方式作为异步方法。
+获取P2P对端设备列表信息,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#WifiP2pGroupInfo)&gt;&gt; | 是 | 当前创建的所有群组信息的回调函数。 |
-
-## WifiP2pGroupInfo<sup>8+</sup>
-
-表示P2P群组相关信息。
+  | callback | AsyncCallback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果error为非0,表示处理出现错误。 |
 
-| 参数名 | 类型 | 读写属性 | 说明 |
-| -------- | -------- | -------- | -------- |
-| isP2pGo | boolean | 只读 | 是否是群组。 |
-| ownerInfo | [WifiP2pDevice](#WifiP2pDevice) | 只读 | 群组的设备信息。 |
-| passphrase | string | 只读 | 群组密钥。 |
-| interface | string | 只读 | 接口名称。 |
-| groupName | string | 只读 | 群组名称。 |
-| networkId | number | 只读 | 网络ID。 |
-| frequency | number | 只读 | 群组的频率。 |
-| clientDevices | [WifiP2pDevice[]](#WifiP2pDevice) | 只读 | 接入的设备列表信息。 |
-| goIpAddress | string | 只读 | 群组IP地址。 |
 
 ## WifiP2pDevice<sup>8+</sup>
 
 表示P2P设备信息。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 参数名 | 类型 | 读写属性 | 说明 |
 | -------- | -------- | -------- | -------- |
 | deviceName | string | 只读 | 设备名称。 |
 | deviceAddress | string | 只读 | 设备MAC地址。 |
 | primaryDeviceType | string | 只读 | 主设备类型。 |
-| deviceStatus | [P2pDeviceStatus](#P2pDeviceStatus) | 只读 | 设备状态。 |
+| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus8) | 只读 | 设备状态。 |
 | groupCapabilitys | number | 只读 | 群组能力。 |
 
+
 ## P2pDeviceStatus<sup>8+</sup>
 
 表示设备状态的枚举。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | CONNECTED | 0 | 连接状态。 |
@@ -601,71 +1353,41 @@ getP2pGroups(callback: AsyncCallback&lt;Array&lt;WifiP2pGroupInfo&gt;): void
 | UNAVAILABLE | 4 | 不可用状态。 |
 
 
-## wifi.getP2pPeerDevices<sup>8+</sup>
-
-getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;
-
-获取P2P对端设备列表信息,使用promise方式作为异步方法。
-
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
-
-**系统能力:** SystemCapability.Communication.WiFi.P2P
-
-**返回值:**
-  | 类型 | 说明 |
-  | -------- | -------- |
-  | Promise&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | 对端设备列表信息。 |
-
-
-## wifi.getP2pPeerDevices<sup>8+</sup>
-
-getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void
-
-获取P2P对端设备列表信息,使用callback方式作为异步方法。
-
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
-
-**系统能力:** SystemCapability.Communication.WiFi.P2P
-
-**参数:**
-  | 参数名 | 类型 | 必填 | 说明 |
-  | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | 是 | 对端设备列表信息回调函数。 |
-
 ## wifi.getP2pLocalDevice<sup>9+</sup>
 
 getP2pLocalDevice(): Promise&lt;WifiP2pDevice&gt;
 
-获取P2P本端设备信息,使用promise方式作为异步方法。
+获取P2P本端设备信息,使用Promise异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.GET_WIFI_CONFIG
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | Promise&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | 本端设备信息。 |
+  | Promise&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | Promise对象。表示本端设备信息。 |
 
 
-## wifi.getP2pLocalDevice<sup>8+</sup>
+## wifi.getP2pLocalDevice<sup>9+</sup>
 
 getP2pLocalDevice(callback: AsyncCallback&lt;WifiP2pDevice&gt;): void
 
-获取P2P本端设备信息,使用callback方式作为异步方法。
+获取P2P本端设备信息,使用callback异步回调。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.GET_WIFI_CONFIG
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
 **参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | 是 | 本端设备信息回调函数。 |
+  | callback | AsyncCallback&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示本端设备信息。如果error为非0,表示处理出现错误。 |
+
 
 ## wifi.createGroup<sup>8+</sup>
 
-createGroup(config: WifiP2PConfig): boolean;
+createGroup(config: WifiP2PConfig): boolean
 
 创建群组。
 
@@ -677,39 +1399,45 @@ createGroup(config: WifiP2PConfig): boolean;
 
   | **参数名** | **类型** | 必填 | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiP2PConfig](#WifiP2PConfig) | 是 | 群组配置信息。 |
+  | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 群组配置信息。 |
 
 **返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
   | boolean | true:创建群组操作执行成功,&nbsp;false:创建群组操作执行失败。 |
 
+
 ## WifiP2PConfig<sup>8+</sup>
 
 表示P2P配置信息。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 参数名 | 类型 | 读写属性 | 说明 |
 | -------- | -------- | -------- | -------- |
 | deviceAddress | string | 只读 | 设备地址。 |
 | netId | number | 只读 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 |
 | passphrase | string | 只读 | 群组密钥。 |
 | groupName | string | 只读 | 群组名称。 |
-| goBand | [GroupOwnerBand](#GroupOwnerBand) | 只读 | 群组带宽。 |
+| goBand | [GroupOwnerBand](#groupownerband8) | 只读 | 群组带宽。 |
 
 
 ## GroupOwnerBand<sup>8+</sup>
 
 表示群组带宽的枚举。
 
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | GO_BAND_AUTO | 0 | 自动模式。 |
 | GO_BAND_2GHZ | 1 | 2GHZ。 |
 | GO_BAND_5GHZ | 2 | 5GHZ。 |
 
+
 ## wifi.removeGroup<sup>8+</sup>
 
-removeGroup(): boolean;
+removeGroup(): boolean
 
 移除群组。
 
@@ -725,11 +1453,11 @@ removeGroup(): boolean;
 
 ## wifi.p2pConnect<sup>8+</sup>
 
-p2pConnect(config: WifiP2PConfig): boolean;
+p2pConnect(config: WifiP2PConfig): boolean
 
 执行P2P连接。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
@@ -737,7 +1465,7 @@ p2pConnect(config: WifiP2PConfig): boolean;
 
   | **参数名** | **类型** | 必填 | **说明** |
   | -------- | -------- | -------- | -------- |
-  | config | [WifiP2PConfig](#WifiP2PConfig) | 是 | 连接配置信息。 |
+  | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 连接配置信息。 |
 
 **返回值:**
   | 类型 | 说明 |
@@ -792,7 +1520,7 @@ p2pConnect(config: WifiP2PConfig): boolean;
   }
   wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
   
-  var recvP2pPersistentGroupChangeFunc = result => {
+  var recvP2pPersistentGroupChangeFunc = () => {
       console.info("p2p persistent group change receive event");
   
       wifi.getCurrentGroup((err, data) => {
@@ -814,7 +1542,7 @@ p2pConnect(config: WifiP2PConfig): boolean;
 
 ## wifi.p2pCancelConnect<sup>8+</sup>
 
-p2pCancelConnect(): boolean;
+p2pCancelConnect(): boolean
 
 取消P2P连接。
 
@@ -825,16 +1553,16 @@ p2pCancelConnect(): boolean;
 **返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | boolean | true:取消连接操作执行成功,&nbsp;false:取消连接操作执行失败。 |
+  | boolean | true:操作执行成功,&nbsp;false:操作执行失败。 |
 
 
 ## wifi.startDiscoverDevices<sup>8+</sup>
 
-startDiscoverDevices(): boolean;
+startDiscoverDevices(): boolean
 
 开始发现设备。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
@@ -846,7 +1574,7 @@ startDiscoverDevices(): boolean;
 
 ## wifi.stopDiscoverDevices<sup>8+</sup>
 
-stopDiscoverDevices(): boolean;
+stopDiscoverDevices(): boolean
 
 停止发现设备。
 
@@ -860,6 +1588,103 @@ stopDiscoverDevices(): boolean;
   | boolean | true:操作执行成功,操作执行失败。 |
 
 
+## wifi.deletePersistentGroup<sup>8+</sup>
+
+deletePersistentGroup(netId: number): boolean
+
+删除永久组。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+**参数:**
+
+  | **参数名** | **类型** | 必填 | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | netId | number | 是 | 组的ID。 |
+
+**返回值:**
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | boolean | true:操作执行成功,操作执行失败。 |
+
+
+## wifi.getP2pGroups<sup>9+</sup>
+此接口为系统接口。
+
+getP2pGroups(): Promise&lt;Array&lt;WifiP2pGroupInfo&gt;&gt;
+
+获取创建的所有P2P群组信息,使用Promise异步回调。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+**返回值:**
+  | 类型 | 说明 |
+  | -------- | -------- |
+  | Promise&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt;&nbsp;&gt; | Promise对象。表示所有群组信息。 |
+
+
+## WifiP2pGroupInfo<sup>8+</sup>
+
+表示P2P群组相关信息。
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+| 参数名 | 类型 | 读写属性 | 说明 |
+| -------- | -------- | -------- | -------- |
+| isP2pGo | boolean | 只读 | 是否是群主。 |
+| ownerInfo | [WifiP2pDevice](#wifip2pdevice8) | 只读 | 群组的设备信息。 |
+| passphrase | string | 只读 | 群组密钥。 |
+| interface | string | 只读 | 接口名称。 |
+| groupName | string | 只读 | 群组名称。 |
+| networkId | number | 只读 | 网络ID。 |
+| frequency | number | 只读 | 群组的频率。 |
+| clientDevices | [WifiP2pDevice[]](#wifip2pdevice8) | 只读 | 接入的设备列表信息。 |
+| goIpAddress | string | 只读 | 群组IP地址。 |
+
+
+## wifi.getP2pGroups<sup>9+</sup>
+
+getP2pGroups(callback: AsyncCallback&lt;Array&lt;WifiP2pGroupInfo&gt;&gt;): void
+
+获取创建的所有P2P群组信息,使用callback方式作为异步方法。
+
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+**参数:**
+  | 参数名 | 类型 | 必填 | 说明 |
+  | -------- | -------- | -------- | -------- |
+  | callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt;&gt; | 是 | 回调函数。当操作成功时,err为0,data表示所有群组信息。如果error为非0,表示处理出现错误。 |
+
+
+## wifi.setDeviceName<sup>8+</sup>
+
+setDeviceName(devName: string): boolean
+
+设置设备名称。
+此接口为系统接口。
+
+**需要权限:**
+  ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
+
+**系统能力:** SystemCapability.Communication.WiFi.P2P
+
+**参数:**
+  | **参数名** | **类型** | **必填** | **说明** |
+  | -------- | -------- | -------- | -------- |
+  | devName | string | 是 | 设备名称。 |
+
+**返回值:**
+  | **类型** | **说明** |
+  | -------- | -------- |
+  | boolean | true:操作成功,&nbsp;false:操作失败。 |
+
+
 ## wifi.on('wifiStateChange')<sup>7+</sup>
 
 on(type: "wifiStateChange", callback: Callback&lt;number&gt;): void
@@ -1136,7 +1961,7 @@ on(type: "p2pConnectionChange", callback: Callback&lt;WifiP2pLinkedInfo&gt;): vo
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | 是 | 状态改变回调函数。 |
+  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 是 | 状态改变回调函数。 |
 
 
 ## wifi.off('p2pConnectionChange')<sup>8+</sup>
@@ -1153,7 +1978,7 @@ off(type: "p2pConnectionChange", callback?: Callback&lt;WifiP2pLinkedInfo&gt;):
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
+  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
 
 
 ## wifi.on('p2pDeviceChange')<sup>8+</sup>
@@ -1162,7 +1987,7 @@ on(type: "p2pDeviceChange", callback: Callback&lt;WifiP2pDevice&gt;): void
 
 注册P2P设备状态改变事件。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
@@ -1170,7 +1995,7 @@ on(type: "p2pDeviceChange", callback: Callback&lt;WifiP2pDevice&gt;): void
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | 是 | 状态改变回调函数。 |
+  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | 是 | 状态改变回调函数。 |
 
 
 ## wifi.off('p2pDeviceChange')<sup>8+</sup>
@@ -1187,7 +2012,7 @@ off(type: "p2pDeviceChange", callback?: Callback&lt;WifiP2pDevice&gt;): void
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pDevice](#WifiP2pDevice)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
+  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
 
 
 ## wifi.on('p2pPeerDeviceChange')<sup>8+</sup>
@@ -1196,7 +2021,7 @@ on(type: "p2pPeerDeviceChange", callback: Callback&lt;WifiP2pDevice[]&gt;): void
 
 注册P2P对端设备状态改变事件。
 
-**需要权限:** ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION
+**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
 
 **系统能力:** SystemCapability.Communication.WiFi.P2P
 
@@ -1204,7 +2029,7 @@ on(type: "p2pPeerDeviceChange", callback: Callback&lt;WifiP2pDevice[]&gt;): void
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | 是 | 状态改变回调函数。 |
+  | callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 是 | 状态改变回调函数。 |
 
 
 ## wifi.off('p2pPeerDeviceChange')<sup>8+</sup>
@@ -1221,7 +2046,7 @@ off(type: "p2pPeerDeviceChange", callback?: Callback&lt;WifiP2pDevice[]&gt;): vo
   | **参数名** | **类型** | **必填** | **说明** |
   | -------- | -------- | -------- | -------- |
   | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
-  | callback | Callback&lt;[WifiP2pDevice[]](#WifiP2pDevice)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
+  | callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |
 
 
 ## wifi.on('p2pPersistentGroupChange')<sup>8+</sup>
diff --git a/zh-cn/application-dev/reference/apis/js-apis-wifiext.md b/zh-cn/application-dev/reference/apis/js-apis-wifiext.md
index ff85bfddbd8c67bd1410f11f5ba7b993ea85952b..9afdcf23bfa5127d0477d8543d0dbeb855f1d29b 100755
--- a/zh-cn/application-dev/reference/apis/js-apis-wifiext.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-wifiext.md
@@ -1,4 +1,5 @@
 # WLAN
+该模块主要提供WLAN扩展接口,供非通用类型产品使用。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
@@ -17,13 +18,11 @@ enableHotspot(): boolean;
 
 使能WLAN热点。
 
-- 需要权限:
-  ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
+**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 返回值:
+**返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
   | boolean | 操作结果, true: 成功, false: 失败。 |
@@ -35,13 +34,11 @@ disableHotspot(): boolean;
 
 去使能WLAN热点。
 
-- 需要权限:
-  ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
+**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 返回值:
+**返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
   | boolean | 操作结果, true: 成功, false: 失败。 |
@@ -51,24 +48,24 @@ disableHotspot(): boolean;
 
 getSupportedPowerModel(): Promise&lt;Array&lt;PowerModel&gt;&gt;
 
-获取支持的功率模式,使用promise方式作为异步方法。
+获取支持的功率模式,使用Promise异步回调。
 
-- 需要权限:
-  ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 返回值:
+**返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | Promise&lt;Array&lt;[PowerModel](#PowerModel)&gt;&gt; | 功率模式。 |
+  | Promise&lt;Array&lt;[PowerModel](#powermodel)&gt;&gt; | Promise对象。表示功率模式。 |
 
 
 ## PowerModel
 
 表示功率模式的枚举。
 
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
+
 | 名称 | 默认值 | 说明 |
 | -------- | -------- | -------- |
 | SLEEPING | 0 | 睡眠模式。 |
@@ -80,54 +77,48 @@ getSupportedPowerModel(): Promise&lt;Array&lt;PowerModel&gt;&gt;
 
 getSupportedPowerModel(callback: AsyncCallback&lt;Array&lt;PowerModel&gt;&gt;): void
 
-获取支持的功率模式,使用callback方式作为异步方法。
+获取支持的功率模式,使用callback异步回调。
 
-- 需要权限:
-  ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 参数
+**参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[PowerModel](#PowerModel)&gt; | 是 | 功率模式。 |
+  | callback | AsyncCallback&lt;[PowerModel](#powermodel)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示支持的功率模式。如果error为非0,表示处理出现错误。 |
 
 
 ## wifiext.getPowerModel
 
 getPowerModel(): Promise&lt;PowerModel&gt;
 
-获取功率模式,使用promise方式作为异步方法。
+获取功率模式,使用Promise异步回调。
 
-- 需要权限:
-  ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 返回值:
+**返回值:**
   | 类型 | 说明 |
   | -------- | -------- |
-  | Promise&lt;[PowerModel](#PowerModel)&gt; | 功率模式。 |
+  | Promise&lt;[PowerModel](#powermodel)&gt; | Promise对象。表示功率模式。 |
 
 
 ## wifiext.getPowerModel
 
 getPowerModel(callback: AsyncCallback&lt;PowerModel&gt;): void
 
-获取功率模式,使用callback方式作为异步方法。
+获取功率模式,使用callback异步回调。
 
-- 需要权限:
-  ohos.permission.GET_WIFI_INFO
+**需要权限:** ohos.permission.GET_WIFI_INFO
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 参数
+**参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | callback | AsyncCallback&lt;[PowerModel](#PowerModel)&gt; | 是 | 功率模式。 |
+  | callback | AsyncCallback&lt;[PowerModel](#powermodel)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示功率模式。如果error为非0,表示处理出现错误。 |
 
 
 ## wifiext.setPowerModel
@@ -136,18 +127,16 @@ setPowerModel(model: PowerModel) : boolean;
 
  设置功率模式。
 
-- 需要权限:
-  ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
+**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT_EXT
 
-- 系统能力:
-  SystemCapability.Communication.WiFi.AP.Extension
+**系统能力:** SystemCapability.Communication.WiFi.AP.Extension
 
-- 参数
+**参数:**
   | 参数名 | 类型 | 必填 | 说明 |
   | -------- | -------- | -------- | -------- |
-  | model | AsyncCallback&lt;[PowerModel](#PowerModel)&gt; | 是 | 功率模式。 |
+  | model | AsyncCallback&lt;[PowerModel](#powermodel)&gt; | 是 | 功率模式。 |
 
-- 返回值:
+**返回值:**
   | **类型** | **说明** |
   | -------- | -------- |
   | boolean | 操作结果, true: 成功, false: 失败。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md
index 78d5e8d5b274f4ae960c31e3b35acb308ede5a6f..b33a44742d7d5e4dafc522700532f82e34f26ba7 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-window.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-window.md
@@ -27,19 +27,21 @@ import window from '@ohos.window';
 | ----------------- | ------ | ------------------ |
 | TYPE_APP          | 0      | 表示应用子窗口。此接口仅可在FA模型下使用。 |
 | TYPE_SYSTEM_ALERT | 1      | 表示系统告警窗口。 |
-| TYPE_INPUT_METHOD<sup>9+</sup> | 2      | 表示输入法窗口。此接口仅可在Stage模型下使用。<br>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_STATUS_BAR<sup>9+</sup>   | 3      | 表示状态栏窗口。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_PANEL<sup>9+</sup>        | 4      | 表示通知栏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_KEYGUARD<sup>9+</sup>     | 5      | 表示锁屏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_VOLUME_OVERLAY<sup>9+</sup> | 6      | 表示音量条。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_NAVIGATION_BAR<sup>9+</sup> | 7      | 表示导航栏窗口。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
+| TYPE_INPUT_METHOD<sup>9+</sup> | 2      | 表示输入法窗口。此接口仅可在Stage模型下使用。<br>此接口为系统接口。 |
+| TYPE_STATUS_BAR<sup>9+</sup>   | 3      | 表示状态栏窗口。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_PANEL<sup>9+</sup>        | 4      | 表示通知栏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_KEYGUARD<sup>9+</sup>     | 5      | 表示锁屏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_VOLUME_OVERLAY<sup>9+</sup> | 6      | 表示音量条。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_NAVIGATION_BAR<sup>9+</sup> | 7      | 表示导航栏窗口。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
 | TYPE_FLOAT<sup>9+</sup> | 8      | 表示悬浮窗。此接口仅可在Stage模型下使用。<br>**需要权限:** ohos.permission.SYSTEM_FLOAT_WINDOW |
-| TYPE_WALLPAPER<sup>9+</sup> | 9      | 表示壁纸。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_DESKTOP<sup>9+</sup> | 10      | 表示桌面。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_LAUNCHER_RECENT<sup>9+</sup> | 11      | 表示多任务中心。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_LAUNCHER_DOCK<sup>9+</sup> | 12      | 表示桌面Dock栏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_VOICE_INTERACTION<sup>9+</sup> | 13      | 表示智慧语音。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
-| TYPE_POINTER<sup>9+</sup> | 14      | 表示鼠标。此接口仅可在Stage模型下使用。<br/>此接口为系统接口,三方应用不支持调用。 |
+| TYPE_WALLPAPER<sup>9+</sup> | 9      | 表示壁纸。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_DESKTOP<sup>9+</sup> | 10      | 表示桌面。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_LAUNCHER_RECENT<sup>9+</sup> | 11      | 表示多任务中心。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_LAUNCHER_DOCK<sup>9+</sup> | 12      | 表示桌面Dock栏。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_VOICE_INTERACTION<sup>9+</sup> | 13      | 表示智慧语音。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_POINTER<sup>9+</sup> | 14      | 表示鼠标。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
+| TYPE_FLOAT_CAMERA<sup>9+</sup> | 15      | 表示相机类型悬浮窗。此接口仅可在Stage模型下使用。<br>**需要权限:** ohos.permission.SYSTEM_FLOAT_WINDOW |
+| TYPE_DIALOG<sup>9+</sup>  | 16      | 表示模态窗口。此接口仅可在Stage模型下使用。<br/>此接口为系统接口。 |
 
 ## AvoidAreaType<sup>7+</sup>
 
@@ -58,7 +60,7 @@ import window from '@ohos.window';
 
 窗口模式枚举。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -74,7 +76,7 @@ import window from '@ohos.window';
 
 窗口布局模式枚举。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -119,11 +121,26 @@ import window from '@ohos.window';
 | AUTO_ROTATION_LANDSCAPE_RESTRICTED    | 10   | 表述受开关控制的自动横向旋转模式。 |
 | LOCKED                                | 11   | 表示锁定模式。 |
 
+## BlurStyle<sup>9+</sup>
+
+窗口模糊类型枚举。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 名称    | 值   | 说明                 |
+| ------- | ---- | -------------------- |
+| OFF     | 0    | 表示关闭模糊。       |
+| THIN    | 1    | 表示较薄的模糊类型。 |
+| REGULAR | 2    | 表示适中的模糊类型。 |
+| THICK   | 3    | 表示较厚的模糊类型。 |
+
 ## SystemBarRegionTint<sup>8+</sup>
 
 单个导航栏或状态栏回调信息。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -139,7 +156,7 @@ import window from '@ohos.window';
 
 当前系统栏回调信息集合。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -544,7 +561,7 @@ minimizeAll(id: number, callback: AsyncCallback&lt;void&gt;): void
 
 最小化某显示设备下的所有窗口。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -582,7 +599,7 @@ minimizeAll(id: number): Promise&lt;void&gt;
 
 最小化某显示设备下的所有窗口。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -624,7 +641,7 @@ toggleShownStateForAllAppWindows(callback: AsyncCallback&lt;void&gt;): void
 
 多窗口快速切换时隐藏或者恢复应用窗口。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -651,7 +668,7 @@ toggleShownStateForAllAppWindows(): Promise&lt;void&gt;
 
 多窗口快速切换时隐藏或者恢复应用窗口。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -677,7 +694,7 @@ setWindowLayoutMode(mode: WindowLayoutMode, callback: AsyncCallback&lt;void&gt;)
 
 设置窗口布局模式。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -701,7 +718,7 @@ setWindowLayoutMode(mode: WindowLayoutMode): Promise&lt;void&gt;
 
 设置窗口布局模式。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -734,7 +751,7 @@ on(type: 'systemBarTintChange', callback: Callback&lt;SystemBarTintState&gt;): v
 
 开启状态栏、导航栏属性变化的监听。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -759,7 +776,7 @@ off(type: 'systemBarTintChange', callback?: Callback&lt;SystemBarTintState &gt;)
 
 关闭状态栏、导航栏属性变化的监听。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -788,7 +805,7 @@ hide (callback: AsyncCallback&lt;void&gt;): void
 
 隐藏当前窗口,使用callback异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -816,7 +833,7 @@ hide(): Promise&lt;void&gt;
 
 隐藏当前窗口,使用Promise异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -1066,7 +1083,7 @@ setWindowType(type: WindowType, callback: AsyncCallback&lt;void&gt;): void
 
 设置窗口类型,使用callback异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -1096,7 +1113,7 @@ setWindowType(type: WindowType): Promise&lt;void&gt;
 
 设置窗口类型,使用Promise异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -1854,8 +1871,8 @@ on(type: 'avoidAreaChange', callback: Callback&lt;{[AvoidAreaType](#avoidareatyp
 **示例:**
 
 ```js
-windowClass.on('avoidAreaChange', (type, data) => {
-    console.info('Succeeded in enabling the listener for system avoid area changes. type:'  + JSON.stringify(type) + 'Data: ' + JSON.stringify(data));
+windowClass.on('avoidAreaChange', (data) => {
+    console.info('Succeeded in enabling the listener for system avoid area changes. type:'  + JSON.stringify(data.type) + ', area: ' + JSON.stringify(data.area));
 });
 ```
 
@@ -1929,7 +1946,7 @@ windowClass.off('keyboardHeightChange');
 on(type: 'touchOutside', callback: Callback&lt;void&gt;): void
 
 开启本窗口区域范围外的点击事件的监听。
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -1953,7 +1970,7 @@ windowClass.on('touchOutside', () => {
 off(type: 'touchOutside', callback?: Callback&lt;void&gt;): void
 
 关闭本窗口区域范围外的点击事件的监听。
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -1970,6 +1987,199 @@ off(type: 'touchOutside', callback?: Callback&lt;void&gt;): void
 windowClass.off('touchOutside');
 ```
 
+### on('screenshot')<sup>9+</sup>
+
+on(type: 'screenshot', callback: Callback&lt;void&gt;): void
+
+开启截屏事件的监听。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名   | 类型                | 必填 | 说明                                                         |
+| -------- | ------------------- | ---- | ------------------------------------------------------------ |
+| type     | string              | 是   | 监听事件,固定为'screenshot',即截屏事件。 |
+| callback | Callback&lt;void&gt; | 是   | 回调函数。发生截屏事件时的回调。                               |
+
+**示例:**
+
+```js
+windowClass.on('screenshot', () => {
+    console.info('screenshot happened');
+});
+```
+
+### off('screenshot')<sup>9+</sup>
+
+off(type: 'screenshot', callback?: Callback&lt;void&gt;): void
+
+关闭截屏事件的监听。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名   | 类型                   | 必填 | 说明                                                         |
+| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
+| type     | string                 | 是   | 监听事件,固定为'screenshot',即截屏事件。 |
+| callback | Callback&lt;void&gt; | 否   | 回调函数。发生截屏事件时的回调。 |
+
+**示例:**
+
+```js
+var callback = ()=>{
+    console.info('screenshot happened');
+}
+windowClass.on('screenshot', callback)
+windowClass.off('screenshot', callback)
+
+// 如果通过on开启多个callback进行监听,同时关闭所有监听:
+windowClass.off('screenshot');
+```
+
+### on('dialogTargetTouch')<sup>9+</sup>
+
+on(type: 'dialogTargetTouch', callback: Callback&lt;void&gt;): void
+
+开启模态窗口目标窗口的点击事件的监听。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名   | 类型                 | 必填 | 说明                                                          |
+| -------- | ------------------- | ---- | ------------------------------------------------------------ |
+| type     | string              | 是   | 监听事件,固定为'dialogTargetTouch',即模态窗口目标窗口的点击事件。 |
+| callback | Callback&lt;void&gt;| 是   | 回调函数。当点击事件发生在模态窗口目标窗口的回调。 |
+
+**示例:**
+
+```js
+windowClass.on('dialogTargetTouch', () => {
+    console.info('touch dialog target');
+});
+```
+
+### off('dialogTargetTouch')<sup>9+</sup>
+
+off(type: 'dialogTargetTouch', callback?: Callback&lt;void&gt;): void
+
+关闭模态窗口目标窗口的点击事件的监听。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名   | 类型                    | 必填 | 说明                                                          |
+| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
+| type     | string                 | 是   | 监听事件,固定为'dialogTargetTouch',即模态窗口目标窗口的点击事件。 |
+| callback | Callback&lt;void&gt;      | 否   | 回调函数。当点击事件发生在模态窗口目标窗口的回调。 |
+
+**示例:**
+
+```js
+windowClass.off('dialogTargetTouch');
+```
+
+### bindDialogTarget<sup>9+</sup>
+
+bindDialogTarget(token: rpc.RemoteObject, deathCallback: Callback&lt;void&gt;, callback: AsyncCallback&lt;void&gt;): void
+
+绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用callback异步回调。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名       | 类型                      | 必填 | 说明                  |
+| ----------- | ------------------------- | ---- | -------------------- |
+| token       | [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | 是   | 目标窗口token值。 |
+| deathCallback | Callback&lt;void&gt;        | 是   | 模态窗口销毁监听。 |
+| callback    | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
+
+**示例:** 
+
+```js
+class TestRemoteObject extends rpc.RemoteObject {
+    constructor(descriptor) {
+        super(descriptor);
+    }
+    addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+        return true;
+    }
+    removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+        return true;
+    }
+    isObjectDead(): boolean {
+        return false;
+    }
+}
+let token = new TestRemoteObject("testObject");
+windowClass.bindDialogTarget(token, () => {
+    console.info('Dialog Window Need Destroy.');
+}, (err, data) => {
+    if (err.code) {
+        console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeeded in binding dialog target. Data:' + JSON.stringify(data));
+});
+```
+
+### bindDialogTarget<sup>9+</sup>
+
+bindDialogTarget(token: rpc.RemoteObject, deathCallback: Callback&lt;void&gt;): Promise&lt;void&gt;
+
+绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用Promise异步回调。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名       | 类型                      | 必填 | 说明                  |
+| ----------- | ------------------------- | ---- | -------------------- |
+| token       | [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | 是   | 目标窗口token值。 |
+| deathCallback | Callback&lt;void&gt;        | 是   | 模态窗口销毁监听。 |
+
+**返回值:** 
+
+| 类型                | 说明                      |
+| ------------------- | ------------------------- |
+| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
+
+**示例:** 
+
+```js
+class TestRemoteObject extends rpc.RemoteObject {
+    constructor(descriptor) {
+        super(descriptor);
+    }
+    addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+        return true;
+    }
+    removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
+        return true;
+    }
+    isObjectDead(): boolean {
+        return false;
+    }
+}
+let token = new TestRemoteObject("testObject");
+let promise = windowClass.bindDialogTarget(token, () => {
+    console.info('Dialog Window Need Destroy.');
+});
+promise.then((data)=> {
+    console.info('Succeeded in binding dialog target. Data:' + JSON.stringify(data));
+}).catch((err)=>{
+        console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err));
+});
+```
+
 ### isSupportWideGamut<sup>8+</sup>
 
 isSupportWideGamut(callback: AsyncCallback&lt;boolean&gt;): void
@@ -2190,6 +2400,29 @@ promise.then((data)=> {
 });
 ```
 
+### setWakeUpScreen()<sup>9+</sup>
+
+setWakeUpScreen(wakeUp: boolean): void;
+
+窗口唤醒屏幕。
+
+此接口为系统接口,三方应用不支持调用。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名           | 类型    | 必填 | 说明                         |
+| ---------------- | ------- | ---- | ---------------------------- |
+| wakeUp           | boolean | 是   | 是否设置唤醒屏幕。 |
+
+**示例:** 
+
+```ts
+var wakeUp = true;
+windowClass.setWakeUpScreen(wakeUp);
+```
+
 ### setBrightness
 
 setBrightness(brightness: number, callback: AsyncCallback&lt;void&gt;): void
@@ -2256,9 +2489,9 @@ setDimBehind(dimBehindValue: number, callback: AsyncCallback&lt;void&gt;): void
 
 窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值,使用callback异步回调。
 
-> **说明:** 从API version 9开始废弃。
-> 
-> 从 API version 7开始支持。
+> **说明:** 该接口不支持使用。
+>
+> 从API version 9开始废弃。从API Version 7开始支持。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2287,9 +2520,9 @@ setDimBehind(dimBehindValue: number): Promise&lt;void&gt;
 
 窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值,使用Promise异步回调。
 
-> **说明:** 从API version 9开始废弃。
+> **说明:** 该接口不支持使用。
 > 
-> 从 API version 7开始支持。
+> 从API version 9开始废弃。从API Version 7开始支持。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2442,9 +2675,9 @@ setOutsideTouchable(touchable: boolean, callback: AsyncCallback&lt;void&gt;): vo
 
 设置是否允许可点击子窗口之外的区域,使用callback异步回调。
 
-> **说明:** 从API version 9开始废弃。
+> **说明:** 该接口不支持使用。
 > 
-> 从 API version 7开始支持。
+> 从API version 9开始废弃。从API Version 7开始支持。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2473,9 +2706,9 @@ setOutsideTouchable(touchable: boolean): Promise&lt;void&gt;
 
 设置是否允许可点击子窗口之外的区域,使用Promise异步回调。。
 
-> **说明:** 从API version 9开始废弃。
+> **说明:** 该接口不支持使用。
 > 
-> 从 API version 7开始支持。
+> 从API version 9开始废弃。从 API version 7开始支持。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2506,7 +2739,7 @@ promise.then((data)=> {
 
 setPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback&lt;void&gt;): void
 
-设置窗口是否为隐私模式,使用callback异步回调。
+设置窗口是否为隐私模式,使用callback异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2535,7 +2768,7 @@ windowClass.setPrivacyMode(isPrivacyMode, (err, data) => {
 
 setPrivacyMode(isPrivacyMode: boolean): Promise&lt;void&gt;
 
-设置窗口是否为隐私模式,使用Promise异步回调。
+设置窗口是否为隐私模式,使用Promise异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2563,6 +2796,25 @@ promise.then((data)=> {
 });
 ```
 
+### setSnapshotSkip<sup>9+</sup>
+setSnapshotSkip(isSkip: boolean): void
+
+截屏录屏是否忽略当前窗口。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名        | 类型    | 必填 | 说明                 |
+| ------------- | ------- | ---- | -------------------- |
+| isSkip | boolean | 是   | 截屏录屏是否忽略当前窗口,默认为false。<br>true表示忽略当前窗口,false表示不忽略当前窗口。</br> |
+```js
+var isSkip = true;
+windowClass.setSnapshotSkip(isSkip);
+```
+
 ### setTouchable<sup>7+</sup>
 
 setTouchable(isTouchable: boolean, callback: AsyncCallback&lt;void&gt;): void
@@ -2630,7 +2882,7 @@ setForbidSplitMove(isForbidSplitMove: boolean, callback: AsyncCallback&lt;void&g
 
 设置窗口在分屏模式下是否被禁止移动,使用callback异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2661,7 +2913,7 @@ setForbidSplitMove(isForbidSplitMove: boolean): Promise&lt;void&gt;
 
 设置窗口在分屏模式下是否被禁止移动,使用Promise异步回调。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -2689,6 +2941,172 @@ promise.then((data)=> {
 });
 ```
 
+### snapshot<sup>9+</sup>
+
+snapshot(callback: AsyncCallback&lt;image.PixelMap&gt;): void
+
+获取窗口截图,使用callback异步回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名      | 类型                      | 必填 | 说明                 |
+| ----------- | ------------------------- | ---- | -------------------- |
+| callback    | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是   | 回调函数。  |
+
+**示例:**
+
+```js
+windowClass.snapshot((err, data) => {
+    if (err.code) {
+        console.error('Failed to snapshot window. Cause:' + JSON.stringify(err));
+        return;
+    }
+    console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
+    data.release(); // PixelMap使用完后及时释放内存
+});
+```
+
+### snapshot<sup>9+</sup>
+
+snapshot(): Promise&lt;image.PixelMap&gt;
+
+获取窗口截图,使用Promise异步回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**返回值:**
+
+| 类型                | 说明                      |
+| ------------------- | ------------------------- |
+| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise对象。返回当前窗口截图。 |
+
+**示例:**
+
+```js
+let promise = windowClass.snapshot();
+promise.then((pixelMap)=> {
+    console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
+    pixelMap.release(); // PixelMap使用完后及时释放内存
+}).catch((err)=>{
+    console.error('Failed to snapshot window. Cause:' + JSON.stringify(err));
+});
+```
+
+### setBlur<sup>9+</sup>
+
+setBlur(radius: number): void
+
+设置窗口模糊。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名 | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| radius | number | 是   | 表示窗口模糊的半径值,取值范围为大于等于0,0表示关闭窗口模糊。 |
+
+**示例:**
+
+```js
+windowClass.setBlur(4.0);
+```
+
+### setBackdropBlur<sup>9+</sup>
+
+setBackdropBlur(radius: number): void
+
+设置窗口背景模糊。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名 | 类型   | 必填 | 说明                                                         |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| radius | number | 是   | 表示窗口背景模糊的半径值,取值范围为大于等于0,0表示关闭窗口背景模糊。 |
+
+**示例:**
+
+```js
+windowClass.setBackdropBlur(4.0);
+```
+
+### setBackdropBlurStyle<sup>9+</sup>
+
+setBackdropBlurStyle(blurStyle: BlurStyle): void
+
+设置窗口背景模糊类型。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名    | 类型      | 必填 | 说明                   |
+| --------- | --------- | ---- | ---------------------- |
+| blurStyle | [BlurStyle](#blurstyle9) | 是   | 表示窗口背景模糊类型。 |
+
+**示例:**
+
+```js
+windowClass.setBackdropBlurStyle(window.BlurType.THIN);
+```
+
+### setShadow<sup>9+</sup>
+
+setShadow(radius: number, color?: string, offsetX?: number, offsetY?: number): void
+
+设置窗口边缘阴影。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名  | 类型   | 必填 | 说明                                                         |
+| ------- | ------ | ---- | ------------------------------------------------------------ |
+| radius  | number | 是   | 表示窗口边缘阴影的模糊半径,取值范围为大于等于0,0表示关闭窗口边缘阴影。 |
+| color   | string | 否   | 表示窗口边缘阴影的颜色,为十六进制颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 |
+| offsetX | number | 否   | 表示窗口边缘阴影的X轴的偏移量,单位为px。                    |
+| offsetY | number | 否   | 表示窗口边缘阴影的Y轴的偏移量,单位为px。                    |
+
+**示例:**
+
+```js
+windowClass.setShadow(4.0, '#FF00FF00', 2, 3);
+```
+
+### setCornerRadius<sup>9+</sup>
+
+setCornerRadius(cornerRadius: number): void
+
+设置窗口圆角半径。
+
+此接口为系统接口。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:** 
+
+| 参数名      | 类型    | 必填 | 说明                 |
+| ----------- | ------- | ---- | -------------------- |
+| radius | number | 是   | 表示窗口圆角的半径值,取值范围为大于等于0,0表示没有窗口圆角。 |
+
+**示例:**
+
+```js
+windowClass.setCornerRadius(4.0);
+```
+
 ## WindowStageEventType<sup>9+</sup>
 
 WindowStage生命周期。
@@ -3112,7 +3530,7 @@ disableWindowDecor(): void
 
 此接口仅可在Stage模型下使用。
 
-此接口为系统接口,三方应用不支持调用。
+此接口为系统接口。
 
 **系统能力:** SystemCapability.WindowManager.WindowManager.Core
 
@@ -3133,6 +3551,7 @@ class myAbility extends Ability {
 setShowOnLockScreen(showOnLockScreen: boolean): void
 
 设置应用显示在锁屏之上。
+此接口为系统接口,三方应用不支持调用。
 
 此接口仅可在Stage模型下使用。
 
diff --git a/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..7a05d608c5f43e65e1a6a62ec647d6e8cff084e8
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md
@@ -0,0 +1,266 @@
+# 窗口动画管理
+窗口动画管理器,可以监听应用启动退出时应用的动画窗口,提供启动退出过程中控件动画和应用窗口联动动画能力。
+
+>  **说明:**
+>  该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>
+>  本模块接口为系统接口。
+
+## 导入模块
+
+```js
+import windowAnimationManager from '@ohos.animation.windowAnimationManager'
+```
+
+## windowAnimationManager.setController
+
+setController(controller: WindowAnimationController): void
+
+设置窗口动画控制器。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| controller | [WindowAnimationController](#windowanimationcontroller) | 是 | 窗口动画的控制器。|
+
+**示例:**
+
+```js
+var controller = {
+    onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onStartAppFromLauncher', startingWindowTarget);
+	},
+    onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+  		console.log('onStartAppFromRecent', startingWindowTarget);
+    },
+    onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+        console.log('onStartAppFromOther', startingWindowTarget);
+    },
+    onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+    },
+    onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+    },
+    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+    },
+    onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void {
+    }
+}
+
+windowAnimationManager.setController(controller)
+```
+
+## WindowAnimationController
+
+窗口动画控制器。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+### onStartAppFromLauncher
+
+onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
+
+从桌面启动应用时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                                                         | 必填 | 说明               |
+| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
+| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
+| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onStartAppFromLauncher', startingWindowTarget);
+	}
+}
+```
+
+### onStartAppFromRecent
+
+onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback:WindowAnimationFinishedCallback): void
+
+从最近任务列表启动应用时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                                                         | 必填 | 说明               |
+| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
+| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
+| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback:     WindowAnimationFinishedCallback): void {
+      console.log('onStartAppFromRecent', startingWindowTarget);
+	}
+}
+```
+
+### onStartAppFromOther
+
+onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
+
+从除了桌面和最近任务列表以外其他地方启动应用时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                                                         | 必填 | 说明               |
+| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
+| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
+| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onStartAppFromOther', startingWindowTarget);
+	}
+}
+```
+
+### onAppTransition
+
+onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
+
+应用转场时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                            | 必填 | 说明             |
+| -------------------- | ------------------------------- | ---- | ---------------- |
+| fromWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 转场前的动画窗口。 |
+| toWindowTarget       | [WindowAnimationTarget](#windowanimationtarget) | 是   | 转场后的动画窗口。 |
+| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+	onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,
+	  finishCallback: WindowAnimationFinishedCallback): void {
+		console.log('onAppTransition', fromWindowTarget);
+	}
+}
+```
+
+### onMinimizeWindow
+
+onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
+
+最小化窗口时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                            | 必填 | 说明             |
+| -------------------- | ------------------------------- | ---- | ---------------- |
+| minimizingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 动画目标窗口。    |
+| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onMinimizeWindow', minimizingWindowTarget);
+	}
+}
+```
+
+### onCloseWindow
+
+onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
+
+关闭窗口时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名               | 类型                            | 必填 | 说明             |
+| -------------------- | ------------------------------- | ---- | ---------------- |
+| closingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 动画目标窗口。    |
+| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onCloseWindow', closingWindowTarget);
+	}
+}
+```
+
+### onScreenUnlock
+
+onScreenUnlock(finishCallback: [WindowAnimationFinishedCallback](#windowanimationfinishedcallback)): void
+
+屏幕解锁时的回调。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数名         | 类型                                                         | 必填 | 说明               |
+| -------------- | ------------------------------------------------------------ | ---- | ------------------ |
+| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |
+
+**示例:**
+
+```js
+var controller = {
+    onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void {
+      console.log('onScreenUnlock'.);
+	}
+}
+```
+
+## WindowAnimationFinishedCallback
+动画完成后的回调。
+
+### onAnimationFinish
+
+onAnimationFinish():void
+
+结束本次动画。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+**示例:**
+
+```js
+var controller = {
+    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
+      finishCallback.onAnimationFinish();
+	}
+}
+```
+
+## WindowAnimationTarget
+动画目标窗口,用来实现动画。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数      | 类型     | 描述 |
+| ------- | ------ | ----------------------- |
+| bundleName  | string | 动画目标窗口所对应的包名。 |
+| abilityName | string | 动画目标窗口所对应的Ability名称。 |
+| windowBounds | [RRect](#rrect) | 动画目标窗口所对应的实际大小。 |
+
+## RRect
+圆角矩形。
+
+**系统能力:** SystemCapability.WindowManager.WindowManager.Core
+
+| 参数      | 类型     | 描述 |
+| ------- | ------ | ----------------------- |
+| left  | number | 动画目标窗口左上角相对于屏幕的横坐标。 |
+| top | number | 动画目标窗口左上角相对于屏幕的纵坐标。 |
+| width | number | 动画目标窗口的宽度大小。 |
+| height | number | 动画目标窗口的高度大小。 |
+| radius | number | 动画目标窗口的圆角大小。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-workScheduler.md b/zh-cn/application-dev/reference/apis/js-apis-workScheduler.md
index 7b1ef57eb95465ae025c4d13d9c0675549d244bc..898c5117ba3283d96a67a2d93f4b53921f7e2b67 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-workScheduler.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-workScheduler.md
@@ -4,13 +4,15 @@
 
 开发者在开发应用时,通过调用延迟任务注册接口,注册对实时性要求不高的延迟任务,该任务默认由系统安排,在系统空闲时根据性能、功耗、热等情况进行调度执行。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>  **说明:**
+>
+>  - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+>  - 本模块接口仅可在Stage模型下使用。
 
 
 ## 导入模块
 
-```
+```js
 import workScheduler from '@ohos.workScheduler' 
 ```
 
@@ -35,7 +37,7 @@ startWork(work: WorkInfo): boolean
 
 **示例**:
 
-```
+```js
   let workInfo = {
       workId: 1,
       batteryLevel:50,
@@ -71,7 +73,7 @@ stopWork(work: WorkInfo, needCancel?: boolean): boolean
 
 **示例**:
 
-```
+```js
   let workInfo = {
       workId: 1,
       batteryLevel:50,
@@ -101,7 +103,7 @@ getWorkStatus(workId: number, callback : AsyncCallback\<WorkInfo>): void
 
 **示例**:
 
-```
+```js
   workScheduler.getWorkStatus(50, (err, res) => {
     if (err) {
       console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
@@ -134,7 +136,7 @@ getWorkStatus(workId: number): Promise\<WorkInfo>
 
 **示例**:
 
-```
+```js
   workScheduler.getWorkStatus(50).then((res) => {
     for (let item in res) {
       console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);
@@ -165,7 +167,7 @@ obtainAllWorks(callback : AsyncCallback\<void>): Array\<WorkInfo>
 
 **示例**:
 
-```
+```js
   workScheduler.obtainAllWorks((err, res) =>{
     if (err) {
       console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
@@ -190,7 +192,7 @@ obtainAllWorks(): Promise<Array\<WorkInfo>>
 
 **示例**:
 
-```
+```js
   workScheduler.obtainAllWorks().then((res) => {
     console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
   }).catch((err) => {
@@ -207,7 +209,7 @@ stopAndClearWorks(): boolean
 
 **示例**:
 
-```
+```js
   let res = workScheduler.stopAndClearWorks();
   console.info("workschedulerLog res:" + res);
 ```
@@ -234,7 +236,7 @@ isLastWorkTimeOut(workId: number, callback : AsyncCallback\<void>): boolean
 
 **示例**:
 
-```
+```js
   workScheduler.isLastWorkTimeOut(500, (err, res) =>{
     if (err) {
       console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
@@ -265,7 +267,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
 
 **示例**:
 
-```
+```js
   workScheduler.isLastWorkTimeOut(500)
     .then(res => {
       console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
@@ -278,30 +280,30 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
 ## WorkInfo
 提供工作的具体信息。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler
-
-| 参数名          | 类型                              | 必填 | 说明                             |
-| --------------- | --------------------------------- | ---- | -------------------------------- |
-| workId          | number                            | 是   | 当前工作的ID                     |
-| bundleName      | string                            | 是   | 延迟任务包名                     |
-| abilityName     | string                            | 是   | 延迟任务回调通知的组件名(必填) |
-| networkType     | [NetworkType](#networktype)       | 否   | 网络类型                         |
-| isCharging      | boolean                           | 否   | 是否充电                         |
-| chargerType     | [ChargingType](#chargingtype)     | 否   | 充电类型                         |
-| batteryLevel    | number                            | 否   | 电量                             |
-| batteryStatus   | [BatteryStatus](#batterystatus)   | 否   | 电池状态                         |
-| storageRequest  | [StorageRequest](#storagerequest) | 否   | 存储状态                         |
-| isRepeat        | boolean                           | 否   | 是否循环任务                     |
-| repeatCycleTime | number                            | 否   | 循环间隔                         |
-| repeatCount     | number                            | 否   | 循环次数                         |
-| isPersisted     | boolean                           | 否   | 是否持久化保存工作               |
-| isDeepIdle      | boolean                           | 否   | 是否要求设备进入空闲状态         |
-| idleWaitTime    | number                            | 否   | 空闲等待时间                     |
+**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
+
+| 参数名             | 类型                                | 必填   | 说明               |
+| --------------- | --------------------------------- | ---- | ---------------- |
+| workId          | number                            | 是    | 当前工作的ID          |
+| bundleName      | string                            | 是    | 延迟任务包名           |
+| abilityName     | string                            | 是    | 延迟任务回调通知的组件名(必填) |
+| networkType     | [NetworkType](#networktype)       | 否    | 网络类型             |
+| isCharging      | boolean                           | 否    | 是否充电             |
+| chargerType     | [ChargingType](#chargingtype)     | 否    | 充电类型             |
+| batteryLevel    | number                            | 否    | 电量               |
+| batteryStatus   | [BatteryStatus](#batterystatus)   | 否    | 电池状态             |
+| storageRequest  | [StorageRequest](#storagerequest) | 否    | 存储状态             |
+| isRepeat        | boolean                           | 否    | 是否循环任务           |
+| repeatCycleTime | number                            | 否    | 循环间隔             |
+| repeatCount     | number                            | 否    | 循环次数             |
+| isPersisted     | boolean                           | 否    | 是否持久化保存工作        |
+| isDeepIdle      | boolean                           | 否    | 是否要求设备进入空闲状态     |
+| idleWaitTime    | number                            | 否    | 空闲等待时间           |
 
 ## NetworkType
 触发工作的网络类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler
+**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
 
 | 名称                     | 默认值  | 说明                      |
 | ---------------------- | ---- | ----------------------- |
@@ -315,7 +317,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
 ## ChargingType
 触发工作的充电类型。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler
+**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
 
 | 名称                        | 默认值  | 说明                   |
 | ------------------------- | ---- | -------------------- |
@@ -327,7 +329,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
 ## BatteryStatus
 触发工作的电池状态。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler
+**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
 
 | 名称                         | 默认值  | 说明                         |
 | -------------------------- | ---- | -------------------------- |
@@ -338,10 +340,10 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
 ## StorageRequest
 触发工作的存储状态。
 
-**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler
+**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
 
-  |名称    |默认值    |说明|
-  | -------- | -------- | -------- |
-  |STORAGE_LEVEL_LOW    |0    |表示这个触发条件是存储空间不足。
-  |STORAGE_LEVEL_OKAY    |1    |表示这个触发条件是从存储空间不足恢复到正常。
-  |STORAGE_LEVEL_LOW_OR_OKAY    |2    |表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。
\ No newline at end of file
+| 名称                        | 默认值  | 说明                             |
+| ------------------------- | ---- | ------------------------------ |
+| STORAGE_LEVEL_LOW         | 0    | 表示这个触发条件是存储空间不足。               |
+| STORAGE_LEVEL_OKAY        | 1    | 表示这个触发条件是从存储空间不足恢复到正常。         |
+| STORAGE_LEVEL_LOW_OR_OKAY | 2    | 表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-js/Readme-CN.md b/zh-cn/application-dev/reference/arkui-js/Readme-CN.md
index 4ef8ba58b6092774b74d096a3ab36cf09996661c..2a1209a974d273ca6187367ca3fa58cc981c5a10 100644
--- a/zh-cn/application-dev/reference/arkui-js/Readme-CN.md
+++ b/zh-cn/application-dev/reference/arkui-js/Readme-CN.md
@@ -1,98 +1,99 @@
 # 基于JS扩展的类Web开发范式
 
-- 组件
-    - 通用
-        - [通用属性](js-components-common-attributes.md)
-        - [通用样式](js-components-common-styles.md)
-        - [通用事件](js-components-common-events.md)
-        - [通用方法](js-components-common-methods.md)
-        - [动画样式](js-components-common-animation.md)
-        - [渐变样式](js-components-common-gradient.md)
-        - [转场样式](js-components-common-transition.md)
-        - [媒体查询](js-components-common-mediaquery.md)
-        - [自定义字体样式](js-components-common-customizing-font.md)
-        - [原子布局](js-components-common-atomic-layout.md)
-    - 容器组件
-        - [badge](js-components-container-badge.md)
-        - [dialog](js-components-container-dialog.md)
-        - [div](js-components-container-div.md)
-        - [form](js-components-container-form.md)
-        - [list](js-components-container-list.md)
-        - [list-item](js-components-container-list-item.md)
-        - [list-item-group](js-components-container-list-item-group.md)
-        - [panel](js-components-container-panel.md)
-        - [popup](js-components-container-popup.md)
-        - [refresh](js-components-container-refresh.md)
-        - [stack](js-components-container-stack.md)
-        - [stepper](js-components-container-stepper.md)
-        - [stepper-item](js-components-container-stepper-item.md)
-        - [swiper](js-components-container-swiper.md)
-        - [tabs](js-components-container-tabs.md)
-        - [tab-bar](js-components-container-tab-bar.md)
-        - [tab-content](js-components-container-tab-content.md)
-    - 基础组件
-        - [button](js-components-basic-button.md)
-        - [chart](js-components-basic-chart.md)
-        - [divider](js-components-basic-divider.md)
-        - [image](js-components-basic-image.md)
-        - [image-animator](js-components-basic-image-animator.md)
-        - [input](js-components-basic-input.md)
-        - [label](js-components-basic-label.md)
-        - [marquee](js-components-basic-marquee.md)
-        - [menu](js-components-basic-menu.md)
-        - [option](js-components-basic-option.md)
-        - [picker](js-components-basic-picker.md)
-        - [picker-view](js-components-basic-picker-view.md)
-        - [piece](js-components-basic-piece.md)
-        - [progress](js-components-basic-progress.md)
-        - [qrcode](js-components-basic-qrcode.md)
-        - [rating](js-components-basic-rating.md)
-        - [richtext](js-components-basic-richtext.md)
-        - [search](js-components-basic-search.md)
-        - [select](js-components-basic-select.md)
-        - [slider](js-components-basic-slider.md)
-        - [span](js-components-basic-span.md)
-        - [switch](js-components-basic-switch.md)
-        - [text](js-components-basic-text.md)
-        - [textarea](js-components-basic-textarea.md)
-        - [toolbar](js-components-basic-toolbar.md)
-        - [toolbar-item](js-components-basic-toolbar-item.md)
-        - [toggle](js-components-basic-toggle.md)
-        - [web](js-components-basic-web.md)
-        - [xcomponent](js-components-basic-xcomponent.md)
-    - 媒体组件
-        - [video](js-components-media-video.md)
-    - 画布组件
-        - [canvas组件](js-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D对象](js-components-canvas-canvasrenderingcontext2d.md)
-        - [Image对象](js-components-canvas-image.md)
-        - [CanvasGradient对象](js-components-canvas-canvasgradient.md)
-        - [ImageData对象](js-components-canvas-imagedata.md)
-        - [Path2D对象](js-components-canvas-path2d.md)
-        - [ImageBitmap对象](js-components-canvas-imagebitmap.md)
-        - [OffscreenCanvas对象](js-components-canvas-offscreencanvas.md)
-        - [OffscreenCanvasRenderingContext2D对象](js-offscreencanvasrenderingcontext2d.md)
-    - 栅格组件
-        - [基本概念](js-components-grid-basic-concepts.md)
-        - [grid-container](js-components-grid-container.md)
-        - [grid-row](js-components-grid-row.md)
-        - [grid-col](js-components-grid-col.md)
-    - svg组件
-        - [通用属性](js-components-svg-common-attributes.md)
-        - [svg](js-components-svg.md)
-        - [rect](js-components-svg-rect.md)
-        - [circle](js-components-svg-circle.md)
-        - [ellipse](js-components-svg-ellipse.md)
-        - [path](js-components-svg-path.md)
-        - [line](js-components-svg-line.md)
-        - [polyline](js-components-svg-polyline.md)
-        - [polygon](js-components-svg-polygon.md)
-        - [text](js-components-svg-text.md)
-        - [tspan](js-components-svg-tspan.md)
-        - [textPath](js-components-svg-textpath.md)
-        - [animate](js-components-svg-animate.md)
-        - [animateMotion](js-components-svg-animatemotion.md)
-        - [animateTransform](js-components-svg-animatetransform.md)
+- 组件通用信息
+    - [通用属性](js-components-common-attributes.md)
+    - [通用样式](js-components-common-styles.md)
+    - [通用事件](js-components-common-events.md)
+    - [通用方法](js-components-common-methods.md)
+    - [动画样式](js-components-common-animation.md)
+    - [渐变样式](js-components-common-gradient.md)
+    - [转场样式](js-components-common-transition.md)
+    - [媒体查询](js-components-common-mediaquery.md)
+    - [自定义字体样式](js-components-common-customizing-font.md)
+    - [原子布局](js-components-common-atomic-layout.md)
+- 容器组件
+    - [badge](js-components-container-badge.md)
+    - [dialog](js-components-container-dialog.md)
+    - [div](js-components-container-div.md)
+    - [form](js-components-container-form.md)
+    - [list](js-components-container-list.md)
+    - [list-item](js-components-container-list-item.md)
+    - [list-item-group](js-components-container-list-item-group.md)
+    - [panel](js-components-container-panel.md)
+    - [popup](js-components-container-popup.md)
+    - [refresh](js-components-container-refresh.md)
+    - [stack](js-components-container-stack.md)
+    - [stepper](js-components-container-stepper.md)
+    - [stepper-item](js-components-container-stepper-item.md)
+    - [swiper](js-components-container-swiper.md)
+    - [tabs](js-components-container-tabs.md)
+    - [tab-bar](js-components-container-tab-bar.md)
+    - [tab-content](js-components-container-tab-content.md)
+- 基础组件
+    - [button](js-components-basic-button.md)
+    - [chart](js-components-basic-chart.md)
+    - [divider](js-components-basic-divider.md)
+    - [image](js-components-basic-image.md)
+    - [image-animator](js-components-basic-image-animator.md)
+    - [input](js-components-basic-input.md)
+    - [label](js-components-basic-label.md)
+    - [marquee](js-components-basic-marquee.md)
+    - [menu](js-components-basic-menu.md)
+    - [option](js-components-basic-option.md)
+    - [picker](js-components-basic-picker.md)
+    - [picker-view](js-components-basic-picker-view.md)
+    - [piece](js-components-basic-piece.md)
+    - [progress](js-components-basic-progress.md)
+    - [qrcode](js-components-basic-qrcode.md)
+    - [rating](js-components-basic-rating.md)
+    - [richtext](js-components-basic-richtext.md)
+    - [search](js-components-basic-search.md)
+    - [select](js-components-basic-select.md)
+    - [slider](js-components-basic-slider.md)
+    - [span](js-components-basic-span.md)
+    - [switch](js-components-basic-switch.md)
+    - [text](js-components-basic-text.md)
+    - [textarea](js-components-basic-textarea.md)
+    - [toolbar](js-components-basic-toolbar.md)
+    - [toolbar-item](js-components-basic-toolbar-item.md)
+    - [toggle](js-components-basic-toggle.md)
+    - [web](js-components-basic-web.md)
+    - [xcomponent](js-components-basic-xcomponent.md)
+- 媒体组件
+    - [video](js-components-media-video.md)
+- 画布组件
+    - [canvas组件](js-components-canvas-canvas.md)
+    - [CanvasRenderingContext2D对象](js-components-canvas-canvasrenderingcontext2d.md)
+    - [Image对象](js-components-canvas-image.md)
+    - [CanvasGradient对象](js-components-canvas-canvasgradient.md)
+    - [ImageData对象](js-components-canvas-imagedata.md)
+    - [Path2D对象](js-components-canvas-path2d.md)
+    - [ImageBitmap对象](js-components-canvas-imagebitmap.md)
+    - [OffscreenCanvas对象](js-components-canvas-offscreencanvas.md)
+    - [OffscreenCanvasRenderingContext2D对象](js-offscreencanvasrenderingcontext2d.md)
+- 栅格组件
+    - [基本概念](js-components-grid-basic-concepts.md)
+    - [grid-container](js-components-grid-container.md)
+    - [grid-row](js-components-grid-row.md)
+    - [grid-col](js-components-grid-col.md)
+- svg组件
+    - [通用属性](js-components-svg-common-attributes.md)
+    - [svg](js-components-svg.md)
+    - [rect](js-components-svg-rect.md)
+    - [circle](js-components-svg-circle.md)
+    - [ellipse](js-components-svg-ellipse.md)
+    - [path](js-components-svg-path.md)
+    - [line](js-components-svg-line.md)
+    - [polyline](js-components-svg-polyline.md)
+    - [polygon](js-components-svg-polygon.md)
+    - [text](js-components-svg-text.md)
+    - [tspan](js-components-svg-tspan.md)
+    - [textPath](js-components-svg-textpath.md)
+    - [animate](js-components-svg-animate.md)
+    - [animateMotion](js-components-svg-animatemotion.md)
+    - [animateTransform](js-components-svg-animatetransform.md)
+
+
 - 自定义组件
     - [基本用法](js-components-custom-basic-usage.md)
     - [继承样式](js-components-custom-style.md)
@@ -101,5 +102,4 @@
     - [事件参数](js-components-custom-event-parameter.md)
     - [slot插槽](js-components-custom-slot.md)
     - [生命周期定义](js-components-custom-lifecycle.md)
-- 附录
-    - [类型说明](js-appendix-types.md)
+- [数据类型说明](js-appendix-types.md)
diff --git a/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md b/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md
index 27c952f8c6c970bfa4cb427dd22baec0e61db6f4..db674a87f14740cceb8380d62bf20433b982632d 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md
@@ -1,4 +1,4 @@
-# 类型说明
+# 数据类型说明
 
 ## 长度类型
 
@@ -10,8 +10,8 @@
 
 ## 颜色类型
 
-| 名称    | 类型定义                  | 描述                                       |
-| ----- | --------------------- | ---------------------------------------- |
+| 名称    | 类型定义                        | 描述                                       |
+| ----- | --------------------------- | ---------------------------------------- |
 | color | string&nbsp;\|&nbsp;颜色枚举字符串 | 用于描述颜色信息,JS脚本中不支持颜色枚举格式。<br/>字符串格式如下:<br/>-&nbsp;'rgb(255,&nbsp;255,&nbsp;255)'<br/>-&nbsp;'rgba(255,&nbsp;255,&nbsp;255,&nbsp;1.0)'<br/>-&nbsp;HEX格式:'\#rrggbb','\#aarrggbb'<br/>-&nbsp;枚举格式:'black','white'。 |
 
 **表1** 当前支持的颜色枚举
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md
index 737797a239fb7a7789d0fbb7633aae75dd156e28..7e4751d2b207bc43d252d3a36e6dfdf6eea1d9d4 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md
@@ -18,7 +18,7 @@
 
 ## 属性
 
-除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性:↵
+除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性:
 
 | 名称   | 类型     | 默认值  | 必填   | 描述                                       |
 | ---- | ------ | ---- | ---- | ---------------------------------------- |
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md
index 7e15c7fe8db6ac15a3fde659c8e29b101e49f435..a8b786f7d2b8bb5449a63effabe5d92533ff81e3 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md
@@ -22,7 +22,7 @@ addColorStop(offset: number, color: string): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 500px; height: 500px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 500px; height: 500px; background-color: #ffff00;"></canvas>
   <input type="button" style="width: 180px; height: 60px;" value="fillStyle"onclick="handleClick" />
 </div>
   ```
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md
index 0c9b90fb19dfb7a42fb73f97f786d72966fe03fa..51aa4618b3bd86def22292491ef4c056c513fb0f 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md
@@ -1777,7 +1777,7 @@ getImageData(sx: number, sy: number, sw: number, sh: number): Object
   ```html
   <!-- xxx.hml -->
   <div>
-    <canvas  style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
+    <canvas id="getImageData" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
   </div>
   ```
 
@@ -1813,7 +1813,7 @@ putImageData(imageData: Object, dx: number, dy: number, dirtyX: number, dirtyY:
   ```html
   <!-- xxx.hml -->
   <div>
-    <canvas  style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
+    <canvas id="getImageData" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
   </div>
   ```
 
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-path2d.md b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-path2d.md
index b5921f229cf767b55c435695fc43e11c6090a649..803ca487efb7fb7c181a7d975828f5c0319c7765 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-canvas-path2d.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-canvas-path2d.md
@@ -21,7 +21,7 @@ addPath(path: Object): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 500px; height: 500px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 500px; height: 500px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -61,7 +61,7 @@ setTransform(scaleX: number, skewX: number, skewY: number, scaleY: number, trans
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -91,7 +91,7 @@ closePath(): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -130,7 +130,7 @@ moveTo(x: number, y: number): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 300px; height: 250px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 300px; height: 250px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -169,7 +169,7 @@ lineTo(x: number, y: number): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 400px; height: 450px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 400px; height: 450px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -213,7 +213,7 @@ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number,
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -252,7 +252,7 @@ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -293,7 +293,7 @@ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number,
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -332,7 +332,7 @@ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -374,7 +374,7 @@ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 500px; height: 450px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 500px; height: 450px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
@@ -412,7 +412,7 @@ rect(x: number, y: number, width: number, height: number): void
   ```html
 <!-- xxx.hml -->
 <div>
-  <canvas ref="canvas" style="width: 500px; height: 450px; background-color: #ffff00;"</canvas>
+  <canvas ref="canvas" style="width: 500px; height: 450px; background-color: #ffff00;"></canvas>
 </div>
   ```
 
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md b/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md
index f421cec1de41e922c2576f6f306436f38facd00d..52930bd935d7e69a83d3253121154cf869c91f33 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md
@@ -77,6 +77,7 @@
   display: flex;
   justify-content: center;
   align-items: center;
+  margin: 150px;
 }
 .rect{
   width: 200px;
@@ -92,7 +93,7 @@
   }
   /* 可以通过百分比指定动画运行的中间状态 */
   50% {    
-  background-color: \#f76160;    
+  background-color: #f76160;    
   transform:translate(100px) rotate(60deg) scale(1.3);  
   }  
   to {
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-common-transition.md b/zh-cn/application-dev/reference/arkui-js/js-components-common-transition.md
index ee8b4a65a998809b645117db9d2bf04101b48e38..67e55748dcf4baf58b5df617cc9bd0300baab7a0 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-common-transition.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-common-transition.md
@@ -49,6 +49,8 @@ PageA跳转到PageB,跳转的共享元素为image, shareid为“shareImage
   <list>
     <list-item type="description">
       <image src="item.jpg" shareid="shareImage" onclick="jump" class="shared-transition-style"></image>
+    </list-item>
+    <list-item>
       <text onclick="jump">Click on picture to Jump to ths details</text>
     </list-item>
   </list>
@@ -61,7 +63,8 @@ import router from '@system.router';
 export default {
   jump() {
     router.push({
-      uri: 'detailpage',
+      // 路径要与config.json配置里面的相同
+      uri: 'pages/detailpage',
     });
   },
 }
diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md b/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md
index 3e98506602702595eb6a35d279b688fc470a9315..4df75ebf6511acbe66d25da3d0f012541c8bdee9 100644
--- a/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md
+++ b/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md
@@ -94,10 +94,10 @@
 <div class="container">
   <svg>
     <text y="50" font-size="30" fill="blue">
+        text attribute x|opacity|rotate
       <animate attributeName="x" from="100" by="400" dur="3s" repeatCount="indefinite"></animate>
       <animate attributeName="opacity" from="0.01" to="0.99" dur="3s" repeatCount="indefinite"></animate>
       <animate attributeName="rotate" from="0" to="360" dur="3s" repeatCount="indefinite"></animate>
-      text attribute x|opacity|rotate
     </text>
   </svg>
 </div>
diff --git a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
index cb447c2fb3dfad40c9c212822e9727e29d2ee66d..1695c7d920128c10e0d842c1dfe1a174bc5aa3bc 100644
--- a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
+++ b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
@@ -1,136 +1,139 @@
 # 基于TS扩展的声明式开发范式
 
-- 组件
-    - 通用
-        - 通用事件
-            - [点击事件](ts-universal-events-click.md)
-            - [触摸事件](ts-universal-events-touch.md)
-            - [挂载卸载事件](ts-universal-events-show-hide.md)
-            - [拖拽事件](ts-universal-events-drag-drop.md)
-            - [按键事件](ts-universal-events-key.md)
-            - [焦点事件](ts-universal-focus-event.md)
-            - [鼠标事件](ts-universal-mouse-key.md)
-            - [组件区域变化事件](ts-universal-component-area-change-event.md)
-        - 通用属性
-            - [尺寸设置](ts-universal-attributes-size.md)
-            - [位置设置](ts-universal-attributes-location.md)
-            - [布局约束](ts-universal-attributes-layout-constraints.md)
-            - [Flex布局](ts-universal-attributes-flex-layout.md)
-            - [边框设置](ts-universal-attributes-border.md)
-            - [图片边框设置](ts-universal-attributes-border-image.md)
-            - [背景设置](ts-universal-attributes-background.md)
-            - [透明度设置](ts-universal-attributes-opacity.md)
-            - [显隐控制](ts-universal-attributes-visibility.md)
-            - [禁用控制](ts-universal-attributes-enable.md)
-            - [浮层](ts-universal-attributes-overlay.md)
-            - [Z序控制](ts-universal-attributes-z-order.md)
-            - [图形变换](ts-universal-attributes-transformation.md)
-            - [图像效果](ts-universal-attributes-image-effect.md)
-            - [形状裁剪](ts-universal-attributes-sharp-clipping.md)
-            - [文本样式设置](ts-universal-attributes-text-style.md)
-            - [栅格设置](ts-universal-attributes-grid.md)
-            - [颜色渐变](ts-universal-attributes-gradient-color.md)
-            - [Popup控制](ts-universal-attributes-popup.md)
-            - [Menu控制](ts-universal-attributes-menu.md)
-            - [点击控制](ts-universal-attributes-click.md)
-            - [焦点控制](ts-universal-attributes-focus.md)
-            - [悬浮态效果](ts-universal-attributes-hover-effect.md)
-            - [组件标识](ts-universal-attributes-component-id.md)
-            - [触摸热区设置](ts-universal-attributes-touch-target.md)
-            - [多态样式](ts-universal-attributes-polymorphic-style.md)
-        - 手势处理
-            - [绑定手势方法](ts-gesture-settings.md)
-            - 基础手势
-                - [TapGesture](ts-basic-gestures-tapgesture.md)
-                - [LongPressGesture](ts-basic-gestures-longpressgesture.md)
-                - [PanGesture](ts-basic-gestures-pangesture.md)
-                - [PinchGesture](ts-basic-gestures-pinchgesture.md)
-                - [RotationGesture](ts-basic-gestures-rotationgesture.md)
-                - [SwipeGesture](ts-basic-gestures-swipegesture.md)
-            - [组合手势](ts-combined-gestures.md)
-    - 基础组件
-        - [Blank](ts-basic-components-blank.md)
-        - [Button](ts-basic-components-button.md)
-        - [Checkbox](ts-basic-components-checkbox.md)
-        - [CheckboxGroup](ts-basic-components-checkboxgroup.md)
-        - [DataPanel](ts-basic-components-datapanel.md)
-        - [DatePicker](ts-basic-components-datepicker.md)
-        - [Divider](ts-basic-components-divider.md)
-        - [Gauge](ts-basic-components-gauge.md)
-        - [Image](ts-basic-components-image.md)
-        - [ImageAnimator](ts-basic-components-imageanimator.md)
-        - [LoadingProgress](ts-basic-components-loadingprogress.md)
-        - [Marquee](ts-basic-components-marquee.md)
-        - [Navigation](ts-basic-components-navigation.md)
-        - [PatternLock](ts-basic-components-patternlock.md)
-        - [PluginComponent](ts-basic-components-plugincomponent.md)
-        - [Progress](ts-basic-components-progress.md)
-        - [QRCode](ts-basic-components-qrcode.md)
-        - [Radio](ts-basic-components-radio.md)
-        - [Rating](ts-basic-components-rating.md)
-        - [RichText](ts-basic-components-richtext.md)
-        - [ScrollBar](ts-basic-components-scrollbar.md)
-        - [Search](ts-basic-components-search.md)
-        - [Select](ts-basic-components-select.md)
-        - [Slider](ts-basic-components-slider.md)
-        - [Span](ts-basic-components-span.md)
-        - [Stepper](ts-basic-components-stepper.md)
-        - [StepperItem](ts-basic-components-stepperitem.md)
-        - [Text](ts-basic-components-text.md)
-        - [TextArea](ts-basic-components-textarea.md)
-        - [TextClock](ts-basic-components-textclock.md)
-        - [TextInput](ts-basic-components-textinput.md)
-        - [TextPicker](ts-basic-components-textpicker.md)
-        - [TextTimer](ts-basic-components-texttimer.md)
-        - [TimePicker](ts-basic-components-timepicker.md)
-        - [Toggle](ts-basic-components-toggle.md)
-        - [Web](ts-basic-components-web.md)
-        - [XComponent](ts-basic-components-xcomponent.md)
-    - 容器组件
-        - [AbilityComponent](ts-container-ability-component.md)
-        - [AlphabetIndexer](ts-container-alphabet-indexer.md)
-        - [Badge](ts-container-badge.md)
-        - [Column](ts-container-column.md)
-        - [ColumnSplit](ts-container-columnsplit.md)
-        - [Counter](ts-container-counter.md)
-        - [Flex](ts-container-flex.md)
-        - [GridContainer](ts-container-gridcontainer.md)
-        - [Grid](ts-container-grid.md)
-        - [GridItem](ts-container-griditem.md)
-        - [List](ts-container-list.md)
-        - [ListItem](ts-container-listitem.md)
-        - [Navigator](ts-container-navigator.md)        
-        - [Panel](ts-container-panel.md)
-        - [Refresh](ts-container-refresh.md)
-        - [RelativeContainer](ts-container-relativecontainer.md)
-        - [Row](ts-container-row.md)
-        - [RowSplit](ts-container-rowsplit.md)
-        - [Scroll](ts-container-scroll.md)       
-        - [SideBarContainer](ts-container-sidebarcontainer.md)
-        - [Stack](ts-container-stack.md)       
-        - [Swiper](ts-container-swiper.md)
-        - [Tabs](ts-container-tabs.md)
-        - [TabContent](ts-container-tabcontent.md)
-    - 媒体组件
-        - [Video](ts-media-components-video.md)
-    - 绘制组件
-        - [Circle](ts-drawing-components-circle.md)
-        - [Ellipse](ts-drawing-components-ellipse.md)
-        - [Line](ts-drawing-components-line.md)
-        - [Polyline](ts-drawing-components-polyline.md)
-        - [Polygon](ts-drawing-components-polygon.md)
-        - [Path](ts-drawing-components-path.md)
-        - [Rect](ts-drawing-components-rect.md)
-        - [Shape](ts-drawing-components-shape.md)
-    - 画布组件
-        - [Canvas](ts-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D对象](ts-canvasrenderingcontext2d.md)
-        - [OffscreenCanvasRenderingConxt2D对象](ts-offscreencanvasrenderingcontext2d.md)
-        - [Lottie](ts-components-canvas-lottie.md)
-        - [Path2D对象](ts-components-canvas-path2d.md)
-        - [CanvasGradient对象](ts-components-canvas-canvasgradient.md)
-        - [ImageBitmap对象](ts-components-canvas-imagebitmap.md)
-        - [ImageData对象](ts-components-canvas-imagedata.md)
+- 组件通用信息
+    - 通用事件
+        - [点击事件](ts-universal-events-click.md)
+        - [触摸事件](ts-universal-events-touch.md)
+        - [挂载卸载事件](ts-universal-events-show-hide.md)
+        - [拖拽事件](ts-universal-events-drag-drop.md)
+        - [按键事件](ts-universal-events-key.md)
+        - [焦点事件](ts-universal-focus-event.md)
+        - [鼠标事件](ts-universal-mouse-key.md)
+        - [组件区域变化事件](ts-universal-component-area-change-event.md)
+        - [组件可见区域变化事件](ts-universal-component-visible-area-change-event.md)
+    - 通用属性
+        - [尺寸设置](ts-universal-attributes-size.md)
+        - [位置设置](ts-universal-attributes-location.md)
+        - [布局约束](ts-universal-attributes-layout-constraints.md)
+        - [Flex布局](ts-universal-attributes-flex-layout.md)
+        - [边框设置](ts-universal-attributes-border.md)
+        - [图片边框设置](ts-universal-attributes-border-image.md)
+        - [背景设置](ts-universal-attributes-background.md)
+        - [透明度设置](ts-universal-attributes-opacity.md)
+        - [显隐控制](ts-universal-attributes-visibility.md)
+        - [禁用控制](ts-universal-attributes-enable.md)
+        - [浮层](ts-universal-attributes-overlay.md)
+        - [Z序控制](ts-universal-attributes-z-order.md)
+        - [图形变换](ts-universal-attributes-transformation.md)
+        - [图像效果](ts-universal-attributes-image-effect.md)
+        - [形状裁剪](ts-universal-attributes-sharp-clipping.md)
+        - [文本样式设置](ts-universal-attributes-text-style.md)
+        - [栅格设置](ts-universal-attributes-grid.md)
+        - [颜色渐变](ts-universal-attributes-gradient-color.md)
+        - [Popup控制](ts-universal-attributes-popup.md)
+        - [Menu控制](ts-universal-attributes-menu.md)
+        - [点击控制](ts-universal-attributes-click.md)
+        - [焦点控制](ts-universal-attributes-focus.md)
+        - [悬浮态效果](ts-universal-attributes-hover-effect.md)
+        - [组件标识](ts-universal-attributes-component-id.md)
+        - [触摸热区设置](ts-universal-attributes-touch-target.md)
+        - [多态样式](ts-universal-attributes-polymorphic-style.md)
+    - 手势处理
+        - [绑定手势方法](ts-gesture-settings.md)
+        - 基础手势
+            - [TapGesture](ts-basic-gestures-tapgesture.md)
+            - [LongPressGesture](ts-basic-gestures-longpressgesture.md)
+            - [PanGesture](ts-basic-gestures-pangesture.md)
+            - [PinchGesture](ts-basic-gestures-pinchgesture.md)
+            - [RotationGesture](ts-basic-gestures-rotationgesture.md)
+            - [SwipeGesture](ts-basic-gestures-swipegesture.md)
+        - [组合手势](ts-combined-gestures.md)
+- 基础组件
+    - [Blank](ts-basic-components-blank.md)
+    - [Button](ts-basic-components-button.md)
+    - [Checkbox](ts-basic-components-checkbox.md)
+    - [CheckboxGroup](ts-basic-components-checkboxgroup.md)
+    - [DataPanel](ts-basic-components-datapanel.md)
+    - [DatePicker](ts-basic-components-datepicker.md)
+    - [Divider](ts-basic-components-divider.md)
+    - [Gauge](ts-basic-components-gauge.md)
+    - [Image](ts-basic-components-image.md)
+    - [ImageAnimator](ts-basic-components-imageanimator.md)
+    - [LoadingProgress](ts-basic-components-loadingprogress.md)
+    - [Marquee](ts-basic-components-marquee.md)
+    - [Navigation](ts-basic-components-navigation.md)
+    - [PatternLock](ts-basic-components-patternlock.md)
+    - [PluginComponent](ts-basic-components-plugincomponent.md)
+    - [Progress](ts-basic-components-progress.md)
+    - [QRCode](ts-basic-components-qrcode.md)
+    - [Radio](ts-basic-components-radio.md)
+    - [Rating](ts-basic-components-rating.md)
+    - [RemoteWindow](ts-basic-components-remotewindow.md)
+    - [RichText](ts-basic-components-richtext.md)
+    - [ScrollBar](ts-basic-components-scrollbar.md)
+    - [Search](ts-basic-components-search.md)
+    - [Select](ts-basic-components-select.md)
+    - [Slider](ts-basic-components-slider.md)
+    - [Span](ts-basic-components-span.md)
+    - [Stepper](ts-basic-components-stepper.md)
+    - [StepperItem](ts-basic-components-stepperitem.md)
+    - [Text](ts-basic-components-text.md)
+    - [TextArea](ts-basic-components-textarea.md)
+    - [TextClock](ts-basic-components-textclock.md)
+    - [TextInput](ts-basic-components-textinput.md)
+    - [TextPicker](ts-basic-components-textpicker.md)
+    - [TextTimer](ts-basic-components-texttimer.md)
+    - [TimePicker](ts-basic-components-timepicker.md)
+    - [Toggle](ts-basic-components-toggle.md)
+    - [Web](ts-basic-components-web.md)
+    - [XComponent](ts-basic-components-xcomponent.md)
+- 容器组件
+    - [AbilityComponent](ts-container-ability-component.md)
+    - [AlphabetIndexer](ts-container-alphabet-indexer.md)
+    - [Badge](ts-container-badge.md)
+    - [Column](ts-container-column.md)
+    - [ColumnSplit](ts-container-columnsplit.md)
+    - [Counter](ts-container-counter.md)
+    - [Flex](ts-container-flex.md)
+    - [GridContainer](ts-container-gridcontainer.md)
+    - [Grid](ts-container-grid.md)
+    - [GridItem](ts-container-griditem.md)
+    - [List](ts-container-list.md)
+    - [ListItem](ts-container-listitem.md)
+    - [Navigator](ts-container-navigator.md)        
+    - [Panel](ts-container-panel.md)
+    - [Refresh](ts-container-refresh.md)
+    - [RelativeContainer](ts-container-relativecontainer.md)
+    - [Row](ts-container-row.md)
+    - [RowSplit](ts-container-rowsplit.md)
+    - [Scroll](ts-container-scroll.md)       
+    - [SideBarContainer](ts-container-sidebarcontainer.md)
+    - [Stack](ts-container-stack.md)       
+    - [Swiper](ts-container-swiper.md)
+    - [Tabs](ts-container-tabs.md)
+    - [TabContent](ts-container-tabcontent.md)
+- 媒体组件
+    - [Video](ts-media-components-video.md)
+- 绘制组件
+    - [Circle](ts-drawing-components-circle.md)
+    - [Ellipse](ts-drawing-components-ellipse.md)
+    - [Line](ts-drawing-components-line.md)
+    - [Polyline](ts-drawing-components-polyline.md)
+    - [Polygon](ts-drawing-components-polygon.md)
+    - [Path](ts-drawing-components-path.md)
+    - [Rect](ts-drawing-components-rect.md)
+    - [Shape](ts-drawing-components-shape.md)
+- 画布组件
+    - [Canvas](ts-components-canvas-canvas.md)
+    - [CanvasRenderingContext2D对象](ts-canvasrenderingcontext2d.md)
+    - [OffscreenCanvasRenderingConxt2D对象](ts-offscreencanvasrenderingcontext2d.md)
+    - [Lottie](ts-components-canvas-lottie.md)
+    - [Path2D对象](ts-components-canvas-path2d.md)
+    - [CanvasGradient对象](ts-components-canvas-canvasgradient.md)
+    - [ImageBitmap对象](ts-components-canvas-imagebitmap.md)
+    - [ImageData对象](ts-components-canvas-imagedata.md)
+
+
 - 动画
     - [属性动画](ts-animatorproperty.md)
     - [显式动画](ts-explicit-animation.md)
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png b/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png
index a111a8e4ed06adf129c010801d10880a22018b25..22285e0910e3c447036d2144194a2e4301c2df6f 100644
Binary files a/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png and b/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/borderImageGradient.png b/zh-cn/application-dev/reference/arkui-ts/figures/borderImageGradient.png
new file mode 100644
index 0000000000000000000000000000000000000000..edf91d4844deeee4f997f65d2d88b45bf7ff7f1d
Binary files /dev/null and b/zh-cn/application-dev/reference/arkui-ts/figures/borderImageGradient.png differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/075424f4-e9d4-4b96-93a9-22d80f31e316 .png b/zh-cn/application-dev/reference/arkui-ts/figures/focus.png
similarity index 100%
rename from zh-cn/application-dev/reference/arkui-ts/figures/075424f4-e9d4-4b96-93a9-22d80f31e316 .png
rename to zh-cn/application-dev/reference/arkui-ts/figures/focus.png
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif
index e5566aaf94677c85c889362eedefc2ce484ed9d5..794e6fea1ccbe37ea7bac2dc93b57333fa412ead 100644
Binary files a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif and b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001236876377.jpg b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001236876377.jpg
index b12c5fb6563c7ee9d8dfa7e6af1cfe1dcfa1361c..e5af4f50ebd9bdab6af30219f30fdf948a019a52 100644
Binary files a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001236876377.jpg and b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001236876377.jpg differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001250678457.gif b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001250678457.gif
index 6b44b6a2adc2528e13e95bc10d2a67874226a63b..96afd9a948c90e22cd52ab4c55218bf97591b3ec 100644
Binary files a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001250678457.gif and b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001250678457.gif differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md
index efd45c871b0b9a7f4c34f503bc76a67ae763646f..88a5ed06137d53013fc251ef068033a6623feb0a 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md
@@ -31,7 +31,7 @@ Blank(min?:  Length)
 
 | 名称 | 参数类型 | 默认值 | 描述 | 
 | -------- | -------- | -------- | -------- |
-| color | Color | 0x00000000 | 设置空白填充的填充颜色。 | 
+| color | [ResourceColor](../../ui/ts-types.md) | 0x00000000 | 设置空白填充的填充颜色。 | 
 
 >  **说明:**
 > - 不支持通用属性方法。
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
index 27ac9a92677ae717972bb9a7e759189f78d157f0..8c92eb8a03de16824b0511d0c54415106396aa1c 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
@@ -3,7 +3,7 @@
 按钮组件,可快速创建不同样式的按钮。
 
 >  **说明:**
-> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>  该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
 ## 权限列表
@@ -21,44 +21,44 @@
 - Button(options?: {type?: ButtonType, stateEffect?: boolean})
 
   **表1** options参数说明
-  
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
-  | -------- | -------- | -------- | -------- | -------- |
-  | type | ButtonType | 否 | Capsule | 描述按钮风格。 |
-  | stateEffect | boolean | 否 | true | 按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭。 |
 
+  | 参数名         | 参数类型       | 必填   | 默认值     | 参数描述                              |
+  | ----------- | ---------- | ---- | ------- | --------------------------------- |
+  | type        | ButtonType | 否    | Capsule | 描述按钮风格。                           |
+  | stateEffect | boolean    | 否    | true    | 按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭。 |
 
-- Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })
+
+- Button(label?: ResourceStr, options?: { type?: ButtonType, stateEffect?: boolean })
 
   使用文本内容创建相应的按钮组件,此时Button无法包含子组件。
 
   **表2** value参数说明
-  
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
-  | -------- | -------- | -------- | -------- | -------- |
-  | label | string | 否 | - | 按钮文本内容。 |
-  | options | Object | 否 | - | 见options参数说明。 |
+
+  | 参数名     | 参数类型                                | 必填   | 默认值  | 参数描述          |
+  | ------- | ----------------------------------- | ---- | ---- | ------------- |
+  | label   | [ResourceStr](../../ui/ts-types.md) | 否    | -    | 按钮文本内容。       |
+  | options | Object                              | 否    | -    | 见options参数说明。 |
 
 
 ## 属性
 
-| 名称 | 参数类型 | 默认值 | 描述 |
-| -------- | -------- | -------- | -------- |
-| type | ButtonType | Capsule | 设置Button样式。 |
-| stateEffect | boolean | true | 状态切换时是否开启切换效果,当状态置为false时,点击效果关闭。 |
+| 名称          | 参数类型       | 默认值     | 描述                                |
+| ----------- | ---------- | ------- | --------------------------------- |
+| type        | ButtonType | Capsule | 设置Button样式。                       |
+| stateEffect | boolean    | true    | 状态切换时是否开启切换效果,当状态置为false时,点击效果关闭。 |
 
 - ButtonType枚举说明
-  | 名称 | 描述 |
-  | -------- | -------- |
+  | 名称      | 描述                 |
+  | ------- | ------------------ |
   | Capsule | 胶囊型按钮(圆角默认为高度的一半)。 |
-  | Circle | 圆形按钮。 |
-  | Normal | 普通按钮(默认不带圆角)。 |
+  | Circle  | 圆形按钮。              |
+  | Normal  | 普通按钮(默认不带圆角)。      |
 
 >  **说明:**
-> - 按钮圆角通过[通用属性borderRadius设置](ts-universal-attributes-border.md)(不支持通过border接口设置圆角)。
-> - 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角始终为高度的一半。
-> - 当按钮类型为Circle时,borderRadius即为按钮半径,若未设置borderRadius按钮半径则为宽、高中较小值的一半。
-> - 按钮文本通过[通用文本样式](ts-universal-attributes-text-style.md)进行设置。
+>  - 按钮圆角通过[通用属性borderRadius设置](ts-universal-attributes-border.md)(不支持通过border接口设置圆角)。
+>  - 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角始终为高度的一半。
+>  - 当按钮类型为Circle时,borderRadius即为按钮半径,若未设置borderRadius按钮半径则为宽、高中较小值的一半。
+>  - 按钮文本通过[通用文本样式](ts-universal-attributes-text-style.md)进行设置。
 
 
 ## 示例
@@ -75,6 +75,7 @@ struct ButtonExample {
         Button('Ok', { type: ButtonType.Normal, stateEffect: true }).borderRadius(8).backgroundColor(0x317aff).width(90)
         Button({ type: ButtonType.Normal, stateEffect: true }) {
           Row() {
+            // 图片建议通过$r创建Resource对象引入
             Image($r('app.media.loading')).width(20).height(20).margin({ left: 12 })
             Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 5, right: 12 })
           }.alignItems(VerticalAlign.Center)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md
index ed99d0137cd965b927013eda6897a0ee0040d528..1eb4e1283c1c98c888489b5dbfa1e75ae33d488d 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md
@@ -53,45 +53,47 @@ CheckboxGroup( group?: string )
 @Entry
 @Component
 struct CheckboxExample {
-
   build() {
     Scroll() {
       Column() {
-          Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }){
-             CheckboxGroup({group : 'checkboxGroup'})
-          	   .selectedColor(0xed6f21)
-               .onChange((itemName:CheckboxGroupResult) => {
-                console.info("TextPicker::dialogResult is" + JSON.stringify(itemName))
-          	   })
-             Text('select all').fontSize(20)
-           }
-          Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }){
-             Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
-                .select(true)
-                .selectedColor(0x39a2db)
-                .onChange((value: boolean) => {
-                 console.info('Checkbox1 change is' + value)
-                })
-              Text('Checkbox1').fontSize(20)
-            }
-         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }){
-            Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
-                .select(false)
-                .selectedColor(0x39a2db)
-                .onChange((value: boolean) => {
-                 console.info('Checkbox2 change is' + value)
-                })
-              Text('Checkbox2').fontSize(20)
-            }
-         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }){
-            Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
-              .select(true)
-              .selectedColor(0x39a2db)
-              .onChange((value: boolean) => {
-               console.info('Checkbox3 change is' + value)
-              })
-            Text('Checkbox3').fontSize(20)
-         }
+        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+          CheckboxGroup({ group: 'checkboxGroup' })
+            .selectedColor(0xed6f21)
+            .onChange((itemName: CheckboxGroupResult) => {
+              console.info("TextPicker::dialogResult is" + JSON.stringify(itemName))
+            })
+          Text('select all').fontSize(20)
+        }
+
+        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+          Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
+            .select(true)
+            .selectedColor(0x39a2db)
+            .onChange((value: boolean) => {
+              console.info('Checkbox1 change is' + value)
+            })
+          Text('Checkbox1').fontSize(20)
+        }
+
+        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+          Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
+            .select(false)
+            .selectedColor(0x39a2db)
+            .onChange((value: boolean) => {
+              console.info('Checkbox2 change is' + value)
+            })
+          Text('Checkbox2').fontSize(20)
+        }
+
+        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+          Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
+            .select(true)
+            .selectedColor(0x39a2db)
+            .onChange((value: boolean) => {
+              console.info('Checkbox3 change is' + value)
+            })
+          Text('Checkbox3').fontSize(20)
+        }
       }
     }
   }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md
index c2d7304ceeedfb3237be0b2dbdaa5897d869a6b5..c38f05907fb98fc1832fb1f482fe9953460a8f59 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md
@@ -34,9 +34,9 @@ Image(src: string | PixelMap | Resource)
 
 **参数:** 
 
-| 参数名 | 参数类型                                                     | 必填 | 默认值 | 参数描述                                                     |
-| ------ | ------------------------------------------------------------ | ---- | ------ | ------------------------------------------------------------ |
-| src    | string\|&nbsp;[PixelMap](../apis/js-apis-image.md#pixelmap7)\|&nbsp;[Resource](../../ui/ts-types.md#resource类型) | 是   | -      | 图片的数据源,支持本地图片和网络图片。<br/>当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持该Image组件被跨包/跨模块调用,建议使用`$r`方式来管理需全局使用的图片资源。<br/>\- 支持的图片格式包括png、jpg、bmp、svg和gif。<br/>\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]`为`Base64`字符串数据。<br/>\- 支持`dataability://`路径前缀的字符串,用于访问通过data&nbsp;ability提供的图片路径。 |
+| 参数名  | 参数类型                                     | 必填   | 默认值  | 参数描述                                     |
+| ---- | ---------------------------------------- | ---- | ---- | ---------------------------------------- |
+| src  | string\|&nbsp;[PixelMap](../apis/js-apis-image.md#pixelmap7)\|&nbsp;[Resource](../../ui/ts-types.md#resource类型) | 是    | -    | 图片的数据源,支持本地图片和网络图片。<br/>当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持该Image组件被跨包/跨模块调用,建议使用`$r`方式来管理需全局使用的图片资源。<br/>\- 支持的图片格式包括png、jpg、bmp、svg和gif。<br/>\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]`为`Base64`字符串数据。<br/>\- 支持`dataability://`路径前缀的字符串,用于访问通过data&nbsp;ability提供的图片路径。 |
 
 ## 属性
 
@@ -45,7 +45,7 @@ Image(src: string | PixelMap | Resource)
 | 名称                    | 参数类型                                     | 默认值                      | 描述                                       |
 | --------------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- |
 | alt                   | string \| [Resource](../../ui/ts-types.md#resource类型) | -                        | 加载时显示的占位图,支持本地图片和网络图片。                   |
-| objectFit             | [ImageFit](#imagefit枚举说明)                | ImageFit.Cover           | 设置图片的缩放类型。                               |
+| objectFit             | ImageFit                                 | ImageFit.Cover           | 设置图片的缩放类型。                               |
 | objectRepeat          | [ImageRepeat](ts-appendix-enums.md#imagerepeat) | NoRepeat                 | 设置图片的重复样式。<br/>> **说明:**<br/>>&nbsp;-&nbsp;svg类型图源不支持该属性。 |
 | interpolation         | [ImageInterpolation](#imageinterpolation) | ImageInterpolation.None  | 设置图片的插值效果,仅针对图片放大插值。<br/>>&nbsp;**说明:**<br/>>&nbsp;-&nbsp;svg类型图源不支持该属性。<br/>>&nbsp;-&nbsp;PixelMap资源不支持该属性。 |
 | renderMode            | [ImageRenderMode](#imagerendermode)      | ImageRenderMode.Original | 设置图片渲染的模式。<br/>>&nbsp;**说明:**<br/>>&nbsp;-&nbsp;svg类型图源不支持该属性。 |
@@ -234,8 +234,8 @@ struct ImageExample2 {
 @Entry
 @Component
 struct ImageExample3 {
-  @State width: number = 0
-  @State height: number = 0
+  @State widthValue: number = 0
+  @State heightValue: number = 0
   private on: Resource = $r('app.media.image_on')
   private off: Resource = $r('app.media.image_off')
   private on2off: Resource = $r('app.media.image_on2off')
@@ -256,8 +256,8 @@ struct ImageExample3 {
             .height(180).width(180)
             // 图片加载完成后,获取图片尺寸。
             .onComplete((msg: { width: number,height: number }) => {
-              this.width = msg.width
-              this.height = msg.height
+              this.widthValue = msg.width
+              this.heightValue = msg.height
             })
             .onError(() => {
               console.log('load image fail')
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md
index 45c6e0a64f6076918d4cbc52da043b69b1522d6a..fc70ceca6fdedde145509690484b3fafe1a4dc93 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md
@@ -88,7 +88,11 @@ struct ProgressExample {
       Text('Capsule Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
       Row({ space: 40 }) {
         Progress({ value: 10, type: ProgressType.Capsule }).width(100).height(50)
-        Progress({ value: 20, total: 150, type: ProgressType.Capsule }).color(Color.Grey).value(50).width(100).height(50)
+        Progress({ value: 20, total: 150, type: ProgressType.Capsule })
+          .color(Color.Grey)
+          .value(50)
+          .width(100)
+          .height(50)
       }
     }.width('100%').margin({ top: 30 })
   }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md
new file mode 100644
index 0000000000000000000000000000000000000000..83968b2c31527c44783936c828ec688a41408fe6
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md
@@ -0,0 +1,75 @@
+# RemoteWindow
+
+远程控制窗口组件,可以通过此组件控制应用窗口,提供启动退出过程中控件动画和应用窗口联动动画的能力。
+
+>  **说明:**
+>  
+>  该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>
+>  该组件为系统接口。
+
+## 子组件
+
+不可以包含子组件。
+
+## 接口
+
+RemoteWindow(target: WindowAnimationTarget)
+
+通过窗口动画对象创建组件。
+
+- 参数
+  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+  | -------- | -------- | -------- | -------- | -------- |
+  | target | [WindowAnimationTarget](#windowanimationtarget) | 是 | - | 需要控制的动画窗口的描述。 |
+
+## WindowAnimationTarget
+目标窗口,用来远程控制实现动画。
+
+| 参数      | 类型     | 描述 |
+| ------- | ------ | ----------------------- |
+| bundleName  | string | 动画窗口所对应的进程。|
+| abilityName | string | 动画窗口所对应的Ability。|
+| windowBounds | [RRect](#rrect) | 动画窗口实际大小。|
+
+## RRect
+圆角矩形。
+
+| 参数      | 类型     | 描述 |
+| ------- | ------ | ----------------------- |
+| left  | number | 动画窗口左上角相对于屏幕横坐标。|
+| top | number | 动画窗口左上角相对于屏幕纵坐标。|
+| width | number | 动画窗口宽度大小。|
+| height | number | 动画窗口高度大小。|
+| radius | number | 动画窗口圆角大小。|
+
+## 属性
+
+支持[通用属性](ts-universal-attributes-size.md)。
+
+## 事件
+
+支持[通用事件](ts-universal-events-click.md)。
+
+## 示例
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct RemoteWindowExample {
+  @State target: WindowAnimationTarget = undefined // 通过windowAnimationManager获取
+
+  build() {
+    Column() {
+      RemoteWindow(this.target)
+      	.translate({x:100, y:200})
+      	.scale({x:0.5, y:0.5})
+      .opacity(0.8)
+      	.position({x:px2vp(this.target?.windowBounds.left), y:px2vp(this.target?.windowBounds.top)})
+      	.width(px2vp(this.target?.windowBounds.width))
+      	.height(px2vp(this.target?.windowBounds.height))
+     }
+  }
+}
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-richtext.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-richtext.md
index 0cad7bdb93a51273eddf25c96c70edfbe208e2f1..0f6bafb6ce0a4fffc2f41e93c164e3c9d41bceeb 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-richtext.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-richtext.md
@@ -48,7 +48,7 @@ RichText\(content:string\)
 | \<script>\</script> | 用于定义客户端文本,比如JavaScript。 | \<script>document.write("Hello World!")\</script> |
 
 ## 示例
-
+示例效果请以真机运行为准,当前IDE预览器不支持。
 ```ts
 // xxx.ets
 @Entry
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-select.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-select.md
index 290c065e01ab19dda9b62fda3739171d764f6d86..b7b0543679eab4ca33d6d88e88f3ab3144f977d0 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-select.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-select.md
@@ -53,16 +53,16 @@ Select(options: Array\<SelectOption\>)
 struct SelectExample {
   build() {
     Column() {
-      Select([{value:'aaa',icon: "/common/1.png"},
-              {value:'bbb',icon: "/common/2.png"},
-              {value:'ccc',icon: "/common/3.png"},
-              {value:'ddd',icon: "/common/4.png"}])
+      Select([{ value: 'aaa', icon: "/common/1.png" },
+              { value: 'bbb', icon: "/common/2.png" },
+              { value: 'ccc', icon: "/common/3.png" },
+              { value: 'ddd', icon: "/common/4.png" }])
         .selected(2)
         .value('TTT')
-        .font({size: 30, weight:400, family: 'serif', style: FontStyle.Normal })
-        .selectedOptionFont({size: 40, weight: 500, family: 'serif', style: FontStyle.Normal })
-        .optionFont({size: 30, weight: 400, family: 'serif', style: FontStyle.Normal })
-        .onSelect((index:number)=>{
+        .font({ size: 30, weight: 400, family: 'serif', style: FontStyle.Normal })
+        .selectedOptionFont({ size: 40, weight: 500, family: 'serif', style: FontStyle.Normal })
+        .optionFont({ size: 30, weight: 400, family: 'serif', style: FontStyle.Normal })
+        .onSelect((index: number) => {
           console.info("Select:" + index)
         })
     }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md
index e1757785d1b091caa538b4404c87ae48a034af2d..bc01e8bd1f71a5dc8c195d937e95433b2aab3fbc 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md
@@ -33,39 +33,39 @@ Slider(value:{value?: number, min?: number, max?: number, step?: number, style?:
   | reverse<sup>8+</sup> | boolean | 否 | false | 设置滑动条取值范围是否反向。 |
 
 - SliderStyle枚举说明
-  | 名称 | 描述 | 
+  | 名称 | 描述 |
   | -------- | -------- |
-  | OutSet | 滑块在滑轨上。 | 
-  | InSet | 滑块在滑轨内。 | 
+  | OutSet | 滑块在滑轨上。 |
+  | InSet | 滑块在滑轨内。 |
 
 
 ## 属性
 
 不支持触摸热区设置。
 
-| 名称 | 参数类型 | 默认值 | 描述 | 
+| 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| blockColor | Color | - | 设置滑块的颜色。 | 
-| trackColor | Color | - | 设置滑轨的背景颜色。 | 
-| selectedColor | Color | - | 设置滑轨的已滑动颜色。 | 
-| showSteps | boolean | false | 设置当前是否显示步长刻度值。 | 
-| showTips | boolean | false | 设置滑动时是否显示气泡提示百分比。 | 
+| blockColor | Color | - | 设置滑块的颜色。 |
+| trackColor | Color | - | 设置滑轨的背景颜色。 |
+| selectedColor | Color | - | 设置滑轨的已滑动颜色。 |
+| showSteps | boolean | false | 设置当前是否显示步长刻度值。 |
+| showTips | boolean | false | 设置滑动时是否显示气泡提示百分比。 |
 
 
 ## 事件
 
 通用事件仅支持:OnAppear,OnDisAppear。
 
-| 名称 | 功能描述 | 
+| 名称 | 功能描述 |
 | -------- | -------- |
-| onChange(callback:&nbsp;(value:&nbsp;number,&nbsp;mode:&nbsp;SliderChangeMode)&nbsp;=&gt;&nbsp;void) | Slider滑动时触发事件回调。<br/>value:当前进度值。<br/>mode:拖动状态。 | 
+| onChange(callback:&nbsp;(value:&nbsp;number,&nbsp;mode:&nbsp;SliderChangeMode)&nbsp;=&gt;&nbsp;void) | Slider滑动时触发事件回调。<br/>value:当前进度值。<br/>mode:拖动状态。 |
 
 - SliderChangeMode枚举说明
-  | 名称 | 描述 | 
-  | -------- | -------- |
-  | Begin | 用户开始拖动滑块。 | 
-  | Moving | 用户拖动滑块中。 | 
-  | End | 用户结束拖动滑块。 | 
+  | 名称 | 值 | 描述 |
+  | -------- | -------- | -------- |
+  | Begin | 0 | 用户开始拖动滑块。 |
+  | Moving | 1 | 用户拖动滑块中。 |
+  | End | 2 | 用户结束拖动滑块。 |
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-stepper.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-stepper.md
index 4e57b1813c3091e0fdb802d955c64f12613d0c64..d8cb0bb3008facedca47015abeb1270802e1f9a9 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-stepper.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-stepper.md
@@ -63,47 +63,50 @@ struct StepperExample {
           .fontColor(Color.Blue)
           .width(200)
           .lineHeight(50)
-          .margin({top:250})
+          .margin({ top: 250 })
       }
       .nextLabel('')
-      .position({x: '35%', y: 0})
+      .position({ x: '35%', y: 0 })
+
       StepperItem() {
         Text('Page Two')
           .fontSize(35)
           .fontColor(Color.Blue)
           .width(200)
           .lineHeight(50)
-          .margin({top:250})
-          .onClick(()=>{
+          .margin({ top: 250 })
+          .onClick(() => {
             this.firstState = this.firstState === ItemState.Skip ? ItemState.Normal : ItemState.Skip
           })
       }
       .nextLabel('Next')
       .prevLabel('Previous')
       .status(this.firstState)
-      .position({x: '35%', y: 0})
+      .position({ x: '35%', y: 0 })
+
       StepperItem() {
         Text('Page Three')
           .fontSize(35)
           .fontColor(Color.Blue)
           .width(200)
           .lineHeight(50)
-          .margin({top:250})
-          .onClick(()=>{
+          .margin({ top: 250 })
+          .onClick(() => {
             this.secondState = this.secondState === ItemState.Waiting ? ItemState.Normal : ItemState.Waiting
           })
       }
-      .position({x: '35%', y: 0})
+      .position({ x: '35%', y: 0 })
       .status(this.secondState)
+
       StepperItem() {
         Text('Page four')
           .fontSize(35)
           .fontColor(Color.Blue)
           .width(200)
           .lineHeight(50)
-          .margin({top:250})
+          .margin({ top: 250 })
       }
-      .position({x: '35%', y: 0})
+      .position({ x: '35%', y: 0 })
       .nextLabel('Finish')
     }
     .onFinish(() => {
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-text.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-text.md
index b01ca87835f4d78d370d767d30944bd9483b3cb3..879b659b80285fc1330a05ecad42de5f5e0e155f 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-text.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-text.md
@@ -23,7 +23,7 @@ Text(content?: string)
 - 参数
   | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
   | -------- | -------- | -------- | -------- | -------- |
-  | content | string | 否 | '' | 文本内容,包含子组件Span时不生效,显示Span内容。 |
+  | content | string | 否 | '' | 文本内容。包含子组件Span时不生效,显示Span内容,并且此时text组件的样式不生效。 |
 
 
 ## 属性
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
index 92cd8df915ddee1167ecd688daef50e527743335..b5edeedb5dc259f890202404e5b6c83abb27e133 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-timepicker.md
@@ -58,7 +58,7 @@ TimePicker(options?: TimePickerOptions)
 @Entry
 @Component
 struct TimePickerExample {
-  private selectedTime: Date = new Date('08-00')
+  private selectedTime: Date = new Date('7/22/2022 8:00:00')
 
   build() {
     Column() {
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
index 25395c310c362dd9e69fd7901e6de7de7e9fafdc..2cc6753eaa71fe6436ebb6b7f19e868ca2735160 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
@@ -1,12 +1,14 @@
 # Web
 
 > **说明:** 
-> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>
+> - 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> - 示例效果请以真机运行为准,当前IDE预览器不支持。
 
 提供具有网页显示能力的Web组件。
 
 ## 权限列表
-访问在线网页时需添加网络权限:ohos.permission.INTERNET
+访问在线网页时需添加网络权限:ohos.permission.INTERNET。
 
 ## 子组件
 
@@ -14,39 +16,437 @@
 
 ## 接口
 
--   Web\(options: { src: string, controller?: WebController }\)
-
-    表1 options参数说明
-
-    | 参数名     | 参数类型                        | 必填 | 默认值 | 参数描述       |
-    | ---------- | ------------------------------- | ---- | ------ | -------------- |
-    | src        | string                          | 是   | -      | 网页资源地址。 |
-    | controller | [WebController](#webcontroller) | 否   | -      | 控制器。       |
-
+Web(options: { src: string, controller?: WebController })
+
+**参数:**
+| 参数名        | 参数类型                            | 必填   | 默认值  | 参数描述    |
+| ---------- | ------------------------------- | ---- | ---- | ------- |
+| src        | string                          | 是    | -    | 网页资源地址。 |
+| controller | [WebController](#webcontroller) | 否    | -    | 控制器。    |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+      }
+    }
+  }
+  ```
 
 > **说明:**
 >
-> - 不支持转场动画;
-> - 不支持多实例;
-> - 仅支持本地音视频播放。
+> 不支持转场动画。
 
 ## 属性
-| 名称               | 参数类型                                                     | 默认值            | 描述                                                         |
-| ------------------ | ------------------------------------------------------------ | ----------------- | ------------------------------------------------------------ |
-| domStorageAccess   | boolean                                                      | false             | 设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 |
-| fileAccess         | boolean                                                      | false             | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 |
-| fileFromUrlAccess  | boolean                                                      | true              | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 |
-| imageAccess        | boolean                                                      | true              | 设置是否允许自动加载图片资源,默认允许。                     |
-| javaScriptProxy    | { <br>  object: object, <br/> name: string, <br/> methodList: Array\<string\>, <br/> controller: WebController <br>} | -                 | 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 <br/> - object: 参与注册的对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean。<br/> - name: 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。<br/> - methodList: 参与注册的应用侧JavaScript对象的方法。<br/> - controller: 控制器。 |
-| javaScriptAccess   | boolean                                                      | true              | 设置是否允许执行JavaScript脚本,默认允许执行。               |
-| mixedMode          | [MixedMode](#mixedmode枚举说明)                              | MixedMode.None    | 设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 |
-| onlineImageAccess  | boolean                                                      | true              | 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 |
-| zoomAccess         | boolean                                                      | true              | 设置是否支持手势进行缩放,默认允许执行缩放。                 |
-| overviewModeAccess | boolean                                                      | true              | 设置是否使用概览模式加载网页,默认使用该方式。               |
-| databaseAccess     | boolean                                                      | false             | 设置是否开启数据库存储API权限,默认不开启。                  |
-| cacheMode          | [CacheMode](#cachemode枚举说明)                              | CacheMode.Default | 设置缓存模式。                                               |
-| textZoomAtio       | number                                                       | 100               | 设置页面的文本缩放百分比,默认为100%。                       |
-| userAgent          | string                                                       | -                 | 设置用户代理。                                               |
+
+web组件的网络属性。
+
+### domStorageAccess
+
+domStorageAccess(domStorageAccess: boolean)
+
+设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。
+
+**参数:**
+| 参数名              | 参数类型    | 必填   | 默认值  | 参数描述                                 |
+| ---------------- | ------- | ---- | ---- | ------------------------------------ |
+| domStorageAccess | boolean | 是    | -    | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .domStorageAccess(true)
+      }
+    }
+  }
+  ```
+
+### fileAccess
+
+fileAccess(fileAccess: boolean)
+
+设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)访问应用中rawfile路径的文件, 默认启用。
+
+**参数:**
+| 参数名        | 参数类型    | 必填   | 默认值  | 参数描述                                     |
+| ---------- | ------- | ---- | ---- | ---------------------------------------- |
+| fileAccess | boolean | 是    | true | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)访问应用中rawfile路径的文件,默认启用。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .fileAccess(true)
+      }
+    }
+  }
+  ```
+
+### fileFromUrlAccess<sup>9+</sup>
+
+fileFromUrlAccess(fileFromUrlAccess: boolean)
+
+设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)的内容,默认未启用。
+
+**参数:**
+| 参数名               | 参数类型    | 必填   | 默认值   | 参数描述                                     |
+| ----------------- | ------- | ---- | ----- | ---------------------------------------- |
+| fileFromUrlAccess | boolean | 是    | false | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)的内容,默认未启用。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .fileFromUrlAccess(true)
+      }
+    }
+  }
+  ```
+
+### imageAccess
+
+imageAccess(imageAccess: boolean)
+
+设置是否允许自动加载图片资源,默认允许。
+
+**参数:**
+| 参数名         | 参数类型    | 必填   | 默认值  | 参数描述            |
+| ----------- | ------- | ---- | ---- | --------------- |
+| imageAccess | boolean | 是    | -    | 设置是否允许自动加载图片资源。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .imageAccess(true)
+      }
+    }
+  }
+  ```
+
+### javaScriptProxy
+
+javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\<string\>,
+    controller: WebController })
+
+注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。
+
+**参数:**
+| 参数名        | 参数类型            | 必填   | 默认值  | 参数描述                      |
+| ---------- | --------------- | ---- | ---- | ------------------------- |
+| object     | object          | 是    | -    | 参与注册的对象。只能声明方法,不能声明属性。    |
+| name       | string          | 是    | -    | 注册对象的名称,与window中调用的对象名一致。 |
+| methodList | Array\<string\> | 是    | -    | 参与注册的应用侧JavaScript对象的方法。  |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    testObj = {
+      test: (data1, data2, data3) => {
+        console.log("data1:" + data1);
+        console.log("data2:" + data2);
+        console.log("data3:" + data3);
+        return "AceString";
+      },
+      toString: () => {
+        console.log('toString' + "interface instead.");
+      }
+    }
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .javaScriptAccess(true)
+        .javaScriptProxy({
+          object: this.testObj,
+          name: "objName",
+          methodList: ["test", "toString"],
+          controller: this.controller,
+        })
+      }
+    }
+  }
+  ```
+
+### javaScriptAccess
+
+javaScriptAccess(javaScriptAccess: boolean)
+
+设置是否允许执行JavaScript脚本,默认允许执行。
+
+**参数:**
+| 参数名              | 参数类型    | 必填   | 默认值  | 参数描述                |
+| ---------------- | ------- | ---- | ---- | ------------------- |
+| javaScriptAccess | boolean | 是    | -    | 是否允许执行JavaScript脚本。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .javaScriptAccess(true)
+      }
+    }
+  }
+  ```
+
+### mixedMode
+
+mixedMode(mixedMode: MixedMode)
+
+设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。
+
+**参数:**
+| 参数名       | 参数类型                        | 必填   | 默认值  | 参数描述      |
+| --------- | --------------------------- | ---- | ---- | --------- |
+| mixedMode | [MixedMode](#mixedmode枚举说明) | 是    | -    | 要设置的混合内容。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    @State mode:MixedMode = MixedMode.All;
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .mixedMode(this.mode)
+      }
+    }
+  }
+  ```
+
+### onlineImageAccess
+
+onlineImageAccess(onlineImageAccess: boolean)
+
+设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。
+
+**参数:**
+| 参数名               | 参数类型    | 必填   | 默认值  | 参数描述             |
+| ----------------- | ------- | ---- | ---- | ---------------- |
+| onlineImageAccess | boolean | 是    | -    | 设置是否允许从网络加载图片资源。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .onlineImageAccess(true)
+      }
+    }
+  }
+  ```
+
+### zoomAccess
+
+zoomAccess(zoomAccess: boolean)
+
+设置是否支持手势进行缩放,默认允许执行缩放。
+
+**参数:**
+| 参数名        | 参数类型    | 必填   | 默认值  | 参数描述          |
+| ---------- | ------- | ---- | ---- | ------------- |
+| zoomAccess | boolean | 是    | -    | 设置是否支持手势进行缩放。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .zoomAccess(true)
+      }
+    }
+  }
+  ```
+
+### overviewModeAccess
+
+overviewModeAccess(overviewModeAccess: boolean)
+
+设置是否使用概览模式加载网页,默认使用该方式。
+
+**参数:**
+| 参数名                | 参数类型    | 必填   | 默认值  | 参数描述            |
+| ------------------ | ------- | ---- | ---- | --------------- |
+| overviewModeAccess | boolean | 是    | -    | 设置是否使用概览模式加载网页。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .overviewModeAccess(true)
+      }
+    }
+  }
+  ```
+
+### databaseAccess
+
+databaseAccess(databaseAccess: boolean)
+
+设置是否开启数据库存储API权限,默认不开启。
+
+**参数:**
+| 参数名            | 参数类型    | 必填   | 默认值  | 参数描述              |
+| -------------- | ------- | ---- | ---- | ----------------- |
+| databaseAccess | boolean | 是    | -    | 设置是否开启数据库存储API权限。 |
+
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### cacheMode
+
+cacheMode(cacheMode: CacheMode)
+
+设置缓存模式。
+
+**参数:**
+| 参数名       | 参数类型                        | 必填   | 默认值  | 参数描述      |
+| --------- | --------------------------- | ---- | ---- | --------- |
+| cacheMode | [CacheMode](#cachemode枚举说明) | 是    | -    | 要设置的缓存模式。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    @State mode:CacheMode = CacheMode.None;
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .cacheMode(this.mode)
+      }
+    }
+  }
+  ```
+
+### textZoomAtio
+
+textZoomAtio(textZoomAtio: number)
+
+设置页面的文本缩放百分比,默认为100%。
+
+**参数:**
+| 参数名          | 参数类型   | 必填   | 默认值  | 参数描述            |
+| ------------ | ------ | ---- | ---- | --------------- |
+| textZoomAtio | number | 是    | -    | 要设置的页面的文本缩放百分比。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    @State atio:number = 150;
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .textZoomAtio(this.atio)
+      }
+    }
+  }
+  ```
+
+### userAgent
+
+userAgent(userAgent: string)
+
+设置用户代理。
+
+**参数:**
+| 参数名       | 参数类型   | 必填   | 默认值  | 参数描述      |
+| --------- | ------ | ---- | ---- | --------- |
+| userAgent | string | 是    | -    | 要设置的用户代理。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    @State userAgent:string = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36';
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .userAgent(this.userAgent)
+      }
+    }
+  }
+  ```
 
 >  **说明:**
 >
@@ -56,149 +456,1229 @@
 
 不支持通用事件。
 
-| 名称                                                         | 功能描述                                                     |
-| ------------------------------------------------------------ | ------------------------------------------------------------ |
-| onAlert(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>网页触发alert()告警弹窗时触发回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(只有确认场景),并且根据用户的确认操作调用JsResult通知Web组件。<br />- url:当前显示弹窗所在网页的URL。<br />- message:弹窗中显示的信息。<br />- result:通知Web组件用户操作行为。</p> |
-| onBeforeUnload(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>刷新或关闭场景下,在即将离开当前页面时触发此回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。<br />- url:当前显示弹窗所在网页的URL。<br />- message:弹窗中显示的信息。<br />- result:通知Web组件用户操作行为。</p> |
-| onConfirm(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>网页调用confirm()告警时触发此回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。<br />- url:当前显示弹窗所在网页的URL。<br />- message:弹窗中显示的信息。<br />- result:通知Web组件用户操作行为。</p> |
-| onPrompt<sup>9+</sup>(callback: (event?: { url: string; message: string; value: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>网页调用prompt()告警时触发此回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。<br />- url:当前显示弹窗所在网页的URL。<br />- message:弹窗中显示的信息。<br />- value:对话框中的默认值。<br />- result:通知Web组件用户操作行为,及对话框内容。</p> |
-| onConsole(callback: (event?: { message: [ConsoleMessage](#consolemessage对象说明) }) => boolean) | <p>通知宿主应用JavaScript console消息。<br/>- message:触发的控制台信息。</p> |
-| onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) | <p>网页的下载任务开始时触发该回调。<br />- url:文件下载的URL。<br />- userAgent:下载的用户代理(UA)名称。<br />- contentDisposition:服务器返回的 Content-Disposition响应头,可能为空。<br />- mimetype:服务器返回内容媒体类型(MIME)信息。<br />- contentLength:服务器返回文件的长度。</p> |
-| onErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), error: [WebResourceError](#webresourceerror对象说明) }) => void) | <p>网页加载遇到错误时触发该回调。<br/>出于性能考虑,建议此回调中尽量执行简单逻辑。<br/>- request:网页请求的封装信息。<br/>- error:网页加载资源错误的封装信息 。</p> |
-| onHttpErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), response: [WebResourceResponse](#webresourceresponse对象说明) }) => void) | <p>网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。<br/>- request:网页请求的封装信息。<br/>- response:网页响应的封装信息</p> |
-| onPageBegin(callback: (event?: { url: string }) => void)     | <p>网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。<br/>- url:页面的URL地址。</p> |
-| onPageEnd(callback: (event?: { url: string }) => void)       | <p>网页加载完成时触发该回调,且只在主frame触发。<br/>- url:页面的URL地址。</p> |
-| onProgressChange(callback: (event?: { newProgress: number }) => void) | <p>网页加载进度变化时触发该回调。<br/>- newProgress:新的加载进度,取值范围为0到100的整数。</p> |
-| onTitleReceive(callback: (event?: { title: string }) => void) | <p>网页document标题更改时触发该回调。<br/>- title:document标题内容。</p> |
-| onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean }) => void) | <p>加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。<br/>- url:访问的url。<br/>- isRefreshed:true表示该页面是被重新加载的,false表示该页面是新加载的。</p> |
-| onRenderExited(callback: (event?: { renderExitReason:  [RenderExitReason](#renderexitreason枚举说明) }) => void) | <p>应用渲染进程异常退出时触发该回调。<br/>- renderExitReason:渲染进程进程异常退出的具体原因。</p> |
-| onShowFileSelector(callback: (event?: { result: [FileSelectorResult](#fileselectorresult对象说明), fileSelector:  [FileSelectorParam](#fileselectorparam对象说明) }) => void) | <p>调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮<br/>- result:用于通知Web组件文件选择的结果。<br/>- fileSelector:文件选择器的相关信息。</p> |
-| onUrlLoadIntercept(callback: (event?: { data:string \| [WebResourceRequest](#webresourcerequest对象说明) }) => boolean) | <p>当Web组件加载url之前触发该回调,用于是否阻止此次访问。callback返回true表示阻止此次加载,否则允许此次加载。<br/>- data:url的相关信息。</p> |
-| onInterceptRequest<sup>9+</sup>(callback: (event?: { request: [WebResourceRequest](#webresourcerequest对象说明)}) => [WebResourceResponse](#webresourceresponse对象说明)) | <p>当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。callback返回响应数据为空表示按原来方式加载,否则加载响应数据。<br/>- request:url请求的相关信息。</p> |
-
-## ConsoleMessage对象说明
-
-| 接口名称                                                 | 功能描述                       |
-| -------------------------------------------------------- | ------------------------------ |
-| getLineNumber(): number                                  | 获取ConsoleMessage的行数。     |
-| getMessage(): string                                     | 获取ConsoleMessage的日志信息。 |
-| getMessageLevel(): [MessageLevel](#messagelevel枚举说明) | 获取ConsoleMessage的信息级别。 |
-| getSourceId(): string                                    | 获取网页源文件路径和名字。     |
+### onAlert
+
+onAlert(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
+
+网页触发alert()告警弹窗时触发回调。
+
+**参数:**
+| 参数名     | 参数类型                  | 参数描述            |
+| ------- | --------------------- | --------------- |
+| url     | string                | 当前显示弹窗所在网页的URL。 |
+| message | string                | 弹窗中显示的信息。       |
+| result  | [JsResult](#jsresult) | 通知Web组件用户操作行为。  |
+
+**返回值:**
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
+| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+          .onAlert((event) => {
+            AlertDialog.show({
+              title: 'title',
+              message: 'text',
+              confirm: {
+                value: 'onAlert',
+                action: () => {
+                  event.result.handleConfirm()
+                }
+              },
+              cancel: () => {
+                event.result.handleCancel()
+              }
+            })
+            return true;
+          })
+      }
+    }
+  }
+  ```
+
+### onBeforeUnload
+
+onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
+
+刷新或关闭场景下,在即将离开当前页面时触发此回调。
+
+**参数:**
+| 参数名     | 参数类型                  | 参数描述            |
+| ------- | --------------------- | --------------- |
+| url     | string                | 当前显示弹窗所在网页的URL。 |
+| message | string                | 弹窗中显示的信息。       |
+| result  | [JsResult](#jsresult) | 通知Web组件用户操作行为。  |
+
+**返回值:**
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
+| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onBeforeUnload((event) => {
+            console.log("event.url:" + event.url);
+            console.log("event.message:" + event.message);
+            console.log("event.result:" + event.result);
+            return false;
+          })
+      }
+    }
+  }
+  ```
+
+### onConfirm
+
+onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
+
+网页调用confirm()告警时触发此回调。
+
+**参数:**
+| 参数名     | 参数类型                  | 参数描述            |
+| ------- | --------------------- | --------------- |
+| url     | string                | 当前显示弹窗所在网页的URL。 |
+| message | string                | 弹窗中显示的信息。       |
+| result  | [JsResult](#jsresult) | 通知Web组件用户操作行为。  |
+
+**返回值:**
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
+| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onConfirm((event) => {
+            console.log("event.url:" + event.url);
+            console.log("event.message:" + event.message);
+            console.log("event.result:" + event.result);
+            AlertDialog.show({
+              title: 'title',
+              message: 'text',
+              confirm: {
+                value: 'onConfirm',
+                action: () => {
+                  event.result.handleConfirm()
+                }
+              },
+              cancel: () => {
+                event.result.handleCancel()
+              }
+            })
+            return true;
+          })
+      }
+    }
+  }
+  ```
+
+### onPrompt<sup>9+</sup>
+
+onPrompt(callback: (event?: { url: string; message: string; value: string; result: JsResult }) => boolean)
+
+**参数:**
+| 参数名     | 参数类型                  | 参数描述            |
+| ------- | --------------------- | --------------- |
+| url     | string                | 当前显示弹窗所在网页的URL。 |
+| message | string                | 弹窗中显示的信息。       |
+| result  | [JsResult](#jsresult) | 通知Web组件用户操作行为。  |
+
+**返回值:**
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
+| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .onPrompt((event) => {
+          console.log("url:" + event.url);
+          console.log("message:" + event.message);
+          console.log("value:" + event.value);
+          console.log("result:" + event.result);
+          return true;
+        })
+    }
+  }
+  ```
+
+### onConsole
+
+onConsole(callback: (event?: { message: ConsoleMessage }) => boolean)
+
+通知宿主应用JavaScript console消息。
+
+**参数:**
+| 参数名     | 参数类型                              | 参数描述      |
+| ------- | --------------------------------- | --------- |
+| message | [ConsoleMessage](#consolemessage) | 触发的控制台信息。 |
+
+**返回值:**
+| 类型      | 说明                                  |
+| ------- | ----------------------------------- |
+| boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onConsole((event) => {
+            console.log('getMessage:' + event.message.getMessage());
+            console.log('getSourceId:' + event.message.getSourceId());
+            console.log('getLineNumber:' + event.message.getLineNumber());
+            console.log('getMessageLevel:' + event.message.getMessageLevel());
+            return false;
+          })
+      }
+    }
+  }
+  ```
+
+### onDownloadStart
+
+onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void)
+
+**参数:**
+| 参数名                | 参数类型          | 参数描述                                |
+| ------------------ | ------------- | ----------------------------------- |
+| url                | string        | 文件下载的URL。                           |
+| contentDisposition | string        | 服务器返回的 Content-Disposition响应头,可能为空。 |
+| mimetype           | string        | 服务器返回内容媒体类型(MIME)信息。                |
+| contentLength      | contentLength | 服务器返回文件的长度。                         |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onDownloadStart((event) => {
+            console.log('url:' + event.url);
+            console.log('userAgent:' + event.userAgent);
+            console.log('contentDisposition:' + event.contentDisposition);
+            console.log('contentLength:' + event.contentLength);
+            console.log('mimetype:' + event.mimetype);
+          })
+      }
+    }
+  }
+  ```
+
+### onErrorReceive
+
+onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResourceError }) => void)
+
+网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。
+
+**参数:**
+| 参数名     | 参数类型                                     | 参数描述            |
+| ------- | ---------------------------------------- | --------------- |
+| request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。      |
+| error   | [WebResourceError](#webresourceerror)    | 网页加载资源错误的封装信息 。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onErrorReceive((event) => {
+            console.log('getErrorInfo:' + event.error.getErrorInfo());
+            console.log('getErrorCode:' + event.error.getErrorCode());
+            console.log('url:' + event.request.getRequestUrl());
+            console.log('isMainFrame:' + event.request.isMainFrame());
+            console.log('isRedirect:' + event.request.isRedirect());
+            console.log('isRequestGesture:' + event.request.isRequestGesture());
+            console.log('getRequestHeader_headerKey:' + event.request.getRequestHeader().toString());
+            let result = event.request.getRequestHeader();
+            console.log('The request header result size is ' + result.length);
+            for (let i of result) {
+              console.log('The request header key is : ' + i.headerKey + ', value is : ' + i.headerValue);
+            }
+          })
+      }
+    }
+  }
+  ```
+
+### onHttpErrorReceive
+
+onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: WebResourceResponse }) => void)
+
+网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。
+
+**参数:**
+| 参数名     | 参数类型                                     | 参数描述            |
+| ------- | ---------------------------------------- | --------------- |
+| request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。      |
+| error   | [WebResourceError](#webresourceerror)    | 网页加载资源错误的封装信息 。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onHttpErrorReceive((event) => {
+            console.log('url:' + event.request.getRequestUrl());
+            console.log('isMainFrame:' + event.request.isMainFrame());
+            console.log('isRedirect:' + event.request.isRedirect());
+            console.log('isRequestGesture:' + event.request.isRequestGesture());
+            console.log('getResponseData:' + event.response.getResponseData());
+            console.log('getResponseEncoding:' + event.response.getResponseEncoding());
+            console.log('getResponseMimeType:' + event.response.getResponseMimeType());
+            console.log('getResponseCode:' + event.response.getResponseCode());
+            console.log('getReasonMessage:' + event.response.getReasonMessage());
+            let result = event.request.getRequestHeader();
+            console.log('The request header result size is ' + result.length);
+            for (let i of result) {
+              console.log('The request header key is : ' + i.headerKey + ' , value is : ' + i.headerValue);
+            }
+            let resph = event.response.getResponseHeader();
+            console.log('The response header result size is ' + resph.length);
+            for (let i of resph) {
+              console.log('The response header key is : ' + i.headerKey + ' , value is : ' + i.headerValue);
+            }
+          })
+      }
+    }
+  }
+  ```
+
+### onPageBegin
+
+onPageBegin(callback: (event?: { url: string }) => void)
+
+
+网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。
+
+**参数:**
+| 参数名  | 参数类型   | 参数描述      |
+| ---- | ------ | --------- |
+| url  | string | 页面的URL地址。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onPageBegin((event) => {
+            console.log('url:' + event.url);
+          })
+      }
+    }
+  }
+  ```
+
+### onPageEnd
+
+onPageEnd(callback: (event?: { url: string }) => void)
+
+
+网页加载完成时触发该回调,且只在主frame触发。
+
+**参数:**
+| 参数名  | 参数类型   | 参数描述      |
+| ---- | ------ | --------- |
+| url  | string | 页面的URL地址。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onPageEnd((event) => {
+            console.log('url:' + event.url);
+          })
+      }
+    }
+  }
+  ```
+
+### onProgressChange
+
+onProgressChange(callback: (event?: { newProgress: number }) => void)
+
+网页加载进度变化时触发该回调。
+
+**参数:**
+| 参数名         | 参数类型   | 参数描述                  |
+| ----------- | ------ | --------------------- |
+| newProgress | number | 新的加载进度,取值范围为0到100的整数。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onProgressChange((event) => {
+            console.log('newProgress:' + event.newProgress)
+          })
+      }
+    }
+  }
+  ```
+
+### onTitleReceive
+
+onTitleReceive(callback: (event?: { title: string }) => void)
+
+网页document标题更改时触发该回调。
+
+**参数:**
+| 参数名   | 参数类型   | 参数描述          |
+| ----- | ------ | ------------- |
+| title | string | document标题内容。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onTitleReceive((event) => {
+            console.log('title:' + event.title)
+          })
+      }
+    }
+  }
+  ```
+
+### onRefreshAccessedHistory
+
+onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean }) => void)
+
+加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。
+
+**参数:**
+| 参数名         | 参数类型    | 参数描述                              |
+| ----------- | ------- | --------------------------------- |
+| url         | string  | 访问的url。                           |
+| isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onRefreshAccessedHistory((event) => {
+            console.log('url:' + event.url + ' isReload:' + event.refreshed);
+          })
+      }
+    }
+  }
+  ```
+
+### onRenderExited
+
+onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => void)
+
+应用渲染进程异常退出时触发该回调。
+
+**参数:**
+| 参数名              | 参数类型                                     | 参数描述             |
+| ---------------- | ---------------------------------------- | ---------------- |
+| renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'chrome://crash/', controller: this.controller })
+          .onRenderExited((event) => {
+            console.log('reason:' + event.renderExitReason);
+          })
+      }
+    }
+  }
+  ```
+
+### onShowFileSelector<sup>9+</sup>
+
+onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector: FileSelectorParam }) => void)
+
+调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮。
+
+**参数:**
+| 参数名          | 参数类型                                     | 参数描述              |
+| ------------ | ---------------------------------------- | ----------------- |
+| result       | [FileSelectorResult](#fileselectorresult9) | 用于通知Web组件文件选择的结果。 |
+| fileSelector | [FileSelectorParam](#fileselectorparam9) | 文件选择器的相关信息。       |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onShowFileSelector((event) => {
+            AlertDialog.show({
+              title: event.fileSelector.getTitle(),
+              message: 'isCapture:' + event.fileSelector.isCapture() + " mode:" + event.fileSelector.getMode() + 'acceptType:' + event.fileSelector.getAcceptType(),
+              confirm: {
+                value: 'upload',
+                action: () => {
+                  let fileList: Array<string> = [
+                    '/data/storage/el2/base/test',
+                  ]
+                  event.result.handleFileList(fileList)
+                }
+              },
+              cancel: () => {
+                let fileList: Array<string> = []
+                event.result.handleFileList(fileList)
+              }
+            })
+            return true;
+          })
+      }
+    }
+  }
+  ```
+
+### onUrlLoadIntercept
+
+onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => boolean)
+
+当Web组件加载url之前触发该回调,用于是否阻止此次访问。
+
+**参数:**
+| 参数名  | 参数类型                                     | 参数描述      |
+| ---- | ---------------------------------------- | --------- |
+| data | string / [WebResourceRequest](#webresourcerequest) | url的相关信息。 |
+
+**返回值:**
+| 类型      | 说明                       |
+| ------- | ------------------------ |
+| boolean | 返回true表示阻止此次加载,否则允许此次加载。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Web({ src: 'www.example.com', controller: this.controller })
+          .onUrlLoadIntercept((event) => {
+            console.log('onUrlLoadIntercept ' + event.data.toString())
+            return true;
+          })
+      }
+    }
+  }
+  ```
+
+### onInterceptRequest<sup>9+</sup>
+
+onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebResourceResponse)
+
+当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。
+
+**参数:**
+| 参数名     | 参数类型                                     | 参数描述        |
+| ------- | ---------------------------------------- | ----------- |
+| request | [WebResourceRequest](#webresourcerequest) | url请求的相关信息。 |
+
+**返回值:**
+| 类型                                       | 说明                          |
+| ---------------------------------------- | --------------------------- |
+| [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    responseweb: WebResourceResponse = new WebResourceResponse();
+    heads:Header[] = new Array();
+    @State webdata: string = "<!DOCTYPE html>\n" +
+    "<html>\n"+
+    "<head>\n"+
+    "<title>intercept test</title>\n"+
+    "</head>\n"+
+    "<body>\n"+
+    "<h1>intercept test</h1>\n"+
+    "</body>\n"+
+    "</html>"
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+          .onInterceptRequest((event) => {
+            console.log('url:' + event.request.getRequestUrl());
+            var head1:Header = {
+              headerKey:"Connection",
+              headerValue:"keep-alive"
+            }
+            var head2:Header = {
+              headerKey:"Cache-Control",
+              headerValue:"no-cache"
+            }
+            var length = this.heads.push(head1);
+            length = this.heads.push(head2);
+            this.responseweb.setResponseHeader(this.heads);
+            this.responseweb.setResponseData(this.webdata);
+            this.responseweb.setResponseEncoding('utf-8');
+            this.responseweb.setResponseMimeType('text/html');
+            this.responseweb.setResponseCode(200);
+            this.responseweb.setReasonMessage('OK');
+            return this.responseweb;
+          })
+      }
+    }
+  }
+  ```
+
+### onHttpAuthRequest<sup>9+</sup>
+
+onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, realm: string}) => boolean)
+
+通知收到http auth认证请求。
+
+**参数:**
+| 参数名     | 参数类型                                 | 参数描述             |
+| ------- | ------------------------------------ | ---------------- |
+| handler | [HttpAuthHandler](#httpauthhandler9) | 通知Web组件用户操作行为。   |
+| host    | string                               | HTTP身份验证凭据应用的主机。 |
+| realm   | string                               | HTTP身份验证凭据应用的域。  |
+
+**返回值:**
+| 类型      | 说明                    |
+| ------- | --------------------- |
+| boolean | 返回false表示此次认证失败,否则成功。 |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    httpAuth:boolean = false;
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .onHttpAuthRequest((event) => {
+          AlertDialog.show({
+            title: 'title',
+            message: 'text',
+            confirm: {
+              value: 'onConfirm',
+              action: () => {
+                this.httpAuth = event.handler.isHttpAuthInfoSaved();
+                if (this.httpAuth == false) {
+                  web.WebDataBase.saveHttpAuthCredentials(
+                   event.host,
+                   event.realm,
+                   "2222",
+                   "2222"
+                  )
+                  event.handler.cancel();
+                }
+              }
+            },
+            cancel: () => {
+             event.handler.cancel();
+            }
+          })
+          return true;
+        })
+    }
+  }
+  ```
+### onPermissionRequest<sup>9+</sup>
+
+onPermissionRequest(callback: (event?: { request: PermissionRequest }) => void)
+
+通知收到获取权限请求。
+
+**参数:**
+| 参数名     | 参数类型                                 | 参数描述             |
+| ------- | ------------------------------------ | ---------------- |
+| request | [PermissionRequest](#permissionrequest9) | 通知Web组件用户操作行为。   |
+
+  **示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Web({ src:'www.example.com', controller:this.controller })
+        .onPermissionRequest((event) => {
+          AlertDialog.show({
+            title: 'title',
+            message: 'text',
+            confirm: {
+              value: 'onConfirm',
+              action: () => {
+                event.request.grant(event.request.getAccessibleResource());
+              }
+            },
+            cancel: () => {
+             event.request.deny();
+            }
+          })
+        })
+    }
+  }
+  ```
+
+## ConsoleMessage
 
-## MessageLevel枚举说明
+Web组件获取控制台信息对象。示例代码参考[onConsole事件](#onconsole)。
 
-| 名称  | 描述       |
-| ----- | :--------- |
-| Debug | 调试级别。 |
-| Error | 错误级别。 |
-| Info  | 消息级别。 |
-| Log   | 日志级别。 |
-| Warn  | 警告级别。 |
+### getLineNumber
+
+getLineNumber(): number
+
+获取ConsoleMessage的行数。
+
+**返回值:** 
+| 类型     | 说明                   |
+| ------ | -------------------- |
+| number | 返回ConsoleMessage的行数。 |
+
+### getMessage
+
+getMessage(): string
+
+获取ConsoleMessage的日志信息。
+
+**返回值:** 
+| 类型     | 说明                     |
+| ------ | ---------------------- |
+| string | 返回ConsoleMessage的日志信息。 |
+
+### getMessageLevel
+
+getMessageLevel(): MessageLevel
+
+获取ConsoleMessage的信息级别。
+
+**返回值:** 
+| 类型                                | 说明                     |
+| --------------------------------- | ---------------------- |
+| [MessageLevel](#messagelevel枚举说明) | 返回ConsoleMessage的信息级别。 |
+
+### getSourceId
+
+getSourceId(): string
+
+获取网页源文件路径和名字。
 
-## JsResult对象说明
+**返回值:** 
+| 类型     | 说明            |
+| ------ | ------------- |
+| string | 返回网页源文件路径和名字。 |
 
-Web组件返回的弹窗确认或弹窗取消功能对象。
+## JsResult
 
-| 接口名称                                               | 功能描述                                         |
-| ------------------------------------------------------ | ------------------------------------------------ |
-| handleCancel(): void                                   | <p>通知Web组件用户取消弹窗操作。</p>             |
-| handleConfirm(): void                                  | <p>通知Web组件用户确认弹窗操作。</p>             |
-| handlePromptConfirm<sup>9+</sup>(result: string): void | <p>通知Web组件用户确认弹窗操作及对话框内容。</p> |
+Web组件返回的弹窗确认或弹窗取消功能对象。示例代码参考[onAlert事件](#onalert)。
 
-## WebResourceError对象说明
+### handleCancel
 
-| 接口名称               | 功能描述                 |
-| ---------------------- | ------------------------ |
-| getErrorCode(): number | 获取加载资源的错误码。   |
-| getErrorInfo(): string | 获取加载资源的错误信息。 |
+handleCancel(): void
 
-## WebResourceRequest对象说明
+通知Web组件用户取消弹窗操作。
 
-| 接口名称                                               | 功能描述                                 |
-| ------------------------------------------------------ | ---------------------------------------- |
-| getRequestHeader(): Array\<[Header](#header对象说明)\> | 获取资源请求头信息。                     |
-| getRequestUrl(): string                                | 获取资源请求的URL信息。                  |
-| isMainFrame(): boolean                                 | 判断资源请求是否为主frame。              |
-| isRedirect(): boolean                                  | 判断资源请求是否被服务端重定向。         |
-| isRequestGesture(): boolean                            | 获取资源请求是否与手势(如点击)相关联。 |
+### handleConfirm
 
-## Header对象说明
+handleConfirm(): void
+
+通知Web组件用户确认弹窗操作。
+
+### handlePromptConfirm<sup>9+</sup>
+
+handlePromptConfirm(result: string): void
+
+通知Web组件用户确认弹窗操作及对话框内容。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 默认值  | 参数描述        |
+| ------ | ------ | ---- | ---- | ----------- |
+| result | string | 是    | -    | 用户输入的对话框内容。 |
+
+## WebResourceError
+
+web组件资源管理错误信息对象。示例代码参考[onErrorReceive事件](#onerrorreceive)。
+
+### getErrorCode
+
+getErrorCode(): number
+
+获取加载资源的错误码。
+
+**返回值:** 
+| 类型     | 说明          |
+| ------ | ----------- |
+| number | 返回加载资源的错误码。 |
+
+### getErrorInfo
+
+getErrorInfo(): string
+
+获取加载资源的错误信息。
+
+**返回值:** 
+| 类型     | 说明           |
+| ------ | ------------ |
+| string | 返回加载资源的错误信息。 |
+
+## WebResourceRequest
+
+web组件获取资源请求对象。示例代码参考[onErrorReceive事件](#onerrorreceive)。
+
+### getRequestHeader
+
+getResponseHeader() : Array\<Header\>
+
+获取资源请求头信息。
+
+**返回值:** 
+| 类型                         | 说明         |
+| -------------------------- | ---------- |
+| Array\<[Header](#header)\> | 返回资源请求头信息。 |
+
+### getRequestUrl
+
+getRequestUrl(): string
+
+获取资源请求的URL信息。
+
+**返回值:** 
+| 类型     | 说明            |
+| ------ | ------------- |
+| string | 返回资源请求的URL信息。 |
+
+### isMainFrame
+
+isMainFrame(): boolean
+
+判断资源请求是否为主frame。
+
+**返回值:** 
+| 类型      | 说明               |
+| ------- | ---------------- |
+| boolean | 返回资源请求是否为主frame。 |
+
+### isRedirect
+
+isRedirect(): boolean
+
+判断资源请求是否被服务端重定向。
+
+**返回值:** 
+| 类型      | 说明               |
+| ------- | ---------------- |
+| boolean | 返回资源请求是否被服务端重定向。 |
+
+### isRequestGesture
+
+isRequestGesture(): boolean
+
+获取资源请求是否与手势(如点击)相关联。
+
+**返回值:** 
+| 类型      | 说明                   |
+| ------- | -------------------- |
+| boolean | 返回资源请求是否与手势(如点击)相关联。 |
+
+## Header
 
 Web组件返回的请求/响应头对象。
 
-| 参数名称    | 参数类型 | 参数描述             |
-| ----------- | -------- | -------------------- |
-| headerKey   | string   | 请求/响应头的key。   |
-| headerValue | string   | 请求/响应头的value。 |
-
-
-## WebResourceResponse对象说明
-
-| 接口名称                                                | 功能描述                         |
-| ------------------------------------------------------- | -------------------------------- |
-| getReasonMessage(): string                              | 获取资源响应的状态码描述。       |
-| getResponseCode(): number                               | 获取资源响应的状态码。           |
-| getResponseData(): string                               | 获取资源响应数据。               |
-| getResponseEncoding(): string                           | 获取资源响应的编码。             |
-| getResponseHeader(): Array\<[Header](#header对象说明)\> | 获取资源响应头。                 |
-| getResponseMimeType(): string                           | 获取资源响应的媒体(MIME)类型。 |
-| setResponseData<sup>9+</sup>(data: string)              | 设置资源响应数据。               |
-| setResponseEncoding<sup>9+</sup>(encoding: string)      | 设置资源响应的编码。             |
-| setResponseMimeType<sup>9+</sup>(mimeType: string)      | 设置资源响应的媒体(MIME)类型。 |
-| setReasonMessage<sup>9+</sup>(reason: string)           | 设置资源响应的状态码描述。       |
-| setResponseHeader<sup>9+</sup>(header: Array\<[Header](#header对象说明)\>)   | 设置资源响应头。                 |
-| setResponseCode<sup>9+</sup>(code: number)              | 设置资源响应的状态码。           |
+| 名称          | 类型     | 描述            |
+| ----------- | ------ | ------------- |
+| headerKey   | string | 请求/响应头的key。   |
+| headerValue | string | 请求/响应头的value。 |
 
-## RenderExitReason枚举说明
 
-onRenderExited接口返回的渲染进程退出的具体原因。
+## WebResourceResponse
 
-| 名称                       | 描述                         |
-| -------------------------- | ---------------------------- |
-| ProcessAbnormalTermination | 渲染进程异常退出。           |
-| ProcessWasKilled           | 收到SIGKILL,或被手动终止。  |
-| ProcessCrashed             | 渲染进程崩溃退出,如段错误。 |
-| ProcessOom                 | 程序内存不足。               |
-| ProcessExitUnknown         | 其他原因。                   |
+web组件资源响应对象。示例代码参考[onHttpErrorReceive事件](#onhttperrorreceive)。
 
-## MixedMode枚举说明
+### getReasonMessage
 
-| 名称       | 描述                                                        |
-| ---------- | ----------------------------------------------------------- |
-| All        | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 |
-| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。            |
-| None       | 不允许加载HTTP和HTTPS混合内容。                             |
+getReasonMessage(): string
 
-## CacheMode枚举说明
-| 名称    | 描述                                                         |
-| ------- | ------------------------------------------------------------ |
-| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 |
-| None    | 加载资源使用cache,如果cache中无该资源则从网络中获取。       |
-| Online  | 加载资源不使用cache,全部从网络中获取。                      |
-| Only    | 只从cache中加载资源。                                        |
+获取资源响应的状态码描述。
 
-## FileSelectorResult对象说明
-通知Web组件的文件选择结果。
+**返回值:** 
+| 类型     | 说明            |
+| ------ | ------------- |
+| string | 返回资源响应的状态码描述。 |
 
-| 接口名称                                       | 功能描述                                                     |
-| ---------------------------------------------- | ------------------------------------------------------------ |
-| handleFileList(fileList: Array\<string>): void | 通知Web组件进行文件选择操作。fileList: 需要进行操作的文件列表。 |
+### getResponseCode
 
-## FileSelectorParam对象说明
-| 接口名称                         | 功能描述                 |
-| -------------------------------- | ------------------------ |
-| getTitle(): string               | 获取文件选择器标题。     |
-| getMode(): FileSelectorMode      | 获取文件选择器的模式。   |
-| getAcceptType(): Array\<string\> | 获取文件过滤类型。       |
-| isCapture(): boolean             | 获取是否调用多媒体能力。 |
+getResponseCode(): number
 
-## FileSelectorMode枚举说明
-| 名称                 | 描述                 |
-| -------------------- | -------------------- |
-| FileOpenMode         | 打开上传单个文件。   |
-| FileOpenMultipleMode | 打开上传多个文件。   |
-| FileOpenFolderMode   | 打开上传文件夹模式。 |
-| FileSaveMode         | 文件保存模式。       |
+获取资源响应的状态码。
+
+**返回值:** 
+| 类型     | 说明          |
+| ------ | ----------- |
+| number | 返回资源响应的状态码。 |
+
+### getResponseData
+
+getResponseData(): string
+
+获取资源响应数据。
+
+**返回值:** 
+| 类型     | 说明        |
+| ------ | --------- |
+| string | 返回资源响应数据。 |
+
+### getResponseEncoding
+
+getResponseEncoding(): string
+
+获取资源响应的编码。
+
+**返回值:** 
+| 类型     | 说明         |
+| ------ | ---------- |
+| string | 返回资源响应的编码。 |
+
+### getResponseHeader
+
+getResponseHeader() : Array\<Header\>
+
+获取资源响应头。
+
+**返回值:** 
+| 类型                         | 说明       |
+| -------------------------- | -------- |
+| Array\<[Header](#header)\> | 返回资源响应头。 |
+
+### getResponseMimeType
+
+getResponseMimeType(): string
+
+获取资源响应的媒体(MIME)类型。
+
+**返回值:** 
+| 类型     | 说明                 |
+| ------ | ------------------ |
+| string | 返回资源响应的媒体(MIME)类型。 |
+
+### setResponseData<sup>9+</sup>
+
+setResponseData(data: string)
+
+设置资源响应数据。
+
+**参数:**
+| 参数名  | 参数类型   | 必填   | 默认值  | 参数描述        |
+| ---- | ------ | ---- | ---- | ----------- |
+| data | string | 是    | -    | 要设置的资源响应数据。 |
+
+### setResponseEncoding<sup>9+</sup>
+
+setResponseEncoding(encoding: string)
+
+设置资源响应的编码。
+
+**参数:**
+| 参数名      | 参数类型   | 必填   | 默认值  | 参数描述         |
+| -------- | ------ | ---- | ---- | ------------ |
+| encoding | string | 是    | -    | 要设置的资源响应的编码。 |
+
+### setResponseMimeType<sup>9+</sup>
+
+setResponseMimeType(mimeType: string)
+
+设置资源响应的媒体(MIME)类型。
+
+**参数:**
+| 参数名      | 参数类型   | 必填   | 默认值  | 参数描述                 |
+| -------- | ------ | ---- | ---- | -------------------- |
+| mimeType | string | 是    | -    | 要设置的资源响应的媒体(MIME)类型。 |
+
+### setReasonMessage<sup>9+</sup>
+
+setReasonMessage(reason: string)
+
+设置资源响应的状态码描述。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 默认值  | 参数描述            |
+| ------ | ------ | ---- | ---- | --------------- |
+| reason | string | 是    | -    | 要设置的资源响应的状态码描述。 |
+
+### setResponseHeader<sup>9+</sup>
+
+setResponseHeader(header: Array\<Header\>)
+
+设置资源响应头。
+
+**参数:**
+| 参数名    | 参数类型                       | 必填   | 默认值  | 参数描述       |
+| ------ | -------------------------- | ---- | ---- | ---------- |
+| header | Array\<[Header](#header)\> | 是    | -    | 要设置的资源响应头。 |
+
+### setResponseCode<sup>9+</sup>
+
+setResponseCode(code: number)
+
+设置资源响应的状态码。
+
+**参数:**
+| 参数名  | 参数类型   | 必填   | 默认值  | 参数描述          |
+| ---- | ------ | ---- | ---- | ------------- |
+| code | number | 是    | -    | 要设置的资源响应的状态码。 |
+
+## FileSelectorResult<sup>9+</sup>
+
+通知Web组件的文件选择结果。示例代码参考[onShowFileSelector事件](#onshowfileselector9)。
+
+### handleFileList<sup>9+</sup>
+
+handleFileList(fileList: Array\<string\>): void
+
+通知Web组件进行文件选择操作。
+
+**参数:**
+| 参数名      | 参数类型            | 必填   | 默认值  | 参数描述         |
+| -------- | --------------- | ---- | ---- | ------------ |
+| fileList | Array\<string\> | 是    | -    | 需要进行操作的文件列表。 |
+
+## FileSelectorParam<sup>9+</sup>
+
+web组件获取文件对象。示例代码参考[onShowFileSelector事件](#onshowfileselector9)。
+
+### getTitle<sup>9+</sup>
+
+getTitle(): string
+
+获取文件选择器标题。
+
+**返回值:** 
+| 类型     | 说明         |
+| ------ | ---------- |
+| string | 返回文件选择器标题。 |
+
+### getMode<sup>9+</sup>
+
+getMode(): FileSelectorMode
+
+获取文件选择器的模式。
+
+**返回值:** 
+| 类型                                       | 说明          |
+| ---------------------------------------- | ----------- |
+| [FileSelectorMode](#fileselectormode枚举说明) | 返回文件选择器的模式。 |
+
+### getAcceptType<sup>9+</sup>
+
+getAcceptType(): Array\<string\>
+
+获取文件过滤类型。
+
+**返回值:** 
+| 类型              | 说明        |
+| --------------- | --------- |
+| Array\<string\> | 返回文件过滤类型。 |
+
+### isCapture<sup>9+</sup>
+
+isCapture(): boolean
+
+获取是否调用多媒体能力。
+
+**返回值:** 
+| 类型      | 说明           |
+| ------- | ------------ |
+| boolean | 返回是否调用多媒体能力。 |
+
+## HttpAuthHandler<sup>9+</sup>
+
+Web组件返回的http auth认证请求确认或取消和使用缓存密码认证功能对象。示例代码参考[onHttpAuthRequest事件](#onhttpauthrequest9)。
+
+### cancel<sup>9+</sup>
+
+cancel(): void
+
+通知Web组件用户取消HTTP认证操作。
+
+### confirm<sup>9+</sup>
+
+confirm(userName: string, pwd: string): boolean
+
+使用用户名和密码进行HTTP认证操作。
+
+**参数:**
+
+| 参数名      | 参数类型   | 必填   | 默认值  | 参数描述       |
+| -------- | ------ | ---- | ---- | ---------- |
+| userName | string | 是    | -    | HTTP认证用户名。 |
+| pwd      | string | 是    | -    | HTTP认证密码。  |
+
+**返回值:**
+| 类型      | 说明                    |
+| ------- | --------------------- |
+| boolean | 认证成功返回true,失败返回false。 |
+
+### isHttpAuthInfoSaved<sup>9+</sup>
+
+isHttpAuthInfoSaved(): boolean
+
+通知Web组件用户使用服务器缓存的账号密码认证。
+
+**返回值:**
+| 类型      | 说明                        |
+| ------- | ------------------------- |
+| boolean | 存在密码认证成功返回true,其他返回false。 |
+
+## PermissionRequest<sup>9+</sup>
+
+Web组件返回授权或拒绝权限功能的对象。示例代码参考[onPermissionRequest事件](#onpermissionrequest9)。
+
+### deny<sup>9+</sup>
+
+deny(): void
+
+拒绝网页所请求的权限。
+
+### getOrigin<sup>9+</sup>
+
+getOrigin(): string
+
+获取网页来源。
+
+**返回值:**
+
+| 类型      | 说明                    |
+| ------- | --------------------- |
+| string  | 当前请求权限网页的来源。 |
+
+### getAccessibleResource<sup>9+</sup>
+
+getAccessibleResource(): Array\<string\>
+
+获取网页所请求的权限资源列表,资源列表类型参考[ProtectedResourceType](#protectedresourcetype9枚举说明)。
+
+**返回值:**
+
+| 类型            | 说明                     |
+| --------------- | ----------------------- |
+| Array\<string\> | 网页所请求的权限资源列表。 |
+
+### grant<sup>9+</sup>
+
+grant(resources: Array\<string\>): void
+
+对网页访问的给定权限进行授权。
+
+**参数:**
+
+| 参数名     | 参数类型        | 必填 | 默认值 | 参数描述                |
+| --------- | --------------- | ---- | ----- | ---------------------- |
+| resources | Array\<string\> | 是   | -     | 网页所请求的权限资源列表。|
 
 ## WebController
 
@@ -216,29 +1696,102 @@ accessBackward(): boolean
 
 当前页面是否可后退,即当前页面是否有返回历史记录。
 
+**返回值:**
+| 类型      | 说明                    |
+| ------- | --------------------- |
+| boolean | 可以后退返回true,否则返回false。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('accessBackward')
+          .onClick(() => {
+            let result = this.controller.accessBackward();
+            console.log('result:' + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### accessForward
 
 accessForward(): boolean
 
 当前页面是否可前进,即当前页面是否有前进历史记录。
 
+**返回值:**
+| 类型      | 说明                    |
+| ------- | --------------------- |
+| boolean | 可以前进返回true,否则返回false。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('accessForward')
+          .onClick(() => {
+            let result = this.controller.accessForward();
+            console.log('result:' + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### accessStep
 
 accessStep(step: number): boolean
 
 当前页面是否可前进或者后退给定的step步。
 
-- 参数
-
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述                                   |
-  | ------ | -------- | ---- | ------ | ------------------------------------------ |
-  | step   | number   | 是   | -      | 要跳转的步数,正数代表前进,负数代表后退。 |
-
-- 返回值
-
-  | 参数类型 | 说明               |
-  | -------- | ------------------ |
-  | boolean  | 页面是否前进或后退 |
+**参数:**
+
+| 参数名  | 参数类型   | 必填   | 默认值  | 参数描述                  |
+| ---- | ------ | ---- | ---- | --------------------- |
+| step | number | 是    | -    | 要跳转的步数,正数代表前进,负数代表后退。 |
+
+**返回值:**
+| 类型      | 说明        |
+| ------- | --------- |
+| boolean | 页面是否前进或后退 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    @State steps: number = 2;
+  
+    build() {
+      Column() {
+        Button('accessStep')
+          .onClick(() => {
+            let result = this.controller.accessStep(this.steps);
+            console.log('result:' + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
 ### backward
 
@@ -246,23 +1799,112 @@ backward(): void
 
 按照历史栈,后退一个页面。一般结合accessBackward一起使用。
 
-### deleteJavaScriptRegister
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('backward')
+          .onClick(() => {
+            this.controller.backward();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
-deleteJavaScriptRegister(name: string): void
+### forward
 
-删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。
+forward(): void
 
-- 参数
+按照历史栈,前进一个页面。一般结合accessForward一起使用。
 
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述                                                     |
-  | ------ | -------- | ---- | ------ | ------------------------------------------------------------ |
-  | name   | string   | 是   | -      | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 |
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('forward')
+          .onClick(() => {
+            this.controller.forward();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### backOrForward<sup>9+</sup>
+
+backOrForward(step: number): void
+
+按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。
+
+**参数:**
+| 参数名  | 参数类型   | 必填   | 默认值  | 参数描述        |
+| ---- | ------ | ---- | ---- | ----------- |
+| step | number | 是    | -    | 需要前进或后退的步长。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller:WebController = new WebController();
+    build() {
+      Column() {
+        Button('backOrForward')
+        .onClick(() => {
+          this.controller.backOrForward();
+        })
+        Web({ src:'www.example.com', controller:this.controller })
+    }
+  }
+  ```
 
-### forward
+### deleteJavaScriptRegister
 
-forward(): void
+deleteJavaScriptRegister(name: string)
 
-按照历史栈,前进一个页面。一般结合accessForward一起使用。
+删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。
+
+**参数:**
+| 参数名  | 参数类型   | 必填   | 默认值  | 参数描述                                     |
+| ---- | ------ | ---- | ---- | ---------------------------------------- |
+| name | string | 是    | -    | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    @State name: string = 'Object';
+  
+    build() {
+      Column() {
+        Button('deleteJavaScriptRegister')
+          .onClick(() => {
+            this.controller.deleteJavaScriptRegister(this.name);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
 ### getHitTest
 
@@ -270,21 +1912,191 @@ getHitTest(): HitTestType
 
 获取当前被点击区域的元素类型。	
 
-- HitTestType枚举说明
-
-  | 名称          | 描述                                      |
-  | ------------- | ----------------------------------------- |
-  | EditText      | 可编辑的区域。                            |
-  | Email         | 电子邮件地址。                            |
-  | HttpAnchor    | 超链接。其src为http。                     |
-  | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 |
-  | Img           | HTML::img标签。                           |
-  | Map           | 地理地址。                                |
-  | Unknown       | 未知内容。                                |
+**返回值:**
+| 类型                              | 说明          |
+| ------------------------------- | ----------- |
+| [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getHitTest')
+          .onClick(() => {
+            let hitType = this.controller.getHitTest();
+            console.log("hitType: " + hitType);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getHitTestValue<sup>9+</sup>
+getHitTestValue(): HitTestValue
+
+获取当前被点击区域的元素信息。
+
+**返回值:**
+| 类型                             | 说明         |
+| ------------------------------ | ---------- |
+| [HitTestValue](#hittestvalue9) | 点击区域的元素信息。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getHitTestValue')
+          .onClick(() => {
+            let hitValue = this.controller.getHitTestValue();
+            console.log("hitType: " + hitValue.getType());
+            console.log("extra: " + hitValue.getExtra());
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getWebId<sup>9+</sup>
+getWebId(): number
+
+获取当前Web组件的索引值,用于多个Web组件的管理。
+
+**返回值:**
+| 类型     | 说明           |
+| ------ | ------------ |
+| number | 当前Web组件的索引值。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getWebId')
+          .onClick(() => {
+            let id = this.controller.getWebId();
+            console.log("id: " + id);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getTitle<sup>9+</sup>
+getTitle(): string
+
+获取当前网页的标题。
+
+**返回值:**
+| 类型     | 说明       |
+| ------ | -------- |
+| string | 当前网页的标题。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getTitle')
+          .onClick(() => {
+            let title = this.controller.getTitle();
+            console.log("title: " + title);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getPageHeight<sup>9+</sup>
+getPageHeight(): number
+
+获取当前网页的页面高度。
+
+**返回值:**
+| 类型     | 说明         |
+| ------ | ---------- |
+| number | 当前网页的页面高度。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getPageHeight')
+          .onClick(() => {
+            let pageHeight = this.controller.getPageHeight();
+            console.log("pageHeight: " + pageHeight);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getDefaultUserAgent<sup>9+</sup>
+getDefaultUserAgent(): string
+
+获取当前默认用户代理。
+
+**返回值:**
+| 类型     | 说明      |
+| ------ | ------- |
+| string | 默认用户代理。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getDefaultUserAgent')
+          .onClick(() => {
+            let userAgent = this.controller.getDefaultUserAgent();
+            console.log("userAgent: " + userAgent);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
 ### loadData
 
-loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }): void
+loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string })
 
 baseUrl为空时,通过”data“协议加载指定的一段字符串。
 
@@ -292,19 +2104,42 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。
 
 当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。
 
-- options参数说明
-
-  | 参数名     | 参数类型 | 必填 | 默认值 | 参数描述                                                     |
-  | ---------- | -------- | ---- | ------ | ------------------------------------------------------------ |
-  | data       | string   | 是   | -      | 按照”Base64“或者”URL"编码后的一段字符串。                    |
-  | mimeType   | string   | 是   | -      | 媒体类型(MIME)。                                           |
-  | encoding   | string   | 是   | -      | 编码类型,具体为“Base64"或者”URL编码。                       |
-  | baseUrl    | string   | 否   | -      | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 |
-  | historyUrl | string   | 否   | -      | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 |
+**参数:**
+| 参数名        | 参数类型   | 必填   | 默认值  | 参数描述                                     |
+| ---------- | ------ | ---- | ---- | ---------------------------------------- |
+| data       | string | 是    | -    | 按照”Base64“或者”URL"编码后的一段字符串。              |
+| mimeType   | string | 是    | -    | 媒体类型(MIME)。                              |
+| encoding   | string | 是    | -    | 编码类型,具体为“Base64"或者”URL编码。                |
+| baseUrl    | string | 否    | -    | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 |
+| historyUrl | string | 否    | -    | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('loadData')
+          .onClick(() => {
+            this.controller.loadData({
+              data: "<html><body bgcolor=\"white\">Source:<pre>source</pre></body></html>",
+              mimeType: "text/html",
+              encoding: "UTF-8"
+            });
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
 ### loadUrl
 
-loadUrl(options:{ url: string, headers?: Array\<Header\> }): void
+loadUrl(options: { url: string | Resource, headers?: Array\<Header\> })
 
 使用指定的http头加载指定的URL。
 
@@ -312,12 +2147,31 @@ loadUrl(options:{ url: string, headers?: Array\<Header\> }): void
 
 而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。
 
-- options参数说明
-
-  | 参数名  | 参数类型                           | 必填 | 默认值 | 参数描述              |
-  | ------- | ---------------------------------- | ---- | ------ | --------------------- |
-  | url     | string                             | 是   | -      | 需要加载的 URL。      |
-  | headers | Array\<[Header](#header对象说明)\> | 否   | []     | URL的附加HTTP请求头。 |
+**参数:**
+| 参数名     | 参数类型                       | 必填   | 默认值  | 参数描述           |
+| ------- | -------------------------- | ---- | ---- | -------------- |
+| url     | string                     | 是    | -    | 需要加载的 URL。     |
+| headers | Array\<[Header](#header)\> | 否    | []   | URL的附加HTTP请求头。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('loadUrl')
+          .onClick(() => {
+            this.controller.loadUrl({ url: 'www.example.com' });
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
 ### onActive
 
@@ -325,130 +2179,992 @@ onActive(): void
 
 调用此接口通知Web组件进入前台激活状态。
 
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('onActive')
+          .onClick(() => {
+            this.controller.onActive();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### onInactive
 
 onInactive(): void
 
 调用此接口通知Web组件进入未激活状态。
 
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('onInactive')
+          .onClick(() => {
+            this.controller.onInactive();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### zoom
+zoom(factor: number): void
+
+调整当前网页的缩放比例。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 参数描述                           |
+| ------ | ------ | ---- | ------------------------------ |
+| factor | number | 是    | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    @State factor: number = 1;
+  
+    build() {
+      Column() {
+        Button('zoom')
+          .onClick(() => {
+            this.controller.zoom(this.factor);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### zoomIn<sup>9+</sup>
+zoomIn(): boolean
+
+调用此接口将当前网页进行放大,比列20%。
+
+**返回值:**
+| 类型      | 说明          |
+| ------- | ----------- |
+| boolean | 放大操作是否成功执行。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('zoomIn')
+          .onClick(() => {
+            let result = this.controller.zoomIn();
+            console.log("result: " + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### zoomOut<sup>9+</sup>
+zoomOut(): boolean
+
+调用此接口将当前网页进行缩小,比列20%。
+
+**返回值:**
+| 类型      | 说明          |
+| ------- | ----------- |
+| boolean | 缩小操作是否成功执行。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('zoomOut')
+          .onClick(() => {
+            let result = this.controller.zoomOut();
+            console.log("result: " + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### refresh
 
-refresh(): void
+refresh()
 
 调用此接口通知Web组件刷新网页。
 
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('refresh')
+          .onClick(() => {
+            this.controller.refresh();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### registerJavaScriptProxy
 
-registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\<string\> }): void
+registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\<string\> })
 
 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。
 
-- options 参数说明
-
-  | 参数名     | 参数类型        | 必填 | 默认值 | 参数描述                                                     |
-  | ---------- | --------------- | ---- | ------ | ------------------------------------------------------------ |
-  | object     | object          | 是   | -      | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean |
-  | name       | string          | 是   | -      | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 |
-  | methodList | Array\<string\> | 是   | -      | 参与注册的应用侧JavaScript对象的方法。                       |
+**参数:**
+| 参数名        | 参数类型            | 必填   | 默认值  | 参数描述                                     |
+| ---------- | --------------- | ---- | ---- | ---------------------------------------- |
+| object     | object          | 是    | -    | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean |
+| name       | string          | 是    | -    | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 |
+| methodList | Array\<string\> | 是    | -    | 参与注册的应用侧JavaScript对象的方法。                 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct Index {
+    controller: WebController = new WebController()
+    testObj = {
+      test: (data) => {
+        return "ArkUI Web Component";
+      },
+      toString: () => {
+        console.log('Web Component toString');
+      }
+    }
+    build() {
+      Column() {
+        Row() {
+          Button('Register JavaScript To Window').onClick(() => {
+            this.controller.registerJavaScriptProxy({
+              object: this.testObj,
+              name: "objName",
+              methodList: ["test", "toString"],
+            });
+          })
+        }
+        Web({ src: $rawfile('index.html'), controller: this.controller })
+          .javaScriptAccess(true)
+      }
+    }
+  }
+  ```
+
+  ```html
+  <!-- index.html -->
+  <!DOCTYPE html>
+  <html>
+      <meta charset="utf-8">
+      <body>
+          Hello world!
+      </body>
+      <script type="text/javascript">
+      function htmlTest() {
+          str = objName.test("test function");
+          console.log('objName.test result:'+ str);
+      }
+  </script>
+  </html>
+  
+  ```
 
 ### runJavaScript
 
-runJavaScript(options: { script: string, callback?: (result: string) => void }): void
+runJavaScript(options: { script: string, callback?: (result: string) => void })
 
 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。
 
-- options参数说明
+**参数:**
+| 参数名      | 参数类型                     | 必填   | 默认值  | 参数描述                                     |
+| -------- | ------------------------ | ---- | ---- | ---------------------------------------- |
+| script   | string                   | 是    | -    | JavaScript脚本。                            |
+| callback | (result: string) => void | 否    | -    | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    @State webResult: string = ''
+    build() {
+      Column() {
+        Text(this.webResult).fontSize(20)
+        Web({ src: $rawfile('index.html'), controller: this.controller })
+        .javaScriptAccess(true)
+        .onPageEnd(e => {
+          this.controller.runJavaScript({
+            script: 'test()',
+            callback: (result: string)=> {
+              this.webResult = result
+              console.info(`The test() return value is: ${result}`)
+            }});
+          console.info('url: ', e.url);
+        })
+      }
+    }
+  }
+  ```
+
+  ```html
+  <!-- index.html -->
+  <!DOCTYPE html>
+  <html>
+    <meta charset="utf-8">
+    <body>
+        Hello world!
+    </body>
+    <script type="text/javascript">
+    function test() {
+        console.log('Ark WebComponent');
+        return "This value is from index.html"
+    }
+    </script>
+  </html>
 
-  | 参数名   | 参数类型                 | 必填 | 默认值 | 参数描述                                                     |
-  | -------- | ------------------------ | ---- | ------ | ------------------------------------------------------------ |
-  | script   | string                   | 是   | -      | JavaScript脚本。                                             |
-  | callback | (result: string) => void | 否   | -      | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 |
+  ```
 
 ### stop
 
-stop(): void
+stop()
 
 停止页面加载。
 
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('stop')
+          .onClick(() => {
+            this.controller.stop();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
 ### clearHistory
 
 clearHistory(): void
 
 删除所有前进后退记录。
 
-### getCookieManager
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('clearHistory')
+          .onClick(() => {
+            this.controller.clearHistory();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getCookieManager<sup>9+</sup>
 
 getCookieManager(): WebCookie
 
 获取web组件cookie管理对象。
-- 返回值
-  | 参数类型  | 说明                                                     |
-  | --------- | -------------------------------------------------------- |
-  | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 |
+
+**返回值:**
+| 类型        | 说明                                       |
+| --------- | ---------------------------------------- |
+| WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('getCookieManager')
+          .onClick(() => {
+            let cookieManager = this.controller.getCookieManager();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+## HitTestValue<sup>9+</sup>
+提供点击区域的元素信息。示例代码参考[getHitTestValue](#gethittestvalue9)。
+
+### getType<sup>9+</sup>
+getType(): HitTestType
+
+获取当前被点击区域的元素类型。
+
+**返回值:**
+| 类型                              | 说明            |
+| ------------------------------- | ------------- |
+| [HitTestType](#hittesttype枚举说明) | 当前被点击区域的元素类型。 |
+
+### getExtra<sup>9+</sup>
+getExtra(): string
+
+若被点击区域为图片或链接,则附加参数信息为其url地址。
+
+**返回值:**
+| 类型     | 说明           |
+| ------ | ------------ |
+| string | 点击区域的附加参数信息。 |
+
 ## WebCookie
+
 通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。
-### setCookie
+
+### setCookie<sup>9+</sup>
 setCookie(url: string, value: string): boolean
 
 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。
 
-- 参数说明
-
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述                  |
-  | ------ | -------- | ---- | ------ | ------------------------- |
-  | url    | string   | 是   | -      | 要设置的cookie所属的url。 |
-  | value  | string   | 是   | -      | cookie的值。              |
-- 返回值 
-  | 参数类型 | 说明                 |
-  | -------- | -------------------- |
-  | boolean  | 设置cookie是否成功。 |
+**参数:**
+| 参数名   | 参数类型   | 必填   | 默认值  | 参数描述              |
+| ----- | ------ | ---- | ---- | ----------------- |
+| url   | string | 是    | -    | 要设置的cookie所属的url。 |
+| value | string | 是    | -    | cookie的值。         |
+
+**返回值:** 
+| 类型      | 说明            |
+| ------- | ------------- |
+| boolean | 设置cookie是否成功。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('setCookie')
+          .onClick(() => {
+            let result = this.controller.getCookieManager().setCookie("www.example.com", "a=b");
+            console.log("result: " + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
 
-### saveCookieSync
+### saveCookieSync<sup>9+</sup>
 saveCookieSync(): boolean
 
 将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。
-- 返回值
-  | 参数类型 | 说明                               |
-  | -------- | ---------------------------------- |
-  | boolean  | 同步内存cookie到磁盘操作是否成功。 |
-## 示例
-
-```ts
-// webComponent.ets
-@Entry
-@Component
-struct WebComponent {
-  @State javaScriptAccess: boolean = true;
-  @State fileAccess: boolean = true;
-  controller: WebController = new WebController();
-  build() {
-    Column() {
-      Web({ src: $rawfile('index.html'), controller: this.controller })
-      .javaScriptAccess(this.javaScriptAccess)
-      .fileAccess(this.fileAccess)
-      .onPageEnd(e => {
-        // test() 在 index.html 中已定义
-        this.controller.runJavaScript({ script: 'test()' });
-        console.log("url: ", e.url);
-      })
-    }
-  }
-}
-```
-```html
-<!-- index.html -->
-<!DOCTYPE html>
-<html>
-<meta charset="utf-8">
-<body>
-    Hello world!
-</body>
-<script type="text/javascript">
-	function test() {
-		console.log('Ark WebComponent');
-	}
-</script>
-</html>
-```
 
-![](figures/Web.png)
\ No newline at end of file
+**返回值:**
+| 类型      | 说明                   |
+| ------- | -------------------- |
+| boolean | 同步内存cookie到磁盘操作是否成功。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('saveCookieSync')
+          .onClick(() => {
+            let result = this.controller.getCookieManager().saveCookieSync();
+            console.log("result: " + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+## WebDataBase<sup>9+</sup>
+web组件数据库管理对象。
+
+### existHttpAuthCredentials<sup>9+</sup>
+
+static existHttpAuthCredentials(): boolean
+
+判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,不存在返回false。
+
+**返回值:** 
+| 类型      | 说明                                       |
+| ------- | ---------------------------------------- |
+| boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('existHttpAuthCredentials')
+          .onClick(() => {
+            let result = web.WebDataBase.existHttpAuthCredentials();
+            console.log('result: ' + result);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### deleteHttpAuthCredentials<sup>9+</sup>
+
+static deleteHttpAuthCredentials(): void
+
+清除所有已保存的HTTP身份验证凭据,该方法为同步方法。
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+  
+    build() {
+      Column() {
+        Button('deleteHttpAuthCredentials')
+          .onClick(() => {
+            web.WebDataBase.deleteHttpAuthCredentials();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### getHttpAuthCredentials<sup>9+</sup>
+
+static getHttpAuthCredentials(host: string, realm: string): Array\<string\>
+
+检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。
+
+**参数:**
+| 参数名   | 参数类型   | 必填   | 默认值  | 参数描述             |
+| ----- | ------ | ---- | ---- | ---------------- |
+| host  | string | 是    | -    | HTTP身份验证凭据应用的主机。 |
+| realm | string | 是    | -    | HTTP身份验证凭据应用的域。  |
+
+**返回值:** 
+| 类型              | 说明                     |
+| --------------- | ---------------------- |
+| Array\<string\> | 包含用户名和密码的组数,检索失败返回空数组。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    host: string = "www.spincast.org";
+    realm: string = "protected example";
+    username_password: string[];
+    build() {
+      Column() {
+        Button('getHttpAuthCredentials')
+          .onClick(() => {
+            this.username_password = web.WebDataBase.getHttpAuthCredentials(this.host, this.realm);
+            console.log('num: ' + this.username_password.length);
+            ForEach(this.username_password, (item) => {
+              console.log('username_password: ' + item);
+            }, item => item)
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+### saveHttpAuthCredentials<sup>9+</sup>
+
+static saveHttpAuthCredentials(host: string, realm: string, username: string, password: string): void
+
+保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。
+
+**参数:**
+| 参数名      | 参数类型   | 必填   | 默认值  | 参数描述             |
+| -------- | ------ | ---- | ---- | ---------------- |
+| host     | string | 是    | -    | HTTP身份验证凭据应用的主机。 |
+| realm    | string | 是    | -    | HTTP身份验证凭据应用的域。  |
+| username | string | 是    | -    | 用户名。             |
+| password | string | 是    | -    | 密码。              |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    host: string = "www.spincast.org";
+    realm: string = "protected example";
+    build() {
+      Column() {
+        Button('saveHttpAuthCredentials')
+          .onClick(() => {
+            web.WebDataBase.saveHttpAuthCredentials(this.host, this.realm, "Stromgol", "Laroche");
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+      }
+    }
+  }
+  ```
+
+## WebStorage<sup>9+</sup>
+通过WebStorage可管理Web SQL数据库接口和HTML5 Web存储接口,每个应用中的所有Web组件共享一个WebStorage。
+### deleteAllData<sup>9+</sup>
+static deleteAllData(): void
+
+清除Web SQL数据库当前使用的所有存储。
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    build() {
+      Column() {
+        Button('deleteAllData')
+          .onClick(() => {
+            web.WebStorage.deleteAllData();
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+        .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### deleteOrigin<sup>9+</sup>
+static deleteOrigin(origin : string): void
+
+清除指定源所使用的存储。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 说明         |
+| ------ | ------ | ---- | ---------- |
+| origin | string | 是    | 指定源的字符串索引。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getHttpAuthCredentials')
+          .onClick(() => {
+            web.WebStorage.deleteOrigin(this.origin);
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+        .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOrigins<sup>9+</sup>
+static getOrigins(callback: AsyncCallback<Array<[WebStorageOrigin]>>) : void
+
+以回调方式异步获取当前使用Web SQL数据库的所有源的信息。
+
+**参数:**
+| 参数名      | 参数类型                                     | 必填   | 说明                                  |
+| -------- | ---------------------------------------- | ---- | ----------------------------------- |
+| callback | AsyncCallback<Array<[WebStorageOrigin](#webstorageorigin9)>> | 是    | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOrigins')
+          .onClick(() => {
+            web.WebStorage.getOrigins((error, origins) => {
+              if (error) {
+                console.log('error: ' + error);
+                return;
+              }
+              for (let i = 0; i < origins.length; i++) {
+                console.log('origin: ' + origins[i].origin);
+                console.log('usage: ' + origins[i].usage);
+                console.log('quota: ' + origins[i].quota);
+              }
+            })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+        .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOrigins<sup>9+</sup>
+static getOrigins() : Promise<Array<[WebStorageOrigin]>>
+
+以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。
+
+**返回值:**
+| 类型                                       | 说明                                       |
+| ---------------------------------------- | ---------------------------------------- |
+| Promise<Array<[WebStorageOrigin](#webstorageorigin9)>> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOrigins')
+          .onClick(() => {
+            web.WebStorage.getOrigins()
+              .then(origins => {
+                for (let i = 0; i < origins.length; i++) {
+                  console.log('origin: ' + origins[i].origin);
+                  console.log('usage: ' + origins[i].usage);
+                  console.log('quota: ' + origins[i].quota);
+                }
+              })
+              .catch(error => {
+                console.log('error: ' + error);
+              })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+          .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOriginQuota<sup>9+</sup>
+static getOriginQuota(origin : string, callback : AsyncCallback\<number>) : void
+
+使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。
+
+**参数:**
+| 参数名      | 参数类型                   | 必填   | 说明        |
+| -------- | ---------------------- | ---- | --------- |
+| origin   | string                 | 是    | 指定源的字符串索引 |
+| callback | AsyncCallback\<number> | 是    | 指定源的存储配额。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOriginQuota')
+          .onClick(() => {
+            web.WebStorage.getOriginQuota(this.origin, (error, quota) => {
+              if (error) {
+                console.log('error: ' + error);
+                return;
+              }
+              console.log('quota: ' + quota);
+            })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+          .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOriginQuota<sup>9+</sup>
+static getOriginQuota(origin : string) : Promise\<number>
+
+以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 说明         |
+| ------ | ------ | ---- | ---------- |
+| origin | string | 是    | 指定源的字符串索引。 |
+
+**返回值:**
+| 类型               | 说明                      |
+| ---------------- | ----------------------- |
+| Promise\<number> | Promise实例,用于获取指定源的存储配额。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOriginQuota')
+          .onClick(() => {
+            web.WebStorage.getOriginQuota(this.origin)
+              .then(quota => {
+                console.log('quota: ' + quota);
+              })
+              .catch(error => {
+                console.log('error: ' + error);
+              })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+          .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOriginUsage<sup>9+</sup>
+static getOriginUsage(origin : string, callback : AsyncCallback\<number>) : void
+
+以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。
+
+**参数:**
+| 参数名      | 参数类型                   | 必填   | 说明         |
+| -------- | ---------------------- | ---- | ---------- |
+| origin   | string                 | 是    | 指定源的字符串索引。 |
+| callback | AsyncCallback\<number> | 是    | 指定源的存储量。   |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOriginUsage')
+          .onClick(() => {
+            web.WebStorage.getOriginUsage(this.origin, (error, usage) => {
+              if (error) {
+                console.log('error: ' + error);
+                return;
+              }
+              consloe.log('usage: ' + usage);
+            })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+          .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+### getOriginUsage<sup>9+</sup>
+static getOriginUsage(origin : string) : Promise\<number>
+
+以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 说明         |
+| ------ | ------ | ---- | ---------- |
+| origin | string | 是    | 指定源的字符串索引。 |
+
+**返回值:**
+| 类型               | 说明                     |
+| ---------------- | ---------------------- |
+| Promise\<number> | Promise实例,用于获取指定源的存储量。 |
+
+**示例:**
+  ```ts
+  // xxx.ets
+  import web from '@ohos.web';
+  @Entry
+  @Component
+  struct WebComponent {
+    controller: WebController = new WebController();
+    origin: string = "origin";
+    build() {
+      Column() {
+        Button('getOriginQuota')
+          .onClick(() => {
+            web.WebStorage.getOriginUsage(this.origin)
+              .then(usage => {
+                console.log('usage: ' + usage);
+              })
+              .catch(error => {
+                console.log('error: ' + error);
+              })
+          })
+        Web({ src: 'www.example.com', controller: this.controller })
+          .databaseAccess(true)
+      }
+    }
+  }
+  ```
+
+## WebStorageOrigin<sup>9+</sup>
+
+提供Web SQL数据库的使用信息。
+
+**参数:**
+| 参数名    | 参数类型   | 必填   | 说明         |
+| ------ | ------ | ---- | ---------- |
+| origin | string | 是    | 指定源的字符串索引。 |
+| usage  | number | 是    | 指定源的存储量。   |
+| quota  | number | 是    | 指定源的存储配额。  |
+
+## MessageLevel枚举说明
+
+| 名称    | 描述    |
+| ----- | :---- |
+| Debug | 调试级别。 |
+| Error | 错误级别。 |
+| Info  | 消息级别。 |
+| Log   | 日志级别。 |
+| Warn  | 警告级别。 |
+
+## RenderExitReason枚举说明
+
+onRenderExited接口返回的渲染进程退出的具体原因。
+
+| 名称                         | 描述                |
+| -------------------------- | ----------------- |
+| ProcessAbnormalTermination | 渲染进程异常退出。         |
+| ProcessWasKilled           | 收到SIGKILL,或被手动终止。 |
+| ProcessCrashed             | 渲染进程崩溃退出,如段错误。    |
+| ProcessOom                 | 程序内存不足。           |
+| ProcessExitUnknown         | 其他原因。             |
+
+## MixedMode枚举说明
+
+| 名称         | 描述                                 |
+| ---------- | ---------------------------------- |
+| All        | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 |
+| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。           |
+| None       | 不允许加载HTTP和HTTPS混合内容。               |
+
+## CacheMode枚举说明
+| 名称      | 描述                                   |
+| ------- | ------------------------------------ |
+| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 |
+| None    | 加载资源使用cache,如果cache中无该资源则从网络中获取。     |
+| Online  | 加载资源不使用cache,全部从网络中获取。               |
+| Only    | 只从cache中加载资源。                        |
+
+## FileSelectorMode枚举说明
+| 名称                   | 描述         |
+| -------------------- | ---------- |
+| FileOpenMode         | 打开上传单个文件。  |
+| FileOpenMultipleMode | 打开上传多个文件。  |
+| FileOpenFolderMode   | 打开上传文件夹模式。 |
+| FileSaveMode         | 文件保存模式。    |
+
+ ## HitTestType枚举说明
+
+| 名称            | 描述                       |
+| ------------- | ------------------------ |
+| EditText      | 可编辑的区域。                  |
+| Email         | 电子邮件地址。                  |
+| HttpAnchor    | 超链接,其src为http。           |
+| HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 |
+| Img           | HTML::img标签。             |
+| Map           | 地理地址。                    |
+| Unknown       | 未知内容。                    |
+
+## ProtectedResourceType<sup>9+</sup>枚举说明
+
+| 名称      | 描述            | 备注           |
+| --------- | -------------- | -------------- |
+| MidiSysex | MIDI SYSEX资源。| 目前仅支持权限事件上报,MIDI设备的使用还未支持。|
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md
index a9d70accd7d88e1d2715d06407c7c9bfc627dccd..a16c30fb3ab8e46fb947384bc86869b7dff8316f 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md
@@ -1,7 +1,7 @@
 # XComponent
 
   >  **说明:**
-  > 该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+  > 该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。   
 
   可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。
 
@@ -83,8 +83,8 @@ getXComponentContext(): Object
 
 ## 示例
 
-提供surface类型XComponent,支持相机预览等能力。
-
+提供surface类型XComponent,支持相机预览等能力。  
+示例效果请以真机运行为准,当前IDE预览器不支持。
 ```ts
 // xxx.ets
 import camera from '@ohos.multimedia.camera';
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-gestures-pinchgesture.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-gestures-pinchgesture.md
index 317f763e1e1af6bba81cf61bfbed7749992b7751..d55eb0105e3ab4ff05f8b12c0169b73e8c44d702 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-gestures-pinchgesture.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-gestures-pinchgesture.md
@@ -46,21 +46,21 @@ PinchGesture(options?: { fingers?: number, distance?: number })
 @Entry
 @Component
 struct PinchGestureExample {
-  @State scale: number = 1
+  @State scaleValue: number = 1
 
   build() {
     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
       Text('PinchGesture scale:' + this.scale)
     }
     .height(100).width(200).padding(20).border({ width: 1 }).margin(80)
-    .scale({ x: this.scale, y: this.scale, z: this.scale })
+    .scale({ x: this.scaleValue, y: this.scaleValue, z: this.scaleValue })
     .gesture(
       PinchGesture()
         .onActionStart((event: GestureEvent) => {
           console.info('Pinch start')
         })
         .onActionUpdate((event: GestureEvent) => {
-          this.scale = event.scale
+          this.scaleValue = event.scale
         })
         .onActionEnd(() => {
           console.info('Pinch end')
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
index 602a4899e45964f304c58de3f5a725fde384ea2d..fcbb96d0992f6a596f7b0ea8856e40acf31dcf66 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
@@ -19,14 +19,14 @@ CanvasRenderingContext2D(setting: RenderingContextSetting)
 
 ### RenderingContextSettings
 
-RenderingContextSettings(antialias?: bool)
+RenderingContextSettings(antialias?: boolean)
 
 用来配置CanvasRenderingContext2D对象的参数,包括是否开启抗锯齿。
 
 - 参数
-  | 参数名       | 参数类型 | 必填   | 默认值   | 参数描述             |
-  | --------- | ---- | ---- | ----- | ---------------- |
-  | antialias | bool | 否    | false | 表明canvas是否开启抗锯齿。 |
+  | 参数名       | 参数类型    | 必填   | 默认值   | 参数描述             |
+  | --------- | ------- | ---- | ----- | ---------------- |
+  | antialias | boolean | 否    | false | 表明canvas是否开启抗锯齿。 |
 
 
 ## 属性
@@ -258,7 +258,7 @@ struct MiterLimit {
 // xxx.ets
 @Entry
 @Component
-struct Font {
+struct Fonts {
   private settings: RenderingContextSettings = new RenderingContextSettings(true)
   private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
   
@@ -1746,17 +1746,17 @@ drawImage(image: ImageBitmap | PixelMap, sx: number, sy: number, sWidth: number,
 进行图像绘制。
 
 - 参数
-  | 参数      | 类型                                       | 必填   | 默认值  | 描述                            |
-  | ------- | ---------------------------------------- | ---- | ---- | ----------------------------- |
-  | image   | [ImageBitmap](ts-components-canvas-imagebitmap.md)或[PixelMap](../apis/js-apis-image.md#pixelmap7) | 是    | null | 图片资源,请参考ImageBitmap或PixelMap。 |
-  | sx      | number                                   | 否    | 0    | 裁切源图像时距离源图像左上角的x坐标值。          |
-  | sy      | number                                   | 否    | 0    | 裁切源图像时距离源图像左上角的y坐标值。          |
-  | sWidth  | number                                   | 否    | 0    | 裁切源图像时需要裁切的宽度。                |
-  | sHeight | number                                   | 否    | 0    | 裁切源图像时需要裁切的高度。                |
-  | dx      | number                                   | 是    | 0    | 绘制区域左上角在x轴的位置。                |
-  | dy      | number                                   | 是    | 0    | 绘制区域左上角在y&nbsp;轴的位置。          |
-  | dWidth  | number                                   | 否    | 0    | 绘制区域的宽度。                      |
-  | dHeight | number                                   | 否    | 0    | 绘制区域的高度。                      |
+  | 参数      | 类型                                       | 必填   | 默认值  | 描述                                       |
+  | ------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- |
+  | image   | [ImageBitmap](ts-components-canvas-imagebitmap.md)或[PixelMap](../apis/js-apis-image.md#pixelmap7) | 是    | null | 图片资源,请参考ImageBitmap或PixelMap。            |
+  | sx      | number                                   | 否    | 0    | 裁切源图像时距离源图像左上角的x坐标值。                     |
+  | sy      | number                                   | 否    | 0    | 裁切源图像时距离源图像左上角的y坐标值。                     |
+  | sWidth  | number                                   | 否    | 0    | 裁切源图像时需要裁切的宽度。                           |
+  | sHeight | number                                   | 否    | 0    | 裁切源图像时需要裁切的高度。                           |
+  | dx      | number                                   | 是    | 0    | 绘制区域左上角在x轴的位置。                           |
+  | dy      | number                                   | 是    | 0    | 绘制区域左上角在y&nbsp;轴的位置。                     |
+  | dWidth  | number                                   | 否    | 0    | 绘制区域的宽度。当绘制区域的宽度和裁剪图像的宽度不一致时,将图像宽度拉伸或压缩为绘制区域的宽度。 |
+  | dHeight | number                                   | 否    | 0    | 绘制区域的高度。当绘制区域的高度和裁剪图像的高度不一致时,将图像高度拉伸或压缩为绘制区域的高度。 |
 
 
 - 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-combined-gestures.md b/zh-cn/application-dev/reference/arkui-ts/ts-combined-gestures.md
index d5d3324e8a027846ca166638f9be4c9a93d90602..b702af0af1c0573fb956353f282a4704dd47c084 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-combined-gestures.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-combined-gestures.md
@@ -46,13 +46,13 @@ struct GestureGroupExample {
   @State count: number = 0
   @State offsetX: number = 0
   @State offsetY: number = 0
-  @State borderStyle: BorderStyle = BorderStyle.Solid
+  @State borderStyles: BorderStyle = BorderStyle.Solid
 
   build() {
     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
       Text('sequence gesture\n' + 'LongPress onAction:' + this.count + '\nPanGesture offset:\nX: ' + this.offsetX + '\n' + 'Y: ' + this.offsetY)
     }.translate({ x: this.offsetX, y: this.offsetY, z: 5 })
-    .height(100).width(200).padding(10).margin(80).border({ width: 1, style: this.borderStyle })
+    .height(100).width(200).padding(10).margin(80).border({ width: 1, style: this.borderStyles })
     .gesture(
       GestureGroup(GestureMode.Sequence,
         LongPressGesture({ repeat: true })
@@ -65,7 +65,7 @@ struct GestureGroupExample {
           }),
         PanGesture({})
           .onActionStart(() => {
-            this.borderStyle = BorderStyle.Dashed
+            this.borderStyles = BorderStyle.Dashed
             console.log('pan start')
           })
           .onActionUpdate((event: GestureEvent) => {
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md
index 90c23a37039a941962026127fbbb90a0ce6fc1db..2c37265fd0b029bed6458350d2642c2a5500ec18 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md
@@ -17,7 +17,7 @@ addColorStop(offset: number, color: string): void
   | 参数 | 类型 | 必填 | 默认值 | 描述 | 
   | -------- | -------- | -------- | -------- | -------- |
   | offset | number | 是 | 0 | 设置渐变点距离起点的位置占总体长度的比例,范围为0到1。 | 
-  | color | string | 是 | 'ffffff' | 设置渐变的颜色。 | 
+  | color | string | 是 | '#ffffff' | 设置渐变的颜色。 | 
 
 - 示例
   ```ts
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md
index d6717d2d95ec031d03f99441c2504acc2dd0d15d..b0bfd71a88505c675658bca83cb2eda3d39851d7 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md
@@ -41,34 +41,20 @@ ohos.permission.INTEGRATED_INTERIOR_WINDOW
 
 ## 接口
 
-AbilityComponent(value: {want : Want, controller? : AbilityController})
+AbilityComponent(value: {want : Want})
 
 - 参数
   | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
   | -------- | -------- | -------- | -------- | -------- |
   | want | [Want](../../reference/apis/js-apis-application-Want.md) | 是 | - | 默认加载的Ability描述。 |
-  | controller | [AbilityController](#abilityController) | 否 | - | Ability控制器。 |
 
 
 ## 事件
 
 | 名称 | 功能描述 |
 | -------- | -------- |
-| onReady()&nbsp;=&gt;&nbsp;void | AbilityComponent环境启动完成时的回调,之后可使用AbilityComponent的方法。 |
-| onDestroy()&nbsp;=&gt;&nbsp;void | AbilityComponent环境销毁时的回调。 |
-| onAbilityCreated(name:&nbsp;string)&nbsp;=&gt;&nbsp;void | 加载Ability时触发,name为Ability名。 |
-| onAbilityMoveToFont()&nbsp;=&gt;&nbsp;void               | 当Ability移动到前台时触发。 |
-| onAbilityWillRemove()&nbsp;=&gt;&nbsp;void | Ability移除之前触发。 |
-
-## AbilityController
-
-Ability控制器,提供AbilityComponent的控制接口。
-
-| 名称                                    | 功能描述                                                     |
-| --------------------------------------- | ------------------------------------------------------------ |
-| startAbility()&nbsp;=&gt;&nbsp;want     | 在AbilityComponent内部加载Ability。<br>want:要加载的Ability描述信息。 |
-| preformBackPress()&nbsp;=&gt;&nbsp;void | 在AbilityComponent内部执行返回操作。                         |
-| getStackCount()&nbsp;=&gt;&nbsp;void    | 获取AbilityComponent内部任务栈中任务的个数。                 |
+| onConnect()&nbsp;=&gt;&nbsp;void | AbilityComponent环境启动完成时的回调,之后可使用AbilityComponent的方法。 |
+| onDisconnect()&nbsp;=&gt;&nbsp;void | AbilityComponent环境销毁时的回调。 |
 
 
 ## 示例
@@ -78,7 +64,6 @@ Ability控制器,提供AbilityComponent的控制接口。
 @Entry
 @Component
 struct MyComponent {
- @State controller: AbilityController = new AbilityController()
 
   build() {
       Column() {
@@ -87,26 +72,12 @@ struct MyComponent {
                   bundleName: '',
                   abilityName: ''
               },
-              controller: this.controller
-          })
-          .onReady(() => {
-              console.log('AbilityComponent ready');
           })
-          .onDestory(() => {
-              console.log('AbilityComponent destory');
-          })
-          Button("Start New")
-          .onClick(() => {
-              this.controller.startAbility({
-                  bundleName: '',
-                  abilityName: ''
-              });
+          .onConnect(() => {
+              console.log('AbilityComponent connect');
           })
-          Button("Back")
-          .onClick(() => {
-              if (this.controller.getStacjCount() > 1) {
-                  this.controller.preformBackPress();
-              }
+          .onDisconnect(() => {
+              console.log('AbilityComponent disconnect');
           })
       }
   }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
index 4f83bc1fcc1967187cb60abf1efa133d12741171..e618bdb2db9974a8686548e96a2bea53202ec68b 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
@@ -23,9 +23,9 @@ Column(value:{space?: Length})
 
 
 - 参数
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | 
+  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
   | -------- | -------- | -------- | -------- | -------- |
-  | space | Length | 否 | 0 | 纵向布局元素间距。 | 
+  | space | Length | 否 | 0 | 纵向布局元素间距。 |
 
 
 ## 属性
@@ -33,13 +33,13 @@ Column(value:{space?: Length})
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
 | alignItems | HorizontalAlign | HorizontalAlign.Center | 设置子组件在水平方向上的对齐格式。 |
-| justifyContent8+ | [FlexAlign](ts-container-flex.md) | FlexAlign.Start | 设置子组件在垂直方向上的对齐格式。 |
+| justifyContent<sup>8+</sup> | [FlexAlign](ts-container-flex.md) | FlexAlign.Start | 设置子组件在垂直方向上的对齐格式。 |
 
 - HorizontalAlign枚举说明
-  | 名称 | 描述 | 
+  | 名称 | 描述 |
   | -------- | -------- |
-  | Start | 按照语言方向起始端对齐。 | 
-  | Center | 居中对齐,默认对齐方式。 | 
+  | Start | 按照语言方向起始端对齐。 |
+  | Center | 居中对齐,默认对齐方式。 |
   | End | 按照语言方向末端对齐。 |
 
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md
index 8cf11c00aebb020da33014a16a1bd50bce0ccabb..354136dd9454b0c5734f556e75d4f778d1a2ae33 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md
@@ -3,7 +3,8 @@
 应用弹性方式布局子组件的容器组件。
 
 > **说明:**
-> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> - 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> - Flex组件在设置flexShrink、flexGrow时存在二次布局过程,因此在对性能有严格要求的场景下建议使用[Column](ts-container-column.md)、[Row](ts-container-row.md)代替。
 
 
 ## 权限列表
@@ -40,21 +41,21 @@ Flex(options?: { direction?: FlexDirection, wrap?: FlexWrap,  justifyContent?: F
   | ColumnReverse | 与Column相反方向进行布局。 |
 
 - FlexWrap枚举说明
-  | 名称          | 描述                          |
-  | ----------- | --------------------------- |
-  | NoWrap      | Flex容器的元素单行/列布局,子项允许超出容器。   |
-  | Wrap        | Flex容器的元素多行/列排布,子项允许超出容器。   |
+  | 名称        | 描述                                              |
+  | ----------- | ------------------------------------------------- |
+  | NoWrap      | Flex容器的元素单行/列布局,子项不允许超出容器。   |
+  | Wrap        | Flex容器的元素多行/列排布,子项允许超出容器。     |
   | WrapReverse | Flex容器的元素反向多行/列排布,子项允许超出容器。 |
 
 - FlexAlign枚举说明
-  | 名称           | 描述                                       |
-  | ------------ | ---------------------------------------- |
-  | Start        | 元素在主轴方向首端对齐,&nbsp;第一个元素与行首对齐,同时后续的元素与前一个对齐。 |
-  | Center       | 元素在主轴方向中心对齐,第一个元素与行首的距离与最后一个元素与行尾距离相同。   |
-  | End          | 元素在主轴方向尾部对齐,&nbsp;&nbsp;最后一个元素与行尾对齐,其他元素与后一个对齐。 |
-  | SpaceBetween | Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。&nbsp;第一个元素与行首对齐,最后一个元素与行尾对齐。 |
-  | SpaceAround  | Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。&nbsp;第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。 |
-  | SpaceEvenly  | Flex主轴方向元素等间距布局,&nbsp;相邻元素之间的间距、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。 |
+  | 名称         | 描述                                                         |
+  | ------------ | ------------------------------------------------------------ |
+  | Start        | 元素在主轴方向首端对齐,第一个元素与行首对齐,同时后续的元素与前一个对齐。 |
+  | Center       | 元素在主轴方向中心对齐,第一个元素与行首的距离与最后一个元素与行尾距离相同。 |
+  | End          | 元素在主轴方向尾部对齐,最后一个元素与行尾对齐,其他元素与后一个对齐。 |
+  | SpaceBetween | Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。 |
+  | SpaceAround  | Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。 |
+  | SpaceEvenly  | Flex主轴方向元素等间距布局,相邻元素之间的间距、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。 |
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-panel.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-panel.md
index 36959733612a951be41c2149c7ceca7e4c9a4a8e..8bb8b3941407b4d87c412161d1b0453a75865348 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-panel.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-panel.md
@@ -4,7 +4,7 @@
 > 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
-可滑动面板。提供一种轻量的内容展示的窗口,可方便的在不同尺寸中切换,属于弹出式组件。
+可滑动面板,提供一种轻量的内容展示窗口,方便在不同尺寸中切换。
 
 
 ## 权限列表
@@ -37,6 +37,7 @@ Panel(value:{show:boolean})
 | fullHeight | Length | - | 指定PanelMode.Full状态下的高度。 |
 | halfHeight | Length | - | 指定PanelMode.Half状态下的高度,默认为屏幕尺寸的一半。 |
 | miniHeight | Length | - | 指定PanelMode.Mini状态下的高度。 |
+| backgroundMask<sup>9+</sup>|(color: ResourceColor)| - |指定Panel的背景蒙层。|
 
 - PanelType枚举说明
   | 名称 | 描述 | 
@@ -58,7 +59,7 @@ Panel(value:{show:boolean})
 | 名称 | 功能描述 | 
 | -------- | -------- |
 | onChange(callback:&nbsp;(width:&nbsp;number,&nbsp;height:&nbsp;number,&nbsp;mode:&nbsp;PanelMode)&nbsp;=&gt;&nbsp;void) | 当可滑动面板发生状态变化时触发,&nbsp;返回的height值为内容区高度值,当dragbar属性为true时,panel本身的高度值为dragbar高度加上内容区高度。 | 
-
+| onHeightChange(callback: (value: number) => void)<sup>9+</sup> |当可滑动面板发生高度变化时触发,返回的height值为内容区高度值,当dragbar属性为true时,panel本身的高度值为dragbar高度加上内容区高度。因用户体验设计原因,panel最高只能滑到 fullHeight-8vp |
 
 ## 示例
 
@@ -70,7 +71,7 @@ struct PanelExample {
   @State show: boolean = false
 
   build() {
-    Column() {
+    Stack() {
       Text('2021-09-30    Today Calendar: 1.afternoon......Click for details')
         .width('90%').height(50).borderRadius(10)
         .backgroundColor(0xFFFFFF).padding({ left: 20 })
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md
index df2ace39644d48184188f66496ca8e03e40b48ed..4fa205a6d17c448a23c7036382a17dba00f84a21 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md
@@ -21,7 +21,7 @@ Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number | stri
 
   | 参数 | 参数名 | 必填 | 默认值 | 参数描述 |
   | -------- | -------- | -------- | -------- | -------- |
-  | refreshing | boolean | 是 | - | 当前组件是否正在刷新。 |
+  | refreshing | boolean | 是 | - | 当前组件是否正在刷新。<br/>该参数支持[$$](../../ui/ts-syntactic-sugar.md)双向绑定变量。 |
   | offset | Length | 否 | 16 | 刷新组件静止时距离父组件顶部的距离。|
   | friction | number&nbsp;\|&nbsp;string | 否 | 62 | 下拉摩擦系数,取值范围为0到100。<br/>-&nbsp;0表示下拉刷新容器不跟随手势下拉而下拉。<br/>-&nbsp;100表示下拉刷新容器紧紧跟随手势下拉而下拉。<br/>-&nbsp;数值越大,下拉刷新容器跟随手势下拉的反应越灵敏。 |
 
@@ -58,7 +58,7 @@ struct RefreshExample {
 
   build() {
     Column() {
-      Refresh({refreshing: this.isRefreshing, offset: 120, friction: 100}) {
+      Refresh({refreshing: $$this.isRefreshing, offset: 120, friction: 100}) {
         Text('Pull Down and refresh: ' + this.counter)
           .fontSize(30)
           .margin(10)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
index 7adf41f484b9c26ce78810d87ecd8bf6a6e401a1..08577a7f5c796380fb31d6bd004bd768579caa81 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
@@ -1,7 +1,8 @@
 # Scroll
 
 >  **说明:**
-> 该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> - 该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> - 该组件嵌套List子组件滚动时,若List不设置宽高,则默认全部加载,在对性能有要求的场景下建议指定List的宽高。
 
 
 可滚动的容器组件,当子组件的布局尺寸超过父组件的视口时,内容可以滚动。
@@ -172,14 +173,20 @@ struct ScrollExample {
         Column() {
           ForEach(this.arr, (item) => {
             Text(item.toString())
-              .width('90%').height(150).backgroundColor(0xFFFFFF)
-              .borderRadius(15).fontSize(16).textAlign(TextAlign.Center)
+              .width('90%')
+              .height(150)
+              .backgroundColor(0xFFFFFF)
+              .borderRadius(15)
+              .fontSize(16)
+              .textAlign(TextAlign.Center)
               .margin({ top: 10 })
           }, item => item)
         }.width('100%')
       }
-      .scrollable(ScrollDirection.Vertical).scrollBar(BarState.On)
-      .scrollBarColor(Color.Gray).scrollBarWidth(30)
+      .scrollable(ScrollDirection.Vertical)
+      .scrollBar(BarState.On)
+      .scrollBarColor(Color.Gray)
+      .scrollBarWidth(30)
       .onScroll((xOffset: number, yOffset: number) => {
         console.info(xOffset + ' ' + yOffset)
       })
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-sidebarcontainer.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-sidebarcontainer.md
index 6217c50da6b0fd7d2eec01b7d3b98a59b372ebf9..7bcd121930a08b8e892d31cda640625c455117c4 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-sidebarcontainer.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-sidebarcontainer.md
@@ -43,6 +43,7 @@ SideBarContainer( type?: SideBarContainerType )
 | minSideBarWidth | number \| [Length<sup>9+</sup>](../../ui/ts-types.md#长度类型) | 200 | 设置侧边栏最小宽度。 |
 | maxSideBarWidth | number \| [Length<sup>9+</sup>](../../ui/ts-types.md#长度类型) | 280 | 设置侧边栏最大宽度。 |
 | autoHide<sup>9+</sup> | boolean | true | 设置当侧边栏拖拽到小于最小宽度后,是否自动隐藏。 |
+| sideBarPosition<sup>9+</sup> | SideBarPosition | SideBarPosition.Start | 设置侧边栏显示位置。 |
 
 - ButtonStyle对象说明
   | 名称 | 参数类型 | 必填 | 默认值 | 描述 |
@@ -53,6 +54,11 @@ SideBarContainer( type?: SideBarContainerType )
   | height | number | 否 | 32 | 设置侧边栏控制按钮的高度。 |
   | icons | {<br/>shown:&nbsp;string \| PixelMap \| [Resource](../../ui/ts-types.md) ,<br/>hidden:&nbsp;string \| PixelMap \| [Resource](../../ui/ts-types.md) ,<br/>switching?:&nbsp;string \| PixelMap \| [Resource](../../ui/ts-types.md) <br/>} | 否 | - | 设置侧边栏控制按钮的图标:<br/> </p> - shown: 设置侧边栏显示时控制按钮的图标。<br>- hidden: 设置侧边栏隐藏时控制按钮的图标。<br>- switching:设置侧边栏显示和隐藏状态切换时控制按钮的图标。 | 
 
+- SideBarPosition<sup>9+</sup>枚举说明
+  | 名称 | 描述 |
+  | -------- | -------- |
+  | Start | 侧边栏位于容器左侧。 |
+  | End | 侧边栏位于容器右侧。 | 
 
 
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md
index 7c612c94cb36f2894a1482b48013b6e5cc3c69b2..65ecaca1ec862b6c3e1adcaa6dec536c82f68960 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md
@@ -35,7 +35,7 @@ Swiper(value:{controller?: SwiperController})
 | autoPlay                    | boolean                                  | false      | 子组件是否自动播放,自动播放状态下,导航点不可操作。               |
 | interval                    | number                                   | 3000       | 使用自动播放时播放的时间间隔,单位为毫秒。                    |
 | indicator                   | boolean                                  | true       | 是否启用导航点指示器。                              |
-| loop                        | boolean                                  | true       | 是否开启循环。                                  |
+| loop                        | boolean                                  | true       | 是否开启循环。<br>设置为true时表示开启循环,在LazyForEach懒循环加载模式下,加载的组件数量建议大于5个。 |
 | duration                    | number                                   | 400        | 子组件切换的动画时长,单位为毫秒。                        |
 | vertical                    | boolean                                  | false      | 是否为纵向滑动。                                 |
 | itemSpace                   | Length                                   | 0          | 设置子组件与子组件之间间隙。                           |
@@ -45,7 +45,7 @@ Swiper(value:{controller?: SwiperController})
 | indicatorStyle<sup>8+</sup> | {<br/>left?:&nbsp;Length,<br/>top?:&nbsp;Length,<br/>right?:&nbsp;Length,<br/>bottom?:&nbsp;Length,<br/>size?:&nbsp;Length,<br/>color?:&nbsp;Color,<br/>selectedColor?:&nbsp;Color<br/>} | -          | 设置indicator样式:<br/>-&nbsp;left:&nbsp;设置导航点距离Swiper组件左边的距离。<br/>-&nbsp;top:&nbsp;设置导航点距离Swiper组件顶部的距离。<br/>-&nbsp;right:&nbsp;设置导航点距离Swiper组件右边的距离。<br/>-&nbsp;bottom:&nbsp;设置导航点距离Swiper组件底部的距离。<br/>-&nbsp;size:&nbsp;设置导航点的直径。<br/>-&nbsp;color:&nbsp;设置导航点的颜色。<br/>-&nbsp;selectedColor:&nbsp;设置选中的导航点的颜色。 |
 
 
-### SwiperController
+## SwiperController
 
 Swiper容器组件的控制器,可以将此对象绑定至Swiper组件,然后通过它控制翻页。
 
@@ -96,7 +96,7 @@ struct SwiperExample {
   private swiperController: SwiperController = new SwiperController()
   private data: MyDataSource = new MyDataSource([])
 
-  private aboutToAppear(): void {
+  aboutToAppear(): void {
     let list = []
     for (var i = 1; i <= 10; i++) {
       list.push(i.toString());
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-tabs.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-tabs.md
index 810c345c4c352220c258f5fd3d5990e0a1f6b3d4..ea24e62cf3c731f2c63e493f23c741469d136c2c 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-tabs.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-tabs.md
@@ -29,10 +29,10 @@ Tabs(value: {barPosition?: BarPosition, index?: number, controller?: [TabsContro
   | controller | [TabsController](#tabscontroller) | 否 | - | 设置Tabs控制器。 |
 
 - BarPosition枚举说明
-  | 名称 | 描述 | 
+  | 名称 | 描述 |
   | -------- | -------- |
-  | Start | vertical属性方法设置为true时,页签位于容器左侧;vertical属性方法设置为false时,页签位于容器顶部。 | 
-  | End | vertical属性方法设置为true时,页签位于容器右侧;vertical属性方法设置为false时,页签位于容器底部。 | 
+  | Start | vertical属性方法设置为true时,页签位于容器左侧;vertical属性方法设置为false时,页签位于容器顶部。 |
+  | End | vertical属性方法设置为true时,页签位于容器右侧;vertical属性方法设置为false时,页签位于容器底部。 |
 
 
 ## 属性
@@ -41,25 +41,25 @@ Tabs(value: {barPosition?: BarPosition, index?: number, controller?: [TabsContro
 
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| vertical | boolean | 是否为纵向Tab,默认为false。 | 是否为纵向Tab,默认为false。 |
-| scrollable | boolean | 是否可以通过左右滑动进行页面切换,默认为true。 | 是否可以通过左右滑动进行页面切换,默认为true。 |
-| barMode | BarMode  | TabBar布局模式。 | TabBar布局模式。 |
-| barWidth | number | TabBar的宽度值,不设置时使用系统主题中的默认值。 | TabBar的宽度值,不设置时使用系统主题中的默认值。 |
-| barHeight | number | TabBar的高度值,不设置时使用系统主题中的默认值。 | TabBar的高度值,不设置时使用系统主题中的默认值。 |
+| vertical | boolean | false | 是否为纵向Tab,默认为false。 |
+| scrollable | boolean | true | 是否可以通过左右滑动进行页面切换,默认为true。 |
+| barMode | BarMode  | BarMode.Fixed | TabBar布局模式。 |
+| barWidth | number | - | TabBar的宽度值,不设置时使用系统主题中的默认值。 |
+| barHeight | number | -             | TabBar的高度值,不设置时使用系统主题中的默认值。 |
 | animationDuration | number | 200 | TabContent滑动动画时长。 |
 
 - BarMode枚举说明
-  | 名称 | 描述 | 
+  | 名称 | 描述 |
   | -------- | -------- |
-  | Scrollable | TabBar使用实际布局宽度,&nbsp;超过总长度后可滑动。 | 
-  | Fixed | 所有TabBar平均分配宽度。 | 
+  | Scrollable | TabBar使用实际布局宽度,&nbsp;超过总长度后可滑动。 |
+  | Fixed | 所有TabBar平均分配宽度。 |
 
 
 ## 事件
 
-| 名称 | 功能描述 | 
+| 名称 | 功能描述 |
 | -------- | -------- |
-| onChange(callback:&nbsp;(index:&nbsp;number)&nbsp;=&gt;&nbsp;void) | Tab页签切换后触发的事件。 | 
+| onChange(callback:&nbsp;(index:&nbsp;number)&nbsp;=&gt;&nbsp;void) | Tab页签切换后触发的事件。 |
 
 ## TabsController
 
@@ -79,7 +79,7 @@ changeIndex(value: number): void
 控制Tabs切换到指定页签。
 
 - 参数
-  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | 
+  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
   | -------- | -------- | -------- | -------- | -------- |
   | value | number | 是 | - | 页签在Tabs里的索引值,索引值从0开始。 |
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-methods-menu.md b/zh-cn/application-dev/reference/arkui-ts/ts-methods-menu.md
index 20e5fafc7e541a777b61d16ae3199c2fcae4d1fa..e5fa15b4f5f00a4e48c29d4fda75d75293b97b5d 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-methods-menu.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-methods-menu.md
@@ -12,30 +12,30 @@
 
 - 示例
 ```
-// xxx.ets
 @Entry
-  @Component
-  struct Index {
-    @Builder MenuBuilder(){
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
-        Text('close')
-          .fontSize(30)
-          .fontWeight(FontWeight.Bold)
-          .onClick(() => {
-            ContextMenu.close();
-          })
-      }.height(400)
-      .backgroundColor(Color.Pink)
-  
-    }
-    build() {
-      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) {
-        Column(){
-          Text("Text")
-        }.bindContextMenu(this.MenuBuilder, ResponseType.LongPress)
-      }
-      .width('100%')
-      .height('100%')
+@Component
+struct Index {
+  @Builder MenuBuilder() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+      Text('close')
+        .fontSize(30)
+        .fontWeight(FontWeight.Bold)
+        .onClick(() => {
+          ContextMenu.close();
+        })
+    }.height(400)
+    .backgroundColor(Color.Pink)
+
+  }
+
+  build() {
+    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) {
+      Column() {
+        Text("Text")
+      }.bindContextMenu(this.MenuBuilder, ResponseType.LongPress)
     }
+    .width('100%')
+    .height('100%')
   }
+}
 ```
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
index 636b48a740299ad172913c7f111ab131e6ddb4e4..67c71bd0f8629e485eca456e700dddd7047c2ab2 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
@@ -266,7 +266,7 @@ struct MiterLimit {
 // xxx.ets
 @Entry
 @Component
-struct Font {
+struct Fonts {
   private settings: RenderingContextSettings = new RenderingContextSettings(true)
   private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
   private offContext: OffscreenCanvasRenderingContext2D = new OffscreenCanvasRenderingContext2D(600, 600, this.settings)
@@ -1920,12 +1920,12 @@ getPixelMap(sx: number, sy: number, sw: number, sh: number): PixelMap
 
 以当前canvas指定区域内的像素创建[PixelMap](../apis/js-apis-image.md#pixelmap7)对象。
 - 参数
-  | 参数 | 类型 | 必填 | 默认值 | 描述 | 
+  | 参数 | 类型 | 必填 | 默认值 | 描述 |
   | -------- | -------- | -------- | -------- | -------- |
-  | sx | number | 是 | 0 | 需要输出的区域的左上角x坐标。 | 
-  | sy | number | 是 | 0 | 需要输出的区域的左上角y坐标。 | 
-  | sw | number | 是 | 0 | 需要输出的区域的宽度。 | 
-  | sh | number | 是 | 0 | 需要输出的区域的高度。 | 
+  | sx | number | 是 | 0 | 需要输出的区域的左上角x坐标。 |
+  | sy | number | 是 | 0 | 需要输出的区域的左上角y坐标。 |
+  | sw | number | 是 | 0 | 需要输出的区域的宽度。 |
+  | sh | number | 是 | 0 | 需要输出的区域的高度。 |
 
 ### getImageData
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md b/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md
index 5ff8def81916cc2620824bca29910b1b74457e74..357c5614ab7bab703cea7ec9d7b2fbd78fb5e61c 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md
@@ -68,8 +68,8 @@ PageTransitionEnter和PageTransitionExit组件支持的事件:
 @Entry
 @Component
 struct PageTransitionExample1 {
-  @State scale: number = 1
-  @State opacity: number = 1
+  @State scale1: number = 1
+  @State opacity1: number = 1
   @State active: boolean = false
   build() {
   Column() {
@@ -79,19 +79,19 @@ struct PageTransitionExample1 {
       .onClick(() => {
         this.active = true
       })
-    }.scale({ x: this.scale }).opacity(this.opacity)
+    }.scale({ x: this.scale1 }).opacity(this.opacity1)
   }
 // 自定义方式1:完全自定义转场过程的效果
   pageTransition() {
     PageTransitionEnter({ duration: 1200, curve: Curve.Linear })
       .onEnter((type: RouteType, progress: number) => {
-        this.scale = 1
-        this.opacity = progress
+        this.scale1 = 1
+        this.opacity1 = progress
       }) // 进场过程中会逐帧触发onEnter回调,入参为动效的归一化进度(0% -- 100%)
     PageTransitionExit({ duration: 1500, curve: Curve.Ease })
       .onExit((type: RouteType, progress: number) => {
-        this.scale = 1 - progress
-        this.opacity = 1
+        this.scale1 = 1 - progress
+        this.opacity1 = 1
       }) // 退场过程中会逐帧触发onExit回调,入参为动效的归一化进度(0% -- 100%)
   }
 }
@@ -102,27 +102,27 @@ struct PageTransitionExample1 {
 @Entry
 @Component
 struct AExample {
-  @State scale: number = 1
-  @State opacity: number = 1
+  @State scale2: number = 1
+  @State opacity2: number = 1
   @State active: boolean = false
   build() {
     Column() {
       Navigator({ target: 'pages/index' ,type: NavigationType.Push}) {
         Image($r('app.media.bg2')).width("100%").height("100%")
       }
-    }.height("100%").width("100%").scale({ x: this.scale }).opacity(this.opacity)
+    }.height("100%").width("100%").scale({ x: this.scale2 }).opacity(this.opacity2)
   }
 // 自定义方式1:完全自定义转场过程的效果
   pageTransition() {
     PageTransitionEnter({ duration: 1200, curve: Curve.Linear })
       .onEnter((type: RouteType, progress: number) => {
-        this.scale = 1
-        this.opacity = progress
+        this.scale2 = 1
+        this.opacity2 = progress
       }) // 进场过程中会逐帧触发onEnter回调,入参为动效的归一化进度(0% -- 100%)
     PageTransitionExit({ duration: 1500, curve: Curve.Ease })
       .onExit((type: RouteType, progress: number) => {
-        this.scale = 1 - progress
-        this.opacity = 1
+        this.scale2 = 1 - progress
+        this.opacity2 = 1
       }) // 退场过程中会逐帧触发onExit回调,入参为动效的归一化进度(0% -- 100%)
   }
 }
@@ -137,8 +137,8 @@ struct AExample {
 @Entry
 @Component
 struct PageTransitionExample {
-  @State scale: number = 1
-  @State opacity: number = 1
+  @State scale1: number = 1
+  @State opacity1: number = 1
   @State active: boolean = false
 
   build() {
@@ -149,7 +149,7 @@ struct PageTransitionExample {
       .onClick(() => {
         this.active = true
       })
-    }.scale({ x: this.scale }).opacity(this.opacity)
+    }.scale({ x: this.scale1 }).opacity(this.opacity1)
   }
 
 // 自定义方式2:使用系统提供的多种默认效果(平移、缩放、透明度等)
@@ -168,8 +168,8 @@ struct PageTransitionExample {
 @Entry
 @Component
 struct PageTransitionExample1 {
-  @State scale: number = 1
-  @State opacity: number = 1
+  @State scale2: number = 1
+  @State opacity2: number = 1
   @State active: boolean = false
 
   build() {
@@ -180,7 +180,7 @@ struct PageTransitionExample1 {
       .onClick(() => {
         this.active = true
       })
-    }.scale({ x: this.scale }).opacity(this.opacity)
+    }.scale({ x: this.scale2 }).opacity(this.opacity2)
   }
 
 // 自定义方式2:使用系统提供的多种默认效果(平移、缩放、透明度等)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
index 123824d1a5deba3e49c73e5986e905dde35956db..15d710e5e01f8accbfe481cc31930f7df3128f48 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md
@@ -17,8 +17,8 @@
 
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| backgroundColor | Color | - | 设置组件的背景色。 |
-| backgroundImage | src:&nbsp;string,<br/>repeat?:&nbsp;[ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。<br/>repeat参数:设置背景图片的重复样式,默认不重复。 |
+| backgroundColor | [ResourceColor](../../ui/ts-types.md) | - | 设置组件的背景色。 |
+| backgroundImage | src:&nbsp;[ResourceStr](../../ui/ts-types.md),<br/>repeat?:&nbsp;[ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。<br/>repeat参数:设置背景图片的重复样式,默认不重复。 |
 | backgroundImageSize | {<br/>width?:&nbsp;Length,<br/>height?:&nbsp;Length<br/>}&nbsp;\|&nbsp;ImageSize | Auto | 设置背景图像的高度和宽度。当输入为{width:&nbsp;Length,&nbsp;height:&nbsp;Length}对象时,如果只设置一个属性,则第二个属性保持图片原始宽高比进行调整。默认保持原图的比例不变。 |
 | backgroundImagePosition | {<br/>x?:&nbsp;Length,<br/>y?:&nbsp;Length<br/>}&nbsp;\|&nbsp;[Alignment](ts-appendix-enums.md#alignment枚举说明) | {<br/>x:&nbsp;0,<br/>y:&nbsp;0<br/>} | 设置背景图在组件中显示位置。 |
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md
index 0bedbd2b915ad4facda451efeb8c1d0bfbb63ece..ca42d63a08616226c97fba1f376c95eea8d3ec73 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md
@@ -43,13 +43,10 @@
 @Entry
 @Component
 struct Index {
-  @State message: string = 'This is\nborderImage.'
-  @State message2: string = 'This is\ngradient color.'
-
   build() {
     Row() {
       Column() {
-        Text(this.message).textAlign(TextAlign.Center)
+        Text('This is\nborderImage.').textAlign(TextAlign.Center)
           .borderImage({
             source: "borderOrigin.png",
             slice: {top:"31%", bottom:"31%", left:"31%", right:"31%"},
@@ -58,8 +55,26 @@ struct Index {
             repeat: RepeatMode.Repeat,
             fill: false
           });
-        Text(this.message2).textAlign(TextAlign.Center)
-          .margin(10)
+      }
+      .width('100%')
+    }
+    .height('100%')
+  }
+}
+```
+
+![zh-cn_image_borderImage](figures/borderImage.png)
+
+
+```ts
+// xxx.ets
+@Entry
+@Component
+struct Index {
+  build() {
+    Row() {
+      Column() {
+        Text('This is\ngradient color.').textAlign(TextAlign.Center)
           .borderImage({
             source: {angle:90,
               direction: GradientDirection.Left,
@@ -77,4 +92,4 @@ struct Index {
 }
 ```
 
-![zh-cn_image_borderImage](figures/borderImage.png)
+![zh-cn_image_borderImageGradient](figures/borderImageGradient.png)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
index f7fc976acce8ab56f4db900b814d1287ca3b5c36..4232e4edc4edef65815bfc289f63d6f81ff98b0d 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md
@@ -2,9 +2,9 @@
 
 >  **说明:**
 >
-> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>  从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 >
-> 从API Version 9开始,父节点的border显示在子节点内容之上。
+>  从API Version 9开始,父节点的border显示在子节点内容之上。
 
 
 设置组件边框样式。
@@ -18,43 +18,75 @@
 ## 属性
 
 
-| 名称 | 参数类型 | 默认值 | 描述 |
-| -------- | -------- | -------- | -------- |
-| border | BorderOptions | - | 统一边框样式设置接口。 |
-| borderStyle | BorderStyle | &nbsp;BorderStyle.Solid | 设置元素的边框样式。 |
-| borderWidth | Length | 0 | 设置元素的边框宽度。 |
-| borderColor | Color | - | 设置元素的边框颜色。 |
-| borderRadius | Length | 0 | 设置元素的边框圆角半径。 |
+| 名称         | 参数类型      | 默认值                  | 描述                     |
+| ------------ | ------------- | ----------------------- | ------------------------ |
+| border       | BorderOptions | -                       | 统一边框样式设置接口。   |
+| borderStyle  | BorderStyle   | &nbsp;BorderStyle.Solid | 设置元素的边框样式。     |
+| borderWidth  | Length        | 0                       | 设置元素的边框宽度。     |
+| borderColor  | [ResourceColor](../../ui/ts-types.md)         | -                       | 设置元素的边框颜色。     |
+| borderRadius | Length \| BorderRadiuses<sup>9+</sup>        | 0                       | 设置元素的边框圆角半径。 |
 
 - BorderOptions属性说明
-  | 参数名称 | 参数类型 | 默认值 | 必填 | 参数描述 |
-  | -------- | -------- | -------- | -------- | -------- |
-  | width | [Length](../../ui/ts-types.md#长度类型) | 0 | 否 | 边框宽度。 |
-  | color | [ResourceColor](../../ui/ts-types.md) | 'Black' | 否 | 边框颜色。 |
-  | radius | [Length](../../ui/ts-types.md#长度类型)\| EdgeRadiuses<sup>9+</sup> | 0 | 否 | 边框角度。 |
-  | style | BorderStyle | BorderStyle.Solid | 否 | 边框样式。 |
 
+  | 参数名称 | 参数类型                                                     | 默认值            | 必填 | 参数描述   |
+  | -------- | ------------------------------------------------------------ | ----------------- | ---- | ---------- |
+  | width    | [Length](../../ui/ts-types.md#长度类型) \| EdgeWidth<sup>9+</sup> | 0                 | 否   | 边框宽度。 |
+  | color    | [ResourceColor](../../ui/ts-types.md) \| EdgeColor<sup>9+</sup> | 'Black'           | 否   | 边框颜色。 |
+  | radius   | [Length](../../ui/ts-types.md#长度类型) \| BorderRadiuses<sup>9+</sup> | 0                 | 否   | 边框角度。 |
+  | style    | BorderStyle \| EdgeStyle<sup>9+</sup>                          | BorderStyle.Solid | 否   | 边框样式。 |
+
+
+- EdgeWidth<sup>9+</sup>对象说明
+
+  引入该对象时,至少传入一个参数。
+
+  | 名称   | 参数类型 | 必填 | 默认值 | 描述           |
+  | ------ | -------- | ---- | ------ | -------------- |
+  | left   | length   | 否   | 0      | 左侧边框宽度。 |
+  | right  | length   | 否   | 0      | 右侧边框宽度。 |
+  | top    | length   | 否   | 0      | 上侧边框宽度。 |
+  | bottom | length   | 否   | 0      | 下侧边框宽度。 |
+
+- EdgeColor<sup>9+</sup>对象说明
+
+  引入该对象时,至少传入一个参数。
+
+  | 名称   | 参数类型                              | 必填 | 默认值  | 描述           |
+  | ------ | ------------------------------------- | ---- | ------- | -------------- |
+  | left   | [ResourceColor](../../ui/ts-types.md) | 否   | 'Black' | 左侧边框颜色。 |
+  | right  | [ResourceColor](../../ui/ts-types.md) | 否   | 'Black' | 右侧边框颜色。 |
+  | top    | [ResourceColor](../../ui/ts-types.md) | 否   | 'Black' | 上侧边框颜色。 |
+  | bottom | [ResourceColor](../../ui/ts-types.md) | 否   | 'Black' | 下侧边框颜色。 |
+
+- BorderRadiuses<sup>9+</sup>对象说明
 
-- EdgeRadiuses<sup>9+</sup>对象说明
-  
   引用该对象时,至少传入一个参数。
-  
+
   | 名称        | 参数类型 | 必填 | 默认值 | 描述             |
   | ----------- | -------- | ---- | ------ | ---------------- |
   | topLeft     | length   | 否   | 0      | 左上角圆角半径。 |
   | topRight    | length   | 否   | 0      | 右上角圆角半径。 |
   | bottomLeft  | length   | 否   | 0      | 左下角圆角半径。 |
   | bottomRight | length   | 否   | 0      | 右下角圆角半径。 |
-  
-  
-  
+
+- EdgeStyle<sup>9+</sup>对象说明
+
+  引入该对象时,至少传入一个参数。
+
+  | 名称   | 参数类型    | 必填 | 默认值            | 描述           |
+  | ------ | ----------- | ---- | ----------------- | -------------- |
+  | left   | BorderStyle | 否   | BorderStyle.Solid | 左侧边框样式。 |
+  | right  | BorderStyle | 否   | BorderStyle.Solid | 右侧边框样式。 |
+  | top    | BorderStyle | 否   | BorderStyle.Solid | 上侧边框样式。 |
+  | bottom | BorderStyle | 否   | BorderStyle.Solid | 下侧边框样式。 |
+
 - BorderStyle枚举说明
-  
-  | 名称 | 描述 |
-  | -------- | -------- |
+
+  | 名称   | 描述                                            |
+  | ------ | ----------------------------------------------- |
   | Dotted | 显示为一系列圆点,圆点半径为borderWidth的一半。 |
-  | Dashed | 显示为一系列短的方形虚线。 |
-  | Solid | 显示为一条实线。 |
+  | Dashed | 显示为一系列短的方形虚线。                      |
+  | Solid  | 显示为一条实线。                                |
 
 
 ## 示例
@@ -65,22 +97,35 @@
 @Component
 struct BorderExample {
   build() {
-    Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) {
-      // 线段
-      Text('dashed')
+    Column() {
+      Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) {
+        // 线段
+        Text('dashed')
         .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE).borderRadius(10)
-        .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
-      Text('dashed')
-        .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE)
-        .borderRadius({ topLeft: 10, topRight: 20, bottomLeft: 30, bottomRight: 60 })
-        .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
-      // 点线
-      Text('dotted')
-        .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted })
-        .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
-    }.width('100%').height(150)
+          .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
+        // 点线
+        Text('dotted')
+          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted })
+          .width(120).height(120).textAlign(TextAlign.Center).fontSize(16)
+      }.width('100%').height(150)
+      Text('.border')
+        .fontSize(50)
+        .width(300)
+        .height(300)
+        .border({
+          width: { left: '5lpx', right: '10lpx', top: '20lpx', bottom: '30lpx' },
+          color: { left: '#e3bbbb', right: Color.Blue, top: Color.Red, bottom: Color.Green },
+          radius: { topLeft: 10, topRight: 20, bottomLeft: 40, bottomRight: 80 },
+          style: {
+              left: BorderStyle.Dotted,
+              right: BorderStyle.Dotted,
+              top: BorderStyle.Solid,
+              bottom: BorderStyle.Dashed
+          }
+      }).textAlign(TextAlign.Center)
+    }
   }
 }
 ```
 
-![zh-cn_image_0000001219982705](figures/zh-cn_image_0000001219982705.gif)
+![zh-cn_image_0000001219982705](figures/zh-cn_image_0000001219982705.gif)
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
index b372ccc183263a9321011a8c6df308cd36fa6a6a..5c09e5661536f243fe005474aab5befe31ed72a8 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md
@@ -21,7 +21,7 @@ id为组件的唯一标识,在整个应用内唯一。本模块提供组件标
 ## 接口
 
 
-### getInspectorByKey
+### getInspectorByKey<sup>9+</sup>
 
 getInspectorByKey(id: string): string
 
@@ -37,7 +37,7 @@ getInspectorByKey(id: string): string
   | -------- | -------- |
   | string | 组件属性列表的JSON字符串。 |
 
-### getInspectorTree
+### getInspectorTree<sup>9+</sup>
 
 getInspectorTree(): string
 
@@ -49,7 +49,7 @@ getInspectorTree(): string
   | ------ | ---------------------------------- |
   | string | 组件树及组件属性列表的JSON字符串。 |
 
-### sendEventByKey
+### sendEventByKey<sup>9+</sup>
 
 sendEventByKey(id: string, action: number, params: string): boolean
 
@@ -67,7 +67,7 @@ sendEventByKey(id: string, action: number, params: string): boolean
   | -------- | -------- |
   | boolean | 找不到指定id的组件时返回false,其余情况返回true。 |
 
-### sendTouchEvent
+### sendTouchEvent<sup>9+</sup>
 
 sendTouchEvent(event: TouchObject): boolean
 
@@ -85,7 +85,7 @@ sendTouchEvent(event: TouchObject): boolean
   | ------- | ------------------------------------------- |
   | boolean | 事件发送失败时返回false,其余情况返回true。 |
 
-### sendKeyEvent
+### sendKeyEvent<sup>9+</sup>
 
 sendKeyEvent(event: KeyEvent): boolean
 
@@ -103,7 +103,7 @@ sendKeyEvent(event: KeyEvent): boolean
   | ------- | --------------------------------------------- |
   | boolean | 事件发送失败时时返回false,其余情况返回true。 |
 
-### sendMouseEvent
+### sendMouseEvent<sup>9+</sup>
 
 sendMouseEvent(event: MouseEvent): boolean
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-focus.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-focus.md
index 936e442bc01103c1ffbaed62253cec38ccdd4508..4f51c85fb0db13fa699d016583bcea7ddb5304c8 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-focus.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-focus.md
@@ -3,7 +3,7 @@
 自定义组件的走焦效果,可设置组件是否走焦和具体的走焦顺序,tab键或者方向键切换焦点。
 
 >  **说明:**
-> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>  从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
 ## 权限列表
@@ -13,13 +13,13 @@
 
 ## 属性
 
-| **名称** | **参数类型** | **默认值** | **描述** |
-| -------- | -------- | -------- | -------- |
-| focusable | boolean | false | 设置当前组件是否可以获焦。 |
-| tabIndex<sup>9+<sup> | number | 0 | 自定义组件tab键走焦能力,走焦顺序为:tabIndex大于0的组件依次递增走焦, tabIndex等于0的组件按组件树先后顺序走焦。<br />- tabIndex >= 0:表示元素是可聚焦的,并且可以通过tab键走焦来访问到该元素,按照tabIndex的数值递增而先后获焦。如果多个元素拥有相同的tabIndex,按照元素在当前组件树中的先后顺序获焦<br />- tabIndex < 0(通常是tabIndex = -1):表示元素是可聚焦的,但是不能通过tab键走焦来访问到该元素 |
+| **名称**               | **参数类型** | **默认值** | **描述**                                   |
+| -------------------- | -------- | ------- | ---------------------------------------- |
+| focusable            | boolean  | false   | 设置当前组件是否可以获焦。                            |
+| tabIndex<sup>9+<sup> | number   | 0       | 自定义组件tab键走焦能力,走焦顺序为:tabIndex大于0的组件依次递增走焦, tabIndex等于0的组件按组件树先后顺序走焦。<br />- tabIndex >= 0:表示元素是可聚焦的,并且可以通过tab键走焦来访问到该元素,按照tabIndex的数值递增而先后获焦。如果多个元素拥有相同的tabIndex,按照元素在当前组件树中的先后顺序获焦<br />- tabIndex < 0(通常是tabIndex = -1):表示元素是可聚焦的,但是不能通过tab键走焦来访问到该元素 |
 
 >  **说明:**
-> 支持焦点控制的组件:Button、Text、Image、List、Grid。
+>  支持焦点控制的组件:Button、Text、Image、List、Grid。
 
 ## 示例
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
index c2ccb7bf9bf00de306bcffeac847361bc76f5885..67a5d725dd39f3f2ed671a5ffe96252c7a5c1449 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md
@@ -3,6 +3,7 @@
 设置组件的颜色渐变效果。
 
 >  **说明:**
+>
 > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
@@ -16,7 +17,7 @@
 
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| linearGradient | {<br/>angle?:&nbsp;[Angle](../../ui/ts-types.md),<br/>direction?:&nbsp;GradientDirection,<br/>colors:&nbsp;Array&lt;[ColorStop](../../ui/ts-types.md)&gt;<br/>repeating?:&nbsp;boolean<br/>} | - | 线性渐变。<br/>angle:&nbsp;线性渐变的角度。<br/>direction:&nbsp;线性渐变的方向。<br/>colors:&nbsp;为渐变的颜色描述。<br/>repeating:&nbsp;为渐变的颜色重复着色。 |
+| linearGradient | {<br/>angle?:&nbsp;[Angle](../../ui/ts-types.md),<br/>direction?:&nbsp;GradientDirection,<br/>colors:&nbsp;Array&lt;[ColorStop](../../ui/ts-types.md)&gt;<br/>repeating?:&nbsp;boolean<br/>} | - | 线性渐变。<br/>angle:&nbsp;线性渐变的角度。<br/>direction:&nbsp;线性渐变的方向,设置angle后不生效。<br/>colors:&nbsp;为渐变的颜色描述。<br/>repeating:&nbsp;为渐变的颜色重复着色。 |
 | sweepGradient | {<br/>center:&nbsp;Point,<br/>start?:&nbsp;angle,<br/>end?:&nbsp;angle,<br/>colors:&nbsp;Array&lt;[ColorStop](../../ui/ts-types.md)&gt;<br/>repeating?:&nbsp;boolean<br/>} | - | 角度渐变。<br/>center:为角度渐变的中心点。<br/>start:角度渐变的起点。<br/>end:角度渐变的终点。<br/>colors:&nbsp;为渐变的颜色描述。<br/>repeating:&nbsp;为渐变的颜色重复着色。 |
 | radialGradient | {<br/>center:&nbsp;Point,<br/>radius:&nbsp;Length,<br/>colors:&nbsp;Array&lt;[ColorStop](../../ui/ts-types.md)&gt;<br/>repeating:&nbsp;boolean<br/>} | - | 径向渐变。<br/>center:径向渐变的中心点。<br/>radius:径向渐变的半径。<br/>colors:&nbsp;为渐变的颜色描述。<br/>repeating:&nbsp;为渐变的颜色重复着色。 |
 
@@ -52,7 +53,6 @@ struct ColorGradientExample {
         .height(50)
         .linearGradient({
           angle: 90,
-          direction: GradientDirection.Left,
           colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]]
         })
       Text('sweepGradient').fontSize(12).width('90%').fontColor(0xCCCCCC)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md
index e7e0a8eaef78ba7020faefba9c16a8947bfd4dd1..9168b2896a1d0ca20e7389d4c477c4667ca315f1 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md
@@ -3,6 +3,7 @@
 例如背景模糊、内容模糊和灰度效果等。
 
 >  **说明:**
+>
 > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
@@ -18,13 +19,13 @@
 | -------- | -------- | -------- | -------- |
 | blur | number | - | 为当前组件添加内容模糊效果,入参为模糊半径,模糊半径越大越模糊,为0时不模糊。 |
 | backdropBlur | number | - | 为当前组件添加背景模糊效果,入参为模糊半径,模糊半径越大越模糊,为0时不模糊。 |
-| shadow | {<br/>radius:&nbsp;number,<br/>color?:&nbsp;Color,<br/>offsetX?:&nbsp;number,<br/>offsetY?:&nbsp;number<br/>} | - | 为当前组件添加阴影效果,入参为模糊半径(必填)、阴影的颜色(可选,默认为灰色)、X轴的偏移量(可选,默认为0),Y轴的偏移量(可选,默认为0),偏移量单位为px。 |
+| shadow | {<br/>radius:&nbsp;number,<br/>color?:&nbsp;Color&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md#resource类型),<br/>offsetX?:&nbsp;number,<br/>offsetY?:&nbsp;number<br/>} | - | 为当前组件添加阴影效果,入参为模糊半径(必填)、阴影的颜色(可选,默认为灰色)、X轴的偏移量(可选,默认为0),Y轴的偏移量(可选,默认为0),偏移量单位为px。 |
 | grayscale | number | 0.0 | 为当前组件添加灰度效果。值定义为灰度转换的比例,入参1.0则完全转为灰度图像,入参则0.0图像无变化,入参在0.0和1.0之间时,效果呈线性变化。(百分比) |
 | brightness | number | 1.0 | 为当前组件添加高光效果,入参为高光比例,值为1时没有效果,小于1时亮度变暗,0为全黑;大于1时亮度增加,数值越大亮度越大。 |
 | saturate | number | 1.0 | 为当前组件添加饱和度效果,饱和度为颜色中的含色成分和消色成分(灰)的比例,入参为1时,显示原图像,大于1时含色成分越大,饱和度越大;小于1时消色成分越大,饱和度越小。(百分比) |
 | contrast | number | 1.0 | 为当前组件添加对比度效果,入参为对比度的值,值为1时,显示原图;大于1时,值越大对比度越高,图像越清晰醒目;小于1时,值越小对比度越低;当对比度为0时,图像变为全灰。(百分比) |
 | invert | number | 0 | 反转输入的图像。入参为图像反转的比例。值为1时完全反转。值为0则图像无变化。(百分比) |
-| colorBlend&nbsp;<sup>8+</sup> | Color | - | 为当前组件添加颜色叠加效果,入参为叠加的颜色。 |
+| colorBlend&nbsp;<sup>8+</sup> | Color&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md#resource类型)| | - | 为当前组件添加颜色叠加效果,入参为叠加的颜色。 |
 | sepia | number | 0 | 将图像转换为深褐色。入参为图像反转的比例。值为1则完全是深褐色的,值为0图像无变化。&nbsp;(百分比) |
 | hueRotate | number \| string | '0deg' | 为当前组件添加色相旋转效果,入参为旋转的角度值,0deg时图像无变化。入参没有最大值,超过360deg时相当于又绕一圈,即,370deg和10deg的色相旋转效果相同。 |
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
index c674cb11ba10f0cee96871bdc533756c662d765b..aa285f3ccb765adc4c27712a8182b1838a6f2d8b 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md
@@ -17,7 +17,7 @@
 
 | 名称 | 参数类型 | 默认值 | 描述 | 
 | -------- | -------- | -------- | -------- |
-| opacity | number | 1 | 元素的不透明度,取值范围为0到1,1表示为不透明,0表示为完全透明。 | 
+| opacity | number&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md#resource类型) | 1 | 元素的不透明度,取值范围为0到1,1表示为不透明,0表示为完全透明。 | 
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md
index 2363e09c47a0faac853927abe2a58bbdf4f3930b..a0ae6d4562cbbe2a6bd508f8315d9ac0fd416338 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md
@@ -23,7 +23,9 @@
   | -------- | -------- | -------- | -------- | -------- |
   | normal | ()=&gt;void | 否 | - | 组件无状态时的样式。 | 
   | pressed | ()=&gt;void | 否 | - | 组件按下状态的样式。 | 
-  | disabled | ()=&gt;void | 否 | - | 组件禁用状态的样式。 | 
+  | disabled | ()=&gt;void | 否 | - | 组件禁用状态的样式。 |
+  | focused | ()=&gt;void | 否 | - | 组件聚焦状态的样式。 |
+  | clicked | ()=&gt;void | 否 | - | 组件点击状态的样式。 | 
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
index 77436ad352ee1e63bd608c25ad4a13e1a848b593..009ec4b28d422fa28fb6dd7673b3de5dffcf1830 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md
@@ -33,8 +33,8 @@
   | -------- | -------- | -------- | -------- | -------- |
   | builder | ()&nbsp;=&gt;&nbsp;any | 是 | - | 提示气泡内容的构造器。 |
   | placement | Placement | 否 | Placement.Bottom | 气泡组件优先显示的位置,当前位置显示不下时,会自动调整位置。 |
-  | maskColor | [Color](../../ui/ts-types.md#颜色类型) | 否 | - | 提示气泡遮障层的颜色。 |
-  | popupColor | [Color](../../ui/ts-types.md#颜色类型) | 否 | - | 提示气泡的颜色。 |
+  | maskColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡遮障层的颜色。 |
+  | popupColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡的颜色。 |
   | enableArrow | boolean | 否 | true | 是否显示箭头。<br/>从API Version 9开始,如果箭头所在方位侧的气泡长度不足以显示下箭头,则会默认不显示箭头。比如:placement设置为Left,但气泡高度小于箭头的宽度(32vp),则实际不会显示箭头。 |
   | autoCancel | boolean | 否 | true | 页面有操作时,是否自动关闭气泡 |
   | onStateChange | (isVisible:&nbsp;boolean)&nbsp;=&gt;&nbsp;void | 否 | - | 弹窗状态变化事件回调,参数为弹窗当前的显示状态。 |
@@ -70,7 +70,7 @@ struct PopupExample {
   @Builder popupBuilder() {
     Row({ space: 2 }) {
       Image('/resource/ic_public_thumbsup.svg').width(24).height(24).margin({ left: -5 })
-      Text('Custom Popup').fontSize(12)
+      Text('Custom Popup').fontSize(10)
     }.width(100).height(50).backgroundColor(Color.White)
   }
 
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md
index f78f9b14162965fef2311137216c1bbec7fe3db4..940dcc2f820dd3c9ad35e862dbe1a3004a289bf2 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md
@@ -1,6 +1,7 @@
 # 文本样式设置
 
 >  **说明:**
+>
 > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 
@@ -17,11 +18,11 @@
 
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| fontColor | Color | - | 设置文本颜色。 |
-| fontSize | Length | - | 设置文本尺寸,Length为number类型时,使用fp单位。 |
+| fontColor | [ResourceColor](../../ui/ts-types.md) | - | 设置文本颜色。 |
+| fontSize | Length&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md#resource类型) | - | 设置文本尺寸,Length为number类型时,使用fp单位。 |
 | fontStyle | FontStyle | FontStyle.Normal | 设置文本的字体样式。 |
-| fontWeight | number&nbsp;\|&nbsp;FontWeight | FontWeight.FontWeightNormal | 设置文本的字体粗细,number类型取值[100,&nbsp;900],取值间隔为100,默认为400,取值越大,字体越粗。<br/>提供常用枚举值,参考:FontWeight枚举说明。 |
-| fontFamily | string | - | 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial,&nbsp;sans-serif'。 |
+| fontWeight | number&nbsp;\|&nbsp;FontWeight&nbsp;\|&nbsp;string | FontWeight.FontWeightNormal | 设置文本的字体粗细,number类型取值[100,&nbsp;900],取值间隔为100,默认为400,取值越大,字体越粗。<br/>提供常用枚举值,参考:FontWeight枚举说明。 |
+| fontFamily | string&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md#resource类型) | - | 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial,&nbsp;sans-serif'。 |
 
 
 - FontStyle枚举说明
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md
index c6cdc3e4c94058689933bbeacbedc293ed35af57..5f476bd46fe9c34d2b7dea57f89372690b374938 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md
@@ -16,7 +16,7 @@
 
 | 名称 | 参数类型 | 默认值 | 描述 |
 | -------- | -------- | -------- | -------- |
-| visibility | Visibility | Visibility.Visible | 控制当前组件显示或隐藏。 |
+| visibility | Visibility | Visibility.Visible | 控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染](../../ui/ts-rending-control-syntax-if-else.md)代替。|
 
 
 - Visibility枚举说明
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md
index a9858490e745609b02b4f18e0ef25c53138af706..2bd3623df2a7b695f535b9acd91a252fb017f8b0 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md
@@ -39,7 +39,7 @@ struct ZIndexExample {
         Text('third child, zIndex(1)')
           .size({width: '70%', height: '50%'}).backgroundColor(0xc1cbac).align(Alignment.TopStart)
           .zIndex(1)
-      }
+      }.width('100%').height(200)
     }.width('100%').height(200)
   }
 }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-area-change-event.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-area-change-event.md
index 290515df466fb954f78ed884ebb4282d68283a09..4f9dfcd7904d09e167a33d281cf32fa1fec72f07 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-area-change-event.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-area-change-event.md
@@ -26,7 +26,7 @@
 @Component
 struct AreaExample {
   @State value: string = 'Text'
-  @State size: string = ''
+  @State size1: string = ''
 
   build() {
     Column() {
@@ -37,7 +37,7 @@ struct AreaExample {
         })
         .onAreaChange((oldValue: Area, newValue: Area) => {
           console.info(`Ace: on area change, oldValue is ${JSON.stringify(oldValue)} value is ${JSON.stringify(newValue)}`)
-          this.size = JSON.stringify(newValue)
+          this.size1 = JSON.stringify(newValue)
         })
       Text('new area is: \n' + this.size).margin({ right: 30, left: 30 })
     }
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md
index ab6dbb0ceb179b1752c1d7cc0be4ba573aa2295f..97c10547361437bc146d9a87415ca15cb837b00d 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md
@@ -2,7 +2,7 @@
 
 组件可见区域变化事件指组件在屏幕中显示的面积变化,提供了判断组件是否完全或部分显示在屏幕中的能力,通常适用于像广告曝光埋点之类的场景。
 
-> **说明:**从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+> **说明:** 从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
 ## 权限列表
 
@@ -13,7 +13,7 @@
 
 | 名称 | 功能描述 |
 | -------- | -------- |
-| onVisibleAreaChange(ratios: Array<number>, event: (isVisible: boolean, currentRatio: number) => void) | 组件可见区域变化时触发该回调。<br/>-ratios:阈值数组。其中,每个阈值代表组件可见面积(即组件在屏幕显示区的面积)与组件自身面积的比值。当组件可见面积与自身面积的比值大于或小于阈值时,均会触发该回调。每个阈值的取值范围为[0.0, 1.0],如果开发者设置的阈值超出该范围,则会实际取值0.0或1.0.<br/>-isVisible:表示组件的可见面积与自身面积的比值是否大于阈值,true表示大于,false表示小于。<br/>-currentRatio:触发回调时,组件可见面积与自身面积的比值。 |
+| onVisibleAreaChange(ratios: Array\<number>, event: (isVisible: boolean, currentRatio: number) => void) | 组件可见区域变化时触发该回调。<br/>-ratios:阈值数组。其中,每个阈值代表组件可见面积(即组件在屏幕显示区的面积)与组件自身面积的比值。当组件可见面积与自身面积的比值大于或小于阈值时,均会触发该回调。每个阈值的取值范围为[0.0, 1.0],如果开发者设置的阈值超出该范围,则会实际取值0.0或1.0.<br/>-isVisible:表示组件的可见面积与自身面积的比值是否大于阈值,true表示大于,false表示小于。<br/>-currentRatio:触发回调时,组件可见面积与自身面积的比值。 |
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md
index ae2bda63aad1304b7cc1211fc3ff723daf3c2616..78689dca4d56faa7b67ecec8e4618fb558e99419 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md
@@ -3,16 +3,9 @@
 点击事件指组件被点击时触发的事件。
 
 >  **说明:**
+>
 >  从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
 
-## 支持设备
-
-| 手机 | 平板 | 智慧屏 | 智能穿戴 |
-| ---- | ---- | ------ | -------- |
-| 支持 | 支持 | 不支持 | 不支持   |
-
-
-
 ## 权限列表
 
 æ— 
@@ -44,8 +37,8 @@
 | -------------- | -------------------------- | ------------------- |
 | width          | number                     | 目标元素的宽度,单位为vp。      |
 | height         | number                     | 目标元素的高度,单位为vp。      |
-| position       | [Position](#position8对象说明) | 目标元素左上角相对父元素左上角的位置。 |
-| globalPosition | [Position](#position8对象说明) | 目标元素左上角相对页面左上角的位置。  |
+| position       | Position | 目标元素左上角相对父元素左上角的位置。 |
+| globalPosition | Position | 目标元素左上角相对页面左上角的位置。  |
 
 ## Position<sup>8+</sup>对象说明
 | 属性名称 | 参数类型   | 描述          |
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md
index 4488aeb52c7ad1235b8df921e4815b16718afdc8..cdcabb4b2d4b75a11d0c284074475e447be47ece 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md
@@ -15,21 +15,21 @@
 
 | 名称                                       | 支持冒泡 | 功能描述                                     |
 | ---------------------------------------- | ---- | ---------------------------------------- |
-| onKeyEvent(event:&nbsp;(event?:&nbsp;KeyEvent)&nbsp;=&gt;&nbsp;void) | 是    | 按键动作触发该方法调用,event参数见[KeyEvent](#keyevent对象说明)介绍。 |
+| onKeyEvent(event:&nbsp;(event?:&nbsp;KeyEvent)&nbsp;=&gt;&nbsp;void) | 是    | 绑定该方法的组件获焦后,按键动作触发该方法调用,event参数见[KeyEvent](#keyevent对象说明)介绍。 |
 
 
 ## KeyEvent对象说明
 
 - 属性
-  | 属性名称      | 类型                          | 描述                         |
-  | --------- | --------------------------- | -------------------------- |
-  | type      | [KeyType](#keytype枚举说明)     | 按键的类型。                     |
-  | keyCode   | number                      | 按键的键码。                     |
-  | keyText   | string                      | 按键的键值。                     |
-  | keySource | [KeySource](#keysource枚举说明) | 触发当前按键的输入设备类型。             |
-  | deviceId  | number                      | 触发当前按键的输入设备ID。             |
-  | metaKey   | number                      | 按键发生时元键的状态,1表示按压态,0表示未按压态。 |
-  | timestamp | number                      | 按键发生时的时间戳。                 |
+  | 属性名称                                  | 类型                          | 描述                         |
+  | ------------------------------------- | --------------------------- | -------------------------- |
+  | type                                  | [KeyType](#keytype枚举说明)     | 按键的类型。                     |
+  | [keyCode](../apis/js-apis-keycode.md) | number                      | 按键的键码。                     |
+  | keyText                               | string                      | 按键的键值。                     |
+  | keySource                             | [KeySource](#keysource枚举说明) | 触发当前按键的输入设备类型。             |
+  | deviceId                              | number                      | 触发当前按键的输入设备ID。             |
+  | metaKey                               | number                      | 按键发生时元键的状态,1表示按压态,0表示未按压态。 |
+  | timestamp                             | number                      | 按键发生时的时间戳。                 |
 
 
 - 接口
@@ -45,21 +45,12 @@
 
 
 ## KeySource枚举说明
-| 名称                      | 描述         |
-| ----------------------- | ---------- |
-| Unknown                 | 输入设备类型未知。  |
-| [KeyCode](#常用keycode说明) | 输入设备类型为键盘。 |
-
-## 常用KeyCode说明
-| 数值   | 行为   | 物理按键       |
-| ---- | ---- | ---------- |
-| 19   | 上    | 向上方向键。     |
-| 20   | 下    | 向下方向键。     |
-| 21   | 左    | 向左方向键。     |
-| 22   | 右    | 向右方向键。     |
-| 23   | 确定   | 遥控器的确认键。   |
-| 66   | 确定   | 键盘的回车键。    |
-| 160  | 确定   | 键盘的小键盘回车键。 |
+| 名称       | 描述         |
+| -------- | ---------- |
+| Unknown  | 输入设备类型未知。  |
+| Keyboard | 输入设备类型为键盘。 |
+
+
 
 
 ## 示例
diff --git a/zh-cn/application-dev/reference/native-apis/Readme-CN.md b/zh-cn/application-dev/reference/native-apis/Readme-CN.md
index f11bbcfaeab3ce93169b180441050e380b314f88..f8b7f9562bf6c3865998581e46695312eb59caa6 100644
--- a/zh-cn/application-dev/reference/native-apis/Readme-CN.md
+++ b/zh-cn/application-dev/reference/native-apis/Readme-CN.md
@@ -1,33 +1,33 @@
 # Native API
 
-- MyProject
+- 模块
     - [Native XComponent](_o_h___native_x_component.md)
     - [Native_Bundle](_native___bundle.md)
     - [HiLog](_hi_log.md)
     - [NativeWindow](_native_window.md)
     - [Drawing](_drawing.md)
     - [Rawfile](rawfile.md)
-- 头文件和结构体
-    - 头文件
-        - [drawing_bitmap.h](drawing__bitmap_8h.md)
-        - [drawing_brush.h](drawing__brush_8h.md)
-        - [drawing_canvas.h](drawing__canvas_8h.md)
-        - [drawing_color.h](drawing__color_8h.md)
-        - [drawing_font_collection.h](drawing__font__collection_8h.md)
-        - [drawing_path.h](drawing__path_8h.md)
-        - [drawing_pen.h](drawing__pen_8h.md)
-        - [drawing_text_declaration.h](drawing__text__declaration_8h.md)
-        - [drawing_text_typography.h](drawing__text__typography_8h.md)
-        - [drawing_types.h](drawing__types_8h.md)
-        - [external_window.h](external__window_8h.md)
-        - [log.h](log_8h.md)
-        - [native_interface_bundle.h](native__interface__bundle_8h.md)
-        - [native_interface_xcomponent.h](native__interface__xcomponent_8h.md)
-        - [raw_dir.h](raw__dir_8h.md)
-        - [raw_file.h](raw__file_8h.md)
-    - 结构体
-        - [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md)
-        - [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md)
-        - [OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md)
-        - [OH_NativeXComponent_TouchPoint](_o_h___native_x_component___touch_point.md)
-        - [RawFileDescriptor](_raw_file_descriptor.md)
+- 头文件
+  
+    - [drawing_bitmap.h](drawing__bitmap_8h.md)
+    - [drawing_brush.h](drawing__brush_8h.md)
+    - [drawing_canvas.h](drawing__canvas_8h.md)
+    - [drawing_color.h](drawing__color_8h.md)
+    - [drawing_font_collection.h](drawing__font__collection_8h.md)
+    - [drawing_path.h](drawing__path_8h.md)
+    - [drawing_pen.h](drawing__pen_8h.md)
+    - [drawing_text_declaration.h](drawing__text__declaration_8h.md)
+    - [drawing_text_typography.h](drawing__text__typography_8h.md)
+    - [drawing_types.h](drawing__types_8h.md)
+    - [external_window.h](external__window_8h.md)
+    - [log.h](log_8h.md)
+    - [native_interface_bundle.h](native__interface__bundle_8h.md)
+    - [native_interface_xcomponent.h](native__interface__xcomponent_8h.md)
+    - [raw_dir.h](raw__dir_8h.md)
+    - [raw_file.h](raw__file_8h.md)
+- 结构体
+    - [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md)
+    - [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md)
+    - [OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md)
+    - [OH_NativeXComponent_TouchPoint](_o_h___native_x_component___touch_point.md)
+    - [RawFileDescriptor](_raw_file_descriptor.md)
diff --git a/zh-cn/application-dev/reference/native-apis/_drawing.md b/zh-cn/application-dev/reference/native-apis/_drawing.md
index 76b6c2c2e5d3cf7de0243980547f62d9bc8a7475..c8a55c1922209caf6049442320650f7335d7d352 100644
--- a/zh-cn/application-dev/reference/native-apis/_drawing.md
+++ b/zh-cn/application-dev/reference/native-apis/_drawing.md
@@ -43,7 +43,7 @@ Drawing模块提供包括2D图形渲染、文字绘制和图片显示等功能
 
 ### Classes
 
-  | Classe&nbsp;Name | Description | 
+  | Classes&nbsp;Name | Description | 
 | -------- | -------- |
 | [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) | 结构体用于描述位图像素的格式,包括颜色类型和透明度类型 | 
 
diff --git a/zh-cn/application-dev/reference/native-apis/annotated.md b/zh-cn/application-dev/reference/native-apis/annotated.md
deleted file mode 100644
index b4b83d5bb7a4e1fe605a00b1c4af4bba8b540b57..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/reference/native-apis/annotated.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# 结构体
-
-
-
-- **[OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md)**
-
-- **[OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md)**
-
-- **[OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md)**
-
-- **[OH_NativeXComponent_TouchPoint](_o_h___native_x_component___touch_point.md)**
-
-- **[RawFileDescriptor](_raw_file_descriptor.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md
index e16944b2b8e814b2239ae0fc73a6dd40c9629d07..3b78678ae631f68f037a07a4a194be3cb8bcf8a6 100644
--- a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md
+++ b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md
@@ -21,7 +21,7 @@
 
 ### Classes
 
-  | Classe&nbsp;Name | Description | 
+  | Classes&nbsp;Name | Description | 
 | -------- | -------- |
 | [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) | 结构体用于描述位图像素的格式,包括颜色类型和透明度类型 | 
 
diff --git a/zh-cn/application-dev/reference/native-apis/files.md b/zh-cn/application-dev/reference/native-apis/files.md
deleted file mode 100644
index f4beb38e74356c62ccb498720313d2fd6a879a9f..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/reference/native-apis/files.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# 头文件
-
-
-
-- **[drawing_bitmap.h](drawing__bitmap_8h.md)**
-
-- **[drawing_brush.h](drawing__brush_8h.md)**
-
-- **[drawing_canvas.h](drawing__canvas_8h.md)**
-
-- **[drawing_color.h](drawing__color_8h.md)**
-
-- **[drawing_font_collection.h](drawing__font__collection_8h.md)**
-
-- **[drawing_path.h](drawing__path_8h.md)**
-
-- **[drawing_pen.h](drawing__pen_8h.md)**
-
-- **[drawing_text_declaration.h](drawing__text__declaration_8h.md)**
-
-- **[drawing_text_typography.h](drawing__text__typography_8h.md)**
-
-- **[drawing_types.h](drawing__types_8h.md)**
-
-- **[external_window.h](external__window_8h.md)**
-
-- **[log.h](log_8h.md)**
-
-- **[native_interface_bundle.h](native__interface__bundle_8h.md)**
-
-- **[native_interface_xcomponent.h](native__interface__xcomponent_8h.md)**
-
-- **[raw_dir.h](raw__dir_8h.md)**
-
-- **[raw_file.h](raw__file_8h.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/native-apis/index.md b/zh-cn/application-dev/reference/native-apis/index.md
deleted file mode 100644
index f04f11fd3ba729aa2e871108fbf1679511b026dc..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/reference/native-apis/index.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# MyProject
-
-
-
-- **[Native XComponent](_o_h___native_x_component.md)**
-
-- **[Native_Bundle](_native___bundle.md)**
-
-- **[HiLog](_hi_log.md)**
-
-- **[NativeWindow](_native_window.md)**
-
-- **[Drawing](_drawing.md)**
-
-- **[Rawfile](rawfile.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/native-lib/Readme-CN.md b/zh-cn/application-dev/reference/native-lib/Readme-CN.md
index ce6736a94f7fa5dc06bf1775dcc4cc166cf3600d..6ab376d22cdee59e3d8c3ba5b1c1a702012b1b92 100644
--- a/zh-cn/application-dev/reference/native-lib/Readme-CN.md
+++ b/zh-cn/application-dev/reference/native-lib/Readme-CN.md
@@ -1,6 +1,8 @@
 # Native API标准库
-
--   [标准库](third_party_libc/musl.md)
--   [Native API中没有导出的符号列表](third_party_libc/musl-peculiar-symbol.md)
--   [Node_API](third_party_napi/napi.md)
--   [libuv](third_party_libuv/libuv.md)
\ No newline at end of file
+- [Node_API](third_party_napi/napi.md)
+- [libuv](third_party_libuv/libuv.md)
+- [支持的标准库介绍](third_party_libc/musl.md)
+- 附录
+  - [Native api中没有导出的符号列表](third_party_libc/musl-peculiar-symbol.md)
+  - [Native api中导出的EGL符号列表](third_party_opengl/egl-symbol.md)
+  - [Native api中导出的OpenGL ES 3.0符号列表](third_party_opengl/openglesv3-symbol.md)  
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/native-lib/third_party_libc/musl-peculiar-symbol.md b/zh-cn/application-dev/reference/native-lib/third_party_libc/musl-peculiar-symbol.md
index 3a8bc6520078b412752abfe19aa7e5e6038c96af..376d39a7c62fe0cfc5a5f59738de24788b64356d 100644
--- a/zh-cn/application-dev/reference/native-lib/third_party_libc/musl-peculiar-symbol.md
+++ b/zh-cn/application-dev/reference/native-lib/third_party_libc/musl-peculiar-symbol.md
@@ -1,4 +1,4 @@
-**native api中没有导出的符号列表**
+# Native api中没有导出的符号列表
 
 |符号类型|符号名|备注|
 | --- | --- | --- |
diff --git a/zh-cn/application-dev/reference/native-lib/third_party_libc/musl.md b/zh-cn/application-dev/reference/native-lib/third_party_libc/musl.md
index 33c549ac2ecfe1549f8d6a9e638fe0d1048ad8cb..88766ad86a7acfcd04aba191f695d894009ca5d2 100644
--- a/zh-cn/application-dev/reference/native-lib/third_party_libc/musl.md
+++ b/zh-cn/application-dev/reference/native-lib/third_party_libc/musl.md
@@ -1,11 +1,7 @@
 # Native API中支持的标准库
 
-
-
 ## 简介
 
-
-
 **表1** OpenHarmony支持的标准库
 
 | 名称      | 简介                                                         |
@@ -19,8 +15,6 @@
 
 ## 标准C库
 
-
-
 [libc、libm、libdl](https://zh.cppreference.com/w/c/header)组合实现C11标准C库。
 
 libc:包含线程相关接口,以及大部分标准接口。
@@ -43,8 +37,6 @@ C标准函数库是在C语言程序设计中,所有符合标准的头文件的
 
 ## 标准C++库
 
-
-
 [libc++](https://libcxx.llvm.org/)是C++标准库的一种实现。
 
 **版本**
@@ -57,24 +49,12 @@ C++11、C++14标准已完全支持,C++17和C++20标准正在完善。
 
 ## OpenSL ES
 
-
-
 [OpenSL ES](https://www.khronos.org/registry/OpenSL-ES/)是一个嵌入式跨平台的音频处理库。
 
-
-
 ## zlib
 
-
-
 [Zlib](https://zlib.net/)是基于C/C++语言实现的一个通用的数据压缩库。
 
-
-
-
-
-
-
 ## EGL
 
 EGL 是Khronos渲染API (如OpenGL ES 或 OpenVG) 与底层原生窗口系统之间的接口。OpenHarmony 现已支持 EGL。
@@ -83,8 +63,6 @@ EGL 是Khronos渲染API (如OpenGL ES 或 OpenVG) 与底层原生窗口系统之
 
 [native api中导出的EGL符号列表](../third_party_opengl/egl-symbol.md)
 
-
-
 ## OpenGL ES
 
 OpenGL 是一种跨平台的图形 API,用于为 3D 图形处理硬件指定标准的软件接口。[OpenGL ES](https://www.khronos.org/opengles/) 是 OpenGL 规范的一种形式,适用于嵌入式设备。OpenHarmony 现已支持 OpenGL ES 3.0。
@@ -95,5 +73,4 @@ OpenGL ES 3.0
 
 **标准库中导出的符号列表**
 
-[native api中导出的OpenGL ES 3.0符号列表](../third_party_opengl/openglesv3-symbol.md)
-
+[native api中导出的OpenGL ES 3.0符号列表](../third_party_opengl/openglesv3-symbol.md)
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/native-lib/third_party_napi/napi.md b/zh-cn/application-dev/reference/native-lib/third_party_napi/napi.md
index 1b66ad0e12659eca0eb6fefeaffb2730dce12f5e..3c313db67b3fce890adff06e4f3a4eb8e6fcfcd8 100644
--- a/zh-cn/application-dev/reference/native-lib/third_party_napi/napi.md
+++ b/zh-cn/application-dev/reference/native-lib/third_party_napi/napi.md
@@ -1,22 +1,17 @@
-# Node_API
-
-
+# Node-API
 
 ## 简介
 
+Node-API是用于封装JavaScript能力为Native插件的API,独立于底层JavaScript,并作为Node.js的一部分。
 
 
-Node-API是用于封装JavaScript能力为native插件的API,独立于底层JavaScript,并作为Node.js的一部分。
-
 ## 支持的能力
 
-
-
 Node-API可以去除底层的JavaScript引擎的差异,提供一套稳定的接口。
 
-NAPI组件对Node-API的接口进行了重新实现,底层对接了ArkJs等引擎。当前支持Node-API标准库中的部分接口。
+OpenHarmony的Native API组件对Node-API的接口进行了重新实现,底层对接了ArkJS等引擎。当前支持Node-API标准库中的部分接口。
 
-**NAPI组件扩展的符号列表**
+## Native API组件扩展的符号列表
 
 |符号类型|符号名|备注|
 | --- | --- | --- |
diff --git a/zh-cn/application-dev/reference/native-lib/third_party_opengl/egl-symbol.md b/zh-cn/application-dev/reference/native-lib/third_party_opengl/egl-symbol.md
index 0812ae9c45832cf44c988bdd3e9701286d07f0e8..d9f9bbf871cdc5d6d952467685b460beb388fce3 100644
--- a/zh-cn/application-dev/reference/native-lib/third_party_opengl/egl-symbol.md
+++ b/zh-cn/application-dev/reference/native-lib/third_party_opengl/egl-symbol.md
@@ -1,4 +1,4 @@
-**native api中导出的EGL符号列表**
+# Native api中导出的EGL符号列表
 
 |符号类型|符号名|备注|
 | --- | --- | --- |
diff --git a/zh-cn/application-dev/reference/native-lib/third_party_opengl/openglesv3-symbol.md b/zh-cn/application-dev/reference/native-lib/third_party_opengl/openglesv3-symbol.md
index 1c68fcb17ae4b78c78491376a2061af728141bec..8a94b7e83e1d4692f8113dfec02668a7cdc64681 100644
--- a/zh-cn/application-dev/reference/native-lib/third_party_opengl/openglesv3-symbol.md
+++ b/zh-cn/application-dev/reference/native-lib/third_party_opengl/openglesv3-symbol.md
@@ -1,4 +1,4 @@
-**native api中导出的OpenGL ES 3.0符号列表**
+# Native api中导出的OpenGL ES 3.0符号列表
 
 |符号类型|符号名|备注|
 | --- | --- | --- |
diff --git a/zh-cn/application-dev/security/accesstoken-guidelines.md b/zh-cn/application-dev/security/accesstoken-guidelines.md
index 9354ed496a1c07573f7f9000a54fe030c737aa73..f4550869894c3dcaf7f2523ee76066e849ca5658 100644
--- a/zh-cn/application-dev/security/accesstoken-guidelines.md
+++ b/zh-cn/application-dev/security/accesstoken-guidelines.md
@@ -182,3 +182,10 @@
 ```
 > **说明:**
 > 动态授权申请接口的使用详见[API参考](../reference/apis/js-apis-ability-context.md)。
+
+## 相关实例
+
+针对访问控制,有以下相关实例可供参考:
+
+- [`AbilityAccessCtrl`:访问权限控制(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/Safety/AbilityAccessCtrl)
+- [为应用添加运行时权限(eTS)(API 9)](https://gitee.com/openharmony/codelabs/tree/master/Ability/AccessPermission)
\ No newline at end of file
diff --git a/zh-cn/application-dev/security/accesstoken-overview.md b/zh-cn/application-dev/security/accesstoken-overview.md
index 29283090785f340d671e6b32b0dd2d8f4d6b9389..75c63227541bbe2e75cc28b06eb5fc248d32226d 100644
--- a/zh-cn/application-dev/security/accesstoken-overview.md
+++ b/zh-cn/application-dev/security/accesstoken-overview.md
@@ -170,7 +170,7 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
 
 在权限B的ACL使能为TRUE的情况下,此时,开发者可以使用ACL方式来申请权限B。
 
-ACL方式的工作流程可以参考[ACL方式使用说明](#ACL方式使用说明)。
+ACL方式的工作流程可以参考[ACL方式使用说明](#acl方式使用说明)。
 具体某个权限能否通过ACL使能情况可查阅[权限定义列表](permission-list.md)。
 
 ### ACL方式使用说明
diff --git a/zh-cn/application-dev/security/huks-overview.md b/zh-cn/application-dev/security/huks-overview.md
index b6bfae7f5a0be1cfb7bce7fa381a5b4e0b641032..3711420d9b14dba3709cddfe07a58741760173f5 100755
--- a/zh-cn/application-dev/security/huks-overview.md
+++ b/zh-cn/application-dev/security/huks-overview.md
@@ -16,13 +16,13 @@ HUKS对密钥的使用主要通过Init、Update、Finish操作来实现。
 
 - **Init操作**:读取密钥,并为其创建Session Id返回给调用者。
 
-- **Udate操作**:根据Init操作获取的Session Id对数据进行分段update处理。
+- **Update操作**:根据Init操作获取的Session Id对数据进行分段update处理。
 
-- **Fnish操作**:当所有待处理的数据均传入HUKS后,调用Finish操作完成最终数据处理,释放资源。
+- **Finish操作**:当所有待处理的数据均传入HUKS后,调用Finish操作完成最终数据处理,释放资源。
 
 > **须知:**<br>
 > 当Init、Update、Finish操作中的任一阶段发生错误时,都需要调用Abort操作来终止密钥的使用。
 
 
 ## 约束与限制
-不涉及。
\ No newline at end of file
+不涉及。
diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md
index b8f1e3000977295f7eed6d7407a1dfdfd4a883bc..e661b3eb83a4aa5b195bb8bd9130663a9412ceac 100644
--- a/zh-cn/application-dev/security/permission-list.md
+++ b/zh-cn/application-dev/security/permission-list.md
@@ -97,7 +97,7 @@
 | ohos.permission.EDM_MANAGE_DATETIME                      | normal       | system_grant | FALSE   | 允许设备管理员应用设置系统时间。                             |
 | ohos.permission.NFC_TAG                                  | normal       | system_grant | FALSE   | 允许应用读取Tag卡片。                                        |
 | ohos.permission.NFC_CARD_EMULATION                       | normal       | system_grant | FALSE   | 允许应用实现卡模拟功能。                                     |
-| ohos.permission.PERMISSION_USED_STATS                    | system_core  | system_grant | TRUE    | 允许系统应用访问权限使用记录。                               |
+| ohos.permission.PERMISSION_USED_STATS                    | system_basic | system_grant | TRUE    | 允许系统应用访问权限使用记录。                               |
 | ohos.permission.NOTIFICATION_AGENT_CONTROLLER            | system_core  | system_grant | TRUE    | 允许应用发送代理通知。                                       |
 | ohos.permission.ANSWER_CALL                              | system_basic | user_grant   | TRUE    | 允许应用接听来电。                                           |
 | ohos.permission.READ_CALENDAR                            | normal       | user_grant   | TRUE    | 允许应用读取日历信息。                                       |
@@ -129,4 +129,5 @@
 | ohos.permission.ACCESS_IDS                               | system_core  | system_grant | TRUE    | 允许应用查询设备的唯一标识符信息。                               |
 | ohos.permission.DUMP                                     | system_core  | system_grant | TRUE    | 允许导出系统基础信息和SA服务信息。                               |
 | ohos.permission.DISTRIBUTED_SOFTBUS_CENTER               | system_basic | system_grant | FALSE   | 允许不同设备之间进行组网处理。                                   |
-| ohos.permission.ACCESS_DLP_FILE                          | system_core  | system_grant | TRUE    | 允许对DLP文件进行权限配置和管理。                                |
\ No newline at end of file
+| ohos.permission.ACCESS_DLP_FILE                          | system_core  | system_grant | TRUE    | 允许对DLP文件进行权限配置和管理。                                |
+| ohos.permission.PROVISIONING_MESSAGE                     | system_core  | system_grant | TRUE    | 允许激活超级设备管理器应用。                                     |
\ No newline at end of file
diff --git a/zh-cn/application-dev/task-management/background-task-dev-guide.md b/zh-cn/application-dev/task-management/background-task-dev-guide.md
index 8652b3012d203b154ea0a669eadaf2a731d24655..54998ed2986075f4b89942e277ef10a96ea0d6f9 100644
--- a/zh-cn/application-dev/task-management/background-task-dev-guide.md
+++ b/zh-cn/application-dev/task-management/background-task-dev-guide.md
@@ -116,6 +116,8 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
 
 ### 开发步骤
 
+基于FA模型:
+
 1. 新建Api Version 8的工程后,在工程目录中右键选择“new” -> “Ability” -> “Service Ability” 快速创建Service Ability组件。并在config.json文件中配置长时任务权限、后台模式类型,其中Ability类型为“service”。
 
     ```
@@ -138,7 +140,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
     }
     ```
 
-2. 申请长时任务
+2. 申请长时任务。
 
     ```js
     import backgroundTaskManager from '@ohos.backgroundTaskManager';
@@ -168,7 +170,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
     });
     ```
 
-3. 停止长时任务
+3. 停止长时任务。
 
     ```js
     import backgroundTaskManager from '@ohos.backgroundTaskManager';
@@ -182,7 +184,75 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
 
     ```
 
+基于Stage模型:
+
+1. 新建Api Version 9的工程后,在工程目录中右键选择“New” -> “Ability” 快速创建Ability组件。并在module.json5文件中配置长时任务权限、后台模式类型。
+
+    ```
+    "module": {
+      "abilities": [
+        {
+          "backgroundModes": [
+            "dataTransfer",
+            "location"
+          ], // 后台模式类型
+        }
+      ],
+      "requestPermissions": [
+        {
+          "name": "ohos.permission.KEEP_BACKGROUND_RUNNING"  // 长时任务权限
+        }
+      ]
+    }
+    ```
+
+2. 申请长时任务。
+
+    ```ts
+    import backgroundTaskManager from '@ohos.backgroundTaskManager';
+    import wantAgent from '@ohos.wantAgent';
+
+    let wantAgentInfo = {
+        wants: [
+            {
+                bundleName: "com.example.myapplication",
+                abilityName: "com.example.myapplication.MainAbility"
+            }
+        ],
+        operationType: wantAgent.OperationType.START_ABILITY,
+        requestCode: 0,
+        wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+    };
+
+    // 通过wantAgent模块的getWantAgent方法获取WantAgent对象
+    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+        backgroundTaskManager.startBackgroundRunning(this.context,
+            backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => {
+            console.info("Operation startBackgroundRunning succeeded");
+        }).catch((err) => {
+            console.error("Operation startBackgroundRunning failed Cause: " + err);
+        });
+    });
+    ```
+
+3. 停止长时任务。
+
+    ```ts
+    import backgroundTaskManager from '@ohos.backgroundTaskManager';
+
+    backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
+        console.info("Operation stopBackgroundRunning succeeded");
+    }).catch((err) => {
+        console.error("Operation stopBackgroundRunning failed Cause: " + err);
+    });
+
+    ```
+
+
 ### 开发实例
+
+基于FA模型:
+
 基于FA的Service Ability使用,参考[ServiceAbility开发指导](../ability/fa-serviceability.md)。
 
 当不需要与后台执行的长时任务交互时,可以采用startAbility()方法启动Service Ability。并在Service Ability的onStart回调方法中,调用长时任务的申请接口,声明此服务需要在后台长时运行。当任务执行完,再调用长时任务取消接口,及时释放资源。
@@ -285,6 +355,130 @@ export default {
 };
 ```
 
+基于Stage模型:
+
+Stage模型的相关信息参考[Stage模型综述](../ability/stage-brief.md)。
+当应用需要在后台执行长时任务时,可以通过Call的方式在后台创建并运行Ability。使用方式参考[Call调用开发指导](../ability/stage-call.md)。
+
+```ts
+import Ability from '@ohos.application.Ability'
+import backgroundTaskManager from '@ohos.backgroundTaskManager';
+import wantAgent from '@ohos.wantAgent';
+
+let mContext = null;
+
+function startContinuousTask() {
+    let wantAgentInfo = {
+        // 点击通知后,将要执行的动作列表
+        wants: [
+            {
+                bundleName: "com.example.myapplication",
+                abilityName: "com.example.myapplication.MainAbility"
+            }
+        ],
+        // 点击通知后,动作类型
+        operationType: wantAgent.OperationType.START_ABILITY,
+        // 使用者自定义的一个私有值
+        requestCode: 0,
+        // 点击通知后,动作执行属性
+        wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
+    };
+
+    // 通过wantAgent模块的getWantAgent方法获取WantAgent对象
+    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
+        backgroundTaskManager.startBackgroundRunning(mContext,
+            backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => {
+            console.info("Operation startBackgroundRunning succeeded");
+        }).catch((err) => {
+            console.error("Operation startBackgroundRunning failed Cause: " + err);
+        });
+    });
+}
+
+function stopContinuousTask() {
+    backgroundTaskManager.stopBackgroundRunning(mContext).then(() => {
+        console.info("Operation stopBackgroundRunning succeeded");
+    }).catch((err) => {
+        console.error("Operation stopBackgroundRunning failed Cause: " + err);
+    });
+}
+
+class MySequenceable {
+    num: number = 0;
+    str: String = "";
+
+    constructor(num, string) {
+        this.num = num;
+        this.str = string;
+    }
+
+    marshalling(messageParcel) {
+        messageParcel.writeInt(this.num);
+        messageParcel.writeString(this.str);
+        return true;
+    }
+
+    unmarshalling(messageParcel) {
+        this.num = messageParcel.readInt();
+        this.str = messageParcel.readString();
+        return true;
+    }
+}
+
+function sendMsgCallback(data) {
+    console.info('BgTaskAbility funcCallBack is called ' + data)
+    let receivedData = new Mysequenceable(0, "")
+    data.readSequenceable(receivedData)
+    console.info(`receiveData[${receivedData.num}, ${receivedData.str}]`)
+    if (receivedData.str === 'start_bgtask') {
+        startContinuousTask()
+    } else if (receivedData.str === 'stop_bgtask') {
+        stopContinuousTask();
+    }
+    return new Mysequenceable(10, "Callee test");
+}
+
+export default class BgTaskAbility extends Ability {
+    onCreate(want, launchParam) {
+        console.info("[Demo] BgTaskAbility onCreate")
+        this.callee.on("test", sendMsgCallback);
+
+        try {
+            this.callee.on(MSG_SEND_METHOD, sendMsgCallback)
+        } catch (error) {
+            console.error(`${MSG_SEND_METHOD} register failed with error ${JSON.stringify(error)}`)
+        }
+        mContext = this.context;
+    }
+
+    onDestroy() {
+        console.info("[Demo] BgTaskAbility onDestroy")
+    }
+
+    onWindowStageCreate(windowStage) {
+        console.info("[Demo] BgTaskAbility onWindowStageCreate")
+
+        windowStage.loadContent("pages/second").then((data)=> {
+            console.info(`load content succeed with data ${JSON.stringify(data)}`)
+        }).catch((error)=>{
+            console.error(`load content failed with error ${JSON.stringify(error)}`)
+        })
+    }
+
+    onWindowStageDestroy() {
+        console.info("[Demo] BgTaskAbility onWindowStageDestroy")
+    }
+
+    onForeground() {
+        console.info("[Demo] BgTaskAbility onForeground")
+    }
+
+    onBackground() {
+        console.info("[Demo] BgTaskAbility onBackground")
+    }
+};
+```
+
 ## 相关实例
 
 基于后台任务管理,有以下相关实例可供参考:
diff --git a/zh-cn/application-dev/telephony/cellular-network-signal-info.md b/zh-cn/application-dev/telephony/cellular-network-signal-info.md
index 34a244080874d04ad63b638485a2bd6addfc1222..90d9087aae3b0995ccb86a35149449217f2a7854 100644
--- a/zh-cn/application-dev/telephony/cellular-network-signal-info.md
+++ b/zh-cn/application-dev/telephony/cellular-network-signal-info.md
@@ -49,3 +49,8 @@ radio模块提供了获取当前网络信号信息的方法。observer模块为
        console.log("signal info change, data is:" + JSON.stringify(data));
    });
    ```
+
+## 相关实例
+
+针对蜂窝网络数据开发,有以下相关实例可供参考:
+- [`MobileNetwork`:蜂窝数据(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/Telephony/MobileNetwork)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/Readme-CN.md b/zh-cn/application-dev/ui/Readme-CN.md
index c7a2b79e0bccc29a38a355b4d4113e74882dbfbc..ab862d2dd3c3d4a50f066ce49fc261ecebdbc650 100755
--- a/zh-cn/application-dev/ui/Readme-CN.md
+++ b/zh-cn/application-dev/ui/Readme-CN.md
@@ -1,6 +1,78 @@
 # UI开发
 
 - [方舟开发框架(ArkUI)概述](arkui-overview.md)
+- 基于TS扩展的声明式开发范式
+    - [概述](ui-ts-overview.md)
+    - 框架说明
+        - 文件组织
+            - [目录结构](ts-framework-directory.md)
+            - [应用代码文件访问规则](ts-framework-file-access-rules.md)
+        - [js标签配置](ts-framework-js-tag.md)
+        - 资源管理
+            - [资源文件的分类](ui-ts-basic-resource-file-categories.md)
+            - [资源访问](ts-resource-access.md)
+        - [像素单位](ts-pixel-units.md)
+        - [类型定义](ts-types.md)
+    - 声明式语法
+        - [描述规范使用说明](ts-syntax-intro.md)
+        - 通用UI描述规范
+            - [基本概念](ts-general-ui-concepts.md)
+            - 声明式UI描述规范
+                - [无构造参数配置](ts-parameterless-configuration.md)
+                - [必选参数构造配置](ts-configuration-with-mandatory-parameters.md)
+                - [属性配置](ts-attribution-configuration.md)
+                - [事件配置](ts-event-configuration.md)
+                - [子组件配置](ts-child-component-configuration.md)
+            - 组件化
+                - [@Component](ts-component-based-component.md)
+                - [@Entry](ts-component-based-entry.md)
+                - [@Preview](ts-component-based-preview.md)
+                - [@Builder](ts-component-based-builder.md)
+                - [@Extend](ts-component-based-extend.md)
+                - [@CustomDialog](ts-component-based-customdialog.md)
+                - [@Styles](ts-component-based-styles.md)
+        - UI状态管理
+            - [基本概念](ts-ui-state-mgmt-concepts.md)
+            - 管理组件拥有的状态
+                - [@State](ts-component-states-state.md)
+                - [@Prop](ts-component-states-prop.md)
+                - [@Link](ts-component-states-link.md)
+            - 管理应用程序的状态
+                - [应用程序的数据存储](ts-application-states-appstorage.md)
+                - [Ability数据存储](ui-ts-local-storage.md)
+                - [持久化数据管理](ts-application-states-apis-persistentstorage.md)
+                - [环境变量](ts-application-states-apis-environment.md)
+            - 其他类目的状态管理
+                - [Observed和ObjectLink数据管理](ts-other-states-observed-objectlink.md)
+                - [@Consume和@Provide数据管理](ts-other-states-consume-provide.md)
+                - [@Watch](ts-other-states-watch.md)
+        - 渲染控制语法
+            - [条件渲染](ts-rending-control-syntax-if-else.md)
+            - [循环渲染](ts-rending-control-syntax-foreach.md)
+            - [数据懒加载](ts-rending-control-syntax-lazyforeach.md)
+        - 深入理解组件化
+            - [build函数](ts-function-build.md)
+            - [自定义组件初始化](ts-custom-component-initialization.md)
+            - [自定义组件生命周期回调函数](ts-custom-component-lifecycle-callbacks.md)
+            - [组件创建和重新初始化示例](ts-component-creation-re-initialization.md)
+        - [语法糖](ts-syntactic-sugar.md)
+    - 常见组件开发指导
+        - [Button开发指导](ui-ts-basic-components-button.md)
+        - [Web开发指导](ui-ts-components-web.md)
+    - 常见布局开发指导
+        - [弹性布局](ui-ts-layout-flex.md)
+        - [栅格布局](ui-ts-layout-grid-container.md)
+        - [媒体查询](ui-ts-layout-mediaquery.md)
+    - 体验声明式UI
+        - [创建声明式UI工程](ui-ts-creating-project.md)
+        - [初识Component](ui-ts-components.md)
+        - [创建简单视图](ui-ts-creating-simple-page.md)
+    - 页面布局与连接
+        - [构建食物数据模型](ui-ts-building-data-model.md)
+        - [构建食物列表List布局](ui-ts-building-category-list-layout.md)
+        - [构建食物分类Grid布局](ui-ts-building-category-grid-layout.md)
+        - [页面跳转与数据传递](ui-ts-page-redirection-data-transmission.md)
+
 - 基于JS扩展的类Web开发范式
     - [概述](ui-js-overview.md)
     - 框架说明
@@ -72,76 +144,4 @@
             - 插值器动画
                 - [动画动效](ui-js-animate-dynamic-effects.md)
                 - [动画帧](ui-js-animate-frame.md)
-    - [自定义组件](ui-js-custom-components.md)
-- 基于TS扩展的声明式开发范式
-    - [概述](ui-ts-overview.md)
-    - 框架说明
-        - 文件组织
-            - [目录结构](ts-framework-directory.md)
-            - [应用代码文件访问规则](ts-framework-file-access-rules.md)
-        - [js标签配置](ts-framework-js-tag.md)
-        - 资源访问
-            - [访问应用资源](ts-application-resource-access.md)
-            - [访问系统资源](ts-system-resource-access.md)
-            - [媒体资源类型说明](ts-media-resource-type.md)
-        - [像素单位](ts-pixel-units.md)
-        - [类型定义](ts-types.md)
-    - 声明式语法
-        - [描述规范使用说明](ts-syntax-intro.md)
-        - 通用UI描述规范
-            - [基本概念](ts-general-ui-concepts.md)
-            - 声明式UI描述规范
-                - [无构造参数配置](ts-parameterless-configuration.md)
-                - [必选参数构造配置](ts-configuration-with-mandatory-parameters.md)
-                - [属性配置](ts-attribution-configuration.md)
-                - [事件配置](ts-event-configuration.md)
-                - [子组件配置](ts-child-component-configuration.md)
-            - 组件化
-                - [@Component](ts-component-based-component.md)
-                - [@Entry](ts-component-based-entry.md)
-                - [@Preview](ts-component-based-preview.md)
-                - [@Builder](ts-component-based-builder.md)
-                - [@Extend](ts-component-based-extend.md)
-                - [@CustomDialog](ts-component-based-customdialog.md)
-                - [@Styles](ts-component-based-styles.md)
-        - UI状态管理
-            - [基本概念](ts-ui-state-mgmt-concepts.md)
-            - 管理组件拥有的状态
-                - [@State](ts-component-states-state.md)
-                - [@Prop](ts-component-states-prop.md)
-                - [@Link](ts-component-states-link.md)
-            - 管理应用程序的状态
-                - [应用程序的数据存储](ts-application-states-appstorage.md)
-                - [Ability数据存储](ui-ts-local-storage.md)
-                - [持久化数据管理](ts-application-states-apis-persistentstorage.md)
-                - [环境变量](ts-application-states-apis-environment.md)
-            - 其他类目的状态管理
-                - [Observed和ObjectLink数据管理](ts-other-states-observed-objectlink.md)
-                - [@Consume和@Provide数据管理](ts-other-states-consume-provide.md)
-                - [@Watch](ts-other-states-watch.md)
-        - 渲染控制语法
-            - [条件渲染](ts-rending-control-syntax-if-else.md)
-            - [循环渲染](ts-rending-control-syntax-foreach.md)
-            - [数据懒加载](ts-rending-control-syntax-lazyforeach.md)
-        - 深入理解组件化
-            - [build函数](ts-function-build.md)
-            - [自定义组件初始化](ts-custom-component-initialization.md)
-            - [自定义组件生命周期回调函数](ts-custom-component-lifecycle-callbacks.md)
-            - [组件创建和重新初始化示例](ts-component-creation-re-initialization.md)
-        - [语法糖](ts-syntactic-sugar.md)
-    - 常见组件开发指导
-        - [Button开发指导](ui-ts-basic-components-button.md)
-        - [Web开发指导](ui-ts-components-web.md)
-    - 常见布局开发指导
-        - [弹性布局](ui-ts-layout-flex.md)
-        - [栅格布局](ui-ts-layout-grid-container.md)
-        - [媒体查询](ui-ts-layout-mediaquery.md)
-    - 体验声明式UI
-        - [创建声明式UI工程](ui-ts-creating-project.md)
-        - [初识Component](ui-ts-components.md)
-        - [创建简单视图](ui-ts-creating-simple-page.md)
-    - 页面布局与连接
-        - [构建食物数据模型](ui-ts-building-data-model.md)
-        - [构建食物列表List布局](ui-ts-building-category-list-layout.md)
-        - [构建食物分类Grid布局](ui-ts-building-category-grid-layout.md)
-        - [页面跳转与数据传递](ui-ts-page-redirection-data-transmission.md)
+    - [自定义组件](ui-js-custom-components.md)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/arkui-overview.md b/zh-cn/application-dev/ui/arkui-overview.md
index 73e9103b88de19305b750de003d0bfaa5c998436..e1dc6e11c2013cacebac3cae38b516e08751ff57 100644
--- a/zh-cn/application-dev/ui/arkui-overview.md
+++ b/zh-cn/application-dev/ui/arkui-overview.md
@@ -26,12 +26,12 @@
 
 - 平台API通道:方舟开发框架提供了API扩展机制,平台能力通过此种机制进行封装,提供风格统一的JS接口。
 
-- 两种开发范式:方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式,分别是基于JS扩展的类Web开发范式(简称“类Web开发范式”)和基于TS扩展的声明式开发范式(简称“声明式开发范式”)。
+- 两种开发范式:方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式,分别是基于TS扩展的声明式开发范式(简称“声明式开发范式”)和基于JS扩展的类Web开发范式(简称“类Web开发范式”)。
 
   | 开发范式名称   | 简介                                       | 适用场景             | 适用人群                |
   | -------- | ---------------------------------------- | ---------------- | ------------------- |
-  | 类Web开发范式 | 采用经典的HML、CSS、JavaScript三段式开发方式。使用HML标签文件进行布局搭建,使用CSS文件进行样式描述,使用JavaScript文件进行逻辑处理。UI组件与数据之间通过单向数据绑定的方式建立关联,当数据发生变化时,UI界面自动触发更新。此种开发方式,更接近Web前端开发者的使用习惯,快速将已有的Web应用改造成方舟开发框架应用。 | 界面较为简单的中小型应用和卡片  | Web前端开发人员           |
   | 声明式开发范式  | 采用TS语言并进行声明式UI语法扩展,从组件、动效和状态管理三个维度提供了UI绘制能力。UI开发更接近自然语义的编程方式,让开发者直观地描述UI界面,不必关心框架如何实现UI绘制和渲染,实现极简高效开发。同时,选用有类型标注的TS语言,引入编译期的类型校验。 | 复杂度较大、团队合作度较高的程序 | 移动系统应用开发人员、系统应用开发人员 |
+  | 类Web开发范式 | 采用经典的HML、CSS、JavaScript三段式开发方式。使用HML标签文件进行布局搭建,使用CSS文件进行样式描述,使用JavaScript文件进行逻辑处理。UI组件与数据之间通过单向数据绑定的方式建立关联,当数据发生变化时,UI界面自动触发更新。此种开发方式,更接近Web前端开发者的使用习惯,快速将已有的Web应用改造成方舟开发框架应用。 | 界面较为简单的中小型应用和卡片  | Web前端开发人员           |
 
 
 
diff --git a/zh-cn/application-dev/ui/figures/create-resource-file-1.png b/zh-cn/application-dev/ui/figures/create-resource-file-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d82caac558cd58b78aba3014b6ac60148f6bc8
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/create-resource-file-1.png differ
diff --git a/zh-cn/application-dev/ui/figures/create-resource-file-2.png b/zh-cn/application-dev/ui/figures/create-resource-file-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4d23e8dc15bafbb08ca691575ce2ea9fe989e91
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/create-resource-file-2.png differ
diff --git a/zh-cn/application-dev/ui/figures/create-resource-file-3.png b/zh-cn/application-dev/ui/figures/create-resource-file-3.png
new file mode 100644
index 0000000000000000000000000000000000000000..566653c5e49753e1f04d0d6b5b5c3e931f4354b5
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/create-resource-file-3.png differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642001.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642001.gif
new file mode 100644
index 0000000000000000000000000000000000000000..03a0350651c4e4e1fa70593befa45455b662acd1
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642001.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642002.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642002.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f07cd18d127944605658f4424ad3b41a39b553c3
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642002.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642003.png b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642003.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c514af73d06209da17532eb6e3c9657f7a97060
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642003.png differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642004.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642004.gif
new file mode 100644
index 0000000000000000000000000000000000000000..eaee7ddb8a27352887aa17b30e906408bd236e9e
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642004.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642005.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642005.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7d12fd80ac4f5ceec08b463b24eb48935227f621
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642005.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642006.png b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642006.png
new file mode 100644
index 0000000000000000000000000000000000000000..90a3e2af63bcc5c18114bfd8d112ca58f2c69e1b
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642006.png differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642007.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642007.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9325cd75369ef2a2b1d7784ce5aeef97ae1ec71c
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642007.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642008.png b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642008.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e3f22225a2e1a04c19b9c2d948d8b8351c73056
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642008.png differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642009.gif b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642009.gif
new file mode 100644
index 0000000000000000000000000000000000000000..057e146194b5e63ebeb5b07b0556e3495a4ce2ca
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001118642009.gif differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001195117633.png b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001195117633.png
deleted file mode 100644
index 00964c1cfa5f006f2e8ac064133e23a2d8fc92aa..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001195117633.png and /dev/null differ
diff --git a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001213462329.png b/zh-cn/application-dev/ui/figures/zh-cn_image_0000001213462329.png
deleted file mode 100644
index 99a2f37ce14924c6c2d91f828d7ffaa8c87ec77f..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/ui/figures/zh-cn_image_0000001213462329.png and /dev/null differ
diff --git a/zh-cn/application-dev/ui/js-framework-file.md b/zh-cn/application-dev/ui/js-framework-file.md
index 983b0f4bf4bf64be037a15fe046ba8d1e420bc3d..c9d892c9ffc3ccb5afcf2c575dea706731a9236a 100644
--- a/zh-cn/application-dev/ui/js-framework-file.md
+++ b/zh-cn/application-dev/ui/js-framework-file.md
@@ -32,15 +32,15 @@ JS FA应用的JS模块(entry/src/main/js/module)的典型开发目录结构如
 
 - share目录用于配置多个实例共享的资源内容,比如:share中的图片和JSON文件可被default1和default2实例共享。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - i18n和resources是开发保留文件夹,不可重命名。
 >
-> 
+>
 > - 如果share目录中的资源和实例(default)中的资源文件同名且目录一致时,实例中资源的优先级高于share中资源的优先级。
 >
-> 
+>
 > - share目录当前不支持i18n。
-> 
+>
 > - 在使用DevEco Studio进行应用开发时,目录结构中的可选文件夹需要开发者根据实际情况自行创建。
 
 
@@ -56,14 +56,14 @@ JS FA应用的JS模块(entry/src/main/js/module)的典型开发目录结构如
 
 - CSS样式文件中通过url()函数创建&lt;url&gt;数据类型,如:url(/common/xxx.png)。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 当代码文件A需要引用代码文件B时:
-> 
+>
 > - 如果代码文件A和文件B位于同一目录,则代码文件B引用资源文件时可使用相对路径,也可使用绝对路径。
-> 
+>
 > - 如果代码文件A和文件B位于不同目录,则代码文件B引用资源文件时必须使用绝对路径。因为Webpack打包时,代码文件B的目录会发生变化。
 >
-> 
+>
 > - 在js文件中通过数据绑定的方式指定资源文件路径时,必须使用绝对路径。
 
 
@@ -71,16 +71,16 @@ JS FA应用的JS模块(entry/src/main/js/module)的典型开发目录结构如
 
 **表1** 支持的图片格式
 
-| 格式 | 支持的文件类型 |
-| -------- | -------- |
-| BMP | .bmp |
-| GIF | .gif |
-| JPEG | .jpg |
-| PNG | .png |
-| WebP | .webp |
+| 格式   | 支持的文件类型 |
+| ---- | ------- |
+| BMP  | .bmp    |
+| GIF  | .gif    |
+| JPEG | .jpg    |
+| PNG  | .png    |
+| WebP | .webp   |
 
 **表2** 支持的视频格式
 
-| 格式 | 支持的文件类型 |
-| -------- | -------- |
+| 格式                                       | 支持的文件类型       |
+| ---------------------------------------- | ------------- |
 | H.264&nbsp;AVC<br/>Baseline&nbsp;Profile&nbsp;(BP) | .3gp<br/>.mp4 |
diff --git a/zh-cn/application-dev/ui/js-framework-js-file.md b/zh-cn/application-dev/ui/js-framework-js-file.md
index 5f72eb98d3ede8caabcf450f91ef34d7a5eab110..82716c99f1db5cb1b8d5249bdf99521ed95bc4f7 100644
--- a/zh-cn/application-dev/ui/js-framework-js-file.md
+++ b/zh-cn/application-dev/ui/js-framework-js-file.md
@@ -3,7 +3,7 @@
 ## 应用生命周期
 
 每个应用可以在app.js自定义应用级[生命周期](../ui/js-framework-lifecycle.md)的实现逻辑,以下示例仅在生命周期函数中打印对应日志:
-```
+```js
 // app.js
 export default {
     onCreate() {
@@ -18,13 +18,13 @@ export default {
 
 ## 应用对象<sup>6+</sup>
 
-| 属性 | 类型 | 描述 |
-| -------- | -------- | -------- |
+| 属性     | 类型       | 描述                                       |
+| ------ | -------- | ---------------------------------------- |
 | getApp | Function | 提供getApp()全局方法,可以在自定义js文件中获取app.js中暴露的对象。 |
 
 示例如下:
 
-```
+```js
 // app.js
 export default {
     data: {
@@ -39,7 +39,7 @@ export default {
 };
 ```
 
-```
+```js
 // test.js 自定义逻辑代码
 export var appData = getApp().data;
 ```
diff --git a/zh-cn/application-dev/ui/js-framework-js-tag.md b/zh-cn/application-dev/ui/js-framework-js-tag.md
index b08ba57338f2305dd5da16142b8ac33546b75463..1e226db4955413cb50f6b0715788ced6a4bceb70 100644
--- a/zh-cn/application-dev/ui/js-framework-js-tag.md
+++ b/zh-cn/application-dev/ui/js-framework-js-tag.md
@@ -3,14 +3,14 @@
 js标签中包含了实例名称、页面路由和窗口样式信息。
 
 
-| 标签 | 类型 | 默认值 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| name | string | default | 是 | 标识JS实例的名字。 |
-| pages | Array | - | 是 | 路由信息,详见“**[pages](#pages)**”。 |
-| window | Object | - | 否 | 窗口信息,详见“**[window](#window)**”。 |
+| 标签     | 类型     | 默认值     | 必填   | 描述                              |
+| ------ | ------ | ------- | ---- | ------------------------------- |
+| name   | string | default | 是    | 标识JS实例的名字。                      |
+| pages  | Array  | -       | 是    | 路由信息,详见“**[pages](#pages)**”。   |
+| window | Object | -       | 否    | 窗口信息,详见“**[window](#window)**”。 |
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > name、pages和window等标签配置需在配置文件(config.json)中的“js”标签中完成设置。
 
 
@@ -18,7 +18,7 @@ js标签中包含了实例名称、页面路由和窗口样式信息。
 
 定义每个页面的路由信息,每个页面由页面路径和页面名组成,页面的文件名就是页面名。比如:
 
-```
+```json
 {
     ...
     "pages": [
@@ -29,11 +29,11 @@ js标签中包含了实例名称、页面路由和窗口样式信息。
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 
+> **说明:**
+>
 > - pages列表中第一个页面是应用的首页,即entry入口。
 >
-> 
+>
 > - 页面文件名不能使用组件名称,比如:text.hml、button.hml等。
 
 ## window
@@ -43,19 +43,19 @@ window用于定义与显示窗口相关的配置。对于屏幕适配问题,
 - 指定designWidth(屏幕逻辑宽度),所有与大小相关的样式(例如width、font-size)均以designWidth和实际屏幕宽度的比例进行缩放,例如在designWidth为720时,如果设置width为100px时,在实际宽度为1440物理像素的屏幕上,width实际渲染像素为200物理像素。
 
 - 设置autoDesignWidth为true,此时designWidth字段将会被忽略,渲染组件和布局时按屏幕密度进行缩放。屏幕逻辑宽度由设备宽度和屏幕密度自动计算得出,在不同设备上可能不同,请使用相对布局来适配多种设备。例如:在466\*466分辨率,320dpi的设备上,屏幕密度为2(以160dpi为基准),1px等于渲染出的2物理像素。
-  
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+
+  > **说明:**
   > 1. 组件样式中&lt;length&gt;类型的默认值,按屏幕密度进行计算和绘制,如:在屏幕密度为2(以160dpi为基准)的设备上,默认&lt;length&gt;为1px时,设备上实际渲染出2物理像素。
-  > 
+  >
   > 2. autoDesignWidth、designWidth的设置不影响默认值计算方式和绘制结果。
 
-| 属性 | 类型 | 必填 | 缺省值 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| designWidth | number | 否 | 720<br/> | 页面显示设计时的参考值,实际显示效果基于设备宽度与参考值之间的比例进行缩放。 |
-| autoDesignWidth | boolean | 否 | false | 页面设计基准宽度是否自动计算,当设为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。 |
+| 属性              | 类型      | 必填   | 缺省值      | 描述                                       |
+| --------------- | ------- | ---- | -------- | ---------------------------------------- |
+| designWidth     | number  | 否    | 720<br/> | 页面显示设计时的参考值,实际显示效果基于设备宽度与参考值之间的比例进行缩放。   |
+| autoDesignWidth | boolean | 否    | false    | 页面设计基准宽度是否自动计算,当设为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。 |
 
 示例如下:
-```
+```json
 {
     ...
     "window": {
@@ -69,7 +69,7 @@ window用于定义与显示窗口相关的配置。对于屏幕适配问题,
 
 ## 示例
 
-```
+```json
 {
   "app": {
     "bundleName": "com.example.player",
diff --git a/zh-cn/application-dev/ui/js-framework-multiple-languages.md b/zh-cn/application-dev/ui/js-framework-multiple-languages.md
index 19d9df8df27a7dcb43eefc9e4621919ee499394d..0cbe216fb69f7ea6785a725c363d07ca27e5b8ec 100644
--- a/zh-cn/application-dev/ui/js-framework-multiple-languages.md
+++ b/zh-cn/application-dev/ui/js-framework-multiple-languages.md
@@ -29,7 +29,7 @@ language[-script-region].json
 资源文件内容格式如下:
 
 en-US.json
-```
+```json
 {
     "strings": {
         "hello": "Hello world!",
@@ -53,7 +53,7 @@ en-US.json
 
 en-US.json
 
-```
+```json
 {
     "strings": {
         "people": {
@@ -67,7 +67,7 @@ en-US.json
 
 ar-AE.json
 
-```
+```json
 {
     "strings": {
         "people": {
@@ -104,7 +104,7 @@ ar-AE.json
   | params | Array\|Object | 否    | 运行时用来替换占位符的实际内容,占位符分为两种:<br/>- 具名占位符,例如{name}。实际内容必须用Object类型指定,例如:```$t('strings.object', {name:'Hello world'})```。 <br> - 数字占位符,例如{0}。实际内容必须用Array类型指定,例如:```$t('strings.array', [Hello world']``` |
 
 - 简单格式化示例代码
-  ```
+  ```html
   <!-- xxx.hml -->
   <div>
     <!-- 不使用占位符,text中显示“Hello world!” -->
@@ -127,7 +127,7 @@ ar-AE.json
   </div>
   ```
 
-  ```
+  ```js
   // xxx.js
   // 下面为在js文件中的使用方法。
   export default {
@@ -147,7 +147,7 @@ ar-AE.json
   ```
 
 - 单复数格式化方法
-  
+
   表4 单复数格式化
 
   | 属性   | 类型       | 参数          | 必填   | 描述                                       |
@@ -162,7 +162,7 @@ ar-AE.json
   | count | number | 是    | 要表达的值 |
 
 - 单复数格式化示例代码
-  ```
+  ```html
   <!--xxx.hml-->
   <div>
     <!-- 传递数值为0时: "0 people" 阿拉伯语中此处匹配key为zero的词条-->
diff --git a/zh-cn/application-dev/ui/js-framework-resource-restriction.md b/zh-cn/application-dev/ui/js-framework-resource-restriction.md
index 7cdbbe2c52a8711c6160620dc64b3c189145d0d9..2d43d44e821c3c9dd81cac82dfc1086eb1ce6fb5 100644
--- a/zh-cn/application-dev/ui/js-framework-resource-restriction.md
+++ b/zh-cn/application-dev/ui/js-framework-resource-restriction.md
@@ -88,5 +88,5 @@ resources/res-defaults.json:
 </div>
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 资源限定文件中不支持颜色枚举格式。
diff --git a/zh-cn/application-dev/ui/js-framework-syntax-css.md b/zh-cn/application-dev/ui/js-framework-syntax-css.md
index a9937650333f75338257615a82d5c6cb840b8b47..9def147357018c331a88ede5c43bf35f652636cb 100644
--- a/zh-cn/application-dev/ui/js-framework-syntax-css.md
+++ b/zh-cn/application-dev/ui/js-framework-syntax-css.md
@@ -1,6 +1,6 @@
 # CSS语法参考
 
-CSS是描述HML页面结构的样式语言。所有组件均存在系统默认样式,也可在页面CSS样式文件中对组件、页面自定义不同的样式。
+CSS是描述HML页面结构的样式语言。所有组件均存在系统默认样式,也可在页面CSS样式文件中对组件、页面自定义不同的样式。请参考[通用样式](../reference/arkui-js/js-components-common-styles.md)了解基于JS扩展的类Web开发范式支持的组件样式。
 
 ## 尺寸单位
 
@@ -22,14 +22,14 @@ CSS是描述HML页面结构的样式语言。所有组件均存在系统默认
 每个页面目录下存在一个与布局hml文件同名的css文件,用来描述该hml页面中组件的样式,决定组件应该如何显示。
 
 1. 内部样式,支持使用style、class属性来控制组件的样式。例如:
-   ```
+   ```html
    <!-- index.hml -->
    <div class="container">
      <text style="color: red">Hello World</text>
    </div>
    ```
 
-   ```
+   ```css
    /* index.css */
    .container {
      justify-content: center;
@@ -37,14 +37,14 @@ CSS是描述HML页面结构的样式语言。所有组件均存在系统默认
    ```
 
 2. 文件导入,合并外部样式文件。例如,在common目录中定义样式文件style.css,并在index.css文件首行中进行导入:
-   ```
+   ```css
    /* style.css */
    .title {
      font-size: 50px;
    }
    ```
 
-   ```
+   ```css
    /* index.css */
    @import '../../common/style.css';
    .container {
@@ -57,17 +57,17 @@ CSS是描述HML页面结构的样式语言。所有组件均存在系统默认
 
 css选择器用于选择需要添加样式的元素,支持的选择器如下表所示:
 
-| 选择器 | 样例 | 样例描述 |
-| -------- | -------- | -------- |
-| .class | .container | 用于选择class="container"的组件。 |
-| \#id | \#titleId | 用于选择id="titleId"的组件。 |
-| tag | text | 用于选择text组件。 |
-| , | .title,&nbsp;.content | 用于选择class="title"和class="content"的组件。 |
+| 选择器                       | 样例                                    | 样例描述                                     |
+| ------------------------- | ------------------------------------- | ---------------------------------------- |
+| .class                    | .container                            | 用于选择class="container"的组件。                |
+| \#id                      | \#titleId                             | 用于选择id="titleId"的组件。                     |
+| tag                       | text                                  | 用于选择text组件。                              |
+| ,                         | .title,&nbsp;.content                 | 用于选择class="title"和class="content"的组件。    |
 | \#id&nbsp;.class&nbsp;tag | \#containerId&nbsp;.content&nbsp;text | 非严格父子关系的后代选择器,选择具有id="containerId"作为祖先元素,class="content"作为次级祖先元素的所有text组件。如需使用严格的父子关系,可以使用“&gt;”代替空格,如:\#containerId&gt;.content。 |
 
 示例:
 
-```
+```html
 <!-- 页面布局xxx.hml -->
 <div id="containerId" class="container">
   <text id="titleId" class="title">标题</text>
@@ -77,7 +77,7 @@ css选择器用于选择需要添加样式的元素,支持的选择器如下
 </div>
 ```
 
-```
+```css
 /* 页面样式xxx.css */
 /\* 对所有div组件设置样式 \*/
 div {
@@ -124,30 +124,30 @@ css伪类是选择器中的关键字,用于指定要选择元素的特殊状
 
 除了单个伪类之外,还支持伪类的组合,例如,:focus:checked状态可以用来设置元素的focus属性和checked属性同时为true时的样式。支持的单个伪类如下表所示,按照优先级降序排列:
 
-| 名称 | 支持组件 | 描述 |
-| -------- | -------- | -------- |
-| :disabled | 支持disabled属性的组件 | 表示disabled属性变为true时的元素(不支持动画样式的设置)。 |
-| :active | 支持click事件的组件<br/> | 表示被用户激活的元素,如:被用户按下的按钮、被激活的tab-bar页签(不支持动画样式的设置)。 |
-| :waiting | button | 表示waiting属性为true的元素(不支持动画样式的设置)。 |
-| :checked | input[type="checkbox"、type="radio"]、&nbsp;switch | 表示checked属性为true的元素(不支持动画样式的设置)。 |
+| 名称        | 支持组件                                     | 描述                                       |
+| --------- | ---------------------------------------- | ---------------------------------------- |
+| :disabled | 支持disabled属性的组件                          | 表示disabled属性变为true时的元素(不支持动画样式的设置)。      |
+| :active   | 支持click事件的组件<br/>                        | 表示被用户激活的元素,如:被用户按下的按钮、被激活的tab-bar页签(不支持动画样式的设置)。 |
+| :waiting  | button                                   | 表示waiting属性为true的元素(不支持动画样式的设置)。         |
+| :checked  | input[type="checkbox"、type="radio"]、&nbsp;switch | 表示checked属性为true的元素(不支持动画样式的设置)。         |
 
 伪类示例如下,设置按钮的:active伪类可以控制被用户按下时的样式:
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <input type="button" class="button" value="Button"></input>
 </div>
 ```
 
-```
+```css
 /* index.css */
 .button:active {
   background-color: #888888;/*按钮被激活时,背景颜色变为#888888 */
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 针对弹窗类组件及其子元素不支持伪类效果,包括popup、dialog、menu、option、picker
 
 
@@ -156,7 +156,7 @@ css伪类是选择器中的关键字,用于指定要选择元素的特殊状
 预编译提供了利用特有语法生成css的程序,可以提供变量、运算等功能,令开发者更便捷地定义组件样式,目前支持less、sass和scss的预编译。使用样式预编译时,需要将原css文件后缀改为less、sass或scss,如index.css改为index.less、index.sass或index.scss。
 
 - 当前文件使用样式预编译,例如将原index.css改为index.less:
-  ```
+  ```less
   /* index.less */
   /* 定义变量 */
   @colorBackground: #000000;
@@ -166,7 +166,7 @@ css伪类是选择器中的关键字,用于指定要选择元素的特殊状
   ```
 
 - 引用预编译文件,例如common中存在style.scss文件,将原index.css改为index.scss,并引入style.scss:
-  ```
+  ```scss
   /* style.scss */
   /* 定义变量 */
   $colorBackground: #000000;
@@ -174,7 +174,7 @@ css伪类是选择器中的关键字,用于指定要选择元素的特殊状
 
   在index.scss中引用:
 
-  ```
+  ```scss
   /* index.scss */
   /* 引入外部scss文件 */
   @import '../../common/style.scss';
@@ -183,7 +183,7 @@ css伪类是选择器中的关键字,用于指定要选择元素的特殊状
   }
   ```
 
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+  > **说明:**
   > 引用的预编译文件建议放在common目录进行管理。
 
 ## CSS样式继承<sup>6+</sup>
diff --git a/zh-cn/application-dev/ui/js-framework-syntax-hml.md b/zh-cn/application-dev/ui/js-framework-syntax-hml.md
index 2684911c682c245a0c43b739904dd91bf28f1876..be8967e462a13e3a9154c3e6dfbadda5c2721d25 100644
--- a/zh-cn/application-dev/ui/js-framework-syntax-hml.md
+++ b/zh-cn/application-dev/ui/js-framework-syntax-hml.md
@@ -5,7 +5,7 @@ HML(OpenHarmony Markup Language)是一套类HTML的标记语言,通过组
 
 ## 页面结构
 
-```
+```html
 <!-- xxx.hml -->
 <div class="item-container">
   <text class="item-title">Image Show</text>
@@ -18,14 +18,19 @@ HML(OpenHarmony Markup Language)是一套类HTML的标记语言,通过组
 
 ## 数据绑定
 
-```
+```html
 <!-- xxx.hml -->
 <div onclick="changeText">
   <text> {{content[1]}} </text>
 </div>
 ```
-
+```css
+/*xxx.css*/
+.container{
+    margin: 200px;
+}
 ```
+```js
 // xxx.js
 export default {
   data: {
@@ -37,11 +42,12 @@ export default {
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 针对数组内的数据修改,请使用splice方法生效数据绑定变更。
 >
 > - hml文件中的js表达式不支持ES6语法。
 
+![zh-cn_image_0000001118642003](figures/zh-cn_image_0000001118642003.png)
 
 ## 普通事件绑定
 
@@ -54,7 +60,7 @@ export default {
 - "funcName(a,b)":函数参数例如a,b可以是常量,或者是在JS文件中的data中定义的变量(前面不用写this.)。
 
 - 示例
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container">
       <text class="title">{{count}}</text>
@@ -69,7 +75,7 @@ export default {
   </div>
   ```
 
-  ```
+  ```js
   // xxx.js
   export default {
     data: {
@@ -87,7 +93,7 @@ export default {
   };
   ```
 
-  ```
+  ```css
   /* xxx.css */
   .container {
       display: flex;
@@ -120,6 +126,7 @@ export default {
   }
   ```
 
+![zh-cn_image_0000001118642002](figures/zh-cn_image_0000001118642002.gif)
 
 ## 冒泡事件绑定<sup>5+</sup>
 
@@ -128,11 +135,11 @@ export default {
 - 绑定冒泡事件:on:{event}.bubble。on:{event}等价于on:{event}.bubble。
 
 - 绑定并阻止冒泡事件向上冒泡:grab:{event}.bubble。grab:{event}等价于grab:{event}.bubble。
-  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+  > **说明:**
   > 详细冒泡事件说明参见[通用事件](../reference/arkui-js/js-components-common-events.md)章节。
 
 - 示例
-  ```
+  ```html
   <!-- xxx.hml -->
   <div>
      <!-- 使用事件冒泡模式绑定事件回调函数。5+ -->;
@@ -150,7 +157,7 @@ export default {
   </div>
   ```
 
-  ```
+  ```js
   // xxx.js
   export default {
       clickfunc: function(e) {
@@ -162,7 +169,7 @@ export default {
   }
   ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 采用旧写法(onclick)的事件绑定在最小API版本6以下时采用不冒泡处理,在最小API版本为6及6以上时采用冒泡处理。
 
 ## 捕获事件绑定<sup>5+</sup>
@@ -176,7 +183,7 @@ Touch触摸类事件支持捕获,捕获阶段位于冒泡阶段之前,捕获
 - 绑定并阻止事件向下传递:grab:{event}.capture。
 
 - 示例
-  ```
+  ```html
   <!-- xxx.hml -->
   <div>
       <!-- 使用事件捕获模式绑定事件回调函数。5+ -->    
@@ -186,7 +193,7 @@ Touch触摸类事件支持捕获,捕获阶段位于冒泡阶段之前,捕获
   </div>
   ```
 
-  ```
+  ```js
   // xxx.js
   export default {
       touchstartfuc: function(e) {
@@ -198,9 +205,9 @@ Touch触摸类事件支持捕获,捕获阶段位于冒泡阶段之前,捕获
 
 ## 列表渲染
 
-```
+```html
 <!-- xxx.hml -->
-<div class="array-container">
+<div class="array-container" style="flex-direction: column;margin: 200px;">
   <!-- div列表渲染 -->
   <!-- 默认$item代表数组中的元素, $idx代表数组中的元素索引 -->
   <div for="{{array}}" tid="id" onclick="changeText">
@@ -218,7 +225,7 @@ Touch触摸类事件支持捕获,捕获阶段位于冒泡阶段之前,捕获
 
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -245,19 +252,20 @@ tid属性主要用来加速for循环的重渲染,旨在列表中的数据有
 
 - for="(i, v) in array":其中元素索引为i,元素变量为v,遍历数组对象array。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 数组中的每个元素必须存在tid指定的数据属性,否则运行时可能会导致异常。
 >
 > - 数组中被tid指定的属性要保证唯一性,如果不是则会造成性能损耗。比如,示例中只有id和name可以作为tid字段,因为它们属于唯一字段。
 >
 > - tid不支持表达式。
 
+![zh-cn_image_0000001118642001](figures/zh-cn_image_0000001118642001.gif)
 
 ## 条件渲染
 
 条件渲染分为2种:if/elif/else和show。两种写法的区别在于:第一种写法里if为false时,组件不会在vdom中构建,也不会渲染,而第二种写法里show为false时虽然也不渲染,但会在vdom中构建;另外,当使用if/elif/else写法时,节点必须是兄弟节点,否则编译无法通过。实例如下:
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <button class="btn" type="capsule" value="toggleShow" onclick="toggleShow"></button>
@@ -268,7 +276,7 @@ tid属性主要用来加速for循环的重渲染,旨在列表中的数据有
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -281,7 +289,7 @@ tid属性主要用来加速for循环的重渲染,旨在列表中的数据有
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -297,9 +305,11 @@ export default {
 }
 ```
 
+![zh-cn_image_0000001118642004](figures/zh-cn_image_0000001118642004.gif)
+
 优化渲染优化:show方法。当show为true时,节点正常渲染;当为false时,仅仅设置display样式为none。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <button class="btn" type="capsule" value="toggle" onclick="toggle"></button>
@@ -307,7 +317,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -320,7 +330,7 @@ export default {
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -332,14 +342,16 @@ export default {
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 禁止在同一个元素上同时设置for和if属性。
 
+![zh-cn_image_0000001118642005](figures/zh-cn_image_0000001118642005.gif)
+
 ## 逻辑控制块
 
 &lt;block&gt;控制块使得循环渲染和条件渲染变得更加灵活;block在构建时不会被当作真实的节点编译。注意block标签只支持for和if属性。
 
-```
+```html
 <!-- xxx.hml -->
 <list>
   <block for="glasses">
@@ -355,7 +367,7 @@ export default {
 </list>
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -367,11 +379,13 @@ export default {
 }
 ```
 
+![zh-cn_image_0000001118642006](figures/zh-cn_image_0000001118642006.png)
+
 ## 模板引用
 
 HML可以通过element引用模板文件,详细介绍可参考[自定义组件](../reference/arkui-js/js-components-custom-basic-usage.md)章节。
 
-```
+```html
 <!-- template.hml -->
 <div class="item"> 
   <text>Name: {{name}}</text>
@@ -379,7 +393,7 @@ HML可以通过element引用模板文件,详细介绍可参考[自定义组件
 </div>
 ```
 
-```
+```html
 <!-- index.hml -->
 <element name='comp' src='../../common/template.hml'></element>
 <div>
diff --git a/zh-cn/application-dev/ui/js-framework-syntax-js.md b/zh-cn/application-dev/ui/js-framework-syntax-js.md
index ed3b8c30913e680cb7898fb360c76c9a516dfaab..8233a1903b741f09f847ec542912db31c55bf8da 100644
--- a/zh-cn/application-dev/ui/js-framework-syntax-js.md
+++ b/zh-cn/application-dev/ui/js-framework-syntax-js.md
@@ -10,14 +10,14 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
 - 模块声明
   使用import方法引入功能模块:
 
-  ```
+  ```js
   import router from '@system.router';
   ```
 
 - 代码引用
   使用import方法导入js代码:
 
-  ```
+  ```js
   import utils from '../../common/utils.js';
   ```
 
@@ -25,13 +25,13 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
 ## 对象
 
 - 应用对象
-  | 属性 | 类型 | 描述 |
-  | -------- | -------- | -------- |
+  | 属性   | 类型     | 描述                                       |
+  | ---- | ------ | ---------------------------------------- |
   | $def | Object | 使用this.$app.$def获取在app.js中暴露的对象。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;应用对象不支持数据绑定,需主动触发UI更新。 |
 
   示例代码
 
-  ```
+  ```js
   // app.js
   export default {
     onCreate() {
@@ -51,7 +51,7 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
   };
   ```
 
-  ```
+  ```js
   // index.js页面逻辑代码
   export default {
     data: {
@@ -72,26 +72,26 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
   ```
 
 - 页面对象
-  | 属性 | 类型 | 描述 |
-  | -------- | -------- | -------- |
-  | data | Object/Function | 页面的数据模型,类型是对象或者函数,如果类型是函数,返回值必须是对象。属性名不能以$或_开头,不要使用保留字for,&nbsp;if,&nbsp;show,&nbsp;tid。<br/>data与private和public不能重合使用。 |
-  | $refs | Object | 持有注册过ref&nbsp;属性的DOM元素或子组件实例的对象。示例见[获取DOM元素](#获取dom元素)。 |
-  | private | Object | 页面的数据模型,private下的数据属性只能由当前页面修改。 |
-  | public | Object | 页面的数据模型,public下的数据属性的行为与data保持一致。 |
-  | props | Array/Object | props用于组件之间的通信,可以通过&lt;tag&nbsp;xxxx='value'&gt;方式传递给组件;props名称必须用小写,不能以$或_开头,不要使用保留字for,&nbsp;if,&nbsp;show,&nbsp;tid。目前props的数据类型不支持Function。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。 |
-  | computed | Object | 用于在读取或设置进行预先处理,计算属性的结果会被缓存。计算属性名不能以$或_开头,不要使用保留字。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。 |
+  | 属性       | 类型              | 描述                                       |
+  | -------- | --------------- | ---------------------------------------- |
+  | data     | Object/Function | 页面的数据模型,类型是对象或者函数,如果类型是函数,返回值必须是对象。属性名不能以$或_开头,不要使用保留字for,&nbsp;if,&nbsp;show,&nbsp;tid。<br/>data与private和public不能重合使用。 |
+  | $refs    | Object          | 持有注册过ref&nbsp;属性的DOM元素或子组件实例的对象。示例见[获取DOM元素](#获取dom元素)。 |
+  | private  | Object          | 页面的数据模型,private下的数据属性只能由当前页面修改。          |
+  | public   | Object          | 页面的数据模型,public下的数据属性的行为与data保持一致。        |
+  | props    | Array/Object    | props用于组件之间的通信,可以通过&lt;tag&nbsp;xxxx='value'&gt;方式传递给组件;props名称必须用小写,不能以$或_开头,不要使用保留字for,&nbsp;if,&nbsp;show,&nbsp;tid。目前props的数据类型不支持Function。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。 |
+  | computed | Object          | 用于在读取或设置进行预先处理,计算属性的结果会被缓存。计算属性名不能以$或_开头,不要使用保留字。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。 |
 
 ## 方法
 
 - 数据方法
-  | 方法 | 参数 | 描述 |
-  | -------- | -------- | -------- |
-  | $set | key:&nbsp;string,&nbsp;value:&nbsp;any | 添加新的数据属性或者修改已有数据属性。<br/>用法:<br/>this.$set('key',value):添加数据属性。 |
-  | $delete | key:&nbsp;string | 删除数据属性。<br/>用法:<br/>this.$delete('key'):删除数据属性。 |
+  | 方法      | 参数                                     | 描述                                       |
+  | ------- | -------------------------------------- | ---------------------------------------- |
+  | $set    | key:&nbsp;string,&nbsp;value:&nbsp;any | 添加新的数据属性或者修改已有数据属性。<br/>用法:<br/>this.$set('key',value):添加数据属性。 |
+  | $delete | key:&nbsp;string                       | 删除数据属性。<br/>用法:<br/>this.$delete('key'):删除数据属性。 |
 
   示例代码
 
-  ```
+  ```js
   // index.js
   export default {
     data: {
@@ -103,7 +103,7 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
     getAppVersion() {
       this.$set('keyMap.Version', '3.0');
       console.info("keyMap.Version = " + this.keyMap.Version); // keyMap.Version = 3.0
-  
+
       this.$delete('keyMap');
       console.info("keyMap.Version = " + this.keyMap); // log print: keyMap.Version = undefined
     }
@@ -111,37 +111,37 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
   ```
 
 - 公共方法
-  | 方法 | 参数 | 描述 |
-  | -------- | -------- | -------- |
-  | $element | id:&nbsp;string | 获得指定id的组件对象,如果无指定id,则返回根组件对象。示例见[获取DOM元素](#获取dom元素)。<br/>用法:<br/>&lt;div&nbsp;id='xxx'&gt;&lt;/div&gt;<br/>-&nbsp;this.$element('xxx'):获得id为xxx的组件对象。<br/>-&nbsp;this.$element():获得根组件对象。 |
-  | $rootElement | 无 | 获取根组件对象。<br/>用法:this.$rootElement().scrollTo({&nbsp;duration:&nbsp;500,&nbsp;position:&nbsp;300&nbsp;}),&nbsp;页面在500ms内滚动300px。 |
-  | $root | 无 | 获得顶级ViewModel实例。[获取ViewModel](#获取viewmodel)示例。 |
-  | $parent | 无 | 获得父级ViewModel实例。[获取ViewModel](#获取viewmodel)示例。 |
-  | $child | id:&nbsp;string | 获得指定id的子级自定义组件的ViewModel实例。[获取ViewModel](#获取viewmodel)示例。<br/>用法:<br/>this.$child('xxx')&nbsp;:获取id为xxx的子级自定义组件的ViewModel实例。 |
+  | 方法           | 参数              | 描述                                       |
+  | ------------ | --------------- | ---------------------------------------- |
+  | $element     | id:&nbsp;string | 获得指定id的组件对象,如果无指定id,则返回根组件对象。示例见[获取DOM元素](#获取dom元素)。<br/>用法:<br/>&lt;div&nbsp;id='xxx'&gt;&lt;/div&gt;<br/>-&nbsp;this.$element('xxx'):获得id为xxx的组件对象。<br/>-&nbsp;this.$element():获得根组件对象。 |
+  | $rootElement | 无               | 获取根组件对象。<br/>用法:this.$rootElement().scrollTo({&nbsp;duration:&nbsp;500,&nbsp;position:&nbsp;300&nbsp;}),&nbsp;页面在500ms内滚动300px。 |
+  | $root        | 无               | 获得顶级ViewModel实例。[获取ViewModel](#获取viewmodel)示例。 |
+  | $parent      | 无               | 获得父级ViewModel实例。[获取ViewModel](#获取viewmodel)示例。 |
+  | $child       | id:&nbsp;string | 获得指定id的子级自定义组件的ViewModel实例。[获取ViewModel](#获取viewmodel)示例。<br/>用法:<br/>this.$child('xxx')&nbsp;:获取id为xxx的子级自定义组件的ViewModel实例。 |
 
 - 事件方法
-  | 方法 | 参数 | 描述 |
-  | -------- | -------- | -------- |
-  | $watch | data:&nbsp;string,&nbsp;callback:&nbsp;string&nbsp;\|&nbsp;Function | 观察data中的属性变化,如果属性值改变,触发绑定的事件。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。<br/>用法:<br/>this.$watch('key',&nbsp;callback) |
+  | 方法                                       | 参数   | 描述   |
+  | ---------------------------------------- | ---- | ---- |
+  | $watch | data:&nbsp;string,&nbsp;callback:&nbsp;string&nbsp;\|&nbsp;Function | 观察data中的属性变化,如果属性值改变,触发绑定的事件。示例见[自定义组件](../reference/arkui-js/js-components-custom-props.md)。<br/>用法:<br/>this.$watch('key',&nbsp;callback) |      |      |
 
 - 页面方法
-  | 方法 | 参数 | 描述 |
-  | -------- | -------- | -------- |
+  | 方法                    | 参数                               | 描述                              |
+  | --------------------- | -------------------------------- | ------------------------------- |
   | scrollTo<sup>6+</sup> | scrollPageParam: ScrollPageParam | 将页面滚动到目标位置,可以通过ID选择器指定或者滚动距离指定。 |
 
   **表1** ScrollPageParam<sup>6+</sup>
-  
-  | 名称 | 类型 | 默认值 | 描述 |
-  | -------- | -------- | -------- | -------- |
-  | position | number | - | 指定滚动位置。 |
-  | id | string | - | 指定需要滚动到的元素id。 |
-  | duration | number | 300 | 指定滚动时长,单位为毫秒。 |
-  | timingFunction | string | ease | 指定滚动动画曲线,可选值参考<br/>[动画样式animation-timing-function](../reference/arkui-js/js-components-common-animation.md)。 |
-  | complete | ()&nbsp;=&gt;&nbsp;void | - | 指定滚动完成后需要执行的回调函数。 |
+
+  | 名称             | 类型                      | 默认值  | 描述                                       |
+  | -------------- | ----------------------- | ---- | ---------------------------------------- |
+  | position       | number                  | -    | 指定滚动位置。                                  |
+  | id             | string                  | -    | 指定需要滚动到的元素id。                            |
+  | duration       | number                  | 300  | 指定滚动时长,单位为毫秒。                            |
+  | timingFunction | string                  | ease | 指定滚动动画曲线,可选值参考<br/>[动画样式animation-timing-function](../reference/arkui-js/js-components-common-animation.md)。 |
+  | complete       | ()&nbsp;=&gt;&nbsp;void | -    | 指定滚动完成后需要执行的回调函数。                        |
 
   示例:
 
-  ```
+  ```js
   this.$rootElement().scrollTo({position: 0})
   this.$rootElement().scrollTo({id: 'id', duration: 200, timingFunction: 'ease-in', complete: ()=>void})
   ```
@@ -150,14 +150,14 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
 ## 获取DOM元素
 
 1. 通过$refs获取DOM元素
-   ```
+   ```html
    <!-- index.hml -->
    <div class="container">
      <image-animator class="image-player" ref="animator" images="{{images}}" duration="1s" onclick="handleClick"></image-animator>
    </div>
    ```
 
-   ```
+   ```js
    // index.js
    export default {
      data: {
@@ -182,14 +182,14 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
    ```
 
 2. 通过$element获取DOM元素
-   ```
+   ```html
    <!-- index.hml -->
-   <div class="container">
+   <div class="container" style="width:500px;height: 700px; margin: 100px;">
      <image-animator class="image-player" id="animator" images="{{images}}" duration="1s" onclick="handleClick"></image-animator>
    </div>
    ```
 
-   ```
+   ```js
    // index.js
    export default {
      data: {
@@ -213,11 +213,13 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
    };
    ```
 
+![zh-cn_image_0000001118642007](figures/zh-cn_image_0000001118642007.gif)
+
 ## 获取ViewModel
 
 根节点所在页面:
 
-```
+```html
 <!-- root.hml -->
 <element name='parentComp' src='../../common/component/parent/parent.hml'></element>
 <div class="container">
@@ -228,7 +230,7 @@ JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语
 </div>
 ```
 
-```
+```js
 // root.js
 export default {
   data: {
@@ -237,9 +239,11 @@ export default {
 }
 ```
 
+![zh-cn_image_0000001118642008](figures/zh-cn_image_0000001118642008.png)
+
 自定义parent组件:
 
-```
+```html
 <!-- parent.hml -->
 <element name='childComp' src='../child/child.hml'></element>
 <div class="item" onclick="textClicked">
@@ -249,7 +253,7 @@ export default {
 </div>
 ```
 
-```
+```js
 // parent.js
 export default {
   data: {
@@ -268,23 +272,23 @@ export default {
 
 自定义child组件:
 
-```
+```html
 <!-- child.hml -->
 <div class="item" onclick="textClicked">
   <text class="text-style" onclick="childClicked">child component clicked</text>
-  <text class="text-style" if="{{show}}">hello child component</text>
+  <text class="text-style" if="{{isShow}}">hello child component</text>
 </div>
 ```
 
-```
+```js
 // child.js
 export default {
   data: {
-    show: false,
+    isShow: false,
     text: 'I am child component!',
   },
   childClicked () {
-    this.show = !this.show;
+    this.isShow = !this.isShow;
     console.info('child component get parent text');
     console.info('${this.$parent().text}');
     console.info('child component get root text');
@@ -292,3 +296,5 @@ export default {
   },
 }
 ```
+
+![zh-cn_image_0000001118642009](figures/zh-cn_image_0000001118642009.gif)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ts-application-states-apis-environment.md b/zh-cn/application-dev/ui/ts-application-states-apis-environment.md
index b4354b222772bffddb301b77de9b8ef045103ee3..54c3703e6bf98ac25926741fe4fdc18bf25c3bbe 100644
--- a/zh-cn/application-dev/ui/ts-application-states-apis-environment.md
+++ b/zh-cn/application-dev/ui/ts-application-states-apis-environment.md
@@ -3,7 +3,7 @@
 Environment是框架在应用程序启动时创建的单例对象,它为AppStorage提供了一系列应用程序需要的环境状态属性,这些属性描述了应用程序运行的设备环境。Environment及其属性是不可变的,所有属性值类型均为简单类型。如下示例展示了从Environment获取语音环境:
 
 
-```
+```ts
 Environment.EnvProp("accessibilityEnabled", "default");
 var enable = AppStorage.Get("accessibilityEnabled");
 ```
@@ -13,20 +13,20 @@ accessibilityEnabled是Environment提供默认系统变量识别符。首先需
 
 ## Environment接口
 
-| key | 参数 | 返回值 | 说明 | 
-| -------- | -------- | -------- | -------- |
-| EnvProp | key:&nbsp;string,<br/>defaultValue:&nbsp;any | boolean | 关联此系统项到AppStorage中,建议在app启动时使用此接口。如果该属性在AppStorage已存在,返回false。请勿使用AppStorage中的变量,在调用此方法关联环境变量。 | 
-| EnvProps | keys:&nbsp;{<br/>key:&nbsp;string,<br/>defaultValue:&nbsp;any<br/>}[] | void | 关联此系统项数组到AppStorage中。 | 
-| Keys | Array&lt;string&gt; | number | 返回关联的系统项。 | 
+| key      | 参数                                       | 返回值     | 说明                                       |
+| -------- | ---------------------------------------- | ------- | ---------------------------------------- |
+| EnvProp  | key:&nbsp;string,<br/>defaultValue:&nbsp;any | boolean | 关联此系统项到AppStorage中,建议在app启动时使用此接口。如果该属性在AppStorage已存在,返回false。请勿使用AppStorage中的变量,在调用此方法关联环境变量。 |
+| EnvProps | keys:&nbsp;{<br/>key:&nbsp;string,<br/>defaultValue:&nbsp;any<br/>}[] | void    | 关联此系统项数组到AppStorage中。                    |
+| Keys     | Array&lt;string&gt;                      | number  | 返回关联的系统项。                                |
 
 
 ## Environment内置的环境变量
 
-| key | 类型 | 说明 | 
-| -------- | -------- | -------- |
-| accessibilityEnabled | boolean | 无障碍屏幕朗读是否启用。 | 
-| colorMode | ColorMode | 深浅色模式,可选值为:<br/>-&nbsp;ColorMode.LIGHT:浅色模式;<br/>-&nbsp;ColorMode.DARK:深色模式。 | 
-| fontScale | number | 字体大小比例,取值范围为[0.85,&nbsp;1.45]。 | 
-| fontWeightScale | number | 字体权重比例,取值范围为[0.6,&nbsp;1.6]。 | 
-| layoutDirection | LayoutDirection | 布局方向类型,可选值为:<br/>-&nbsp;LayoutDirection.LTR:从左到右;<br/>-&nbsp;LayoutDirection.RTL:从右到左。 | 
-| languageCode | string | 设置当前系统的语言,小写字母,例如zh。 | 
+| key                  | 类型              | 说明                                       |
+| -------------------- | --------------- | ---------------------------------------- |
+| accessibilityEnabled | boolean         | 无障碍屏幕朗读是否启用。                             |
+| colorMode            | ColorMode       | 深浅色模式,可选值为:<br/>-&nbsp;ColorMode.LIGHT:浅色模式;<br/>-&nbsp;ColorMode.DARK:深色模式。 |
+| fontScale            | number          | 字体大小比例,取值范围为[0.85,&nbsp;1.45]。           |
+| fontWeightScale      | number          | 字体权重比例,取值范围为[0.6,&nbsp;1.6]。             |
+| layoutDirection      | LayoutDirection | 布局方向类型,可选值为:<br/>-&nbsp;LayoutDirection.LTR:从左到右;<br/>-&nbsp;LayoutDirection.RTL:从右到左。 |
+| languageCode         | string          | 设置当前系统的语言,小写字母,例如zh。                     |
diff --git a/zh-cn/application-dev/ui/ts-application-states-apis-persistentstorage.md b/zh-cn/application-dev/ui/ts-application-states-apis-persistentstorage.md
index 43a1fe25b4c5a87010b9ac00875f5b747af66439..6c8c29d7ca078f56ae8fccbd14aaf61fb75931d9 100644
--- a/zh-cn/application-dev/ui/ts-application-states-apis-persistentstorage.md
+++ b/zh-cn/application-dev/ui/ts-application-states-apis-persistentstorage.md
@@ -3,21 +3,22 @@
 方舟开发框架通过PersistentStorage类提供了一些静态方法用来管理应用持久化数据,可以将特定标记的持久化数据链接到AppStorage中,并由AppStorage接口访问对应持久化数据,或者通过@StorageLink装饰器来访问对应key的变量。
 
 
-| 方法 | 参数说明 | 返回值 | 定义 | 
-| -------- | -------- | -------- | -------- |
-| PersistProp | key&nbsp;:&nbsp;string<br/>defaultValue:&nbsp;T | void | 关联命名的属性在AppStorage变为持久化数据,赋值覆盖顺序如下:<br/>-&nbsp;首先,如果该属性存在于AppStorage,将Persistent中的数据复写为AppStorage中的属性值。<br/>-&nbsp;其次,Persistent中有此命名的属性,使用Persistent中的属性值。<br/>-&nbsp;最后,以上条件均不满足,则使用defaultValue,不支持null和undefined。 | 
-| DeleteProp | key:&nbsp;string | void | 取消双向数据绑定,该属性值将从持久存储中删除。 | 
-| PersistProps | keys:&nbsp;{<br/>key:&nbsp;string,<br/>defaultValue:&nbsp;any<br/>}[] | void | 关联多个命名的属性绑定。 | 
-| Keys | void | Array&lt;string&gt; | 返回所有持久化属性的标记。 | 
+| 方法           | 参数说明                                     | 返回值                 | 定义                                       |
+| ------------ | ---------------------------------------- | ------------------- | ---------------------------------------- |
+| PersistProp  | key&nbsp;:&nbsp;string<br/>defaultValue:&nbsp;T | void                | 关联命名的属性在AppStorage变为持久化数据,赋值覆盖顺序如下:<br/>-&nbsp;首先,如果该属性存在于AppStorage,将Persistent中的数据复写为AppStorage中的属性值。<br/>-&nbsp;其次,Persistent中有此命名的属性,使用Persistent中的属性值。<br/>-&nbsp;最后,以上条件均不满足,则使用defaultValue,不支持null和undefined。 |
+| DeleteProp   | key:&nbsp;string                         | void                | 取消双向数据绑定,该属性值将从持久存储中删除。                  |
+| PersistProps | keys:&nbsp;{<br/>key:&nbsp;string,<br/>defaultValue:&nbsp;any<br/>}[] | void                | 关联多个命名的属性绑定。                             |
+| Keys         | void                                     | Array&lt;string&gt; | 返回所有持久化属性的标记。                            |
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - PersistProp接口使用时,需要保证输入对应的key应当在AppStorage存在。
-> 
+>
 > - DeleteProp接口使用时,只能对本次启动已经link过的数据生效。
 
 
-```
+```ts
+// xxx.ets
 PersistentStorage.PersistProp("highScore", "0");
 
 @Entry
diff --git a/zh-cn/application-dev/ui/ts-application-states-appstorage.md b/zh-cn/application-dev/ui/ts-application-states-appstorage.md
index 4a2c477f8f873575be97ca9b913ab675c0adf414..6562cc1a9e3fd1b019432026952d5ec616b3c885 100644
--- a/zh-cn/application-dev/ui/ts-application-states-appstorage.md
+++ b/zh-cn/application-dev/ui/ts-application-states-appstorage.md
@@ -14,20 +14,20 @@ AppStorage的选择状态属性可以与不同的数据源或数据接收器同
 
 ## AppStorage接口
 
-| 方法 | 参数说明 | 返回值 | 定义 |
-| -------- | -------- | -------- | -------- |
-| SetAndLink | key:&nbsp;string,<br/>defaultValue:&nbsp;T | @Link | 与Link接口类似,如果当前的key保存于AppStorage,则返回该key对应的value。如果该key未被创建,则创建一个对应default值的Link返回。 |
-| Set | key:&nbsp;string,<br/>newValue:&nbsp;T | void | 对已保存的key值,替换其value值。 |
-| Link | key:&nbsp;string | @Link | 如果存在具有给定键的数据,则返回到此属性的双向数据绑定,该双向绑定意味着变量或者组件对数据的更改将同步到AppStorage,通过AppStorage对数据的修改将同步到变量或者组件。如果具有此键的属性不存在或属性为只读,则返回undefined。 |
-| SetAndProp | propName:&nbsp;string,<br/>defaultValue:&nbsp;S | @Prop | 与Prop接口类似,如果当前的key保存于AppStorage,则返回该key对应的value。如果该key未被创建,则创建一个对应default值的Prop返回。 |
-| Prop | key:&nbsp;string | @Prop | 如果存在具有给定键的属性,则返回此属性的单向数据绑定。该单向绑定意味着只能通过AppStorage将属性的更改同步到变量或者组件。该方法返回的变量为不可变变量,适用于可变和不可变的状态属性,如果具有此键的属性不存在则返回undefined。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;prop方法对应的属性值类型为简单类型。 |
-| SetOrCreate | key:&nbsp;string,<br/>newValue:&nbsp;T | boolean | 如果已存在与给定键名字相同的属性,如果此属性可以被更改则替换其value值且返回true,否则不替换且返回false。<br/>如果不存在存在与给定键名字相同的属性,&nbsp;则创建一个键为key,&nbsp;值为newValue的属性,属性值不支持null和undefined。 |
-| Get | key:&nbsp;string | T或undefined | 通过此接口获取对应key值的value。 |
-| Has | propName:&nbsp;string | boolean | 判断对应键值的属性是否存在。 |
-| Keys | void | array&lt;string&gt; | 返回包含所有键的字符串数组。 |
-| Delete | key:&nbsp;string | boolean | 删除key指定的键值对,如果存在且删除成功返回true,不存在或删除失败返回false。 |
-| Clear | void | boolean | 删除所有的属性,如果当前有状态变量依旧引用此属性,则返回false。 |
-| IsMutable | key:&nbsp;string | boolean | 返回此属性是否存在并且是否可以改变。 |
+| 方法          | 参数说明                                     | 返回值                 | 定义                                       |
+| ----------- | ---------------------------------------- | ------------------- | ---------------------------------------- |
+| SetAndLink  | key:&nbsp;string,<br/>defaultValue:&nbsp;T | @Link               | 与Link接口类似,如果当前的key保存于AppStorage,则返回该key对应的value。如果该key未被创建,则创建一个对应default值的Link返回。 |
+| Set         | key:&nbsp;string,<br/>newValue:&nbsp;T   | void                | 对已保存的key值,替换其value值。                     |
+| Link        | key:&nbsp;string                         | @Link               | 如果存在具有给定键的数据,则返回到此属性的双向数据绑定,该双向绑定意味着变量或者组件对数据的更改将同步到AppStorage,通过AppStorage对数据的修改将同步到变量或者组件。如果具有此键的属性不存在或属性为只读,则返回undefined。 |
+| SetAndProp  | propName:&nbsp;string,<br/>defaultValue:&nbsp;S | @Prop               | 与Prop接口类似,如果当前的key保存于AppStorage,则返回该key对应的value。如果该key未被创建,则创建一个对应default值的Prop返回。 |
+| Prop        | key:&nbsp;string                         | @Prop               | 如果存在具有给定键的属性,则返回此属性的单向数据绑定。该单向绑定意味着只能通过AppStorage将属性的更改同步到变量或者组件。该方法返回的变量为不可变变量,适用于可变和不可变的状态属性,如果具有此键的属性不存在则返回undefined。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;prop方法对应的属性值类型为简单类型。 |
+| SetOrCreate | key:&nbsp;string,<br/>newValue:&nbsp;T   | boolean             | 如果已存在与给定键名字相同的属性,如果此属性可以被更改则替换其value值且返回true,否则不替换且返回false。<br/>如果不存在存在与给定键名字相同的属性,&nbsp;则创建一个键为key,&nbsp;值为newValue的属性,属性值不支持null和undefined。 |
+| Get         | key:&nbsp;string                         | T或undefined         | 通过此接口获取对应key值的value。                     |
+| Has         | propName:&nbsp;string                    | boolean             | 判断对应键值的属性是否存在。                           |
+| Keys        | void                                     | array&lt;string&gt; | 返回包含所有键的字符串数组。                           |
+| Delete      | key:&nbsp;string                         | boolean             | 删除key指定的键值对,如果存在且删除成功返回true,不存在或删除失败返回false。 |
+| Clear       | void                                     | boolean             | 删除所有的属性,如果当前有状态变量依旧引用此属性,则返回false。       |
+| IsMutable   | key:&nbsp;string                         | boolean             | 返回此属性是否存在并且是否可以改变。                       |
 
 
 ## AppStorage与组件同步
@@ -49,7 +49,8 @@ AppStorage的选择状态属性可以与不同的数据源或数据接收器同
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 let varA = AppStorage.Link('varA')
 let envLang = AppStorage.Prop('languageCode')
 
diff --git a/zh-cn/application-dev/ui/ts-attribution-configuration.md b/zh-cn/application-dev/ui/ts-attribution-configuration.md
index a497ba586acbc78f04d4ba8e893a1217ade85e1e..64834f2571e3819a8c3cb5084b42c150f6ff6a2d 100644
--- a/zh-cn/application-dev/ui/ts-attribution-configuration.md
+++ b/zh-cn/application-dev/ui/ts-attribution-configuration.md
@@ -5,14 +5,14 @@
 
 
 - 配置Text组件的字体大小属性:
-  ```
+  ```ts
   Text('123')
       .fontSize(12)
   ```
 
 
 - 使用“.”操作进行链式调用并同时配置组件的多个属性,如下所示:
-  ```
+  ```ts
   Image('a.jpg')
       .alt('error.jpg')    
       .width(100)    
@@ -21,7 +21,7 @@
 
 
 - 除了直接传递常量参数外,还可以传递变量或表达式,如下所示:
-  ```
+  ```ts
   // Size, count, and offset are private variables defined in the component.
   Text('hello')
       .fontSize(this.size)
@@ -32,7 +32,7 @@
 
 
 - 对于内置组件,框架还为其属性预定义了一些枚举类型,供开发人员调用,枚举值可以作为参数传递。枚举类型必须满足参数类型要求,有关特定属性的枚举类型定义的详细信息。可以按以下方式配置Text组件的颜色和字体属性:
-  ```
+  ```ts
   Text('hello')
       .fontSize(20)
       .fontColor(Color.Red)
diff --git a/zh-cn/application-dev/ui/ts-child-component-configuration.md b/zh-cn/application-dev/ui/ts-child-component-configuration.md
index 4c7389173443f3ba02874dff923ed909dccacd06..926d1d1c4f49a35598ef46597382285468fa50fb 100644
--- a/zh-cn/application-dev/ui/ts-child-component-configuration.md
+++ b/zh-cn/application-dev/ui/ts-child-component-configuration.md
@@ -5,7 +5,7 @@
 
 
 - 以下是简单的Column示例:
-  ```
+  ```ts
   Column() {
       Text('Hello')
           .fontSize(100)
@@ -18,7 +18,7 @@
 
 
 - 可以嵌套多个子组件:
-  ```
+  ```ts
   Column() {
       Column() {
           Button() {
diff --git a/zh-cn/application-dev/ui/ts-component-based-builder.md b/zh-cn/application-dev/ui/ts-component-based-builder.md
index fd0d4f5be109fdd4cb43df3f78244b93b08657be..23abd1f50cd482f0f5580d476b2f8ed4a2cc072b 100644
--- a/zh-cn/application-dev/ui/ts-component-based-builder.md
+++ b/zh-cn/application-dev/ui/ts-component-based-builder.md
@@ -4,16 +4,17 @@
 @Builder装饰的方法用于定义组件的声明式UI描述,在一个自定义组件内快速生成多个布局内容。\@Builder装饰方法的功能和语法规范与[build函数](ts-function-build.md)相同。
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct CompA {
-  size : number = 100;
+  size1 : number = 100;
 
   @Builder SquareText(label: string) {
     Text(label)
-      .width(1 * this.size)
-      .height(1 * this.size)
+      .width(1 * this.size1)
+      .height(1 * this.size1)
   }
 
   @Builder RowOfSquareTexts(label1: string, label2: string) {
@@ -21,8 +22,8 @@ struct CompA {
       this.SquareText(label1)
       this.SquareText(label2)
     }
-    .width(2 * this.size)
-    .height(1 * this.size)
+    .width(2 * this.size1)
+    .height(1 * this.size1)
   }
 
   build() {
@@ -32,12 +33,12 @@ struct CompA {
         this.SquareText("B")
         // or as long as tsc is used
       }
-      .width(2 * this.size)
-      .height(1 * this.size)
+      .width(2 * this.size1)
+      .height(1 * this.size1)
       this.RowOfSquareTexts("C", "D")
     }
-    .width(2 * this.size)
-    .height(2 * this.size)
+    .width(2 * this.size1)
+    .height(2 * this.size1)
   }
 }
 ```
@@ -51,7 +52,8 @@ struct CompA {
 ### 参数初始化组件
 通过参数初始化组件时,将@Builder装饰的方法赋值给@BuilderParam修饰的属性,并在自定义组件内调用content属性值。对@BuilderParam修饰的属性进行赋值时不带参数(如:`content: this.specificParam`),则此属性的类型需定义成无返回值的函数(如:`@BuilderParam content: () => void`)。若带参数(如:`callContent: this.specificParam1("111")`),则此属性的类型需定义成any(如:`@BuilderParam callContent: any;`)。
 
-```
+```ts
+// xxx.ets
 @Component
 struct CustomContainer {
   header: string = "";
@@ -100,7 +102,8 @@ struct CustomContainerUser {
 在自定义组件中使用@BuilderParam修饰的属性接收尾随闭包(在初始化自定义组件时,组件名称紧跟一个大括号“{}”形成尾随闭包场景(`CustomComponent(){}`)。开发者可把尾随闭包看做一个容器,向其填充内容,如在闭包内增加组件(`{Column(){Text("content")}`),闭包内语法规范与[build](../ui/ts-function-build.md)一致。此场景下自定义组件内有且仅有一个使用@BuilderParam修饰的属性。
 
 示例:在闭包内增加Column组件并添加点击事件,在新增的Column组件内调用@Builder修饰的specificParam方法,点击Column组件后该改变自定义组件中header的属性值为“changeHeader”。并且在初始化自定义组件时会把尾随闭包的内容赋值给使用@BuilderParam修饰的closer属性。
-```
+```ts
+// xxx.ets
 @Component
 struct CustomContainer {
   header: string = "";
diff --git a/zh-cn/application-dev/ui/ts-component-based-component.md b/zh-cn/application-dev/ui/ts-component-based-component.md
index aaaeeb40622b2918e9af9da73c7106c0fe317bcc..fd7a8f8cab8dbb989e077d5871ee55dc013dfc95 100644
--- a/zh-cn/application-dev/ui/ts-component-based-component.md
+++ b/zh-cn/application-dev/ui/ts-component-based-component.md
@@ -4,27 +4,25 @@
 
 
 - 可组合:允许开发人员组合使用内置组件、其他组件、公共属性和方法;
-
+- 链式调用<sup>9+</sup>:通过链式调用通用属性改变组件样式;
 - 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用;
-
 - 生命周期:生命周期的回调方法可以在组件中配置,用于业务逻辑处理;
-
 - 数据驱动更新:由状态变量的数据驱动,实现UI自动更新。
 
 
-对组件化的深入描述,请参考深入理解组件化。
+对组件化的深入描述,请参考[深入理解组件化](ts-custom-component-initialization.md)。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> - 自定义组件必须定义build方法。
-> 
-> - 自定义组件禁止自定义构造函数。
+>  **说明:**
+>
+>  - 自定义组件必须定义build方法。
+>- 自定义组件禁止自定义构造函数。 
 
 
 如下代码定义了MyComponent组件:
 
 
-```
+```ts
 @Component
 struct MyComponent {
     build() {
@@ -43,7 +41,7 @@ MyComponent的build方法会在初始渲染时执行,此外,当组件中的
 以下代码使用了MyComponent组件:
 
 
-```
+```ts
 @Component
 struct ParentComponent {
     build() {
@@ -60,7 +58,7 @@ struct ParentComponent {
 可以多次使用MyComponent,并在不同的组件中进行重用:
 
 
-```
+```ts
 @Component
 struct ParentComponent {
     build() {
@@ -78,12 +76,46 @@ struct ParentComponent {
         }
     }
 
-    private aboutToAppear() {
+    aboutToAppear() {
         console.log('ParentComponent: Just created, about to become rendered first time.')
     }
 
-    private aboutToDisappear() {
+    aboutToDisappear() {
         console.log('ParentComponent: About to be removed from the UI.')
     }
 }
 ```
+
+可链式调用通用属性,使组件样式多样化:
+
+> **说明:** 从API version 9开始支持。
+>
+> 自定义组件链式调用暂不支持尾随闭包写法(在初始化自定义组件时,组件名称紧跟一个大括号“{}”形成尾随闭包场景`(Inedx(){})`。开发者可把尾随闭包看做一个容器,向其填充内容,如在闭包内增加组件`{Column(){Text("content")}` )。
+
+```ts
+@Entry
+@Component
+struct Index {
+  @State bannerValue: string = 'Hello,world';
+  build() {
+    Column() {
+      Chind({ ChindBannerValue:$bannerValue })
+      .height(60)
+      .width(250)
+      .border({ width:5, color:Color.Red, radius:10, style: BorderStyle.Dotted })
+    }
+  }
+}
+
+@Component
+struct Chind {
+  @Link ChindBannerValue: string;
+  build() {
+    Column() {
+      Text(this.ChindBannerValue)
+      .fontSize(30)
+    }
+  }
+}
+```
+
diff --git a/zh-cn/application-dev/ui/ts-component-based-customdialog.md b/zh-cn/application-dev/ui/ts-component-based-customdialog.md
index 72b8c9cb6b64b2e410caff9dc3934d6cc171c4aa..13082cfa353e705fcd464a21cfba17b7d0b61f21 100644
--- a/zh-cn/application-dev/ui/ts-component-based-customdialog.md
+++ b/zh-cn/application-dev/ui/ts-component-based-customdialog.md
@@ -3,7 +3,7 @@
 @CustomDialog装饰器用于装饰自定义弹窗。
 
 
-```
+```ts
 // custom-dialog-demo.ets
 @CustomDialog
 struct DialogExample {
diff --git a/zh-cn/application-dev/ui/ts-component-based-entry.md b/zh-cn/application-dev/ui/ts-component-based-entry.md
index 24e1ec5772b4acae04f8e6b85b9c38013bb5b9d7..74e81fe05e1681b687a5b6827d6c41bbd903bac4 100644
--- a/zh-cn/application-dev/ui/ts-component-based-entry.md
+++ b/zh-cn/application-dev/ui/ts-component-based-entry.md
@@ -3,14 +3,14 @@
 用@Entry装饰的自定义组件用作页面的默认入口组件,加载页面时,将首先创建并呈现@Entry装饰的自定义组件。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 在单个源文件中,最多可以使用@Entry装饰一个自定义组件。
 
 
 @Entry的用法如下:
 
 
-```
+```ts
 // Only MyComponent decorated by @Entry is rendered and displayed. "hello world" is displayed, but "goodbye" is not displayed.
 @Entry
 @Component
diff --git a/zh-cn/application-dev/ui/ts-component-based-extend.md b/zh-cn/application-dev/ui/ts-component-based-extend.md
index d8f8c63f1a42e41d87082f4efaa1477604026ae7..567f5b7f04aa76809a2785c5ddaee22a34472cfe 100644
--- a/zh-cn/application-dev/ui/ts-component-based-extend.md
+++ b/zh-cn/application-dev/ui/ts-component-based-extend.md
@@ -3,7 +3,8 @@
 @Extend装饰器将新的属性函数添加到内置组件上,如Text、Column、Button等。通过@Extend装饰器可以快速定义并复用组件的自定义样式。
 
 
-```
+```ts
+// xxx.ets
 @Extend(Text) function fancy(fontSize: number) {
   .fontColor(Color.Red)
   .fontSize(fontSize)
@@ -25,5 +26,5 @@ struct FancyUse {
 ```
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > @Extend装饰器不能用在自定义组件struct定义框内。
diff --git a/zh-cn/application-dev/ui/ts-component-based-preview.md b/zh-cn/application-dev/ui/ts-component-based-preview.md
index b7c790de7201fddbf0e6fe68cff729bf06fa9933..574ba980deb2eb261fe82c40ddf06729b66f3bd6 100644
--- a/zh-cn/application-dev/ui/ts-component-based-preview.md
+++ b/zh-cn/application-dev/ui/ts-component-based-preview.md
@@ -3,14 +3,15 @@
 用@Preview装饰的自定义组件可以在DevEco Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 在单个源文件中,最多可以使用10个@Preview装饰自定义组件。
 
 
 @Preview的用法如下:
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MyComponent {
diff --git a/zh-cn/application-dev/ui/ts-component-based-styles.md b/zh-cn/application-dev/ui/ts-component-based-styles.md
index c655aaa5e925637bfc945f992e7fa1867d200c3a..288081d69ff3d0c4a7908c883319d5a4f430f7f0 100644
--- a/zh-cn/application-dev/ui/ts-component-based-styles.md
+++ b/zh-cn/application-dev/ui/ts-component-based-styles.md
@@ -4,10 +4,11 @@
 
 @Styles装饰器将新的属性函数添加到基本组件上,如Text、Column、Button等。当前@Styles仅支持通用属性。通过@Styles装饰器可以快速定义并复用组件的自定义样式。
 
-@Styles可以定义在组件内或组件外,在组件外定义时需带上function关键字,组件内定义时不需要。
+@Styles可以定义在组件内或组件外,在组件外定义时需在方法前添加function关键字,组件内定义时不需要添加function关键字。
 
 
-```
+```ts
+// xxx.ets
 @Styles function globalFancy() {
   .backgroundColor(Color.Red)
 }
@@ -39,7 +40,8 @@ struct FancyUse {
 
 在StateStyles内可以直接调用组件外定义的Styles,但需要通过this关键字调用组件内定义的Styles。
 
-```
+```ts
+// xxx.ets
 @Styles function globalFancy() {
   .width(100)
   .height(100)
diff --git a/zh-cn/application-dev/ui/ts-component-creation-re-initialization.md b/zh-cn/application-dev/ui/ts-component-creation-re-initialization.md
index 1786a365cb4098141f02e8a0f9c2a79993abd91b..2ec686adbe79f83c44d548b31d928c51d7f841f9 100644
--- a/zh-cn/application-dev/ui/ts-component-creation-re-initialization.md
+++ b/zh-cn/application-dev/ui/ts-component-creation-re-initialization.md
@@ -46,7 +46,8 @@
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ParentComp {
diff --git a/zh-cn/application-dev/ui/ts-component-states-link.md b/zh-cn/application-dev/ui/ts-component-states-link.md
index 6855651df3ac977b3237e81666120a6d191e4842..e6aef9bf933352edd56b46dfc8050cc91259b377 100644
--- a/zh-cn/application-dev/ui/ts-component-states-link.md
+++ b/zh-cn/application-dev/ui/ts-component-states-link.md
@@ -14,13 +14,14 @@
 - 创建自定义组件时需要将变量的引用传递给@Link变量,在创建组件的新实例时,必须使用命名参数初始化所有@Link变量。@Link变量可以使用@State变量或@Link变量的引用进行初始化,@State变量可以通过`'$'`操作符创建引用。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) 说明:
+> 说明:
 > @Link变量不能在组件内部进行初始化。
 
 
 ## 简单类型示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct Player {
@@ -53,7 +54,8 @@ struct PlayButton {
 
 ## 复杂类型示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct Parent {
@@ -93,7 +95,8 @@ struct Child {
 
 ## @Link、@State和@Prop结合使用示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ParentView {
diff --git a/zh-cn/application-dev/ui/ts-component-states-prop.md b/zh-cn/application-dev/ui/ts-component-states-prop.md
index e62d23fa7646714a0edfe187920213fe77c7f27c..997bf63e91803ccfef3f03fcad26021bc28968b8 100644
--- a/zh-cn/application-dev/ui/ts-component-states-prop.md
+++ b/zh-cn/application-dev/ui/ts-component-states-prop.md
@@ -16,7 +16,8 @@
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct ParentComponent {
@@ -65,5 +66,5 @@ struct CountDownComponent {
 
 在上述示例中,当按“+1”或“-1”按钮时,父组件状态发生变化,重新执行build方法,此时将创建一个新的CountDownComponent组件。父组件的countDownStartValue状态属性被用于初始化子组件的@Prop变量,当按下子组件的“Try again”按钮时,其@Prop变量count将被更改,CountDownComponent重新渲染。但是count值的更改不会影响父组件的countDownStartValue值。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 
+> **说明:** 
 > 创建新组件实例时,必须初始化其所有@Prop变量。
diff --git a/zh-cn/application-dev/ui/ts-component-states-state.md b/zh-cn/application-dev/ui/ts-component-states-state.md
index 6db720203f0641239c0c4084deca000201db9893..2dd964f10e9d8ac6c85741c57a8ce9051a5ad0cf 100644
--- a/zh-cn/application-dev/ui/ts-component-states-state.md
+++ b/zh-cn/application-dev/ui/ts-component-states-state.md
@@ -18,7 +18,8 @@
 
 ## 简单类型的状态属性示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MyComponent {
@@ -42,8 +43,9 @@ struct MyComponent {
 
 ## 复杂类型的状态变量示例
 
-```
+```ts
 // Customize the status data class.
+// xxx.ets
 class Model {
     value: string
     constructor(value: string) {
@@ -97,6 +99,6 @@ struct MyComponent {
 - EntryComponent中有多个MyComponent组件实例,第一个MyComponent内部状态的更改不会影响第二个MyComponent;
 
 - 创建MyComponent实例时通过变量名给组件内的变量进行初始化,如:
-  ```
+  ```ts
   MyComponent({title: {value: 'Hello, World 2'}, count: 7})
   ```
diff --git a/zh-cn/application-dev/ui/ts-configuration-with-mandatory-parameters.md b/zh-cn/application-dev/ui/ts-configuration-with-mandatory-parameters.md
index 25b4d88fe9516f416b22044a4ce099bc15062df0..17c9aa3f3fa21e28cb37de06095141bde7ec7ddf 100644
--- a/zh-cn/application-dev/ui/ts-configuration-with-mandatory-parameters.md
+++ b/zh-cn/application-dev/ui/ts-configuration-with-mandatory-parameters.md
@@ -8,13 +8,13 @@
 
 
 - Image组件的必选参数src:
-  ```
+  ```ts
   Image('http://xyz/a.jpg')
   ```
 
 
 - Text组件的必选参数content:
-  ```
+  ```ts
   Text('123')
   ```
 
@@ -22,7 +22,7 @@
 变量或表达式也可以用于参数赋值,其中表达式返回的结果类型必须满足参数类型要求。例如,传递变量或表达式来构造Image和Text组件的参数:
 
 
-```
+```ts
 // imagePath, where imageUrl is a private data variable defined in the component.
 Image(this.imagePath)
 Image('http://' + this.imageUrl)
diff --git a/zh-cn/application-dev/ui/ts-custom-component-initialization.md b/zh-cn/application-dev/ui/ts-custom-component-initialization.md
index 0e407eb84db9a6b15f82a9bd24214b2c35b4b9c5..1433542af3203e3a54f6d883ef099b8f5438f52f 100644
--- a/zh-cn/application-dev/ui/ts-custom-component-initialization.md
+++ b/zh-cn/application-dev/ui/ts-custom-component-initialization.md
@@ -4,30 +4,30 @@
 
 
 - 本地初始化,例如:
-  ```
+  ```ts
   @State counter: Counter = new Counter()
   ```
 
 - 在构造组件时通过构造参数初始化,例如:
-  ```
-  MyComponent(counter: $myCounter)
+  ```ts
+  MyComponent({counter: $myCounter})
   ```
 
 
 具体允许哪种方式取决于状态变量的装饰器:
 
 
-| 装饰器类型 | 本地初始化 | 通过构造函数参数初始化 |
-| -------- | -------- | -------- |
-| @State | 必须 | 可选 |
-| @Prop | 禁止 | 必须 |
-| @Link | 禁止 | 必须 |
-| @StorageLink | 必须 | 禁止 |
-| @StorageProp | 必须 | 禁止 |
-| @Provide | 必须 | 可选 |
-| @Consume | 禁止 | 禁止 |
-| @ObjectLink | 禁止 | 必须 |
-| 常规成员变量 | 推荐 | 可选 |
+| 装饰器类型        | 本地初始化 | 通过构造函数参数初始化 |
+| ------------ | ----- | ----------- |
+| @State       | 必须    | 可选          |
+| @Prop        | 禁止    | 必须          |
+| @Link        | 禁止    | 必须          |
+| @StorageLink | 必须    | 禁止          |
+| @StorageProp | 必须    | 禁止          |
+| @Provide     | 必须    | 可选          |
+| @Consume     | 禁止    | 禁止          |
+| @ObjectLink  | 禁止    | 必须          |
+| 常规成员变量       | 推荐    | 可选          |
 
 
 从上表中可以看出:
@@ -42,13 +42,13 @@
 
 
 | 从父组件中的变量(下)到子组件中的变量(右) | @State | @Link | @Prop | 常规变量 |
-| -------- | -------- | -------- | -------- | -------- |
-| @State | 不允许 | 允许 | 允许 | 允许 |
-| @Link | 不允许 | 允许 | 不推荐 | 允许 |
-| @Prop | 不允许 | 不允许 | 允许 | 允许 |
-| @StorageLink | 不允许 | 允许 | 不允许 | 允许 |
-| @StorageProp | 不允许 | 不允许 | 不允许 | 允许 |
-| 常规变量 | 允许 | 不允许 | 不允许 | 允许 |
+| ---------------------- | ------ | ----- | ----- | ---- |
+| @State                 | 不允许    | 允许    | 允许    | 允许   |
+| @Link                  | 不允许    | 允许    | 不推荐   | 允许   |
+| @Prop                  | 不允许    | 不允许   | 允许    | 允许   |
+| @StorageLink           | 不允许    | 允许    | 不允许   | 允许   |
+| @StorageProp           | 不允许    | 不允许   | 不允许   | 允许   |
+| 常规变量                   | 允许     | 不允许   | 不允许   | 允许   |
 
 
 从上表中可以看出:
@@ -69,43 +69,57 @@
 
 ## 示例
 
-```
+```ts
+// xxx.ets
+class ClassA {
+  public a:number
+  constructor(a: number) {
+    this.a = a
+  }
+}
 @Entry
 @Component
 struct Parent {
-    @State parentState: ClassA = new ClassA()
-    build() {
-        Row() {
-            CompA({aState: new ClassA, aLink: $parentState}) // valid
-            CompA({aLink: $parentState})   // valid
-            CompA()                 // invalid, @Link aLink remains uninitialized
-            CompA({aLink: new ClassA}) // invalid, @Link aLink must be a reference ($) to either @State or @Link variable
-        }
+  @State parentState: ClassA = new ClassA(1)
+  
+  build() {
+    Column() {
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aState: new ClassA(2), aLink: $parentState })
+      }
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aLink: $parentState })
+      }
+      Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+        CompA({ aState: new ClassA(3), aLink: $parentState })
+      }
     }
+  }
 }
 
 @Component
 struct CompA {
-    @State aState: boolean = false   // must initialize locally
-    @Link aLink: ClassA              // must not initialize locally
-
-    build() {
-        Row() {
-            CompB({bLink: $aLink,         // valid init a @Link with reference of another @Link,
-                bProp: this.aState})    // valid init a @Prop with value of a @State
-            CompB({aLink: $aState,  // invalid: type mismatch expected ref to ClassA, provided reference to boolean
-                bProp: false})           // valid init a @Prop by constants value
-        }
+  @State aState: any = false
+  @Link aLink: ClassA
+  
+  build() {
+    Column() {
+      CompB({ bLink: $aLink, bProp: this.aState })
+      CompB({ bLink: $aState, bProp: false })
     }
+  }
 }
 
 @Component
 struct CompB {
-    @Link bLink: ClassA = new ClassA()       // invalid, must not initialize locally
-    @Prop bProp: boolean = false      // invalid must not initialize locally
-
-    build() {
-        ...
-    }
+  @Link bLink: ClassA
+  @Prop bProp: boolean
+  
+  build() {
+    Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+      Text(JSON.stringify(this.bLink.a)).fontSize(30)
+      Text(JSON.stringify(this.bProp)).fontSize(30).fontColor(Color.Red)
+     }.margin(10)
+  }
 }
 ```
diff --git a/zh-cn/application-dev/ui/ts-custom-component-lifecycle-callbacks.md b/zh-cn/application-dev/ui/ts-custom-component-lifecycle-callbacks.md
index 9c1cd67d3df25064d8f45d9d63ecdf2b5bf9ae8d..7057e34756c738d113ba3e65bc67d51c86491a20 100644
--- a/zh-cn/application-dev/ui/ts-custom-component-lifecycle-callbacks.md
+++ b/zh-cn/application-dev/ui/ts-custom-component-lifecycle-callbacks.md
@@ -5,18 +5,19 @@
 
 ## 生命周期回调函数定义
 
-| 函数名 | 描述 |
-| -------- | -------- |
-| aboutToAppear | 函数在创建自定义组件的新实例后,在执行其build函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build函数中生效。 |
+| 函数名              | 描述                                       |
+| ---------------- | ---------------------------------------- |
+| aboutToAppear    | 函数在创建自定义组件的新实例后,在执行其build函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build函数中生效。 |
 | aboutToDisappear | 函数在自定义组件析构消耗之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。 |
-| onPageShow | 页面显示时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。 |
-| onPageHide | 页面消失时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。 |
-| onBackPress | 当用户点击返回按钮时触发,仅\@Entry修饰的自定义组件生效。<br/>-&nbsp;返回true表示页面自己处理返回逻辑,&nbsp;不进行页面路由。<br/>-&nbsp;返回false表示使用默认的返回逻辑。<br/>-&nbsp;不返回值会作为false处理。 |
+| onPageShow       | 页面显示时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。 |
+| onPageHide       | 页面消失时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。 |
+| onBackPress      | 当用户点击返回按钮时触发,仅\@Entry修饰的自定义组件生效。<br/>-&nbsp;返回true表示页面自己处理返回逻辑,&nbsp;不进行页面路由。<br/>-&nbsp;返回false表示使用默认的返回逻辑。<br/>-&nbsp;不返回值会作为false处理。 |
 
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct CountDownTimerComponent {
@@ -48,7 +49,7 @@ struct CountDownTimerComponent {
 上述示例表明,生命周期函数对于允许CountDownTimerComponent管理其计时器资源至关重要,类似的函数也包括异步从网络请求加载资源。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 允许在生命周期函数中使用Promise和异步回调函数,比如网络资源获取,定时器设置等;
-> 
+>
 > - 不允许在生命周期函数中使用async await。
diff --git a/zh-cn/application-dev/ui/ts-event-configuration.md b/zh-cn/application-dev/ui/ts-event-configuration.md
index 9ded73d381b0a29f0d6a1115a65a778596dac212..d9c2274dca564d045e687e391ce791e964dd8c00 100644
--- a/zh-cn/application-dev/ui/ts-event-configuration.md
+++ b/zh-cn/application-dev/ui/ts-event-configuration.md
@@ -1,10 +1,10 @@
 # 事件配置
 
-通过事件方法可以配置组件支持的事件。
+通过事件方法可以配置组件支持的事件。从API Version 9开始,可以在回调函数中获取当前component关联的Context,具体用法请参考[在eTS页面中访问Context](../ability/context-userguide.md)。
 
 
 - 使用lambda表达式配置组件的事件方法:
-  ```
+  ```ts
   // Counter is a private data variable defined in the component.
   Button('add counter')
       .onClick(() => {
@@ -14,7 +14,7 @@
 
 
 - 使用匿名函数表达式配置组件的事件方法,要求使用bind,以确保函数体中的this引用包含的组件:
-  ```
+  ```ts
   // Counter is a private data variable defined in the component.
   Button('add counter')
       .onClick(function () {
@@ -24,13 +24,13 @@
 
 
 - 使用组件的成员函数配置组件的事件方法:
-  ```
+  ```ts
   myClickHandler(): void {
       // do something
   }
-  
+
   ...
-  
+
   Button('add counter')
     .onClick(this.myClickHandler)
   ```
diff --git a/zh-cn/application-dev/ui/ts-framework-directory.md b/zh-cn/application-dev/ui/ts-framework-directory.md
index 70c440aaa079787674094c18b2218ac22eb2d186..b4a7b831db8239dede96749a1bd7a19a0419cc23 100644
--- a/zh-cn/application-dev/ui/ts-framework-directory.md
+++ b/zh-cn/application-dev/ui/ts-framework-directory.md
@@ -24,8 +24,8 @@ FA应用的eTS模块(entry/src/main)的典型开发目录结构如下:
 - **common**目录用于存放公共代码文件,比如:自定义组件和公共方法。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 
-> - 资源目录resources文件夹位于src/main下,此目录下资源文件的详细规范以及子目录结构规范参看[资源文件的分类](../quick-start/basic-resource-file-categories.md)。
+> **说明:**
+>
+> - 资源目录resources文件夹位于src/main下,此目录下资源文件的详细规范以及子目录结构规范参看[资源文件的分类](ui-ts-basic-resource-file-categories.md)。
 >
 > - 页面支持导入TypeScript和JavaScript文件。
diff --git a/zh-cn/application-dev/ui/ts-framework-file-access-rules.md b/zh-cn/application-dev/ui/ts-framework-file-access-rules.md
index ffc32f5b1b0b2c7c51fb17f919a5f93ea70a6fef..3d8a3b5709b49781d3aa3d51dafdf38c7ec2a3b3 100644
--- a/zh-cn/application-dev/ui/ts-framework-file-access-rules.md
+++ b/zh-cn/application-dev/ui/ts-framework-file-access-rules.md
@@ -12,7 +12,8 @@
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 import { FoodData, FoodList } from "../common/utils/utils.ets";
 
 @Entry
@@ -33,7 +34,7 @@ struct FoodCategoryList {
 
 导入文件示例:
 
-```
+```ts
 //common/utils/utils.ets
 
 export class FoodData {  
diff --git a/zh-cn/application-dev/ui/ts-framework-js-tag.md b/zh-cn/application-dev/ui/ts-framework-js-tag.md
index c86383841617c4f0157c9a6371f82e9cf54e8da1..fd31748b849bd62ea9379e35ab82ad5b0f7f9423 100644
--- a/zh-cn/application-dev/ui/ts-framework-js-tag.md
+++ b/zh-cn/application-dev/ui/ts-framework-js-tag.md
@@ -3,19 +3,19 @@
 开发框架需要应用的config.json中配置相关的js标签,其中包含了实例名称、页面路由、视图窗口配置信息。
 
 
-| 标签 | 类型 | 默认值 | 必填 | 描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| name | string | default | 是 | 标识ETS实例的名字。 |
-| pages | Array | - | 是 | 页面路由信息,详见[pages](#pages)说明。 |
-| window | Object | - | 否 | 视图窗口配置信息,详见[window](#window)说明。 |
-| mode | Object | - | 否 | 配置Js&nbsp;Component运行类型与语法风格,详见[mode](#mode)说明。 |
+| 标签     | 类型     | 默认值     | 必填   | 描述                                       |
+| ------ | ------ | ------- | ---- | ---------------------------------------- |
+| name   | string | default | 是    | 标识ETS实例的名字。                              |
+| pages  | Array  | -       | 是    | 页面路由信息,详见[pages](#pages)说明。              |
+| window | Object | -       | 否    | 视图窗口配置信息,详见[window](#window)说明。          |
+| mode   | Object | -       | 否    | 配置Js&nbsp;Component运行类型与语法风格,详见[mode](#mode)说明。 |
 
 
 ## pages
 
 定义每个页面入口组件的路由信息,每个页面由页面路径和页面名组成,页面的文件名就是页面名。比如:
 
-```
+```json
 {
     "pages": [
         "pages/index",
@@ -24,11 +24,11 @@
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - pages列表中第一个页面为应用的首页入口。
-> 
+>
 > - 页面文件名不能使用组件名称,比如:Text.ets、Button.ets等。
-> 
+>
 > - 每个页面文件中必须包含[页面入口组件](../ui/ts-component-based-entry.md)(\@Entry装饰)。
 
 
@@ -36,11 +36,11 @@
 
 window用于配置相关视图显示窗口,支持配置如下属性:
 
-| 类型 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| designWidth | - | 配置视图显示的逻辑宽度,缺省默认720(智能穿戴默认454)。视图显示的逻辑宽度决定了lpx像素单位大小,如designWidth配置720时,在视图宽度为1440物理像素时,1lpx为2物理像素。详见[lpx像素单位](../ui/ts-pixel-units.md)说明。 |
+| 类型          | 默认值  | 说明                                       |
+| ----------- | ---- | ---------------------------------------- |
+| designWidth | -    | 配置视图显示的逻辑宽度,缺省默认720(智能穿戴默认454)。视图显示的逻辑宽度决定了lpx像素单位大小,如designWidth配置720时,在视图宽度为1440物理像素时,1lpx为2物理像素。详见[lpx像素单位](../ui/ts-pixel-units.md)说明。 |
 
-```
+```json
 {
   ...
   "window": {
@@ -55,12 +55,12 @@ window用于配置相关视图显示窗口,支持配置如下属性:
 
 mode用于配置JS Component的运行类型与语法风格,支持如下属性:
 
-| 类型 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| type | - | 配置该JS&nbsp;Component的运行类型,可选值为:<br/>-&nbsp;pageAbility:以ability的方式运行该JS&nbsp;Component。<br/>-&nbsp;form:以卡片的方式运行该JS&nbsp;Component。 |
-| syntax | - | 配置该JS&nbsp;Component的语法风格,可选值为:<br/>-&nbsp;hml:以hml/css/js风格进行编写。<br/>-&nbsp;ets:以声明式语法风格进行编写。 |
+| 类型     | 默认值  | 说明                                       |
+| ------ | ---- | ---------------------------------------- |
+| type   | -    | 配置该JS&nbsp;Component的运行类型,可选值为:<br/>-&nbsp;pageAbility:以ability的方式运行该JS&nbsp;Component。<br/>-&nbsp;form:以卡片的方式运行该JS&nbsp;Component。 |
+| syntax | -    | 配置该JS&nbsp;Component的语法风格,可选值为:<br/>-&nbsp;hml:以hml/css/js风格进行编写。<br/>-&nbsp;ets:以声明式语法风格进行编写。 |
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 不支持同时配置type类型为form,syntax类型为ets。
 
 
@@ -68,7 +68,7 @@ mode用于配置JS Component的运行类型与语法风格,支持如下属性
 
 config.json:
 
-```
+```json
 {
     "app": {
         "bundleName": "com.example.player",
diff --git a/zh-cn/application-dev/ui/ts-function-build.md b/zh-cn/application-dev/ui/ts-function-build.md
index 240d262cddc48ade5dcea88a66de7bb284e9b2db..82d6b93c4f563e013c6d3c9b8930d4d4dca34334 100644
--- a/zh-cn/application-dev/ui/ts-function-build.md
+++ b/zh-cn/application-dev/ui/ts-function-build.md
@@ -3,12 +3,12 @@
 build函数满足Builder构造器接口定义,用于定义组件的声明式UI描述。必须遵循上述Builder接口约束,在build方法中以声明式方式进行组合自定义组件或系统内置组件,在组件创建和更新场景中都会调用build方法。
 
 
-```
+```ts
 interface Builder {
     build: () => void
 }
 ```
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > build方法仅支持组合组件,使用渲染控制语法。
diff --git a/zh-cn/application-dev/ui/ts-general-ui-concepts.md b/zh-cn/application-dev/ui/ts-general-ui-concepts.md
index 3b56f1795a766404c5edf60a7822158e29ba80ce..d155cd948d690b9d9fee99f50c0e1d15af18bb46 100644
--- a/zh-cn/application-dev/ui/ts-general-ui-concepts.md
+++ b/zh-cn/application-dev/ui/ts-general-ui-concepts.md
@@ -5,8 +5,9 @@
 
 ## HelloWorld基本示例
 
-```
+```ts
 // An example of displaying Hello World. After you click the button, Hello UI is displayed.
+// xxx.ets
 @Entry
 @Component
 struct Hello {
diff --git a/zh-cn/application-dev/ui/ts-media-resource-type.md b/zh-cn/application-dev/ui/ts-media-resource-type.md
deleted file mode 100644
index 10be60e4aff925fe9be48b23f3d02a613052fa2b..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/ui/ts-media-resource-type.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 媒体资源类型说明
-
-
-
-- 图片资源类型说明
-  | 格式 | 文件后缀名 | 
-  | -------- | -------- |
-  | JPEG | .jpg | 
-  | PNG | .png | 
-  | GIF | .gif | 
-  | SVG | .svg | 
-  | WEBP | .webp | 
-  | BMP | .bmp |
-
-- 音视频资源类型说明
-  | 格式 | 支持的文件类型 | 
-  | -------- | -------- |
-  | H.263 | .3gp <br>.mp4 | 
-  | H.264 AVC <br> Baseline Profile (BP) | .3gp <br>.mp4 | 
-  | MPEG-4 SP | .3gp | 
-  | VP8 | .webm <br> .mkv | 
-
-
diff --git a/zh-cn/application-dev/ui/ts-other-states-consume-provide.md b/zh-cn/application-dev/ui/ts-other-states-consume-provide.md
index 3166aba4f90567802fba7c869b2c0be25d15e94d..020490d649adba95d3dfe17fc0693d9c356e17e5 100644
--- a/zh-cn/application-dev/ui/ts-other-states-consume-provide.md
+++ b/zh-cn/application-dev/ui/ts-other-states-consume-provide.md
@@ -4,28 +4,29 @@ Provide作为数据的提供方,可以更新其子孙节点的数据,并触
 
 表1 @Provide
 
-| 名称 | 说明 |
-| -------- | -------- |
-| 装饰器参数 | 是一个string类型的常量,用于给装饰的变量起别名。如果规定别名,则提供对应别名的数据更新。如果没有,则使用变量名作为别名。推荐使用@Provide("alias")这种形式。 |
-| 同步机制 | @Provide的变量类似@state,可以修改对应变量进行页面重新渲染。也可以修改@Consume装饰的变量,反向修改@State变量。 |
-| 初始值 | 必须制定初始值。 |
+| 名称      | 说明                                       |
+| ------- | ---------------------------------------- |
+| 装饰器参数   | 是一个string类型的常量,用于给装饰的变量起别名。如果规定别名,则提供对应别名的数据更新。如果没有,则使用变量名作为别名。推荐使用@Provide("alias")这种形式。 |
+| 同步机制    | @Provide的变量类似@state,可以修改对应变量进行页面重新渲染。也可以修改@Consume装饰的变量,反向修改@State变量。 |
+| 初始值     | 必须制定初始值。                                 |
 | 页面重渲染场景 | 触发页面渲染的修改:<br/>-&nbsp;基础类型(boolean,string,number)变量的改变;<br/>-&nbsp;@Observed&nbsp;class类型变量及其属性的修改;<br/>-&nbsp;添加,删除,更新数组中的元素。 |
 
 表2 @Consume
 
-| 类型 | 说明 | 
-| -------- | -------- |
-| 初始值 | 不可设置默认值。 | 
+| 类型   | 说明       |
+| ---- | -------- |
+| 初始值  | 不可设置默认值。 |
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 使用@Provide 和@Consume时避免循环引用导致死循环。
 
 
 其他属性说明与Provide一致。
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct CompA {
diff --git a/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md b/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md
index ab86d632486c287664da6a25e227fb5b383e31c5..7a76f0d0c4fa4a308610b992697f2c8b71f4b368 100644
--- a/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md
+++ b/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md
@@ -120,7 +120,7 @@ struct ViewB {
 ### 案例2
 
 ```ts
-//父组件ViewB中的类对象ClassA与子组件ViewA保持数据同步时,可以使用@ObjectLink和@Observed,绑定该数据对象的父组件和其他子组件同步更新
+// 父组件ViewB中的类对象ClassA与子组件ViewA保持数据同步时,可以使用@ObjectLink和@Observed,绑定该数据对象的父组件和其他子组件同步更新
 var nextID: number = 0;
 @Observed
 class ClassA {
diff --git a/zh-cn/application-dev/ui/ts-other-states-watch.md b/zh-cn/application-dev/ui/ts-other-states-watch.md
index 40c9dd2d5047db2e43be2f6d0b6ae130cb42317b..b1a6feb21e920d193d44e5a8b06f8fe79bd20e4a 100644
--- a/zh-cn/application-dev/ui/ts-other-states-watch.md
+++ b/zh-cn/application-dev/ui/ts-other-states-watch.md
@@ -3,7 +3,7 @@
 @Watch用于监听状态变量的变化,语法结构为:
 
 
-```
+```ts
 @State @Watch("onChanged") count : number = 0
 ```
 
@@ -14,7 +14,8 @@
 装饰器@State、@Prop、@Link、@ObjectLink、@Provide、@Consume、@StorageProp以及@StorageLink装饰的变量可以监听其变化。
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct CompA {
diff --git a/zh-cn/application-dev/ui/ts-parameterless-configuration.md b/zh-cn/application-dev/ui/ts-parameterless-configuration.md
index 51a176b90867e515db529c44084c17d756ba71b2..b328a96662d96cced6ec5d664aede1f3e2bdc355 100644
--- a/zh-cn/application-dev/ui/ts-parameterless-configuration.md
+++ b/zh-cn/application-dev/ui/ts-parameterless-configuration.md
@@ -4,7 +4,7 @@
 组件的接口定义不包含必选构造参数,组件后面的“()”中不需要配置任何内容。例如,Divider组件不包含构造参数:
 
 
-```
+```ts
 Column() {
     Text('item 1')
     Divider() // No parameter configuration of the divider component
diff --git a/zh-cn/application-dev/ui/ts-pixel-units.md b/zh-cn/application-dev/ui/ts-pixel-units.md
index 0265bac90e606c4154c19cb85375e0c062ed009e..eda7b03168d427675641436eeeef4cf75fed7de2 100644
--- a/zh-cn/application-dev/ui/ts-pixel-units.md
+++ b/zh-cn/application-dev/ui/ts-pixel-units.md
@@ -3,31 +3,32 @@
 为开发者提供4种像素单位,框架采用vp为基准数据单位。
 
 
-| 名称 | 描述 |
-| -------- | -------- |
-| px | 屏幕物理像素单位。 |
-| vp | 屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素。 |
-| fp | 字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。 |
-| lpx | 视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过[designWidth](../ui/ts-framework-js-tag.md)配置)的比值。如配置designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。 |
+| 名称   | 描述                                       |
+| ---- | ---------------------------------------- |
+| px   | 屏幕物理像素单位。                                |
+| vp   | 屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素。              |
+| fp   | 字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。          |
+| lpx  | 视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过[designWidth](../ui/ts-framework-js-tag.md)配置)的比值。如配置designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。 |
 
 
 ## 像素单位转换
 
 提供其他单位与px单位互相转换的方法。
 
-| 接口 | 描述 |
-| -------- | -------- |
-| vp2px(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将vp单位的数值转换为以px为单位的数值。 |
-| px2vp(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将px单位的数值转换为以vp为单位的数值。 |
-| fp2px(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将fp单位的数值转换为以px为单位的数值。 |
-| px2fp(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将px单位的数值转换为以fp为单位的数值。 |
+| 接口                                       | 描述                     |
+| ---------------------------------------- | ---------------------- |
+| vp2px(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将vp单位的数值转换为以px为单位的数值。  |
+| px2vp(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将px单位的数值转换为以vp为单位的数值。  |
+| fp2px(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将fp单位的数值转换为以px为单位的数值。  |
+| px2fp(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将px单位的数值转换为以fp为单位的数值。  |
 | lpx2px(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将lpx单位的数值转换为以px为单位的数值。 |
 | px2lpx(value&nbsp;:&nbsp;number)&nbsp;:&nbsp;number | 将px单位的数值转换为以lpx为单位的数值。 |
 
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct Example {
@@ -71,3 +72,10 @@ struct Example {
 ```
 
 ![zh-cn_image_0000001169582302](figures/zh-cn_image_0000001169582302.gif)
+
+
+## 相关实例
+
+基于像素转换,有以下相关实例可供参考:
+
+- [像素转换(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/PixelUnitsDemo)
diff --git a/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md b/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md
index a4f390c0b09714c13a1ad5bd109df8c6a298aeef..9ee7f145cefcf6e026edbeb881bd076f75e5aa0b 100644
--- a/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md
+++ b/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md
@@ -1,9 +1,9 @@
 # 循环渲染
 
-开发框架提供循环渲染(ForEach组件)来迭代数组,并为每个数组项创建相应的组件。ForEach定义如下:
+开发框架提供循环渲染(ForEach组件)来迭代数组,并为每个数组项创建相应的组件。当循环渲染的元素较多时,会出现页面加载变慢的情况,出于性能考虑,建议使用[LazyForEach](ts-rending-control-syntax-lazyforeach.md)代替。ForEach定义如下:
 
 
-```
+```ts
 ForEach(
     arr: any[], // Array to be iterated
     itemGenerator: (item: any, index?: number) => void, // child component generator
@@ -20,26 +20,26 @@ ForEach(arr: any[],itemGenerator: (item: any, index?: number) =&gt; void, keyGen
 
 表1 参数说明
 
-| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | 
-| -------- | -------- | -------- | -------- | -------- |
-| arr | any[] | 是 | - | 必须是数组,允许空数组,空数组场景下不会创建子组件。同时允许设置返回值为数组类型的函数,例如arr.slice(1,&nbsp;3),设置的函数不得改变包括数组本身在内的任何状态变量,如Array.splice、Array.sort或Array.reverse这些改变原数组的函数。 | 
-| itemGenerator | (item:&nbsp;any,&nbsp;index?:&nbsp;number)&nbsp;=&gt;&nbsp;void | 是 | - | 生成子组件的lambda函数,为给定数组项生成一个或多个子组件,单个组件和子组件列表必须括在大括号“{....}”中。 | 
-| keyGenerator | (item:&nbsp;any,&nbsp;index?:&nbsp;number)&nbsp;=&gt;&nbsp;string | 否 | - | 匿名参数,用于给定数组项生成唯一且稳定的键值。当子项在数组中的位置更改时,子项的键值不得更改,当数组中的子项被新项替换时,被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的,但是,为了使开发框架能够更好地识别数组更改,提高性能,建议提供。如将数组反向时,如果没有提供键值生成器,则ForEach中的所有节点都将重建。 | 
+| 参数名           | 参数类型                                     | 必填   | 默认值  | 参数描述                                     |
+| ------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- |
+| arr           | any[]                                    | 是    | -    | 必须是数组,允许空数组,空数组场景下不会创建子组件。同时允许设置返回值为数组类型的函数,例如arr.slice(1,&nbsp;3),设置的函数不得改变包括数组本身在内的任何状态变量,如Array.splice、Array.sort或Array.reverse这些改变原数组的函数。 |
+| itemGenerator | (item:&nbsp;any,&nbsp;index?:&nbsp;number)&nbsp;=&gt;&nbsp;void | 是    | -    | 生成子组件的lambda函数,为给定数组项生成一个或多个子组件,单个组件和子组件列表必须括在大括号“{....}”中。 |
+| keyGenerator  | (item:&nbsp;any,&nbsp;index?:&nbsp;number)&nbsp;=&gt;&nbsp;string | 否    | -    | 匿名参数,用于给定数组项生成唯一且稳定的键值。当子项在数组中的位置更改时,子项的键值不得更改,当数组中的子项被新项替换时,被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的,但是,为了使开发框架能够更好地识别数组更改,提高性能,建议提供。如将数组反向时,如果没有提供键值生成器,则ForEach中的所有节点都将重建。 |
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 必须在容器组件内使用;
-> 
+>
 > - 生成的子组件允许在ForEach的父容器组件中,允许子组件生成器函数中包含if/else条件渲染,同时也允许ForEach包含在if/else条件渲染语句中;
-> 
+>
 > - 子项生成器函数的调用顺序不一定和数组中的数据项相同,在开发过程中不要假设子项生成器和键值生成器函数是否执行以及执行顺序。如下示例可能无法正常工作:
->   ```
+>   ```ts
 >   ForEach(anArray, item => {Text(`${++counter}. item.label`)})
 >   ```
-> 
+>
 >   正确的示例如下:
-> 
->   ```
+>
+>   ```ts
 >   ForEach(anArray.map((item1, index1) => { return { i: index1 + 1, data: item1 }; }), 
 >           item => Text(`${item.i}. item.data.label`),
 >           item => item.data.id.toString())
@@ -50,7 +50,8 @@ ForEach(arr: any[],itemGenerator: (item: any, index?: number) =&gt; void, keyGen
 
 简单类型数组示例:
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct MyComponent {
@@ -76,7 +77,8 @@ struct MyComponent {
 ```
 
 复杂类型数组示例:
-```
+```ts
+// xxx.ets
 class Month {
   year: number
   month: number
diff --git a/zh-cn/application-dev/ui/ts-rending-control-syntax-if-else.md b/zh-cn/application-dev/ui/ts-rending-control-syntax-if-else.md
index 8bbe9f8734f6f0d523bb60502fd0fd4efabda4c0..fc496c42b66c5d45e44490b5c8356123f14fafd6 100644
--- a/zh-cn/application-dev/ui/ts-rending-control-syntax-if-else.md
+++ b/zh-cn/application-dev/ui/ts-rending-control-syntax-if-else.md
@@ -3,13 +3,13 @@
 使用if/else进行条件渲染。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - if条件语句可以使用状态变量。
-> 
+>
 > - 使用if可以使子组件的渲染依赖条件语句。
-> 
+>
 > - 必须在容器组件内使用。
-> 
+>
 > - 某些容器组件限制子组件的类型或数量。将if放置在这些组件内时,这些限制将应用于if和else语句内创建的组件。例如,Grid组件的子组件仅支持GridItem组件,在Grid组件内使用if时,则if条件语句内仅允许使用GridItem组件。
 
 
@@ -17,7 +17,7 @@
 
 使用if条件语句:
 
-```
+```ts
 Column() {
     if (this.count > 0) {
         Text('count is positive')
@@ -29,7 +29,7 @@ Column() {
 使用if、else if、else条件语句:
 
 
-```
+```ts
 Column() {
     if (this.count < 0) {
         Text('count is negative')
diff --git a/zh-cn/application-dev/ui/ts-rending-control-syntax-lazyforeach.md b/zh-cn/application-dev/ui/ts-rending-control-syntax-lazyforeach.md
index 1b3604307c78cd28b1c4d14ecb92e39f4b9a7bc5..7c70032decd5629764a49e0998cc12bc6285147a 100644
--- a/zh-cn/application-dev/ui/ts-rending-control-syntax-lazyforeach.md
+++ b/zh-cn/application-dev/ui/ts-rending-control-syntax-lazyforeach.md
@@ -3,7 +3,7 @@
 开发框架提供数据懒加载(LazyForEach组件)从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。LazyForEach定义如下:
 
 
-```
+```ts
 LazyForEach(
     dataSource: IDataSource,             // Data source to be iterated 
     itemGenerator: (item: any) => void,  // child component generator
@@ -36,57 +36,57 @@ LazyForEach(dataSource: IDataSource, itemGenerator: (item: any) =&gt; void, keyG
 
 表1 参数说明
 
-| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
-| -------- | -------- | -------- | -------- | -------- |
-| dataSource | IDataSource | 是 | - | 实现IDataSource接口的对象,需要开发者实现相关接口。 |
-| itemGenerator | (item:&nbsp;any)&nbsp;=&gt;&nbsp;void | 是 | - | 生成子组件的lambda函数,为给定数组项生成一个或多个子组件,单个组件和子组件列表必须括在大括号“{....}”中。 |
-| keyGenerator | (item:&nbsp;any)&nbsp;=&gt;&nbsp;string | 否 | - | 匿名函数,用于键值生成,为给定数组项生成唯一且稳定的键值。当子项在数组中的位置更改时,子项的键值不得更改,当数组中的子项被新项替换时,被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的,但是,为了使开发框架能够更好地识别数组更改,提高性能,建议提供。如将数组反向时,如果没有提供键值生成器,则LazyForEach中的所有节点都将重建。 |
+| 参数名           | 参数类型                                    | 必填   | 默认值  | 参数描述                                     |
+| ------------- | --------------------------------------- | ---- | ---- | ---------------------------------------- |
+| dataSource    | IDataSource                             | 是    | -    | 实现IDataSource接口的对象,需要开发者实现相关接口。          |
+| itemGenerator | (item:&nbsp;any)&nbsp;=&gt;&nbsp;void   | 是    | -    | 生成子组件的lambda函数,为给定数组项生成一个或多个子组件,单个组件和子组件列表必须括在大括号“{....}”中。 |
+| keyGenerator  | (item:&nbsp;any)&nbsp;=&gt;&nbsp;string | 否    | -    | 匿名函数,用于键值生成,为给定数组项生成唯一且稳定的键值。当子项在数组中的位置更改时,子项的键值不得更改,当数组中的子项被新项替换时,被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的,但是,为了使开发框架能够更好地识别数组更改,提高性能,建议提供。如将数组反向时,如果没有提供键值生成器,则LazyForEach中的所有节点都将重建。 |
 
 
 表2 IDataSource类型说明
 
-| 名称 | 描述 |
-| -------- | -------- |
-| totalCount():&nbsp;number | 获取数据总数。 |
-| getData(index:&nbsp;number):&nbsp;any | 获取索引对应的数据。 |
+| 名称                                       | 描述          |
+| ---------------------------------------- | ----------- |
+| totalCount():&nbsp;number                | 获取数据总数。     |
+| getData(index:&nbsp;number):&nbsp;any    | 获取索引对应的数据。  |
 | registerDataChangeListener(listener:DataChangeListener):&nbsp;void | 注册改变数据的控制器。 |
 | unregisterDataChangeListener(listener:DataChangeListener):&nbsp;void | 注销改变数据的控制器。 |
 
 
 表3 DataChangeListener类型说明
 
-| 名称 | 描述 |
-| -------- | -------- |
-| onDataReloaded():&nbsp;void | 重新加载所有数据。 |
-| onDataAdded(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup>| 通知组件index的位置有数据添加。 |
-| onDataMoved(from:&nbsp;number,&nbsp;to:&nbsp;number):&nbsp;void <sup>(deprecated) </sup>| 通知组件数据从from的位置移到to的位置。 |
-| onDataDeleted(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup>| 通知组件index的位置有数据删除。 |
-| onDataChanged(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup>| 通知组件index的位置有数据变化。 |
-| onDataAdd(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据添加。 |
+| 名称                                       | 描述                     |
+| ---------------------------------------- | ---------------------- |
+| onDataReloaded():&nbsp;void              | 重新加载所有数据。              |
+| onDataAdded(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup> | 通知组件index的位置有数据添加。     |
+| onDataMoved(from:&nbsp;number,&nbsp;to:&nbsp;number):&nbsp;void <sup>(deprecated) </sup> | 通知组件数据从from的位置移到to的位置。 |
+| onDataDeleted(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup> | 通知组件index的位置有数据删除。     |
+| onDataChanged(index:&nbsp;number):&nbsp;void <sup>(deprecated) </sup> | 通知组件index的位置有数据变化。     |
+| onDataAdd(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据添加。     |
 | onDataMove(from:&nbsp;number,&nbsp;to:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件数据从from的位置移到to的位置。 |
-| onDataDelete(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据删除。 |
-| onDataChange(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据变化。 |
+| onDataDelete(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据删除。     |
+| onDataChange(index:&nbsp;number):&nbsp;void <sup>8+</sup> | 通知组件index的位置有数据变化。     |
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 数据懒加载必须在容器组件内使用,且仅有List、Grid以及Swiper组件支持数据的懒加载(即只加载可视部分以及其前后少量数据用于缓冲),其他组件仍然是一次加载所有的数据;
-> 
+>
 > - LazyForEach在每次迭代中,必须且只允许创建一个子组件;
-> 
+>
 > - 生成的子组件必须允许在LazyForEach的父容器组件中;
-> 
+>
 > - 允许LazyForEach包含在if/else条件渲染语句中,不允许LazyForEach中出现if/else条件渲染语句;
-> 
+>
 > - 为了高性能渲染,通过DataChangeListener对象的onDataChange方法来更新UI时,仅itemGenerator中的UI描述的组件内使用了状态变量时,才会触发组件刷新;
-> 
+>
 > - 子项生成器函数的调用顺序不一定和数据源中的数据项相同,在开发过程中不要假设子项生成器和键值生成器函数是否执行以及执行顺序。如下示例可能无法正常工作:
->   ```
+>   ```ts
 >   LazyForEach(dataSource, item => {Text(`${++counter}. item.label`)})
 >   ```
-> 
+>
 >   正确的示例如下:
-> 
->   ```
+>
+>   ```ts
 >   LazyForEach(dataSource, 
 >           item => Text(`${item.i}. item.data.label`)),
 >           item => item.data.id.toString())
@@ -95,7 +95,7 @@ LazyForEach(dataSource: IDataSource, itemGenerator: (item: any) =&gt; void, keyG
 
 ## 示例
 
-```
+```ts
 // Basic implementation of IDataSource to handle data listener
 class BasicDataSource implements IDataSource {
     private listeners: DataChangeListener[] = []
diff --git a/zh-cn/application-dev/ui/ts-application-resource-access.md b/zh-cn/application-dev/ui/ts-resource-access.md
similarity index 57%
rename from zh-cn/application-dev/ui/ts-application-resource-access.md
rename to zh-cn/application-dev/ui/ts-resource-access.md
index d12e3fd86fb38f34f06b9528af1d1cf8bd87676c..7858ba7a8adee799dbf99aede2092ce54b21513a 100644
--- a/zh-cn/application-dev/ui/ts-application-resource-access.md
+++ b/zh-cn/application-dev/ui/ts-resource-access.md
@@ -1,61 +1,69 @@
-# 访问应用资源
+# 资源访问
 
 
-## 资源定义
+## 访问应用资源
 
-应用资源由开发者在工程的resources目录中定义,resources目录按照两级目录的形式来组织:
+在工程中,通过```"$r('app.type.name')"```的形式引用应用资源。app代表是应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”,name代表资源命名,由开发者定义资源时确定。
 
-- 一级目录为base目录、限定词目录以及rawfile目录
-  - base目录是默认存在的目录。当应用的resources资源目录中没有与设备状态匹配的限定词目录时,会自动引用该目录中的资源文件。
-  - 限定词目录需要开发者自行创建,其可以由一个或多个表征应用场景或设备特征的限定词组合而成,包括移动国家码和移动网络码、语言、文字、国家或地区、横竖屏、设备类型、颜色模式和屏幕密度等维度,限定词之间通过下划线(_)或者中划线(-)连接。
-  - 在引用rawfile中的资源时,不会根据系统的状态去匹配,rawfile目录中可以直接存放资源文件。
+引用rawfile下资源时使用```"$rawfile('filename')"```的形式,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
 
-- 二级目录为资源目录
-  - 用于存放字符串、颜色、浮点数等基础元素,以及媒体等资源文件。
-  - 当前支持的文件和资源类型如下:
-       | 文件名 | 资源类型 |
-     | -------- | -------- |
-     | color.json | 颜色资源。 |
-     | float.json | 间距、圆角、字体等资源。 |
-     | string.json | 字符串资源。 |
-     | plural.json | 字符串资源。 |
-     | media目录 | 图片资源。 |
+> **说明:**
+> 资源描述符不能拼接使用,仅支持普通字符串如`'app.type.name'`。
 
+在xxx.ets文件中,可以使用在resources目录中定义的资源。
 
-## 资源引用
+```ts
+Text($r('app.string.string_hello'))
+    .fontColor($r('app.color.color_hello'))
+    .fontSize($r('app.float.font_hello'))
+}
 
-在工程中,通过```"$r('app.type.name')"```的形式引用应用资源。app代表是应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”,name代表资源命名,由开发者定义资源时确定。
+Text($r('app.string.string_world'))
+    .fontColor($r('app.color.color_world'))
+    .fontSize($r('app.float.font_world'))
+}
+
+Text($r('app.string.message_arrive', "five of the clock")) // 引用string资源,$r的第二个参数用于替换%s
+    .fontColor($r('app.color.color_hello'))
+    .fontSize($r('app.float.font_hello'))
+}
 
-引用rawfile下资源时使用```"$rawfile('filename')"```的形式,当前$rawfile仅支持Image控件引用图片资源,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
+Text($r('app.plural.eat_apple', 5, 5))       // plural$r引用,第一个指定plural资源,第二个参数指定单复数的数量,此处第三个数字为对%d的替换
+    .fontColor($r('app.color.color_world'))
+    .fontSize($r('app.float.font_world'))
+}
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 资源描述符不能拼接使用,仅支持普通字符串如`'app.type.name'`。
+Image($r('app.media.my_background_image'))  // media资源的$r引用
 
+Image($rawfile('test.png'))                 // rawfile$r引用rawfile目录下图片
 
-## 示例
+Image($rawfile('newDir/newTest.png'))       // rawfile$r引用rawfile目录下图片
+```
+## 访问系统资源
 
-base目录中部分自定义资源如下所示:
+系统资源包含色彩、圆角、字体、间距、字符串及图片等。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用。
 
 
+开发者可以通过```“$r('sys.type.resource_id')”```的形式引用系统资源。sys代表是系统资源;type代表资源类型,可以取“color”、“float”、“string”、“media”;resource_id代表资源id。
+
+```ts
+Text('Hello')
+    .fontColor($r('sys.color.ohos_id_color_emphasize'))
+    .fontSize($r('sys.float.ohos_id_text_size_headline1'))
+    .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
+    .backgroundColor($r('sys.color.ohos_id_color_palette_aux1'))
+Image($r('sys.media.ohos_app_icon'))
+    .border({color: $r('sys.color.ohos_id_color_palette_aux1'), radius: $r('sys.float.ohos_id_corner_radius_button'), width: 2})
+    .margin({top: $r('sys.float.ohos_id_elements_margin_horizontal_m'), bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')})
+    .height(200)
+    .width(300)
 ```
-    resources
-      ├─ base 
-      │    ├─ element 
-      │    │   ├─ color.json
-      │    │   ├─ string.json
-      │    │   └─ float.json
-      │    └─ media
-      │       └─ my_background_image.png
-      └─ rawfile
-           ├─ test.png
-           └─ newDir
-               └─ newTest.png  
-```
+## 资源文件示例
 
 color.json文件的内容如下:
 
 
-```
+```json
 {
     "color": [
         {
@@ -73,7 +81,7 @@ color.json文件的内容如下:
 float.json文件的内容如下:
 
 
-```
+```json
 {
     "float":[
         {
@@ -91,7 +99,7 @@ float.json文件的内容如下:
 string.json文件的内容如下:
 
 
-```
+```json
 {
     "string":[
         {
@@ -113,7 +121,7 @@ string.json文件的内容如下:
 plural.json文件的内容如下:
 
 
-```
+```json
 {
     "plural":[
         {
@@ -133,35 +141,7 @@ plural.json文件的内容如下:
 }
 ```
 
-  在ets文件中,可以使用在resources目录中定义的资源。
-
-```
-Text($r('app.string.string_hello'))
-    .fontColor($r('app.color.color_hello'))
-    .fontSize($r('app.float.font_hello'))
-}
-
-Text($r('app.string.string_world'))
-    .fontColor($r('app.color.color_world'))
-    .fontSize($r('app.float.font_world'))
-}
-
-Text($r('app.string.message_arrive', "five of the clock")) // 引用string资源,$r的第二个参数用于替换%s
-    .fontColor($r('app.color.color_hello'))
-    .fontSize($r('app.float.font_hello'))
-}
-
-Text($r('app.plural.eat_apple', 5, 5))       // plural$r引用,第一个指定plural资源,第二个参数指定单复数的数量,此处第三个数字为对%d的替换
-    .fontColor($r('app.color.color_world'))
-    .fontSize($r('app.float.font_world'))
-}
-
-Image($r('app.media.my_background_image'))  // media资源的$r引用
-
-Image($rawfile('test.png'))                 // rawfile$r引用rawfile目录下图片
-
-Image($rawfile('newDir/newTest.png'))       // rawfile$r引用rawfile目录下图片
-```
+ 
 
 
 ## 相关实例
diff --git a/zh-cn/application-dev/ui/ts-syntactic-sugar.md b/zh-cn/application-dev/ui/ts-syntactic-sugar.md
index bc36b2e26aea9dcc3fd45850a628a80d81940535..5b824e089fdeec1e38552e7737abff9d9d7b954c 100644
--- a/zh-cn/application-dev/ui/ts-syntactic-sugar.md
+++ b/zh-cn/application-dev/ui/ts-syntactic-sugar.md
@@ -9,7 +9,7 @@
 如下示例为@Component和@State的使用,被 @Component装饰的元素具备了组件化的含义,使用@State装饰的变量具备了状态数据的含义。
 
 
-```
+```ts
 @Component
 struct MyComponent {
     @State count: number = 0
@@ -20,7 +20,7 @@ struct MyComponent {
 装饰器定义在同一行上的描述如下:
 
 
-```
+```ts
 @Entry @Component struct MyComponent {
 }
 ```
@@ -29,7 +29,7 @@ struct MyComponent {
 但更推荐定义在多行上:
 
 
-```
+```ts
 @Entry
 @Component
 struct MyComponent {
@@ -39,29 +39,29 @@ struct MyComponent {
 
 ### 支持的装饰器列表
 
-| 装饰器 | 装饰内容 | 说明 |
-| -------- | -------- | -------- |
-| @Component | struct | 结构体在装饰后具有基于组件的能力,需要实现build方法来更新UI。 |
-| @Entry | struct | 组件被装饰后作为页面的入口,页面加载时将被渲染显示。 |
-| @Preview | struct | 用@Preview装饰的自定义组件可以在DevEco&nbsp;Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件。 |
-| @Builder | 方法 | 在@Builder装饰的方法用通过声明式UI描述,可以在一个自定义组件内快速生成多个布局内容。 |
-| @Extend | 方法 | @Extend装饰器将新的属性函数添加到内置组件上,通过@Extend装饰器可以快速定义并复用组件的自定义样式。 |
-| @CustomDialog | struct | @CustomDialog装饰器用于装饰自定义弹窗。 |
-| @State | 基本数据类型,类,数组 | 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。 |
-| @Prop | 基本数据类型 | 修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时,更新当前组件的UI。 |
-| @Link | 基本数据类型,类,数组 | 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。 |
-| @Observed | 类 | @Observed应用于类,表示该类中的数据变更被UI页面管理。 |
-| @ObjectLink | 被@Observed所装饰类的对象 | 装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会更新UI。 |
-| @Consume | 基本数据类型,类,数组 | @Consume装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。 |
-| @Provide | 基本数据类型,类,数组 | @Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。 |
-| @Watch | 被@State,&nbsp;@Prop,&nbsp;@Link,&nbsp;@ObjectLink,&nbsp;<br>@Provide,&nbsp;@Consume,&nbsp;@StorageProp,&nbsp;@StorageLink中任意一个装饰的变量 | @Watch用于监听状态变量的变化,应用可以注册回调方法。 |
+| 装饰器           | 装饰内容                                     | 说明                                       |
+| ------------- | ---------------------------------------- | ---------------------------------------- |
+| @Component    | struct                                   | 结构体在装饰后具有基于组件的能力,需要实现build方法来更新UI。       |
+| @Entry        | struct                                   | 组件被装饰后作为页面的入口,页面加载时将被渲染显示。               |
+| @Preview      | struct                                   | 用@Preview装饰的自定义组件可以在DevEco&nbsp;Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件。 |
+| @Builder      | 方法                                       | 在@Builder装饰的方法里,通过声明式UI描述,可以在一个自定义组件内快速生成多个布局内容。 |
+| @Extend       | 方法                                       | @Extend装饰器将新的属性函数添加到内置组件上,通过@Extend装饰器可以快速定义并复用组件的自定义样式。 |
+| @CustomDialog | struct                                   | @CustomDialog装饰器用于装饰自定义弹窗。               |
+| @State        | 基本数据类型,类,数组                              | 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。        |
+| @Prop         | 基本数据类型                                   | 修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时,更新当前组件的UI。 |
+| @Link         | 基本数据类型,类,数组                              | 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。 |
+| @Observed     | 类                                        | @Observed应用于类,表示该类中的数据变更被UI页面管理。         |
+| @ObjectLink   | 被@Observed所装饰类的对象                        | 装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会更新UI。 |
+| @Consume      | 基本数据类型,类,数组                              | @Consume装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。 |
+| @Provide      | 基本数据类型,类,数组                              | @Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。   |
+| @Watch        | 被@State,&nbsp;@Prop,&nbsp;@Link,&nbsp;@ObjectLink,&nbsp;<br>@Provide,&nbsp;@Consume,&nbsp;@StorageProp,&nbsp;@StorageLink中任意一个装饰的变量 | @Watch用于监听状态变量的变化,应用可以注册回调方法。            |
 
 
 ## 链式调用
 
 允许开发者以“.”链式调用的方式配置UI结构及其属性、事件等。
 
-```
+```ts
 Column() {
     Image('1.jpg')
         .alt('error.jpg')
@@ -75,7 +75,7 @@ Column() {
 
 组件可以基于struct实现,组件不能有继承关系,struct可以比class更加快速的创建和销毁。
 
-```
+```ts
 @Component
 struct MyComponent {
     @State data: string = ''
@@ -90,7 +90,7 @@ struct MyComponent {
 
 对于struct的实例化,可以省略new。
 
-```
+```ts
 // 定义
 @Component
 struct MyComponent {
@@ -124,7 +124,7 @@ TS语言的使用在生成器函数中存在一定的限制:
 
 非法示例:
 
-```
+```ts
 build() {
     let a: number = 1 // invalid: variable declaration not allowed
     Column() {
@@ -137,14 +137,15 @@ build() {
 ```
 
 
-## $$
+## 变量双向绑定
 
 $$支持变量双向绑定,支持简单变量、@State、@Link、@Prop等类型。
 
-当前$$仅支持[bindPopup](../reference/arkui-ts/ts-universal-attributes-popup.md)属性的show参数和@State变量之间的渲染,以及Radio组件的checked属性。
+当前$$仅支持[bindPopup](../reference/arkui-ts/ts-universal-attributes-popup.md)属性的show参数和@State变量之间的渲染,以及Radio组件的checked属性和Refresh组件的refreshing参数。
 
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct bindPopup {
diff --git a/zh-cn/application-dev/ui/ts-syntax-intro.md b/zh-cn/application-dev/ui/ts-syntax-intro.md
index cd2e1b5bc67c5fbc4414a926f31658cb055b7102..129f1d5459c04ed6d859ee5cf50088e564e84206 100644
--- a/zh-cn/application-dev/ui/ts-syntax-intro.md
+++ b/zh-cn/application-dev/ui/ts-syntax-intro.md
@@ -6,7 +6,7 @@
 本节为应用开发人员开发UI提供了参考规范。有关组件的详细信息,请参考组件说明。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 本节所有示例都以TS语言为例,请遵循相应语言的语法要求。
 > 
 > - 示例中的Image、Button、Text、Divider、Row和Column等组件是UI框架中预置的组件控件,仅用于解释UI描述规范。
diff --git a/zh-cn/application-dev/ui/ts-system-resource-access.md b/zh-cn/application-dev/ui/ts-system-resource-access.md
deleted file mode 100644
index ac9a956742e2238a338653c0360078a4c0161c66..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/ui/ts-system-resource-access.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# 访问系统资源
-
-
-系统资源包含色彩、圆角、字体、间距、字符串及图片等。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用。
-
-
-开发者可以通过```“$r('sys.type.resource_id')”```的形式引用系统资源。sys代表是系统资源;type代表资源类型,可以取“color”、“float”、“string”、“media”;resource_id代表资源id。
-
-```
-Text('Hello')
-    .fontColor($r('sys.color.ohos_id_color_emphasize'))
-    .fontSize($r('sys.float.ohos_id_text_size_headline1'))
-    .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
-    .backgroundColor($r('sys.color.ohos_id_color_palette_aux1'))
-Image($r('sys.media.ohos_app_icon'))
-    .border({color: $r('sys.color.ohos_id_color_palette_aux1'), radius: $r('sys.float.ohos_id_corner_radius_button'), width: 2})
-    .margin({top: $r('sys.float.ohos_id_elements_margin_horizontal_m'), bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')})
-    .height(200)
-    .width(300)
-```
diff --git a/zh-cn/application-dev/ui/ts-types.md b/zh-cn/application-dev/ui/ts-types.md
index 665108d5c1e259ed0d058b646033f927349a1226..7fe41c4e11547cc1fa02f4678f4c907518ba93ca 100644
--- a/zh-cn/application-dev/ui/ts-types.md
+++ b/zh-cn/application-dev/ui/ts-types.md
@@ -2,65 +2,65 @@
 
 ## 长度类型
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| Length | string&nbsp;\|&nbsp;number | 用于描述尺寸单位,输入为number类型时,使用vp单位;输入为string类型时,需要显式指定像素单位,如'10px',也可设置百分比字符串,如'100%'。 | 
+| 名称     | 类型定义                       | 描述                                       |
+| ------ | -------------------------- | ---------------------------------------- |
+| Length | string&nbsp;\|&nbsp;number | 用于描述尺寸单位,输入为number类型时,使用vp单位;输入为string类型时,需要显式指定像素单位,如'10px',也可设置百分比字符串,如'100%'。 |
 
 
 ## 角度类型
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| Angle | string&nbsp;\|&nbsp;number | 用于角度单位,输入为number类型时,使用deg单位;输入为string类型时需要显示指定角度单位,支持以下两种角度单位:<br/>-&nbsp;deg:如'100deg'。<br/>-&nbsp;rad:如'3.14rad'。 | 
+| 名称    | 类型定义                       | 描述                                       |
+| ----- | -------------------------- | ---------------------------------------- |
+| Angle | string&nbsp;\|&nbsp;number | 用于角度单位,输入为number类型时,使用deg单位;输入为string类型时需要显示指定角度单位,支持以下两种角度单位:<br/>-&nbsp;deg:如'100deg'。<br/>-&nbsp;rad:如'3.14rad'。 |
 
 
 ## 点类型
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| Point | [Length,&nbsp;Length] | 用于描述点坐标,第一个值为x轴坐标,第二个值为y坐标。 | 
+| 名称    | 类型定义                  | 描述                          |
+| ----- | --------------------- | --------------------------- |
+| Point | [Length,&nbsp;Length] | 用于描述点坐标,第一个值为x轴坐标,第二个值为y坐标。 |
 
 
 ## 颜色类型
 
 组件属性方法使用的颜色Color说明如下:
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| Color | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Color | 用于描述颜色信息,输入为string类型时,使用rgb或者rgba进行描述;输入为number类型是,使用HEX格式颜色;输入类型为Color枚举时,使用颜色枚举值。<br/>-&nbsp;'rgb(255,&nbsp;255,&nbsp;255)'。<br/>-&nbsp;'rgba(255,&nbsp;255,&nbsp;255,&nbsp;1.0)'。<br/>-&nbsp;HEX格式:0xrrggbb,0xaarrggbb,'\#FFFFFF'。<br/>-&nbsp;枚举格式:Color.Black,Color.White等。 | 
+| 名称    | 类型定义                                     | 描述                                       |
+| ----- | ---------------------------------------- | ---------------------------------------- |
+| Color | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Color | 用于描述颜色信息,输入为string类型时,使用rgb或者rgba进行描述;输入为number类型是,使用HEX格式颜色;输入类型为Color枚举时,使用颜色枚举值。<br/>-&nbsp;'rgb(255,&nbsp;255,&nbsp;255)'。<br/>-&nbsp;'rgba(255,&nbsp;255,&nbsp;255,&nbsp;1.0)'。<br/>-&nbsp;HEX格式:0xrrggbb,0xaarrggbb,'\#FFFFFF'。<br/>-&nbsp;枚举格式:Color.Black,Color.White等。 |
 
 
 当前支持的Color颜色枚举:
 
 
-| 颜色名称 | 颜色值 | 颜色示意 | 
-| -------- | -------- | -------- |
-| Black | 0x000000 | ![zh-cn_image_0000001219864153](figures/zh-cn_image_0000001219864153.png) | 
-| Blue | 0x0000ff | ![zh-cn_image_0000001174104404](figures/zh-cn_image_0000001174104404.png) | 
-| Brown | 0xa52a2a | ![zh-cn_image_0000001219744201](figures/zh-cn_image_0000001219744201.png) | 
-| Gray | 0x808080 | ![zh-cn_image_0000001174264376](figures/zh-cn_image_0000001174264376.png) | 
-| Green | 0x008000 | ![zh-cn_image_0000001174422914](figures/zh-cn_image_0000001174422914.png) | 
-| Orange | 0xffa500 | ![zh-cn_image_0000001219662661](figures/zh-cn_image_0000001219662661.png) | 
-| Pink | 0xffc0cb | ![zh-cn_image_0000001219662663](figures/zh-cn_image_0000001219662663.png) | 
-| Red | 0xff0000 | ![zh-cn_image_0000001219662665](figures/zh-cn_image_0000001219662665.png) | 
-| White | 0xffffff | ![zh-cn_image_0000001174582866](figures/zh-cn_image_0000001174582866.png) | 
-| Yellow | 0xffff00 | ![zh-cn_image_0000001174582864](figures/zh-cn_image_0000001174582864.png) | 
+| 颜色名称   | 颜色值      | 颜色示意                                     |
+| ------ | -------- | ---------------------------------------- |
+| Black  | 0x000000 | ![zh-cn_image_0000001219864153](figures/zh-cn_image_0000001219864153.png) |
+| Blue   | 0x0000ff | ![zh-cn_image_0000001174104404](figures/zh-cn_image_0000001174104404.png) |
+| Brown  | 0xa52a2a | ![zh-cn_image_0000001219744201](figures/zh-cn_image_0000001219744201.png) |
+| Gray   | 0x808080 | ![zh-cn_image_0000001174264376](figures/zh-cn_image_0000001174264376.png) |
+| Green  | 0x008000 | ![zh-cn_image_0000001174422914](figures/zh-cn_image_0000001174422914.png) |
+| Orange | 0xffa500 | ![zh-cn_image_0000001219662661](figures/zh-cn_image_0000001219662661.png) |
+| Pink   | 0xffc0cb | ![zh-cn_image_0000001219662663](figures/zh-cn_image_0000001219662663.png) |
+| Red    | 0xff0000 | ![zh-cn_image_0000001219662665](figures/zh-cn_image_0000001219662665.png) |
+| White  | 0xffffff | ![zh-cn_image_0000001174582866](figures/zh-cn_image_0000001174582866.png) |
+| Yellow | 0xffff00 | ![zh-cn_image_0000001174582864](figures/zh-cn_image_0000001174582864.png) |
 
 
 ## ColorStop类型
 
 颜色断点类型,用于描述渐进色颜色断点。
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| ColorStop | [Color,&nbsp;number] | 描述渐进色颜色断点类型,第一个参数为颜色值,第二个参数为0~1之间的比例值。 | 
+| 名称        | 类型定义                 | 描述                                     |
+| --------- | -------------------- | -------------------------------------- |
+| ColorStop | [Color,&nbsp;number] | 描述渐进色颜色断点类型,第一个参数为颜色值,第二个参数为0~1之间的比例值。 |
 
 
 ## Resource类型
 
 资源引用类型,用于设置组件属性的值。
 
-可以通过`$r`或者`$rawfile`创建Resource类型对象,详见[资源访问](ts-application-resource-access.md)。
+可以通过`$r`或者`$rawfile`创建Resource类型对象,详见[资源访问](ts-resource-access.md)。
 
 - `$r('belonging.type.name')`
 
@@ -74,42 +74,43 @@
 
   filename:工程中resources/rawfile目录下的文件名称。
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| Resource | {<br/>readonly&nbsp;id:&nbsp;[number];<br/>readonly&nbsp;type:&nbsp;[number];<br/>readonly&nbsp;params?:&nbsp;any[];<br/>} | - id:资源id值。<br/>- type:资源类型(枚举值)。<br/>- params:可选参数。<br/>通过`$r`或者`$rawfile`创建Resource类型对象,不可以修改Resource中的各属性的值。 | 
+| 名称       | 类型定义                                     | 描述                                       |
+| -------- | ---------------------------------------- | ---------------------------------------- |
+| Resource | {<br/>readonly&nbsp;id:&nbsp;[number];<br/>readonly&nbsp;type:&nbsp;[number];<br/>readonly&nbsp;params?:&nbsp;any[];<br/>} | - id:资源id值。<br/>- type:资源类型(枚举值)。<br/>- params:可选参数。<br/>通过`$r`或者`$rawfile`创建Resource类型对象,不可以修改Resource中的各属性的值。 |
 
 
 ## ResourceStr类型<sup>8+</sup>
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| ResourceStr | string&nbsp;\|&nbsp;Resource| 用于描述资源字符串的类型。 | 
+| 名称          | 类型定义                         | 描述            |
+| ----------- | ---------------------------- | ------------- |
+| ResourceStr | string&nbsp;\|&nbsp;Resource | 用于描述资源字符串的类型。 |
 
 
 ## ResourceColor类型<sup>8+</sup>
 
-| 名称 | 类型定义 | 描述 | 
-| -------- | -------- | -------- |
-| ResourceColor | Color&nbsp;\|&nbsp;number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;Resource | 用于描述资源颜色类型。 | 
+| 名称            | 类型定义                                     | 描述          |
+| ------------- | ---------------------------------------- | ----------- |
+| ResourceColor | Color&nbsp;\|&nbsp;number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;Resource | 用于描述资源颜色类型。 |
 
 ## Font类型<sup>8+</sup>
 
-| 名称 | 类型定义 | 描述 |
-| -------- | -------- | -------- |
+| 名称   | 类型定义                                     | 描述                                       |
+| ---- | ---------------------------------------- | ---------------------------------------- |
 | Font | {<br/>size?: Length;<br/>weight?: <a href="https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md#li24391125115311">FontWeight</a> &nbsp;\| number &nbsp;\| string;<br/>family?: string &nbsp;\| <a href="ts-types.md#Resource">Resource</a>;<br/>style?: <a href="https://gitee.com/superFat/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md#li6906111945316">FontStyle</a>;<br/>} | 设置文本样式:<br/>size: 设置文本尺寸,Length为number类型时,使用fp单位。<br/>weight: 设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。<br/>family: 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial, sans-serif'。<br/>style: 设置文本的字体样式。 |
 
 ## CustomBuilder类型<sup>8+</sup>
 
 组件属性方法参数可使用CustomBuilder类型来自定义UI描述。
 
-| 名称 | 类型定义 | 描述 |
-| -------- | -------- | -------- |
+| 名称            | 类型定义                   | 描述                                       |
+| ------------- | ---------------------- | ---------------------------------------- |
 | CustomBuilder | ()&nbsp;=&gt;&nbsp;any | 这种方法类型必须使用@Builder装饰器修饰。具体用法见[@Builder](ts-component-based-builder.md)。 |
 
 
 ## 示例
 
-```
+```ts
+// xxx.ets
 @Entry
 @Component
 struct dataTypeExample {
diff --git a/zh-cn/application-dev/ui/ts-ui-state-mgmt-concepts.md b/zh-cn/application-dev/ui/ts-ui-state-mgmt-concepts.md
index 9ee8bcd9bb7da37b8480687feab450a2c45ca5ff..4ae1fd27f0dae8477177bcab5eac2acb0dfa1646 100644
--- a/zh-cn/application-dev/ui/ts-ui-state-mgmt-concepts.md
+++ b/zh-cn/application-dev/ui/ts-ui-state-mgmt-concepts.md
@@ -13,7 +13,7 @@
 - @Link:组件依赖于其父组件拥有的某些状态属性,当任何一个组件中的数据更新时,另一个组件的状态都会更新,父子组件重新渲染。
 
 - @Prop:原理类似@Link,但是子组件所做的更改不会同步到父组件上,属于单向传递。
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 状态变量名称不能使用id,如@Prop id:number 。
 
 
diff --git a/zh-cn/application-dev/ui/ui-js-animate-attribute-style.md b/zh-cn/application-dev/ui/ui-js-animate-attribute-style.md
index 070efe2fd5b06eddf290c99ca91a9d24dddb49db..ed82f95ad103deb99230ef795154d7f268b2bac0 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-attribute-style.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-attribute-style.md
@@ -5,7 +5,7 @@
 在关键帧(Keyframes)中动态设置父组件的width和height,实现组件变大缩小。子组件设置scale属性使父子组件同时缩放,再设置opacity实现父子组件的显示与隐藏。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="fade">
@@ -18,7 +18,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   background-color:#F1F3F5;
@@ -86,7 +86,7 @@ text{
 ![zh-cn_image_0000001217168141](figures/zh-cn_image_0000001217168141.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - animation取值不区分先后,duration (动画执行时间)/ delay (动画延迟执行时间)按照出现的先后顺序解析。
-> 
+>
 > - 必须设置animation-duration样式,否则时长为0则不会有动画效果。当设置animation-fill-mode属性为forwards时,组件直接展示最后一帧的样式。
diff --git a/zh-cn/application-dev/ui/ui-js-animate-background-position-style.md b/zh-cn/application-dev/ui/ui-js-animate-background-position-style.md
index c293ca9b6a00b0eb11f0fa65220b0041525a450d..b9fb5bb919b03b5c25a67a96f828c2f663527903 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-background-position-style.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-background-position-style.md
@@ -5,7 +5,7 @@
 通过改变background-position属性(第一个值为X轴的位置,第二个值为Y轴的位置)移动背景图片位置,若背景图位置超出组件则超出部分的背景图不显示。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="content"></div>
@@ -14,7 +14,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   height: 100%;
@@ -80,7 +80,7 @@
 ```
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > background-position仅支持背景图片的移动,不支持背景颜色(background-color)。
 
 ![zh-cn_image_background_img.gif](figures/zh-cn_image_background_img.gif)
diff --git a/zh-cn/application-dev/ui/ui-js-animate-component.md b/zh-cn/application-dev/ui/ui-js-animate-component.md
index 91baf79e1993a469e46f03560e64d79e3c14e0ae..03b8b958ea70a55e62714ef492b18a84430bd3f9 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-component.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-component.md
@@ -7,14 +7,14 @@
 
 通过调用animate方法获得animation对象,animation对象支持动画属性、动画方法和动画事件。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div id="content" class="box" onclick="Show"></div>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -30,7 +30,7 @@
 }
 ```
 
-```
+```js
 /* xxx.js */
 export default {
   data: {
@@ -60,23 +60,23 @@ export default {
 
 ![zh-cn_image_0000001175235138](figures/zh-cn_image_0000001175235138.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
->-   使用animate方法时必须传入Keyframes和Options参数。
->-   多次调用animate方法时,采用replace策略,即最后一次调用时传入的参数生效。
+> **说明:**
+> -   使用animate方法时必须传入Keyframes和Options参数。
+> -   多次调用animate方法时,采用replace策略,即最后一次调用时传入的参数生效。
 
 
 ## 设置动画参数
 
 在获取动画对象后,通过设置参数Keyframes设置动画在组件上的样式。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
    <div id="content" class="box" onclick="Show"></div>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -92,7 +92,7 @@ export default {
 }
 ```
 
-```
+```js
 /* xxx.js */
 export default {
   data: {
@@ -138,21 +138,21 @@ export default {
 
 ![zh-cn_image_0000001174916742](figures/zh-cn_image_0000001174916742.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - translate、scale和rtotate的先后顺序会影响动画效果。
-> 
+>
 > - transformOrigin只对scale和rtotate起作用。
 
 在获取动画对象后,通过设置参数Options来设置动画的属性。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
    <div id="content" class="box" onclick="Show"></div>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -168,7 +168,7 @@ export default {
 }
 ```
 
-```
+```js
 /* xxx.js */
 export default {
   data: {
@@ -206,15 +206,15 @@ export default {
 
 ![zh-cn_image_0000001220396499](figures/zh-cn_image_0000001220396499.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > direction:指定动画的播放模式。
-> 
+>
 > normal: 动画正向循环播放。
-> 
+>
 > reverse: 动画反向循环播放。
-> 
+>
 > alternate:动画交替循环播放,奇数次正向播放,偶数次反向播放。
-> 
+>
 > alternate-reverse:动画反向交替循环播放,奇数次反向播放,偶数次正向播放。
 
 
@@ -222,7 +222,7 @@ export default {
 
 animation对象支持动画事件和动画方法。可以通过添加开始和取消事件,调用播放、暂停、倒放和结束方法实现预期动画。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
  <div id="content" style="width: 350px;height: 350px;margin-top: 100px;background: linear-gradient(pink, purple);">
@@ -238,7 +238,7 @@ animation对象支持动画事件和动画方法。可以通过添加开始和
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -270,8 +270,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data: {
@@ -348,7 +348,7 @@ export default {
 
 通过改变playStat的属性实现动画状态的改变。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div id="content" style="width: 350px;height: 350px;margin-top: 100px;background: linear-gradient(pink, purple);">
@@ -362,7 +362,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -394,8 +394,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-animate-dynamic-effects.md b/zh-cn/application-dev/ui/ui-js-animate-dynamic-effects.md
index 1d56e5a4f7c5e59d14771f7570b1bb91f354efbf..e9d60c5cf47743b28b909dcdfd84d06e837284f2 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-dynamic-effects.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-dynamic-effects.md
@@ -3,7 +3,7 @@
 
 通过设置插值器来实现动画效果。
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 从API Version 6 开始支持。
 
 
@@ -11,7 +11,7 @@
 
 通过createAnimator创建一个动画对象,通过设置参数options来设置动画的属性。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div style="width: 300px;height: 300px;margin-top: 100px;background: linear-gradient(pink, purple);transform: translate({{translateVal}});">
@@ -22,7 +22,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -44,8 +44,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import animator from '@ohos.animator';
 export default {
   data: {
@@ -78,7 +78,7 @@ export default {
 
 ![zh-cn_image_0000001174756776](figures/zh-cn_image_0000001174756776.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 使用createAnimator创建动画对象时必须传入options参数。
 >
 > - begin插值起点,不设置时默认为0。
@@ -90,7 +90,7 @@ export default {
 
 animator支持事件和接口,可以通过添加frame、cancel、repeat、finish事件和调用update、play、pause、cancel、reverse、finish接口自定义动画效果。animator支持的事件和接口具体见动画中的[createAnimator](../reference/apis/js-apis-animator.md)。
 
-```
+```html
 <!-- xxx.hml -->
 <div style="flex-direction: column;align-items: center;width: 100%;height: 100%;">
   <div style="width:200px;height: 200px;margin-top: 100px;background: linear-gradient(#b30d29, #dcac1b);
@@ -113,7 +113,7 @@ animator支持事件和接口,可以通过添加frame、cancel、repeat、fini
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 button{
   width: 200px;
@@ -150,8 +150,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import animator from '@ohos.animator';
 import prompt from '@system.prompt';
 export default {
@@ -234,5 +234,5 @@ export default {
 
 ![zh-cn_image_0000001220635059](figures/zh-cn_image_0000001220635059.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 在调用update接口的过程中可以使用这个接口更新动画参数,入参与createAnimator一致。
diff --git a/zh-cn/application-dev/ui/ui-js-animate-frame.md b/zh-cn/application-dev/ui/ui-js-animate-frame.md
index 8489cfd5f02ddcb2e24f55cfe44c38c94cef9817..ae798d98906c4b40ed443a5b1ed3a43651bb7adb 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-frame.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-frame.md
@@ -6,7 +6,7 @@
 
 runframe在调用requestAnimationFrame时传入带有timestamp参数的回调函数step,将step中的timestamp赋予起始的startTime。当timestamp与startTime的差值小于规定的时间时将再次调用requestAnimationFrame,最终动画将会停止。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <tabs onchange="changecontent">
@@ -25,7 +25,7 @@ runframe在调用requestAnimationFrame时传入带有timestamp参数的回调函
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -39,8 +39,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   data: {
     timer: null,
@@ -95,7 +95,7 @@ export default {
 
 ![zh-cn_image_0000001174756860](figures/zh-cn_image_0000001174756860.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > requestAnimationFrame函数在调用回调函数时在第一个参数位置传入timestamp时间戳,表示requestAnimationFrame开始去执行回调函数的时刻。
 
 
@@ -103,7 +103,7 @@ export default {
 
 通过cancelAnimationFrame函数取消逐帧回调,在调用cancelAnimationFrame函数时取消requestAnimationFrame函数的请求。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <tabs onchange="changecontent">
@@ -122,7 +122,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -136,8 +136,8 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   data: {
     timer: null,
@@ -184,5 +184,5 @@ export default {
 
 ![zh-cn_image_0000001220316655](figures/zh-cn_image_0000001220316655.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 在调用该函数时需传入一个具有标识id的参数。
diff --git a/zh-cn/application-dev/ui/ui-js-animate-svg.md b/zh-cn/application-dev/ui/ui-js-animate-svg.md
index f4e20529894244958e7bfee674e8b4ac3eeb6cff..beed6f9df285dc966a03ea46f63085d962fc16be 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-svg.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-svg.md
@@ -9,7 +9,7 @@
 在Svg的子组件[animate](../reference/arkui-js/js-components-svg-animate.md)中,通过attributeName设置需要进行动效的属性,from设置开始值,to设置结束值。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg>
@@ -37,7 +37,7 @@
 
 ![zh-cn_image_0000001183871404](figures/zh-cn_image_0000001183871404.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 在设置动画变化值时,如果已经设置了values属性,则from和to都失效。
 
 
@@ -46,7 +46,7 @@
 在Svg的子组件[animateMotion](../reference/arkui-js/js-components-svg-animatemotion.md)中,通过path设置动画变化的路径。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg fill="white" width="800" height="900">
@@ -68,7 +68,7 @@
 在Svg的子组件[animateMotion](../reference/arkui-js/js-components-svg-animatetransform.md)中,通过attributeName绑定transform属性,type设置动画类型,from设置开始值,to设置结束值。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container" style="">
   <svg>
@@ -94,7 +94,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
diff --git a/zh-cn/application-dev/ui/ui-js-animate-transform.md b/zh-cn/application-dev/ui/ui-js-animate-transform.md
index 4a0dfed33828eefabc90d42c648b875b4122ae0e..4c642a9325fae074ba5a18b6e8d4c87b9a3c6106 100644
--- a/zh-cn/application-dev/ui/ui-js-animate-transform.md
+++ b/zh-cn/application-dev/ui/ui-js-animate-transform.md
@@ -7,7 +7,7 @@
 
 创建一个正方形并旋转90°变成菱形,并用下方的长方形把菱形下半部分遮盖形成屋顶,设置长方形translate属性值为(150px,-150px)确定坐标位置形成门,再使用position属性使横纵线跟随父组件(正方形)移动到指定坐标位置,接着设置scale属性使父子组件一起变大形成窗户大小,最后使用skewX属性使组件倾斜后设置坐标translate(200px,-830px)得到烟囱。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="top"></div>
@@ -22,7 +22,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -96,7 +96,7 @@
 
 小球下降动画,改变小球的Y轴坐标实现小球下落,在下一段是时间内减小Y轴坐标实现小球回弹,让每次回弹的高度逐次减小直至回弹高度为0,就模拟出了小球下降的动画。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="circle"></div>
@@ -104,7 +104,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -175,7 +175,7 @@
 
 设置不同的原点位置(transform-origin)改变元素所围绕的旋转中心。rotate3d属性前三个参数值分别为X轴、Y轴、Z轴的旋转向量,第四个值为旋转角度,旋转向角度可为负值,负值则代表旋转方向为逆时针方向。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="rotate">
@@ -194,7 +194,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -301,7 +301,7 @@
 
 ![zh-cn_image_0000001220316305](figures/zh-cn_image_0000001220316305.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > transform-origin变换对象的原点位置,如果仅设置一个值,另一个值为50%,若设置两个值第一个值表示X轴的位置,第二个值表示Y轴的位置。
 
 
@@ -311,7 +311,7 @@
 
 设置sacle3d中X轴、Y轴、Z轴的缩放参数实现动画。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="circle">
@@ -326,7 +326,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -414,7 +414,7 @@ text{
 
 ![zh-cn_image_0000001220396251](figures/zh-cn_image_0000001220396251.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 设置transform属性值后,子元素会跟着父元素一起改变,若只改变父元素其他属性值时(如:height,width),子元素不会改变。
 
 
@@ -422,14 +422,14 @@ text{
 
 matrix是一个入参为六个值的矩阵,6个值分别代表:scaleX, skewY, skewX, scaleY, translateX, translateY。下面示例中设置 了matrix属性为matrix(1,0,0,1,0,200)使组件移动和倾斜。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="rect"> </div>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   background-color:#F1F3F5;
@@ -465,7 +465,7 @@ matrix是一个入参为六个值的矩阵,6个值分别代表:scaleX, skewY
 
 transform可以设置多个值并且多个值可同时设置,下面案例中展示同时设置缩放(scale),平移(translate),旋转(rotate)属性时的动画效果。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="rect1"></div>
@@ -476,7 +476,7 @@ transform可以设置多个值并且多个值可同时设置,下面案例中
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction:column;
@@ -568,11 +568,11 @@ transform可以设置多个值并且多个值可同时设置,下面案例中
 
 ![zh-cn_image_0000001220554911](figures/zh-cn_image_0000001220554911.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 当设置多个transform时,后续的transform值会把前面的覆盖掉。若想同时使用多个动画样式可用复合写法,例:transform: scale(1) rotate(0) translate(0,0)。
-> 
+>
 > - transform进行复合写法时,变化样式内多个样式值顺序的不同会呈现不一样的动画效果。
-> 
+>
 > - transform属性设置的样式值要一一对应,若前后不对应,则该动画不生效。若设置多个样式值则只会呈现出已对应值的动画效果。
 
 
@@ -586,6 +586,8 @@ transform可以设置多个值并且多个值可同时设置,下面案例中
 
 - [`Clock`:时钟(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/common/Clock)
 
-- [动画样式(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/AnimationDemo)
+- [`JsAnimator`:动画(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsAnimation)
+
+- [动画样式(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/AnimationDemo)
 
-- [图片常见操作](https://gitee.com/openharmony/codelabs/tree/master/Media/ImageJsDemo)
+- [图片常见操作(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Media/ImageJsDemo)
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-animation.md b/zh-cn/application-dev/ui/ui-js-building-ui-animation.md
index eeecc674d8f2242e81e35cd0709bb812d89515dc..03c99a2899ceea6680d97a434e3e0d527a8b7ef5 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-animation.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-animation.md
@@ -15,7 +15,7 @@
 
 具体的使用示例如下,更多信息请参考[组件方法](../reference/arkui-js/js-components-common-methods.md)。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <text class="translate">hello</text>
@@ -24,7 +24,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -78,7 +78,7 @@
 
 animation样式需要在css文件中先定义keyframe,在keyframe中设置动画的过渡效果,并通过一个样式类型在hml文件中调用。animation-name的使用示例如下:
 
-```
+```html
 <!-- xxx.hml -->
 <div class="item-container">
   <text class="header">animation-name</text>
@@ -92,7 +92,7 @@ animation样式需要在css文件中先定义keyframe,在keyframe中设置动
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .item-container {
   margin-right: 60px;
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-component.md b/zh-cn/application-dev/ui/ui-js-building-ui-component.md
index d57c8c901cca78e1cf07c9b13a11ebff581081d7..e190e0b5bed9f96258d5dfedc969f3c0abfb4732 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-component.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-component.md
@@ -41,6 +41,6 @@
 
 - [`JsVideo`:视频播放(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/media/JsVideo)
 
-- [rating(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/RatingApplication)
+- [rating(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/RatingApplication)
 
-- [简易视频播放器](https://gitee.com/openharmony/codelabs/tree/master/Media/VideoOpenHarmony)
+- [简易视频播放器(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Media/VideoOpenHarmony)
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-event.md b/zh-cn/application-dev/ui/ui-js-building-ui-event.md
index 93752ddd5cce56023faa9d10a306fb22087ed1b5..9c09ebb86f3b0a6177307deb7d7cd6b5ebca2bc2 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-event.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-event.md
@@ -21,7 +21,7 @@ longpress:用户在相同位置长时间保持与屏幕接触。
 
 具体的使用示例如下:
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="text-container" onclick="click">
@@ -45,7 +45,7 @@ longpress:用户在相同位置长时间保持与屏幕接触。
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -68,7 +68,7 @@ longpress:用户在相同位置长时间保持与屏幕接触。
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-interactions.md b/zh-cn/application-dev/ui/ui-js-building-ui-interactions.md
index 8f6957b695624691d317ae437c328acf45ae13b3..b520951a42448f717f0da0c1bf77f9f768fc5bc9 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-interactions.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-interactions.md
@@ -17,7 +17,7 @@
 click事件作为一个函数定义在js文件中,可以更改isPressed的状态,从而更新显示的image组件。如果isPressed为真,则点赞数加1。该函数在hml文件中对应的div组件上生效,点赞按钮各子组件的样式设置在css文件当中。具体的实现示例如下:
 
 
-```
+```html
 <!-- xxx.hml -->
 <!-- 点赞按钮 -->
 <div>
@@ -29,7 +29,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状
 ```
 
 
-```
+```css
 /* xxx.css */
 .like {
   width: 104px;
@@ -53,7 +53,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-layout-comment.md b/zh-cn/application-dev/ui/ui-js-building-ui-layout-comment.md
index ffc8508d19579769417b4faef3a46b14971f63f4..295661a261d13d362161cf44a89e900e7cb11d1f 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-layout-comment.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-layout-comment.md
@@ -6,7 +6,7 @@
 留言区域由div、text、input关联click事件实现。开发者可以使用input组件实现输入留言的部分,使用text组件实现留言完成部分,使用commentText的状态标记此时显示的组件(通过if属性控制)。在包含文本完成和删除的text组件中关联click事件,更新commentText状态和inputValue的内容。具体的实现示例如下:
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <text class="comment-title">Comment</text>
@@ -22,7 +22,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   margin-top: 24px;
@@ -64,7 +64,7 @@
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-layout-external-container.md b/zh-cn/application-dev/ui/ui-js-building-ui-layout-external-container.md
index 9745b4d08ffa54470ec8c3150601b1450e686b43..aa4941473248b85510bb5243d20f103183448822 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-layout-external-container.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-layout-external-container.md
@@ -7,7 +7,7 @@
 
 当页面结构较为复杂时,如果使用div循环渲染,容易出现卡顿,因此推荐使用list组件代替div组件实现长列表布局,从而实现更加流畅的列表滚动体验。需要注意的是,list仅支持list-item作为子组件,具体的使用示例如下:
 
-```
+```html
 <!-- xxx.hml -->
 <list class="list">
   <list-item type="listItem" for="{{textList}}">
@@ -16,7 +16,7 @@
 </list>
 ```
 
-```
+```css
 /* xxx.css */
 .desc-text {
   width: 683.3px;
@@ -24,7 +24,7 @@
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -40,7 +40,7 @@ export default {
 
 当页面经常需要动态加载时,推荐使用tabs组件。tabs组件支持change事件,在页签切换后触发。tabs组件仅支持一个tab-bar和一个tab-content。具体的使用示例如下:
 
-```
+```html
 <!-- xxx.hml -->
 <tabs>
   <tab-bar>
@@ -56,7 +56,7 @@ export default {
 </tabs>
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-layout-image.md b/zh-cn/application-dev/ui/ui-js-building-ui-layout-image.md
index 78672e1b5d4bcad2f80805b01be30d33ba07aec1..0bcfe0af4e7690c7992504471ca107ada142c328 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-layout-image.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-layout-image.md
@@ -7,13 +7,13 @@
 图片资源建议放在jsdefaultcommon目录下,common目录需自行创建,详细的目录结构见[目录结构](../ui/js-framework-file.md#目录结构)。代码示例如下:
 
 
-```
+```html
 <!-- xxx.hml -->
 <image class="img" src="{{middleImage}}"></image>
 ```
 
 
-```
+```css
 /* xxx.css */
 .img {  
   margin-top: 30px;
@@ -23,7 +23,7 @@
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-layout-text.md b/zh-cn/application-dev/ui/ui-js-building-ui-layout-text.md
index cb3a7c1a186b90c4fd1395d00e363295dd9e91a1..9dbcf23ef49a459e35a5dd29f087dd553ea200fb 100755
--- a/zh-cn/application-dev/ui/ui-js-building-ui-layout-text.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-layout-text.md
@@ -3,7 +3,7 @@
 实现标题和文本区域最常用的是基础组件text。text组件用于展示文本,可以设置不同的属性和样式,文本内容需要写在标签内容区,完整属性和样式信息请参考[text](../reference/arkui-js/js-components-basic-text.md)。在页面中插入标题和文本区域的示例如下:
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <text class="title-text">{{headTitle}}</text>
@@ -13,7 +13,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -34,7 +34,7 @@
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-building-ui-routes.md b/zh-cn/application-dev/ui/ui-js-building-ui-routes.md
index eaa20d1aa8db22928bbd55d19447d71168de6ea6..084977da6a4e67f865906d1a98e8041b6646594d 100644
--- a/zh-cn/application-dev/ui/ui-js-building-ui-routes.md
+++ b/zh-cn/application-dev/ui/ui-js-building-ui-routes.md
@@ -17,7 +17,7 @@
 
 index和detail这两个页面均包含一个text组件和button组件:text组件用来指明当前页面,button组件用来实现两个页面之间的相互跳转。hml文件代码示例如下:
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <text class="title">This is the index page.</text>
@@ -25,7 +25,7 @@ index和detail这两个页面均包含一个text组件和button组件:text组
 </div>
 ```
 
-```
+```html
 <!-- detail.hml -->
 <div class="container">
   <text class="title">This is the detail page.</text>
@@ -38,7 +38,7 @@ index和detail这两个页面均包含一个text组件和button组件:text组
 
 构建index和detail页面的页面样式,text组件和button组件居中显示,两个组件之间间距为50px。css代码如下(两个页面样式代码一致):
 
-```
+```css
 /* index.css */
 /* detail.css */
 .container {
@@ -58,7 +58,7 @@ index和detail这两个页面均包含一个text组件和button组件:text组
 
 为了使button组件的launch方法生效,需要在页面的js文件中实现跳转逻辑。调用router.push()接口将uri指定的页面添加到路由栈中,即跳转到uri指定的页面。在调用router方法之前,需要导入router模块。代码示例如下:
 
-```
+```js
 // index.js
 import router from '@system.router';
 export default {
@@ -70,7 +70,7 @@ export default {
 }
 ```
 
-```
+```js
 // detail.js
 import router from '@system.router';
 export default {
diff --git a/zh-cn/application-dev/ui/ui-js-component-tabs.md b/zh-cn/application-dev/ui/ui-js-component-tabs.md
index 59421b9fefdaba9363a61368da04b71cc6821446..f4d3ff942c7212f8e78954d83487ac6d23b3cc70 100644
--- a/zh-cn/application-dev/ui/ui-js-component-tabs.md
+++ b/zh-cn/application-dev/ui/ui-js-component-tabs.md
@@ -1,14 +1,14 @@
-# Tabs
+# tabs开发指导
 
-Tabs是一种常见的界面导航结构。通过页签容器,用户可以快捷地访问应用的不同模块。具体用法请参考[Tabs API](../reference/arkui-js/js-components-container-tabs.md)。
+tabs是一种常见的界面导航结构。通过页签容器,用户可以快捷地访问应用的不同模块。具体用法请参考[tabs API](../reference/arkui-js/js-components-container-tabs.md)。
 
 
-## 创建Tabs
+## 创建tabs
 
-在pages/index目录下的hml文件中创建一个Tabs组件。
+在pages/index目录下的hml文件中创建一个tabs组件。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container" >
   <tabs> <tab-bar>
       <text>item1</text>
@@ -26,7 +26,7 @@ Tabs是一种常见的界面导航结构。通过页签容器,用户可以快
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -45,12 +45,12 @@ Tabs是一种常见的界面导航结构。通过页签容器,用户可以快
 ![zh-cn_image_0000001165191390](figures/zh-cn_image_0000001165191390.gif)
 
 
-## 设置Tabs方向
+## 设置tabs方向
 
-Tabs默认展示索引为index的标签及内容。通过设置vertical属性使组件纵向展示。
+tabs默认展示索引为index的标签及内容。通过设置vertical属性使组件纵向展示。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container" style="background-color:#F1F3F5;">
   <tabs index="1"  vertical="true">
     <tab-bar >
@@ -73,8 +73,8 @@ Tabs默认展示索引为index的标签及内容。通过设置vertical属性使
 
 设置mode属性使tab-bar的子组件均分,设置scrollable属性使tab-content不可进行左右滑动切换内容。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container" style="background-color:#F1F3F5;">
   <tabs style="margin-top: 30px;">
     <tab-bar mode="fixed">
@@ -98,9 +98,9 @@ Tabs默认展示索引为index的标签及内容。通过设置vertical属性使
 
 ## 设置样式
 
-设置Tabs背景色及边框和tab-content布局。
-```
-<!-- index.hml -->
+设置tabs背景色及边框和tab-content布局。
+```html
+<!-- xxx.hml -->
 <div class="container">
   <tabs class="tabs">
     <tab-bar class="tabBar">
@@ -119,7 +119,7 @@ Tabs默认展示索引为index的标签及内容。通过设置vertical属性使
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -152,10 +152,10 @@ Tabs默认展示索引为index的标签及内容。通过设置vertical属性使
 
 ## 显示页签索引
 
-开发者可以为Tabs添加change事件,实现页签切换后显示当前页签索引的功能。
+开发者可以为tabs添加change事件,实现页签切换后显示当前页签索引的功能。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container" style="background-color:#F1F3F5;">
   <tabs class="tabs" onchange="tabChange">
     <tab-bar class="tabBar">
@@ -174,8 +174,8 @@ Tabs默认展示索引为index的标签及内容。通过设置vertical属性使
 </div>
 ```
 
-```
-/* index.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   tabChange(e){
@@ -189,7 +189,7 @@ export default {
 ![zh-cn_image_0000001163228638](figures/zh-cn_image_0000001163228638.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 >
 > tabs子组件仅支持一个[\<tab-bar>](../reference/arkui-js/js-components-container-tab-bar.md)和一个[\<tab-content>](../reference/arkui-js/js-components-container-tab-content.md)。
 
@@ -200,8 +200,8 @@ export default {
 
 用tabs、tab-bar和tab-content实现点击切换功能,再定义数组,设置属性。使用change事件改变数组内的属性值实现变色及下划线的显示。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <tabs onchange="changeTabactive">
     <tab-content>
@@ -228,7 +228,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
 width: 100%;
@@ -264,8 +264,8 @@ background-color:#F1F3F5;
 }
 ```
 
-```
-/* index.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data() {
@@ -312,6 +312,6 @@ export default {
 
 ## 相关实例
 
-针对Tabs开发,有以下相关实例可供参考:
+针对tabs开发,有以下相关实例可供参考:
 
 - [`Tabs`:页签容器(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Tabs)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-js-components-button.md b/zh-cn/application-dev/ui/ui-js-components-button.md
index b6ac4f467946db47b417145fbdb9f0ee05932d5b..6e6fd208a3ba964963cdf09a937e09a2f6286068 100644
--- a/zh-cn/application-dev/ui/ui-js-components-button.md
+++ b/zh-cn/application-dev/ui/ui-js-components-button.md
@@ -1,20 +1,20 @@
-# Button
+# button开发指导
 
-Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按钮、弧形按钮、下载按钮。具体用法请参考[Button API](../reference/arkui-js/js-components-basic-button.md)。
+button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按钮、弧形按钮、下载按钮。具体用法请参考[button API](../reference/arkui-js/js-components-basic-button.md)。
 
 
-## 创建Button组件
+## 创建button组件
 
-在pages/index目录下的hml文件中创建一个Button组件。
+在pages/index目录下的hml文件中创建一个button组件。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">       
   <button  type="capsule" value="Capsule button"></button>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -29,12 +29,12 @@ Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按
 ![zh-cn_image_0000001211225091](figures/zh-cn_image_0000001211225091.png)
 
 
-## 设置Button类型
+## 设置button类型
 
-通过设置Button的type属性来选择按钮类型,如定义Button为圆形按钮、文本按钮等。
+通过设置button的type属性来选择按钮类型,如定义button为圆形按钮、文本按钮等。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">    
   <button class="circle" type="circle" >+</button>
@@ -43,7 +43,7 @@ Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {  
   width: 100%;
@@ -73,14 +73,14 @@ Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按
 ![zh-cn_image_0000001208771093](figures/zh-cn_image_0000001208771093.png)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 胶囊按钮(type=capsule)不支持border相关样式。
-> 
+>
 > - 圆形按钮(type=circle)不支持文本相关样式。
-> 
+>
 > - 文本按钮(type=text),自适应文本大小,不支持尺寸样式设置(radius,width,height),背景透明不支持background-color样式。
-> 
-> - Button组件使用的icon图标如果来自云端路径,需要添加网络访问权限 ohos.permission.INTERNET。
+>
+> - button组件使用的icon图标如果来自云端路径,需要添加网络访问权限 ohos.permission.INTERNET。
 
 
 如果需要添加ohos.permission.INTERNET权限,则在resources文件夹下的config.json文件里进行权限配置。
@@ -98,16 +98,16 @@ Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按
 
 ## 显示下载进度
 
-为Button组件添加progress方法,来实时显示下载进度条的进度。
+为button组件添加progress方法,来实时显示下载进度条的进度。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <button class="button download" type="download" id="download-btn" onclick="setProgress">{{downloadText}}</button>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container { 
   width: 100%;
@@ -124,7 +124,7 @@ Button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -174,16 +174,16 @@ export default {
 
 ![zh-cn_image_0000001208393581](figures/zh-cn_image_0000001208393581.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > setProgress方法只支持button的类型为download。
 
 
 ## 场景示例
 
-在本场景中,开发者可根据输入的文本内容进行Button类型切换。
+在本场景中,开发者可根据输入的文本内容进行button类型切换。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="input-item">
@@ -201,7 +201,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -248,7 +248,7 @@ export default {
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-components-canvas.md b/zh-cn/application-dev/ui/ui-js-components-canvas.md
index 5eb3b7ac4d5cf0051ad0db76c87755992abe339a..36793f7a6bda601b634d748dc775be3e36318db2 100644
--- a/zh-cn/application-dev/ui/ui-js-components-canvas.md
+++ b/zh-cn/application-dev/ui/ui-js-components-canvas.md
@@ -17,7 +17,7 @@ Canvas组件提供画布,用于自定义绘制图形。具体用法请参考[C
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -32,7 +32,7 @@ canvas{
 
 ![zh-cn_image_0000001222984605](figures/zh-cn_image_0000001222984605.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - Canvas组件默认背景色与父组件的背景色一致。
 >
 > - Canvas默认宽高为width: 300px,height: 150px。
@@ -43,7 +43,7 @@ canvas{
 Canvas组件设置宽(width)、高(height)、背景色(background-color)及边框样式(border)。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas></canvas>
@@ -51,7 +51,7 @@ Canvas组件设置宽(width)、高(height)、背景色(background-colo
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -75,7 +75,7 @@ canvas{
 Canvas添加长按事件,长按后可获取Canvas组件的dataUrl值(toDataURL方法返回的图片信息),打印在下方文本区域内。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1" onlongpress="getUrl"></canvas>
@@ -85,7 +85,7 @@ Canvas添加长按事件,长按后可获取Canvas组件的dataUrl值(toDataU
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width:100%;
@@ -112,7 +112,7 @@ Canvas添加长按事件,长按后可获取Canvas组件的dataUrl值(toDataU
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -137,7 +137,7 @@ export default {
 
 ![zh-cn_image_0000001222985331](figures/zh-cn_image_0000001222985331.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 画布不支持在onInit和onReady中进行创建。
 
 ## 相关实例
diff --git a/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md b/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md
index 3865c41f1e740d805909dee85c0d5b0d62ea8c53..85a737f4d78f8e9ec6aa60130dadf788c06090bc 100644
--- a/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md
@@ -9,7 +9,7 @@
 使用moveTo和lineTo画出一条线段,当使用closePath方法时会结束当前路径形成一个封闭图形 。设置quadraticCurveTo(二次贝赛尔曲线)或bezierCurveTo(三次贝赛尔曲线)的值组成图形。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1"></canvas>
@@ -24,7 +24,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -47,7 +47,7 @@ select{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -209,7 +209,7 @@ export default {
 
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1"></canvas>
@@ -224,7 +224,7 @@ export default {
 
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -248,7 +248,7 @@ select{
 
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -307,7 +307,7 @@ export default {
 添加createLinearGradient和createRadialGradient属性创建渐变容器,接着用addColorStop方法添加多个色块组成渐变色,再设置fillStyle为gradient将渐变色填充到矩形中,最后设置阴影的模糊级别(shadowBlur)、阴影颜色(shadowColor)及阴影偏移量(shadowOffset)。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1"></canvas>
@@ -321,7 +321,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -344,7 +344,7 @@ select{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -432,7 +432,7 @@ export default {
 先创建文本,再用fillText方法把文字写在画布上。通过globalAlpha属性改变基线透明度,使基线不会挡住文字,再设置textAlign和textBaseline属性确定文字基于基线的位置。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1"></canvas>
@@ -445,7 +445,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -468,7 +468,7 @@ select{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -557,7 +557,7 @@ export default {
 
 ![zh-cn_image_0000001223064401](figures/zh-cn_image_0000001223064401.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > ltr布局模式下start和left一致,rtl布局模式下start和right一致·。
 
 
@@ -566,7 +566,7 @@ export default {
 创建图片对象后使用drawImage属性画出图片,给图片设置一些动画样式如scale(缩放)、translate(平移)或rotate(旋转)。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="content">
@@ -588,7 +588,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -623,7 +623,7 @@ text{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -638,7 +638,7 @@ export default {
     img.src = 'common/images/2.png';
     // 设置图片宽度
     img.width= 150;
-    // 设置图片告度
+    // 设置图片高度
     img.height=150;
     // 图片平铺容器
     var pat = ctx.createPattern(img, 'repeat');ctx.fillStyle = pat;
@@ -728,12 +728,12 @@ export default {
 
 ![zh-cn_image_0000001218279600](figures/zh-cn_image_0000001218279600.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - setTransfrom方法使用的参数和transform()方法相同,但setTransform()方法会重置现有的变换矩阵并创建新的变换矩阵。
-> 
+>
 > - 变换后的坐标计算方式(x和y为变换前坐标,x'和y'为变换后坐标):
 >   x' = scaleX \* x + skewY \* y + translateX
-> 
+>
 >   y' = skewX \* x + scaleY \* y + translateY
 
 
@@ -742,7 +742,7 @@ export default {
 save方法可对画笔样式进行存储,restore可对存储的画笔进行恢复。如下面的示例,先设置画笔为红色,在保存画笔后对画布进行清除并改变画笔为蓝色,当我们直接使用画笔时会画出一个蓝色矩形,对存储的画笔进行恢复后就可画出红色矩形。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="content">
@@ -757,7 +757,7 @@ save方法可对画笔样式进行存储,restore可对存储的画笔进行恢
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -791,7 +791,7 @@ text{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -816,7 +816,8 @@ export default {
   restore(){
     this.ctx.beginPath();
     // 画笔恢复
-    this.ctx.restore();    this.ctx.fillRect(200, 150, 200, 200);
+    this.ctx.restore();    
+    this.ctx.fillRect(200, 150, 200, 200);
   },
 }
 ```
diff --git a/zh-cn/application-dev/ui/ui-js-components-chart.md b/zh-cn/application-dev/ui/ui-js-components-chart.md
index 7c4d1ee6d9907c5c2c12de9f638d42af1d20a254..339f9697711518d9924aa1ac4112cece6dcdb39b 100644
--- a/zh-cn/application-dev/ui/ui-js-components-chart.md
+++ b/zh-cn/application-dev/ui/ui-js-components-chart.md
@@ -1,21 +1,21 @@
-# Chart开发指导
+# chart开发指导
 
 
-Chart为图表组件,用于呈现线形图、柱状图和量规图界面。具体用法请参考[Chart](../reference/arkui-js/js-components-basic-chart.md)。
+chart为图表组件,用于呈现线形图、柱状图和量规图界面。具体用法请参考[chart](../reference/arkui-js/js-components-basic-chart.md)。
 
 
-## 创建Chart组件
+## 创建chart组件
 
-在pages/index目录下的hml文件中创建一个Chart组件。
+在pages/index目录下的hml文件中创建一个chart组件。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <chart class="chart-data" type="line" options="{{lineOps}}" datasets="{{lineData}}"></chart>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -31,8 +31,8 @@ Chart为图表组件,用于呈现线形图、柱状图和量规图界面。具
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   data: {
     lineData: [
@@ -67,10 +67,10 @@ export default {
 
 ## 设置图表类型
 
-Chart组件通过设置type属性定义图表t类型,如将图表设置为柱状图。
+chart组件通过设置type属性定义图表t类型,如将图表设置为柱状图。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="container">
@@ -108,7 +108,7 @@ Chart组件通过设置type属性定义图表t类型,如将图表设置为柱
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -144,8 +144,8 @@ Chart组件通过设置type属性定义图表t类型,如将图表设置为柱
 ```
 
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   data: {
     title: "类型展示",
@@ -211,16 +211,16 @@ export default {
 
 ![zh-cn_image_0000001227423251](figures/zh-cn_image_0000001227423251.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> Chart不支持显示每个点的值。
+> **说明:**
+> chart不支持显示每个点的值。
 
 
 ## 设置图表属性
 
-Chart组件在options属性中设置对x轴、y轴和数据序列参数的设置,在datasets属性里添加对线条颜色、填充颜色、填充渐变颜色和绘制点集的设置。
+chart组件在options属性中设置对x轴、y轴和数据序列参数的设置,在datasets属性里添加对线条颜色、填充颜色、填充渐变颜色和绘制点集的设置。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <chart class="chart-data" type="line" options="{{lineOps}}" datasets="{{lineData}}"></chart>
@@ -228,7 +228,7 @@ Chart组件在options属性中设置对x轴、y轴和数据序列参数的设置
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -245,8 +245,8 @@ Chart组件在options属性中设置对x轴、y轴和数据序列参数的设置
 ```
 
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   data: {
     //线形图数据
@@ -298,20 +298,20 @@ export default {
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - options只支持柱状图和线形图设置参数,量规图不生效。
-> 
+>
 > - datasets只支持柱状图和线形图设置数据集合,量规图不生效。
-> 
+>
 > - series只有线形图支持。
 
 
 ## 添加数据
 
-通过Chart组件的append方法,实现动态添加数据。
+通过chart组件的append方法,实现动态添加数据。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <stack class="chart-region">
@@ -322,7 +322,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -348,7 +348,7 @@ button {
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -391,7 +391,12 @@ export default {
       }
     },
   },
-  addData() {    this.$refs.linechart.append({      serial: 0,        data: [Math.floor(Math.random() * 400) + 200]    })  }
+  addData() {    
+    this.$refs.linechart.append({      
+    serial: 0,        
+      data: [Math.floor(Math.random() * 400) + 200]    
+    })  
+  }
 }
 ```
 
@@ -403,7 +408,7 @@ export default {
 开发者可以根据开关Switch的状态来选择数据展示的状态,当Switch状态为true时,通过定时器来实现数据的动态展示。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="container">
@@ -452,7 +457,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   display:flex;
@@ -490,7 +495,7 @@ export default {
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -617,8 +622,8 @@ export default {
 
 ## 相关实例
 
-针对Chart开发,有以下相关实例可供参考:
+针对chart开发,有以下相关实例可供参考:
 
-- [`Chart`:图表组件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/chart)
+- [`chart`:图表组件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/chart)
 
-- [chart(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/SwitchApplication)
+- [chart(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/SwitchApplication)
diff --git a/zh-cn/application-dev/ui/ui-js-components-dialog.md b/zh-cn/application-dev/ui/ui-js-components-dialog.md
index 00e1f1c7cd5504c46acb79e9200024bd240cfe07..7d01daf9b39b71b81bb41b9bd9bcda5fe2d3b01f 100644
--- a/zh-cn/application-dev/ui/ui-js-components-dialog.md
+++ b/zh-cn/application-dev/ui/ui-js-components-dialog.md
@@ -1,12 +1,12 @@
-# Dialog
+# dialog开发指导
 
-Dialog组件用于创建自定义弹窗,通常用来展示用户当前需要或用户必须关注的信息或操作。具体用法请参考[Dialog API](../reference/arkui-js/js-components-container-dialog.md)。
+dialog组件用于创建自定义弹窗,通常用来展示用户当前需要或用户必须关注的信息或操作。具体用法请参考[dialog API](../reference/arkui-js/js-components-container-dialog.md)。
 
 
-## 创建Dialog组件
+## 创建dialog组件
 
-在pages/index目录下的hml文件中创建一个Dialog组件,并添加Button组件来触发Dialog。Dialog组件仅支持width、height、margin、margin-[left|top|right|bottom]、margin-[start|end]样式。
-```
+在pages/index目录下的hml文件中创建一个dialog组件,并添加Button组件来触发dialog。dialog组件仅支持width、height、margin、margin-[left|top|right|bottom]、margin-[start|end]样式。
+```html
 <!-- xxx.hml -->
 <div class="doc-page">
   <dialog class="dialogClass" id="dialogId" dragable="true">
@@ -14,11 +14,11 @@ Dialog组件用于创建自定义弹窗,通常用来展示用户当前需要
       <text>this is a dialog</text>
     </div>
   </dialog>
-  <button value="click me" onclick="openDialog"></button>
+  <button value="click me" onclick="opendialog"></button>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .doc-page {
   width:100%;
@@ -51,11 +51,11 @@ button{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 export default {
   //Touch to open the dialog box.
-  openDialog(){
+  opendialog(){
     this.$element('dialogId').show()
   },
 }
@@ -66,10 +66,10 @@ export default {
 
 ## 设置弹窗响应
 
-开发者点击页面上非Dialog的区域时,将触发cancel事件而关闭弹窗。同时也可以通过对Dialog添加show和close方法来显示和关闭弹窗。
+开发者点击页面上非dialog的区域时,将触发cancel事件而关闭弹窗。同时也可以通过对dialog添加show和close方法来显示和关闭弹窗。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="doc-page">
   <dialog class="dialogClass" id="dialogId" oncancel="canceldialog">
@@ -78,12 +78,12 @@ export default {
       <button value="confirm" onclick="confirmClick"></button>
     </div>
   </dialog>
-  <button value="click me" onclick="openDialog"></button>
+  <button value="click me" onclick="opendialog"></button>
 </div>
 ```
 
 
-```
+```css
 /* xxx.css */
 .doc-page {
   width:100%;
@@ -117,8 +117,8 @@ button{
 ```
 
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   canceldialog(e){
@@ -126,7 +126,7 @@ export default {
       message: 'dialogCancel'
     })
   },
-  openDialog(){
+  opendialog(){
     this.$element('dialogId').show()
      prompt.showToast({
       message: 'dialogShow'
@@ -145,21 +145,21 @@ export default {
 ![zh-cn_image_0000001163229150](figures/zh-cn_image_0000001163229150.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 仅支持单个子组件。
-> 
-> - Dialog属性、样式均不支持动态更新。
-> 
-> - Dialog组件不支持focusable、click-effect属性。
+>
+> - dialog属性、样式均不支持动态更新。
+>
+> - dialog组件不支持focusable、click-effect属性。
 
 
 ## 场景示例
 
 
-在本场景中,开发者可以通过Dialog组件实现一个日程表。弹窗在打开状态下,利用[Textarea组件](../reference/arkui-js/js-components-basic-textarea.md)输入当前日程,点击确认按钮后获取当前时间并保存输入文本。最后以列表形式将各日程进行展示。
+在本场景中,开发者可以通过dialog组件实现一个日程表。弹窗在打开状态下,利用[Textarea组件](../reference/arkui-js/js-components-basic-textarea.md)输入当前日程,点击确认按钮后获取当前时间并保存输入文本。最后以列表形式将各日程进行展示。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="doc-page">
   <text style="margin-top: 60px;margin-left: 30px;">
@@ -194,7 +194,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .doc-page {
   flex-direction: column;
@@ -263,8 +263,8 @@ export default {
 ```
 
 
-```
-/* xxx.js */
+```js
+// xxx.js
 var info = null;
 import prompt from '@system.prompt';
 import router from '@system.router';
@@ -323,8 +323,8 @@ export default {
 
 ## 相关实例
 
-针对Dialog开发,有以下相关实例可供参考:
+针对dialog开发,有以下相关实例可供参考:
 
 - [`JsDialog`:页面弹窗(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsDialog)
 
-- [dialog(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/DialogDemo)
+- [Dialog(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/DialogDemo)
diff --git a/zh-cn/application-dev/ui/ui-js-components-form.md b/zh-cn/application-dev/ui/ui-js-components-form.md
index c14e9d2df6c3aeadd5fbb8b9cafcf02be43ece33..7568eef0ccef5c5dd5548ad571c6b841d0fc93d2 100644
--- a/zh-cn/application-dev/ui/ui-js-components-form.md
+++ b/zh-cn/application-dev/ui/ui-js-components-form.md
@@ -1,16 +1,16 @@
-# Form
+# form开发指导
 
-Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-components-basic-input.md)组件内容的提交和重置。具体用法请参考[Form API](../reference/arkui-js/js-components-container-form.md)。
+form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-components-basic-input.md)组件内容的提交和重置。具体用法请参考[form API](../reference/arkui-js/js-components-container-form.md)。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 从 API Version 6 开始支持。
 
 
-## 创建Form组件
+## 创建form组件
 
-在pages/index目录下的hml文件中创建一个Form组件。
-```
+在pages/index目录下的hml文件中创建一个form组件。
+```html
 <!-- xxx.hml -->
 <div class="container">
   <form style="width: 100%; height: 20%">  
@@ -19,7 +19,7 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -36,8 +36,8 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 
 ## 实现表单缩放
 
-为Form组件添加click-effect属性,实现点击表单后的缩放效果,click-effect枚举值请参考[通用属性](../reference/arkui-js/js-components-common-attributes.md)。
-```
+为form组件添加click-effect属性,实现点击表单后的缩放效果,click-effect枚举值请参考[通用属性](../reference/arkui-js/js-components-common-attributes.md)。
+```html
 <!-- xxx.hml -->
 <div class="container">
   <form  id="formId" class="formClass" click-effect="spring-large">
@@ -47,13 +47,13 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 ```
 
 
-## 设置Form样式
+## 设置form样式
 
 
-通过为Form添加background-color和border属性,来设置表单的背景颜色和边框。
+通过为form添加background-color和border属性,来设置表单的背景颜色和边框。
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -77,9 +77,9 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 
 ## 添加响应事件
 
-为Form组件添加submit和reset事件,来提交表单内容或重置表单选项。
+为form组件添加submit和reset事件,来提交表单内容或重置表单选项。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <form onsubmit='onSubmit' onreset='onReset' class="form">
@@ -98,7 +98,7 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 </div>
 ```
 
-```
+```css
 /* index.css */
 .container{
   width: 100%;
@@ -118,8 +118,8 @@ Form是一个表单容器,支持容器内[Input](../reference/arkui-js/js-comp
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default{
   onSubmit(result) {
@@ -143,14 +143,14 @@ export default{
 
 在本场景中,开发者可以选择相应选项并提交或重置数据。
 
-创建[Input](../reference/arkui-js/js-components-basic-input.md)组件,分别设置type属性为checkbox(多选框)和radio(单选框),再使用Form组件的onsubmit和onreset事件实现表单数据的提交与重置。
+创建[Input](../reference/arkui-js/js-components-basic-input.md)组件,分别设置type属性为checkbox(多选框)和radio(单选框),再使用form组件的onsubmit和onreset事件实现表单数据的提交与重置。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
    <form onsubmit="formSubmit" onreset="formReset">
  <text style="font-size: 30px; margin-bottom: 20px; margin-top: 100px;">
-      <span > Form </span>
+      <span > form </span>
   </text>
     <div style="flex-direction: column;width: 90%;padding: 30px 0px;">
      <text class="txt">Select 1 or more options</text>
@@ -180,7 +180,7 @@ export default{
 </div>
 ```
 
-```
+```css
 /* index.css */
 .container {
   flex-direction:column;
@@ -197,8 +197,8 @@ label{
 }
 ```
 
-```
-/* xxx.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   formSubmit() {
diff --git a/zh-cn/application-dev/ui/ui-js-components-grid.md b/zh-cn/application-dev/ui/ui-js-components-grid.md
index e17190343be5be83ce9093b5442358748db529d4..b801fc9f30144d73e2888f3428d9f3665da09e91 100644
--- a/zh-cn/application-dev/ui/ui-js-components-grid.md
+++ b/zh-cn/application-dev/ui/ui-js-components-grid.md
@@ -9,7 +9,7 @@
 在pages/index目录下的hml文件中创建一个grid-container组件,并添加[Grid-row](../reference/arkui-js/js-components-grid-row.md)子组件。
 
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <grid-container id="mygrid" columns="5" gutter="20px" style="background-color: pink;">
@@ -22,7 +22,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -35,7 +35,7 @@
 
 ![zh-cn_image_0000001226897009](figures/zh-cn_image_0000001226897009.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > grid-container仅支持grid-row为子组件。
 
 
@@ -44,7 +44,7 @@
 grid-container点击组件调用getColumns、getColumnWidth、getGutterWidth方法,返回栅格容器列数、column宽度及gutter宽度。长按调用getSizeType方法返回当前容器响应尺寸类型(xs|sm|md|lg)。
 
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <grid-container id="mygrid" columns="6" gutter="20px" style="background-color: pink;padding-top: 100px;" 
@@ -61,7 +61,7 @@ grid-container点击组件调用getColumns、getColumnWidth、getGutterWidth方
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -73,7 +73,7 @@ grid-container点击组件调用getColumns、getColumnWidth、getGutterWidth方
 ```
 
 
-```
+```js
 // index.js
 import prompt from '@system.prompt';
 export default {
@@ -113,7 +113,7 @@ export default {
 创建grid-container组件并添加grid-row,在grid-row组件内添加grild-col组件形成布局。
 
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <grid-container id="mygrid" columns="4" gutter="0" style="background-color: pink;" onclick="getColumns" onlongpress="getSizeType">
@@ -148,7 +148,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -165,7 +165,7 @@ text{
 
 ![zh-cn_image_0000001227135731](figures/zh-cn_image_0000001227135731.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > grid-row仅支持grid-col为子组件,只能在grid-col组件中添加填充的内容。
 
 
@@ -174,7 +174,7 @@ text{
 本场景中循环输出list中的内容,创建出网格布局。进行下拉操时触发refresh(刷新页面)方法,这时会向list数组中添加一条数据并设置setTimeout(延迟触发),达到刷新请求数据的效果。
 
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <refresh refreshing="{{fresh}}" onrefresh="refresh">
@@ -197,7 +197,7 @@ text{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -211,7 +211,7 @@ text{
 ```
 
 
-```
+```js
 // index.js
 import prompt from '@system.prompt';
 export default {
diff --git a/zh-cn/application-dev/ui/ui-js-components-image-animator.md b/zh-cn/application-dev/ui/ui-js-components-image-animator.md
index e9fe87f31f9e5127eee4aea5eca80222b31e06f9..420c989789f43d5db64345c682eb162425d88559 100644
--- a/zh-cn/application-dev/ui/ui-js-components-image-animator.md
+++ b/zh-cn/application-dev/ui/ui-js-components-image-animator.md
@@ -1,15 +1,15 @@
-# Image-animator开发指导
+# image-animator开发指导
 
 
-Image-animator组件为图片帧动画播放器。具体用法请参考[Image-animator](../reference/arkui-js/js-components-basic-image-animator.md)。
+image-animator组件为图片帧动画播放器。具体用法请参考[image-animator](../reference/arkui-js/js-components-basic-image-animator.md)。
 
 
-## 创建Image-animator组件
+## 创建image-animator组件
 
-在pages/index目录下的hml文件中创建一个Image-animator组件,css文件中编写组件样式,js文件中引用图片。
+在pages/index目录下的hml文件中创建一个image-animator组件,css文件中编写组件样式,js文件中引用图片。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <image-animator class="animator" images="{{frames}}" duration="3s"/>
@@ -17,7 +17,7 @@ Image-animator组件为图片帧动画播放器。具体用法请参考[Image-an
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -34,8 +34,8 @@ Image-animator组件为图片帧动画播放器。具体用法请参考[Image-an
 ```
 
 
-```
-/* index.js */
+```js
+// index.js
 export default {
   data: {
     frames: [
@@ -53,12 +53,12 @@ export default {
 ![zh-cn_image_0000001218278612](figures/zh-cn_image_0000001218278612.gif)
 
 
-## 设置Image-animator组件属性
+## 设置image-animator组件属性
 
 添加iteration(播放次数)、reverse(播放顺序)、fixedsize(图片大小是否固定为组件大小)、duration(播放时长)和fillmode(执行结束后的状态)属性,控制图片的播放效果。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <image-animator class="animator" fixedsize="false" iteration='2' reverse="false" ref="animator" fillmode="none" images="{{frames}}"   duration="5s" />
@@ -66,7 +66,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -81,8 +81,8 @@ export default {
 ```
 
 
-```
-/* index.js */
+```js
+// index.js
 export default {
   data: {
     frames: [
@@ -135,20 +135,20 @@ export default {
 
 ![zh-cn_image_0000001218598678](figures/zh-cn_image_0000001218598678.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> - 如果在images属性中设置了单独的duration属性,在Image-animator组件中设置的duration属性无效。
-> 
+> **说明:**
+> - 如果在images属性中设置了单独的duration属性,在image-animator组件中设置的duration属性无效。
+>
 > - 如果fixedsize属性值设置为true,图片的width 、height 、top 和left属性无效。
-> 
+>
 > - 如果reverse属性值设置为false,表示从第1张图片播放到最后1张图片。 如果reverse属性值设置为true,表示从最后1张图片播放到第1张图片。
 
 
 ## 绑定事件
 
-向Image-animator组件添加start、pause、stop和resume事件。当图片播放器开始播放时触发start事件,当图片播放器被点击时触发pause事件,长按图片播放器触发resume事件,图片播放器停止播放时触发stop事件。
+向image-animator组件添加start、pause、stop和resume事件。当图片播放器开始播放时触发start事件,当图片播放器被点击时触发pause事件,长按图片播放器触发resume事件,图片播放器停止播放时触发stop事件。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="doc-page">
   <image-animator class="img" id="img" images="{{imginfo}}" iteration="1" duration="10s" onstart="popstart" onpause="poppause"   onstop="popstop" onresume="popresume" onlongpress="setresume" onclick="setpause">
@@ -157,7 +157,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .doc-page {
   width: 100%;
@@ -175,8 +175,8 @@ export default {
 ```
 
 
-```
-/* index.js */
+```js
+// index.js
 import prompt from '@system.prompt';
 export default {
   data: {
@@ -230,10 +230,10 @@ export default {
 
 在本场景中,开发者可通过开始播放、停止播放等按钮切换图片的播放状态。
 
-Image-animator组件通过调用start、pause、stop和resume方法控制图片的开始、暂停、停止和重新播放,通过getState方法查询图片的播放状态。
+image-animator组件通过调用start、pause、stop和resume方法控制图片的开始、暂停、停止和重新播放,通过getState方法查询图片的播放状态。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="doc-page">
   <image-animator class="img" id="img" images="{{imginfo}}" iteration="2" reverse="{{rev}}" duration="10s">
@@ -256,7 +256,7 @@ Image-animator组件通过调用start、pause、stop和resume方法控制图片
 ```
 
 
-```
+```css
 /* xxx.css */
 .doc-page {
   width: 100%;
@@ -283,8 +283,8 @@ button{
 ```
 
 
-```
-/* index.js */
+```js
+// index.js
 import prompt from '@system.prompt';
 export default {
   data: {
@@ -337,6 +337,6 @@ export default {
 
 ## 相关实例
 
-针对Image-animator开发,有以下相关实例可供参考:
+针对image-animator开发,有以下相关实例可供参考:
 
-- [image、image-animator(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ClickableJsDemo)
+- [image、image-animator(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ClickableJsDemo)
diff --git a/zh-cn/application-dev/ui/ui-js-components-images.md b/zh-cn/application-dev/ui/ui-js-components-images.md
index b7f9d9fb580e6998ef43c5232d6a2fb1669e9c3d..6ef8576c64b4ec9a95f747bf0454922f2f03736a 100644
--- a/zh-cn/application-dev/ui/ui-js-components-images.md
+++ b/zh-cn/application-dev/ui/ui-js-components-images.md
@@ -1,19 +1,19 @@
-# Image
+# image开发指导
 
-Image是图片组件,用来渲染展示图片。具体用法请参考[Image API](../reference/arkui-js/js-components-basic-image.md)。
+image是图片组件,用来渲染展示图片。具体用法请参考[image API](../reference/arkui-js/js-components-basic-image.md)。
 
 
-## 创建Image组件
+## 创建image组件
 
-在pages/index目录下的hml文件中创建一个Image组件。
-```
+在pages/index目录下的hml文件中创建一个image组件。
+```html
 <!-- index.hml -->
 <div class="container">
   <image style="height: 30%;" src="common/images/bg-tv.jpg"> </image>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -28,12 +28,12 @@ Image是图片组件,用来渲染展示图片。具体用法请参考[Image AP
 ![zh-cn_image_0000001211227617](figures/zh-cn_image_0000001211227617.png)
 
 
-## 设置Image样式
+## 设置image样式
 
 通过设置width、height和object-fit属性定义图片的宽、高和缩放样式。
 
 
-```
+```html
 <!-- index.hml -->
 <div class="container">
   <image src="common/images/bg-tv.jpg"> </image>
@@ -41,7 +41,7 @@ Image是图片组件,用来渲染展示图片。具体用法请参考[Image AP
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -69,7 +69,7 @@ image{
 
 图片成功加载时触发complete事件,返回加载的图源尺寸。加载失败则触发error事件,打印图片加载失败。
 
-```
+```html
 <!-- index.hml -->
 <div class="container" >
   <div>
@@ -81,7 +81,7 @@ image{
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -99,13 +99,13 @@ image{
 }
 ```
 
-```
-/* index.js */
+```js
+// index.js
 import prompt from '@system.prompt';
 export default {
   imageComplete(i,e){
     prompt.showToast({
-      message: "Image "+i+"'s width"+ e.width+"----Image "+i+"'s height"+e.height,
+      message: "image "+i+"'s width"+ e.width+"----image "+i+"'s height"+e.height,
       duration: 3000,
     })
   },
@@ -127,7 +127,7 @@ export default {
 ## 场景示例
 
 在本场景中,开发者长按图片后将慢慢隐藏图片,当完全隐藏后再重新显示原始图片。定时器setInterval每隔一段时间改变图片透明度,实现慢慢隐藏的效果,当透明度为0时清除定时器,设置透明度为1。
-```
+```html
 <!-- index.hml -->
 <div class="page-container">
   <div class="content">
@@ -141,7 +141,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .page-container {
   width: 100%;
@@ -175,8 +175,8 @@ export default {
 }
 ```
 
-```
-/* index.js */
+```js
+// index.js
 import prompt from '@system.prompt';
 export default {
   data: {
@@ -206,8 +206,8 @@ export default {
 
 ## 相关实例
 
-针对Image开发,有以下相关实例可供参考:
+针对image开发,有以下相关实例可供参考:
 
-- [image、image-animator(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ClickableJsDemo)
+- [image、image-animator(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ClickableJsDemo)
 
-- [图片编辑模板](https://gitee.com/openharmony/codelabs/tree/master/Media/ImageEditorTemplate)
\ No newline at end of file
+- [图片编辑模板(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Media/ImageEditorTemplate)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-js-components-input.md b/zh-cn/application-dev/ui/ui-js-components-input.md
index a94be316352c467acc2c81c25e56cc7b05f01681..391c88d5da258a50e04a9f1a1a13730b48de5658 100644
--- a/zh-cn/application-dev/ui/ui-js-components-input.md
+++ b/zh-cn/application-dev/ui/ui-js-components-input.md
@@ -1,20 +1,22 @@
-# Input
+# input开发指导
 
-Input是交互式组件,用于接收用户数据。其类型可设置为日期、多选框和按钮等。具体用法请参考[Input API](../reference/arkui-js/js-components-basic-input.md)。
+input是交互式组件,用于接收用户数据。其类型可设置为日期、多选框和按钮等。具体用法请参考[input API](../reference/arkui-js/js-components-basic-input.md)。
 
 
-## 创建Input组件
+## 创建input组件
 
-在pages/index目录下的hml文件中创建一个Input组件。
+在pages/index目录下的hml文件中创建一个input组件。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">       
-  <input type="text">             Please enter the content  </input>
+  <input type="text">             
+     Please enter the content  
+  </input>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -29,11 +31,11 @@ Input是交互式组件,用于接收用户数据。其类型可设置为日期
 ![zh-cn_image_0000001165344988](figures/zh-cn_image_0000001165344988.png)
 
 
-## 设置Input类型
+## 设置input类型
 
-通过设置type属性来定义Input类型,如将Input设置为button、date等。
+通过设置type属性来定义input类型,如将input设置为button、date等。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="div-button">
@@ -53,7 +55,7 @@ Input是交互式组件,用于接收用户数据。其类型可设置为日期
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -87,7 +89,7 @@ Input是交互式组件,用于接收用户数据。其类型可设置为日期
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   btnclick(){
@@ -100,15 +102,15 @@ export default {
 ![zh-cn_image_0000001163375178](figures/zh-cn_image_0000001163375178.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 >
-> 仅当Input类型为checkbox和radio时,当前组件是否选中的属性checked才生效,默认值为false。
+> 仅当input类型为checkbox和radio时,当前组件是否选中的属性checked才生效,默认值为false。
 
 
 ## 事件绑定
 
-向Input组件添加search和translate事件。
-```
+向input组件添加search和translate事件。
+```html
 <!-- xxx.hml -->
 <div class="content">
   <text style="margin-left: -7px;">
@@ -119,7 +121,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .content {
   width: 100%;
@@ -141,7 +143,7 @@ text{
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt'
 export default {
@@ -165,9 +167,9 @@ export default {
 
 ## 设置输入提示
 
-通过对Input组件添加showError方法来提示输入的错误原因。
+通过对input组件添加showError方法来提示输入的错误原因。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="content">
   <input id="input" class="input" type="text"  maxlength="20" placeholder="Please input text" onchange="change">
@@ -176,7 +178,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .content {
   width: 100%;
@@ -196,7 +198,7 @@ export default {
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt' 
  export default { 
@@ -212,9 +214,13 @@ import prompt from '@system.prompt'
    }, 
    buttonClick(e){ 
      if(this.value.length > 6){ 
-       this.$element("input").showError({        error:  'Up to 6 characters are allowed.'       }); 
+       this.$element("input").showError({        
+         error:  'Up to 6 characters are allowed.'       
+       }); 
       }else if(this.value.length == 0){ 
-        this.$element("input").showError({         error:this.value + 'This field cannot be left empty.'       }); 
+        this.$element("input").showError({         
+          error:this.value + 'This field cannot be left empty.'       
+        }); 
       }else{ 
         prompt.showToast({ 
           message: "success " 
@@ -226,17 +232,17 @@ import prompt from '@system.prompt'
 
 ![zh-cn_image_0000001189248178](figures/zh-cn_image_0000001189248178.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该方法在Input类型为text、email、date、time、number和password时生效。
+> **说明:**
+> 该方法在input类型为text、email、date、time、number和password时生效。
 
 
 ## 场景示例
 
 
-根据场景选择不同类型的Input输入框,完成信息录入。
+根据场景选择不同类型的input输入框,完成信息录入。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">    
   <div class="label-item"> 
@@ -265,7 +271,7 @@ import prompt from '@system.prompt'
 ```
 
 
-```
+```css
 /* xxx.css */
 .container { 
   flex-direction: column;
@@ -294,7 +300,7 @@ label {
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {    
@@ -316,6 +322,6 @@ export default {
 
 ## 相关实例
 
-针对Input开发,有以下相关实例可供参考:
+针对input开发,有以下相关实例可供参考:
 
-- [input、label(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/InputApplication)
+- [input、label(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/InputApplication)
diff --git a/zh-cn/application-dev/ui/ui-js-components-list.md b/zh-cn/application-dev/ui/ui-js-components-list.md
index 858e7ce407f85079702f317a2d7af9d4f6ee5085..44a12641e5574bed96564e0fc9bf9fb83663393d 100644
--- a/zh-cn/application-dev/ui/ui-js-components-list.md
+++ b/zh-cn/application-dev/ui/ui-js-components-list.md
@@ -1,14 +1,14 @@
-# List
+# list开发指导
 
-List是用来显示列表的组件,包含一系列相同宽度的列表项,适合连续、多行地呈现同类数据。具体用法请参考[List API](../reference/arkui-js/js-components-container-list.md)。
+list是用来显示列表的组件,包含一系列相同宽度的列表项,适合连续、多行地呈现同类数据。具体用法请参考[list API](../reference/arkui-js/js-components-container-list.md)。
 
 
-## 创建List组件
+## 创建list组件
 
-在pages/index目录下的hml文件中创建一个List组件。
+在pages/index目录下的hml文件中创建一个list组件。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container"> 
  <list>    
    <list-item class="listItem"></list-item>
@@ -19,7 +19,7 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -37,7 +37,7 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 
 ![zh-cn_image_0000001211071477](figures/zh-cn_image_0000001211071477.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - &lt;list-item-group&gt;是&lt;list&gt;的子组件,实现列表分组功能,不能再嵌套&lt;list&gt;,可以嵌套&lt;list-item&gt;。
 >
 > - &lt;list-item&gt;是&lt;list&gt;的子组件,展示列表的具体项。
@@ -47,8 +47,8 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 
 设置scrollbar属性为on即可在屏幕右侧生成滚动条,实现长列表或者屏幕滚动等效果。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <list class="listCss" scrollbar="on" >
     <list-item class="listItem"></list-item>
@@ -61,8 +61,8 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 </div> 
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   flex-direction: column;
   background-color: #F1F3F5;
@@ -86,8 +86,8 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 
 设置indexer属性为自定义索引时,索引栏会显示在列表右边界处,indexer属性设置为true,默认为字母索引表。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">   
   <list class="listCss"  indexer="{{['#','1','2','3','4','5','6','7','8']}}" >  
     <list-item class="listItem"  section="#" ></list-item>   
@@ -95,8 +95,8 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container{
   flex-direction: column;
   background-color: #F1F3F5;
@@ -110,7 +110,7 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 
 ![zh-cn_image_0000001166432552](figures/zh-cn_image_0000001166432552.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - indexer属性生效需要flex-direction属性配合设置为column,且columns属性设置为1。
 >
 > - indexer可以自定义索引表,自定义时"\#"必须要存在。
@@ -118,10 +118,10 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 
 ## 实现列表折叠和展开
 
-为List组件添加groupcollapse和groupexpand事件实现列表的折叠和展开。
+为list组件添加groupcollapse和groupexpand事件实现列表的折叠和展开。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="doc-page">
   <list style="width: 100%;" id="mylist">
     <list-item-group for="listgroup in list" id="{{listgroup.value}}" ongroupcollapse="collapse" ongroupexpand="expand">
@@ -140,8 +140,8 @@ List是用来显示列表的组件,包含一系列相同宽度的列表项,
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .doc-page {
   flex-direction: column;
   background-color: #F1F3F5;
@@ -160,7 +160,7 @@ margin-top:30px;
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -193,7 +193,7 @@ export default {
 
 ![zh-cn_image_0000001162911958](figures/zh-cn_image_0000001162911958.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 >
 > - groupcollapse和groupexpand事件仅支持list-item-group组件使用。
 
@@ -203,8 +203,8 @@ export default {
 在本场景中,开发者可以根据字母索引表查找对应联系人。
 
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="doc-page"> 
   <text style="font-size: 35px; font-weight: 500; text-align: center; margin-top: 20px; margin-bottom: 20px;"> 
       <span>Contacts</span> 
@@ -228,8 +228,8 @@ export default {
 ```
 
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .doc-page {
   width: 100%;
   height: 100%;
@@ -265,7 +265,7 @@ export default {
 ```
 
 
-```
+```js
 // xxx.js
 export default { 
    data: { 
@@ -312,6 +312,6 @@ export default {
 
 ## 相关实例
 
-针对List开发,有以下相关实例可供参考:
+针对list开发,有以下相关实例可供参考:
 
 - [`JsList`:商品列表(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsList)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-js-components-marquee.md b/zh-cn/application-dev/ui/ui-js-components-marquee.md
index aac425fa09ec1f376df47809d26a775dfe140627..f711b61e755f78da710ee8d41f987845a4b78fe8 100644
--- a/zh-cn/application-dev/ui/ui-js-components-marquee.md
+++ b/zh-cn/application-dev/ui/ui-js-components-marquee.md
@@ -1,15 +1,15 @@
-# Marquee开发指导
+# marquee开发指导
 
 
-Marquee为跑马灯组件,用于展示一段单行滚动的文字。具体用法请参考[marquee](../reference/arkui-js/js-components-basic-marquee.md)。
+marquee为跑马灯组件,用于展示一段单行滚动的文字。具体用法请参考[marquee](../reference/arkui-js/js-components-basic-marquee.md)。
 
 
-## 创建Marquee组件
+## 创建marquee组件
 
-在pages/index目录下的hml文件中创建一个Marquee组件。
+在pages/index目录下的hml文件中创建一个marquee组件。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <marquee style="width: 100%;height: 80px; color: #ffffff; background-color: #0820ef;padding-left: 200px;">This is a marquee.</marquee>
@@ -17,7 +17,7 @@ Marquee为跑马灯组件,用于展示一段单行滚动的文字。具体用
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -34,18 +34,18 @@ Marquee为跑马灯组件,用于展示一段单行滚动的文字。具体用
 
 ## 设置属性和样式
 
-Marquee通过color和font-weight属性设置跑马灯中文本的颜色、字体粗细和边框样式。
+marquee通过color和font-weight属性设置跑马灯中文本的颜色、字体粗细和边框样式。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
- <marquee class="customMarquee">It's a racing lamp.</marquee>
+ <marquee class="custommarquee">It's a racing lamp.</marquee>
 </div>
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -55,7 +55,7 @@ Marquee通过color和font-weight属性设置跑马灯中文本的颜色、字体
   align-items: center;
   background-color: #F1F3F5;
 }
-.customMarquee {
+.custommarquee {
   width: 100%;
   height: 80px;
   padding: 10px;
@@ -74,7 +74,7 @@ Marquee通过color和font-weight属性设置跑马灯中文本的颜色、字体
 通过scrollamount、loop和direction属性实现跑马灯滚动时移动的最大长度、滚动次数和文字滚动方向。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="tutorial-page">
   <div class="mymarquee">
@@ -90,7 +90,7 @@ Marquee通过color和font-weight属性设置跑马灯中文本的颜色、字体
 ```
 
 
-```
+```css
 /* xxx.css */
 .tutorial-page {
   width: 750px;
@@ -124,7 +124,7 @@ button{
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   private: {
@@ -144,7 +144,7 @@ export default {
 }
 ```
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 当loop的值小于等于零时,跑马灯marquee将连续滚动。如果loop未指定,则默认为-1。
 
 ![zh-cn_image_0000001227701867](figures/zh-cn_image_0000001227701867.gif)
@@ -157,7 +157,7 @@ export default {
 跑马灯的次数设置为1,在结束的时候触发finish事件使跑马灯的次数加1,字体颜色变为随机颜色,调用start方法使跑马灯再次开始滚动。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="tutorial-page">
   <div class="mymarquee">
@@ -174,7 +174,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .tutorial-page {
   width: 750px;
@@ -204,7 +204,7 @@ button{
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   private: {
diff --git a/zh-cn/application-dev/ui/ui-js-components-menu.md b/zh-cn/application-dev/ui/ui-js-components-menu.md
index 5f30f662d8b8b15cd4e41fba230ba359474bcae2..94fd6501423e43f0b4e79b5e56968cc02f7f01aa 100644
--- a/zh-cn/application-dev/ui/ui-js-components-menu.md
+++ b/zh-cn/application-dev/ui/ui-js-components-menu.md
@@ -1,15 +1,15 @@
-# Menu
+# menu开发指导
 
 
-提供菜单组件,作为临时性弹出窗口,用于展示用户可执行的操作,具体用法请参考[Menu](../reference/arkui-js/js-components-basic-menu.md)。
+提供菜单组件,作为临时性弹出窗口,用于展示用户可执行的操作,具体用法请参考[menu](../reference/arkui-js/js-components-basic-menu.md)。
 
 
-## 创建Menu组件
+## 创建menu组件
 
-在pages/index目录下的hml文件中创建一个Menu组件,添加target、type、title属性。
+在pages/index目录下的hml文件中创建一个menu组件,添加target、type、title属性。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <text class="title-text" id="textId">show menu</text>
@@ -22,7 +22,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -40,10 +40,10 @@
 
 ![zh-cn_image_0000001226815299](figures/zh-cn_image_0000001226815299.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> - Menu仅支持[option](../reference/arkui-js/js-components-basic-option.md)子组件。
-> 
-> - Menu组件不支持focusable、disabled属性。
+> **说明:**
+> - menu仅支持[option](../reference/arkui-js/js-components-basic-option.md)子组件。
+>
+> - menu组件不支持focusable、disabled属性。
 
 
 ## 设置样式
@@ -51,7 +51,7 @@
 为menu组件设置样式,例如字体颜色、大小、字符间距等。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <text class="title-text" id="textId">show menu</text>
@@ -64,7 +64,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -103,7 +103,7 @@ option{
 为menu组件绑定onselected事件(菜单中某个值被点击选中时触发)和oncancel事件(取消操作时触发),点击text组件调用show方法可设置menu组件的坐标。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <text  class="title-text" id="textId" onclick="textClick">show menu</text>
@@ -116,7 +116,7 @@ option{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -148,8 +148,8 @@ option{
 ```
 
 
-```
-// index.js
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   select(e) {
@@ -176,7 +176,7 @@ export default {
 本场景中开发者可点击toggle组件修改文字颜色,选择menu组件修改渐变色块大小。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <div class="contentToggle">
@@ -192,7 +192,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -240,8 +240,8 @@ option{
 ```
 
 
-```
-// index.js
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data:{
@@ -281,6 +281,6 @@ export default {
 
 ## 相关实例
 
-针对Menu开发,有以下相关实例可供参考:
+针对menu开发,有以下相关实例可供参考:
 
 - [`JSMenu`:菜单(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JSMenu)
diff --git a/zh-cn/application-dev/ui/ui-js-components-offscreencanvas.md b/zh-cn/application-dev/ui/ui-js-components-offscreencanvas.md
index f645c710a356f4a369c8bda538eccea9649b2ea9..e6fd3a0e2f16ec6fb9dd088ea96188e7e08084c7 100644
--- a/zh-cn/application-dev/ui/ui-js-components-offscreencanvas.md
+++ b/zh-cn/application-dev/ui/ui-js-components-offscreencanvas.md
@@ -4,7 +4,7 @@
 
 以下示例创建了一个OffscreenCanvas画布,再在画布上创建一个getContext2d对象,并设置filter属性改变图片样式。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas1"></canvas>
@@ -23,7 +23,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -45,7 +45,7 @@ select{
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -89,7 +89,7 @@ export default {
 使用isPointInPath判断坐标点是否在路径的区域内,使用isPointInStroke判断坐标点是否在路径的边缘线上,并在页面上显示返回结果。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="content">
@@ -103,7 +103,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -136,7 +136,7 @@ button{
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-components-path2d.md b/zh-cn/application-dev/ui/ui-js-components-path2d.md
index f5e8690de8ab83fbecaf8ba481c2af6313fcb7b5..da7e1bc8c413d116b1e31a3459ea5abf2ce014ad 100644
--- a/zh-cn/application-dev/ui/ui-js-components-path2d.md
+++ b/zh-cn/application-dev/ui/ui-js-components-path2d.md
@@ -8,14 +8,14 @@
 
 创建Path2D,使用多条线段组合图形。
 
-```
+```html
 <!-- xxx.hml --> 
 <div class="container">
   <canvas ref="canvas"></canvas>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -32,7 +32,7 @@ canvas{
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -81,7 +81,7 @@ export default {
 先使用createPath2D创建出路径对象,只对path1路径进行描边,所以画布上就只会出现path1的路径图形。点击text组件触发addPath方法会把path2路径对象当参数传入path1中,再对path1对象进行描边(stroke)操作后画布出现path1和path2两个图形。点击change文本改变setTransform属性值为setTransform(2, 0.1, 0.1, 2, 0,0),图形变大并向左倾斜。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <canvas ref="canvas"></canvas>
@@ -93,7 +93,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -128,7 +128,7 @@ text{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -162,7 +162,8 @@ export default {
       this.isAdd = "clearPath2"
     }else{
       this.ctx.clearRect(0,0,600,600)
-      this.ctx.stroke(this.path1);      this.isAdd = "addPath2"
+      this.ctx.stroke(this.path1);      
+      this.isAdd = "addPath2"
     }
   },
   setTransform(){
@@ -170,10 +171,16 @@ export default {
       this.ctx.clearRect(0,0,600,600)
       this.path3 = this.ctx.createPath2D();
       this.path3.arc(150, 150, 100, 0, 6.28)
-      this.path3.setTransform(2, 0.1, 0.1, 2, 0,0);      this.ctx.stroke(this.path3);      this.isChange =  !this.isChange;      this.textName = "back"
+      this.path3.setTransform(2, 0.1, 0.1, 2, 0,0);      
+      this.ctx.stroke(this.path3);      
+      this.isChange =  !this.isChange;      
+      this.textName = "back"
     }else{
       this.ctx.clearRect(0,0,600,600)
-      this.path3.setTransform(0.5, -0.1, -0.1, 0.5, 0,0);this.ctx.stroke(this.path3);this.isChange =  !this.isChange;      this.textName = "change"
+      this.path3.setTransform(0.5, -0.1, -0.1, 0.5, 0,0);
+      this.ctx.stroke(this.path3);
+      this.isChange =  !this.isChange;      
+      this.textName = "change"
     }
   },
 }
diff --git a/zh-cn/application-dev/ui/ui-js-components-picker.md b/zh-cn/application-dev/ui/ui-js-components-picker.md
index eea53de79480a2ed54a58a4fdcb20dc3d5be06e4..2f8397377b8cd3456668c459f15aaeb704685ab8 100644
--- a/zh-cn/application-dev/ui/ui-js-components-picker.md
+++ b/zh-cn/application-dev/ui/ui-js-components-picker.md
@@ -1,21 +1,21 @@
-# Picker
+# picker开发指导
 
-Picker是滑动选择器组件,类型支持普通选择器、日期选择器、时间选择器、时间日期选择器和多列文本选择器。具体用法请参考[Picker API](../reference/arkui-js/js-components-basic-picker.md)。
+picker是滑动选择器组件,类型支持普通选择器、日期选择器、时间选择器、时间日期选择器和多列文本选择器。具体用法请参考[picker API](../reference/arkui-js/js-components-basic-picker.md)。
 
 
-## 创建Picker组件
+## 创建picker组件
 
-在pages/index目录下的hml文件中创建一个Picker组件。
+在pages/index目录下的hml文件中创建一个picker组件。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <picker>    picker  </picker>
 <div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width: 100%;
   height: 100%; 
@@ -29,20 +29,20 @@ Picker是滑动选择器组件,类型支持普通选择器、日期选择器
 ![zh-cn_image_0000001210951541](figures/zh-cn_image_0000001210951541.gif)
 
 
-## 设置Picker类型
+## 设置picker类型
 
-通过设置Picker的type属性来选择滑动选择器类型,如定义Picker为日期选择器。
+通过设置picker的type属性来选择滑动选择器类型,如定义picker为日期选择器。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <picker id="picker_text" type="text" value="{{textvalue}}"range="{{rangetext}}" class="pickertext" ></picker>
   <picker id="picker_date" type="date" value="{{datevalue}}" lunarswitch="true" start="2002-2-5" end="2030-6-5" class="pickerdate"></picker>
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width: 100%;
   height: 100%;
@@ -56,7 +56,7 @@ Picker是滑动选择器组件,类型支持普通选择器、日期选择器
 }
 ```
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -69,25 +69,25 @@ export default {
 
 ![zh-cn_image_0000001189098638](figures/zh-cn_image_0000001189098638.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 >
 > 普通选择器设置取值范围时,需要使用数据绑定的方式。
 
 
 ## 设置时间展现格式
 
-Picker的hours属性定义时间的展现格式,可选类型有12小时制和24小时制。
+picker的hours属性定义时间的展现格式,可选类型有12小时制和24小时制。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <picker id="picker_time" type="time" value="12-hour format" hours="12" onchange="timeonchange"  class="pickertime"></picker>
   <picker id="picker_time" type="time" value="24-hour format" hours="24" onchange="timeonchange"  class="pickertime"></picker>
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width: 100%;
   height: 100%;
@@ -105,7 +105,7 @@ Picker的hours属性定义时间的展现格式,可选类型有12小时制和2
 
 ![zh-cn_image_0000001234327855](figures/zh-cn_image_0000001234327855.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - hours属性为12:按照12小时制显示,用上午和下午进行区分;
 >
 > - hours属性为24:按照24小时制显示。
@@ -113,18 +113,18 @@ Picker的hours属性定义时间的展现格式,可选类型有12小时制和2
 
 ## 添加响应事件
 
-对Picker添加change和cancel事件,来对选择的内容进行确定和取消。
+对picker添加change和cancel事件,来对选择的内容进行确定和取消。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container">
   <picker id="picker_multi" type="multi-text" value="{{multitextvalue}}" columns="3" range="{{multitext}}" selected="
      {{multitextselect}}" onchange="multitextonchange" oncancel="multitextoncancel" class="pickermuitl"></picker>
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width: 100%;
   height: 100%;
@@ -142,7 +142,7 @@ Picker的hours属性定义时间的展现格式,可选类型有12小时制和2
 }
 ```
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -170,8 +170,8 @@ export default {
 在本场景中,开发者可以自定义填写当前的健康情况来进行打卡。
 
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="doc-page">
   <text class="title">Health check-in</text>
   <div class="out-container">
@@ -201,8 +201,8 @@ export default {
 ```
 
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .doc-page {
   flex-direction: column;
   background-color: #F1F3F5;
@@ -244,7 +244,7 @@ export default {
 ```
 
 
-```
+```js
 // xxx.js
 import pmt from '@system.prompt'
 export default {
@@ -299,6 +299,6 @@ export default {
 
 ## 相关实例
 
-针对Picker开发,有以下相关实例可供参考:
+针对picker开发,有以下相关实例可供参考:
 
 - [`Picker`:滑动选择器(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Picker)
diff --git a/zh-cn/application-dev/ui/ui-js-components-qrcode.md b/zh-cn/application-dev/ui/ui-js-components-qrcode.md
index 785099137910d685d0e635f98291ee030cfc6382..6bae160089cf914b5f3e5c37c1b9d3378a4948a6 100644
--- a/zh-cn/application-dev/ui/ui-js-components-qrcode.md
+++ b/zh-cn/application-dev/ui/ui-js-components-qrcode.md
@@ -1,15 +1,15 @@
-# Qrcode
+# qrcode开发指导
 
 
-生成并显示二维码,具体用法请参考[Qrcode](../reference/arkui-js/js-components-basic-qrcode.md)。
+生成并显示二维码,具体用法请参考[qrcode](../reference/arkui-js/js-components-basic-qrcode.md)。
 
 
-## 创建Qrcode组件
+## 创建qrcode组件
 
-在pages/index目录下的hml文件中创建一个Qrcode组件。
+在pages/index目录下的hml文件中创建一个qrcode组件。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <qrcode value="Hello"></qrcode>
@@ -17,7 +17,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -31,16 +31,16 @@
 
 ![zh-cn_image_0000001229155403](figures/zh-cn_image_0000001229155403.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> Qrcode组件在创建的时候value的值为必填项。
+> **说明:**
+> qrcode组件在创建的时候value的值为必填项。
 
 
 ## 设置组件类型
 
-通过设置Qrcode的type属性来选择按钮类型,如定义Qrcode为矩形二维码、圆形二维码。
+通过设置qrcode的type属性来选择按钮类型,如定义qrcode为矩形二维码、圆形二维码。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <select onchange="settype">
@@ -51,7 +51,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -68,7 +68,7 @@ select{
 ```
 
 
-```
+```js
 // index.js
 export default {
   data: {
@@ -89,7 +89,7 @@ export default {
 通过color和background-color样式为二维码设置显示颜色和背景颜色。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <qrcode value="Hello" type="rect"></qrcode>
@@ -97,7 +97,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -116,11 +116,11 @@ qrcode{
 
 ![zh-cn_image_0000001183595750](figures/zh-cn_image_0000001183595750.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - width和height不一致时,取二者较小值作为二维码的边长,且最终生成的二维码居中显示。
-> 
+>
 > - width和height只设置一个时,取设置的值作为二维码的边长。都不设置时,使用200px作为默认边长。
-> 
+>
 
 
 ## 场景示例
@@ -128,7 +128,7 @@ qrcode{
 在本场景中将二维码与输入框绑定,通过改变输入框的内容改变二维码。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <input style="margin-bottom: 100px;" onchange="change"></input>
@@ -137,7 +137,7 @@ qrcode{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -154,7 +154,7 @@ qrcode{
 ```
 
 
-```
+```js
 // index.js
 export default{
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-components-rating.md b/zh-cn/application-dev/ui/ui-js-components-rating.md
index a6f5b4434823b3b1375c6451a5d4aa9f22369551..bb7387651e652e94902e9e925529b2219e0b2f3c 100644
--- a/zh-cn/application-dev/ui/ui-js-components-rating.md
+++ b/zh-cn/application-dev/ui/ui-js-components-rating.md
@@ -1,15 +1,15 @@
-# Rating开发指导
+# rating开发指导
 
 
-Rating为评分条组件,表示用户使用感受的衡量标准条。具体用法请参考[Rating](../reference/arkui-js/js-components-basic-rating.md)。
+rating为评分条组件,表示用户使用感受的衡量标准条。具体用法请参考[rating](../reference/arkui-js/js-components-basic-rating.md)。
 
 
-## 创建Rating组件
+## 创建rating组件
 
-在pages/index目录下的hml文件中创建一个Rating组件。
+在pages/index目录下的hml文件中创建一个rating组件。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <rating></rating>
@@ -17,7 +17,7 @@ Rating为评分条组件,表示用户使用感受的衡量标准条。具体
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -38,10 +38,10 @@ rating {
 
 ## 设置评分星级
 
-Rating组件通过设置numstars和rating属性设置评分条的星级总数和当前评星数。
+rating组件通过设置numstars和rating属性设置评分条的星级总数和当前评星数。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <rating numstars="6" rating="5">
@@ -50,7 +50,7 @@ Rating组件通过设置numstars和rating属性设置评分条的星级总数和
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -71,10 +71,10 @@ rating {
 
 ## 设置评分样式
 
-Rating组件通过star-background、star-foreground和star-secondary属性设置单个星级未选择、选中和选中的次级背景图片。
+rating组件通过star-background、star-foreground和star-secondary属性设置单个星级未选择、选中和选中的次级背景图片。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div style="width: 500px;height: 500px;align-items: center;justify-content: center;flex-direction: column;;">
@@ -86,7 +86,7 @@ Rating组件通过star-background、star-foreground和star-secondary属性设置
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -99,8 +99,8 @@ Rating组件通过star-background、star-foreground和star-secondary属性设置
 ```
 
 
-```
-/* index.js */
+```js
+// index.js
 export default {
   data: {
     backstar: 'common/love.png',
@@ -116,18 +116,18 @@ export default {
 
 ![zh-cn_image_0000001178685854](figures/zh-cn_image_0000001178685854.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - star-background、star-secondary、star-foreground属性的星级图源必须全部设置,否则默认的星级颜色为灰色,提示图源设置错误。
-> 
+>
 > - star-background、star-secondary、star-foreground属性只支持本地路径图片,图片格式为png和jpg。
 
 
 ## 绑定事件
 
-向Rating组件添加change事件,打印当前评分。
+向rating组件添加change事件,打印当前评分。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <rating numstars="5" rating="0" onchange="showrating"></rating>
@@ -135,7 +135,8 @@ export default {
 ```
 
 
-```
+```css
+/* xxx.css */
 .container {
   width: 100%;
   height: 100%;
@@ -151,7 +152,8 @@ rating {
 ```
 
 
-```
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   showrating(e) {
@@ -170,7 +172,7 @@ export default {
 开发者可以通过改变开关状态切换星级背景图,通过改变滑动条的值调整星级总数。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div style="width: 100%;height:100%;flex-direction: column;align-items: center;background-color: #F1F3F5;">
   <div style="width: 500px;height: 500px;align-items: center;justify-content: center;flex-direction: column;;">
@@ -197,7 +199,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .myrating:active {
   width: 500px;
@@ -209,8 +211,8 @@ switch{
 ```
 
 
-```
-/* index.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data: {
diff --git a/zh-cn/application-dev/ui/ui-js-components-search.md b/zh-cn/application-dev/ui/ui-js-components-search.md
index d0bf4297262cb677fd27a1191e34462af8558769..5c712126e14d8c24c396dd84808e4bdcae395564 100644
--- a/zh-cn/application-dev/ui/ui-js-components-search.md
+++ b/zh-cn/application-dev/ui/ui-js-components-search.md
@@ -1,15 +1,15 @@
-# Search
+# search
 
 
-提供搜索框组件,用于提供用户搜索内容的输入区域,具体用法请参考[Search](../reference/arkui-js/js-components-basic-search.md)。
+提供搜索框组件,用于提供用户搜索内容的输入区域,具体用法请参考[search](../reference/arkui-js/js-components-basic-search.md)。
 
 
-## 创建Search组件
+## 创建search组件
 
-在pages/index目录下的hml文件中创建一个Search组件。
+在pages/index目录下的hml文件中创建一个search组件。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <search></search>
@@ -17,7 +17,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -37,7 +37,7 @@
 通过设置hint、icon和searchbutton属性设置搜索框的提示文字、图标和末尾搜索按钮的内容。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <search hint="Please enter the search content"  searchbutton="search" icon="/common/search1.png"></search>
@@ -45,7 +45,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -65,7 +65,7 @@
 通过color、placeholder和caret-color样式来设置搜索框的文本颜色、提示文本颜色和光标颜色。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <search hint="Please enter the search content"  searchbutton="search" ></search>
@@ -73,7 +73,7 @@
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -93,10 +93,10 @@ search{
 
 ## 绑定事件
 
-向Search组件添加change、search、submit、share和translate事件,对输入信息进行操作。
+向search组件添加change、search、submit、share和translate事件,对输入信息进行操作。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <text style="margin-left: -7px;">
@@ -109,7 +109,7 @@ search{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -128,7 +128,7 @@ text{
 ```
 
 
-```
+```js
 // index.js
 import prompt from '@system.prompt'
 export default {
@@ -170,14 +170,14 @@ export default {
 
 ## 场景示例
 
-在本场景中通过下拉菜单选择Search、Textarea和Input组件来实现搜索和输入效果。
+在本场景中通过下拉菜单选择search、Textarea和Input组件来实现搜索和输入效果。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div style="flex-direction: column;align-items: center;justify-content: center; width: 100%;">
   <select class="slt1" id="slt1" onchange="setfield">
-    <option value="search">Search</option>
+    <option value="search">search</option>
     <option value="textarea">Textarea</option>
     <option value="input">Input</option>
   </select>
@@ -197,7 +197,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .field {
   width: 80%;
@@ -214,7 +214,7 @@ export default {
 ```
 
 
-```
+```js
 // index.js
 import prompt from '@system.prompt';
 export default {
diff --git a/zh-cn/application-dev/ui/ui-js-components-slider.md b/zh-cn/application-dev/ui/ui-js-components-slider.md
index 99bd1e3fda6630b6d02157cde16fe74e4f30aefe..abac0828428567207a22929ee5a4bfb0912343d8 100644
--- a/zh-cn/application-dev/ui/ui-js-components-slider.md
+++ b/zh-cn/application-dev/ui/ui-js-components-slider.md
@@ -1,23 +1,23 @@
-# Slider开发指导
+# slider开发指导
 
 
-Slider为滑动条组件,用来快速调节音量、亮度等。具体用法请参考[Slider](../reference/arkui-js/js-components-basic-slider.md)。
+slider为滑动条组件,用来快速调节音量、亮度等。具体用法请参考[slider](../reference/arkui-js/js-components-basic-slider.md)。
 
 
-## 创建Slider组件
+## 创建slider组件
 
-在pages/index目录下的hml文件中创建一个Slider组件。
+在pages/index目录下的hml文件中创建一个slider组件。
 
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <slider></slider>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -35,10 +35,10 @@ Slider为滑动条组件,用来快速调节音量、亮度等。具体用法
 
 ## 设置样式和属性
 
-Slider组件通过color、selected-color、block-color样式分别为滑动条设置背景颜色、已选择颜色和滑块颜色。
+slider组件通过color、selected-color、block-color样式分别为滑动条设置背景颜色、已选择颜色和滑块颜色。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <slider class= "sli"></slider>
@@ -46,7 +46,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -68,7 +68,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 通过添加mix、max、value、step、mode属性分别为滑动条设置最小值、最大值、初始值、滑动步长和滑动条样式。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <slider min="0" max="100" value="1" step="2" mode="inset" showtips="true"></slider>
@@ -76,7 +76,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -90,7 +90,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 
 ![zh-cn_image_0000001179438692](figures/zh-cn_image_0000001179438692.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > mode属性为滑动条样式,可选值为:
 >
 > - outset:滑块在滑杆上;
@@ -103,7 +103,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 向Rating组件添加change事件,添加时需要传入ChangeEvent参数。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <text>slider start value is {{startValue}}</text>
@@ -114,7 +114,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -127,7 +127,7 @@ Slider组件通过color、selected-color、block-color样式分别为滑动条
 ```
 
 
-```
+```js
 // xxx.js
 export default {
   data: {
@@ -159,7 +159,7 @@ export default {
 开发者可以通过调整滑动条的值来改变图片大小,并且动态打印当前图片的宽和高。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <image src="common/landscape3.jpg" style=" width: {{WidthVal}}px;height:{{HeightVal}}px;margin-top: -150px;"></image>
@@ -172,7 +172,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -195,7 +195,7 @@ text{
 ```
 
 
-```
+```js
 // xxx.js
 export default{
   data: {
@@ -215,8 +215,8 @@ export default{
 
 ## 相关实例
 
-针对Slider开发,有以下相关实例可供参考:
+针对slider开发,有以下相关实例可供参考:
 
 - [`Slider`:滑动条(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Slider)
 
-- [slider(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/SliderApplication)
\ No newline at end of file
+- [slider(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/SliderApplication)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-js-components-stepper.md b/zh-cn/application-dev/ui/ui-js-components-stepper.md
index 0c3489679485b33cd3f54c5a274cc9dda4b1479a..73e53835e900f45a95307676935570c64a9d6dd4 100644
--- a/zh-cn/application-dev/ui/ui-js-components-stepper.md
+++ b/zh-cn/application-dev/ui/ui-js-components-stepper.md
@@ -1,18 +1,18 @@
-# Stepper
+# stepper开发指导
 
-当一个任务需要多个步骤时,可以使用stepper组件展示当前进展。具体用法请参考[Stepper API](../reference/arkui-js/js-components-container-stepper.md)。
+当一个任务需要多个步骤时,可以使用stepper组件展示当前进展。具体用法请参考[stepper API](../reference/arkui-js/js-components-container-stepper.md)。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 从API Version 5 开始支持。
 
 
-## 创建Stepper组件
+## 创建stepper组件
 
-在pages/index目录下的hml文件中创建一个Stepper组件。
+在pages/index目录下的hml文件中创建一个stepper组件。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container"> 
  <stepper>    
    <stepper-item>     
@@ -25,7 +25,7 @@
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -49,8 +49,8 @@ text{
 
 页面默认显示索引值为index的步骤。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container"> 
  <stepper index="2">    
    <stepper-item>     
@@ -66,8 +66,8 @@ text{
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width:100%;
   height:100%;
@@ -85,8 +85,8 @@ text{
 
 通过设置label属性,自定义stepper-item的提示按钮。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container"> 
  <stepper index="1">    
    <stepper-item label="{{label_1}}">     
@@ -105,8 +105,8 @@ text{
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {  
   width:100%;
   height:100%;
@@ -120,8 +120,8 @@ text{
 }
 ```
 
-```
-/* index.js */
+```js
+// xxx.js
 export default { 
   data: {
     label_1:{
@@ -147,9 +147,9 @@ export default {
 
 ## 设置样式
 
-Stepper组件默认填充父容器,通过border和background-color设置边框、背景色。
-```
-<!-- index.hml -->
+stepper组件默认填充父容器,通过border和background-color设置边框、背景色。
+```html
+<!-- xxx.hml -->
 <div class="container" > 
   <div class="stepperContent">
     <stepper class="stepperClass">    
@@ -161,8 +161,8 @@ Stepper组件默认填充父容器,通过border和background-color设置边框
 </div>
 ```
 
-```
-/* index.css */
+```css
+/* xxx.css */
 .container {
   width:100%;
   height:100%;
@@ -191,14 +191,14 @@ text{
 
 ## 添加事件
 
-Stepper分别添加finish,change,next,back,skip事件。
+stepper分别添加finish,change,next,back,skip事件。
 
 - 当change与next或back同时存在时,会先执行next或back事件再去执行change事件。
 
 - 重新设置index属性值时要先清除index的值再重新设置,否则检测不到值的改变。
 
-```
-<!-- index.hml -->
+```html
+<!-- xxx.hml -->
 <div class="container"  style="background-color:#F1F3F5;">
   <div >
     <stepper onfinish="stepperFinish" onchange="stepperChange" onnext="stepperNext" onback="stepperBack" onskip="stepperSkip" id="stepperId" index="{{index}}">
@@ -218,7 +218,7 @@ Stepper分别添加finish,change,next,back,skip事件。
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .doc-page {
   width:100%;
@@ -246,8 +246,8 @@ button{
 }
 ```
 
-```
-/* index.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data: {
@@ -294,9 +294,10 @@ export default {
 
 在本场景中,开发者可以在界面上点击选择并实时显示选择结果,点击下一步按钮后可动态修改页面的字体颜色和字体大小。
 
-用Stepper组件实现分步,再创建[Toggle](../reference/arkui-js/js-components-basic-toggle.md)组件实现选择显示功能,再使用[Select](../reference/arkui-js/js-components-basic-select.md)组件实现改变选中值动态修改字体颜色或大小。
+用stepper组件实现分步,再创建[Toggle](../reference/arkui-js/js-components-basic-toggle.md)组件实现选择显示功能,再使用[Select](../reference/arkui-js/js-components-basic-select.md)组件实现改变选中值动态修改字体颜色或大小。
 
-```
+```html
+<!-- xxx.hml -->
 <div class="container">
   <stepper id="mystep" index="0" onfinish="back" style="text-color: indigo;">
     <stepper-item label="{{label1}}">
@@ -337,7 +338,7 @@ export default {
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width:100%;
@@ -358,8 +359,8 @@ export default {
 }
 ```
 
-```
-/* index.js */
+```js
+// xxx.js
 import prompt from '@system.prompt';
 import router from '@system.router';
 let myset = new Set();
@@ -405,6 +406,6 @@ export default {
 
 ## 相关实例
 
-针对Stepper开发,有以下相关实例可供参考:
+针对stepper开发,有以下相关实例可供参考:
 
 - [`StepNavigator`:步骤导航器(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/StepNavigator)
diff --git a/zh-cn/application-dev/ui/ui-js-components-svg-graphics.md b/zh-cn/application-dev/ui/ui-js-components-svg-graphics.md
index 9cb7f7c3ab1bf6253476bf1fcaa33c273fd521a4..eecf7d5acc3a6cb4a381b4ceeeaef3b53ee92e26 100644
--- a/zh-cn/application-dev/ui/ui-js-components-svg-graphics.md
+++ b/zh-cn/application-dev/ui/ui-js-components-svg-graphics.md
@@ -6,8 +6,8 @@ Svg组件可以用来绘制常见图形和线段,如矩形(&lt;rect&gt;)
 
 在本场景中,绘制各种图形拼接组成一个小房子。
 
-  
-```
+
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg width="1000" height="1000">
@@ -25,8 +25,8 @@ Svg组件可以用来绘制常见图形和线段,如矩形(&lt;rect&gt;)
 </div>
 ```
 
-  
-```
+
+```css
 /* xxx.css */
 .container {
   width: 100%;
diff --git a/zh-cn/application-dev/ui/ui-js-components-svg-overview.md b/zh-cn/application-dev/ui/ui-js-components-svg-overview.md
index aa13c248a854c5864de1e5c504a198bd38bd0415..601ff8c6d62e4d4ac08e005adfe3d14a969feef6 100644
--- a/zh-cn/application-dev/ui/ui-js-components-svg-overview.md
+++ b/zh-cn/application-dev/ui/ui-js-components-svg-overview.md
@@ -4,9 +4,9 @@
 Svg组件主要作为svg画布的根节点使用,也可以在svg中嵌套使用。具体用法请参考[Svg](../reference/arkui-js/js-components-svg.md)。
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 从API version 7开始支持。
-> 
+>
 > - svg父组件或者svg组件需要定义宽高值,否则不进行绘制。
 
 
@@ -15,7 +15,7 @@ Svg组件主要作为svg画布的根节点使用,也可以在svg中嵌套使
 在pages/index目录下的hml文件中创建一个Svg组件。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg width="400" height="400">  </svg>
@@ -23,7 +23,7 @@ Svg组件主要作为svg画布的根节点使用,也可以在svg中嵌套使
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -46,15 +46,18 @@ svg{
 通过设置width、height、x、y和viewBox属性为Svg设置宽度、高度、x轴坐标、y轴坐标和Svg视口。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
-  <svg width="400" height="400" viewBox="0 0 100 100">    <svg class="rect" width="100" height="100" x="20" y="10">    </svg>  </svg>
+  <svg width="400" height="400" viewBox="0 0 100 100">    
+    <svg class="rect" width="100" height="100" x="20" y="10">    
+    </svg>  
+  </svg>
 </div>
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -74,9 +77,9 @@ svg{
 
 ![zh-cn_image_0000001218599996](figures/zh-cn_image_0000001218599996.png)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - x和y设置的的是当前Svg的x轴和y轴坐标,如果当前Svg为根节点,x轴和y轴属性无效。
-> 
+>
 > - viewBox的宽高和svg的宽高不一致,会以中心对齐进行缩放。
 
 
diff --git a/zh-cn/application-dev/ui/ui-js-components-svg-path.md b/zh-cn/application-dev/ui/ui-js-components-svg-path.md
index 80770f6543997e18d2d386764e5fb63f9a0e9fbb..5597fc284f079a830381b8ef9daa8cea358fea00 100644
--- a/zh-cn/application-dev/ui/ui-js-components-svg-path.md
+++ b/zh-cn/application-dev/ui/ui-js-components-svg-path.md
@@ -3,16 +3,19 @@
 
 Svg组件绘制路径时,通过Path中的M(起点)、H(水平线)、a(绘制弧形到指定位置)路径控制指令,并填充颜色实现 饼状图效果。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg fill="#00FF00" x="100" y="400">
-    <path d="M300,200 h-150 a150 150 0 1 0 150 -150 z" fill="red" stroke="blue" stroke-width="5" >    </path> <path d="M275,175 v-150 a150 150 0 0 0 -150 150 z" fill="yellow" stroke="blue" stroke-width="5">    </path>
+    <path d="M300,200 h-150 a150 150 0 1 0 150 -150 z" fill="red" stroke="blue" stroke-width="5" >    
+    </path> 
+    <path d="M275,175 v-150 a150 150 0 0 0 -150 150 z" fill="yellow" stroke="blue" stroke-width="5">    
+    </path>
   </svg>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: row;
@@ -28,23 +31,23 @@ Svg组件绘制路径时,通过Path中的M(起点)、H(水平线)、a(
 ![zh-cn_image_0000001181511962](figures/zh-cn_image_0000001181511962.png)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - M/m = moveto   参数x和y表示需要移动到点的x轴和y轴的坐标。在使用M命令移动画笔后,只会移动画笔,但不会在两点之间画线。所以M命令经常出现在路径的开始处,用来指明从何处开始画。
-> 
+>
 > - L/l = lineto   参数x和y表示一个点的x轴和y轴坐标,L命令将会在当前位置和新位置(L前面画笔所在的点)之间画一条线段。
-> 
+>
 > - H/h = horizontal lineto    绘制平行线。
-> 
+>
 > - V/v = vertical lineto   绘制垂直线。
-> 
+>
 > - C/c = curveto  三次贝塞尔曲线  设置三组坐标参数: x1 y1, x2 y2, x y。
-> 
+>
 > - S/s = smooth curveto  三次贝塞尔曲线命令   设置两组坐标参数: x2 y2, x y。
-> 
+>
 > - Q/q = quadratic Belzier curve  二次贝塞尔曲线  设置两组坐标参数: x1 y1, x y。
-> 
+>
 > - T/t = smooth quadratic Belzier curveto  二次贝塞尔曲线命令  设置参数: x y。
-> 
+>
 > - A/a = elliptical Arc  弧形命令  设置参数: rx ry x-axis-rotation(旋转角度)large-arc-flag(角度大小) sweep-flag(弧线方向) x y。large-arc-flag决定弧线是大于还是小于180度,0表示小角度弧,1表示大角度弧。sweep-flag表示弧线的方向,0表示从起点到终点沿逆时针画弧,1表示从起点到终点沿顺时针画弧。
-> 
+>
 > - Z/z = closepath   从当前点画一条直线到路径的起点。
diff --git a/zh-cn/application-dev/ui/ui-js-components-svg-text.md b/zh-cn/application-dev/ui/ui-js-components-svg-text.md
index c5e0d18c7ef6031074ed59ee37758a89c8c9b2e5..4663070c8fa2ba2005047db0e31d2ff8827980ca 100644
--- a/zh-cn/application-dev/ui/ui-js-components-svg-text.md
+++ b/zh-cn/application-dev/ui/ui-js-components-svg-text.md
@@ -6,17 +6,17 @@ Svg组件还可以绘制文本。
 
 ## 文本
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 文本的展示内容需要写在元素标签text内,可嵌套tspan子元素标签分段。
-> 
+>
 > - 只支持被父元素标签svg嵌套。
-> 
+>
 > - 只支持默认字体sans-serif。
 
 通过设置x(x轴坐标)、y(y轴坐标)、dx(文本x轴偏移)、dy(文本y轴偏移)、fill(字体填充颜色)、stroke(文本边框颜色)、stroke-width(文本边框宽度)等属性实现文本的不同展示样式。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg>
@@ -36,7 +36,7 @@ Svg组件还可以绘制文本。
 textpath文本内容沿着属性path中的路径绘制文本。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <svg fill="#00FF00" x="100" y="400">
diff --git a/zh-cn/application-dev/ui/ui-js-components-swiper.md b/zh-cn/application-dev/ui/ui-js-components-swiper.md
index 96cff3844a12a75cc5cba38f6ac3af4129e61ed4..af41ada3d1fa375720723e8f8de83ac2d0009bc8 100644
--- a/zh-cn/application-dev/ui/ui-js-components-swiper.md
+++ b/zh-cn/application-dev/ui/ui-js-components-swiper.md
@@ -1,14 +1,14 @@
-# Swiper开发指导
+# swiper开发指导
 
 
-Swiper为滑动容器,提供切换显示子组件的能力。具体用法请参考[Swiper](../reference/arkui-js/js-components-container-swiper.md)。
+swiper为滑动容器,提供切换显示子组件的能力。具体用法请参考[swiper](../reference/arkui-js/js-components-container-swiper.md)。
 
 
-## 创建Swiper组件
+## 创建swiper组件
 
-在pages/index目录下的hml文件中创建一个Swiper组件。
+在pages/index目录下的hml文件中创建一个swiper组件。
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <swiper>
@@ -25,7 +25,7 @@ Swiper为滑动容器,提供切换显示子组件的能力。具体用法请
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -56,16 +56,16 @@ text{
 ![zh-cn_image_0000001181495038](figures/zh-cn_image_0000001181495038.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> Swiper组件支持除&lt;list&gt;之外的子组件。
+> **说明:**
+> swiper组件支持除&lt;list&gt;之外的子组件。
 
 
 ## 添加属性
 
-Swiper组件当不开启循环播放(loop="false")时添加自动播放属性(autoplay),设置自动播放时播放时间间隔(interval),页面会自动切换并停留在最后一个子组件页面。添加digital属性启用数字导航点,设置切换时为渐隐滑动效果(scrolleffect="fade"))。
+swiper组件当不开启循环播放(loop="false")时添加自动播放属性(autoplay),设置自动播放时播放时间间隔(interval),页面会自动切换并停留在最后一个子组件页面。添加digital属性启用数字导航点,设置切换时为渐隐滑动效果(scrolleffect="fade"))。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <swiper index="1"  autoplay="true" interval="2000" indicator="true" digital="true" duration="500"
@@ -87,7 +87,7 @@ Swiper组件当不开启循环播放(loop="false")时添加自动播放属
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -115,20 +115,20 @@ text{
 
 ![zh-cn_image_0000001181655292](figures/zh-cn_image_0000001181655292.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > - 设置indicator(是否启用导航点指示器)属性为true时digital(是否启用数字导航点)属性才会生效。
-> 
-> - Swiper子组件的个数大于等于2时设置的loop属性才会生效。
-> 
+>
+> - swiper子组件的个数大于等于2时设置的loop属性才会生效。
+>
 > - scrolleffect属性仅在loop属性值为false时生效。
 
 
 ## 设置样式
 
-设置Swiper组件的宽高,导航点指示器的直径大小(indicator-size)、颜色(indicator-color)、相对位置(ndicator-top)及选中时的颜色(indicator-selected-color)。
+设置swiper组件的宽高,导航点指示器的直径大小(indicator-size)、颜色(indicator-color)、相对位置(ndicator-top)及选中时的颜色(indicator-selected-color)。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <swiper index="1" autoplay="true" interval="2000"  duration="500" >
@@ -146,7 +146,7 @@ text{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -184,10 +184,10 @@ text{
 
 ## 绑定事件
 
-创建两个text组件添加点击事件,当点击后就调用showPrevious(显示上一个子组件)或showNext(显示下一个子组件)方法。添加select组件下拉选择时触发change事件后调用swiperTo方法跳转到指定轮播页面。Swiper组件绑定change(当前显示的组件索引变化时触发)和finish(切换动画结束时触发)事件。
+创建两个text组件添加点击事件,当点击后就调用showPrevious(显示上一个子组件)或showNext(显示下一个子组件)方法。添加select组件下拉选择时触发change事件后调用swiperTo方法跳转到指定轮播页面。swiper组件绑定change(当前显示的组件索引变化时触发)和finish(切换动画结束时触发)事件。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <swiper interval="2000" onchange="change" loop="false" onanimationfinish="finish" id="swiper">
@@ -218,7 +218,7 @@ text{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   width: 100%;
@@ -259,7 +259,8 @@ select{
 ```
 
 
-```
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default{
   change(e){
@@ -285,10 +286,10 @@ export default{
 
 ## 场景示例
 
-本场景中使用Swiper创建一个轮播图,在轮播图底部制作一个缩略图,点击缩略图后调用swipeTo方法切换到对应的轮播图。
+本场景中使用swiper创建一个轮播图,在轮播图底部制作一个缩略图,点击缩略图后调用swipeTo方法切换到对应的轮播图。
 
 
-```
+```html
 <!-- xxx.hml-->
 <div class="container">
   <swiper duration="500" indicator="false" id="swiper" onchange="change">
@@ -305,7 +306,7 @@ export default{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container{
   flex-direction: column;
@@ -340,8 +341,8 @@ swiper{
 ```
 
 
-```
-// index.js
+```js
+// xxx.js
 import prompt from '@system.prompt';
 export default {
   data:{
@@ -367,6 +368,6 @@ export default {
 
 ## 相关实例
 
-针对Swiper开发,有以下相关实例可供参考:
+针对swiper开发,有以下相关实例可供参考:
 
 - [`Swiper`:内容滑动容器(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Swiper)
diff --git a/zh-cn/application-dev/ui/ui-js-components-switch.md b/zh-cn/application-dev/ui/ui-js-components-switch.md
index aa7e7e71cb4f1e7d7e9a1b850fa5cff7c533bc46..9430f6e94215b5d88a0a10374076598663cbba3c 100644
--- a/zh-cn/application-dev/ui/ui-js-components-switch.md
+++ b/zh-cn/application-dev/ui/ui-js-components-switch.md
@@ -1,22 +1,23 @@
-# Switch开发指导
+# switch开发指导
 
 
-Switch为开关选择器,切换开启或关闭状态。具体用法请参考[Switch](../reference/arkui-js/js-components-basic-switch.md)。
+switch为开关选择器,切换开启或关闭状态。具体用法请参考[switch](../reference/arkui-js/js-components-basic-switch.md)。
 
 
-## 创建Switch组件
+## 创建switch组件
 
-在pages/index目录下的hml文件中创建一个Switch组件。
+在pages/index目录下的hml文件中创建一个switch组件。
 
 
-```
+```html
+<!-- xxx.hml -->
 <div class="container">
     <switch></switch>
 </div>
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   flex-direction: column;
@@ -33,7 +34,7 @@ Switch为开关选择器,切换开启或关闭状态。具体用法请参考[S
 
   witch组件通过textoff和showtext属性设置文本选中和未选中时的状态。设置checked属性值为true(组件为打开状态)。添加change事件,当组件状态改变时触发,触发后执行switchChange函数获取组件当前状态(关闭/打开)。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <switch showtext="true" texton="open" textoff="close" checked="true" @change="switchChange"></switch>
@@ -41,7 +42,7 @@ Switch为开关选择器,切换开启或关闭状态。具体用法请参考[S
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -62,7 +63,7 @@ switch{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -84,7 +85,7 @@ export default {
 ![zh-cn_image_0000001221030133](figures/zh-cn_image_0000001221030133.gif)
 
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> **说明:**
 > 当showtext属性值设置为true时,texton和textoff设置的文本才会生效。
 
 
@@ -92,9 +93,9 @@ export default {
 
 在下面示例中设置开关为打开状态(使用默认收货地址),关闭开关后页面显示选择地址按钮,点击按钮即可改变收货地址。
 
-  实现方法:创建Switch开关,设置checked属性为true,通过数据绑定改变收货地址。设置display属性(默认为none),当关闭开关改变display属性值为flex后显示地址模块,点击按钮改变颜色。
+  实现方法:创建switch开关,设置checked属性为true,通过数据绑定改变收货地址。设置display属性(默认为none),当关闭开关改变display属性值为flex后显示地址模块,点击按钮改变颜色。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div class="change">
@@ -113,7 +114,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -168,7 +169,7 @@ switch{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
diff --git a/zh-cn/application-dev/ui/ui-js-components-text.md b/zh-cn/application-dev/ui/ui-js-components-text.md
index 091d3507356076328dad2794aa539135ed324d40..807d43c11da95140f390f2799696e8a539ab29f3 100644
--- a/zh-cn/application-dev/ui/ui-js-components-text.md
+++ b/zh-cn/application-dev/ui/ui-js-components-text.md
@@ -1,20 +1,20 @@
-# Text
+# text开发指导
 
-Text是文本组件,用于呈现一段文本信息。具体用法请参考[Text API](../reference/arkui-js/js-components-basic-text.md)。
+text是文本组件,用于呈现一段文本信息。具体用法请参考[text API](../reference/arkui-js/js-components-basic-text.md)。
 
 
-## 创建Text组件
+## 创建text组件
 
-在pages/index目录下的hml文件中创建一个Text组件。
+在pages/index目录下的hml文件中创建一个text组件。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container" style="text-align: center;justify-content: center; align-items: center;">
   <text>Hello World</text>
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -29,13 +29,13 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
 ![zh-cn_image_0000001211383427](figures/zh-cn_image_0000001211383427.png)
 
 
-## 设置Text组件样式和属性
+## 设置text组件样式和属性
 
 - 添加文本样式
 
   设置color、font-size、allow-scale、word-spacing、text-valign属性分别为文本添加颜色、大小、缩放、文本之间的间距和文本在垂直方向的对齐方式。 
 
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container" style="background-color:#F1F3F5;flex-direction: column;justify-content: center; align-items: center;">   
     <text style="color: blueviolet; font-size: 40px; allow-scale:true"> 
@@ -47,7 +47,7 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
   </div> 
   ```
 
-  ```
+  ```css
   /* xxx.css */
   .container {
     width: 100%;
@@ -65,9 +65,9 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
 
 - 添加划线
 
-  设置text-decoration和text-decoration-colo属性为文本添加划线和划线颜色,text-decoration枚举值请参考    Text自有样式。
+  设置text-decoration和text-decoration-colo属性为文本添加划线和划线颜色,text-decoration枚举值请参考    text自有样式。
 
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container" style="background-color:#F1F3F5;">
     <text style="text-decoration:underline">
@@ -79,7 +79,7 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
   </div>
   ```
 
-  ```
+  ```css
   /* xxx.css */
   .container {
     width: 100%;
@@ -101,7 +101,7 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
 
   当文本内容过多而显示不全时,添加text-overflow属性将隐藏内容以省略号的形式展现。
 
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container">
     <text class="text">
@@ -110,7 +110,7 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
   </div>
   ```
 
-  ```
+  ```css
   /* xxx.css */
   .container {
     width: 100%;
@@ -136,9 +136,9 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
 
 - 设置文本折行
 
-  设置word-break属性对文本内容做断行处理,word-break枚举值请参考Text自有样式。
+  设置word-break属性对文本内容做断行处理,word-break枚举值请参考text自有样式。
 
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container">
     <div class="content">
@@ -152,7 +152,7 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
   </div>
   ```
 
-  ```
+  ```css
   /* xxx.css */
   .container {
     width: 100%;
@@ -190,9 +190,9 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
 
   ​    ![zh-cn_image_0000001209033195](figures/zh-cn_image_0000001209033195.png)
 
-- Text组件支持[Span](../reference/arkui-js/js-components-basic-span.md)子组件
+- text组件支持[Span](../reference/arkui-js/js-components-basic-span.md)子组件
 
-  ```
+  ```html
   <!-- xxx.hml -->
   <div class="container" style="justify-content: center; align-items: center;flex-direction: column;background-color: #F1F3F5;  width: 100%;height: 100%;">
     <text style="font-size: 45px;">
@@ -208,17 +208,17 @@ Text是文本组件,用于呈现一段文本信息。具体用法请参考[Tex
   ```
 
   ![zh-cn_image_0000001163372568](figures/zh-cn_image_0000001163372568.png)
-    > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+    > **说明:**
     > - 当使用Span子组件组成文本段落时,如果Span属性样式异常(例如:font-weight设置为1000),将导致文本段落显示异常。
     >
-    > - 在使用Span子组件时,注意Text组件内不能存在文本内容,如果存在文本内容也只会显示子组件Span里的内容。
+    > - 在使用Span子组件时,注意text组件内不能存在文本内容,如果存在文本内容也只会显示子组件Span里的内容。
 
 
 ## 场景示例
 
-Text组件通过数据绑定展示文本内容,Span组件通过设置show属性来实现文本内容的隐藏和显示。
+text组件通过数据绑定展示文本内容,Span组件通过设置show属性来实现文本内容的隐藏和显示。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <div style="align-items: center;justify-content: center;">
@@ -237,7 +237,7 @@ Text组件通过数据绑定展示文本内容,Span组件通过设置show属
 </div>
 ```
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -255,7 +255,7 @@ Text组件通过数据绑定展示文本内容,Span组件通过设置show属
 }
 ```
 
-```
+```js
 // xxx.js
 export default {   
   data: {    
@@ -274,6 +274,6 @@ export default {
 
 ## 相关实例
 
-针对Text开发,有以下相关实例可供参考:
+针对text开发,有以下相关实例可供参考:
 
-- [`JsTextComponents`:基础组件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsBasicComponents)
+- [`JstextComponents`:基础组件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JsBasicComponents)
diff --git a/zh-cn/application-dev/ui/ui-js-components-toolbar.md b/zh-cn/application-dev/ui/ui-js-components-toolbar.md
index 6d71893d1d35313aae2528622eb4694d96cbf889..cf277d075e8d666a84f4ea2d23d278d39b6c30d8 100644
--- a/zh-cn/application-dev/ui/ui-js-components-toolbar.md
+++ b/zh-cn/application-dev/ui/ui-js-components-toolbar.md
@@ -1,15 +1,15 @@
-# Toolbar开发指导
+# toolbar开发指导
 
 
-Toolbar为页面工具栏组件,用于展示针对当前界面的操作选项,可作为页面的一级导航。具体用法请参考[Toolbar](../reference/arkui-js/js-components-basic-toolbar.md)。
+toolbar为页面工具栏组件,用于展示针对当前界面的操作选项,可作为页面的一级导航。具体用法请参考[toolbar](../reference/arkui-js/js-components-basic-toolbar.md)。
 
 
-## 创建Toolbar组件
+## 创建toolbar组件
 
-在pages/index目录下的hml文件中创建一个Toolbar组件。
+在pages/index目录下的hml文件中创建一个toolbar组件。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <toolbar style="background-color: #F1F3F5;">
@@ -20,7 +20,7 @@ Toolbar为页面工具栏组件,用于展示针对当前界面的操作选项
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -40,9 +40,9 @@ toolbar-item{
 
 ## 添加子组件
 
-  Toolbar组件仅支持toolbar-item为子组件,页面最多可以展示5个toolbar-item子组件,如果存在6个及以上toolbar-item,则保留前面4个,后续的将收纳到工具栏上的更多项中,通过点击更多项弹窗进行展示。并且更多项展示的组件样式采用系统默认样式,toolbar-item上设置的自定义样式不生效。
+  toolbar组件仅支持toolbar-item为子组件,页面最多可以展示5个toolbar-item子组件,如果存在6个及以上toolbar-item,则保留前面4个,后续的将收纳到工具栏上的更多项中,通过点击更多项弹窗进行展示。并且更多项展示的组件样式采用系统默认样式,toolbar-item上设置的自定义样式不生效。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <toolbar>
@@ -57,7 +57,7 @@ toolbar-item{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   width: 100%;
@@ -77,11 +77,11 @@ toolbar-item{
 
 ## 设置样式
 
-设置position样式控制Toolbar组件的位置,并设置子组件toolbar-item的字体颜色、大小及背景色。
+设置position样式控制toolbar组件的位置,并设置子组件toolbar-item的字体颜色、大小及背景色。
 
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <toolbar style="position: fixed;bottom: 5%;width: 100%;background-color: #F1F3F5;">
@@ -95,7 +95,7 @@ toolbar-item{
 
 
 
-```
+```css
 /* xxx.css */
 .container {
   background-color: #F1F3F5;
@@ -123,7 +123,7 @@ toolbar-item{
 分别给toolbar-item绑定单击事件和长按事件,单击后文本变红,长按时文本变蓝。
 
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <toolbar style="position: fixed;top: 50%;width: 100%;background-color: #F1F3F5;">
@@ -135,7 +135,7 @@ toolbar-item{
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   background-color: #F1F3F5;   
@@ -151,7 +151,7 @@ toolbar-item{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -171,8 +171,8 @@ export default {
 
 ![zh-cn_image_0000001218439306](figures/zh-cn_image_0000001218439306.gif)
 
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> Toolbar组件不支持添加事件和方法,但其子组件toolbar-item支持。
+> **说明:**
+> toolbar组件不支持添加事件和方法,但其子组件toolbar-item支持。
 
 
 ## 场景示例
@@ -181,7 +181,7 @@ export default {
 
   使用for循环创建toolbar-item组件并添加点击事件,点击后获得索引值进行存储。设置文本颜色时,判断当前索引值是否为储存的值,若相同则设置为红色,不同则使用默认颜色。
 
-```
+```html
 <!-- xxx.hml -->
 <div class="container">
   <image src="{{imgList[active]}}"></image>
@@ -193,7 +193,7 @@ export default {
 ```
 
 
-```
+```css
 /* xxx.css */
 .container {
   background-color: #F1F3F5;   
@@ -208,7 +208,7 @@ toolbar-item{
 ```
 
 
-```
+```js
 // xxx.js
 import prompt from '@system.prompt';
 export default {
@@ -233,6 +233,6 @@ export default {
 
 ## 相关实例
 
-针对Toolbar开发,有以下相关实例可供参考:
+针对toolbar开发,有以下相关实例可供参考:
 
 - [`Toolbar`:工具栏(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Toolbar)
diff --git a/zh-cn/application-dev/ui/ui-js-custom-components.md b/zh-cn/application-dev/ui/ui-js-custom-components.md
index 3537724b05e0b34b3bdc789bc891dedfc85fb376..ee18744f78afe32fd1150662abe67fe7f8b650cd 100755
--- a/zh-cn/application-dev/ui/ui-js-custom-components.md
+++ b/zh-cn/application-dev/ui/ui-js-custom-components.md
@@ -4,7 +4,7 @@
 
 
 - 构建自定义组件
-  ```
+  ```html
   <!-- comp.hml -->
    <div class="item"> 
      <text class="title-style">{{title}}</text>
@@ -13,7 +13,7 @@
    </div>
   ```
 
-  ```
+  ```css
   /* comp.css */
    .item { 
      width: 700px;  
@@ -37,7 +37,7 @@
    }
   ```
 
-  ```
+  ```js
   // comp.js
    export default {
      props: {
@@ -59,7 +59,7 @@
   ```
 
 - 引入自定义组件
-  ```
+  ```html
   <!-- xxx.hml -->
    <element name='comp' src='../../common/component/comp.hml'></element> 
    <div class="container"> 
@@ -68,7 +68,7 @@
    </div>
   ```
 
-  ```
+  ```css
   /* xxx.css */
    .container { 
      background-color: #f8f8ff; 
@@ -78,7 +78,7 @@
    } 
   ```
 
-  ```
+  ```js
   // xxx.js
    export default { 
      data: {
@@ -105,4 +105,4 @@
 
 - [`JSUICustomComponent`:自定义组件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/JSUICustomComponent)
 
-- [自定义组件(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/JSCanvasComponet)
+- [自定义组件(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/JSCanvasComponet)
diff --git a/zh-cn/application-dev/ui/ui-js-overview.md b/zh-cn/application-dev/ui/ui-js-overview.md
index c94a28c66b7c6f45c80a8ed2b30a422de5f0450a..178416ba17362d3246441578cab30fc0bfaa8b4e 100755
--- a/zh-cn/application-dev/ui/ui-js-overview.md
+++ b/zh-cn/application-dev/ui/ui-js-overview.md
@@ -52,4 +52,4 @@
 
 - [`Badge`:事件标记控件(JS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/UI/Badge)
 
-- [购物应用(JS)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ShoppingOpenHarmony)
+- [购物应用(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/ShoppingOpenHarmony)
diff --git a/zh-cn/application-dev/ui/ui-ts-basic-components-button.md b/zh-cn/application-dev/ui/ui-ts-basic-components-button.md
index 47be13c7c5cce9df7e055ce770e523b96c6eb377..9983e643f1015dd8e4ecf4fe1449c6876b191565 100644
--- a/zh-cn/application-dev/ui/ui-ts-basic-components-button.md
+++ b/zh-cn/application-dev/ui/ui-ts-basic-components-button.md
@@ -12,7 +12,6 @@ Button通过调用接口来创建,接口调用有以下两种形式:
 
   `Button(options?: {type?: ButtonType, stateEffect?: boolean})`,该接口用于创建包含子组件的按钮,其中type用于设置Button类型,stateEffect属性设置Button是否开启点击效果。
 
-
   ```
   Button({ type: ButtonType.Normal, stateEffect: true }) {
     Row() {
@@ -22,13 +21,13 @@ Button通过调用接口来创建,接口调用有以下两种形式:
   }.borderRadius(8).backgroundColor(0x317aff).width(90)
   ```
 
+
   ![zh-cn_image_0000001260555857](figures/zh-cn_image_0000001260555857.png)
 
 - 创建不包含子组件的按钮
 
   `Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })`,该接口用于创建不包含子组件的按钮,其中label确定所创建的Button是否包含子组件。
 
-
   ```
   Button('Ok', { type: ButtonType.Normal, stateEffect: true })
     .borderRadius(8)
@@ -36,6 +35,7 @@ Button通过调用接口来创建,接口调用有以下两种形式:
     .width(90)
   ```
 
+
   ![zh-cn_image_0000001215796030](figures/zh-cn_image_0000001215796030.png)
 
 
@@ -45,7 +45,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
 
 - 胶囊按钮(默认类型)
 
-  ```
+  ```ts
   Button('Disable', { type: ButtonType.Capsule, stateEffect: false })
     .backgroundColor(0x317aff)
     .width(90)
@@ -55,7 +55,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
 
 - 圆形按钮
 
-  ```
+  ```ts
   Button('Circle', { type: ButtonType.Circle, stateEffect: false })
     .backgroundColor(0x317aff)
     .width(90)
@@ -71,7 +71,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
   一般使用通用属性来自定义按钮样式。例如通过borderRadius属性设置按钮的边框弧度。
 
 
-  ```
+  ```ts
   Button('circle border', { type: ButtonType.Normal })
     .borderRadius(20)
   ```
@@ -82,7 +82,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
   通过添加文本样式设置按钮文本的展示样式。
 
 
-  ```
+  ```ts
   Button('font style', { type: ButtonType.Normal })
     .fontSize(20)
     .fontColor(Color.Red)
@@ -95,7 +95,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
   添加backgroundColor属性设置按钮的背景颜色。
 
 
-  ```
+  ```ts
   Button('background color').backgroundColor(0xF55A42)
   ```
 
@@ -105,7 +105,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
   为删除操作创建一个按钮。
 
 
-  ```
+  ```ts
   Button({ type: ButtonType.Circle, stateEffect: true }) {
     Image($r('app.media.ic_public_delete_filled')).width(30).height(30)
   }.width(55).height(55).margin({ left: 20 }).backgroundColor(0xF55A42)
@@ -119,7 +119,7 @@ Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆
 Button组件通常用于触发某些操作,可以在绑定onClick事件来响应点击操作后的自定义行为。
 
 
-```
+```ts
 Button('Ok', { type: ButtonType.Normal, stateEffect: true })
   .onClick(()=>{
     console.info('Button onClick')
@@ -133,7 +133,8 @@ Button('Ok', { type: ButtonType.Normal, stateEffect: true })
 
   可以将按钮用于启动操作的任何用户界面元素。按钮会根据用户的操作触发相应的事件。如,在List容器里边通过点击按钮进行页面跳转:
 
-  ```
+  ```ts
+  // xxx.js  
   import router from '@ohos.router'
 
   @Entry
@@ -173,8 +174,9 @@ Button('Ok', { type: ButtonType.Normal, stateEffect: true })
   在用户登录/注册页面,用户的登录或注册的提交操作会用按钮。
 
 
-  ```
-  @Entry
+  ```ts
+// xxx.js  
+@Entry
   @Component
   struct ButtonCase2 {
     build() {
diff --git a/zh-cn/application-dev/quick-start/basic-resource-file-categories.md b/zh-cn/application-dev/ui/ui-ts-basic-resource-file-categories.md
similarity index 68%
rename from zh-cn/application-dev/quick-start/basic-resource-file-categories.md
rename to zh-cn/application-dev/ui/ui-ts-basic-resource-file-categories.md
index e15c49af5f6d2636c212ec794b8063d5439eed98..8f704f9f69a725690f39e855e38a51477c6cfe1e 100644
--- a/zh-cn/application-dev/quick-start/basic-resource-file-categories.md
+++ b/zh-cn/application-dev/ui/ui-ts-basic-resource-file-categories.md
@@ -71,11 +71,62 @@ base目录与限定词目录下面可以创建资源组目录(包括element、
 
   **表3** 资源组目录说明
 
-| 资源组目录     | 目录说明                                     | 资源文件                                     |
-| --------- | ---------------------------------------- | ---------------------------------------- |
-| element   | 表示元素资源,以下每一类数据都采用相应的JSON文件来表征。<br/>-&nbsp;boolean,布尔型<br/>-&nbsp;color,颜色<br/>-&nbsp;float,浮点型<br/>-&nbsp;intarray,整型数组<br/>-&nbsp;integer,整型<br/>-&nbsp;pattern,样式<br/>-&nbsp;plural,复数形式<br/>-&nbsp;strarray,字符串数组<br/>-&nbsp;string,字符串 | element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。<br/>-&nbsp;boolean.json<br/>-&nbsp;color.json<br/>-&nbsp;float.json<br/>-&nbsp;intarray.json<br/>-&nbsp;integer.json<br/>-&nbsp;pattern.json<br/>-&nbsp;plural.json<br/>-&nbsp;strarray.json<br/>-&nbsp;string.json |
-| media     | 表示媒体资源,包括图片、音频、视频等非文本格式的文件。              | 文件名可自定义,例如:icon.png。                     |
-| animation | 表示动画资源,采用XML文件格式。                        | 文件名可自定义,例如:zoom_in.xml。                  |
-| layout    | 表示布局资源,采用XML文件格式。                        | 文件名可自定义,例如:home_layout.xml。              |
-| graphic   | 表示可绘制资源,采用XML文件格式。                       | 文件名可自定义,例如:notifications_dark.xml。       |
-| profile   | 表示其他类型文件,以原始文件形式保存。                      | 文件名可自定义。                                 |
+| 资源组目录   | 目录说明                                     | 资源文件                                     |
+| ------- | ---------------------------------------- | ---------------------------------------- |
+| element | 表示元素资源,以下每一类数据都采用相应的JSON文件来表征。<br/>-&nbsp;boolean,布尔型<br/>-&nbsp;color,颜色<br/>-&nbsp;float,浮点型<br/>-&nbsp;intarray,整型数组<br/>-&nbsp;integer,整型<br/>-&nbsp;pattern,样式<br/>-&nbsp;plural,复数形式<br/>-&nbsp;strarray,字符串数组<br/>-&nbsp;string,字符串 | element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。<br/>-&nbsp;boolean.json<br/>-&nbsp;color.json<br/>-&nbsp;float.json<br/>-&nbsp;intarray.json<br/>-&nbsp;integer.json<br/>-&nbsp;pattern.json<br/>-&nbsp;plural.json<br/>-&nbsp;strarray.json<br/>-&nbsp;string.json |
+| media   | 表示媒体资源,包括图片、音频、视频等非文本格式的文件。              | 文件名可自定义,例如:icon.png。                     |
+| profile | 表示其他类型文件,以原始文件形式保存。                      | 文件名可自定义。                                 |
+
+### 媒体资源类型说明
+
+表1 图片资源类型说明
+
+| 格式   | 文件后缀名 |
+| ---- | ----- |
+| JPEG | .jpg  |
+| PNG  | .png  |
+| GIF  | .gif  |
+| SVG  | .svg  |
+| WEBP | .webp |
+| BMP  | .bmp  |
+
+表2 音视频资源类型说明
+
+| 格式                                   | 支持的文件类型         |
+| ------------------------------------ | --------------- |
+| H.263                                | .3gp <br>.mp4   |
+| H.264 AVC <br> Baseline Profile (BP) | .3gp <br>.mp4   |
+| MPEG-4 SP                            | .3gp            |
+| VP8                                  | .webm <br> .mkv |
+
+## 创建资源文件
+
+在resources目录下,可按照限定词目录和资源组目录的说明创建子目录和目录内的文件。
+
+同时,DevEco Studio也提供了创建资源目录和资源文件的界面。
+
+- 创建资源目录及资源文件
+
+  在resources目录右键菜单选择“New > Resource File”,此时可同时创建目录和文件。
+
+  文件默认创建在base目录的对应资源组下。如果选择了限定词,则会按照命名规范自动生成限定词+资源组目录,并将文件创建在目录中。
+
+  目录名自动生成,格式固定为“限定词.资源组”,例如创建一个限定词为横竖屏类别下的竖屏,资源组为绘制资源的目录,自动生成的目录名称为“vertical.graphic”。
+
+  ![create-resource-file-1](figures/create-resource-file-1.png)
+
+- 创建资源目录
+
+  在resources目录右键菜单选择“New > Resource Directory”,此时可创建资源目录。
+
+  选择资源组类型,设置限定词,创建后自动生成目录名称。目录名称格式固定为“限定词.资源组”,例如创建一个限定词为横竖屏类别下的竖屏,资源组为绘制资源的目录,自动生成的目录名称为“vertical.graphic”。
+
+  ![create-resource-file-2](figures/create-resource-file-2.png)
+
+- 创建资源文件
+
+  在资源目录的右键菜单选择“New > XXX Resource File”,即可创建对应资源组目录的资源文件。
+
+  例如,在element目录下可新建Element Resource File。
+
+  ![create-resource-file-3](figures/create-resource-file-3.png)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-ts-building-category-grid-layout.md b/zh-cn/application-dev/ui/ui-ts-building-category-grid-layout.md
index 876ab9c8f4d4915b10e0e8f84f9f0c69c4c05c05..51ee15b3e6c18b9b51340a51c0b54f133ce6700d 100644
--- a/zh-cn/application-dev/ui/ui-ts-building-category-grid-layout.md
+++ b/zh-cn/application-dev/ui/ui-ts-building-category-grid-layout.md
@@ -6,12 +6,12 @@
 
 
 1. 将Category枚举类型引入FoodCategoryList页面。
-   ```
+   ```ts
    import { Category, FoodData } from '../model/FoodData'
    ```
 
 2. 创建FoodCategoryList和FoodCategory组件,其中FoodCategoryList作为新的页面入口组件,在入口组件调用initializeOnStartup方法。
-   ```
+   ```ts
    @Component
    struct FoodList {
      private foodItems: FoodData[]
@@ -19,7 +19,7 @@
        ......
      }
    }
-   
+
    @Component
    struct FoodCategory {
      private foodItems: FoodData[]
@@ -27,7 +27,7 @@
        ......
      }
    }
-   
+
    @Entry
    @Component
    struct FoodCategoryList {
@@ -39,13 +39,13 @@
    ```
 
 3. 在FoodCategoryList组件内创建showList成员变量,用于控制List布局和Grid布局的渲染切换。需要用到条件渲染语句if...else...。
-   ```
+   ```ts
    @Entry
    @Component
    struct FoodCategoryList {
      private foodItems: FoodData[] = initializeOnStartup()
      private showList: boolean = false
-   
+
      build() {
        Stack() {
          if (this.showList) {
@@ -59,13 +59,13 @@
    ```
 
 4. 在页面右上角创建切换List/Grid布局的图标。设置Stack对齐方式为顶部尾部对齐TopEnd,创建Image组件,设置其点击事件,即showList取反。
-   ```
+   ```ts
    @Entry
    @Component
    struct FoodCategoryList {
      private foodItems: FoodData[] = initializeOnStartup()
      private showList: boolean = false
-   
+
      build() {
        Stack({ alignContent: Alignment.TopEnd }) {
          if (this.showList) {
@@ -86,13 +86,13 @@
    ```
 
 5. 添加\@State装饰器。点击右上角的switch标签后,页面没有任何变化,这是因为showList不是有状态数据,它的改变不会触发页面的刷新。需要为其添加\@State装饰器,使其成为状态数据,它的改变会引起其所在组件的重新渲染。
-   ```
+   ```ts
    @Entry
    @Component
    struct FoodCategoryList {
      private foodItems: FoodData[] = initializeOnStartup()
      @State private showList: boolean = false
-   
+
      build() {
        Stack({ alignContent: Alignment.TopEnd }) {
          if (this.showList) {
@@ -110,7 +110,7 @@
        }.height('100%')
      }
    }
-   
+
    ```
 
    点击切换图标,FoodList组件出现,再次点击,FoodList组件消失。
@@ -118,7 +118,7 @@
    ![zh-cn_image_0000001170411978](figures/zh-cn_image_0000001170411978.gif)
 
 6. 创建显示所有食物的页签(All)。在FoodCategory组件内创建Tabs组件和其子组件TabContent,设置tabBar为All。设置TabBars的宽度为280,布局模式为Scrollable,即超过总长度后可以滑动。Tabs是一种可以通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图TabContent。
-   ```
+   ```ts
    @Component
    struct FoodCategory {
      private foodItems: FoodData[]
@@ -137,13 +137,13 @@
    ![zh-cn_image_0000001204538065](figures/zh-cn_image_0000001204538065.png)
 
 7. 创建FoodGrid组件,作为TabContent的子组件。
-   ```
+   ```ts
    @Component
    struct FoodGrid {
      private foodItems: FoodData[]
      build() {}
    }
-   
+
    @Component
    struct FoodCategory {
      private foodItems: FoodData[]
@@ -162,7 +162,7 @@
    ```
 
 8. 实现2 \* 6的网格布局(一共12个食物数据资源)。创建Grid组件,设置列数columnsTemplate('1fr 1fr'),行数rowsTemplate('1fr 1fr 1fr 1fr 1fr 1fr'),行间距和列间距rowsGap和columnsGap为8。创建Scroll组件,使其可以滑动。
-   ```
+   ```ts
    @Component
    struct FoodGrid {
      private foodItems: FoodData[]
@@ -185,7 +185,7 @@
    ```
 
 9. 创建FoodGridItem组件,展示食物图片、名称和卡路里,实现其UI布局,为GridItem的子组件。每个FoodGridItem高度为184,行间距为8,设置Grid总高度为(184 + 8) \* 6 - 8 = 1144。
-   ```
+   ```ts
    @Component
    struct FoodGridItem {
      private foodItem: FoodData
@@ -214,7 +214,7 @@
        .width('100%')
      }
    }
-   
+
    @Component
    struct FoodGrid {
      private foodItems: FoodData[]
@@ -242,48 +242,48 @@
    ![zh-cn_image_0000001170167520](figures/zh-cn_image_0000001170167520.gif)
 
 10. 创建展示蔬菜(Category.Vegetable)、水果(Category.Fruit)、坚果(Category.Nut)、海鲜(Category.SeaFood)和甜品(Category.Dessert)分类的页签。
-   ```
-   @Component
-   struct FoodCategory {
-     private foodItems: FoodData[]
-     build() {
-       Stack() {
-         Tabs() {
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems })
-           }.tabBar('All')
-   
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Vegetable)) })
-           }.tabBar('Vegetable')
-   
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Fruit)) })
-           }.tabBar('Fruit')
-   
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Nut)) })
-           }.tabBar('Nut')
-   
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Seafood)) })
-           }.tabBar('Seafood')
-   
-           TabContent() {
-             FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Dessert)) })
-           }.tabBar('Dessert')
-         }
-         .barWidth(280)
-         .barMode(BarMode.Scrollable)
-       }
-     }
-   }
-   ```
+  ```ts
+  @Component
+  struct FoodCategory {
+    private foodItems: FoodData[]
+    build() {
+      Stack() {
+        Tabs() {
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems })
+          }.tabBar('All')
+
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Vegetable)) })
+          }.tabBar('Vegetable')
+
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Fruit)) })
+          }.tabBar('Fruit')
+
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Nut)) })
+          }.tabBar('Nut')
+
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Seafood)) })
+          }.tabBar('Seafood')
+
+          TabContent() {
+            FoodGrid({ foodItems: this.foodItems.filter(item => (item.category === Category.Dessert)) })
+          }.tabBar('Dessert')
+        }
+        .barWidth(280)
+        .barMode(BarMode.Scrollable)
+      }
+    }
+  }
+  ```
 
 11. 设置不同食物分类的Grid的行数和高度。因为不同分类的食物数量不同,所以不能用'1fr 1fr 1fr 1fr 1fr 1fr '常量来统一设置成6行。
       创建gridRowTemplate和HeightValue成员变量,通过成员变量设置Grid行数和高度。
 
-   ```
+   ```ts
    @Component
    struct FoodGrid {
      private foodItems: FoodData[]
@@ -312,7 +312,7 @@
 
    调用aboutToAppear接口计算行数(gridRowTemplate )和高度(heightValue)。
 
-   ```
+   ```ts
    aboutToAppear() {
      var rows = Math.round(this.foodItems.length / 2);
      this.gridRowTemplate = '1fr '.repeat(rows);
@@ -324,7 +324,7 @@
 
    ![zh-cn_image_0000001215113569](figures/zh-cn_image_0000001215113569.png)
 
-   ```
+   ```ts
    @Component
    struct FoodGrid {
      private foodItems: FoodData[]
diff --git a/zh-cn/application-dev/ui/ui-ts-building-category-list-layout.md b/zh-cn/application-dev/ui/ui-ts-building-category-list-layout.md
index 8a75c1334e56cabf94fc1879814ab70adc6be9f3..bb5ab8da2f5078e85109101f3f0a07257e609f40 100644
--- a/zh-cn/application-dev/ui/ui-ts-building-category-list-layout.md
+++ b/zh-cn/application-dev/ui/ui-ts-building-category-list-layout.md
@@ -6,7 +6,7 @@
 
 
 1. 在pages目录新建页面FoodCategoryList.ets,将index.ets改名为FoodDetail.ets,并将其添加到config.json文件下的pages标签,位于第一序位的页面为首页。
-   ```
+   ```json
    "js": [
      {
        "pages": [
@@ -22,7 +22,7 @@
    struct FoodListItem {
      build() {}
    }
-   
+
    @Entry
    @Component
    struct FoodList {
@@ -46,13 +46,13 @@
    ```
    import { FoodData } from '../model/FoodData'
    import { initializeOnStartup } from '../model/FoodDataModels'
-   
+
    @Component
    struct FoodListItem {
      private foodItem: FoodData
      build() {}
    }
-   
+
    @Entry
    @Component
    struct FoodList {
@@ -71,7 +71,7 @@
    ```
    import { FoodData } from '../model/FoodData'
    import { initializeOnStartup } from '../model/FoodDataModels'
-   
+
    @Component
    struct FoodListItem {
      private foodItem: FoodData
@@ -93,7 +93,7 @@
        .margin({ right: 24, left:32 })
      }
    }
-   
+
    @Entry
    @Component
    struct FoodList {
@@ -114,7 +114,7 @@
    ```
    import { FoodData } from '../model/FoodData'
    import { initializeOnStartup } from '../model/FoodDataModels'
-   
+
    @Component
    struct FoodListItem {
        private foodItem: FoodData
@@ -136,7 +136,7 @@
            .margin({ right: 24, left:32 })
        }
    }
-   
+
    @Entry
    @Component
    struct FoodList {
@@ -182,7 +182,7 @@
    ```
    import { FoodData } from '../model/FoodData'
    import { initializeOnStartup } from '../model/FoodDataModels'
-   
+
    @Component
    struct FoodListItem {
      private foodItem: FoodData
@@ -204,7 +204,7 @@
        .margin({ right: 24, left:32 })
      }
    }
-   
+
    @Entry
    @Component
    struct FoodList {
diff --git a/zh-cn/application-dev/ui/ui-ts-components-web.md b/zh-cn/application-dev/ui/ui-ts-components-web.md
index 8d223f77587c83475f2720b8b62d11776af7e507..0386a7108587acaca55c42f5e07624fa2115a974 100644
--- a/zh-cn/application-dev/ui/ui-ts-components-web.md
+++ b/zh-cn/application-dev/ui/ui-ts-components-web.md
@@ -6,7 +6,7 @@ Web是提供网页显示能力的组件,具体用法请参考 [Web API](../ref
 
 在main/ets/MainAbility/pages目录下的ets文件中创建一个Web组件。在web组件中通过src指定引用的网页路径,controller为组件的控制器,通过controller绑定Web组件,用于调用Web组件的方法。
 
-  ```
+  ```ts
   // xxx.ets
   @Entry
   @Component
@@ -24,7 +24,7 @@ Web是提供网页显示能力的组件,具体用法请参考 [Web API](../ref
 
 Web组件的使用需要添加丰富的页面样式和功能属性。设置height、padding样式可为Web组件添加高和内边距,设置fileAccess属性可为Web组件添加文件访问权限,设置javaScriptAccess属性为true使Web组件具有执行JavaScript代码的能力。
 
-```
+```ts
 // xxx.ets
 @Entry
 @Component
@@ -52,7 +52,7 @@ struct WebComponent {
 
 为Web组件添加onProgressChange事件,该事件回调Web引擎加载页面的进度值。将该进度值赋值给Progress组件的value,控制Progress组件的状态。当进度为100%时隐藏Progress组件,Web页面加载完成。
 
-```
+```ts
 // xxx.ets
 @Entry
 @Component
@@ -91,7 +91,7 @@ struct WebComponent {
 ```
 在onPageEnd事件中添加runJavaScript方法。onPageEnd事件是网页加载完成时的回调,runJavaScript方法可以执行HTML中的JavaScript脚本。当页面加载完成时,触发onPageEnd事件,调用HTML文件中的test方法,在控制台打印信息。
 
-```
+```ts
 // xxx.ets
 @Entry
 @Component
@@ -136,7 +136,7 @@ struct WebComponent {
 
 在main/resources/rawfile目录下创建一个HTML文件。
 
-```
+```html
 <!-- index.html -->
 <!DOCTYPE html>
 <html>
@@ -155,7 +155,7 @@ struct WebComponent {
 
 该场景实现了Web组件中视频的动态播放。首先在HTML页面内嵌入视频资源,再使用Web组件的控制器调用onActive和onInactive方法激活和暂停页面渲染。点击onInactive按钮,Web页面停止渲染,视频暂停播放;点击onActive按钮,激活Web组件,视频继续播放。
 
-  ```
+  ```ts
   // xxx.ets
 @Entry
 @Component
@@ -180,7 +180,7 @@ struct WebComponent {
 }
   ```
 
-  ```
+  ```html
   <!-- index.html -->
   <!DOCTYPE html>
   <html>
@@ -198,4 +198,6 @@ struct WebComponent {
 
 针对Web开发,有以下相关实例可供参考:
 
-- [`Web`:Web(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/Web)
\ No newline at end of file
+- [`Web`:Web(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/Web)
+
+- [Web组件加载本地H5小程序(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/WebComponent)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-ts-components.md b/zh-cn/application-dev/ui/ui-ts-components.md
index a255554228a44cd2188e02c9aff0c1a9f27cbfa2..7712c3c67422daacbc299bd3b57d5253123f1afb 100644
--- a/zh-cn/application-dev/ui/ui-ts-components.md
+++ b/zh-cn/application-dev/ui/ui-ts-components.md
@@ -9,14 +9,14 @@
 
 自定义组件的声明方式为:
 
-```
+```ts
 @Component
 struct MyComponent {}
 ```
 
 在IDE创建工程模板中,MyComponent就是一个可以居中显示文字的自定义组件。开发者可以在Component的build方法里描述自己的UI结构,但需要遵循Builder的接口约束。
 
-```
+```ts
 interface Builder {
     build: () => void
 }
diff --git a/zh-cn/application-dev/ui/ui-ts-creating-simple-page.md b/zh-cn/application-dev/ui/ui-ts-creating-simple-page.md
index 2b3463b86220f42a37bcdd1101b9beb2a1f1cb7d..1a6c7469f65fc06056fed280aaebb3a3216e8c23 100644
--- a/zh-cn/application-dev/ui/ui-ts-creating-simple-page.md
+++ b/zh-cn/application-dev/ui/ui-ts-creating-simple-page.md
@@ -440,9 +440,6 @@
            .fontWeight(FontWeight.Bold)
            .layoutWeight(1)
          Flex({ alignItems: ItemAlign.Center }) {
-           Circle({width: 6, height: 6})
-             .margin({right: 12})
-             .fill(colorValue)
            Text(name)
              .fontSize(17.4)
              .flexGrow(1)
diff --git a/zh-cn/application-dev/ui/ui-ts-layout-flex.md b/zh-cn/application-dev/ui/ui-ts-layout-flex.md
index 7706637b7cd3f73395b027db4340fdb2f671c77a..2fe5474f2ac9a6ebee04cb63cb4ebe0311112758 100644
--- a/zh-cn/application-dev/ui/ui-ts-layout-flex.md
+++ b/zh-cn/application-dev/ui/ui-ts-layout-flex.md
@@ -17,7 +17,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexDirection.Row(默认值):主轴为水平方向,子组件从起始端沿着水平方向开始排布。
 
-  ```
+  ```ts
   Flex({ direction: FlexDirection.Row }) {
     Text('1').width('33%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('33%').height(50).backgroundColor(0xD2B48C)
@@ -33,7 +33,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexDirection.RowReverse:主轴为水平方向,子组件从终点端沿着FlexDirection.Row相反的方向开始排布。
 
-  ```
+  ```ts
   Flex({ direction: FlexDirection.RowReverse }) {
     Text('1').width('33%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('33%').height(50).backgroundColor(0xD2B48C)
@@ -49,7 +49,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexDirection.Column:主轴为垂直方向,子组件从起始端沿着垂直方向开始排布。
 
-  ```
+  ```ts
   Flex({ direction: FlexDirection.Column }) {
     Text('1').width('100%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('100%').height(50).backgroundColor(0xD2B48C)
@@ -65,7 +65,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexDirection.ColumnReverse:主轴为垂直方向,子组件从终点端沿着FlexDirection.Column相反的方向开始排布。
 
-  ```
+  ```ts
   Flex({ direction: FlexDirection.ColumnReverse }) {
     Text('1').width('100%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('100%').height(50).backgroundColor(0xD2B48C)
@@ -86,7 +86,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexWrap.NoWrap : 不换行。如果子元素的宽度总和大于父元素的宽度,则子元素会被压缩宽度。
 
-  ```
+  ```ts
   Flex({ wrap: FlexWrap.NoWrap }) {
     Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
@@ -101,7 +101,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexWrap.Wrap:换行。
 
-  ```
+  ```ts
   Flex({ wrap: FlexWrap.Wrap }) {
     Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
@@ -116,7 +116,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexWrap.WrapReverse:换行,且与行排列方向相反。
 
-  ```
+  ```ts
   Flex({ wrap: FlexWrap.WrapReverse}) {
     Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
     Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
@@ -139,7 +139,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.Start: 元素在主轴方向首端对齐, 第一个元素与行首对齐,同时后续的元素与前一个对齐。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.Start }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -154,7 +154,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.Center: 元素在主轴方向中心对齐,第一个元素与行首的距离与最后一个元素与行尾距离相同。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.Center }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -169,7 +169,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.End: 元素在主轴方向尾部对齐,  最后一个元素与行尾对齐,其他元素与后一个对齐。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.End }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -184,7 +184,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.SpaceBetween:  Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。 第一个元素与行首对齐,最后一个元素与行尾对齐。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.SpaceBetween }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -199,7 +199,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.SpaceAround:  Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。 第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.SpaceAround }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -214,7 +214,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - FlexAlign.SpaceEvenly:  Flex主轴方向元素等间距布局, 相邻元素之间的间距、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
 
-  ```
+  ```ts
   Flex({ justifyContent: FlexAlign.SpaceEvenly }) {  
     Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)  
     Text('2').width('20%').height(50).backgroundColor(0xD2B48C)   
@@ -234,7 +234,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.Auto: 使用Flex容器中默认配置。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.Auto }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -249,7 +249,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.Start: 交叉轴方向首部对齐。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.Start }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -264,7 +264,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.Center: 交叉轴方向居中对齐。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.Center }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -279,7 +279,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.End:交叉轴方向底部对齐。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.End }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -294,7 +294,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.Stretch:交叉轴方向拉伸填充,在未设置尺寸时,拉伸到容器尺寸。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.Stretch }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -309,7 +309,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
 - ItemAlign.Baseline:交叉轴方向文本基线对齐。
 
-  ```
+  ```ts
   Flex({ alignItems: ItemAlign.Baseline }) {  
     Text('1').width('33%').height(30).backgroundColor(0xF5DEB3)  
     Text('2').width('33%').height(40).backgroundColor(0xD2B48C)  
@@ -344,7 +344,7 @@ Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容
 
   可使用弹性布局做出子元素排列方式为水平方向排列,且子元素的总宽度超出父元素的宽度不换行,子元素在水平方向两端对齐,中间间距由除首尾外的子元素平分,竖直方向上子元素居中的效果。
 
-```
+```ts
 @Entry
 @Component
 struct FlexExample {
@@ -374,4 +374,6 @@ struct FlexExample {
 
 针对弹性布局开发,有以下相关实例可供参考:
 
-- [弹性布局(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/FlowLayoutEts)
+- [弹性布局(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/FlowLayoutEts)
+
+- [ArkUI常用布局容器对齐方式(eTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/LayoutAlignmentDemo)
diff --git a/zh-cn/application-dev/ui/ui-ts-layout-grid-container.md b/zh-cn/application-dev/ui/ui-ts-layout-grid-container.md
index e32f4b0b2c140bd70006b4e0fdb2879812fadcfc..8fc5f5cfe572208bc16d23fe458c0e4074212fea 100644
--- a/zh-cn/application-dev/ui/ui-ts-layout-grid-container.md
+++ b/zh-cn/application-dev/ui/ui-ts-layout-grid-container.md
@@ -50,13 +50,13 @@
 
 - 可以通过参数定义栅格布局的总列数(columns),间隔(gutter),两侧边距(margin)。例如栅格容器总共分为6列,列与列间隔为10vp, 两侧边距为20vp:
 
-  ```
+  ```ts
   GridContainer({ columns: 6, gutter: 10, margin: 20 }) {}
   ```
 
   栅格容器不设置参数,或者sizeType设置为SizeType.Auto时使用默认的栅格系统定义,如:
 
-  ```
+  ```ts
   GridContainer() {}
   ```
 
@@ -64,10 +64,9 @@
 
 - 也可以通过参数sizeType指定此栅格容器内的组件使用此设备宽度类型的栅格设置,如:
 
-  ```
+  ```ts
   GridContainer({ sizeType: SizeType.SM) {
        Row() {
-
          Text('1')
            .useSizeType({
              xs: { span: 2},
@@ -85,7 +84,7 @@
 
 栅格容器中的组件使用通用属性useSizeType设置不同的设备宽度类型的占用列数和列偏移。其中span表示栅格容器组件占据columns的数量;offest表示列偏移量,指将组件放置在哪一个columns上。 如:
 
-```
+```ts
 GridContainer() {
    Row() {
      Text('1')
@@ -103,7 +102,7 @@ GridContainer() {
 
 使用栅格布局可以灵活地在不同的设备宽度类型下呈现合适的效果,而不必书写大量的代码兼容不同宽度类型的设备。  
 
-```
+```ts
 @Entry
 @Component
 struct GridContainerExample {
diff --git a/zh-cn/application-dev/ui/ui-ts-layout-mediaquery.md b/zh-cn/application-dev/ui/ui-ts-layout-mediaquery.md
index 11a08f36e61d599bc956732dce4019c26262fc80..85b9d19fd65520302a9889724eb4e69f86f915ab 100644
--- a/zh-cn/application-dev/ui/ui-ts-layout-mediaquery.md
+++ b/zh-cn/application-dev/ui/ui-ts-layout-mediaquery.md
@@ -18,11 +18,11 @@
 import mediaquery from '@ohos.mediaquery'
 ```
 然后通过matchMediaSync接口设置媒体查询条件,并保存返回的条件监听句柄,例如:
-```
+```ts
 listener = mediaquery.matchMediaSync('(orientation: landscape)')
 ```
 最后通过上面保存的条件监听句柄listener去注册回调函数,在回调函数里更改页面布局或者实现业务逻辑,当匹配到媒体查询条件时会触发此回调函数,例如:
-```
+```ts
 onPortrait(mediaQueryResult) {
     if (mediaQueryResult.matches) {
         // do something here
@@ -63,8 +63,8 @@ listener.on('change', onPortrait)
 | 类型       | 说明                                       |
 | -------- | ---------------------------------------- |
 | and      | 将多个媒体特征(Media&nbsp;Feature)以“与”的方式连接成一个媒体查询,只有当所有媒体特征都为true,查询条件成立。另外,它还可以将媒体类型和媒体功能结合起来。<br/>例如:screen&nbsp;and&nbsp;(device-type:&nbsp;wearable)&nbsp;and&nbsp;(max-height:&nbsp;600)&nbsp;表示当设备类型是智能穿戴同时应用的最大高度小于等于600个像素单位时成立。 |
-| not      | 取反媒体查询结果,媒体查询结果不成立时返回true,否则返回false。在媒体查询列表中应用not,则not仅取反应用它的媒体查询。<br/>例如:not&nbsp;screen&nbsp;and&nbsp;(min-height:&nbsp;50)&nbsp;and&nbsp;(max-height:&nbsp;600)&nbsp;表示当应用高度小于50个像素单位或者大于600个像素单位时成立。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;使用not运算符时必须指定媒体类型。 |
-| only     | 当整个表达式都匹配时,才会应用选择的样式,可以应用在防止某些较早的版本的浏览器上产生歧义的场景。一些较早版本的浏览器对于同时包含了媒体类型和媒体特征的语句会产生歧义,比如:<br/>screen&nbsp;and&nbsp;(min-height:&nbsp;50)<br/>老版本浏览器会将这句话理解成screen,从而导致仅仅匹配到媒体类型(screen),就应用了指定样式,使用only可以很好地规避这种情况。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;使用only时必须指定媒体类型。 |
+| not      | 取反媒体查询结果,媒体查询结果不成立时返回true,否则返回false。在媒体查询列表中应用not,则not仅取反应用它的媒体查询。<br/>例如:not&nbsp;screen&nbsp;and&nbsp;(min-height:&nbsp;50)&nbsp;and&nbsp;(max-height:&nbsp;600)&nbsp;表示当应用高度小于50个像素单位或者大于600个像素单位时成立。<br/>使用not运算符时必须指定媒体类型。 |
+| only     | 当整个表达式都匹配时,才会应用选择的样式,可以应用在防止某些较早的版本的浏览器上产生歧义的场景。一些较早版本的浏览器对于同时包含了媒体类型和媒体特征的语句会产生歧义,比如:<br/>screen&nbsp;and&nbsp;(min-height:&nbsp;50)<br/>老版本浏览器会将这句话理解成screen,从而导致仅仅匹配到媒体类型(screen),就应用了指定样式,使用only可以很好地规避这种情况。<br/>使用only时必须指定媒体类型。 |
 | ,(comma) | 将多个媒体特征以“或”的方式连接成一个媒体查询,如果存在结果为true的媒体特征,则查询条件成立。其效果等同于or运算符。<br/>例如:screen&nbsp;and&nbsp;(min-height:&nbsp;1000),&nbsp;&nbsp;(round-screen:true)&nbsp;表示当应用高度大于等于1000个像素单位或者设备屏幕是圆形时,条件成立。 |
 | or       | 将多个媒体特征以“或”的方式连接成一个媒体查询,如果存在结果为true的媒体特征,则查询条件成立。<br/>例如:screen&nbsp;and&nbsp;(max-height:&nbsp;1000)&nbsp;or&nbsp;&nbsp;(round-screen:true)表示当应用高度小于等于1000个像素单位或者设备屏幕是圆形时,条件成立。 |
 
@@ -142,10 +142,12 @@ listener.on('change', onPortrait)
     }
   }
   ```
-横屏下文本内容为Landscape,颜色为#FFD700。<br/>
+横屏下文本内容为Landscape,颜色为#FFD700。
+
 ![zh-cn_image_0000001262954829](figures/zh-cn_image_0000001262954829.png)
 
-非横屏下文本内容为Portrait,颜色为#DB7093。<br/>
+非横屏下文本内容为Portrait,颜色为#DB7093。
+
 ![zh-cn_image_0000001263074739](figures/zh-cn_image_0000001263074739.png)
 
 ## 相关实例
diff --git a/zh-cn/application-dev/ui/ui-ts-local-storage.md b/zh-cn/application-dev/ui/ui-ts-local-storage.md
index 901c78f8b61108feb61685d7d8fa1d1fd5ea8ca8..9fb55fdaa18b4a90cc7f563dec0da43ddfac0533 100644
--- a/zh-cn/application-dev/ui/ui-ts-local-storage.md
+++ b/zh-cn/application-dev/ui/ui-ts-local-storage.md
@@ -20,7 +20,7 @@ Ability: 一个应用程序可以拥有多个Ability,一个Ability中的所
 
 > **说明:** 创建LocalStorage实例时如未定义初始值,可以使用组件内@LocalStorageLink和@LocalStorageProp的初始值。如果定义时给定了初始值,那么不会再使用@LocalStorageLink和@LocalStorageProp的初始值。
 
-## LocalStorage接口
+## LocalStorage
 
 ### constructor  
 
@@ -30,9 +30,25 @@ constructor(initializingProperties?: Object)
 
 **参数:**
 
-| 参数名                 | 类型   | 必填 | 默认值 | 参数描述                                                     |
-| ---------------------- | ------ | :--: | ------ | ------------------------------------------------------------ |
-| initializingProperties | Object |  否  | -      | object.keys(obj)返回的所有对象属性及其值都将添加到LocalStorage。 |
+| 参数名                    | 类型     |  必填  | 默认值  | 参数描述                                     |
+| ---------------------- | ------ | :--: | ---- | ---------------------------------------- |
+| initializingProperties | Object |  否   | -    | object.keys(obj)返回的所有对象属性及其值都将添加到LocalStorage。 |
+
+
+
+### GetShared
+
+static GetShared(): LocalStorage
+
+获取当前的共享的LocalStorage对象。
+
+此接口仅可在Stage模型下使用。
+
+**返回值:**
+
+| 类型                            | 描述                |
+| ----------------------------- | ----------------- |
+| [LocalStorage](#localstorage) | 返回LocalStorage对象。 |
 
 
 
@@ -44,14 +60,14 @@ has(propName: string): boolean
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述       |
-| -------- | ------ | :--: | ------ | -------------- |
-| propName | string |  是  | -      | 属性的属性值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述    |
+| -------- | ------ | :--: | ---- | ------- |
+| propName | string |  是   | -    | 属性的属性值。 |
 
 **返回值:**
 
-| 类型    | 描述                       |
-| ------- | -------------------------- |
+| 类型      | 描述            |
+| ------- | ------------- |
 | boolean | 返回属性的属性值是否存在。 |
 
 
@@ -64,14 +80,14 @@ get\<T>(propName: string): T
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述            |
-| -------- | ------ | :--: | ------ | ------------------- |
-| propName | string |  是  | -      | 要获取对应的key值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述        |
+| -------- | ------ | :--: | ---- | ----------- |
+| propName | string |  是   | -    | 要获取对应的key值。 |
 
 **返回值:**
 
-| 类型           | 描述                                                    |
-| -------------- | ------------------------------------------------------- |
+| 类型             | 描述                                       |
+| -------------- | ---------------------------------------- |
 | T \| undefined | 当keyvalue存在时,返回keyvalue值。不存在返回undefined。 |
 
 
@@ -84,15 +100,15 @@ set\<T>(propName: string, newValue: T): boolean
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述          |
-| -------- | ------ | :--: | ------ | ----------------- |
-| propName | string |  是  | -      | 要设置的key值。   |
-| newValue | T      |  是  | -      | 要设置的value值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述        |
+| -------- | ------ | :--: | ---- | ----------- |
+| propName | string |  是   | -    | 要设置的key值。   |
+| newValue | T      |  是   | -    | 要设置的value值。 |
 
 **返回值:**
 
-| 类型    | 描述                                                  |
-| ------- | ----------------------------------------------------- |
+| 类型      | 描述                                  |
+| ------- | ----------------------------------- |
 | boolean | 如果存在key值,设置value值并返回true,否则返回false。 |
 
 
@@ -105,15 +121,15 @@ setOrCreate\<T>(propName: string, newValue: T): boolean
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述                |
-| -------- | ------ | :--: | ------ | ----------------------- |
-| propName | string |  是  | -      | 要更新或者创建的key值。 |
-| newValue | T      |  是  | -      | 要更新或创建的value值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述           |
+| -------- | ------ | :--: | ---- | -------------- |
+| propName | string |  是   | -    | 要更新或者创建的key值。  |
+| newValue | T      |  是   | -    | 要更新或创建的value值。 |
 
 **返回值:**
 
-| 类型    | 描述                                                         |
-| ------- | ------------------------------------------------------------ |
+| 类型      | 描述                                       |
+| ------- | ---------------------------------------- |
 | boolean | 如果已存在与给定键名字相同的属性,更新其值且返回true。如果不存在具有给定名称的属性,在LocalStorage中创建具有给定默认值的新属性,默认值必须是T类型。不允许undefined 或 null 返回true。 |
 
 
@@ -126,14 +142,14 @@ link\<T>(propName: string): T
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述               |
-| -------- | ------ | :--: | ------ | ---------------------- |
-| propName | string |  是  | -      | 要双向绑定的属性名称。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述        |
+| -------- | ------ | :--: | ---- | ----------- |
+| propName | string |  是   | -    | 要双向绑定的属性名称。 |
 
 **返回值:**
 
-| 类型 | 描述                                                         |
-| ---- | ------------------------------------------------------------ |
+| 类型   | 描述                                       |
+| ---- | ---------------------------------------- |
 | T    | 如果存在具有给定键的属性,返回到此属性的双向绑定,该双向绑定意味着变量或者组件对数据的更改将同步到LocalStorage,然后通过LocalStorage实例同步到任何变量或组件。如果不存在给定键的属性,返回undefined。 |
 
 
@@ -146,15 +162,15 @@ setAndLink\<T>(propName: string, defaultValue: T): T
 
 **参数:**
 
-| 参数名       | 类型   | 必填 | 默认值 | 参数描述             |
-| ------------ | ------ | :--: | ------ | -------------------- |
-| propName     | string |  是  | -      | 要进行创建的key值。  |
-| defaultValue | T      |  是  | -      | 要进行设置的默认值。 |
+| 参数名          | 类型     |  必填  | 默认值  | 参数描述        |
+| ------------ | ------ | :--: | ---- | ----------- |
+| propName     | string |  是   | -    | 要进行创建的key值。 |
+| defaultValue | T      |  是   | -    | 要进行设置的默认值。  |
 
 **返回值:**
 
-| 类型                                  | 描述                                                         |
-| ------------------------------------- | ------------------------------------------------------------ |
+| 类型                                    | 描述                                       |
+| ------------------------------------- | ---------------------------------------- |
 | [@Link](ts-component-states-link.md ) | 与Link接口类似,如果当前的key保存于LocalStorage,返回该key值对应的value值。如果该key值未被创建,则创建一个对应的defaultValue的Link返回。 |
 
 
@@ -167,14 +183,14 @@ prop\<T>(propName: string): T
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述                |
-| -------- | ------ | :--: | ------ | ----------------------- |
-| propName | string |  是  | -      | 要单向数据绑定的key值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述          |
+| -------- | ------ | :--: | ---- | ------------- |
+| propName | string |  是   | -    | 要单向数据绑定的key值。 |
 
 **返回值:**
 
-| 类型                                 | 描述                                                         |
-| ------------------------------------ | ------------------------------------------------------------ |
+| 类型                                   | 描述                                       |
+| ------------------------------------ | ---------------------------------------- |
 | [@Prop](ts-component-states-prop.md) | 如果存在具有给定键的属性,返回此属性的单向数据绑定。该单向绑定意味着只能通过LocalStorage将属性的更改同步到变量或组件。该方法返回的变量为不可变变量,适用于可变和不可变的状态变量。如果此键的属性不存在则返回undefined。 |
 
 
@@ -187,15 +203,15 @@ setAndProp\<T>(propName: string, defaultValue: T): T
 
 **参数:**
 
-| 参数名       | 类型   | 必填 | 默认值 | 参数描述                    |
-| ------------ | ------ | :--: | ------ | --------------------------- |
-| propName     | string |  是  | -      | 要保存的的键值对中的key值。 |
-| defaultValue | T      |  是  | -      | 创建的默认值。              |
+| 参数名          | 类型     |  必填  | 默认值  | 参数描述            |
+| ------------ | ------ | :--: | ---- | --------------- |
+| propName     | string |  是   | -    | 要保存的的键值对中的key值。 |
+| defaultValue | T      |  是   | -    | 创建的默认值。         |
 
 **返回值:**
 
-| 类型                                 | 描述                                                         |
-| ------------------------------------ | ------------------------------------------------------------ |
+| 类型                                   | 描述                                       |
+| ------------------------------------ | ---------------------------------------- |
 | [@Prop](ts-component-states-prop.md) | 如果当前的key保存与LocalStorage,返回该key值对应的value值。如果该key值未被创建,则创建一个对应的defaultValue的Prop返回。 |
 
 
@@ -208,14 +224,14 @@ delete(propName: string): boolean
 
 **参数:**
 
-| 参数名   | 类型   | 必填 | 默认值 | 参数描述              |
-| -------- | ------ | :--: | ------ | --------------------- |
-| propName | string |  是  | -      | 要删除的属性的key值。 |
+| 参数名      | 类型     |  必填  | 默认值  | 参数描述         |
+| -------- | ------ | :--: | ---- | ------------ |
+| propName | string |  是   | -    | 要删除的属性的key值。 |
 
 **返回值:**
 
-| 类型    | 描述                                                         |
-| ------- | ------------------------------------------------------------ |
+| 类型      | 描述                                       |
+| ------- | ---------------------------------------- |
 | boolean | 删除key指定的键值对,如果存在且删除成功返回true,不存在或删除失败返回false。 |
 
 
@@ -228,8 +244,8 @@ keys(): IterableIterator\<string>
 
 **返回值:**
 
-| 类型          | 描述                         |
-| ------------- | ---------------------------- |
+| 类型             | 描述             |
+| -------------- | -------------- |
 | array\<string> | 返回包含所有键的字符串数组。 |
 
 
@@ -242,8 +258,8 @@ size(): number
 
 **返回值:**
 
-| 类型   | 描述               |
-| ------ | ------------------ |
+| 类型     | 描述        |
+| ------ | --------- |
 | number | 返回键值对的数量。 |
 
 
@@ -256,8 +272,8 @@ clear(): boolean
 
 **返回值:**
 
-| 类型    | 描述                                                         |
-| ------- | ------------------------------------------------------------ |
+| 类型      | 描述                                |
+| ------- | --------------------------------- |
 | boolean | 删除所有的属性,如果当前有状态变量依旧引用此属性,返回false。 |
 
 ### 示例1(在一个Ability创建的LocalStorage)
@@ -292,7 +308,7 @@ export default class MainAbility extends Ability {
 
 @Component组件获取数据
 
-```
+```ts
 let storage = LocalStorage.GetShared()
 @Entry(storage)
 @Component
@@ -314,7 +330,7 @@ struct LocalStorageComponent {
 
 ### 示例2(在Entry页面定义LocalStorage)
 
-```
+```ts
 let storage = new LocalStorage({"PropA":47});
 @Entry(storage)
 @Component 
diff --git a/zh-cn/application-dev/ui/ui-ts-overview.md b/zh-cn/application-dev/ui/ui-ts-overview.md
index c1c2f3bcf2de96e6948d6e62b0e8f70f6d73770d..4bec8a1c14aada55c870218b046f87debb2ae319 100644
--- a/zh-cn/application-dev/ui/ui-ts-overview.md
+++ b/zh-cn/application-dev/ui/ui-ts-overview.md
@@ -75,22 +75,38 @@
 
 - [`BringApp`:拉起系统应用(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/BringApp)
 
+- [`Chat`:聊天示例应用(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/AppSample/Chat)
+
+- [`Shopping`:购物示例应用(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/AppSample/Shopping)
+
+- [`Lottie`:Lottie(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/Lottie)
+
 - [`Clock`:简单时钟(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/Preset/Clock)
 
 - [`Flybird`:小鸟避障游戏(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ResourcesSchedule/Flybird)
 
 - [`News`:新闻浏览(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ResourcesSchedule/News)
 
-- [极简声明式UI范式(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SimpleGalleryEts)
+- [`AdaptiveCapabilities`:多设备自适应能力(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/MultiDeviceAppDev/AdaptiveCapabilities)
+
+- [`Game2048`:2048游戏(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/Game2048)
+
+- [`TransitionAnimation`:转场动画(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/TransitionAnimation)
+
+- [`PatternLock`:图案密码锁组件(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/PatternLock)
+
+- [`Search`:Search组件(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/Search)
+
+- [`QRCode`:二维码(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/QRCode)
 
-- [购物应用(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/ShoppingEts)
+- [极简声明式UI范式(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SimpleGalleryEts)
 
-- [转场动画的使用(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/TransitionAnimtaionEts)
+- [购物应用(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/ShoppingEts)
 
-- [基础组件Slider的使用(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SliderApplicationEts)
+- [转场动画的使用(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/TransitionAnimtaionEts)
 
-- [弹窗(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/CustomDialogEts)
+- [基础组件Slider的使用(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SliderApplicationEts)
 
-- [一次开发多端部署(eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/MultiDeploymentEts)
+- [弹窗(eTS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/CustomDialogEts)
 
 - [CustomComponent:组件化(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/CustomComponent)
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ui-ts-page-redirection-data-transmission.md b/zh-cn/application-dev/ui/ui-ts-page-redirection-data-transmission.md
index 02db871f12db11b97be6d30f1bb23d21a86e2e30..95d0a3133396bcc367618d1c84646fb291d31716 100644
--- a/zh-cn/application-dev/ui/ui-ts-page-redirection-data-transmission.md
+++ b/zh-cn/application-dev/ui/ui-ts-page-redirection-data-transmission.md
@@ -19,7 +19,7 @@
 下面我们就分别学习这两种跳转机制来实现食物分类列表页面和食物详情页的链接。
 
 1. 点击FoodListItem后跳转到FoodDetail页面。在FoodListItem内创建Navigator组件,使其子组件都具有路由功能,目标页面target为'pages/FoodDetail'。
-   ```
+   ```ts
    @Component
    struct FoodListItem {
      private foodItem: FoodData
@@ -48,7 +48,7 @@
    ![zh-cn_image_0000001215318403](figures/zh-cn_image_0000001215318403.gif)
 
 2. 点击FoodGridItem后跳转到FoodDetail页面。调用页面路由router模块的push接口,将FoodDetail页面推到路由栈中,实现页面跳转。使用router路由API接口,需要先引入router。
-   ```
+   ```ts
    import router from '@system.router'
 
    @Component
@@ -70,7 +70,7 @@
    ![zh-cn_image_0000001169918548](figures/zh-cn_image_0000001169918548.gif)
 
 3. 在FoodDetail页面增加回到食物列表页面的图标。在resources &gt; base &gt; media文件夹下存入回退图标Back.png。新建自定义组件PageTitle,包含后退的图标和Food Detail的文本,调用路由的router.back()接口,弹出路由栈最上面的页面,即返回上一级页面。
-   ```
+   ```ts
    // FoodDetail.ets
    import router from '@system.router'
 
@@ -96,7 +96,7 @@
    ```
 
 4. 在FoodDetail组件内创建Stack组件,包含子组件FoodImageDisplay和PageTitle子组件,设置其对齐方式为左上对齐TopStart。
-   ```
+   ```ts
    @Entry
    @Component
    struct FoodDetail {
@@ -121,7 +121,7 @@
 我们已经完成了FoodCategoryList页面和FoodDetail页面的跳转和回退,但是点击不同的FoodListItem/FoodGridItem,跳转的FoodDetail页面都是西红柿Tomato的详细介绍,这是因为没有构建起两个页面的数据传递,需要用到携带参数(parameter)路由。
 
 1. 在FoodListItem组件的Navigator设置其params属性,params属性接受key-value的Object。
-   ```
+   ```ts
    // FoodList.ets
    @Component
    struct FoodListItem {
@@ -137,7 +137,7 @@
 
    FoodGridItem调用的routerAPI同样有携带参数跳转的能力,使用方法和Navigator类似。
 
-   ```
+   ```ts
    router.push({
      uri: 'pages/FoodDetail',
      params: { foodData: this.foodItem }
@@ -145,7 +145,7 @@
    ```
 
 2. FoodDetail页面引入FoodData类,在FoodDetail组件内添加foodItem成员变量。
-   ```
+   ```ts
    // FoodDetail.ets
    import { FoodData } from '../model/FoodData'
 
@@ -160,7 +160,7 @@
    ```
 
 3. 获取foodData对应的value。调用router.getParams().foodData来获取到FoodCategoryList页面跳转来时携带的foodDate对应的数据。
-   ```
+   ```ts
    @Entry
    @Component
    struct FoodDetail {
@@ -173,7 +173,7 @@
    ```
 
 4. 重构FoodDetail页面的组件。在构建视图时,FoodDetail页面的食物信息都是直接声明的常量,现在要用传递来的FoodData数据来对其进行重新赋值。整体的FoodDetail.ets代码如下。
-   ```
+   ```ts
    @Component
    struct PageTitle {
        build() {
diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md
index 2e458bc5ee479c197ca853d7fa15576ff7b43fa9..30d39ae55f5ec9ab7cb6d5d8ae142e971ad07862 100644
--- a/zh-cn/application-dev/website.md
+++ b/zh-cn/application-dev/website.md
@@ -4,16 +4,15 @@
 
   - 快速入门
     - [开发准备](quick-start/start-overview.md)
-    - [使用eTS语言开发(传统代码方式)](quick-start/start-with-ets.md)
-    - [使用eTS语言开发(低代码方式)](quick-start/start-with-ets-low-code.md)
-    - [使用JS语言开发(传统代码方式)](quick-start/start-with-js.md)
-    - [使用JS语言开发(低代码方式)](quick-start/start-with-js-low-code.md)
+    - [使用eTS语言开发(Stage模型)](quick-start/start-with-ets-stage.md)
+    - [使用eTS语言开发(FA模型)](quick-start/start-with-ets-fa.md)
+    - [使用JS语言开发(FA模型)](quick-start/start-with-js-fa.md)
 
   - 开发基础知识
     - [应用包结构说明(FA模型)](quick-start/package-structure.md)
     - [应用包结构说明(Stage模型)](quick-start/stage-structure.md)
-    - [资源文件的分类](quick-start/basic-resource-file-categories.md)
     - [SysCap说明](quick-start/syscap.md)
+    - [HarmonyAppProvision配置文件](quick-start/app-provision-structure.md)
 - 开发
   - Ability开发
     - [Ability框架概述](ability/ability-brief.md)
@@ -37,6 +36,77 @@
       - [测试框架使用指导](ability/ability-delegator.md)
   - UI开发
     - [方舟开发框架(ArkUI)概述](ui/arkui-overview.md)
+    - 基于TS扩展的声明式开发范式
+      - [概述](ui/ui-ts-overview.md)
+      - 框架说明
+        - 文件组织
+          - [目录结构](ui/ts-framework-directory.md)
+          - [应用代码文件访问规则](ui/ts-framework-file-access-rules.md)
+        - [js标签配置](ui/ts-framework-js-tag.md)
+        - 资源管理
+          - [资源文件的分类](ui/ui-ts-basic-resource-file-categories.md)
+          - [资源访问](ui/ts-resource-access.md)
+        - [像素单位](ui/ts-pixel-units.md)
+        - [类型定义](ui/ts-types.md)
+      - 声明式语法
+        - [描述规范使用说明](ui/ts-syntax-intro.md)
+        - 通用UI描述规范
+          - [基本概念](ui/ts-general-ui-concepts.md)
+          - 声明式UI描述规范
+            - [无构造参数配置](ui/ts-parameterless-configuration.md)
+            - [必选参数构造配置](ui/ts-configuration-with-mandatory-parameters.md)
+            - [属性配置](ui/ts-attribution-configuration.md)
+            - [事件配置](ui/ts-event-configuration.md)
+            - [子组件配置](ui/ts-child-component-configuration.md)
+          - 组件化
+            - [@Component](ui/ts-component-based-component.md)
+            - [@Entry](ui/ts-component-based-entry.md)
+            - [@Preview](ui/ts-component-based-preview.md)
+            - [@Builder](ui/ts-component-based-builder.md)
+            - [@Extend](ui/ts-component-based-extend.md)
+            - [@CustomDialog](ui/ts-component-based-customdialog.md)
+            - [@Styles](ui/ts-component-based-styles.md)
+        - UI状态管理
+          - [基本概念](ui/ts-ui-state-mgmt-concepts.md)
+          - 管理组件拥有的状态
+            - [@State](ui/ts-component-states-state.md)
+            - [@Prop](ui/ts-component-states-prop.md)
+            - [@Link](ui/ts-component-states-link.md)
+          - 管理应用程序的状态
+            - [应用程序的数据存储](ui/ts-application-states-appstorage.md)
+            - [Ability数据存储](ui/ui-ts-local-storage.md)
+            - [持久化数据管理](ui/ts-application-states-apis-persistentstorage.md)
+            - [环境变量](ui/ts-application-states-apis-environment.md)
+          - 其他类目的状态管理
+            - [Observed和ObjectLink数据管理](ui/ts-other-states-observed-objectlink.md)
+            - [@Consume和@Provide数据管理](ui/ts-other-states-consume-provide.md)
+            - [@Watch](ui/ts-other-states-watch.md)
+        - 渲染控制语法
+          - [条件渲染](ui/ts-rending-control-syntax-if-else.md)
+          - [循环渲染](ui/ts-rending-control-syntax-foreach.md)
+          - [数据懒加载](ui/ts-rending-control-syntax-lazyforeach.md)
+        - 深入理解组件化
+          - [build函数](ui/ts-function-build.md)
+          - [自定义组件初始化](ui/ts-custom-component-initialization.md)
+          - [自定义组件生命周期回调函数](ui/ts-custom-component-lifecycle-callbacks.md)
+          - [组件创建和重新初始化示例](ui/ts-component-creation-re-initialization.md)
+        - [语法糖](ui/ts-syntactic-sugar.md)
+      - 常见组件开发指导
+        - [Button开发指导](ui/ui-ts-basic-components-button.md)
+        - [Web开发指导](ui/ui-ts-components-web.md)
+      - 常见布局开发指导
+        - [弹性布局](ui/ui-ts-layout-flex.md)
+        - [栅格布局](ui/ui-ts-layout-grid-container.md)
+        - [媒体查询](ui/ui-ts-layout-mediaquery.md)
+      - 体验声明式UI
+        - [创建声明式UI工程](ui/ui-ts-creating-project.md)
+        - [初识Component](ui/ui-ts-components.md)
+        - [创建简单视图](ui/ui-ts-creating-simple-page.md)
+      - 页面布局与连接
+        - [构建食物数据模型](ui/ui-ts-building-data-model.md)
+        - [构建食物列表List布局](ui/ui-ts-building-category-list-layout.md)
+        - [构建食物分类Grid布局](ui/ui-ts-building-category-grid-layout.md)
+        - [页面跳转与数据传递](ui/ui-ts-page-redirection-data-transmission.md)
     - 基于JS扩展的类Web开发范式
       - [概述](ui/ui-js-overview.md)
       - 框架说明
@@ -60,7 +130,7 @@
           - [添加容器](ui/ui-js-building-ui-layout-external-container.md)
         - [添加交互](ui/ui-js-building-ui-interactions.md)
         - [动画](ui/ui-js-building-ui-animation.md)
-        - [事件](ui/ui-js-building-ui-event.md)
+        - [手势事件](ui/ui-js-building-ui-event.md)
         - [页面路由](ui/ui-js-building-ui-routes.md)
       - 常见组件开发指导
         - 容器组件
@@ -109,90 +179,20 @@
             - [动画动效](ui/ui-js-animate-dynamic-effects.md)
             - [动画帧](ui/ui-js-animate-frame.md)
       - [自定义组件](ui/ui-js-custom-components.md)
-    - 基于TS扩展的声明式开发范式
-      - [概述](ui/ui-ts-overview.md)
-      - 框架说明
-        - 文件组织
-          - [目录结构](ui/ts-framework-directory.md)
-          - [应用代码文件访问规则](ui/ts-framework-file-access-rules.md)
-        - [js标签配置](ui/ts-framework-js-tag.md)
-        - 资源访问
-          - [访问应用资源](ui/ts-application-resource-access.md)
-          - [访问系统资源](ui/ts-system-resource-access.md)
-          - [媒体资源类型说明](ui/ts-media-resource-type.md)
-        - [像素单位](ui/ts-pixel-units.md)
-        - [类型定义](ui/ts-types.md)
-      - 声明式语法
-        - [描述规范使用说明](ui/ts-syntax-intro.md)
-        - 通用UI描述规范
-          - [基本概念](ui/ts-general-ui-concepts.md)
-          - 声明式UI描述规范
-            - [无构造参数配置](ui/ts-parameterless-configuration.md)
-            - [必选参数构造配置](ui/ts-configuration-with-mandatory-parameters.md)
-            - [属性配置](ui/ts-attribution-configuration.md)
-            - [事件配置](ui/ts-event-configuration.md)
-            - [子组件配置](ui/ts-child-component-configuration.md)
-          - 组件化
-            - [@Component](ui/ts-component-based-component.md)
-            - [@Entry](ui/ts-component-based-entry.md)
-            - [@Preview](ui/ts-component-based-preview.md)
-            - [@Builder](ui/ts-component-based-builder.md)
-            - [@Extend](ui/ts-component-based-extend.md)
-            - [@CustomDialog](ui/ts-component-based-customdialog.md)
-            - [@Styles](ui/ts-component-based-styles.md)
-        - UI状态管理
-          - [基本概念](ui/ts-ui-state-mgmt-concepts.md)
-          - 管理组件拥有的状态
-            - [@State](ui/ts-component-states-state.md)
-            - [@Prop](ui/ts-component-states-prop.md)
-            - [@Link](ui/ts-component-states-link.md)
-          - 管理应用程序的状态
-            - [应用程序的数据存储](ui/ts-application-states-appstorage.md)
-            - [Ability数据存储](ui/ui-ts-local-storage)
-            - [持久化数据管理](ui/ts-application-states-apis-persistentstorage.md)
-            - [环境变量](ui/ts-application-states-apis-environment.md)
-          - 其他类目的状态管理
-            - [Observed和ObjectLink数据管理](ui/ts-other-states-observed-objectlink.md)
-            - [@Consume和@Provide数据管理](ui/ts-other-states-consume-provide.md)
-            - [@Watch](ui/ts-other-states-watch.md)
-        - 渲染控制语法
-          - [条件渲染](ui/ts-rending-control-syntax-if-else.md)
-          - [循环渲染](ui/ts-rending-control-syntax-foreach.md)
-          - [数据懒加载](ui/ts-rending-control-syntax-lazyforeach.md)
-        - 深入理解组件化
-          - [build函数](ui/ts-function-build.md)
-          - [自定义组件初始化](ui/ts-custom-component-initialization.md)
-          - [自定义组件生命周期回调函数](ui/ts-custom-component-lifecycle-callbacks.md)
-          - [组件创建和重新初始化示例](ui/ts-component-creation-re-initialization.md)
-        - [语法糖](ui/ts-syntactic-sugar.md)
-        - 常见组件开发指导
-          - [Button开发指导](ui/ui-ts-basic-components-button.md)
-          - [Web开发指导](ui/ui-ts-components-web.md)
-        - 常见布局开发指导
-          - [弹性布局](ui/ui-ts-layout-flex.md)
-          - [栅格布局](ui/ui-ts-layout-grid-container.md)
-          - [媒体查询](ui/ui-ts-layout-mediaquery.md)
-      - 体验声明式UI
-        - [创建声明式UI工程](ui/ui-ts-creating-project.md)
-        - [初识Component](ui/ui-ts-components.md)
-        - [创建简单视图](ui/ui-ts-creating-simple-page.md)
-      - 页面布局与连接
-        - [构建食物数据模型](ui/ui-ts-building-data-model.md)
-        - [构建食物列表List布局](ui/ui-ts-building-category-list-layout.md)
-        - [构建食物分类Grid布局](ui/ui-ts-building-category-grid-layout.md)
-        - [页面跳转与数据传递](ui/ui-ts-page-redirection-data-transmission.md)
   - 公共事件与通知
     - [公共事件与通知概述](notification/notification-brief.md)
     - [公共事件开发指导](notification/common-event.md)
-    - [通知开发指导](notification/notification.md)
-    - 后台代理提醒
-      - [后台代理概述](background-agent-scheduled-reminder/background-agent-scheduled-reminder-overview.md)
-      - [后台代理开发指导](background-agent-scheduled-reminder/background-agent-scheduled-reminder-guide.md)
+    - [通知开发指导](notification/notification-guidelines.md)
+    - 后台提醒
+      - [后台提醒开发概述](notification/background-agent-scheduled-reminder-overview.md)
+      - [后台提醒开发指导](notification/background-agent-scheduled-reminder-guide.md)
     - [调试助手使用指导](notification/assistant-guidelines.md)
   - 窗口管理
     - 窗口
       - [窗口开发概述](windowmanager/window-overview.md)
-      - [窗口开发指导](windowmanager/window-guidelines.md)
+      - [管理应用窗口(Stage模型)](windowmanager/application-window-stage.md)
+      - [管理应用窗口(FA模型)](windowmanager/application-window-fa.md)
+      - [管理系统窗口(仅Stage模型支持)](windowmanager/system-window-stage.md)
     - 屏幕属性
       - [屏幕属性开发概述](windowmanager/display-overview.md)
       - [屏幕属性开发指导](windowmanager/display-guidelines.md)
@@ -209,12 +209,21 @@
       - [音频录制开发指导](media/audio-recorder.md)
       - [音频渲染开发指导](media/audio-renderer.md)
       - [音频采集开发指导](media/audio-capturer.md)
+      - [OpenSL ES播放开发指导](media/opensles-playback.md)
+      - [OpenSL ES录音开发指导](media/opensles-capture.md)
+      - [音频焦点模式开发指导](media/audio-interruptmode.md)
     - 视频
       - [视频播放开发指导](media/video-playback.md)
       - [视频录制开发指导](media/video-recorder.md)
     - 图片
       - [图片开发指导](media/image.md)
+    - 相机
+      - [相机开发指导](media/camera.md)
   - 安全
+    - 访问控制
+      - [访问控制开发概述](security/accesstoken-overview.md)
+      - [访问控制开发指导](security/accesstoken-guidelines.md)
+      - [权限定义列表](security/permission-list.md)
     - 用户认证
       - [用户认证开发概述](security/userauth-overview.md)
       - [用户认证开发指导](security/userauth-guidelines.md)
@@ -222,10 +231,8 @@
       - [HUKS开发概述](security/huks-overview.md)
       - [HUKS开发指导](security/huks-guidelines.md)
     - Hap包签名工具
-      - [Hap包签名工具开发指导](security/hapsigntool-guidelines.md)
-    - 访问控制
-      - [访问控制开发概述](security/accesstoken-overview.md)
-      - [访问控制开发指导](security/accesstoken-guidelines.md)
+      - [Hap包签名工具概述](security/hapsigntool-overview.md)
+      - [Hap包签名工具指导](security/hapsigntool-guidelines.md)
   - 网络与连接
     - 网络管理
       - [网络管理开发概述](connectivity/net-mgmt-overview.md)
@@ -247,9 +254,9 @@
     - 关系型数据库
       - [关系型数据库概述](database/database-relational-overview.md)
       - [关系型数据库开发指导](database/database-relational-guidelines.md)
-    - 轻量级数据存储
-      - [轻量级数据存储概述](database/database-preference-overview.md)
-      - [轻量级数据存储开发指导](database/database-preference-guidelines.md)
+    - 首选项
+      - [首选项概述](database/database-preference-overview.md)
+      - [首选项开发指导](database/database-preference-guidelines.md)
     - 分布式数据对象
       - [分布式数据对象概述](database/database-distributedobject-overview.md)
       - [分布式数据对象开发指导](database/database-distributedobject-guidelines.md)
@@ -293,254 +300,217 @@
     - 分布式跟踪
       - [分布式跟踪概述](dfx/hitracechain-overview.md)
       - [分布式跟踪开发指导](dfx/hitracechain-guidelines.md)
+    - 错误管理
+      - [错误管理开发指导](dfx/errormanager-guidelines.md)
   - 国际化
     - [国际化开发概述](internationalization/international-overview.md)
     - [Intl开发指导](internationalization/intl-guidelines.md)
     - [I18n开发指导](internationalization/i18n-guidelines.md)
+  - 一次开发,多端部署
+    - [前言](key-features/multi-device-app-dev/about-this-document.md)
+    - [简介](key-features/multi-device-app-dev/introduction.md)
+    - 应用UX设计
+      - [设计原则和要点](key-features/multi-device-app-dev/design-principles.md)
+      - 应用架构设计
+        - [应用导航结构设计要求](key-features/multi-device-app-dev/navigation-design.md)
+        - [应用页面结构设计](key-features/multi-device-app-dev/page-design.md)
+      - 界面布局
+        - [概述](key-features/multi-device-app-dev/layout-design-intro.md)
+        - 布局基础
+          - [栅格系统](key-features/multi-device-app-dev/layout-grid.md)
+          - [自适应布局](key-features/multi-device-app-dev/layout-adaptive.md)
+          - [响应式布局](key-features/multi-device-app-dev/layout-responsive.md)
+        - [布局基础运用案例](key-features/multi-device-app-dev/layout-design-cases.md)
+      - 人机交互
+        - [交互基础](key-features/multi-device-app-dev/interaction-basics.md)
+        - [常见输入方式](key-features/multi-device-app-dev/common-input-modes.md)
+        - [交互事件归一](key-features/multi-device-app-dev/design-interaction-events-unification.md)
+      - 视觉风格
+        - [视觉基础](key-features/multi-device-app-dev/visual-style-basics.md)
+        - [色彩](key-features/multi-device-app-dev/visual-style-color.md)
+        - [字体](key-features/multi-device-app-dev/visual-style-font.md)
+        - [图标](key-features/multi-device-app-dev/visual-style-icon.md)
+      - [多态控件](key-features/multi-device-app-dev/design-polymorphic-components.md)
+      - [设计自检表](key-features/multi-device-app-dev/design-checklist.md)
+      - [资源](key-features/multi-device-app-dev/resource.md)
+    - [IDE使用](key-features/multi-device-app-dev/ide-usage.md)
+    - 一多能力的页面开发介绍
+      - 布局能力
+        - [布局能力简介](key-features/multi-device-app-dev/layout-intro.md)
+        - 自适应布局
+          - [自适应布局简介](key-features/multi-device-app-dev/adaptive-layout-intro.md)
+          - [拉伸能力](key-features/multi-device-app-dev/adaptive-layout-stretching.md)
+          - [均分能力](key-features/multi-device-app-dev/adaptive-layout-equalization.md)
+          - [占比能力](key-features/multi-device-app-dev/adaptive-layout-proportion.md)
+          - [缩放能力](key-features/multi-device-app-dev/adaptive-layout-scaling.md)
+          - [延伸能力](key-features/multi-device-app-dev/adaptive-layout-extension.md)
+          - [隐藏能力](key-features/multi-device-app-dev/adaptive-layout-hiding.md)
+          - [折行能力](key-features/multi-device-app-dev/adaptive-layout-wrapping.md)
+        - 响应式布局
+          - [栅格断点系统](key-features/multi-device-app-dev/grid-breakpoint.md)
+          - [媒体查询](key-features/multi-device-app-dev/media-query.md)
+          - [典型场景](key-features/multi-device-app-dev/responsive-layout-cases.md)
+      - [交互归一](key-features/multi-device-app-dev/interaction-events-unification.md)
+      - [多态组件](key-features/multi-device-app-dev/polymorphic-components.md)
+      - [资源使用](key-features/multi-device-app-dev/resource-usage.md)
+    - [一多能力的功能开发介绍](key-features/multi-device-app-dev/development-intro.md)
+    - 案例应用
+      - 短信应用
+        - [概览](key-features/multi-device-app-dev/sms-intro.md)
+        - 会话详情页面
+          - [页面结构](key-features/multi-device-app-dev/sms-session-page-structure.md)
+          - [顶部标题栏](key-features/multi-device-app-dev/sms-session-page-title-bar.md)
+          - [底部输入栏](key-features/multi-device-app-dev/sms-session-page-input-field.md)
+          - [信息列表](key-features/multi-device-app-dev/sms-session-page-message-list.md)
+          - [组合成型](key-features/multi-device-app-dev/sms-session-page-combined.md)
+        - [总结](key-features/multi-device-app-dev/sms-session-summary.md)
+      - [桌面应用](key-features/multi-device-app-dev/cases-home-screen.md)
+    - [常见问题](key-features/multi-device-app-dev/faqs.md)
   - [IDL工具规格及使用说明书](IDL/idl-guidelines.md)
   - Native API的相关指导
     - [Native API在应用工程中的使用指导](napi/napi-guidelines.md)
     - [Drawing开发指导](napi/drawing-guidelines.md)
     - [Rawfile开发指导](napi/rawfile-guidelines.md)
+    - [Window开发指导](napi/native-window-guidelines.md)
 - 工具
   - [DevEco Studio(OpenHarmony)使用指南](quick-start/deveco-studio-user-guide-for-openharmony.md)
 - 示例教程
   - [示例代码](https://gitee.com/openharmony/app_samples/blob/master/README_zh.md)
   - [Codelabs](https://gitee.com/openharmony/codelabs/blob/master/README.md)
 - API参考
-  - 组件参考(基于JS扩展的类Web开发范式)
-    - 组件
-      - 通用
-        - [通用属性](reference/arkui-js/js-components-common-attributes.md)
-        - [通用样式](reference/arkui-js/js-components-common-styles.md)
-        - [通用事件](reference/arkui-js/js-components-common-events.md)
-        - [通用方法](reference/arkui-js/js-components-common-methods.md)
-        - [动画样式](reference/arkui-js/js-components-common-animation.md)
-        - [渐变样式](reference/arkui-js/js-components-common-gradient.md)
-        - [转场样式](reference/arkui-js/js-components-common-transition.md)
-        - [媒体查询](reference/arkui-js/js-components-common-mediaquery.md)
-        - [自定义字体样式](reference/arkui-js/js-components-common-customizing-font.md)
-        - [原子布局](reference/arkui-js/js-components-common-atomic-layout.md)
-      - 容器组件
-        - [badge](reference/arkui-js/js-components-container-badge.md)
-        - [dialog](reference/arkui-js/js-components-container-dialog.md)
-        - [div](reference/arkui-js/js-components-container-div.md)
-        - [form](reference/arkui-js/js-components-container-form.md)
-        - [list](reference/arkui-js/js-components-container-list.md)
-        - [list-item](reference/arkui-js/js-components-container-list-item.md)
-        - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md)
-        - [panel](reference/arkui-js/js-components-container-panel.md)
-        - [popup](reference/arkui-js/js-components-container-popup.md)
-        - [refresh](reference/arkui-js/js-components-container-refresh.md)
-        - [stack](reference/arkui-js/js-components-container-stack.md)
-        - [stepper](reference/arkui-js/js-components-container-stepper.md)
-        - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md)
-        - [swiper](reference/arkui-js/js-components-container-swiper.md)
-        - [tabs](reference/arkui-js/js-components-container-tabs.md)
-        - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md)
-        - [tab-content](reference/arkui-js/js-components-container-tab-content.md)
-      - 基础组件
-        - [button](reference/arkui-js/js-components-basic-button.md)
-        - [chart](reference/arkui-js/js-components-basic-chart.md)
-        - [divider](reference/arkui-js/js-components-basic-divider.md)
-        - [image](reference/arkui-js/js-components-basic-image.md)
-        - [image-animator](reference/arkui-js/js-components-basic-image-animator.md)
-        - [input](reference/arkui-js/js-components-basic-input.md)
-        - [label](reference/arkui-js/js-components-basic-label.md)
-        - [marquee](reference/arkui-js/js-components-basic-marquee.md)
-        - [menu](reference/arkui-js/js-components-basic-menu.md)
-        - [option](reference/arkui-js/js-components-basic-option.md)
-        - [picker](reference/arkui-js/js-components-basic-picker.md)
-        - [picker-view](reference/arkui-js/js-components-basic-picker-view.md)
-        - [piece](reference/arkui-js/js-components-basic-piece.md)
-        - [progress](reference/arkui-js/js-components-basic-progress.md)
-        - [qrcode](reference/arkui-js/js-components-basic-qrcode.md)
-        - [rating](reference/arkui-js/js-components-basic-rating.md)
-        - [richtext](reference/arkui-js/js-components-basic-richtext.md)
-        - [search](reference/arkui-js/js-components-basic-search.md)
-        - [select](reference/arkui-js/js-components-basic-select.md)
-        - [slider](reference/arkui-js/js-components-basic-slider.md)
-        - [span](reference/arkui-js/js-components-basic-span.md)
-        - [switch](reference/arkui-js/js-components-basic-switch.md)
-        - [text](reference/arkui-js/js-components-basic-text.md)
-        - [textarea](reference/arkui-js/js-components-basic-textarea.md)
-        - [toolbar](reference/arkui-js/js-components-basic-toolbar.md)
-        - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md)
-        - [toggle](reference/arkui-js/js-components-basic-toggle.md)
-        - [web](reference/arkui-js/js-components-basic-web.md)
-      - 媒体组件
-        - [video](reference/arkui-js/js-components-media-video.md)
-      - 画布组件
-        - [canvas组件](reference/arkui-js/js-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D对象](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md)
-        - [Image对象](reference/arkui-js/js-components-canvas-image.md)
-        - [CanvasGradient对象](reference/arkui-js/js-components-canvas-canvasgradient.md)
-        - [ImageData对象](reference/arkui-js/js-components-canvas-imagedata.md)
-        - [Path2D对象](reference/arkui-js/js-components-canvas-path2d.md)
-        - [ImageBitmap对象](reference/arkui-js/js-components-canvas-imagebitmap.md)
-        - [OffscreenCanvas对象](reference/arkui-js/js-components-canvas-offscreencanvas.md)
-        - [OffscreenCanvasRenderingContext2D对象](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md)
-      - 栅格组件
-        - [基本概念](reference/arkui-js/js-components-grid-basic-concepts.md)
-        - [grid-container](reference/arkui-js/js-components-grid-container.md)
-        - [grid-row](reference/arkui-js/js-components-grid-row.md)
-        - [grid-col](reference/arkui-js/js-components-grid-col.md)
-      - svg组件
-        - [通用属性](reference/arkui-js/js-components-svg-common-attributes.md)
-        - [svg](reference/arkui-js/js-components-svg.md)
-        - [rect](reference/arkui-js/js-components-svg-rect.md)
-        - [circle](reference/arkui-js/js-components-svg-circle.md)
-        - [ellipse](reference/arkui-js/js-components-svg-ellipse.md)
-        - [path](reference/arkui-js/js-components-svg-path.md)
-        - [line](reference/arkui-js/js-components-svg-line.md)
-        - [polyline](reference/arkui-js/js-components-svg-polyline.md)
-        - [polygon](reference/arkui-js/js-components-svg-polygon.md)
-        - [text](reference/arkui-js/js-components-svg-text.md)
-        - [tspan](reference/arkui-js/js-components-svg-tspan.md)
-        - [textPath](reference/arkui-js/js-components-svg-textpath.md)
-        - [animate](reference/arkui-js/js-components-svg-animate.md)
-        - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md)
-        - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md)
-    - 自定义组件
-      - [基本用法](reference/arkui-js/js-components-custom-basic-usage.md)
-      - [自定义事件](reference/arkui-js/js-components-custom-events.md)
-      - [Props](reference/arkui-js/js-components-custom-props.md)
-      - [事件参数](reference/arkui-js/js-components-custom-event-parameter.md)
-      - [slot插槽](reference/arkui-js/js-components-custom-slot.md)
-      - [生命周期定义](reference/arkui-js/js-components-custom-lifecycle.md)
-    - 附录 
-      - [类型说明](reference/arkui-js/js-appendix-types.md)
   - 组件参考(基于TS扩展的声明式开发范式)
-    - 组件
-      - 通用
-        - 通用事件
-          - [点击事件](reference/arkui-ts/ts-universal-events-click.md)
-          - [触摸事件](reference/arkui-ts/ts-universal-events-touch.md)
-          - [挂载卸载事件](reference/arkui-ts/ts-universal-events-show-hide.md)
-          - [拖拽事件](reference/arkui-ts/ts-universal-events-drag-drop.md)
-          - [按键事件](reference/arkui-ts/ts-universal-events-key.md)
-          - [焦点事件](reference/arkui-ts/ts-universal-focus-event.md)
-          - [鼠标事件](reference/arkui-ts/ts-universal-mouse-key.md)
-          - [组件区域变化事件](reference/arkui-ts/ts-universal-component-area-change-event.md)
-        - 通用属性
-          - [尺寸设置](reference/arkui-ts/ts-universal-attributes-size.md)
-          - [位置设置](reference/arkui-ts/ts-universal-attributes-location.md)
-          - [布局约束](reference/arkui-ts/ts-universal-attributes-layout-constraints.md)
-          - [Flex布局](reference/arkui-ts/ts-universal-attributes-flex-layout.md)
-          - [边框设置](reference/arkui-ts/ts-universal-attributes-border.md)
-          - [背景设置](reference/arkui-ts/ts-universal-attributes-background.md)
-          - [透明度设置](reference/arkui-ts/ts-universal-attributes-opacity.md)
-          - [显隐控制](reference/arkui-ts/ts-universal-attributes-visibility.md)
-          - [禁用控制](reference/arkui-ts/ts-universal-attributes-enable.md)
-          - [浮层](reference/arkui-ts/ts-universal-attributes-overlay.md)
-          - [Z序控制](reference/arkui-ts/ts-universal-attributes-z-order.md)
-          - [图形变换](reference/arkui-ts/ts-universal-attributes-transformation.md)
-          - [图像效果](reference/arkui-ts/ts-universal-attributes-image-effect.md)
-          - [形状裁剪](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md)
-          - [文本样式设置](reference/arkui-ts/ts-universal-attributes-text-style.md)
-          - [栅格设置](reference/arkui-ts/ts-universal-attributes-grid.md)
-          - [颜色渐变](reference/arkui-ts/ts-universal-attributes-gradient-color.md)
-          - [Popup控制](reference/arkui-ts/ts-universal-attributes-popup.md)
-          - [Menu控制](reference/arkui-ts/ts-universal-attributes-menu.md)
-          - [点击控制](reference/arkui-ts/ts-universal-attributes-click.md)
-          - [焦点控制](reference/arkui-ts/ts-universal-attributes-focus.md)
-          - [悬浮态效果](reference/arkui-ts/ts-universal-attributes-hover-effect.md)
-          - [组件标识](reference/arkui-ts/ts-universal-attributes-component-id.md)
-          - [触摸热区设置](reference/arkui-ts/ts-universal-attributes-touch-target.md)
-          - [多态样式](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)
-        - 手势处理
-          - [绑定手势方法](reference/arkui-ts/ts-gesture-settings.md)
-          - 基础手势
-            - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md)
-            - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md)
-            - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md)
-            - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md)
-            - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md)
-            - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md)
-          - [组合手势](reference/arkui-ts/ts-combined-gestures.md)
-      - 基础组件
-        - [Blank](reference/arkui-ts/ts-basic-components-blank.md)
-        - [Button](reference/arkui-ts/ts-basic-components-button.md)
-        - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md)
-        - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md)
-        - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md)
-        - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md)
-        - [Divider](reference/arkui-ts/ts-basic-components-divider.md)
-        - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md)
-        - [Image](reference/arkui-ts/ts-basic-components-image.md)
-        - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md)
-        - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md)
-        - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md)
-        - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md)
-        - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md)
-        - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md)
-        - [Progress](reference/arkui-ts/ts-basic-components-progress.md)
-        - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md)
-        - [Radio](reference/arkui-ts/ts-basic-components-radio.md)
-        - [Rating](reference/arkui-ts/ts-basic-components-rating.md)
-        - [RichText](reference/arkui-ts/ts-basic-components-richtext.md)
-        - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md)
-        - [Search](reference/arkui-ts/ts-basic-components-search.md)
-        - [Select](reference/arkui-ts/ts-basic-components-select.md)
-        - [Slider](reference/arkui-ts/ts-basic-components-slider.md)
-        - [Span](reference/arkui-ts/ts-basic-components-span.md)
-        - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md)
-        - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md) 
-        - [Text](reference/arkui-ts/ts-basic-components-text.md)
-        - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md)
-        - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md)
-        - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md)
-        - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md)
-        - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md)
-        - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md)
-        - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md)
-        - [Web](reference/arkui-ts/ts-basic-components-web.md)
-        - [Xcomponent](reference/arkui-ts/ts-basic-components-xcomponent.md)
-      - 容器组件
-        - [AbilityComponent](reference/arkui-ts/ts-container-ability-component.md)
-        - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md)
-        - [Badge](reference/arkui-ts/ts-container-badge.md)
-        - [Column](reference/arkui-ts/ts-container-column.md)
-        - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md)
-        - [Counter](reference/arkui-ts/ts-container-counter.md)
-        - [Flex](reference/arkui-ts/ts-container-flex.md)
-        - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md)
-        - [Grid](reference/arkui-ts/ts-container-grid.md)
-        - [GridItem](reference/arkui-ts/ts-container-griditem.md)
-        - [List](reference/arkui-ts/ts-container-list.md)
-        - [ListItem](reference/arkui-ts/ts-container-listitem.md)
-        - [Navigator](reference/arkui-ts/ts-container-navigator.md)        
-        - [Panel](reference/arkui-ts/ts-container-panel.md)
-        - [Refresh](reference/arkui-ts/ts-container-refresh.md)
-        - [RelativeContainer](reference/arkui-ts/ts-container-relativecontainer.md)
-        - [Row](reference/arkui-ts/ts-container-row.md)
-        - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md)
-        - [Scroll](reference/arkui-ts/ts-container-scroll.md)        
-        - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md)
-        - [Stack](reference/arkui-ts/ts-container-stack.md)
-        - [Swiper](reference/arkui-ts/ts-container-swiper.md)
-        - [Tabs](reference/arkui-ts/ts-container-tabs.md)
-        - [TabContent](reference/arkui-ts/ts-container-tabcontent.md)
-      - 媒体组件
-        - [Video](reference/arkui-ts/ts-media-components-video.md)
-      - 绘制组件
-        - [Circle](reference/arkui-ts/ts-drawing-components-circle.md)
-        - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md)
-        - [Line](reference/arkui-ts/ts-drawing-components-line.md)
-        - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md)
-        - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md)
-        - [Path](reference/arkui-ts/ts-drawing-components-path.md)
-        - [Rect](reference/arkui-ts/ts-drawing-components-rect.md)
-        - [Shape](reference/arkui-ts/ts-drawing-components-shape.md)
-      - 画布组件
-        - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md)
-        - [CanvasRenderingContext2D对象](reference/arkui-ts/ts-canvasrenderingcontext2d.md)
-        - [OffscreenCanvasRenderingConxt2D对象](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md)
-        - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md)
-        - [Path2D对象](reference/arkui-ts/ts-components-canvas-path2d.md)
-        - [CanvasGradient对象](reference/arkui-ts/ts-components-canvas-canvasgradient.md)
-        - [ImageBitmap对象](reference/arkui-ts/ts-components-canvas-imagebitmap.md)
-        - [ImageData对象](reference/arkui-ts/ts-components-canvas-imagedata.md)
+    - 组件通用信息
+      - 通用事件
+        - [点击事件](reference/arkui-ts/ts-universal-events-click.md)
+        - [触摸事件](reference/arkui-ts/ts-universal-events-touch.md)
+        - [挂载卸载事件](reference/arkui-ts/ts-universal-events-show-hide.md)
+        - [拖拽事件](reference/arkui-ts/ts-universal-events-drag-drop.md)
+        - [按键事件](reference/arkui-ts/ts-universal-events-key.md)
+        - [焦点事件](reference/arkui-ts/ts-universal-focus-event.md)
+        - [鼠标事件](reference/arkui-ts/ts-universal-mouse-key.md)
+        - [组件区域变化事件](reference/arkui-ts/ts-universal-component-area-change-event.md)
+        - [组件可见区域变化事件](reference/arkui-ts/ts-universal-component-visible-area-change-event.md)
+      - 通用属性
+        - [尺寸设置](reference/arkui-ts/ts-universal-attributes-size.md)
+        - [位置设置](reference/arkui-ts/ts-universal-attributes-location.md)
+        - [布局约束](reference/arkui-ts/ts-universal-attributes-layout-constraints.md)
+        - [Flex布局](reference/arkui-ts/ts-universal-attributes-flex-layout.md)
+        - [边框设置](reference/arkui-ts/ts-universal-attributes-border.md)
+        - [图片边框设置](reference/arkui-ts/ts-universal-attributes-border-image.md)
+        - [背景设置](reference/arkui-ts/ts-universal-attributes-background.md)
+        - [透明度设置](reference/arkui-ts/ts-universal-attributes-opacity.md)
+        - [显隐控制](reference/arkui-ts/ts-universal-attributes-visibility.md)
+        - [禁用控制](reference/arkui-ts/ts-universal-attributes-enable.md)
+        - [浮层](reference/arkui-ts/ts-universal-attributes-overlay.md)
+        - [Z序控制](reference/arkui-ts/ts-universal-attributes-z-order.md)
+        - [图形变换](reference/arkui-ts/ts-universal-attributes-transformation.md)
+        - [图像效果](reference/arkui-ts/ts-universal-attributes-image-effect.md)
+        - [形状裁剪](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md)
+        - [文本样式设置](reference/arkui-ts/ts-universal-attributes-text-style.md)
+        - [栅格设置](reference/arkui-ts/ts-universal-attributes-grid.md)
+        - [颜色渐变](reference/arkui-ts/ts-universal-attributes-gradient-color.md)
+        - [Popup控制](reference/arkui-ts/ts-universal-attributes-popup.md)
+        - [Menu控制](reference/arkui-ts/ts-universal-attributes-menu.md)
+        - [点击控制](reference/arkui-ts/ts-universal-attributes-click.md)
+        - [焦点控制](reference/arkui-ts/ts-universal-attributes-focus.md)
+        - [悬浮态效果](reference/arkui-ts/ts-universal-attributes-hover-effect.md)
+        - [组件标识](reference/arkui-ts/ts-universal-attributes-component-id.md)
+        - [触摸热区设置](reference/arkui-ts/ts-universal-attributes-touch-target.md)
+        - [多态样式](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)
+      - 手势处理
+        - [绑定手势方法](reference/arkui-ts/ts-gesture-settings.md)
+        - 基础手势
+          - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md)
+          - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md)
+          - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md)
+          - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md)
+          - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md)
+          - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md)
+        - [组合手势](reference/arkui-ts/ts-combined-gestures.md)
+    - 基础组件
+      - [Blank](reference/arkui-ts/ts-basic-components-blank.md)
+      - [Button](reference/arkui-ts/ts-basic-components-button.md)
+      - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md)
+      - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md)
+      - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md)
+      - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md)
+      - [Divider](reference/arkui-ts/ts-basic-components-divider.md)
+      - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md)
+      - [Image](reference/arkui-ts/ts-basic-components-image.md)
+      - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md)
+      - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md)
+      - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md)
+      - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md)
+      - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md)
+      - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md)
+      - [Progress](reference/arkui-ts/ts-basic-components-progress.md)
+      - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md)
+      - [Radio](reference/arkui-ts/ts-basic-components-radio.md)
+      - [Rating](reference/arkui-ts/ts-basic-components-rating.md)
+      - [RemoteWindow](reference/arkui-ts/ts-basic-components-remotewindow.md)
+      - [RichText](reference/arkui-ts/ts-basic-components-richtext.md)
+      - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md)
+      - [Search](reference/arkui-ts/ts-basic-components-search.md)
+      - [Select](reference/arkui-ts/ts-basic-components-select.md)
+      - [Slider](reference/arkui-ts/ts-basic-components-slider.md)
+      - [Span](reference/arkui-ts/ts-basic-components-span.md)
+      - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md)
+      - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md)
+      - [Text](reference/arkui-ts/ts-basic-components-text.md)
+      - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md)
+      - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md)
+      - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md)
+      - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md)
+      - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md)
+      - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md)
+      - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md)
+      - [Web](reference/arkui-ts/ts-basic-components-web.md)
+      - [XComponent](reference/arkui-ts/ts-basic-components-xcomponent.md)
+    - 容器组件
+      - [AbilityComponent](reference/arkui-ts/ts-container-ability-component.md)
+      - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md)
+      - [Badge](reference/arkui-ts/ts-container-badge.md)
+      - [Column](reference/arkui-ts/ts-container-column.md)
+      - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md)
+      - [Counter](reference/arkui-ts/ts-container-counter.md)
+      - [Flex](reference/arkui-ts/ts-container-flex.md)
+      - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md)
+      - [Grid](reference/arkui-ts/ts-container-grid.md)
+      - [GridItem](reference/arkui-ts/ts-container-griditem.md)
+      - [List](reference/arkui-ts/ts-container-list.md)
+      - [ListItem](reference/arkui-ts/ts-container-listitem.md)
+      - [Navigator](reference/arkui-ts/ts-container-navigator.md)
+      - [Panel](reference/arkui-ts/ts-container-panel.md)
+      - [Refresh](reference/arkui-ts/ts-container-refresh.md)
+      - [RelativeContainer](reference/arkui-ts/ts-container-relativecontainer.md)
+      - [Row](reference/arkui-ts/ts-container-row.md)
+      - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md)
+      - [Scroll](reference/arkui-ts/ts-container-scroll.md)
+      - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md)
+      - [Stack](reference/arkui-ts/ts-container-stack.md)
+      - [Swiper](reference/arkui-ts/ts-container-swiper.md)
+      - [Tabs](reference/arkui-ts/ts-container-tabs.md)
+      - [TabContent](reference/arkui-ts/ts-container-tabcontent.md)
+    - 媒体组件
+      - [Video](reference/arkui-ts/ts-media-components-video.md)
+    - 绘制组件
+      - [Circle](reference/arkui-ts/ts-drawing-components-circle.md)
+      - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md)
+      - [Line](reference/arkui-ts/ts-drawing-components-line.md)
+      - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md)
+      - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md)
+      - [Path](reference/arkui-ts/ts-drawing-components-path.md)
+      - [Rect](reference/arkui-ts/ts-drawing-components-rect.md)
+      - [Shape](reference/arkui-ts/ts-drawing-components-shape.md)
+    - 画布组件
+      - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md)
+      - [CanvasRenderingContext2D对象](reference/arkui-ts/ts-canvasrenderingcontext2d.md)
+      - [OffscreenCanvasRenderingConxt2D对象](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md)
+      - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md)
+      - [Path2D对象](reference/arkui-ts/ts-components-canvas-path2d.md)
+      - [CanvasGradient对象](reference/arkui-ts/ts-components-canvas-canvasgradient.md)
+      - [ImageBitmap对象](reference/arkui-ts/ts-components-canvas-imagebitmap.md)
+      - [ImageData对象](reference/arkui-ts/ts-components-canvas-imagedata.md)
     - 动画
       - [属性动画](reference/arkui-ts/ts-animatorproperty.md)
       - [显式动画](reference/arkui-ts/ts-explicit-animation.md)
@@ -561,51 +531,167 @@
         - [文本选择弹窗](reference/arkui-ts/ts-methods-textpicker-dialog.md)
       - [菜单](reference/arkui-ts/ts-methods-menu.md)
     - [文档中涉及到的内置枚举值](reference/arkui-ts/ts-appendix-enums.md)
+  - 组件参考(基于JS扩展的类Web开发范式)
+    - 组件通用信息
+      - [通用属性](reference/arkui-js/js-components-common-attributes.md)
+      - [通用样式](reference/arkui-js/js-components-common-styles.md)
+      - [通用事件](reference/arkui-js/js-components-common-events.md)
+      - [通用方法](reference/arkui-js/js-components-common-methods.md)
+      - [动画样式](reference/arkui-js/js-components-common-animation.md)
+      - [渐变样式](reference/arkui-js/js-components-common-gradient.md)
+      - [转场样式](reference/arkui-js/js-components-common-transition.md)
+      - [媒体查询](reference/arkui-js/js-components-common-mediaquery.md)
+      - [自定义字体样式](reference/arkui-js/js-components-common-customizing-font.md)
+      - [原子布局](reference/arkui-js/js-components-common-atomic-layout.md)
+    - 容器组件
+      - [badge](reference/arkui-js/js-components-container-badge.md)
+      - [dialog](reference/arkui-js/js-components-container-dialog.md)
+      - [div](reference/arkui-js/js-components-container-div.md)
+      - [form](reference/arkui-js/js-components-container-form.md)
+      - [list](reference/arkui-js/js-components-container-list.md)
+      - [list-item](reference/arkui-js/js-components-container-list-item.md)
+      - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md)
+      - [panel](reference/arkui-js/js-components-container-panel.md)
+      - [popup](reference/arkui-js/js-components-container-popup.md)
+      - [refresh](reference/arkui-js/js-components-container-refresh.md)
+      - [stack](reference/arkui-js/js-components-container-stack.md)
+      - [stepper](reference/arkui-js/js-components-container-stepper.md)
+      - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md)
+      - [swiper](reference/arkui-js/js-components-container-swiper.md)
+      - [tabs](reference/arkui-js/js-components-container-tabs.md)
+      - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md)
+      - [tab-content](reference/arkui-js/js-components-container-tab-content.md)
+    - 基础组件
+      - [button](reference/arkui-js/js-components-basic-button.md)
+      - [chart](reference/arkui-js/js-components-basic-chart.md)
+      - [divider](reference/arkui-js/js-components-basic-divider.md)
+      - [image](reference/arkui-js/js-components-basic-image.md)
+      - [image-animator](reference/arkui-js/js-components-basic-image-animator.md)
+      - [input](reference/arkui-js/js-components-basic-input.md)
+      - [label](reference/arkui-js/js-components-basic-label.md)
+      - [marquee](reference/arkui-js/js-components-basic-marquee.md)
+      - [menu](reference/arkui-js/js-components-basic-menu.md)
+      - [option](reference/arkui-js/js-components-basic-option.md)
+      - [picker](reference/arkui-js/js-components-basic-picker.md)
+      - [picker-view](reference/arkui-js/js-components-basic-picker-view.md)
+      - [piece](reference/arkui-js/js-components-basic-piece.md)
+      - [progress](reference/arkui-js/js-components-basic-progress.md)
+      - [qrcode](reference/arkui-js/js-components-basic-qrcode.md)
+      - [rating](reference/arkui-js/js-components-basic-rating.md)
+      - [richtext](reference/arkui-js/js-components-basic-richtext.md)
+      - [search](reference/arkui-js/js-components-basic-search.md)
+      - [select](reference/arkui-js/js-components-basic-select.md)
+      - [slider](reference/arkui-js/js-components-basic-slider.md)
+      - [span](reference/arkui-js/js-components-basic-span.md)
+      - [switch](reference/arkui-js/js-components-basic-switch.md)
+      - [text](reference/arkui-js/js-components-basic-text.md)
+      - [textarea](reference/arkui-js/js-components-basic-textarea.md)
+      - [toolbar](reference/arkui-js/js-components-basic-toolbar.md)
+      - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md)
+      - [toggle](reference/arkui-js/js-components-basic-toggle.md)
+      - [web](reference/arkui-js/js-components-basic-web.md)
+      - [xcomponent](reference/arkui-js/js-components-basic-xcomponent.md)
+    - 媒体组件
+      - [video](reference/arkui-js/js-components-media-video.md)
+    - 画布组件
+      - [canvas组件](reference/arkui-js/js-components-canvas-canvas.md)
+      - [CanvasRenderingContext2D对象](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md)
+      - [Image对象](reference/arkui-js/js-components-canvas-image.md)
+      - [CanvasGradient对象](reference/arkui-js/js-components-canvas-canvasgradient.md)
+      - [ImageData对象](reference/arkui-js/js-components-canvas-imagedata.md)
+      - [Path2D对象](reference/arkui-js/js-components-canvas-path2d.md)
+      - [ImageBitmap对象](reference/arkui-js/js-components-canvas-imagebitmap.md)
+      - [OffscreenCanvas对象](reference/arkui-js/js-components-canvas-offscreencanvas.md)
+      - [OffscreenCanvasRenderingContext2D对象](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md)
+    - 栅格组件
+      - [基本概念](reference/arkui-js/js-components-grid-basic-concepts.md)
+      - [grid-container](reference/arkui-js/js-components-grid-container.md)
+      - [grid-row](reference/arkui-js/js-components-grid-row.md)
+      - [grid-col](reference/arkui-js/js-components-grid-col.md)
+    - svg组件
+      - [通用属性](reference/arkui-js/js-components-svg-common-attributes.md)
+      - [svg](reference/arkui-js/js-components-svg.md)
+      - [rect](reference/arkui-js/js-components-svg-rect.md)
+      - [circle](reference/arkui-js/js-components-svg-circle.md)
+      - [ellipse](reference/arkui-js/js-components-svg-ellipse.md)
+      - [path](reference/arkui-js/js-components-svg-path.md)
+      - [line](reference/arkui-js/js-components-svg-line.md)
+      - [polyline](reference/arkui-js/js-components-svg-polyline.md)
+      - [polygon](reference/arkui-js/js-components-svg-polygon.md)
+      - [text](reference/arkui-js/js-components-svg-text.md)
+      - [tspan](reference/arkui-js/js-components-svg-tspan.md)
+      - [textPath](reference/arkui-js/js-components-svg-textpath.md)
+      - [animate](reference/arkui-js/js-components-svg-animate.md)
+      - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md)
+      - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md)
+    - 自定义组件
+      - [基本用法](reference/arkui-js/js-components-custom-basic-usage.md)
+      - [继承样式](reference/arkui-js/js-components-custom-style.md)
+      - [自定义事件](reference/arkui-js/js-components-custom-events.md)
+      - [Props](reference/arkui-js/js-components-custom-props.md)
+      - [事件参数](reference/arkui-js/js-components-custom-event-parameter.md)
+      - [slot插槽](reference/arkui-js/js-components-custom-slot.md)
+      - [生命周期定义](reference/arkui-js/js-components-custom-lifecycle.md)
+    - [数据类型说明](reference/arkui-js/js-appendix-types.md)
   - 接口参考(JS及TS API)
+    - [开发说明](reference/apis/development-intro.md)
     - Ability框架
-      - [@ohos.ability.dataUriUtils (DataUriUtils模块)](reference/apis/js-apis-DataUriUtils.md)
-      - [@ohos.ability.errorCode (ErrorCode)](reference/apis/js-apis-ability-errorCode.md)
-      - [@ohos.ability.wantConstant (wantConstant)](reference/apis/js-apis-ability-wantConstant.md)
-      - [@ohos.application.Ability (Ability)](reference/apis/js-apis-application-ability.md)
-      - [@ohos.application.AbilityConstant (AbilityConstant)](reference/apis/js-apis-application-abilityConstant.md)
-      - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](reference/apis/js-apis-abilityDelegatorRegistry.md)
-      - [@ohos.application.AbilityStage (AbilityStage)](reference/apis/js-apis-application-abilitystage.md)
-      - [@ohos.application.appManager (appManager)](reference/apis/js-apis-appmanager.md)
-      - [@ohos.application.Configuration (Configuration)](reference/apis/js-apis-configuration.md)
-      - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](reference/apis/js-apis-application-DataShareExtensionAbility.md)
-      - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](reference/apis/js-apis-configurationconstant.md)
-      - [@ohos.ability.featureAbility (FeatureAbility模块)](reference/apis/js-apis-featureAbility.md)
-      - [@ohos.application.formBindingData (卡片数据绑定类)](reference/apis/js-apis-formbindingdata.md)
-      - [@ohos.application.FormExtension (FormExtension)](reference/apis/js-apis-formextension.md)
-      - [@ohos.application.formError (FormError)](reference/apis/js-apis-formerror.md)
-      - [@ohos.application.formHost (FormHost)](reference/apis/js-apis-formhost.md)
-      - [@ohos.application.formInfo (FormInfo)](reference/apis/js-apis-formInfo.md)
-      - [@ohos.application.missionManager (missionManager)](reference/apis/js-apis-missionManager.md)
-      - [@ohos.application.formProvider (FormProvider)](reference/apis/js-apis-formprovider.md)
-      - [@ohos.ability.particleAbility (particleAbility模块)](reference/apis/js-apis-particleAbility.md)
-      - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](reference/apis/js-apis-service-extension-ability.md)
-      - [@ohos.application.StartOptions (StartOptions)](reference/apis/js-apis-application-StartOptions.md)
-      - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](reference/apis/js-apis-application-staticSubscriberExtensionAbility.md)
-      - [@ohos.application.uriPermissionManager (uriPermissionManager)](reference/apis/js-apis-uripermissionmanager.md)
-      - [@ohos.application.Want (Want)](reference/apis/js-apis-application-Want.md)
-      - [@ohos.wantAgent (WantAgent模块)](reference/apis/js-apis-wantAgent.md)
-      - [dataAbilityHelper (DataAbilityHelper模块)](reference/apis/js-apis-dataAbilityHelper.md)
-      - [context (Context模块)](reference/apis/js-apis-Context.md)
-      - [AbilityContext (AbilityContext)](reference/apis/js-apis-ability-context.md)
-      - [abilityDelegator (AbilityDelegator)](reference/apis/js-apis-application-abilityDelegator.md)
-      - [abilityDelegatorArgs (AbilityDelegatorArgs)](reference/apis/js-apis-application-abilityDelegatorArgs.md)
-      - [abilityMonitor (AbilityMonitor)](reference/apis/js-apis-application-abilityMonitor.md)
-      - [AbilityRunningInfo (AbilityRunningInfo)](reference/apis/js-apis-abilityrunninginfo.md)
-      - [AbilityStageContext (AbilityStageContext)](reference/apis/js-apis-abilitystagecontext.md)
-      - [Context (Context)](reference/apis/js-apis-application-context.md)
-      - [ExtensionContext (ExtensionContext)](reference/apis/js-apis-extension-context.md)
-      - [ExtensionRunningInfo (ExtensionRunningInfo)](reference/apis/js-apis-extensionrunninginfo.md)
-      - [FormExtensionContext (FormExtensionContext)](reference/apis/js-apis-formextensioncontext.md)
-      - [MissionSnapshot (MissionSnapshot)](reference/apis/js-apis-application-MissionSnapshot.md)
-      - [PermissionRequestResult (PermissionRequestResult)](reference/apis/js-apis-permissionrequestresult.md)
-      - [ProcessRunningInfo (ProcessRunningInfo)](reference/apis/js-apis-processrunninginfo.md)
-      - [ServiceExtensionContext (ServiceExtensionContext)](reference/apis/js-apis-service-extension-context.md)
-      - [shellCmdResult (ShellCmdResult)](reference/apis/js-apis-application-shellCmdResult.md)
+      - FA模型
+        - [@ohos.ability.featureAbility (FeatureAbility模块)](reference/apis/js-apis-featureAbility.md)
+        - [@ohos.ability.particleAbility (particleAbility模块)](reference/apis/js-apis-particleAbility.md)
+        - [dataAbilityHelper (DataAbilityHelper模块)](reference/apis/js-apis-dataAbilityHelper.md)
+        - [context (Context模块)](reference/apis/js-apis-Context.md)
+      - Stage模型
+        - [@ohos.application.Ability (Ability)](reference/apis/js-apis-application-ability.md)
+        - [@ohos.application.AbilityConstant (AbilityConstant)](reference/apis/js-apis-application-abilityConstant.md)
+        - [@ohos.application.AbilityStage (AbilityStage)](reference/apis/js-apis-application-abilitystage.md)
+        - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](reference/apis/js-apis-application-abilityLifecycleCallback.md)
+        - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](reference/apis/js-apis-application-DataShareExtensionAbility.md)
+        - [@ohos.application.FormExtension (FormExtension)](reference/apis/js-apis-formextension.md)
+        - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](reference/apis/js-apis-service-extension-ability.md)
+        - [@ohos.application.StartOptions (StartOptions)](reference/apis/js-apis-application-StartOptions.md)
+        - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](reference/apis/js-apis-application-staticSubscriberExtensionAbility.md)
+        - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](reference/apis/js-apis-application-WindowExtensionAbility.md)
+        - [AbilityContext (AbilityContext)](reference/apis/js-apis-ability-context.md)
+        - [ApplicationContext (ApplicationContext)](reference/apis/js-apis-application-applicationContext.md)
+        - [AbilityStageContext (AbilityStageContext)](reference/apis/js-apis-abilitystagecontext.md)
+        - [Context (Context)](reference/apis/js-apis-application-context.md)
+        - [ExtensionContext (ExtensionContext)](reference/apis/js-apis-extension-context.md)
+        - [FormExtensionContext (FormExtensionContext)](reference/apis/js-apis-formextensioncontext.md)
+        - [PermissionRequestResult (PermissionRequestResult)](reference/apis/js-apis-permissionrequestresult.md)
+        - [ServiceExtensionContext (ServiceExtensionContext)](reference/apis/js-apis-service-extension-context.md)
+      - 通用
+        - [@ohos.ability.dataUriUtils (DataUriUtils模块)](reference/apis/js-apis-DataUriUtils.md)
+        - [@ohos.ability.errorCode (ErrorCode)](reference/apis/js-apis-ability-errorCode.md)
+        - [@ohos.ability.wantConstant (wantConstant)](reference/apis/js-apis-ability-wantConstant.md)
+        - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](reference/apis/js-apis-abilityDelegatorRegistry.md)
+        - [@ohos.application.abilityManager (AbilityManager)](reference/apis/js-apis-application-abilityManager.md)
+        - [@ohos.application.AccessibilityExtensionAbility (AccessibilityExtensionContext)](reference/apis/js-apis-accessibility-extension-context.md)
+        - [@ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)](reference/apis/js-apis-application-AccessibilityExtensionAbility.md)
+        - [@ohos.application.appManager (appManager)](reference/apis/js-apis-appmanager.md)
+        - [@ohos.application.Configuration (Configuration)](reference/apis/js-apis-configuration.md)
+        - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](reference/apis/js-apis-configurationconstant.md)
+        - [@ohos.application.EnvironmentCallback (EnvironmentCallback)](reference/apis/js-apis-application-EnvironmentCallback.md)
+        - [@ohos.application.errorManager (ErrorManager)](reference/apis/js-apis-errorManager.md)
+        - [@ohos.application.formBindingData (卡片数据绑定类)](reference/apis/js-apis-formbindingdata.md)
+        - [@ohos.application.formError (FormError)](reference/apis/js-apis-formerror.md)
+        - [@ohos.application.formHost (FormHost)](reference/apis/js-apis-formhost.md)
+        - [@ohos.application.formInfo (FormInfo)](reference/apis/js-apis-formInfo.md)
+        - [@ohos.application.formProvider (FormProvider)](reference/apis/js-apis-formprovider.md)
+        - [@ohos.application.missionManager (missionManager)](reference/apis/js-apis-missionManager.md)
+        - [@ohos.application.Want (Want)](reference/apis/js-apis-application-Want.md)
+        - [@ohos.continuation.continuationManager (ContinuationExtraParams)](reference/apis/js-apis-continuation-continuationExtraParams.md)
+        - [@ohos.continuation.continuationManager (continuationManager)](reference/apis/js-apis-continuation-continuationManager.md)
+        - [@ohos.wantAgent (WantAgent模块)](reference/apis/js-apis-wantAgent.md)
+        - [abilityDelegator (AbilityDelegator)](reference/apis/js-apis-application-abilityDelegator.md)
+        - [abilityDelegatorArgs (AbilityDelegatorArgs)](reference/apis/js-apis-application-abilityDelegatorArgs.md)
+        - [abilityMonitor (AbilityMonitor)](reference/apis/js-apis-application-abilityMonitor.md)
+        - [AbilityRunningInfo (AbilityRunningInfo)](reference/apis/js-apis-abilityrunninginfo.md)
+        - [ExtensionRunningInfo (ExtensionRunningInfo)](reference/apis/js-apis-extensionrunninginfo.md)
+        - [MissionSnapshot (MissionSnapshot)](reference/apis/js-apis-application-MissionSnapshot.md)
+        - [ProcessRunningInfo (ProcessRunningInfo)](reference/apis/js-apis-processrunninginfo.md)
+        - [shellCmdResult (ShellCmdResult)](reference/apis/js-apis-application-shellCmdResult.md)
+        - [ContinuationResult (ContinuationResult)](reference/apis/js-apis-continuation-continuationResult.md)
     - 公共事件与通知
       - [@ohos.commonEvent (公共事件模块)](reference/apis/js-apis-commonEvent.md)
       - [@ohos.events.emitter (Emitter)](reference/apis/js-apis-emitter.md)
@@ -614,20 +700,42 @@
       - [EventHub (EventHub)](reference/apis/js-apis-eventhub.md)
     - 应用程序包管理
       - [@ohos.bundle (Bundle模块)](reference/apis/js-apis-Bundle.md)
+      - [@ohos.bundle.defaultAppManager (Bundle模块)](reference/apis/js-apis-bundle-defaultAppManager.md)
+      - [@ohos.bundle.innerBundleManager (innerBundleManager模块(JS端SDK接口))](reference/apis/js-apis-Bundle-InnerBundleManager.md)
       - [@ohos.bundleState (设备使用信息统计)](reference/apis/js-apis-deviceUsageStatistics.md)
+      - [@ohos.distributedBundle (distributedBundle模块(JS端SDK接口))](reference/apis/js-apis-Bundle-distributedBundle.md)
       - [@ohos.zlib (Zip模块)](reference/apis/js-apis-zlib.md)
+      - [AbilityInfo (AbilityInfo)](reference/apis/js-apis-bundle-AbilityInfo.md)
+      - [ApplicationInfo (ApplicationInfo)](reference/apis/js-apis-bundle-ApplicationInfo.md)
+      - [BundleInfo (BundleInfo)](reference/apis/js-apis-bundle-BundleInfo.md)
+      - [BundleInstaller (BundleInstaller)](reference/apis/js-apis-bundle-BundleInstaller.md)
+      - [CustomizeData (CustomizeData)](reference/apis/js-apis-bundle-CustomizeData.md)
+      - [DispatchInfo (DispatchInfo)](reference/apis/js-apis-dispatchInfo.md)
+      - [ElementName (ElementName)](reference/apis/js-apis-bundle-ElementName.md)
+      - [ExtensionAbilityInfo (ExtensionAbilityInfo)](reference/apis/js-apis-bundle-ExtensionAbilityInfo.md)
+      - [HapModuleInfo (HapModuleInfo)](reference/apis/js-apis-bundle-HapModuleInfo.md)
+      - [LauncherAbilityInfo (LauncherAbilityInfo)](reference/apis/js-apis-bundle-LauncherAbilityInfo.md)
+      - [Metadata (Metadata)](reference/apis/js-apis-bundle-Metadata.md)
+      - [ModuleInfo (ModuleInfo)](reference/apis/js-apis-bundle-ModuleInfo.md)
+      - [PermissionDef (PermissionDef)](reference/apis/js-apis-bundle-PermissionDef.md)
+      - [RemoteAbilityInfo (RemoteAbilityInfo)](reference/apis/js-apis-bundle-remoteAbilityInfo.md)
+      - [ShortcutInfo (ShortcutInfo)](reference/apis/js-apis-bundle-ShortcutInfo.md)
     - UI界面
       - [@ohos.animator (动画)](reference/apis/js-apis-animator.md)
       - [@ohos.mediaquery (媒体查询)](reference/apis/js-apis-mediaquery.md)
       - [@ohos.prompt (弹窗)](reference/apis/js-apis-prompt.md)
       - [@ohos.router (页面路由)](reference/apis/js-apis-router.md)
+      - [@ohos.uiAppearance(用户界面外观)](reference/apis/js-apis-uiappearance.md)
     - 图形图像
+      - [@ohos.animation.windowAnimationManager (窗口动画管理)](reference/apis/js-apis-windowAnimationManager.md)
       - [@ohos.display (屏幕属性)](reference/apis/js-apis-display.md)
+      - [@ohos.effectKit (图像效果)](reference/apis/js-apis-effectKit.md)
+      - [@ohos.screen (屏幕)](reference/apis/js-apis-screen.md)
       - [@ohos.screenshot (屏幕截图)](reference/apis/js-apis-screenshot.md)
       - [@ohos.window (窗口)](reference/apis/js-apis-window.md)
       - [webgl (WebGL)](reference/apis/js-apis-webgl.md)
       - [webgl2 (WebGL2)](reference/apis/js-apis-webgl2.md)
-    - 媒体 
+    - 媒体
       - [@ohos.multimedia.audio (音频管理)](reference/apis/js-apis-audio.md)
       - [@ohos.multimedia.camera (相机管理)](reference/apis/js-apis-camera.md)
       - [@ohos.multimedia.image (图片处理)](reference/apis/js-apis-image.md)
@@ -639,13 +747,16 @@
       - [@ohos.resourceManager (资源管理)](reference/apis/js-apis-resource-manager.md)
     - 资源调度
       - [@ohos.backgroundTaskManager (后台任务管理)](reference/apis/js-apis-backgroundTaskManager.md)
+      - [@ohos.distributedMissionManager (分布式任务管理)](reference/apis/js-apis-distributedMissionManager.md)
       - [@ohos.workScheduler (延迟任务调度)](reference/apis/js-apis-workScheduler.md)
       - [@ohos.WorkSchedulerExtensionAbility (延迟任务调度回调)](reference/apis/js-apis-WorkSchedulerExtensionAbility.md)
     - 定制管理
       - [@ohos.configPolicy (配置策略)](reference/apis/js-apis-config-policy.md)
       - [@ohos.enterpriseDeviceManager (企业设备管理)](reference/apis/js-apis-enterprise-device-manager.md)
+      - [@ohos.EnterpriseAdminExtensionAbility (EnterpriseAdminExtensionAbility)](reference/apis/js-apis-EnterpriseAdminExtensionAbility.md)
     - 安全
       - [@ohos.abilityAccessCtrl (访问控制管理)](reference/apis/js-apis-abilityAccessCtrl.md)
+      - [@ohos.privacyManager (隐私管理)](reference/apis/js-apis-privacyManager.md)
       - [@ohos.security.huks (通用密钥库系统)](reference/apis/js-apis-huks.md)
       - [@ohos.userIAM.userAuth (用户认证)](reference/apis/js-apis-useriam-userauth.md)
       - [@system.cipher (加密算法)](reference/apis/js-apis-system-cipher.md)
@@ -659,7 +770,6 @@
       - [@ohos.data.preferences (首选项)](reference/apis/js-apis-data-preferences.md)
       - [@ohos.data.rdb (关系型数据库)](reference/apis/js-apis-data-rdb.md)
       - [@ohos.data.ValuesBucket (数据集)](reference/apis/js-apis-data-ValuesBucket.md)
-      - [@ohos.settings (设置数据项名称)](reference/apis/js-apis-settings.md)
       - [resultSet (结果集)](reference/apis/js-apis-data-resultset.md)
     - 文件管理
       - [@ohos.document (文件交互)](reference/apis/js-apis-document.md)
@@ -669,6 +779,7 @@
       - [@ohos.statfs (statfs)](reference/apis/js-apis-statfs.md)
       - [@ohos.storageStatistics (应用空间统计)](reference/apis/js-apis-storage-statistics.md)
       - [@ohos.volumeManager (卷管理)](reference/apis/js-apis-volumemanager.md)
+      - [@ohos.securityLabel (数据标签)](reference/apis/js-apis-securityLabel.md)
     - 电话服务
       - [@ohos.contact (联系人)](reference/apis/js-apis-contact.md)
       - [@ohos.telephony.call (拨打电话)](reference/apis/js-apis-call.md)
@@ -686,6 +797,9 @@
     - 通信与连接
       - [@ohos.bluetooth (蓝牙)](reference/apis/js-apis-bluetooth.md)
       - [@ohos.connectedTag (有源标签)](reference/apis/js-apis-connectedTag.md)
+      - [@ohos.nfc.cardEmulation (标准NFC-cardEmulation)](reference/apis/js-apis-cardEmulation.md)
+      - [@ohos.nfc.controller (标准NFC)](reference/apis/js-apis-nfcController.md)
+      - [@ohos.nfc.tag (标准NFC-Tag)](reference/apis/js-apis-nfcTag.md)
       - [@ohos.rpc (RPC通信)](reference/apis/js-apis-rpc.md)
       - [@ohos.wifi (WLAN)](reference/apis/js-apis-wifi.md)
       - [@ohos.wifiext (WLAN)](reference/apis/js-apis-wifiext.md)
@@ -696,6 +810,7 @@
       - [@ohos.hichecker (检测模式)](reference/apis/js-apis-hichecker.md)
       - [@ohos.hidebug (Debug调试)](reference/apis/js-apis-hidebug.md)
       - [@ohos.hilog (日志打印)](reference/apis/js-apis-hilog.md)
+      - [@ohos.hiSysEvent (系统事件打点)](reference/apis/js-apis-hisysevent.md)
       - [@ohos.hiTraceChain (分布式跟踪)](reference/apis/js-apis-hitracechain.md)
       - [@ohos.hiTraceMeter (性能打点)](reference/apis/js-apis-hitracemeter.md)
       - [@ohos.inputMethod (输入法框架)](reference/apis/js-apis-inputmethod.md)
@@ -704,6 +819,7 @@
       - [@ohos.screenLock (锁屏管理)](reference/apis/js-apis-screen-lock.md)
       - [@ohos.systemTime (设置系统时间)](reference/apis/js-apis-system-time.md)
       - [@ohos.wallpaper (壁纸)](reference/apis/js-apis-wallpaper.md)
+      - [@ohos.systemTimer(设置系统时间)](js-apis-system-timer.md)
       - [Timer (定时器)](reference/apis/js-apis-timer.md)
     - 设备管理
       - [@ohos.batteryInfo (电量信息)](reference/apis/js-apis-battery-info.md)
@@ -713,16 +829,17 @@
       - [@ohos.geolocation (位置服务)](reference/apis/js-apis-geolocation.md)
       - [@ohos.multimodalInput.inputConsumer (组合按键)](reference/apis/js-apis-inputconsumer.md)
       - [@ohos.multimodalInput.inputDevice (输入设备)](reference/apis/js-apis-inputdevice.md)
+      - [@ohos.multimodalInput.inputEvent (输入事件)](reference/apis/js-apis-inputevent.md)
       - [@ohos.multimodalInput.inputEventClient (注入按键)](reference/apis/js-apis-inputeventclient.md)
       - [@ohos.multimodalInput.inputMonitor (输入监听)](reference/apis/js-apis-inputmonitor.md)
-      - [@ohos.multimodalInput.inputEvent (输入事件)](reference/apis/js-apis-inputevent.md)
       - [@ohos.multimodalInput.keyCode (键值)](reference/apis/js-apis-keycode.md)
       - [@ohos.multimodalInput.keyEvent (按键输入事件)](reference/apis/js-apis-keyevent.md)
       - [@ohos.multimodalInput.mouseEvent (鼠标输入事件)](reference/apis/js-apis-mouseevent.md)
-      - [@ohos.multimodalInput.ToucEvent (触摸输入事件)](reference/apis/js-apis-touchevent.md)
+      - [@ohos.multimodalInput.touchEvent (触摸输入事件)](reference/apis/js-apis-touchevent.md)
       - [@ohos.power (系统电源管理)](reference/apis/js-apis-power.md)
       - [@ohos.runningLock (Runninglock锁)](reference/apis/js-apis-runninglock.md)
       - [@ohos.sensor (传感器)](reference/apis/js-apis-sensor.md)
+      - [@ohos.settings (设置数据项名称)](reference/apis/js-apis-settings.md)
       - [@ohos.systemParameter (系统属性)](reference/apis/js-apis-system-parameter.md)
       - [@ohos.thermal (热管理)](reference/apis/js-apis-thermal.md)
       - [@ohos.update (升级)](reference/apis/js-apis-update.md)
@@ -781,36 +898,43 @@
       - [@system.vibrator (振动)](reference/apis/js-apis-system-vibrate.md)
       - [console (日志打印)](reference/apis/js-apis-logs.md)
   - 接口参考(Native API)
-    - OpenHarmony Native API
-      - MyProject
-        - [Native XComponent](reference/native-apis/_o_h___native_x_component.md)
-        - [Native_Bundle](reference/native-apis/_native___bundle.md)
-        - [HiLog](reference/native-apis/_hi_log.md)
-        - [NativeWindow](reference/native-apis/_native_window.md)
-        - [Drawing](reference/native-apis/_drawing.md)
-        - [Rawfile](reference/native-apis/rawfile.md)
-      - 头文件
-        - [drawing_bitmap.h](reference/native-apis/drawing__bitmap_8h.md)
-        - [drawing_brush.h](reference/native-apis/drawing__brush_8h.md)
-        - [drawing_canvas.h](reference/native-apis/drawing__canvas_8h.md)
-        - [drawing_color.h](reference/native-apis/drawing__color_8h.md)
-        - [drawing_font_collection.h](reference/native-apis/drawing__font__collection_8h.md)
-        - [drawing_path.h](reference/native-apis/drawing__path_8h.md)
-        - [drawing_pen.h](reference/native-apis/drawing__pen_8h.md)
-        - [drawing_text_declaration.h](reference/native-apis/drawing__text__declaration_8h.md)
-        - [drawing_text_typography.h](reference/native-apis/drawing__text__typography_8h.md)
-        - [drawing_types.h](reference/native-apis/drawing__types_8h.md)
-        - [external_window.h](reference/native-apis/external__window_8h.md)
-        - [log.h](reference/native-apis/log_8h.md)
-        - [native_interface_bundle.h](reference/native-apis/native__interface__bundle_8h.md)
-        - [native_interface_xcomponent.h](reference/native-apis/native__interface__xcomponent_8h.md)
-        - [raw_dir.h](reference/native-apis/raw__dir_8h.md)
-        - [raw_file.h](reference/native-apis/raw__file_8h.md)
-      - 结构体
-        - [OH_Drawing_BitmapFormat](reference/native-apis/_o_h___drawing___bitmap_format.md)
-        - [OH_NativeXComponent_Callback](reference/native-apis/_o_h___native_x_component___callback.md)
-        - [OH_NativeXComponent_TouchEvent](reference/native-apis/_o_h___native_x_component___touch_event.md)
-        - [OH_NativeXComponent_TouchPoint](reference/native-apis/_o_h___native_x_component___touch_point.md)
-        - [RawFileDescriptor](reference/native-apis/_raw_file_descriptor.md)
-    - [Native API标准库](reference/native-lib/third_party_libc/musl.md)
-    - [Node_API](reference/native-lib/third_party_napi/napi.md)
\ No newline at end of file
+    - 模块
+      - [Native XComponent](reference/native-apis/_o_h___native_x_component.md)
+      - [Native_Bundle](reference/native-apis/_native___bundle.md)
+      - [HiLog](reference/native-apis/_hi_log.md)
+      - [NativeWindow](reference/native-apis/_native_window.md)
+      - [Drawing](reference/native-apis/_drawing.md)
+      - [Rawfile](reference/native-apis/rawfile.md)
+    - 头文件
+      - [drawing_bitmap.h](reference/native-apis/drawing__bitmap_8h.md)
+      - [drawing_brush.h](reference/native-apis/drawing__brush_8h.md)
+      - [drawing_canvas.h](reference/native-apis/drawing__canvas_8h.md)
+      - [drawing_color.h](reference/native-apis/drawing__color_8h.md)
+      - [drawing_font_collection.h](reference/native-apis/drawing__font__collection_8h.md)
+      - [drawing_path.h](reference/native-apis/drawing__path_8h.md)
+      - [drawing_pen.h](reference/native-apis/drawing__pen_8h.md)
+      - [drawing_text_declaration.h](reference/native-apis/drawing__text__declaration_8h.md)
+      - [drawing_text_typography.h](reference/native-apis/drawing__text__typography_8h.md)
+      - [drawing_types.h](reference/native-apis/drawing__types_8h.md)
+      - [external_window.h](reference/native-apis/external__window_8h.md)
+      - [log.h](reference/native-apis/log_8h.md)
+      - [native_interface_bundle.h](reference/native-apis/native__interface__bundle_8h.md)
+      - [native_interface_xcomponent.h](reference/native-apis/native__interface__xcomponent_8h.md)
+      - [raw_dir.h](reference/native-apis/raw__dir_8h.md)
+      - [raw_file.h](reference/native-apis/raw__file_8h.md)
+    - 结构体
+      - [OH_Drawing_BitmapFormat](reference/native-apis/_o_h___drawing___bitmap_format.md)
+      - [OH_NativeXComponent_Callback](reference/native-apis/_o_h___native_x_component___callback.md)
+      - [OH_NativeXComponent_TouchEvent](reference/native-apis/_o_h___native_x_component___touch_event.md)
+      - [OH_NativeXComponent_TouchPoint](reference/native-apis/_o_h___native_x_component___touch_point.md)
+      - [RawFileDescriptor](reference/native-apis/_raw_file_descriptor.md)
+    - 标准库
+      - [Node_API](reference/native-lib/third_party_napi/napi.md)
+      - [libuv](reference/native-lib/third_party_libuv/libuv.md)
+      - [支持的标准库介绍](reference/native-lib/third_party_libc/musl.md)
+      - 附录
+        - [Native api中没有导出的符号列表](reference/native-lib/third_party_libc/musl-peculiar-symbol.md)
+        - [Native api中导出的EGL符号列表](reference/native-lib/third_party_opengl/egl-symbol.md)
+        - [Native api中导出的OpenGL ES 3.0符号列表](reference/native-lib/third_party_opengl/openglesv3-symbol.md)  
+- 常见问题
+  - [full-SDK替换指南](quick-start/full-sdk-switch-guide.md)
\ No newline at end of file
diff --git a/zh-cn/application-dev/windowmanager/Readme-CN.md b/zh-cn/application-dev/windowmanager/Readme-CN.md
index fcfb79f31d426720360b787f9efba03f1be16849..fff76b863d6b9198dec861f7cffaf7e9025009d2 100644
--- a/zh-cn/application-dev/windowmanager/Readme-CN.md
+++ b/zh-cn/application-dev/windowmanager/Readme-CN.md
@@ -1,12 +1,16 @@
 # 窗口管理
 
-* 窗口
-	*  [窗口开发概述](window-overview.md)
-	*  [窗口开发指导](window-guidelines.md)
-* 屏幕属性
-  * [屏幕属性开发概述](display-overview.md)
-  * [屏幕属性开发指导](display-guidelines.md)
-* 屏幕截图
-  * [屏幕截图开发概述](screenshot-overview.md)
-  * [屏幕截图开发指导](screenshot-guidelines.md)
+- 窗口
 
+  - [窗口开发概述](window-overview.md)
+  - [管理应用窗口(Stage模型)](application-window-stage.md)
+  - [管理应用窗口(FA模型)](application-window-fa.md)
+  - [管理系统窗口(仅Stage模型支持)](system-window-stage.md)
+
+- 屏幕属性
+  - [屏幕属性开发概述](display-overview.md)
+  - [屏幕属性开发指导](display-guidelines.md)
+
+- 屏幕截图
+  - [屏幕截图开发概述](screenshot-overview.md)
+  - [屏幕截图开发指导](screenshot-guidelines.md)
\ No newline at end of file
diff --git a/zh-cn/application-dev/windowmanager/application-window-fa.md b/zh-cn/application-dev/windowmanager/application-window-fa.md
new file mode 100644
index 0000000000000000000000000000000000000000..20f2f1d3e00c5c44eaa520e8f3bf8a33d05e6771
--- /dev/null
+++ b/zh-cn/application-dev/windowmanager/application-window-fa.md
@@ -0,0 +1,260 @@
+# 管理应用窗口(FA模型)
+
+## 基本概念
+
+窗口沉浸式能力:指对状态栏、导航栏等系统窗口进行控制,减少状态栏导航栏等系统界面的突兀感,从而使用户获得最佳体验的能力。
+沉浸式能力只在应用主窗口作为全屏窗口时生效。通常情况下,应用子窗口(弹窗、悬浮窗口等辅助窗口)和处于自由窗口下的应用主窗口无法使用沉浸式能力。
+
+## 场景介绍
+
+在FA模型下,管理应用窗口的典型场景有:
+
+- 设置应用子窗口属性及目标页面
+
+- 体验窗口沉浸式能力
+
+以下分别介绍具体开发方式。
+
+
+## 接口说明
+
+上述场景涉及的常用接口如下表所示。更多API说明请参见[API参考](../reference/apis/js-apis-window.md)。
+
+| 实例名 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| window静态方法 | create(id:string,type:WindowType,callback:AsyncCallback]&lt;Window&gt;):void | 创建子窗口。<br>此接口仅可在`FA`模型下使用。 |
+| window静态方法 | getTopWindow(callback:AsyncCallback&lt;Window&gt;):void | 获取当前应用内最后显示的窗口。<br/>此接口仅可在`FA`模型下使用。 |
+| window静态方法 | find(id:string,callback:AsyncCallback&lt;Window&gt;):void | 查找`id`所对应的窗口。 |
+| Window | loadContent(path:string,callback:AsyncCallback&lt;void&gt;):void | 为当前窗口加载具体页面内容。 |
+| Window | moveTo(x:number,y:number,callback:AsyncCallback&lt;void&gt;):void | 移动当前窗口。 |
+| Window | setBackgroundColor(color:string,callback:AsyncCallback&lt;void&gt;):void | 设置窗口的背景色 |
+| Window | setBrightness(brightness:number,callback:AsyncCallback&lt;void&gt;):void | 设置屏幕亮度值。 |
+| Window | resetSize(width:number,height:number,callback:AsyncCallback&lt;void&gt;):void | 改变当前窗口大小。 |
+| Window | setFullScreen(isFullScreen:boolean,callback:AsyncCallback&lt;void&gt;):void | 设置窗口是否全屏显示。 |
+| Window | setLayoutFullScreen(isLayoutFullScreen:boolean,callback:AsyncCallback&lt;void&gt;):void | 设置窗口布局是否为全屏布局。 |
+| Window | setSystemBarEnable(names:Array&lt;'status'\|'navigation'&gt;):Promise&lt;void&gt; | 设置导航栏、状态栏是否显示。 |
+| Window | setSystemBarProperties(systemBarProperties:SystemBarProperties,callback:AsyncCallback&lt;void&gt;):void | 设置窗口内导航栏、状态栏属性。<br/>`systemBarProperties`:导航栏、状态栏的属性集合。 |
+| Window | show(callback: AsyncCallback\<void>): void | 显示当前窗口。 |
+| Window | on(type:'touchOutside',callback:Callback&lt;void&gt;):void | 开启本窗口区域外的点击事件的监听。 |
+| Window | destroy(callback: AsyncCallback&lt;void&gt;):void | 销毁当前窗口。 |
+
+
+## 设置应用子窗口
+
+开发者可以按需创建应用子窗口,如弹窗等,并对其进行属性设置等操作。
+
+
+### 开发步骤
+
+1. 创建/获取子窗口对象。
+
+   - 可以通过`window.create`接口创建子窗口。
+   - 可以通过`window.getTopWindow`来获取最后显示的窗口得到子窗口。
+   - 也可以通过`window.find`接口来查找已经创建的窗口从而得到子窗口。
+
+   ```js
+   import window from '@ohos.window';
+   
+   var windowClass = null;
+   // 1.方式一:创建子窗口。
+   window.create("subWindow", window.WindowType.TYPE_APP, (err, data) => {
+       if (err.code) {
+           console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
+           return;
+       }
+       console.info('Succeeded in creating subWindow. Data: ' + JSON.stringify(data));
+       windowClass = data;
+   });
+   // 1.方式二:获取子窗口。
+   window.getTopWindow((err, data) => {
+       if (err.code) {
+           console.error('Failed to get the subWindow. Cause: ' + JSON.stringify(err));
+           return;
+       }
+       console.info('Succeeded in getting subWindow. Data: ' + JSON.stringify(data));
+       windowClass = data;
+   });
+   // 1.方式三:查找得到子窗口。
+   window.find("subWindow", (err, data) => {
+       if (err.code) {
+           console.error('Failed to find the subWindow. Cause: ' + JSON.stringify(err));
+           return;
+       }
+       console.info('Succeeded in finding subWindow. Data: ' + JSON.stringify(data));
+       windowClass = data;
+   });
+   ```
+   
+2. 设置子窗口属性。
+
+   子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。
+
+   
+   ```js
+   // 2.移动子窗口位置。
+   windowClass.moveTo(300, 300, (err, data) => {
+     if (err.code) {
+       console.error('Failed to move the window. Cause:' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data));
+   });
+   // 2.改变子窗口大小。
+   windowClass.resetSize(500, 1000, (err, data) => {
+     if (err.code) {
+       console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data));
+   });
+   ```
+
+3. 加载显示子窗口的具体内容。
+
+   使用`loadContent`和`show`接口加载显示子窗口的具体内容。
+
+   
+   ```js
+   // 3.为子窗口加载对应的目标页面。
+   windowClass.loadContent("pages/page2", (err, data) => {
+       if (err.code) {
+           console.error('Failed to load the content. Cause: ' + JSON.stringify(err));
+           return;
+       }
+       console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+       // 3.显示子窗口。
+       windowClass.show((err, data) => {
+        if (err.code) {
+               console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
+               return;
+           }
+           console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+       });
+   });
+   ```
+   
+4. 销毁子窗口。
+
+   当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用`destroy`接口销毁子窗口。
+
+   
+   ```js
+   // 4.销毁子窗口。当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用destroy接口销毁子窗口,此处以监听窗口区域外的点击事件实现子窗口的销毁。
+   windowClass.on('touchOutside', () => {
+       console.info('touch outside');
+       windowClass.destroy((err, data) => {
+           if (err.code) {
+               console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err));
+               return;
+           }
+           console.info('Succeeded in destroying the subwindow. Data: ' + JSON.stringify(data));
+       });
+   });
+   ```
+
+
+## 体验窗口沉浸式能力
+
+在看视频、玩游戏等场景下,用户往往希望隐藏状态栏、导航栏等不必要的系统窗口,从而获得更佳的沉浸式体验。此时可以借助窗口沉浸式能力(窗口沉浸式能力都是针对应用主窗口而言的),达到预期效果。
+
+
+### 开发步骤
+
+1. 获取主窗口对象。
+
+   沉浸式能力需要在成功获取应用主窗口对象的前提下进行。使用`window.getTopWindow`接口来获取得到主窗口。
+
+   
+   ```js
+   import window from '@ohos.window';
+   
+   var mainWindowClass = null;
+   // 1.获取主窗口
+   window.getTopWindow((err, data) => {
+     if (err.code) {
+       console.error('Failed to get the subWindow. Cause: ' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in getting subWindow. Data: ' + JSON.stringify(data));
+     mainWindowClass = data;
+   });
+   ```
+
+2. 实现沉浸式效果。有以下三种方式:
+
+   - 方式一:调用`setFullScreen`接口,设置应用主窗口为全屏显示,此时导航栏、状态栏将隐藏,从而达到沉浸式效果。
+   - 方式二:调用`setSystemBarEnable`接口,设置导航栏、状态栏不显示,从而达到沉浸式效果。
+   - 方式三:调用`setLayoutFullScreen`接口,设置应用主窗口为全屏布局;然后调用`setSystemPropertites`接口,设置导航栏、状态栏的透明度、背景/文字颜色以及高亮图标等属性,使之保持与主窗口显示协调一致,从而达到沉浸式效果。
+
+   ```js
+   // 2.实现沉浸式效果。方式一:设置窗口全屏显示。
+   var isFullScreen = true;
+   mainWindowClass.setFullScreen(isFullScreen, (err, data) => {
+     if (err.code) {
+       console.error('Failed to enable the full-screen mode. Cause:' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data));
+   });
+   // 2.实现沉浸式效果。方式二:设置导航栏、状态栏不显示。
+   var names = null;
+   mainWindowClass.setSystemBarEnable(names, (err, data) => {
+     if (err.code) {
+       console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data));
+   });
+   // 2.实现沉浸式效果。
+   //方式三:设置窗口为全屏布局,配合设置状态栏、导航栏的透明度、背景/文字颜色及高亮图标等属性,与主窗口显示保持协调一致。
+   var isLayoutFullScreen = true;
+   mainWindowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => {
+     if (err.code) {
+       console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in setting the window layout to full-screen mode. Data: ' + JSON.stringify(data));
+   });
+   var SystemBarProperties = {
+     statusBarColor: '#ff00ff',
+     navigationBarColor: '#00ff00',
+     //以下两个属性从API Version7开始支持
+     isStatusBarLightIcon: false,
+     isNavigationBarLightIcon: false,
+     //以下两个属性从API Version8开始支持
+     statusBarContentColor: '#ffffff',
+     navigationBarContentColor: '#ffffff'
+   };
+   mainWindowClass.setSystemBarProperties(SystemBarProperties, (err, data) => {
+     if (err.code) {
+       console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
+       return;
+     }
+     console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data));
+   });
+   ```
+   
+3. 加载显示沉浸式窗口的具体内容。
+
+   使用`loadContent`和`show`接口加载显示沉浸式窗口的具体内容。
+
+   
+   ```js
+   // 3.为沉浸式窗口加载对应的目标页面。
+   mainWindowClass.loadContent("pages/page3", (err, data) => {
+       if (err.code) {
+           console.error('Failed to load the content. Cause: ' + JSON.stringify(err));
+           return;
+       }
+       console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+       // 3.显示沉浸式窗口。
+       mainWindowClass.show((err, data) => {
+           if (err.code) {
+               console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
+               return;
+           }
+           console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+       });
+   });
+   ```
+
diff --git a/zh-cn/application-dev/windowmanager/application-window-stage.md b/zh-cn/application-dev/windowmanager/application-window-stage.md
new file mode 100644
index 0000000000000000000000000000000000000000..33fe1385b290ea4b51630d9152f6c3a8341db84d
--- /dev/null
+++ b/zh-cn/application-dev/windowmanager/application-window-stage.md
@@ -0,0 +1,406 @@
+# 管理应用窗口(Stage模型)
+
+
+## 基本概念
+
+- 窗口沉浸式能力:指对状态栏、导航栏等系统窗口进行控制,减少状态栏导航栏等系统界面的突兀感,从而使用户获得最佳体验的能力。
+  沉浸式能力只在应用主窗口作为全屏窗口时生效。通常情况下,应用子窗口(弹窗、悬浮窗口等辅助窗口)和处于自由窗口下的应用主窗口无法使用沉浸式能力。
+
+- 悬浮窗:全局悬浮窗口是一种特殊的应用窗口,具备在应用主窗口和对应Ability退至后台后仍然可以在前台显示的能力。
+  悬浮窗口可以用于应用退至后台后,使用小窗继续播放视频,或者为特定的应用创建悬浮球等快速入口。应用在创建悬浮窗口前,需要申请对应的权限。
+
+
+## 场景介绍
+
+在`Stage`模型下,管理应用窗口的典型场景有:
+
+- 设置应用主窗口属性及目标页面
+
+- 设置应用子窗口属性及目标页面
+
+- 体验窗口沉浸式能力
+
+- 设置悬浮窗
+
+以下分别介绍具体开发方式。
+
+
+## 接口说明
+
+上述场景涉及的常用接口如下表所示。更多API说明请参见[API参考](../reference/apis/js-apis-window.md)。
+
+| 实例名 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| WindowStage | getMainWindow(callback:AsyncCallback&lt;Window&gt;):void | 获取`WindowStage`实例下的主窗口。<br/>此接口仅可在`Stage`模型下使用。 |
+| WindowStage | loadContent(path:string,callback:AsyncCallback&lt;void&gt;):void | 为当前`WindowStage`的主窗口加载具体页面。<br/>此接口仅可在`Stage`模型下使用。 |
+| WindowStage | createSubWindow(name:string,callback:AsyncCallback&lt;Window&gt;):void | 创建子窗口。<br/>此接口仅可在`Stage`模型下使用。 |
+| window静态方法 | create(ctx:Context,id:string,type:WindowType,callback:AsyncCallback&lt;Window&gt;):void | 创建子窗口。<br/>-`ctx`:为应用上下文信息。<br/>-`type`:为创建的窗口类型。 |
+| Window | loadContent(path:string,callback:AsyncCallback&lt;void&gt;):void | 为当前窗口加载具体页面。 |
+| Window | setBackgroundColor(color:string,callback:AsyncCallback&lt;void&gt;):void | 设置窗口的背景色。 |
+| Window | setBrightness(brightness:number,callback:AsyncCallback&lt;void&gt;):void | 设置屏幕亮度值。 |
+| Window | setTouchable(isTouchable:boolean,callback:AsyncCallback&lt;void&gt;):void | 设置窗口是否为可触状态。 |
+| Window | moveTo(x:number,y:number,callback:AsyncCallback&lt;void&gt;):void | 移动当前窗口位置。 |
+| Window | resetSize(width:number,height:number,callback:AsyncCallback&lt;void&gt;):void | 改变当前窗口大小。 |
+| Window | setFullScreen(isFullScreen:boolean,callback:AsyncCallback&lt;void&gt;):void | 设置窗口是否全屏显示。 |
+| Window | setLayoutFullScreen(isLayoutFullScreen:boolean,callback:AsyncCallback&lt;void&gt;):void | 设置窗口布局是否为全屏布局。 |
+| Window | setSystemBarEnable(names:Array&lt;'status'\|'navigation'&gt;):Promise&lt;void&gt; | 设置导航栏、状态栏是否显示。 |
+| Window | setSystemBarProperties(systemBarProperties:SystemBarProperties,callback:AsyncCallback&lt;void&gt;):void | 设置窗口内导航栏、状态栏属性。<br/>`systemBarProperties`:导航栏、状态栏的属性集合。 |
+| Window | show(callback: AsyncCallback\<void>): void | 显示当前窗口。 |
+| Window | on(type:'touchOutside',callback:Callback&lt;void&gt;):void | 开启本窗口区域外的点击事件的监听。 |
+| Window | destroy(callback: AsyncCallback&lt;void&gt;):void | 销毁当前窗口。 |
+
+
+## 设置应用主窗口
+
+在`Stage`模型下,应用主窗口由`Ability`创建并维护生命周期。在`Ability`的`onWindowStageCreate`回调中,通过`WindowStage`获取应用主窗口,即可对其进行属性设置等操作
+
+
+### 开发步骤
+
+1. 获取应用主窗口。
+   通过`getMainWindow`接口获取应用主窗口。
+
+2. 设置主窗口属性。
+   可设置主窗口的背景色、亮度值、是否可触等多个属性,开发者可根据需要选择对应的接口。本示例以设置“是否可触”属性为例。
+
+3. 为主窗口加载对应的目标页面。
+   通过`loadContent`接口加载主窗口的目标页面。
+
+
+```ts
+import Ability from '@ohos.application.Ability'
+
+class MainAbility extends Ability {
+    onWindowStageCreate(windowStage) {
+        // 1.获取应用主窗口。
+        var windowClass = null;
+        windowStage.getMainWindow((err, data) => {
+            if (err.code) {
+                console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));
+                return;
+            }
+            windowClass = data;
+            console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data));
+            // 2.设置主窗口属性。以设置"是否可触"属性为例。
+            var isTouchable = true;
+            windowClass.setTouchable(isTouchable, (err, data) => {
+                if (err.code) {
+                    console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err));
+                    return;
+                }
+                console.info('Succeeded in setting the window to be touchable. Data:' + JSON.stringify(data));
+            })
+        })
+        // 3.为主窗口加载对应的目标页面。
+        windowStage.loadContent("pages/page2", (err, data) => {
+            if (err.code) {
+                console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+                return;
+            }
+            console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+        });
+    }
+};
+```
+
+
+## 设置应用子窗口
+
+开发者可以按需创建应用子窗口,如弹窗等,并对其进行属性设置等操作。
+
+
+### 开发步骤
+
+1. 创建/获取应用子窗口。
+   通过`createSubWindow`接口创建应用子窗口。
+
+   通过`getSubWindow`接口获取已创建的应用子窗口。
+
+2. 设置子窗口属性。
+   子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。
+
+3. 加载显示子窗口的具体内容。
+   通过`loadContent`和`show`接口加载显示子窗口的具体内容。
+
+4. 销毁子窗口。
+   当不再需要某些子窗口时,可根据具体实现逻辑,使用`destroy`接口销毁子窗口。
+
+   
+   ```ts
+   import Ability from '@ohos.application.Ability'
+   
+   class MainAbility extends Ability {
+       onWindowStageCreate(windowStage) {
+           // 1.创建应用子窗口。
+           var sub_windowClass = null;
+           windowStage.createSubWindow("mySubWindow", (err, data) => {
+               if (err.code) {
+                   console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err));
+                   return;
+               }
+               sub_windowClass = data;
+               console.info('Succeeded in creating the subwindow. Data: ' + JSON.stringify(data));
+               // 1.获取已创建的应用子窗口。
+               windowStage.getSubWindow((err, data) => {
+                   if (err.code) {
+                       console.error('Failed to obtain the subWindow. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in obtaining the subWindow. Data: ' + JSON.stringify(data));
+                   sub_windowClass = data;
+               });
+               // 2.子窗口创建成功后,设置子窗口的位置、大小及相关属性等。
+               sub_windowClass.moveTo(300, 300, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to move the window. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data));
+               });
+               sub_windowClass.resetSize(500, 1000, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data));
+               });
+               // 3.为子窗口加载对应的目标页面。
+               sub_windowClass.loadContent("pages/page3", (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+                   // 3.显示子窗口。
+                   sub_windowClass.show((err, data) => {
+                       if (err.code) {
+                           console.error('Failed to show the window. Cause:' + JSON.stringify(err));
+                           return;
+                       }
+                       console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+                   });
+               });
+               // 4.销毁子窗口。当不再需要子窗口时,可根据具体实现逻辑,使用destroy对其进行销毁,此处以监听窗口区域外的点击事件为例实现子窗口的销毁。
+               sub_windowClass.on('touchOutside', () => {
+                   console.info('touch outside');
+                   sub_windowClass.destroy((err, data) => {
+                       if (err.code) {
+                           console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
+                           return;
+                       }
+                       console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data));
+                   });
+               });
+           })
+       }
+   };
+   ```
+
+
+## 体验窗口沉浸式能力
+
+在看视频、玩游戏等场景下,用户往往希望隐藏状态栏、导航栏等不必要的系统窗口,从而获得更佳的沉浸式体验。此时可以借助窗口沉浸式能力(窗口沉浸式能力都是针对应用主窗口而言的),达到预期效果。
+
+
+### 开发步骤
+
+1. 获取应用主窗口。
+   通过`getMainWindow`接口获取应用主窗口。
+
+2. 实现沉浸式效果。有以下三种方式:
+   - 方式一:调用`setFullScreen`接口,设置应用主窗口为全屏显示,此时导航栏、状态栏将隐藏,从而达到沉浸式效果。
+   - 方式二:调用`setSystemBarEnable`接口,设置导航栏、状态栏不显示,从而达到沉浸式效果。
+   - 方式三:调用`setLayoutFullScreen`接口,设置应用主窗口为全屏布局;然后调用`setSystemPropertites`接口,设置导航栏、状态栏的透明度、背景/文字颜色以及高亮图标等属性,使之保持与主窗口显示协调一致,从而达到沉浸式效果。
+
+3. 加载显示沉浸式窗口的具体内容。
+   通过`loadContent`和`show`接口加载显示沉浸式窗口的具体内容。
+
+   
+   ```ts
+   import Ability from '@ohos.application.Ability'
+   
+   class MainAbility extends Ability {
+       onWindowStageCreate(windowStage) {
+           // 1.获取应用主窗口。
+           var windowClass = null;
+           windowStage.getMainWindow((err, data) => {
+               if (err.code) {
+                   console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));
+                   return;
+               }
+               windowClass = data;
+               console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data));
+   
+               // 2.实现沉浸式效果。方式一:设置应用主窗口为全屏显示。
+               var isFullScreen = true;
+               windowClass.setFullScreen(isFullScreen, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to enable the full-screen mode. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data));
+               });
+               // 2.实现沉浸式效果。方式二:设置导航栏、状态栏不显示。
+               var names = null;
+               windowClass.setSystemBarEnable(names, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data));
+               });
+               // 2.实现沉浸式效果。方式三:设置窗口为全屏布局,配合设置导航栏、状态栏的透明度、背景/文字颜色及高亮图标等属性,与主窗口显示保持协调一致。
+               var isLayoutFullScreen = true;
+               windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in setting the window layout to full-screen mode. Data: ' + JSON.stringify(data));
+               });
+               var SystemBarProperties = {
+                   statusBarColor: '#ff00ff',
+                   navigationBarColor: '#00ff00',
+                   // 以下两个属性从API Version 7开始支持
+                   isStatusBarLightIcon: false,
+                   isNavigationBarLightIcon: false,
+                   // 以下两个属性从API Version 8开始支持
+                   statusBarContentColor: '#ffffff',
+                   navigationBarContentColor: '#ffffff'
+               };
+               windowClass.setSystemBarProperties(SystemBarProperties, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data));
+               });
+           })
+           // 3.为沉浸式窗口加载对应的目标页面。
+           windowStage.loadContent("pages/page2", (err, data) => {
+               if (err.code) {
+                   console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+                   return;
+               }
+               console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+               // 3.显示沉浸式窗口。
+               windowStage.show((err, data) => {
+                   if (err.code) {
+                       console.error('Failed to show the window. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+               });
+           });
+       }
+   };
+   ```
+
+
+## 设置悬浮窗
+
+悬浮窗可以在已有的任务基础上,创建一个始终在前台显示的窗口。即使创建悬浮窗的任务退至后台,悬浮窗仍然可以在前台显示。开发者可以创建悬浮窗,并对悬浮窗进行属性设置等操作。
+
+
+### 开发步骤
+
+1. 申请权限。
+   创建`WindowType.TYPE_FLOAT`即悬浮窗类型的窗口,需要在`module.json5`文件的`requestPermissions`对象中配置`ohos.permission.SYSTEM_FLOAT_WINDOW`权限。更多配置信息详见[应用包结构配置文件的说明](../quick-start/stage-structure.md)。
+
+   > **说明:**
+   > 虽然悬浮窗具备始终在前台显示的能力,但如果创建悬浮窗的应用任务被系统回收,仍然会导致悬浮窗从界面移除。如果想要保持悬浮窗口始终在前台显示,请申请[长时任务](../task-management/background-task-overview.md)。
+
+   
+   ```json
+   {
+     "module": {
+       "requestPermissions":[
+         {
+           "name" : "ohos.permission.SYSTEM_FLOAT_WINDOW",
+           "usedScene": {
+             "abilities": [
+               "MainAbility"
+             ],
+             "when":"inuse"
+           }
+         }
+       ]
+     }
+   }
+   ```
+
+2. 创建悬浮窗。
+   通过`window.create`接口创建悬浮窗类型的窗口。
+
+3. 对悬浮窗进行属性设置等操作。
+   悬浮窗窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置悬浮窗背景色、亮度等属性。
+
+4. 加载显示悬浮窗的具体内容。
+   通过`loadContent`和`show`接口加载显示悬浮窗的具体内容。
+
+5. 销毁悬浮窗。
+
+   当不再需要悬浮窗时,可根据具体实现逻辑,使用`destroy`接口销毁悬浮窗。
+
+   ```ts
+   import Ability from '@ohos.application.Ability'
+   import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
+   import window from '@ohos.window';
+   
+   class MainAbility extends Ability {
+       onWindowStageCreate(windowStage) {
+           // 2. 创建悬浮窗。
+           var windowClass = null;
+           window.create(this.context, "floatWindow", window.WindowType.TYPE_FlOAT, (err, data) => {
+               if (err.code) {
+                   console.error('Failed to create the floatWindow. Cause: ' + JSON.stringify(err));
+                   return;
+               }
+               console.info('Succeeded in creating the floatWindow. Data: ' + JSON.stringify(data));
+               windowClass = data;
+               // 3.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。
+               windowClass.moveTo(300, 300, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to move the window. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data));
+               });
+               windowClass.resetSize(500, 1000, (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data));
+               });
+               // 4.为悬浮窗加载对应的目标页面。
+               windowClass.loadContent("pages/page4", (err, data) => {
+                   if (err.code) {
+                       console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+                       return;
+                   }
+                   console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+                   // 4.显示悬浮窗。
+                   windowClass.show((err, data) => {
+                       if (err.code) {
+                           console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
+                           return;
+                       }
+                       console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+                   });
+               });
+               //5.销毁悬浮窗。当不再需要悬浮窗时,可根据具体实现逻辑,使用destroy对其进行销毁,此处以监听窗口区域外的点击事件为例实现悬浮窗的销毁。
+               windowClass.on('touchOutside', () => {
+                   console.info('touch outside');
+                   windowClass.destroy((err, data) => {
+                       if (err.code) {
+                           console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
+                           return;
+                       }
+                       console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data));
+                   });
+               });
+           });
+       }
+   };
+   ```
diff --git a/zh-cn/application-dev/windowmanager/display-guidelines.md b/zh-cn/application-dev/windowmanager/display-guidelines.md
index 01840842a262aef9b62ebebb216cd6636569768c..ef1ef4abb5c15e2711eb69cab51658809efd037a 100644
--- a/zh-cn/application-dev/windowmanager/display-guidelines.md
+++ b/zh-cn/application-dev/windowmanager/display-guidelines.md
@@ -22,4 +22,7 @@ display.getDefaultDisplay().then((disp) => {
     console.log('display.getDefaultDisplay failed, error : ' + JSON.stringify(err));
 })
 ```
+## 相关实例
+针对屏幕属性开发,有以下相关实例可供参考:
+- [`Screen`:屏幕属性(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/device/Screen)
 
diff --git a/zh-cn/application-dev/windowmanager/figures/windowMode.png b/zh-cn/application-dev/windowmanager/figures/windowMode.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d4b793d46343ff33efec41ce90c7418ba2fe779
Binary files /dev/null and b/zh-cn/application-dev/windowmanager/figures/windowMode.png differ
diff --git a/zh-cn/application-dev/windowmanager/system-window-stage.md b/zh-cn/application-dev/windowmanager/system-window-stage.md
new file mode 100644
index 0000000000000000000000000000000000000000..d602dad84a919ff9a0823616f5b808b6980e3008
--- /dev/null
+++ b/zh-cn/application-dev/windowmanager/system-window-stage.md
@@ -0,0 +1,112 @@
+# 管理系统窗口(仅Stage模型支持)
+
+## 管理系统窗口概述
+
+在`Stage`模型下, 允许系统应用创建和管理系统窗口,包括音量条、壁纸、通知栏、状态栏、导航栏等。具体支持的系统窗口类型见[API参考-WindowType](../reference/apis/js-apis-window.md)。
+
+
+## 接口说明
+
+更多API说明请参见[API参考](../reference/apis/js-apis-window.md)。
+
+| 实例名 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| window静态方法 | create(ctx:Context,id:string,type:WindowType,callback:AsyncCallback&lt;Window&gt;):void | 创建窗口。<br/>-`ctx`:为应用上下文信息。当`Context`为[ServiceExtensionContext](../reference/apis/js-apis-service-extension-context.md)时,创建系统窗口。<br/>-`type`:为创建的窗口类型。 |
+| Window | resetSize(width:number,height:number,callback:AsyncCallback&lt;void&gt;):void | 改变当前窗口大小。 |
+| Window | moveTo(x:number,y:number,callback:AsyncCallback&lt;void&gt;):void | 移动当前窗口位置。 |
+| Window | loadContent(path:string,callback:AsyncCallback&lt;void&gt;):void | 为当前窗口加载具体页面。 |
+| Window | show(callback: AsyncCallback\<void>): void | 显示当前窗口。 |
+| Window | on(type:'touchOutside',callback:Callback&lt;void&gt;):void | 开启本窗口区域外的点击事件的监听。 |
+| Window | hide (callback: AsyncCallback\<void>): void | 隐藏当前窗口。此接口为系统接口。 |
+| Window | destroy(callback: AsyncCallback&lt;void&gt;):void | 销毁当前窗口。 |
+
+
+## 开发步骤
+
+
+本文以音量条窗口为例,介绍系统窗口的基本开发和管理步骤。
+
+
+1. 创建系统窗口。
+
+   在[ServiceExtensionContext](../reference/apis/js-apis-service-extension-context.md)下,使用`window.create`接口创建音量条系统窗口。
+
+2. 操作或设置系统窗口的属性。
+
+   系统窗口创建成功后,可以改变其大小、位置等,还可以根据需要设置系统窗口的背景色、亮度等属性。
+
+3. 加载显示系统窗口的具体内容。
+
+   通过`loadContent`和`show`接口加载显示音量条窗口的具体内容。
+
+4. 隐藏/销毁系统窗口。
+
+   当不再需要音量条窗口时,可根据具体实现逻辑,使用`hide`接口或`destroy`接口对其进行隐藏或销毁。
+
+```ts
+import ExtensionContext from '@ohos.application.ServiceExtensionAbility';
+import window from '@ohos.window';
+
+var windowClass = null;
+
+export default class ServiceExtensionAbility1 extends ExtensionContext {
+    onCreate(want) {
+        console.log("[Demo] MainAbility onCreate")
+        globalThis.abilityWant = want;
+        // 1.创建音量条窗口。
+        var windowClass = null;
+        window.create(this.context, "volume", window.WindowType.TYPE_VOLUME_OVERLAY, (err, data) => {
+            if (err.code) {
+                console.error('Failed to create the volume window. Cause:' + JSON.stringify(err));
+                return;
+            }
+            console.info('Succeeded in creating the volume window.')
+            windowClass = data;
+            // 2.创建音量条窗口成功之后,可以改变其大小、位置或设置背景色、亮度等属性。
+            windowClass.moveTo(300, 300, (err, data) => {
+                if (err.code) {
+                    console.error('Failed to move the window. Cause:' + JSON.stringify(err));
+                    return;
+                }
+                console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data));
+            });
+            windowClass.resetSize(500, 1000, (err, data) => {
+                if (err.code) {
+                    console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
+                    return;
+                }
+                console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data));
+            });
+            // 3.为音量条窗口加载对应的目标页面。
+            windowClass.loadContent("pages/page_volume", (err, data) => {
+                if (err.code) {
+                    console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+                    return;
+                }
+                console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data));
+                // 3.显示音量条窗口。
+                windowClass.show((err, data) => {
+                    if (err.code) {
+                        console.error('Failed to show the window. Cause:' + JSON.stringify(err));
+                        return;
+                    }
+                    console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
+                });
+            });
+            // 4.隐藏/销毁音量条窗口。当不再需要音量条时,可根据具体实现逻辑,对其进行隐藏或销毁。
+            // 此处以监听音量条区域外的点击事件为例实现音量条窗口的隐藏。
+            windowClass.on('touchOutside', () => {
+                console.info('touch outside');
+                windowClass.hide((err, data) => {
+                    if (err.code) {
+                        console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
+                        return;
+                    }
+                    console.info('Succeeded in hidinging the window. Data: ' + JSON.stringify(data));
+                });
+            });
+        });
+    }
+};
+```
+
diff --git a/zh-cn/application-dev/windowmanager/window-guidelines.md b/zh-cn/application-dev/windowmanager/window-guidelines.md
deleted file mode 100644
index 721edb94d5680828cc42457979dfd13e2a75d598..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/windowmanager/window-guidelines.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# 窗口开发指导
-
-## 场景介绍
-窗口的接口层在应用进程运行,负责对页面布局的加载,和提供应用程序接口。
-通过调用窗口接口可以实现窗口创建与销毁,窗口的位置、大小布局,以及进入沉浸式等。
-
-## 接口说明
-窗口开放的能力如下:Window类,具体的API详见[接口文档](../reference/apis/js-apis-window.md)。
-
-**表1** 窗口主要接口API
-
-| 接口名                                                       | 描述                                           |
-| :----------------------------------------------------------- | :--------------------------------------------- |
-| create(id: string, type: WindowType, callback: AsyncCallback\<Window>): void | 创建子窗口。                                   |
-| moveTo(x: number, y: number): Promise\<void>                 | 移动窗口位置,x值为正表示右移,y为正表示下移。 |
-| resetSize(width: number, height: number): Promise\<void>     | 改变当前窗口大小。                             |
-| hide(): Promise\<void>                                       | 隐藏当前窗口。                                 |
-| destroy(): Promise\<void>                                    | 销毁当前窗口。                                 |
-
-## 开发步骤
-
-### 创建主窗口
-
-在当前模型下,应用启动时会自动创建主窗口,由应用管理窗口的生命周期,隐藏及销毁由应用管理。
-### 创建子窗口
-当前可以通过`create`接口创建子窗口。具体示例代码如下:
-
-```js
- import window from '@ohos.window';
- var windowClass = null;
- let promise = window.create("subWindow", window.WindowType.TYPE_APP);
- promise.then((data)=> {
- 	windowClass = data;
-    console.info('SubWindow created. Data: ' + JSON.stringify(data))
- }).catch((err)=>{
-    console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
- });
-```
-
-### 获取窗口对象
-
-- 应用内可以通过`getTopWindow`来获取当前应用内最后显示的窗口。具体示例代码如下:
-
-```js
- var windowClass = null;
- let promise = window.getTopWindow();
- promise.then((data)=> {
- 	windowClass = data;
-    console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
- }).catch((err)=>{
-    console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
- })
-```
-
-- 应用内也可以通过`Find`来获取已经创建的子窗口。具体示例代码如下:
-
-```js
- var windowClass = null;
- let promise = window.find("subWindow");
- promise.then((data)=> {
- 	windowClass = data;
-    console.info('window found. Data: ' + JSON.stringify(data))
- }).catch((err)=>{
-    console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
- });
-```
-
-### 窗口的隐藏和销毁
-
-在已经获取到窗口对象的前提下,可以调用`hide`、`destroy`来隐藏和销毁已经创建的窗口对象。具体示例代码如下:
-
-```js
- let promise = windowClass.hide();
- promise.then((data)=> {
-    console.info('window hidden. Data: ' + JSON.stringify(data))
-    windowClass.destroy((err, data) => {
-        if (err.code) {
-            console.error('Failed to destroy the window. Cause:' + JSON.stringify(err));
-            return;
-        }
-    	console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data))
-	})
- }).catch((err)=>{
-    console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
- })
-```
-
-### 设置沉浸式窗口
-
-在已经获取到应用窗口对象的前提下,调用`setFullScreen`来设置窗口进入全屏沉浸式。
-
-示例代码如下:
-
-```js
-import window from '@ohos.window';
-try {
-  const win = await window.getTopWindow()
-  await win.setFullScreen(true)
-} catch (err) {
-  console.log(`setFullScreen fail, code = ${err.code}`)
-}
-```
-
-完整[示例工程](https://gitee.com/openharmony/windowmanager/tree/master/AppDemo/window/immersive)。
-
diff --git a/zh-cn/application-dev/windowmanager/window-overview.md b/zh-cn/application-dev/windowmanager/window-overview.md
index 72f7a17f350a53dc5e56eb3203aa383c1263a306..f3e2ba39243ce42c7052249b967d9467550f8715 100644
--- a/zh-cn/application-dev/windowmanager/window-overview.md
+++ b/zh-cn/application-dev/windowmanager/window-overview.md
@@ -1,13 +1,75 @@
 # 窗口开发概述
 
-**窗口子系统**提供窗口管理的基础能力,是系统图形界面显示所需的基础子系统。
-窗口系统的作用,是提供一种机制,让多个应用界面复用同一块物理屏幕进行显示和交互。每个应用程序中,需要实现固定窗口区域内的交互界面设计,窗口作用应用界面的显示容器,而窗口系统负责将这些交互界面组织成最终用户见到的形态。
+
+## 窗口模块的定义
+
+窗口模块用于在同一块物理屏幕上,提供多个应用界面显示、交互的机制。
+
+- 对应用开发者而言,窗口模块提供了界面显示和交互能力。
+
+- 对终端用户而言,窗口模块提供了控制应用界面的方式。
+
+- 对整个操作系统而言,窗口模块提供了不同应用界面的组织管理逻辑。
+
+
+## 窗口模块的用途
+
+在OpenHarmony中,窗口模块主要负责以下职责:
+
+- 提供应用和系统界面的窗口对象。应用开发者通过窗口加载UI界面,实现界面显示功能。
+
+- 组织不同窗口的显示关系,即维护不同窗口间的叠加层次和位置属性。应用和系统的窗口具有多种类型,不同类型的窗口具有不同的默认位置和叠加层次(Z轴高度)。同时,用户操作也可以在一定范围内对窗口的位置和叠加层次进行调整。
+
+- 提供窗口装饰。窗口装饰指窗口标题栏和窗口边框。窗口标题栏通常包括窗口最大化、最小化及关闭按钮等界面元素,具有默认的点击行为,方便用户进行操作;窗口边框则方便用户对窗口进行拖拽缩放等行为。窗口装饰是系统的默认行为,开发者可选择启用/禁用,无需关注UI代码层面的实现。
+
+- 提供窗口动效。在窗口显示、隐藏及窗口间切换时,窗口模块通常会添加动画效果,以使各个交互过程更加连贯流畅。在OpenHarmony中,应用窗口的动效为默认行为,不需要开发者进行设置或者修改。
+
+- 指导输入事件分发。即根据当前窗口的状态或焦点,进行事件的分发。触摸和鼠标事件根据窗口的位置和尺寸进行分发,而键盘事件会被分发至焦点窗口。应用开发者可以通过窗口模块提供的接口设置窗口是否可以触摸和是否可以获焦。
+
 
 ## 基本概念
 
 
-**沉浸式**:应用窗口跟状态栏与导航栏颜色一致,视觉上融合。
+### 窗口类型
+
+OpenHarmony的窗口模块将窗口界面分为系统窗口、应用窗口两种基本类型。
+
+- 系统窗口
+  系统窗口指完成系统特定功能的窗口。如音量条、壁纸、通知栏、状态栏、导航栏等。
+
+- 应用窗口
+  应用窗口区别于系统窗口,指与应用显示相关的窗口。根据显示内容的不同,应用窗口又分为应用主窗口、应用子窗口两种类型。
+
+  - 应用主窗口
+     应用主窗口用于显示应用界面,会在"任务管理界面"显示。
+  - 应用子窗口
+     应用子窗口用于显示应用的弹窗、悬浮窗等辅助窗口,不会在"任务管理界面"显示。
+
+
+### 应用窗口模式
+
+应用窗口模式指应用主窗口启动时的显示方式。OpenHarmony目前支持全屏、分屏、自由窗口三种应用窗口模式。这种对多种应用窗口模式的支持能力,也称为操作系统的“多窗口能力”。
+
+
+- 全屏:应用主窗口启动时铺满整个屏幕。
+
+- 分屏:应用主窗口启动时占据屏幕的某个部分,当前支持二分屏。两个分屏窗口之间具有分界线,可通过拖拽分界线调整两个部分的窗口尺寸。
+
+- 自由窗口:自由窗口的大小和位置可自由改变。同一个屏幕上可同时显示多个自由窗口,这些自由窗口按照打开或者获取焦点的顺序在Z轴排布。当自由窗口被点击或触摸时,将导致其Z轴高度提升,并获取焦点。
+
+
+![windowMode](figures/windowMode.png)
+
+
+## 实现原理
+
+当前窗口的实现和开发与应用开发模型相关联,不同模型下的接口功能略有区别。当前应用开发模型分为FA模型和Stage模型。
+
+两个模型的整体架构和设计思想,详见[FA模型综述](../ability/fa-brief.md)和[Stage模型综述](../ability/stage-brief.md)。
+
+针对窗口开发,推荐使用Stage模型进行相关开发。
+
 
-## 运作机制
+## 约束与限制
 
-为了将图形界面显示在屏幕上,应用和系统需要向窗口系统申请窗口对象,这通常代表了屏幕上一块矩形区域,具有位置、宽高、和叠加层次等属性。同时,窗口对象也负责加载界面中UI框架的根节点,应用程序的UI界面就通过这个根节点在窗口中加载显示。
\ No newline at end of file
+在FA模型下,不支持系统窗口的相关开发。
diff --git a/zh-cn/contribute/style-guide/style-guide-content-elements.md b/zh-cn/contribute/style-guide/style-guide-content-elements.md
index 9c37acd761509c61be5f8d0db3dc1002b7429fdc..b984629d236de6c4015dd4b7769077b4a6842011 100755
--- a/zh-cn/contribute/style-guide/style-guide-content-elements.md
+++ b/zh-cn/contribute/style-guide/style-guide-content-elements.md
@@ -144,11 +144,11 @@
 
 【规则】将链接URL写入内容,而不是直接在页面中暴露URL地址。
 
-- 链接到其他手册、页面内容:\[术语](glossary/glossary.md)
+- 链接到其他手册、页面内容:\[术语]\(glossary/glossary.md)
 
-- 链接到本页面内其他内容段落:\[FAQ](#faq)
+- 链接到本页面内其他内容段落:\[FAQ]\(#faq)
 
-- 链接到其他站点:\[示例](www.example.com)
+- 链接到其他站点:\[示例]\(www.example.com)
 
   | **正例** | **反例** |
   | -------- | -------- |
diff --git a/zh-cn/contribute/template/guide-template.md b/zh-cn/contribute/template/guide-template.md
index 9e6581f02f345229e04e5e36a870581171e522b8..fefe1359814200857ff975c45e75bde193658251 100644
--- a/zh-cn/contribute/template/guide-template.md
+++ b/zh-cn/contribute/template/guide-template.md
@@ -2,18 +2,19 @@
 
 
 > **注意:**
-> _1、本模板提供推荐的开发指南文档框架、典型知识点写作要求及写作指导。实际写作中,应视具体__方案/特性/功能/模块__情况,先完成开发者任务场景分析与开发指南大纲设计,然后参照本模板写作具体内容。_
 >
-> _2、文档写作时,两级标题之间的位置不允许添加内容。_
+> _1、本模板提供推荐的开发指南文档框架、典型知识点写作要求及写作指导。实际写作中,应视具体**方案/特性/功能/模块**情况,先完成开发者任务场景分析与开发指南大纲设计,然后参照本模板写作具体内容。_
+>
+> _2、文档写作时,一级标题与二级标题之间的位置不允许添加内容。_
 >
 > _3、所有斜体为写作指导,正式文档中注意全部删除。_
 
 
 ## xxx概述
 
-_必选。根据具体__方案/特性/功能/模块__的场景划分情况,此处的“xxx概述”与具体任务场景下的“任务场景n概述”按需提供一处或共存,具体的:_
+_必选。根据具体**方案/特性/功能/模块**情况的场景划分情况,此处的“xxx概述”与具体任务场景下的“任务场景n概述”按需提供一处或共存,具体的:_
 
-_1、此处的“xxx概述”":用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_
+_1、此处的“xxx概述”:用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_
 
 _2、“任务场景n概述”:用于承载任务场景n直接相关的概述内容,知识点构成及写作要点与“xxx概述”相同,包括任务场景n简介、任务场景n直接相关的基本概念、任务场景n直接相关的实现原理、任务场景n直接相关的约束与限制、任务场景n直接相关的相关实例。如无,则删除。_
 
@@ -21,11 +22,11 @@ _2、“任务场景n概述”:用于承载任务场景n直接相关的概述
 
 **_1、目标对象:_**_面向内、外部开发者(含产品经理、开发人员)。面向UX设计师的指导文档通常由专门的UX设计规范承载,不在开发指南范畴。本文如需提及,以超链接方式指向对应UX规范即可。_
 
-_**2、内容定位:**介绍__方案/特性/功能/模块__是什么(What)、能做什么(Why),以及如何进行相关应用程序/设备的设计、开发、发布上架(How)。支撑开发者学习必要知识,最终在实际开发活动中完成既定任务目标。_
+**_2、内容定位:_**_介绍**方案/特性/功能/模块**是什么(What)、能做什么(Why),以及如何进行相关应用程序/设备的设计、开发、发布上架(How)。支撑开发者学习必要知识,最终在实际开发活动中完成既定任务目标。_
 
-_**3、用户视角:**变身开发者,始终以开发者视角,提供开发者关注的、可感知和使用的内容。_
+**_3、用户视角:_**_变身开发者,始终以开发者视角,提供开发者关注的、可感知和使用的内容。_
 
-_**4、面向任务:**聚焦开发者实际任务,完整、正确、易用,具备权威指导性。_
+**_4、面向任务:_**_聚焦开发者实际任务,完整、正确、易用,具备权威指导性。_
 
 _5、不要受限:模板只是基础框架,不要僵化。_
 
@@ -40,7 +41,7 @@ _这个方案/特性/功能/模块是什么(定义-what)?我为什么要
 
 _**【写作要点】**_
 
-- _提供易理解的场景化描述。__可参考如下SCQA方式介绍方案/特性/功能/模块客户面的功能场景、特点。_
+- _提供易理解的场景化描述。_ _可参考如下SCQA方式介绍方案/特性/功能/模块客户面的功能场景、特点。_
   - _S:situation(情景),由大家都熟悉的的情景、事实引入。_
   - _C:complication(冲突),但是实际情况往往和我们的要求有冲突。_
   - _Q:question(疑问),怎么办?_
@@ -71,7 +72,7 @@ _要使用该方案/特性/功能/模块,有哪些独有概念是我需要了
 
 - _运作机制、约束限制、开发过程等多个章节相关的概念在此介绍,仅某个章节用到的概念在对应章节中介绍。_
 
-- _业界通用的概念不用在此赘述。__注意使用业界通用术语来表达,不用华为研发内部语言。_
+- _业界通用的概念不用在此赘述。_ _注意使用业界通用术语来表达,不用华为研发内部语言。_
 
 - _概念之间如有逻辑关系,推荐使用图形描述。_
 
@@ -141,7 +142,7 @@ _可选。此处放置以下各任务场景通用的约束与限制。_
 
 _**【开发者关注点】**_
 
-_我要__使用该方案/特性/功能/模块,有什么约束条件吗?__该方案/特性/功能/模块__实现的程度如何,能满足我的需求吗?_
+_我要使用该方案/特性/功能/模块,有什么约束条件吗?该方案/特性/功能/模块实现的程度如何,能满足我的需求吗?_
 
 **_【写作要点】_**
 
@@ -174,7 +175,7 @@ _有哪些Sample code、Codelabs、Demo工程可供学习、参考。_
 
 **_【写作要点】_**
 
-_已发布的Sample code、Codelabs、Demo工程包,请在此处提供链接(一般为Gitee链接)。__注意:不允许将工程包等作为附件插入到文档中。_
+_已发布的Sample code、Codelabs、Demo工程包,请在此处提供链接(一般为Gitee链接)。_ _注意:不允许将工程包等作为附件插入到文档中。_
 
 **【写作样例】**
 
@@ -189,7 +190,7 @@ _可选。_
 
 _根据具体的开发场景分析分解情况,本节内容可按需放入“开发指导”下,作为“前提条件”或“开发准备”与具体场景的“开发步骤”就近放置。_
 
-_明确如何准备开发环境(如软硬件配置要求、工具要求、设备要求等)__。_
+_明确如何准备开发环境(如软硬件配置要求、工具要求、设备要求等)。_
 
 _如果不涉及上述特殊要求,此章节删除。_
 
@@ -256,7 +257,7 @@ _贴近开发者实际开发场景:_
 
 - _开发者需要通过哪些任务来达成开发目标,这就是任务场景。_
 
-- _任务场景可以有1个或多个,__可按需添加多个“开发指导”章节。__同时要遵循分层分级逻辑,即大场景(任务场景n)-&gt;小场景(子任务场景n-x)-&gt;任务逻辑(对应“开发流程”)-&gt;操作步骤(一个个step)。_
+- _任务场景可以有1个或多个,可按需添加多个“开发指导”章节。同时要遵循分层分级逻辑,即大场景(任务场景n)-&gt;小场景(子任务场景n-x)-&gt;任务逻辑(对应“开发流程”)-&gt;操作步骤(一个个step)。_
 
 ### 任务场景n概述
 
@@ -380,9 +381,8 @@ _描述开发过程遇到的各类问题以及解决方案,以提高开发效
 
 - _如果无常见问题,删除此章节。_
 
-- _如果有常见问题,建议单独章节,后续具备扩展性。_
+- _各任务场景通用的常见问题,建议以单独章节呈现;单个任务场景相关的常见问题,放在对应任务场景的章节下即可。_
 
-- _如果有常见问题,问题少于1屏且未来扩充可能性不大,可放在“开发指导”。_
 
 
 ### 1.XX问题(简单问题)
diff --git a/zh-cn/contribute/template/js-template.md b/zh-cn/contribute/template/js-template.md
index ccb96104956321a6a1ecefb76aa7cdbd02c6044d..5a38bc05af08e7d08ff96938d3ee4f4567f63a83 100644
--- a/zh-cn/contribute/template/js-template.md
+++ b/zh-cn/contribute/template/js-template.md
@@ -74,7 +74,7 @@ ArrayList和LinkedList相比,ArrayList的随机访问效率更高。但由于A
 > 1. 根据实际情况填写导入模块。采用代码段的样式,给出import语句。
 >
 > 2. 如果没有导入模块,将“导入模块”修改为“使用说明”。<br/>使用说明案例:<br/>
->    在使用AbilityContext的功能前,需要通过[getContext()](链接到对应的接口说明文件中.md)先获取Context对象。
+>    在使用AbilityContext的功能前,需要通过\[getContext()]\(链接到对应的接口说明文件中.md)先获取Context对象。
 >
 > ```js
 >    import ability_featureAbility from '@ohos.ability.featureAbility';
diff --git "a/zh-cn/contribute/\350\264\241\347\214\256\346\226\207\346\241\243.md" "b/zh-cn/contribute/\350\264\241\347\214\256\346\226\207\346\241\243.md"
index dfcd8a51758adb85cfabaf70b1adc26025f77b68..a5a9bd99d8f20247f68efa03b5e067ee65f2f76c 100755
--- "a/zh-cn/contribute/\350\264\241\347\214\256\346\226\207\346\241\243.md"
+++ "b/zh-cn/contribute/\350\264\241\347\214\256\346\226\207\346\241\243.md"
@@ -63,8 +63,8 @@
 
 鼓励开发者在学习、开发过程中,总结经验并创建技术内容帮助更多开发者快速上手。推荐输出各类How to教程、常见问题FAQ等。请参考如下写作模板:
 
--   [How to教程](template/tutorial-template.md):贡献至`contribute/tutorial`文件夹下。
--   [FAQ](template/faq-template.md):贡献至`contribute/faqs`文件夹下。
+-   [How to教程](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/tutorial-template.md):贡献至`contribute/tutorial`文件夹下。
+-   [FAQ](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/faq-template.md):贡献至`contribute/faqs`文件夹下。
 
 内容写作模板归档在Docs文档仓下contribute文件夹中。
 
diff --git a/zh-cn/design/figures/API-Category.png b/zh-cn/design/figures/API-Category.png
index 22813ba83cd97c5017cb79b468bdcc416886022a..263d76da6de621a7e2a4ad23fbb907426b334dce 100644
Binary files a/zh-cn/design/figures/API-Category.png and b/zh-cn/design/figures/API-Category.png differ
diff --git a/zh-cn/design/hdi-design-specifications.md b/zh-cn/design/hdi-design-specifications.md
index a6f410f136870ef1b954c67f640789abbdb96c4c..036d191fa13983763271425d39187296306c39b4 100644
--- a/zh-cn/design/hdi-design-specifications.md
+++ b/zh-cn/design/hdi-design-specifications.md
@@ -24,6 +24,7 @@
 | 版本  | 变更说明               |
 | ---  | --------------------- |
 | v1.0 Beta | 初始试行版本               |
+| v1.0  | 发布正式版本               |
 
 
 ## 范围与定义
@@ -60,7 +61,7 @@ interface IVibrator {
 当对原有接口进行不破坏向后兼容的修改时,如在最后追加新增接口、新增枚举定义、修改变量名称等,只需要增加`minor`版本号,新的包名为`ohos.hdi.vibrator.v1_1`。如:
 
 ```cpp
-package ohos.hdi.vibrator.v1_0;
+package ohos.hdi.vibrator.v1_1;
 interface IVibrator {
    ...
    SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int freq);
@@ -71,7 +72,7 @@ interface IVibrator {
 如果对原有接口进行更名、修改变量列表等不向后兼容修改时,需要增加`major`版本号,新的包名为`ohos.hdi.vibrator.v2_0`。如:
 
 ```cpp
-package ohos.hdi.vibrator.v1_0;
+package ohos.hdi.vibrator.v2_0;
 interface IVibrator {
    ...
    SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int frequency, [int] time);
@@ -85,13 +86,13 @@ interface IVibrator {
 
 Table 1 接口评审&管控角色
 
-| **涉及角色**    | **API治理中的职责**                                    |
+| **涉及角色**    | **HDI接口治理中的职责**                                    |
 | ----------- | ------------------------------------------------ |
-| Contributor | API的设计和交付主体,负责API相关的代码与设计文档提交。                   |
-| Committer   | API相关的代码评审,涉及API提交预审。                            |
-| 领域SIG       | 新增API相关的代码提交评审,领域SIG评审通过即可合入。<br>变更API相关的代码提交预审。 |
-| Driver SIG  | 变更API相关的代码提交评审。                                  |
-| PMC         | API Version计划发布、API治理章程修订评审发布等。                  |
+| Contributor | HDI的设计和交付主体,负责HDI相关的代码与设计文档提交。                   |
+| Committer   | HDI相关的代码评审,涉及HDI提交预审。                            |
+| 领域SIG     | 新增/变更HDI相关的代码提交,本领域SIG首先进行评审。 |
+| Driver SIG  | 新增/变更HDI相关的代码提交评审。                                  |
+| PMC         | HDI设计规范修订评审发布等。                  |
 
 #### 设备接口发布
 
@@ -101,8 +102,8 @@ Table 1 接口评审&管控角色
 
     主要过程说明:
 
-    1. HDI评审申请、代码提交(Owner:Contributor),所有涉及HDI新增或变更需同步提交相应的API评审文档,详细说明API的需求来源、场景与使用方法、权限设计、隐私保护澄清等,详见后面的API评审申请要素。为避免后续的返工,Contributor可以在正式的API评审申请、代码提交之前,先通过邮件方式将API设计文档提交Committer、领域SIG、API SIG等相关人员预审。
-    2. 代码评审(Owner:Committer),代码评审和API预审,涉及API提交Code Review通过后,还需要进一步领域SIG评审。
+    1. HDI评审申请、代码提交(Owner:Contributor),所有涉及HDI新增或变更需同步提交相应的HDI评审文档,详细说明HDI的需求来源、场景与使用方法、权限设计、隐私保护澄清等,详见后面的评审申请要素。为避免后续的返工,Contributor可以在正式的HDI评审申请、代码提交之前,先通过邮件方式将HDI相关设计文档提交Committer、领域SIG、Driver SIG等相关人员预审。
+    2. 代码评审(Owner:Committer),代码评审和接口预审,涉及HDI的提交Code Review通过后,还需要进一步领域SIG评审。
     3. 领域SIG评审(Owner:领域SIG),涉及新增/变更HDI相关接口的代码提交,领域SIG评审通过后,还需要进一步提交Driver SIG。
     4. HDI评审(Owner:Driver SIG),对新增/变更HDI相关的代码提交进行接口评审,评审通过即可合入代码。
     5. 评审完成。
@@ -131,7 +132,7 @@ Table 1 接口评审&管控角色
 
         - 对废弃接口增加标识废弃标记。
 
-        - 废弃API至少保留4个OpenHarmony API版本
+        - 废弃HDI至少保留4个OpenHarmony API版本
 
 ## 接口设计约束
 
@@ -484,7 +485,3 @@ GetExecutorInfo([out] struct ExecutorInfo executorInfo);
 | ------- | ------- | ------ |
 | struct  | struct  | struct |
 | enum    | enum    | enum   |
-
-
-## 其他说明
-本文档Beta期为自发布日起1个月,用于接纳社区意见,欢迎积极参与讨论。
\ No newline at end of file
diff --git a/zh-cn/device-dev/dev-board-on-the-master.md b/zh-cn/device-dev/dev-board-on-the-master.md
index dff638dceb0bc12dc4a22294dbe645606083a2b1..20237f39f24e9563bbe0210a2a23b5b9af766d4a 100644
--- a/zh-cn/device-dev/dev-board-on-the-master.md
+++ b/zh-cn/device-dev/dev-board-on-the-master.md
@@ -5,32 +5,32 @@
 
 ## 标准系统开发板
 
-| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
+| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
 | ---------- | -------- | -------- | ------------ | -------------------------------------- |
-|润和HH-SCDAYU200| RK3568 |润和HH-SCDAYU200开发板基于Rockchip RK3568平台,集成双核架构GPU以及高效能NPU,四核64位Cortex-A55 处理器采用22nm工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口,配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。|影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
-|Hispark_Phoenix|Hi3751V351|全球制式FHD(全高清)智能电视主处理芯片,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPEG2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置1GB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。|智能电视、智能家居中控屏、智能显示器、商显广告屏、交互白板、工业控制屏、打印机屏、白电屏、健身器显示屏等。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|Unionpi Tiger|Amlogic A311D|Unionpi Tiger是一款应用于图像处理,音视频处理和深度学习等场景的智能硬件,其主芯片采用Amlogic A311D芯片方案。 A311D支持GPU和神经网络加速子系统,支持4K视频编解码器引擎和一流的HDR图像处理,并集成了所有标准音频/视频输入/输出接口。主系统的CPU采用大小核设计,主频高达2.2GHz,集成了四个Cortex-A73核心和两Cortex-A53核心 ,集成独立的5.0T NPU处理器。|智能家居、AI人脸识别、工业控制、智慧车载、多媒体处理、AI边缘计算等。|代码仓:<br/>[device_soc_amlogic](https://gitee.com/openharmony/device_soc_amlogic)<br/>[device_board_unionman](https://gitee.com/openharmony/device_board_unionman)<br/>[vendor_unionman](https://gitee.com/openharmony/vendor_unionman)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|MILOS_Standard0|NXP i.MX8M Mini|基于 NXP i.MX8M Mini处理器,1.8G Hz主频。接⼝外设丰富:LVDS显⽰、MIPI-DSI信号引出、 MIPI-CSI摄像头接⼝、⽀持⾳频输⼊输出、千兆⽹、多路USB、多串⼝、等多种通信接⼝|⾼性能仪器仪表(⼯业及医疗)、⼯业控制及⼈机互动装置、智能交通、智慧消防、智慧楼宇等。|代码仓:<br/>[device_soc_nxp](https://gitee.com/openharmony/device_soc_nxp)<br/>[device_board_osware](https://gitee.com/openharmony/device_board_osware)<br/>[vendor_osware](https://gitee.com/openharmony/vendor_osware)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|扬帆开发板|RK3399|扬帆开发板基于RK3399芯片平台;RK3399的CPU采用big.LITTLE核心架构,采用双核Cortex-A72大核+四核Cortex-A53小核结构。在整数,浮点数,内存,整体性能,功耗和核心面积方面都进行了重大改进。RK3399的GPU采用四核ARM的新一代高端图像处理器Mali-T860,集成了更多的带宽压缩技术(如智能叠加,ASTC和本地像素存储),并支持更多的图形和计算接口。|互动广告机、互动数字标牌、智能自助终端、智能零售终端、工控主机、机器人设备等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)<br/>[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|致远开发板|T507|致远开发板搭载了全志工业级T507芯片,该芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路视频输出接口(RGB/2*LVDS/HDMI/CVBS OUT)、多路视频输入接口(MIPI CSI/BT656/BT1120),支持4K@60fps H.265解码,4K@25fps H.264解码,DI,3D降噪,自动调色系统和梯形校正模块可以提供提供流畅的用户体验和专业的视觉效果|工业控制、智能驾舱、智慧家居、智慧电力、在线教育等。|代码仓:<br/>[device_soc_allwinner](https://gitee.com/openharmony/device_soc_allwinner)<br/>[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)<br/>[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|润和HH-SCDAYU200| RK3568 |主要能力:<br/>基于Rockchip RK3568平台,集成双核架构GPU以及高效能NPU,四核64位Cortex-A55 处理器采用22nm工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口,配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。<br/>适配案例:<br/>[DAYU200适配案例](porting/porting-dayu200-on_standard-demo.md)|影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|Hispark_Phoenix|Hi3751V351|主要能力:<br/>全球制式FHD(全高清)智能电视主处理芯片,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPEG2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置1GB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。|智能电视、智能家居中控屏、智能显示器、商显广告屏、交互白板、工业控制屏、打印机屏、白电屏、健身器显示屏等。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|Unionpi Tiger|Amlogic A311D|主要能力:<br/>Unionpi Tiger是一款应用于图像处理,音视频处理和深度学习等场景的智能硬件,其主芯片采用Amlogic A311D芯片方案。 A311D支持GPU和神经网络加速子系统,支持4K视频编解码器引擎和一流的HDR图像处理,并集成了所有标准音频/视频输入/输出接口。主系统的CPU采用大小核设计,主频高达2.2GHz,集成了四个Cortex-A73核心和两Cortex-A53核心 ,集成独立的5.0T NPU处理器。|智能家居、AI人脸识别、工业控制、智慧车载、多媒体处理、AI边缘计算等。|代码仓:<br/>[device_soc_amlogic](https://gitee.com/openharmony/device_soc_amlogic)<br/>[device_board_unionman](https://gitee.com/openharmony/device_board_unionman)<br/>[vendor_unionman](https://gitee.com/openharmony/vendor_unionman)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|MILOS_Standard0|NXP i.MX8M Mini|主要能力:<br/>基于 NXP i.MX8M Mini处理器,1.8G Hz主频。接⼝外设丰富:LVDS显⽰、MIPI-DSI信号引出、 MIPI-CSI摄像头接⼝、⽀持⾳频输⼊输出、千兆⽹、多路USB、多串⼝、等多种通信接⼝|⾼性能仪器仪表(⼯业及医疗)、⼯业控制及⼈机互动装置、智能交通、智慧消防、智慧楼宇等。|代码仓:<br/>[device_soc_nxp](https://gitee.com/openharmony/device_soc_nxp)<br/>[device_board_osware](https://gitee.com/openharmony/device_board_osware)<br/>[vendor_osware](https://gitee.com/openharmony/vendor_osware)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|扬帆开发板|RK3399|主要能力:<br/>扬帆开发板基于RK3399芯片平台;RK3399的CPU采用big.LITTLE核心架构,采用双核Cortex-A72大核+四核Cortex-A53小核结构。在整数,浮点数,内存,整体性能,功耗和核心面积方面都进行了重大改进。RK3399的GPU采用四核ARM的新一代高端图像处理器Mali-T860,集成了更多的带宽压缩技术(如智能叠加,ASTC和本地像素存储),并支持更多的图形和计算接口。|互动广告机、互动数字标牌、智能自助终端、智能零售终端、工控主机、机器人设备等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)<br/>[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|致远开发板|T507|主要能力:<br/>致远开发板搭载了全志工业级T507芯片,该芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路视频输出接口(RGB/2*LVDS/HDMI/CVBS OUT)、多路视频输入接口(MIPI CSI/BT656/BT1120),支持4K@60fps H.265解码,4K@25fps H.264解码,DI,3D降噪,自动调色系统和梯形校正模块可以提供提供流畅的用户体验和专业的视觉效果|工业控制、智能驾舱、智慧家居、智慧电力、在线教育等。|代码仓:<br/>[device_soc_allwinner](https://gitee.com/openharmony/device_soc_allwinner)<br/>[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)<br/>[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
 
 ## 小型系统开发板
 
-| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
+| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
 | ---------- | -------- | -------- | ------------ | -------------------------------------- |
-|Hispark_Taurus|Hi3516DV300|Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。|带屏智能设备,如带屏冰箱、车机等。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|BearPi-HM Micro|STM32MP157A|BearPi-HM Micro开发板是一块高度集成并可运行OpenHarmony系统的开发板,板载高性能的工业级处理器STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧家居、智能硬件、中控屏等。|代码仓:<br/>[device_soc_st](https://gitee.com/openharmony/device_soc_st)<br/>[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)<br/>[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|Hispark_Taurus|Hi3516DV300|主要能力:<br/>Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。|带屏智能设备,如带屏冰箱、车机等。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)<br/>[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|BearPi-HM Micro|STM32MP157A|主要能力:<br/>BearPi-HM Micro开发板基于STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。<br/>适配案例:<br/>[BearPi-HM Mircro适配案例](porting/porting-stm32mp15xx-on-smallsystem.md)|智慧家居、智能硬件、中控屏等。|代码仓:<br/>[device_soc_st](https://gitee.com/openharmony/device_soc_st)<br/>[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)<br/>[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
 
 ## 轻量系统开发板
 
-| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
+| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 |
 | ---------- | -------- | -------- | ------------ | -------------------------------------- |
-|小熊派BearPi-HM Nano|Hi3861|BearPi-HM_Nano开发板是一块专门为OpenHarmony设计的开发板,板载高度集成的2.4GHz WiFi SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧路灯、智慧物流、人体红外等连接类设备。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)<br/>[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|欧智通V200ZR|BES2600|Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:<br/>[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br/>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br/>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|朗国LANGO200|ASR582X|LANGO200 IOT开发板,集成了高性能的WIFI-BLE双模芯片ASR5822、外部存储芯片、语音播放芯片以及模数转换等,同时支持SPI等IOT设备常用外设接口,可外扩OLED显示屏、红外遥控等。|智能家居、连接类模组。|代码仓:<br/>[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)<br/>[device_board_lango](https://gitee.com/openharmony/device_board_lango)<br/>[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|汇顶GR5515-STARTER-KIT|GR5515|支持Bluetooth 5.1的单模低功耗蓝牙SoC,多功能按键和LED指示灯。|智能硬件,如手表、手环、价格类标签。|代码仓:<br/>[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)<br/>[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)<br/>[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|Niobe407|STM32F407IGT6|Niobe407开发板基于STM32F407芯片,该芯片集成Arm Cortex-M4 CPU,带 FPU,自适应实时加速器,频率高达 168 MHz。|智慧交通、工业控制等。|代码仓:<br/>[device_soc_st](https://gitee.com/openharmony/device_soc_st)<br/>[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)<br/>[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|B91 Generic Starter Kit|TLSR9x|泰凌微公司的B91 Generic Starter Kit是一个可用于评估TLSR9系列芯片组的硬件平台,BLE,BLE Mesh,Zigbee 3.0, Thread和2.4GHz私有协议等多种适用于2.4GHz接口标准的应用程序都可以用它来进行开发。|智能家居、连接类模组。|代码仓:<br/>[device_soc_telink](https://gitee.com/openharmony/device_soc_telink)<br/>[device_board_telink](https://gitee.com/openharmony/device_board_telink)<br/>[vendor_telink](https://gitee.com/openharmony/vendor_telink)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|cst85_wblink|cst85f01|cst85_wblink开发板是基于芯海科技cst85f01芯片,由芯海科技出品的一款高性能、多功能、高性价比AIoT SoC开发板。cst85_wblink开发板,集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.0协议,内建多种容量的RAM(最大992KB)和Flash(最大16MB),支持MIPI DSI及CSI,适用于快速开发物联网(IOT)及智能设备的Wi-Fi、蓝牙的应用。|物联网、智能家居等。|代码仓:<br/>[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)<br/>[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)<br/>[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
-|Neptune100| W800 |润和 Neptune100开发板基于联盛德W800芯片,是一款Wi-Fi &蓝牙双模SoC开发板,支持标准的802.11 b/g/n协议,内置完整的TCP/IP协议栈,集成蓝牙基带处理器,支持BT/BLE4.2协议;具备丰富的数字接口,内置QFlash、SPI、UART、GPIO、I2C、I2S、7816等;具备强大的安全特性,支持多种硬件加解密算法,内置DSP、浮点运算单元与安全引擎,支持代码安全权限设置,内置2MBFlash存储器,支持固件加密存储、固件签名、安全调试、安全升级等多项安全措施。|物联网、智能家居、连接类产品。|代码仓:<br/>[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
-|小凌派-RK2206| RK2206 |小凌派-RK2206开发板主控器为瑞芯微高性能、高性价比的RK2206芯片,搭载OpenHarmony轻量级操作系统,内置WiFi/AP功能、NFC功能、液晶显示接口以及E53接口,E53接口兼容各类传感器模块,便于多样化的IoT物联网应用;目前小凌派-RK2006开发板已经拥有20+个成熟的应用案例,以及完善的教学课程。|智慧城市、智能家居、智慧教学、智慧车载以及智慧医疗等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_lockzhiner](https://gitee.com/openharmony/device_board_lockzhiner)<br/>[vendor_lockzhiner](https://gitee.com/openharmony/vendor-lockzhiner)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
\ No newline at end of file
+|小熊派BearPi-HM Nano|Hi3861|主要能力:<br/>BearPi-HM_Nano开发板是一块专门为OpenHarmony设计的开发板,板载高度集成的2.4GHz WiFi SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧路灯、智慧物流、人体红外等连接类设备。|代码仓:<br/>[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)<br/>[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)<br/>[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|Multi-modal V200Z-R|BES2600|主要能力:<br/>Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。<br/>适配案例:<br/>[Multi-modal V200Z-R适配案例](porting/porting-bes2600w-on-minisystem-display-demo.md)|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:<br/>[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)<br/>[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)<br/>[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|朗国LANGO200|ASR582X|主要能力:<br/>LANGO200 IOT开发板,集成了高性能的WIFI-BLE双模芯片ASR5822、外部存储芯片、语音播放芯片以及模数转换等,同时支持SPI等IOT设备常用外设接口,可外扩OLED显示屏、红外遥控等。<br/>适配案例:<br/>[LANGO200适配案例](porting/porting-asr582x-combo-demo.md)|智能家居、连接类模组。|代码仓:<br/>[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)<br/>[device_board_lango](https://gitee.com/openharmony/device_board_lango)<br/>[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|汇顶GR5515-STARTER-KIT|GR5515|主要能力:<br/>支持Bluetooth 5.1的单模低功耗蓝牙SoC,多功能按键和LED指示灯。|智能硬件,如手表、手环、价格类标签。|代码仓:<br/>[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)<br/>[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)<br/>[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|Niobe407|STM32F407IGT6|主要能力:<br/>Niobe407开发板基于STM32F407芯片,该芯片集成Arm Cortex-M4 CPU,带 FPU,自适应实时加速器,频率高达 168 MHz。<br/>适配案例:<br/>[Niobe407适配案例](porting/porting-stm32f407-on-minisystem-eth.md)|智慧交通、工业控制等。|代码仓:<br/>[device_soc_st](https://gitee.com/openharmony/device_soc_st)<br/>[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)<br/>[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|B91 Generic Starter Kit|TLSR9x|主要能力:<br/>泰凌微公司的B91 Generic Starter Kit是一个可用于评估TLSR9系列芯片组的硬件平台,BLE,BLE Mesh,Zigbee 3.0, Thread和2.4GHz私有协议等多种适用于2.4GHz接口标准的应用程序都可以用它来进行开发。|智能家居、连接类模组。|代码仓:<br/>[device_soc_telink](https://gitee.com/openharmony/device_soc_telink)<br/>[device_board_telink](https://gitee.com/openharmony/device_board_telink)<br/>[vendor_telink](https://gitee.com/openharmony/vendor_telink)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds|
+|cst85_wblink|cst85f01|主要能力:<br/>cst85_wblink开发板是基于芯海科技cst85f01芯片,由芯海科技出品的一款高性能、多功能、高性价比AIoT SoC开发板。cst85_wblink开发板,集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.0协议,内建多种容量的RAM(最大992KB)和Flash(最大16MB),支持MIPI DSI及CSI,适用于快速开发物联网(IOT)及智能设备的Wi-Fi、蓝牙的应用。<br/>适配案例:<br/>[cst85_wblink适配案例](porting/porting-cst85f01-combo-demo.md)|物联网、智能家居等。|代码仓:<br/>[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)<br/>[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)<br/>[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|Neptune100| W800 |主要能力:<br/>润和 Neptune100开发板基于联盛德W800芯片,是一款Wi-Fi &蓝牙双模SoC开发板,支持标准的802.11 b/g/n协议,内置完整的TCP/IP协议栈,集成蓝牙基带处理器,支持BT/BLE4.2协议;具备丰富的数字接口,内置QFlash、SPI、UART、GPIO、I2C、I2S、7816等;具备强大的安全特性,支持多种硬件加解密算法,内置DSP、浮点运算单元与安全引擎,支持代码安全权限设置,内置2MBFlash存储器,支持固件加密存储、固件签名、安全调试、安全升级等多项安全措施。<br/>适配案例:<br/>[Neptune100适配案例](porting/porting-w800-combo-demo.md)|物联网、智能家居、连接类产品。|代码仓:<br/>[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)<br/>[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)<br/>[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
+|小凌派-RK2206| RK2206 |主要能力:<br/>小凌派-RK2206开发板主控器为瑞芯微高性能、高性价比的RK2206芯片,搭载OpenHarmony轻量级操作系统,内置WiFi/AP功能、NFC功能、液晶显示接口以及E53接口,E53接口兼容各类传感器模块,便于多样化的IoT物联网应用;目前小凌派-RK2006开发板已经拥有20+个成熟的应用案例,以及完善的教学课程。|智慧城市、智能家居、智慧教学、智慧车载以及智慧医疗等。|代码仓:<br/>[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)<br/>[device_board_lockzhiner](https://gitee.com/openharmony/device_board_lockzhiner)<br/>[vendor_lockzhiner](https://gitee.com/openharmony/vendor-lockzhiner)<br/>社区每日构建版本获取地址:<br/>http://ci.openharmony.cn/dailys/dailybuilds |
\ No newline at end of file
diff --git a/zh-cn/device-dev/device-dev-guide.md b/zh-cn/device-dev/device-dev-guide.md
index 4e2cf46d41894b7fa621dedded37f2a0da539d23..3203ed3ce6a79e5c6d0a580805c21b03bb2bfa39 100644
--- a/zh-cn/device-dev/device-dev-guide.md
+++ b/zh-cn/device-dev/device-dev-guide.md
@@ -39,7 +39,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
 | 快速入门        | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行          | -&nbsp;[轻量和小型系统快速入门](quick-start/quickstart-ide-lite-overview.md) |
 | 基础能力使用    | 使用OpenHarmony提供的基础能力                                | -&nbsp;[轻量系统内核开发指南](kernel/kernel-mini-overview.md)<br/>-&nbsp;[小型系统内核开发指南](kernel/kernel-small-overview.md)<br/>-&nbsp;[驱动开发指南](driver/driver-hdf-overview.md)<br/>-&nbsp;[子系统开发指南](subsystems/subsys-build-mini-lite.md)<br/>-&nbsp;[安全指南](security/security-guidelines-overall.md)<br/>-&nbsp;[隐私保护](security/security-privacy-protection.md) |
 | 进阶开发        | 结合系统能力开发智能设备                                     | -&nbsp;[WLAN连接类产品](guide/device-wlan-led-control.md)<br/>-&nbsp;[无屏摄像头类产品](guide/device-iotcamera-control-overview.md)<br/>-&nbsp;[带屏摄像头类产品](guide/device-camera-control-overview.md) |
-| 移植适配        | -&nbsp;针对特定芯片做移植适配<br/>-&nbsp;对三方库进行移植适配<br/>-&nbsp;三方厂商移植案例<br/> | -&nbsp;[轻量系统芯片移植指导](porting/porting-minichip.md)<br/>-&nbsp;[小型系统芯片移植指导](porting/porting-smallchip-prepare-needs.md)<br/>-&nbsp;[轻量和小型系统三方库移植指导](porting/porting-thirdparty-overview.md)<br/>   - [带屏解决方案之恒玄芯片移植案例](porting-bes2600w-on-minisystem-display-demo.md)<br/>    - [Combo解决方案之ASR芯片移植案例](porting-asr582x-combo-demo.md)<br/>    - [物联网解决方案之芯海cst85芯片移植案例](porting-cst85f01-combo-demo.md)<br/>    - [轻量系统STM32F407芯片移植案例](porting-stm32f407-on-minisystem-eth.md)<br/>    - [Combo解决方案之W800芯片移植案例](porting-w800-combo-demo.md)<br/> - [小型设备STM32MP1芯片移植案例](porting-stm32mp15xx-on-smallsystem.md)|
+| 移植适配        | -&nbsp;针对特定芯片做移植适配<br/>-&nbsp;对三方库进行移植适配<br/>-&nbsp;三方厂商移植案例<br/> | -&nbsp;[轻量系统芯片移植指导](porting/porting-minichip.md)<br/>-&nbsp;[小型系统芯片移植指导](porting/porting-smallchip-prepare-needs.md)<br/>-&nbsp;[轻量和小型系统三方库移植指导](porting/porting-thirdparty-overview.md)<br/>   - [带屏解决方案之恒玄芯片移植案例](porting/porting-bes2600w-on-minisystem-display-demo.md)<br/>    - [Combo解决方案之ASR芯片移植案例](porting/porting-asr582x-combo-demo.md)<br/>    - [物联网解决方案之芯海cst85芯片移植案例](porting/porting-cst85f01-combo-demo.md)<br/>    - [轻量系统STM32F407芯片移植案例](porting/porting-stm32f407-on-minisystem-eth.md)<br/>    - [Combo解决方案之W800芯片移植案例](porting/porting-w800-combo-demo.md)<br/> - [小型设备STM32MP1芯片移植案例](porting/porting-stm32mp15xx-on-smallsystem.md)|
 | 贡献组件        | 为OpenHarmony贡献功能组件                                    | -&nbsp;[HPM&nbsp;Part&nbsp;介绍](hpm-part/hpm-part-about.md)<br/>-&nbsp;[HPM&nbsp;Part&nbsp;开发指导](hpm-part/hpm-part-development.md)<br/>-&nbsp;[HPM&nbsp;Part&nbsp;参考](hpm-part/hpm-part-reference.md) |
 | 参考            | 开发参考                                                     | [常见问题](faqs/faqs-overview.md)         
 
diff --git a/zh-cn/device-dev/driver/Readme-CN.md b/zh-cn/device-dev/driver/Readme-CN.md
index 3ee6c11799a477f3f9b9178545d23d518ba9c006..4118cdf0596261ee5c53161a6855cc7eecbfb544 100755
--- a/zh-cn/device-dev/driver/Readme-CN.md
+++ b/zh-cn/device-dev/driver/Readme-CN.md
@@ -46,6 +46,7 @@
   - [Audio](driver-peripherals-audio-des.md)
   - [Camera](driver-peripherals-camera-des.md)
   - [Face_auth](driver-peripherals-face_auth-des.md)
+  - [Fingerprint_auth](driver-peripherals-fingerprint_auth-des.md)
   - [LCD](driver-peripherals-lcd-des.md)
   - [Light](driver-peripherals-light-des.md)
   - [Pin_auth](driver-peripherals-pinauth-des.md)
diff --git a/zh-cn/device-dev/driver/driver-hdf-development.md b/zh-cn/device-dev/driver/driver-hdf-development.md
index 49bd0a14ab56cf5d63b6268a61949d95a4805f2d..c1abcd7db00abc914a482303583e2ac49520c597 100755
--- a/zh-cn/device-dev/driver/driver-hdf-development.md
+++ b/zh-cn/device-dev/driver/driver-hdf-development.md
@@ -3,7 +3,7 @@
 
 ## 驱动模型介绍
 
-HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个host里面,开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个node。HDF驱动模型如下图所示:
+HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个Host里面,开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个Node。HDF驱动模型如下图所示:
 
   **图1** HDF驱动模型
 
@@ -12,28 +12,28 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
 
 ## 驱动开发步骤
 
-基于HDF框架进行驱动的开发主要分为两个部分,驱动实现和驱动配置。详细开发流程如下所示:
+基于HDF框架的驱动开发主要分为三个部分:驱动实现、驱动编译和驱动配置。详细开发流程如下所示:
 
 1. 驱动实现
 
-   驱动实现包含驱动业务代码和驱动入口注册,具体写法如下:
+   驱动实现包含驱动业务代码实现和驱动入口注册,具体写法如下:
 
    - 驱动业务代码
         
       ```
-      #include "hdf_device_desc.h"  // HDF框架对驱动开发相关能力接口的头文件
-      #include "hdf_log.h"          // HDF框架提供的日志接口头文件
+      #include "hdf_device_desc.h"          // HDF框架对驱动开发相关能力接口的头文件
+      #include "hdf_log.h"                  // HDF框架提供的日志接口头文件
       
-      #define HDF_LOG_TAG "sample_driver"   // 打印日志所包含的标签,如果不定义则用默认定义的HDF_TAG标签
+      #define HDF_LOG_TAG "sample_driver"   // 打印日志所包含的标签,如果不定义则用默认定义的HDF_TAG标签。
       
-      // 驱动对外提供的服务能力,将相关的服务接口绑定到HDF框架
+      // 驱动对外提供的服务能力,将相关的服务接口绑定到HDF框架。
       int32_t HdfSampleDriverBind(struct HdfDeviceObject *deviceObject)
       {
           HDF_LOGD("Sample driver bind success");
           return 0;
       }
       
-      // 驱动自身业务初始的接口
+      // 驱动自身业务初始化的接口
       int32_t HdfSampleDriverInit(struct HdfDeviceObject *deviceObject)
       {
           HDF_LOGD("Sample driver Init success");
@@ -50,7 +50,7 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
    - 驱动入口注册到HDF框架
         
       ```
-      // 定义驱动入口的对象,必须为HdfDriverEntry(在hdf_device_desc.h中定义)类型的全局变量
+      // 定义驱动入口的对象,必须为HdfDriverEntry(在hdf_device_desc.h中定义)类型的全局变量。
       struct HdfDriverEntry g_sampleDriverEntry = {
           .moduleVersion = 1,
           .moduleName = "sample_driver",
@@ -59,93 +59,94 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
           .Release = HdfSampleDriverRelease,
       };
       
-      // 调用HDF_INIT将驱动入口注册到HDF框架中,在加载驱动时HDF框架会先调用Bind函数,再调用Init函数加载该驱动,当Init调用异常时,HDF框架会调用Release释放驱动资源并退出
+      // 调用HDF_INIT将驱动入口注册到HDF框架中。在加载驱动时HDF框架会先调用Bind函数,再调用Init函数加载该驱动;当Init调用异常时,HDF框架会调用Release释放驱动资源并退出。
       HDF_INIT(g_sampleDriverEntry);
       ```
 
 2. 驱动编译
-   - liteos
 
-      涉及makefile和BUILD.gn修改:
+   - LiteOS
 
-      - makefile部分:
+     涉及Makefile和BUILD.gn修改:
 
-        驱动代码的编译必须要使用HDF框架提供的Makefile模板进行编译。
+     - Makefile部分:
 
-           
-         ```
-         include $(LITEOSTOPDIR)/../../drivers/adapter/khdf/liteos/lite.mk #导入hdf预定义内容,必需
-         MODULE_NAME :=    #生成的结果文件
-         LOCAL_INCLUDE :=  #本驱动的头文件目录
-         LOCAL_SRCS :=     #本驱动的源代码文件
-         LOCAL_CFLAGS :=  #自定义的编译选项
-         include $(HDF_DRIVER) #导入Makefile模板完成编译
-         ```
+       驱动代码的编译必须要使用HDF框架提供的Makefile模板进行编译。
+
+         
+       ```
+       include $(LITEOSTOPDIR)/../../drivers/adapter/khdf/liteos/lite.mk # 【必需】导入hdf预定义内容
+       MODULE_NAME :=        #生成的结果文件
+       LOCAL_INCLUDE :=      #本驱动的头文件目录
+       LOCAL_SRCS :=         #本驱动的源代码文件
+       LOCAL_CFLAGS :=      #自定义的编译选项
+       include $(HDF_DRIVER) #导入Makefile模板完成编译
+       ```
 
-        编译结果文件链接到内核镜像,添加到drivers/adapter/khdf/liteos目录下的hdf_lite.mk里面,示例如下:
+       编译结果文件链接到内核镜像,添加到**drivers/adapter/khdf/liteos**目录下的**hdf_lite.mk**里面,示例如下:
 
            
-         ```
-         LITEOS_BASELIB +=  -lxxx  #链接生成的静态库
-         LIB_SUBDIRS    +=         #驱动代码Makefile的目录
-         ```
+       ```
+       LITEOS_BASELIB +=  -lxxx  #链接生成的静态库
+       LIB_SUBDIRS    +=         #驱动代码Makefile的目录
+       ```
 
-      - BUILD.gn部分:
+     - BUILD.gn部分:
 
-        添加模块BUILD.gn参考定义如下内容:
+       添加模块BUILD.gn参考定义如下内容:
 
            
-         ```
-         import("//build/lite/config/component/lite_component.gni")
-         import("//drivers/adapter/khdf/liteos/hdf.gni")
-         module_switch = defined(LOSCFG_DRIVERS_HDF_xxx)
-         module_name = "xxx"
-         hdf_driver(module_name) {
-             sources = [
-                 "xxx/xxx/xxx.c", #模块要编译的源码文件
-             ]
-             public_configs = [ ":public" ] #使用依赖的头文件配置
-         }
-         config("public") {  #定义依赖的头文件配置
-             include_dirs = [
-             "xxx/xxx/xxx", #依赖的头文件目录
-             ]
-         }
-         ```
-
-         把新增模块的BUILD.gn所在的目录添加到/drivers/adapter/khdf/liteos/BUILD.gn里面:
+       ```
+       import("//build/lite/config/component/lite_component.gni")
+       import("//drivers/adapter/khdf/liteos/hdf.gni")
+       module_switch = defined(LOSCFG_DRIVERS_HDF_xxx)
+       module_name = "xxx"
+       hdf_driver(module_name) {
+           sources = [
+               "xxx/xxx/xxx.c",           #模块要编译的源码文件
+           ]
+           public_configs = [ ":public" ] #使用依赖的头文件配置
+       }
+       config("public") {                 #定义依赖的头文件配置
+           include_dirs = [
+           "xxx/xxx/xxx",                 #依赖的头文件目录
+           ]
+       }
+        ```
+
+       把新增模块的BUILD.gn所在的目录添加到**/drivers/adapter/khdf/liteos/BUILD.gn**里面:
 
            
-         ```
-         group("liteos") {
-                public_deps = [ ":$module_name" ]
-                    deps = [
-                       "xxx/xxx",   #新增模块BUILD.gn所在的目录,目录结构相对于/drivers/adapter/khdf/liteos
-                   ]
-         }
-         ```
-   - linux
-
-      如果需要定义模块控制宏,需要在模块目录xxx里面添加Kconfig文件,并把Kconfig文件路径添加到drivers/adapter/khdf/linux/Kconfig里面:
+       ```
+       group("liteos") {
+           public_deps = [ ":$module_name" ]
+               deps = [
+                   "xxx/xxx",   #新增模块BUILD.gn所在的目录,目录结构相对于/drivers/adapter/khdf/liteos
+               ]
+       }
+       ```
+   - Linux
+
+     如果需要定义模块控制宏,需要在模块目录xxx里面添加Kconfig文件,并把Kconfig文件路径添加到**drivers/adapter/khdf/linux/Kconfig**里面:
 
         
-      ```
-      source "drivers/hdf/khdf/xxx/Kconfig" #目录为hdf模块软链接到kernel里面的目录
-      ```
+     ```
+     source "drivers/hdf/khdf/xxx/Kconfig" #目录为hdf模块软链接到kernel里面的目录
+     ```
 
-      添加模块目录到drivers/adapter/khdf/linux/Makefile:
+     添加模块目录到**drivers/adapter/khdf/linux/Makefile**:
 
         
-      ```
-      obj-$(CONFIG_DRIVERS_HDF)  += xxx/
-      ```
+     ```
+     obj-$(CONFIG_DRIVERS_HDF)  += xxx/
+     ```
 
-      在模块目录xxx里面添加Makefile文件,在Makefile文件里面添加模块代码编译规则:
+     在模块目录xxx里面添加Makefile文件,在Makefile文件里面添加模块代码编译规则:
 
         
-      ```
-      obj-y  += xxx.o
-      ```
+     ```
+     obj-y  += xxx.o
+     ```
 
 3. 驱动配置
 
@@ -155,19 +156,19 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
 
    - 驱动设备描述(必选)
 
-     HDF框架加载驱动所需要的信息来源于HDF框架定义的驱动设备描述,因此基于HDF框架开发的驱动必须要在HDF框架定义的device_info.hcs配置文件中添加对应的设备描述,驱动的设备描述填写如下所示:
+     HDF框架加载驱动所需要的信息来源于HDF框架定义的驱动设备描述,因此基于HDF框架开发的驱动必须要在HDF框架定义的device_info.hcs配置文件中添加对应的设备描述。驱动的设备描述填写如下所示:
 
         
       ```
       root {
           device_info {
               match_attr = "hdf_manager";
-              template host {       // host模板,继承该模板的节点(如下sample_host)如果使用模板中的默认值,则节点字段可以缺省
+              template host {       // host模板,继承该模板的节点(如下sample_host)如果使用模板中的默认值,则节点字段可以缺省。
                   hostName = "";
                   priority = 100;
-                  uid = "";        // 用户态进程uid,缺省为空,会被配置为hostName的定义值,即普通用户
-                  gid = "";        // 用户态进程gid,缺省为空,会被配置为hostName的定义值,即普通用户组
-                  caps = [""];     // 用户态进程Linux capabilities配置,缺省为空,需要业务模块按照业务需要进行配置
+                  uid = "";         // 用户态进程uid,缺省为空,会被配置为hostName的定义值,即普通用户。
+                  gid = "";         // 用户态进程gid,缺省为空,会被配置为hostName的定义值,即普通用户组。
+                  caps = [""];      // 用户态进程Linux capabilities配置,缺省为空,需要业务模块按照业务需要进行配置。
                   template device {
                       template deviceNode {
                           policy = 0;
@@ -181,39 +182,41 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
                   }
               }
               sample_host :: host{
-                  hostName = "host0";    // host名称,host节点是用来存放某一类驱动的容器
-                  priority = 100;        // host启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证host的加载顺序
-                  caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];   // 用户态进程Linux capabilities配置
+                  hostName = "host0";    // host名称,host节点是用来存放某一类驱动的容器。
+                  priority = 100;        // host启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证host的加载顺序。
+                  caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];   // 用户态进程Linux capabilities配置。
                   device_sample :: device {        // sample设备节点
                       device0 :: deviceNode {      // sample驱动的DeviceNode节点
-                          policy = 1;              // policy字段是驱动服务发布的策略,在驱动服务管理章节有详细介绍
-                          priority = 100;          // 驱动启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证device的加载顺序
-                          preload = 0;             // 驱动按需加载字段,在本章节最后的说明有详细介绍
+                          policy = 1;              // policy字段是驱动服务发布的策略,在驱动服务管理章节有详细介绍。
+                          priority = 100;          // 驱动启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证device的加载顺序。
+                          preload = 0;             // 驱动按需加载字段,在本章节最后的说明有详细介绍。
                           permission = 0664;       // 驱动创建设备节点权限
-                          moduleName = "sample_driver";   // 驱动名称,该字段的值必须和驱动入口结构的moduleName值一致
-                          serviceName = "sample_service";    // 驱动对外发布服务的名称,必须唯一
-                          deviceMatchAttr = "sample_config"; // 驱动私有数据匹配的关键字,必须和驱动私有数据配置表中的match_attr值相等
+                          moduleName = "sample_driver";      // 驱动名称,该字段的值必须和驱动入口结构的moduleName值一致。
+                          serviceName = "sample_service";    // 驱动对外发布服务的名称,必须唯一。
+                          deviceMatchAttr = "sample_config"; // 驱动私有数据匹配的关键字,必须和驱动私有数据配置表中的match_attr值相等。
                       }
                   }
               }
           }
       }
       ```
-      说明:
-
-      uid、gid、caps等配置项是用户态驱动的启动配置,内核态不用配置。
-
-      根据进程权限最小化设计原则,业务模块uid、gid不用配置,如上面的sample_host,使用普通用户权限,即uid和gid被定义为hostName的定义值。
-
-      如果普通用户权限不能满足业务要求,需要把uid、gid定义为system或者root权限时,请找安全专家进行评审。
-
-      进程的uid在文件base/startup/init_lite/services/etc/passwd中配置,进程的gid在文件base/startup/init_lite/services/etc/group中配置,进程uid和gid配置参考:[系统服务用户组添加方法](https://gitee.com/openharmony/startup_init_lite/wikis)。
+             
+      > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
+      >
+      > - uid、gid、caps等配置项是用户态驱动的启动配置,内核态不用配置。
+      >
+      > - 根据进程权限最小化设计原则,业务模块uid、gid不用配置,如上面的sample_host,使用普通用户权限,即uid和gid被定义为hostName的定义值。
+      >
+      > - 如果普通用户权限不能满足业务要求,需要把uid、gid定义为system或者root权限时,请找安全专家进行评审。
+      >
+      > - 进程的uid在文件**base/startup/init_lite/services/etc/passwd**中配置,进程的gid在文件**base/startup/init_lite/services/etc/group**中配置,进程uid和gid配置参考:[系统服务用户组添加方法](https://gitee.com/openharmony/startup_init_lite/wikis)。
+      >
+      > - caps值:比如业务模块要配置CAP_DAC_OVERRIDE,此处需要填写caps = ["DAC_OVERRIDE"],不能填写为caps = ["CAP_DAC_OVERRIDE"]。
 
-      caps值:比如业务模块要配置CAP_DAC_OVERRIDE,此处需要填写 caps = ["DAC_OVERRIDE"],不能填写为caps = ["CAP_DAC_OVERRIDE"]。
 
    - 驱动私有配置信息(可选)
 
-     如果驱动有私有配置,则可以添加一个驱动的配置文件,用来填写一些驱动的默认配置信息,HDF框架在加载驱动的时候,会将对应的配置信息获取并保存在HdfDeviceObject中的property里面,通过Bind和Init(参考步骤1)传递给驱动,驱动的配置信息示例如下:
+     如果驱动有私有配置,则可以添加一个驱动的配置文件,用来填写一些驱动的默认配置信息。HDF框架在加载驱动的时候,会将对应的配置信息获取并保存在HdfDeviceObject中的property里面,通过Bind和Init(参考步骤1)传递给驱动。驱动的配置信息示例如下:
 
         
       ```
@@ -249,7 +252,12 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心
 >   } DevicePreload;
 >   ```
 > 
->   配置文件中preload字段配成0(DEVICE_PRELOAD_ENABLE),则系统启动过程中默认加载;配成1(DEVICE_PRELOAD_ENABLE_STEP2),当系统支持快启的时候,则在系统完成之后再加载这一类驱动,否则和DEVICE_PRELOAD_ENABLE含义相同;配成2(DEVICE_PRELOAD_DISABLE),则系统启动过程中默认不加载,支持后续动态加载,当用户态获取驱动服务(参考[消息机制](../driver/driver-hdf-message-management.md))时,如果驱动服务不存在,HDF框架会尝试动态加载该驱动。
+>   - 配置文件中preload字段配成0(DEVICE_PRELOAD_ENABLE),则系统启动过程中默认加载。
+>
+>   - 配成1(DEVICE_PRELOAD_ENABLE_STEP2),当系统支持快启的时候,则在系统完成之后再加载这一类驱动,否则和DEVICE_PRELOAD_ENABLE含义相同。
+>
+>   - 配成2(DEVICE_PRELOAD_DISABLE),则系统启动过程中默认不加载,支持后续动态加载,当用户态获取驱动服务(参考[消息机制](../driver/driver-hdf-message-management.md))时,如果驱动服务不存在,HDF框架会尝试动态加载该驱动。
 > 
 > - 按序加载(需要驱动为默认加载)
+>
 >   配置文件中的priority(取值范围为整数0到200)是用来表示host和驱动的优先级。不同的host内的驱动,host的priority值越小,驱动加载优先级越高;同一个host内驱动的priority值越小,加载优先级越高。
diff --git a/zh-cn/device-dev/driver/driver-hdf-overview.md b/zh-cn/device-dev/driver/driver-hdf-overview.md
index 601e10ee75cf3617d235f8d6a440edf984eb7b22..c5f99925f10b8992392e85d7e5a6ad0e1832b586 100755
--- a/zh-cn/device-dev/driver/driver-hdf-overview.md
+++ b/zh-cn/device-dev/driver/driver-hdf-overview.md
@@ -11,9 +11,11 @@ HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动
 HDF驱动加载包括按需加载和按序加载。
 
 - 按需加载
+
   HDF框架支持驱动在系统启动过程中默认加载,或者在系统启动之后动态加载。
 
 - 按序加载
+
   HDF框架支持驱动在系统启动的过程中按照驱动的优先级进行加载。
 
 
diff --git a/zh-cn/device-dev/driver/driver-hdf-servicemanage.md b/zh-cn/device-dev/driver/driver-hdf-servicemanage.md
index 66ea6eaa54a3470268f5e1598ae713e343c42334..37f57ad77dbd05f9e2aaea70096b408c012eb57e 100755
--- a/zh-cn/device-dev/driver/driver-hdf-servicemanage.md
+++ b/zh-cn/device-dev/driver/driver-hdf-servicemanage.md
@@ -4,7 +4,7 @@
 驱动服务是HDF驱动设备对外提供能力的对象,由HDF框架统一管理。驱动服务管理主要包含驱动服务的发布和获取。
 
 
-HDF框架定义了驱动对外发布服务的策略,是由配置文件中的policy字段来控制,policy字段的取值范围以及含义如下:
+HDF框架定义了驱动对外发布服务的策略,由配置文件中的policy字段来控制,policy字段的取值范围以及含义如下:
 
 
   
@@ -39,26 +39,26 @@ typedef enum {
 
 | 方法 | 描述 | 
 | -------- | -------- |
-| int32_t&nbsp;(\*Bind)(struct&nbsp;HdfDeviceObject&nbsp;\*deviceObject); | 需要驱动开发者实现Bind函数,将自己的服务接口绑定到HDF框架中。 | 
-| const&nbsp;struct&nbsp;HdfObject&nbsp;\*DevSvcManagerClntGetService(const&nbsp;char&nbsp;\*svcName); | 获取驱动的服务。 | 
-| int&nbsp;HdfDeviceSubscribeService(<br/>struct&nbsp;HdfDeviceObject&nbsp;\*deviceObject,&nbsp;const&nbsp;char&nbsp;\*serviceName,&nbsp;struct&nbsp;SubscriberCallback&nbsp;callback); | 订阅驱动的服务。 | 
+| int32_t&nbsp;(\*Bind)(struct&nbsp;HdfDeviceObject&nbsp;\*deviceObject) | 需要驱动开发者实现Bind函数,将自己的服务接口绑定到HDF框架中。 | 
+| const&nbsp;struct&nbsp;HdfObject&nbsp;\*DevSvcManagerClntGetService(const&nbsp;char&nbsp;\*svcName)| 获取驱动的服务。 | 
+|int&nbsp;HdfDeviceSubscribeService(<br/>struct&nbsp;HdfDeviceObject&nbsp;\*deviceObject,&nbsp;const&nbsp;char&nbsp;\*serviceName,&nbsp;struct&nbsp;SubscriberCallback&nbsp;callback) | 订阅驱动的服务。 | 
 
 
 ## 开发步骤
 
 驱动服务管理的开发包括驱动服务的编写、绑定、获取或者订阅,详细步骤如下。
 
-1. 驱动服务发布。
+1. 驱动服务编写。
      
    ```
-   驱动服务结构的定义
+   // 驱动服务结构的定义
    struct ISampleDriverService {
-       struct IDeviceIoService ioService;   // 服务结构的首个成员必须是IDeviceIoService类型的成员
-       int32_t (*ServiceA)(void);               // 驱动的第一个服务接口
-       int32_t (*ServiceB)(uint32_t inputCode); // 驱动的第二个服务接口,有多个可以依次往下累加
+       struct IDeviceIoService ioService;       // 服务结构的首个成员必须是IDeviceIoService类型的成员。
+       int32_t (*ServiceA)(void);               // 驱动的第一个服务接口。
+       int32_t (*ServiceB)(uint32_t inputCode); // 驱动的第二个服务接口,有多个可以依次往下累加。
    };
    
-   驱动服务接口的实现
+   // 驱动服务接口的实现
    int32_t SampleDriverServiceA(void)
    {
        // 驱动开发者实现业务逻辑
@@ -77,7 +77,7 @@ typedef enum {
    ```
    int32_t SampleDriverBind(struct HdfDeviceObject *deviceObject)
    {
-       // deviceObject为HDF框架给每一个驱动创建的设备对象,用来保存设备相关的私有数据和服务接口
+       // deviceObject为HDF框架给每一个驱动创建的设备对象,用来保存设备相关的私有数据和服务接口。
        if (deviceObject == NULL) {
            HDF_LOGE("Sample device object is null!");
            return -1;
@@ -92,10 +92,11 @@ typedef enum {
    ```
 
 3. 驱动服务获取。
-   驱动服务的获取有两种方式,HDF框架提供接口直接获取和HDF框架提供订阅机制获取。
+   驱动服务的获取有两种方式,HDF框架提供接口直接获取和订阅机制获取。
 
    - 通过HDF接口直接获取
-      当明确驱动已经加载完成时,获取该驱动的服务可以通过HDF框架提供的能力接口直接获取,如下所示:
+
+     当明确驱动已经加载完成时,获取该驱动的服务可以通过HDF框架提供的能力接口直接获取,如下所示:
 
         
       ```
@@ -108,7 +109,8 @@ typedef enum {
       sampleService->ServiceB(5);
       ```
    - 通过HDF提供的订阅机制获取
-      当内核态对驱动(同一个host)加载的时机不感知时,可以通过HDF框架提供的订阅机制来订阅该驱动,当该驱动加载完成时,HDF框架会将被订阅的驱动服务发布给订阅者,实现方式如下所示:
+
+     当内核态对驱动(同一个host)加载的时机不感知时,可以通过HDF框架提供的订阅机制来订阅该驱动。当该驱动加载完成时,HDF框架会将被订阅的驱动服务发布给订阅者,实现方式如下所示:
 
         
       ```
diff --git a/zh-cn/device-dev/driver/driver-peripherals-camera-des.md b/zh-cn/device-dev/driver/driver-peripherals-camera-des.md
index a531d05d658dfbc00f47cbffad15220746a97222..94704359fc2492e9ddc456669e3827b4ca0f3d19 100755
--- a/zh-cn/device-dev/driver/driver-peripherals-camera-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-camera-des.md
@@ -52,7 +52,7 @@ Camera模块主要用以相机预览、拍照、视频流等场景下对相机
   | 功能描述                     | 接口名称                                                     |
   | ---------------------------- | ------------------------------------------------------------ |
   | 获取流控制器                 | CamRetCode GetStreamOperator(<br>const OHOS::sptr<IStreamOperatorCallback> &callback,<br>OHOS::sptr<IStreamOperator> &streamOperator) |
-  | 更新设备控制参数             | CamRetCode UpdateSettings(const std::shared_ptr<CameraSetting> &settingss) |
+  | 更新设备控制参数             | CamRetCode UpdateSettings(const std::shared_ptr<CameraSetting> &settings) |
   | 设置Result回调模式和回调函数 | CamRetCode SetResultMode(const ResultCallbackMode &mode)     |
   | 获取使能的ResultMeta         | CamRetCode GetEnabledResults(std::vector<MetaType> &results) |
   | 使能具体的ResultMeta         | CamRetCode EnableResult(const std::vector<MetaType> &results) |
@@ -730,7 +730,7 @@ Camera驱动的开发过程主要包含以下步骤:
    "-o | --offline       stream offline test\n"
    "-c | --capture       capture one picture\n"
    "-w | --set WB        Set white balance Cloudy\n"
-   "-v | --video         capture Viedeo of 10s\n"
+   "-v | --video         capture Video of 10s\n"
    "-a | --Set AE        Set Auto exposure\n"
    "-f | --Set Flashlight        Set flashlight ON 5s OFF\n"
    "-q | --quit          stop preview and quit this app\n");
diff --git a/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md b/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md
index 4ae5304c6e6ad49648d23e5b7834770faa2fc326..04dfe33a0f2735bd355b6dea4b3c24da14410310 100644
--- a/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md
@@ -319,7 +319,7 @@ static struct PanelInfo g_panelInfo = {
     .vsw = VERTICAL_SYNC_WIDTH,         /* vertical sync width */
     .frameRate = FRAME_RATE,            /* frame rate */
     .intfType = MIPI_DSI,               /* panel interface type */
-    .intfSync = OUTPUT_USER,            /* output timming type */
+    .intfSync = OUTPUT_USER,            /* output timing type */
     /* mipi config info */
     .mipi = { DSI_2_LANES, DSI_VIDEO_MODE, VIDEO_BURST_MODE, FORMAT_RGB_24_BIT },
     /* backlight config info */
diff --git a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
index 7b819df8c65a115577af3ee3af3817dc6f75413b..26620ea9c30f099379e0312d8fbcb20566d4a53e 100755
--- a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
@@ -1,5 +1,5 @@
 # Sensor
- 
+
 
 ## 概述
 
@@ -8,7 +8,7 @@
 Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能。Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如图1所示。
 
 **图 1**  Sensor驱动模型图
- 
+
 ![Sensor驱动模型图](figures/Sensor驱动模型图.png)
 
 ### 基本概念
@@ -64,16 +64,16 @@ Sensor驱动模型对外开放的API接口能力的具体实现请参考:
 
 **表 1**  Sensor驱动模型对外API接口功能介绍
 
-| 接口名 | 功能描述 | 
+| 接口名 | 功能描述 |
 | ----- | -------- |
 | int32_t GetAllSensors(struct SensorInformation **sensorInfo, int32_t *count) | 获取系统中注册的所有传感器信息,一组完整传感器信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。 |
-| int32_t Enable(int32_t sensorId) | 使能指定传感器设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 | 
-| int32_t Disable(int32_t sensorId) | 去使能指定传感器设备。 | 
-| int32_t SetBatch(int32_t sensorId, int64_t samplingInterval, int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 | 
-| int32_t SetMode(int32_t sensorId, int32_t mode) | 设置指定传感器的工作模式,不同的工作模式,上报数据方式不同。 | 
-| int32_t SetOption(int32_t sensorId, uint32_t option) | 设置指定传感器量程,精度等可选配置。 | 
-| int32_t Register(int32_t groupId, RecordDataCallback cb) | 订阅者根据不同groupId注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 | 
-| int32_t Unregister(int32_t groupId, RecordDataCallback cb) | 订阅者根据groupId和回调函数注销对应订阅者的传感器数据回调函数。 | 
+| int32_t Enable(int32_t sensorId) | 使能指定传感器设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 |
+| int32_t Disable(int32_t sensorId) | 去使能指定传感器设备。 |
+| int32_t SetBatch(int32_t sensorId, int64_t samplingInterval, int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 |
+| int32_t SetMode(int32_t sensorId, int32_t mode) | 设置指定传感器的工作模式,不同的工作模式,上报数据方式不同。 |
+| int32_t SetOption(int32_t sensorId, uint32_t option) | 设置指定传感器量程,精度等可选配置。 |
+| int32_t Register(int32_t groupId, RecordDataCallback cb) | 订阅者根据不同groupId注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 |
+| int32_t Unregister(int32_t groupId, RecordDataCallback cb) | 订阅者根据groupId和回调函数注销对应订阅者的传感器数据回调函数。 |
 
 
 
@@ -81,7 +81,7 @@ Sensor驱动模型对驱动开发者开放的功能接口,驱动开发者无
 
  **表2** Sensor驱动模型对驱动开发者开放的功能接口列表
 
-| 接口名 | 功能描述 | 
+| 接口名 | 功能描述 |
 | ----- | -------- |
 | int32_t AddSensorDevice(const struct SensorDeviceInfo *deviceInfo) | 添加当前类型的传感器设备到传感器设备管理。 |
 | int32_t DeleteSensorDevice(const struct SensorBasicInfo *sensorBaseInfo) | 删除传感器设备管理里指定的传感器设备。 |
@@ -101,7 +101,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,请参考:
 
 **表 3**  Sensor驱动模型要求驱动开发者实现的接口列表
 
-| 接口名 | 功能描述 | 
+| 接口名 | 功能描述 |
 | ----- | -------- |
 | int32_t init(void) | 传感器设备探测成功后,需要对传感器设备初始化配置。 |
 | int32_t Enable(void) | 根据当前传感器设备的HCS配置,下发传感器设备使能操作组的寄存器配置。 |
@@ -545,7 +545,7 @@ void HdfSensorTest::SetUpTestCase()
 {
     g_sensorDev = NewSensorInterfaceInstance();
     if (g_sensorDev == nullptr) {
-        printf("test sensorHdi get Module instance failed\n\r");
+        printf("test sensor get module instance failed\n\r");
     }
 }
 /* 用例资源释放 */
diff --git a/zh-cn/device-dev/driver/driver-peripherals-usb-des.md b/zh-cn/device-dev/driver/driver-peripherals-usb-des.md
index cfe37f34088f73fa7bba2541fc1a478712fff200..5292ee054ba428f785fdb8a9cef3197e407fd121 100644
--- a/zh-cn/device-dev/driver/driver-peripherals-usb-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-usb-des.md
@@ -468,7 +468,7 @@ static int AcmAllocNotifyRequest(struct AcmDevice *acm)
     return HDF_SUCCESS;
 
 error:
-    AcmFreeNotifyReqeust(acm);
+    AcmFreeNotifyRequest(acm);
     return ret;
 }
 
@@ -592,7 +592,7 @@ static void AcmFreeRequests(struct AcmDevice *acm)
         g_syncRequest = NULL;
     }
     AcmFreeReadRequests(acm);
-    AcmFreeNotifyReqeust(acm);
+    AcmFreeNotifyRequest(acm);
     AcmFreeWriteRequests(acm);
     AcmWriteBufFree(acm);
 }
@@ -631,7 +631,7 @@ static int32_t AcmAllocRequests(struct AcmDevice *acm)
     return HDF_SUCCESS;
 
 error_alloc_read_req:
-    AcmFreeNotifyReqeust(acm);
+    AcmFreeNotifyRequest(acm);
 error_alloc_int_req:
     AcmFreeWriteRequests(acm);
 error_alloc_write_req:
@@ -1112,7 +1112,7 @@ err_submit_req:
 err_start_io:
     UsbFreeReadRequests(acm);
 err_alloc_read_reqs:
-    UsbFreeNotifyReqeust(acm);
+    UsbFreeNotifyRequest(acm);
  err_alloc_notify_req:
     UsbFreeWriteRequests(acm);
 err_alloc_write_reqs:
@@ -1144,7 +1144,7 @@ static void UsbSerialRelease(struct AcmDevice *acm)
         g_syncRequest = NULL;
     }
     UsbFreeReadRequests(acm);
-    UsbFreeNotifyReqeust(acm);
+    UsbFreeNotifyRequest(acm);
     UsbFreeWriteRequests(acm);
     AcmWriteBufFree(acm);
     (void)UsbRawCloseDevice(acm->devHandle);
diff --git a/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md b/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
index f4b2cd8874a6425b8ae8335de2f48bbfb409f92b..af09963c38ba1d415c4529b0610e16894276d016 100755
--- a/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
@@ -57,9 +57,11 @@
 
 | 接口名                                  | 功能描述                                           |
 | -------------------------------------- | ------------------------------------------------ |
-| int32_t  StartOnce(uint32_t duration)  | 按照指定持续时间触发振动马达,duration为振动持续时长。   |
-| int32_t  Start(const char *effectType) | 按照指定预置效果启动马达,effectType表示预置的预置效果。 |
-| int32_t  Stop(enum VibratorMode mode)  | 按照指定的振动模式停止马达振动。                       |
+| int32_t  StartOnce(uint32_t duration)                        | 按照指定持续时间触发振动马达,duration为振动持续时长。       |
+| int32_t  Start(const char *effectType)                       | 按照指定预置效果启动马达,effectType表示预置的预置效果。     |
+| int32_t  Stop(enum VibratorMode mode)                        | 按照指定的振动模式停止马达振动。                             |
+| int32_t EnableVibratorModulation(uint32_t duration, int32_t intensity, int32_t frequency) | 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 |
+| int32_t GetVibratorInfo(struct VibratorInfo **vibratorInfo); | 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围 。 |
 
 ### 开发步骤
 
@@ -90,13 +92,13 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
          int32_t cmd, struct HdfSBuf *data, struct HdfSBuf *reply)
      {
          int32_t loop;
-     
+
          for (loop = 0; loop < sizeof(g_vibratorCmdHandle) / sizeof(g_vibratorCmdHandle[0]); ++loop) {
              if ((cmd == g_vibratorCmdHandle[loop].cmd) && (g_vibratorCmdHandle[loop].func != NULL)) {
                  return g_vibratorCmdHandle[loop].func(data, reply);
              }
          }
-     
+
          return HDF_SUCCESS;
      }
      
@@ -105,34 +107,34 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
      {
          struct VibratorDriverData *drvData = NULL;
          CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(device, HDF_FAILURE);
-     
+
          drvData = (struct VibratorDriverData *)OsalMemCalloc(sizeof(*drvData));
          CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_ERR_MALLOC_FAIL);
-     
+
          drvData->ioService.Dispatch = DispatchVibrator;
          drvData->device = device;
          device->service = &drvData->ioService;
          g_vibratorDrvData = drvData;
-     
+
          return HDF_SUCCESS;
      }
-     
+
      /* 马达驱动初始化入口函数*/
      int32_t InitVibratorDriver(struct HdfDeviceObject *device)
      {
          struct VibratorDriverData *drvData = NULL;
-     
+
          drvData->mode = VIBRATOR_MODE_BUTT;
          drvData->state = VIBRATOR_STATE_IDLE;
          ......
          if (CreateVibratorHaptic(device) != HDF_SUCCESS) {
-             HDF_LOGE("%s: init workQueue fail!", __func__);
+             HDF_LOGE("%s: init workQueue failed!", __func__);
              return HDF_FAILURE;
          }
-     
+
          return HDF_SUCCESS;
      }
-     
+
      /* 释放马达驱动初始化时分配的资源 */
      void ReleaseVibratorDriver(struct HdfDeviceObject *device)
      {
@@ -168,7 +170,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
 
    - 创建马达效果模型。
 
-     ```hcs
+     ```c
      /* 创建马达效果模型,分配资源,解析马达效果HCS配置 */
      int32_t CreateVibratorHaptic(struct HdfDeviceObject *device)
      {
@@ -181,7 +183,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
          hapticData->supportHaptic = false;
      
          if (OsalMutexInit(&hapticData->mutex) != HDF_SUCCESS) {
-             HDF_LOGE("%s: fail to init mutex", __func__);
+             HDF_LOGE("%s: failed to init mutex", __func__);
              goto EXIT;
          }
      
@@ -189,7 +191,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
      
          /* 解析马达效果HCS配置 */
          if (ParserVibratorHapticConfig(device->property) != HDF_SUCCESS) {
-             HDF_LOGE("%s: parser haptic config fail!", __func__);
+             HDF_LOGE("%s: parser haptic config failed!", __func__);
              goto EXIT;
          }
      
@@ -235,7 +237,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
    马达硬件服务调用StartOnce接口动态配置持续振动时间;调用StartEffect接口启动静态配置的振动效果,为驱动开发者提供抽象的配置接口能力。
 
    ```c
-   /* 按照指定持续时间触发振动马达,duration为振动持续时长 */
+   /* 按照指定持续时间触发振动马达,duration为振动持续时长。 */
    static int32_t StartOnce(struct HdfSBuf *data, struct HdfSBuf *reply)
    {
        uint32_t duration;
@@ -250,14 +252,14 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
        /* 根据振动效果的模式创建定时器 */
        ret = StartHaptic(&config);
        if (ret != HDF_SUCCESS) {
-           HDF_LOGE("%s: start haptic fail!", __func__);
+           HDF_LOGE("%s: start haptic failed!", __func__);
            return ret;
        }
    
        return HDF_SUCCESS;
    }
    
-   /* 按照预置效果启动马达,effectType表示预置的预置效果 */
+   /* 按照预置效果启动马达,effectType表示预置的预置效果。 */
    static int32_t StartEffect(struct HdfSBuf *data, struct HdfSBuf *reply)
    {
        int32_t ret;
@@ -272,7 +274,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
    
        ret = StartHaptic(&config);
        if (ret != HDF_SUCCESS) {
-           HDF_LOGE("%s: start haptic fail!", __func__);
+           HDF_LOGE("%s: start haptic failed!", __func__);
            return ret;
        }
    
@@ -287,10 +289,10 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
        struct VibratorDriverData *drvData = GetVibratorDrvData();
        (void)reply;
        ......
-       /* 停止马达效果振动,销毁马达定时器 */
+       /* 停止马达效果振动,销毁马达定时器。 */
        ret = StopHaptic();
        if (ret != HDF_SUCCESS) {
-           HDF_LOGE("%s: stop haptic fail!", __func__);
+           HDF_LOGE("%s: stop haptic failed!", __func__);
            return ret;
        }
    
@@ -300,6 +302,58 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
    
        return HDF_SUCCESS;
    }
+   
+   /* 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 */
+   static int32_t EnableModulationParameter(struct HdfSBuf *data, struct HdfSBuf *reply)
+   {
+       (void)reply;
+       struct VibratorEffectCfg config;
+       struct VibratorDriverData *drvData;
+       uint32_t duration;
+       int32_t intensity;
+       int32_t frequency;
+       int32_t ret;
+    .....
+       (void)OsalMutexLock(&drvData->mutex);
+       drvData->mode = VIBRATOR_MODE_ONCE;
+       (void)OsalMutexUnlock(&drvData->mutex);
+    /* 设置振幅和频率 */
+       ret = drvData->ops.SetParameter(intensity, frequency);
+       if (ret != HDF_SUCCESS) {
+           HDF_LOGE("%s: set parameter failed", __func__);
+           return HDF_FAILURE;
+       }
+   
+       config.cfgMode = VIBRATOR_MODE_ONCE;
+       config.duration = duration;
+       config.effect = NULL;
+   
+       ret = StartHaptic(&config);
+       if (ret != HDF_SUCCESS) {
+           HDF_LOGE("%s: start haptic failed", __func__);
+           return HDF_FAILURE;
+       }
+   
+       return HDF_SUCCESS;
+   }
+   
+   /* 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围。 */
+   static int32_t GetVibratorInfo(struct HdfSBuf *data, struct HdfSBuf *reply)
+   {
+       (void)data;
+       struct VibratorDriverData *drvData;
+   
+       drvData = GetVibratorDrvData();
+       CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_ERR_INVALID_PARAM);
+       CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(reply, HDF_ERR_INVALID_PARAM);
+   
+       if (!HdfSbufWriteBuffer(reply, &drvData->vibratorInfo, sizeof(drvData->vibratorInfo))) {
+           HDF_LOGE("%s: write sbuf failed", __func__);
+           return HDF_FAILURE;
+       }
+   
+       return HDF_SUCCESS;
+   }
    ```
 
 4. 马达驱动模型提供给开发者马达驱动差异化接口,开发者实现差异化接口。
@@ -319,50 +373,181 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
          drvData->ops.Start = ops->Start;
          drvData->ops.StartEffect = ops->StartEffect;
          drvData->ops.Stop = ops->Stop;
+         drvData->ops.SetParameter = ops->SetParameter;
+         (void)OsalMutexUnlock(&drvData->mutex);
+     
+         return HDF_SUCCESS;
+     }
+     
+     /* 注册马达信息接口 */
+      int32_t RegisterVibratorInfo(struct VibratorInfo *vibratorInfo)
+     {
+         struct VibratorDriverData *drvData = GetVibratorDrvData();
+     
+         CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(vibratorInfo, HDF_FAILURE);
+         CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE);
+     
+         (void)OsalMutexLock(&drvData->mutex);
+         if (memcpy_s(&drvData->vibratorInfo, sizeof(drvData->vibratorInfo), vibratorInfo, sizeof(*vibratorInfo)) != EOK) {
+             HDF_LOGE("%s: Memcpy vibrator config failed", __func__);
+             return HDF_FAILURE;
+         }
          (void)OsalMutexUnlock(&drvData->mutex);
      
          return HDF_SUCCESS;
      }
      ```
 
+     
+
    - 马达驱动模型提供给开发者马达驱动差异化接口,具体实现如下:
 
      ```c
-     /* 按照指定持续时间触发线性马达的振动 */
-     static int32_t StartLinearVibrator()
+     /* 按照指定的振动模式停止马达的振动 */
+     static int32_t StopModulationParameter()
      {
-         int32_t ret;
-         struct VibratorLinearDriverData *drvData = GetLinearVibratorData();
-         CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE);
-         ......
-         ret = GpioWrite(drvData->gpioNum, GPIO_VAL_LOW);
-         if (ret != HDF_SUCCESS) {
-             HDF_LOGE("%s: pull gpio%d to %d level failed", __func__, drvData->gpioNum, GPIO_VAL_LOW);
-             return ret;
+         uint8_t value[DRV2605L_VALUE_BUTT];
+      struct Drv2605lDriverData *drvData = NULL;
+         drvData = GetDrv2605lDrvData();
+     
+      CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE);
+         CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData->drv2605lCfgData, HDF_FAILURE);
+     
+         value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_MODE;
+         value[DRV2605L_VALUE_INDEX] = (uint8_t)DRV2605_MODE_STANDBY;
+         if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) {
+             HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]);
+          return HDF_FAILURE;
+         }
+     
+         value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_RTPIN;
+         value[DRV2605L_VALUE_INDEX] = (uint8_t)&drvData->drv2605lCfgData->vibratorAttr.defaultIntensity;
+         if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) {
+          HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]);
+         }
+     
+         value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_LRARESON;
+         value[DRV2605L_VALUE_INDEX] = (uint8_t)&drvData->drv2605lCfgData->vibratorAttr.defaultFrequency;
+         if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) {
+          HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]);
          }
-         return HDF_SUCCESS;
-     }
      
-     /* 按照预置振动效果触发线性马达的振动 */
-     static int32_t StartEffectLinearVibrator(uint32_t effectType)
-     {
-         (void)effectType;
-          HDF_LOGE("%s: vibrator set build-in effect no support!", __func__);
          return HDF_SUCCESS;
      }
      
-     /* 按照指定的振动模式停止线性马达的振动 */
-     static int32_t StopLinearVibrator()
+     /* 设置马达振幅和频率 */
+     static void SetModulationParameter(int32_t intensity, int32_t frequency)
      {
-         int32_t ret;
-         struct VibratorLinearDriverData *drvData = GetLinearVibratorData();
+         uint8_t value[DRV2605L_VALUE_BUTT];
+      struct Drv2605lDriverData *drvData = NULL;
+         drvData = GetDrv2605lDrvData();
+     
          CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE);
-         ......
-         ret = GpioWrite(drvData->gpioNum, GPIO_VAL_HIGH);
-         if (ret != HDF_SUCCESS) {
-             HDF_LOGE("%s: pull gpio%d to %d level failed", __func__, drvData->gpioNum, GPIO_VAL_HIGH);
-             return ret;
+     
+         if (intensity != 0) {
+             value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_RTPIN;
+             value[DRV2605L_VALUE_INDEX] = (uint8_t)INTENSITY_MAPPING_VALUE(intensity);
+             if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) {
+                 HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]);
+                 return;
+             }
+         } else {
+             HDF_LOGD("%s: the setting of intensity 0 is not supported and \
+              will be set as the system default intensity", __func__);
+         }
+     
+         if (frequency != 0) {
+             value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_LRARESON;
+             value[DRV2605L_VALUE_INDEX] = (uint8_t)FREQUENCY_MAPPING_VALUE(frequency);
+             if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) {
+                 HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]);
+                 return;
+             }
+         } else {
+             HDF_LOGD("%s: the setting of frequency 0 is not supported and \
+                 will be set as the system default frequency", __func__);
          }
-         return HDF_SUCCESS;
      }
-     ```
\ No newline at end of file
+     ```
+
+### 调测验证
+
+驱动开发完成后,在传感器单元测试里面开发自测试用例,验证驱动基本功能。测试环境采用开发者自测试平台。
+
+```
+/* 用例执行前,初始化马达接口实例。 */
+void HdfVibratorTest::SetUpTestCase()
+{
+    g_vibratorDev = NewVibratorInterfaceInstance();
+}
+/* 用例资源释放 */
+void HdfVibratorTest::TearDownTestCase()
+{
+    if(g_vibratorDev != nullptr){
+        FreeVibratorInterfaceInstance();
+        g_vibratorDev = nullptr;
+    }
+}
+
+/* 测试单次振动 */
+HWTEST_F(HdfVibratorTest, PerformOneShotVibratorDuration_001, TestSize.Level1)
+{
+    ASSERT_NE(nullptr, g_vibratorDev);
+
+    int32_t startRet = g_vibratorDev->StartOnce(g_duration);
+    EXPECT_EQ(startRet, HDF_SUCCESS);
+
+    OsalMSleep(g_sleepTime1);
+
+    int32_t endRet = g_vibratorDev->Stop(VIBRATOR_MODE_ONCE);
+    EXPECT_EQ(endRet, HDF_SUCCESS);
+}
+/* 测试预置效果振动 */
+HWTEST_F(HdfVibratorTest, ExecuteVibratorEffect_002, TestSize.Level1)
+{
+    ASSERT_NE(nullptr, g_vibratorDev);
+
+    int32_t startRet = g_vibratorDev->Start(g_builtIn);
+    EXPECT_EQ(startRet, HDF_SUCCESS);
+
+    OsalMSleep(g_sleepTime1);
+
+    int32_t endRet = g_vibratorDev->Stop(VIBRATOR_MODE_PRESET);
+    EXPECT_EQ(endRet, HDF_SUCCESS);
+}
+/* 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围。 */
+HWTEST_F(HdfVibratorTest, GetVibratorInfo_001, TestSize.Level1)
+{
+    ASSERT_NE(nullptr, g_vibratorDev);
+
+    int32_t startRet = g_vibratorDev->GetVibratorInfo(&g_vibratorInfo);
+    EXPECT_EQ(startRet, HDF_SUCCESS);
+    EXPECT_NE(g_vibratorInfo, nullptr);
+
+    printf("intensity = %d, intensityMaxValue = %d, intensityMinValue = %d\n\t",
+    g_vibratorInfo->isSupportIntensity, g_vibratorInfo->intensityMaxValue, g_vibratorInfo->intensityMinValue);
+    printf("frequency = %d, frequencyMaxValue = %d, frequencyMinValue = %d\n\t",
+    g_vibratorInfo->isSupportFrequency, g_vibratorInfo->frequencyMaxValue, g_vibratorInfo->frequencyMinValue);
+}
+/* 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 */
+HWTEST_F(HdfVibratorTest, EnableVibratorModulation_001, TestSize.Level1)
+{
+    int32_t startRet;
+    ASSERT_NE(nullptr, g_vibratorDev);
+    EXPECT_GT(g_duration, 0);
+
+    if ((g_vibratorInfo->isSupportIntensity == 1) || (g_vibratorInfo->isSupportFrequency == 1)) {
+        EXPECT_GE(g_intensity1, g_vibratorInfo->intensityMinValue);
+        EXPECT_LE(g_intensity1, g_vibratorInfo->intensityMaxValue);
+        EXPECT_GE(g_frequency1, g_vibratorInfo->frequencyMinValue);
+        EXPECT_LE(g_frequency1, g_vibratorInfo->frequencyMaxValue);
+
+        startRet = g_vibratorDev->EnableVibratorModulation(g_duration, g_intensity1, g_frequency1);
+        EXPECT_EQ(startRet, HDF_SUCCESS);
+        OsalMSleep(g_sleepTime1);
+        startRet = g_vibratorDev->Stop(VIBRATOR_MODE_ONCE);
+        EXPECT_EQ(startRet, HDF_SUCCESS);
+    }
+}
+```
+
diff --git a/zh-cn/device-dev/driver/driver-platform-hdmi-develop.md b/zh-cn/device-dev/driver/driver-platform-hdmi-develop.md
index fd127d7c13956bca29197a015d8438b579ac6b40..5f3d7c47d7287f8ff33e8b5abc550f81141e6f75 100755
--- a/zh-cn/device-dev/driver/driver-platform-hdmi-develop.md
+++ b/zh-cn/device-dev/driver/driver-platform-hdmi-develop.md
@@ -100,7 +100,7 @@ struct HdmiCntlrOps {
 | phyOutputSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**cfg**: 配置信息 | 无 | 无 | 设置物理层配置信息 |
 | blackDataSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能 | 无 | 无 | 设置黑屏 |
 | videoMuteEnable | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能 | 无 | 无 | 使能/去使能video静音 |
-| videoPathSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**attr**:配置信息| 无 | 无 | 设置viedo通路配置信息 |
+| videoPathSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**attr**:配置信息| 无 | 无 | 设置video通路配置信息 |
 |audioMuteEnable | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能 | 无 | 无 | 使能/去使能audio静音 |
 | avmuteSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能| 无 | 无 | 使能/去使能声音图像消隐 |
 | ddcTransfer | **cntlr**:结构体指针,核心层HDMI控制器<br />**ddcCfg**:DDC配置参数 |**ddcCfg**:DDC配置参数 |HDF_STATUS相关状态 | 读写DDC数据 |
@@ -108,9 +108,9 @@ struct HdmiCntlrOps {
 | scdcSourceScrambleSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能 | 无 | HDF_STATUS相关状态 | 使能/去使能source端的加扰 |
 | frlEnable | **cntlr**:结构体指针,核心层HDMI控制器<br />**enable**: bool,使能/去使能 | 无 | HDF_STATUS相关状态 | 使能/去使能FRL |
 | audioNctsSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**cfg**:N/CTS配置参数 | 无 | HDF_STATUS相关状态 | 设置audio的N/CTS信息 |
-| frlTrainingConfigSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**cfg**:FRL Traning配置参数 | 无 | 无| 设置FRL Traning配置信息 |
-| frlTrainingStart | **cntlr**:结构体指针,核心层HDMI控制器 | 无 | 无 | 开始FRL Traning流程 |
-| frlGetTriningRslt | **cntlr**:结构体指针,核心层HDMI控制器 | **rslt**:FRL Traning结果 | 无 | 获取FRL Traning结果 |
+| frlTrainingConfigSet | **cntlr**:结构体指针,核心层HDMI控制器<br />**cfg**:FRL Training配置参数 | 无 | 无| 设置FRL Training配置信息 |
+| frlTrainingStart | **cntlr**:结构体指针,核心层HDMI控制器 | 无 | 无 | 开始FRL Training流程 |
+| frlGetTriningRslt | **cntlr**:结构体指针,核心层HDMI控制器 | **rslt**:FRL Training结果 | 无 | 获取FRL Training结果 |
 | hdcpRegInit | **cntlr**:结构体指针,核心层HDMI控制器 | 无 | 无 | 初始化HDCP流程相关的寄存器 |
 |hdcpGenerateAksvAndAn |**cntlr**:结构体指针,核心层HDMI控制器 | 无 | HDF_STATUS相关状态 | HDCP流程中生成aksv和an |
 | hdcpOptReg | **cntlr**:结构体指针,核心层HDMI控制器<br />**type**: 操作类型<br />**data**: 寄存器数据<br />**len**: 数据长度 | **data**: 寄存器数据 | HDF_STATUS相关状态 | HDCP流程中读写相关寄存器 |
@@ -412,4 +412,4 @@ HDMI模块适配的三个环节是配置属性文件,实例化驱动入口以
         ```
         
         > ![](../public_sys-resources/icon-note.gif) **说明:**<br>
-        > 所有强制转换获取相应对象的操作前提是在Init函数中具备对应赋值的操作。
\ No newline at end of file
+        > 所有强制转换获取相应对象的操作前提是在Init函数中具备对应赋值的操作。
diff --git a/zh-cn/device-dev/driver/driver-platform-i3c-des.md b/zh-cn/device-dev/driver/driver-platform-i3c-des.md
index 5ead2c6ef21e842f8099560166c0b51c8b2e71a1..24d7f0bd02a15e1942680cd80a19556bbdc2d0f3 100755
--- a/zh-cn/device-dev/driver/driver-platform-i3c-des.md
+++ b/zh-cn/device-dev/driver/driver-platform-i3c-des.md
@@ -268,7 +268,7 @@ int32_t I3cTestRequestIbi(void)
 }
     ret = I3cRequestIbi(i3cHandle, 0x3F, TestI3cIbiFunc, 16);
     if (ret != 0) {
-        HDF_LOGE("%s: Requset IBI failed!", __func__);
+        HDF_LOGE("%s: Request IBI failed!", __func__);
         return -1;
     }
 
@@ -447,4 +447,4 @@ static int32_t TestCaseI3c(void)
 
     return 0;
 }
-```
\ No newline at end of file
+```
diff --git a/zh-cn/device-dev/driver/driver-platform-uart-develop.md b/zh-cn/device-dev/driver/driver-platform-uart-develop.md
index d33491b40f4da5a80d90548d85f25e3dd63860ce..0a2abe456278938fe723ef09076f43f6045b9e87 100755
--- a/zh-cn/device-dev/driver/driver-platform-uart-develop.md
+++ b/zh-cn/device-dev/driver/driver-platform-uart-develop.md
@@ -188,7 +188,7 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动
       #define UART_STATE_NOT_OPENED 0
       #define UART_STATE_OPENING    1
       #define UART_STATE_USEABLE    2
-      #define UART_STATE_SUSPENED   3
+      #define UART_STATE_SUSPENDED  3
           uint32_t flags;                     // 状态标志
       #define UART_FLG_DMA_RX       (1 << 0)
       #define UART_FLG_DMA_TX       (1 << 1)
diff --git a/zh-cn/device-dev/get-code/sourcecode-acquire.md b/zh-cn/device-dev/get-code/sourcecode-acquire.md
index a75e79c97397f982b94c356d3172d74570d245ca..537e80b50862e7f5f431b33f9353cbc67786c036 100644
--- a/zh-cn/device-dev/get-code/sourcecode-acquire.md
+++ b/zh-cn/device-dev/get-code/sourcecode-acquire.md
@@ -195,12 +195,12 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
 | Hi3516解决方案-Linux(二进制) | 3.0 | [站点](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz.sha256) |
 | RELEASE-NOTES | 3.0 | [站点](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.0-LTS/zh-cn/release-notes/OpenHarmony-v3.0-LTS.md) | - |
 | **最新发布版本源码** | **版本信息** | **下载站点** | **SHA256校验码** |
-| 全量代码Beta版本(标准、轻量和小型系统) | 3.2 Beta1 | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/code-v3.2-Beta1.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/code-v3.2-Beta1.tar.gz.sha256) |
-| RK3568标准系统解决方案(二进制) | 3.2 Beta1 | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/standard_rk3568.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/standard_rk3568.tar.gz.sha256) |
-| Hi3861解决方案(二进制) | 3.2 Beta1 | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_pegasus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_pegasus.tar.gz.sha256) |
-| Hi3516解决方案-LiteOS(二进制) | 3.2 Beta1 | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus.tar.gz.sha256) |
-| Hi3516解决方案-Linux(二进制) | 3.2 Beta1 | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus_linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus_linux.tar.gz.sha256) |
-| RELEASE-NOTES | 3.2 Beta1 | [站点](../../release-notes/OpenHarmony-v3.2-beta1.md) | - |
+| 全量代码Beta版本(标准、轻量和小型系统) | 3.2 Beta2 | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/code-v3.2-Beta2.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/code-v3.2-Beta2.tar.gz.sha256) |
+| RK3568标准系统解决方案(二进制) | 3.2 Beta2 | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/dayu200_standard_arm64.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/dayu200_standard_arm64.tar.gz.sha256) |
+| Hi3861解决方案(二进制) | 3.2 Beta2 | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_pegasus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_pegasus.tar.gz.sha256) |
+| Hi3516解决方案-LiteOS(二进制) | 3.2 Beta2 | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_taurus_LiteOS.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_taurus_LiteOS.tar.gz.sha256) |
+| Hi3516解决方案-Linux(二进制) | 3.2 Beta2 | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_taurus_Linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_taurus_Linux.tar.gz.sha256) |
+| RELEASE-NOTES | 3.2 Beta2 | [站点](../../release-notes/OpenHarmony-v3.2-beta2.md) | - |
 | **编译工具链** | **版本信息** | **下载站点** | **SHA256校验码** |
 | 编译工具链获取清单 | - | [站点](https://repo.huaweicloud.com/openharmony/os/2.0/tool_chain/) | - |
 
diff --git a/zh-cn/device-dev/kernel/Readme-CN.md b/zh-cn/device-dev/kernel/Readme-CN.md
index 4f32b8e9e9822ea707a23a10f9e378c5f9b97e69..fdeb7b452e6580d5db0f55d9959528bacc4e740a 100755
--- a/zh-cn/device-dev/kernel/Readme-CN.md
+++ b/zh-cn/device-dev/kernel/Readme-CN.md
@@ -6,10 +6,7 @@
         - 基础内核
             - [中断管理](kernel-mini-basic-interrupt.md)
             - [任务管理](kernel-mini-basic-task.md)
-            - 内存管理
-                - [基本概念](kernel-mini-basic-memory-basic.md)
-                - [静态内存](kernel-mini-basic-memory-static.md)
-                - [动态内存](kernel-mini-basic-memory-dynamic.md)
+            - [内存管理](kernel-mini-basic-memory.md)
             - 内核通信机制
                 - [事件](kernel-mini-basic-ipc-event.md)
                 - [互斥锁](kernel-mini-basic-ipc-mutex.md)
@@ -21,23 +18,16 @@
             - [C++支持](kernel-mini-extend-support.md)
             - [CPU占用率](kernel-mini-extend-cpup.md)
             - [动态加载](kernel-mini-extend-dynamic-loading.md)
-            - 文件系统
-                - [FAT](kernel-mini-extend-file-fat.md)
-                - [LittleFS](kernel-mini-extend-file-lit.md)
+            - [文件系统](kernel-mini-extend-file.md)
         - 内核调测
-            - 内存调测
-                - [内存信息统计](kernel-mini-memory-debug-mes.md)
-                - [内存泄漏检测](kernel-mini-memory-debug-det.md)
-                - [踩内存检测](kernel-mini-memory-debug-cet.md)
+            - [内存调测](kernel-mini-memory-debug.md)
             - [异常调测](kernel-mini-memory-exception.md)
             - [Trace调测](kernel-mini-memory-trace.md)
             - [LMS调测](kernel-mini-memory-lms.md)
         - 附录
             - [内核编码规范](kernel-mini-appx-code.md)
             - [双向链表](kernel-mini-appx-data-list.md)
-            - 标准库支持
-                - [CMSIS支持](kernel-mini-appx-lib-cmsis.md)
-                - [POSIX支持](kernel-mini-appx-lib-posix.md)
+            - [标准库支持](kernel-mini-appx-lib.md)
     - 小型系统内核
         - [内核概述](kernel-small-overview.md)
         - 内核启动
@@ -71,13 +61,9 @@
             - [虚拟动态共享库](kernel-small-bundles-share.md)
             - [轻量级进程间通信](kernel-small-bundles-ipc.md)
             - 文件系统
+                - [文件系统概述](kernel-small-bundles-fs.md)
                 - [虚拟文件系统](kernel-small-bundles-fs-virtual.md)
-                - 支持的文件系统
-                    - [FAT](kernel-small-bundles-fs-support-fat.md)
-                    - [JFFS2](kernel-small-bundles-fs-support-jffs2.md)
-                    - [NFS](kernel-small-bundles-fs-support-nfs.md)
-                    - [Ramfs](kernel-small-bundles-fs-support-ramfs.md)
-                    - [Procfs](kernel-small-bundles-fs-support-procfs.md)
+                - [支持的文件系统](kernel-small-bundles-fs-support.md)
                 - [适配新的文件系统](kernel-small-bundles-fs-new.md)
         - 调测与工具
             - Shell
@@ -155,15 +141,7 @@
                 - [内存信息统计](kernel-small-debug-memory-info.md)
                 - [内存泄漏检测](kernel-small-debug-memory-leak.md)
                 - [踩内存检测](kernel-small-debug-memory-corrupt.md)
-            - 用户态内存调测
-                - [基本概念](kernel-small-debug-user-concept.md)
-                - [运行机制](kernel-small-debug-user-function.md)
-                - 使用指导
-                    - [接口说明](kernel-small-debug-user-guide-api.md)
-                    - [使用说明](kernel-small-debug-user-guide-use.md)
-                        - [接口调用方式](kernel-small-debug-user-guide-use-api.md)
-                        - [命令行参数方式](kernel-small-debug-user-guide-use-cli.md)
-                - [常见问题](kernel-small-debug-user-faqs.md)
+            - [用户态内存调测](kernel-small-debug-user.md)
             - 其他内核调测手段
                 - [临终遗言](kernel-small-debug-trace-other-lastwords.md)
                 - [常见问题](kernel-small-debug-trace-other-faqs.md)
diff --git a/zh-cn/device-dev/kernel/kernel-mini-appx-lib.md b/zh-cn/device-dev/kernel/kernel-mini-appx-lib.md
index 8ce3db5c735a90579bb5693248740808c0664419..d2f4b54be58063e23b8f7fc145e96c555b4e27ca 100644
--- a/zh-cn/device-dev/kernel/kernel-mini-appx-lib.md
+++ b/zh-cn/device-dev/kernel/kernel-mini-appx-lib.md
@@ -1,7 +1,500 @@
 # 标准库支持
 
 
+## CMSIS支持
 
-- **[CMSIS支持](kernel-mini-appx-lib-cmsis.md)**
 
-- **[POSIX支持](kernel-mini-appx-lib-posix.md)**
\ No newline at end of file
+### 基本概念
+
+[CMSIS](https://developer.arm.com/tools-and-software/embedded/cmsis)是Cortex Microcontroller Software Interface Standard(Cortex微控制器软件接口标准)的缩写,是对于那些基于ARM Cortex处理器的微控制器独立于供应商的硬件抽象层。它包含多个组件层,其中之一是RTOS层,该层定义了一套通用及标准化的RTOS API接口,减少了应用开发者对特定RTOS的依赖,方便用户软件的移植重用。该套API有2个版本,分别为版本1(CMSIS-RTOS v1)和版本2(CMSIS-RTOS v2),OpenHarmony LiteOS-M仅提供其版本2的实现。
+
+
+### 开发指导
+
+
+#### 接口说明
+
+CMSIS-RTOS v2提供下面几种功能,接口详细信息可以查看API参考。
+
+  **表1** 内核信息与控制
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osKernelGetInfo | 获取RTOS内核信息。 |
+| osKernelGetState | 获取当前的RTOS内核状态。 |
+| osKernelGetSysTimerCount | 获取RTOS内核系统计时器计数。 |
+| osKernelGetSysTimerFreq | 获取RTOS内核系统计时器频率。 |
+| osKernelInitialize | 初始化RTOS内核。 |
+| osKernelLock | 锁定RTOS内核调度程序。 |
+| osKernelUnlock | 解锁RTOS内核调度程序。 |
+| osKernelRestoreLock | 恢复RTOS内核调度程序锁定状态。 |
+| osKernelResume | 恢复RTOS内核调度程序。(暂未实现) |
+| osKernelStart | 启动RTOS内核调度程序。 |
+| osKernelSuspend | 挂起RTOS内核调度程序。(暂未实现) |
+| osKernelGetTickCount | 获取RTOS内核滴答计数。 |
+| osKernelGetTickFreq | 获取RTOS内核滴答频率。 |
+
+  **表2** 线程管理
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osThreadDetach | 分离线程(线程终止时可以回收线程存储)。(暂未实现) |
+| osThreadEnumerate | 枚举活动线程。(暂未实现) |
+| osThreadExit | 终止当前正在运行的线程的执行。 |
+| osThreadGetCount | 获取活动线程的数量。 |
+| osThreadGetId | 返回当前正在运行的线程的线程ID。 |
+| osThreadGetName | 获取线程的名称。 |
+| osThreadGetPriority | 获取线程的当前优先级。 |
+| osThreadGetStackSize | 获取线程的堆栈大小。 |
+| osThreadGetStackSpace | 根据执行期间的堆栈水印记录获取线程的可用堆栈空间。 |
+| osThreadGetState | 获取线程的当前线程状态。 |
+| osThreadJoin | 等待指定线程终止。(暂未实现) |
+| osThreadNew | 创建一个线程并将其添加到活动线程中。 |
+| osThreadResume | 恢复线程的执行。 |
+| osThreadSetPriority | 更改线程的优先级。 |
+| osThreadSuspend | 暂停执行线程。 |
+| osThreadTerminate | 终止线程的执行。 |
+| osThreadYield | 将控制权传递给处于就绪状态的下一个线程。 |
+
+  **表3** 线程标志
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osThreadFlagsSet | 设置线程的指定线程标志。(暂未实现) |
+| osThreadFlagsClear | 清除当前正在运行的线程的指定线程标志。(暂未实现) |
+| osThreadFlagsGet | 获取当前正在运行的线程的当前线程标志。(暂未实现) |
+| osThreadFlagsWait | 等待当前正在运行的线程的一个或多个线程标志发出信号。(暂未实现) |
+
+  **表4** 事件标志
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osEventFlagsGetName | 获取事件标志对象的名称。(暂未实现) |
+| osEventFlagsNew | 创建并初始化事件标志对象。 |
+| osEventFlagsDelete | 删除事件标志对象。 |
+| osEventFlagsSet | 设置指定的事件标志。 |
+| osEventFlagsClear | 清除指定的事件标志。 |
+| osEventFlagsGet | 获取当前事件标志。 |
+| osEventFlagsWait | 等待一个或多个事件标志被发出信号。 |
+
+  **表5** 通用等待函数
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osDelay | 等待超时(时间延迟)。 |
+| osDelayUntil | 等到指定时间。 |
+
+  **表6** 计时器管理
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osTimerDelete | 删除计时器。 |
+| osTimerGetName | 获取计时器的名称。(暂未实现) |
+| osTimerIsRunning | 检查计时器是否正在运行。 |
+| osTimerNew | 创建和初始化计时器。 |
+| osTimerStart | 启动或重新启动计时器。 |
+| osTimerStop | 停止计时器。 |
+
+  **表7** 互斥管理
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osMutexAcquire | 获取互斥或超时(如果已锁定)。 |
+| osMutexDelete | 删除互斥对象。 |
+| osMutexGetName | 获取互斥对象的名称。(暂未实现) |
+| osMutexGetOwner | 获取拥有互斥对象的线程。 |
+| osMutexNew | 创建并初始化Mutex对象。 |
+| osMutexRelease | 释放由osMutexAcquire获取的Mutex。 |
+
+  **表8** 信号量
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osSemaphoreAcquire | 获取信号量令牌或超时(如果没有可用的令牌)。 |
+| osSemaphoreDelete | 删除一个信号量对象。 |
+| osSemaphoreGetCount | 获取当前信号量令牌计数。 |
+| osSemaphoreGetName | 获取信号量对象的名称。(暂未实现) |
+| osSemaphoreNew | 创建并初始化一个信号量对象。 |
+| osSemaphoreRelease | 释放信号量令牌,直到初始最大计数。 |
+
+  **表9** 内存池
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osMemoryPoolAlloc | 从内存池分配一个内存块。 |
+| osMemoryPoolDelete | 删除内存池对象。 |
+| osMemoryPoolFree | 将分配的内存块返回到内存池。 |
+| osMemoryPoolGetBlockSize | 获取内存池中的内存块大小。 |
+| osMemoryPoolGetCapacity | 获取内存池中最大的内存块数。 |
+| osMemoryPoolGetCount | 获取内存池中使用的内存块数。 |
+| osMemoryPoolGetName | 获取内存池对象的名称。 |
+| osMemoryPoolGetSpace | 获取内存池中可用的内存块数。 |
+| osMemoryPoolNew | 创建并初始化一个内存池对象。 |
+
+  **表10** 消息队列
+
+| 接口名 | 接口描述 |
+| -------- | -------- |
+| osMessageQueueDelete | 删除消息队列对象。 |
+| osMessageQueueGet | 从队列获取消息,或者如果队列为空,则从超时获取消息。 |
+| osMessageQueueGetCapacity | 获取消息队列中的最大消息数。 |
+| osMessageQueueGetCount | 获取消息队列中排队的消息数。 |
+| osMessageQueueGetMsgSize | 获取内存池中的最大消息大小。 |
+| osMessageQueueGetName | 获取消息队列对象的名称。(暂未实现) |
+| osMessageQueueGetSpace | 获取消息队列中消息的可用插槽数。 |
+| osMessageQueueNew | 创建和初始化消息队列对象。 |
+| osMessageQueuePut | 如果队列已满,则将消息放入队列或超时。 |
+| osMessageQueueReset | 将消息队列重置为初始空状态。(暂未实现) |
+
+
+#### 开发流程
+
+CMSIS-RTOS2组件可以作为库或源代码提供(下图显示了库)。通过添加CMSIS-RTOS2组件(通常是一些配置文件),可以将基于CMSIS的应用程序扩展为具有RTOS功能。只需包含cmsis_os2.h头文件就可以访问RTOS API函数,这使用户应用程序能够处理RTOS内核相关事件,而在更换内核时无需重新编译源代码。
+
+静态对象分配需要访问RTOS对象控制块定义。特定于实现的头文件(下图中的os_xx .h)提供对此类控制块定义的访问。对于OpenHarmony LiteOS-M内核,由文件名以los_开头的头文件提供,这些文件包含OpenHarmony LiteOS-M内核的这些定义。
+
+![zh-cn_image_0000001153834574](figures/zh-cn_image_0000001153834574.png)
+
+
+#### 编程实例
+
+
+```
+#include ...
+#include "cmsis_os2.h"
+
+/*----------------------------------------------------------------------------
+ * 应用程序主线程
+ *---------------------------------------------------------------------------*/
+void app_main (void *argument) {
+  // ...
+  for (;;) {}
+}
+
+int main (void) {
+  // 系统初始化
+  MySystemInit();
+  // ...
+
+  osKernelInitialize();                 // 初始化CMSIS-RTOS
+  osThreadNew(app_main, NULL, NULL);    // 创建应用程序主线程
+  osKernelStart();                      // 开始执行线程
+  for (;;) {}
+}
+```
+
+## POSIX支持
+
+
+### 基本概念
+
+OpenHarmony内核使用**musl libc**库以及自研接口,支持部分标准POSIX接口,开发者可基于POSIX标准接口开发内核之上的组件及应用。
+
+
+### 开发指导
+
+
+#### 接口说明
+
+  **表1** process
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;stdlib.h&gt; | void&nbsp;abort(void); | 中止线程执行 |
+| \#include&nbsp;&lt;assert.h&gt; | void&nbsp;assert(scalar&nbsp;expression); | 断言为假终止线程 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_destroy(pthread_cond_t&nbsp;\*cond); | 销毁条件变量 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_init(pthread_cond_t&nbsp;\*restrict&nbsp;co<br/>nd,&nbsp;const&nbsp;pthread_condattr_t&nbsp;\*restrict&nbsp;attr); | 初始化条件变量 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_timedwait(pthread_cond_t&nbsp;\*restr<br/>ict&nbsp;cond,&nbsp;pthread_mutex_t&nbsp;\*restrict&nbsp;mutex,&nbsp;const&nbsp;st<br/>ruct&nbsp;timespec&nbsp;\*restrict&nbsp;abstime); | 等待条件 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_condattr_init(pthread_condattr_t&nbsp;\*attr); | 初始化条件变量属性对象 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_mutex_unlock(pthread_mutex_t&nbsp;\*mutex); | 解锁互斥锁 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_create(pthread_t&nbsp;\*thread,&nbsp;const&nbsp;pthread_<br/>attr_t&nbsp;\*attr,&nbsp;void&nbsp;\*(\*start_routine)(void&nbsp;\*),&nbsp;void&nbsp;\*arg); | 创建一个新的线程 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_join(pthread_t&nbsp;thread,&nbsp;void&nbsp;\*\*retval); | 等待指定的线程结束 |
+| \#include&nbsp;&lt;pthread.h&gt; | pthread_t&nbsp;pthread_self(void); | 获取当前线程的ID |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_getschedparam(pthread_t&nbsp;thread,&nbsp;int&nbsp;\*<br/>policy,&nbsp;struct&nbsp;sched_param&nbsp;\*param); | 获取线程的调度策略和参数 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_setschedparam(pthread_t&nbsp;thread,&nbsp;int<br/>policy,&nbsp;const&nbsp;struct&nbsp;sched_param&nbsp;\*param); | 设置线程的调度策略和参数 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_mutex_init(pthread_mutex_t&nbsp;\*__restrict&nbsp;m<br/>,&nbsp;const&nbsp;pthread_mutexattr_t&nbsp;\*__restrict&nbsp;a); | 初始化互斥锁 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_mutex_lock(pthread_mutex_t&nbsp;\*m); | 互斥锁加锁操作 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_mutex_trylock(pthread_mutex_t&nbsp;\*m); | 互斥锁尝试加锁操作 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_mutex_destroy(pthread_mutex_t&nbsp;\*m); | 销毁互斥锁 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_init(pthread_attr_t&nbsp;\*attr); | 初始化线程属性对象 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_destroy(pthread_attr_t&nbsp;\*attr); | 销毁线程属性对象 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_getstacksize(const&nbsp;pthread_attr<br/>_t&nbsp;\*attr,&nbsp;size_t&nbsp;\*stacksize); | 获取线程属性对象的堆栈大小 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_setstacksize(pthread_attr_t&nbsp;\*attr<br/>,&nbsp;size_t&nbsp;stacksize); | 设置线程属性对象的堆栈大小 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_getschedparam(const&nbsp;pthread_<br/>attr_t&nbsp;\*attr,&nbsp;struct&nbsp;sched_param&nbsp;\*param); | 获取线程属性对象的调度参数属性 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_attr_setschedparam(pthread_attr_t&nbsp;\*<br/>attr,&nbsp;const&nbsp;struct&nbsp;sched_param&nbsp;\*param); | 设置线程属性对象的调度参数属性 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_getname_np(pthread_t&nbsp;pthread,&nbsp;char<br/>\*name,&nbsp;size_t&nbsp;len); | 获取线程名称 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_setname_np(pthread_t&nbsp;pthread,&nbsp;const<br/>char&nbsp;\*name); | 设置线程名称 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_broadcast(pthread_cond_t&nbsp;\*c); | 解除若干已被等待条件阻塞的线程 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_signal(pthread_cond_t&nbsp;\*c); | 解除被阻塞的线程 |
+| \#include&nbsp;&lt;pthread.h&gt; | int&nbsp;pthread_cond_wait(pthread_cond_t&nbsp;\*__restrict<br/>c,&nbsp;pthread_mutex_t&nbsp;\*__restrict&nbsp;m); | 等待条件 |
+
+  **表2** fs
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;libgen.h&gt; | char&nbsp;\*dirname(char&nbsp;\*path); | 获取目录名 |
+| \#include&nbsp;&lt;dirent.h&gt; | struct&nbsp;dirent&nbsp;\*readdir(DIR&nbsp;\*dirp); | 读目录 |
+| \#include&nbsp;&lt;sys/stat.h&gt; | int&nbsp;stat(const&nbsp;char&nbsp;\*restrict&nbsp;path,&nbsp;struct&nbsp;stat&nbsp;\*restrict&nbsp;buf); | 获取文件信息 |
+| \#include&nbsp;&lt;unistd.h&gt; | int&nbsp;unlink(const&nbsp;char&nbsp;\*pathname); | 删除文件 |
+| \#include&nbsp;&lt;fcntl.h | int&nbsp;open(const&nbsp;char&nbsp;\*path,&nbsp;int&nbsp;oflags,&nbsp;...); | 用于打开文件,如文件不存在,创建文件并打开 |
+| \#include&nbsp;&lt;nistd.h&gt; | int&nbsp;close(int&nbsp;fd); | 关闭文件 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;rename(const&nbsp;char&nbsp;\*oldpath,&nbsp;const&nbsp;char&nbsp;\*newpath); | 重命名指定的文件 |
+| \#include&nbsp;&lt;dirent.h&gt; | DIR&nbsp;&nbsp;\*opendir(const&nbsp;char&nbsp;\*dirname); | 打开指定目录 |
+| \#include&nbsp;&lt;dirent.h&gt; | int&nbsp;closedir(DIR&nbsp;\*dir); | 关闭指定目录 |
+| \#include&nbsp;&lt;sys/mount.h&gt; | int&nbsp;mount(const&nbsp;char&nbsp;\*source,&nbsp;const&nbsp;char&nbsp;\*target,&nbsp;con<br/>st&nbsp;char&nbsp;\*filesystemtype,&nbsp;unsigned&nbsp;long&nbsp;mountflags,&nbsp;c<br/>onst&nbsp;void&nbsp;\*data); | 挂载文件系统 |
+| \#include&nbsp;&lt;sys/mount.h&gt; | int&nbsp;umount(const&nbsp;char&nbsp;\*target); | 卸载文件系统 |
+| \#include&nbsp;&lt;sys/mount.h&gt; | int&nbsp;umount2(const&nbsp;char&nbsp;\*target,&nbsp;int&nbsp;flag); | 卸载文件系统 |
+| \#include&nbsp;&lt;sys/stat.h&gt; | int&nbsp;fsync(int&nbsp;fd); | 将与指定文件描述符关联的文件同步到存储设备 |
+| \#include&nbsp;&lt;sys/stat.h&gt; | int&nbsp;mkdir(const&nbsp;char&nbsp;\*pathname,&nbsp;mode_t&nbsp;mode); | 创建目录 |
+| \#include&nbsp;&lt;unistd.h&gt; | int&nbsp;rmdir(const&nbsp;char&nbsp;\*path); | 删除目录 |
+| \#include&nbsp;&lt;sys/stat.h&gt; | int&nbsp;fstat(int&nbsp;fd,&nbsp;struct&nbsp;stat&nbsp;\*buf); | 获取文件状态信息 |
+| \#include&nbsp;&lt;sys/statfs.h&gt; | int&nbsp;statfs(const&nbsp;char&nbsp;\*path,&nbsp;struct&nbsp;statfs&nbsp;\*buf); | 获取指定路径下文件的文件系统信息 |
+
+  **表3** time
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;sys/time.h&gt; | int&nbsp;gettimeofday(struct&nbsp;timeval&nbsp;\*tv,&nbsp;struct&nbsp;timezone&nbsp;\*tz); | 获取时间。当前暂无时区概念,tz返回为空 |
+| \#include&nbsp;&lt;time.h&gt; | struct&nbsp;tm&nbsp;\*gmtime(const&nbsp;time_t&nbsp;\*timep); | 将日期和时间转换为细分时间或ASCII |
+| \#include&nbsp;&lt;time.h&gt; | struct&nbsp;tm&nbsp;\*localtime(const&nbsp;time_t&nbsp;\*timep); | 获取时间 |
+| \#include&nbsp;&lt;time.h&gt; | struct&nbsp;tm&nbsp;\*localtime_r(const&nbsp;time_t&nbsp;\*timep,&nbsp;struct&nbsp;tm&nbsp;\*result); | 获取时间 |
+| \#include&nbsp;&lt;time.h&gt; | time_t&nbsp;mktime(struct&nbsp;tm&nbsp;\*tm); | 将日期和时间转换为细分时间或ASCII |
+| \#include&nbsp;&lt;time.h&gt; | size_t&nbsp;strftime(char&nbsp;\*s,&nbsp;size_t&nbsp;max,&nbsp;const&nbsp;char&nbsp;\*<br/>format,const&nbsp;struct&nbsp;tm&nbsp;\*tm); | 格式化日期和时间字符串 |
+| \#include&nbsp;&lt;time.h&gt; | time_t&nbsp;time(time_t&nbsp;\*tloc); | 获得日历时间 |
+| \#include&nbsp;&lt;sys/times.h&gt; | clock_t&nbsp;times(struct&nbsp;tms&nbsp;\*buf); | 获取线程时间 |
+| \#include&nbsp;&lt;unistd.h&gt; | int&nbsp;usleep(useconds_t&nbsp;usec); | 休眠(微秒单位) |
+| \#include&nbsp;&lt;time.h&gt; | int&nbsp;nanosleep(const&nbsp;struct&nbsp;timespec&nbsp;\*tspec1,&nbsp;struct<br/>timespec&nbsp;\*tspec2); | 暂停当前线程直到指定的时间到达 |
+| \#include&nbsp;&lt;time.h&gt; | int&nbsp;clock_gettime(clockid_t&nbsp;id,&nbsp;struct&nbsp;timespec&nbsp;\*tspec); | 获取时钟的时间 |
+| \#include&nbsp;&lt;time.h&gt; | int&nbsp;timer_create(clockid_t&nbsp;id,&nbsp;struct&nbsp;sigevent&nbsp;\*__<br/>restrict&nbsp;evp,&nbsp;timer_t&nbsp;\*__restrict&nbsp;t); | 为线程创建计时器 |
+| \#include&nbsp;&lt;time.h&gt; | int&nbsp;timer_delete(timer_t&nbsp;t); | 为线程删除计时器 |
+| \#include&nbsp;&lt;time.h&gt; | int&nbsp;timer_settime(timer_t&nbsp;t,&nbsp;int&nbsp;flags,&nbsp;const&nbsp;struct<br/>itimerspec&nbsp;\*__restrict&nbsp;val,&nbsp;struct&nbsp;itimerspec&nbsp;\*__restrict&nbsp;old); | 为线程设置计时器 |
+| \#include&nbsp;&lt;time.h&gt; | time_t&nbsp;time&nbsp;(time_t&nbsp;\*t); | 获取时间 |
+| \#include&nbsp;&lt;time.h&gt; | char&nbsp;\*strptime(const&nbsp;char&nbsp;\*s,&nbsp;const&nbsp;char&nbsp;\*format,&nbsp;struct&nbsp;tm&nbsp;\*tm); | 将时间的字符串表示形式转换为时间tm结构 |
+
+  **表4** util
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;stdlib.h&gt; | int&nbsp;atoi(const&nbsp;char&nbsp;\*nptr); | 字符串转换整型(int) |
+| \#include&nbsp;&lt;stdlib.h&gt; | long&nbsp;atol(const&nbsp;char&nbsp;\*nptr); | 字符串转换整型(long) |
+| \#include&nbsp;&lt;stdlib.h&gt; | long&nbsp;long&nbsp;atoll(const&nbsp;char&nbsp;\*nptr); | 字符串转换整型(long&nbsp;long) |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isalnum(int&nbsp;c); | 检查字母数字字符 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isascii(int&nbsp;c); | 检查ASCII |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isdigit(int&nbsp;c); | 检查数字字符 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;islower(int&nbsp;c); | 检查小写字符 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isprint(int&nbsp;c); | 检查任何可打印字符,包括空格 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isspace(int&nbsp;c); | 检查空格字符 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isupper(int&nbsp;c); | 检查所传的字符是否是大写字母 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;isxdigit(int&nbsp;c); | 判断字符是否为十六进制数 |
+| \#include&nbsp;&lt;stdlib.h&gt; | long&nbsp;int&nbsp;random&nbsp;(void); | 生成伪随机数 |
+| \#include&nbsp;&lt;stdlib.h&gt; | void&nbsp;srandom(unsigned&nbsp;int&nbsp;seed); | 初始化随机数生成器 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;tolower(int&nbsp;c); | 字母转换成小写 |
+| \#include&nbsp;&lt;ctype.h&gt; | int&nbsp;toupper(int&nbsp;c); | 字母转换成大写 |
+| \#include&nbsp;&lt;stdarg.h&gt; | type&nbsp;va_arg(va_list&nbsp;ap,&nbsp;type); | 获取可变参数的当前参数,返回指定类型并将指针指向下一参数 |
+| \#include&nbsp;&lt;stdarg.h&gt; | void&nbsp;va_copy(va_list&nbsp;dest,&nbsp;va_list&nbsp;src); | 复制参数 |
+| \#include&nbsp;&lt;stdarg.h&gt; | void&nbsp;va_end(va_list&nbsp;ap); | 清空va_list可变参数列表 |
+| \#include&nbsp;&lt;stdarg.h&gt; | void&nbsp;va_start(va_list&nbsp;ap,&nbsp;last); | 定义变长参数列表的起始位置 |
+| \#include&nbsp;&lt;string.h&gt; | char&nbsp;\*strchr(const&nbsp;char&nbsp;\*s,&nbsp;int&nbsp;c); | 在字符串中定位字符 |
+| \#include&nbsp;&lt;string.h&gt; | int&nbsp;strcmp(const&nbsp;char&nbsp;\*s1,&nbsp;const&nbsp;char&nbsp;\*s2); | 比较字符串 |
+| \#include&nbsp;&lt;string.h&gt; | size_t&nbsp;strcspn(const&nbsp;char&nbsp;\*s,&nbsp;const&nbsp;char&nbsp;\*reject); | 获取前缀子串的长度 |
+| \#include&nbsp;&lt;string.h&gt; | char&nbsp;\*strdup(const&nbsp;char&nbsp;\*s); | 字符串拷贝到新建的位置处 |
+| \#include&nbsp;&lt;string.h&gt; | size_t&nbsp;strlen(const&nbsp;char&nbsp;\*s); | 计算字符串长度 |
+| \#include&nbsp;&lt;strings.h&gt; | int&nbsp;strncasecmp(const&nbsp;char&nbsp;\*s1,&nbsp;const&nbsp;char&nbsp;\*s2,&nbsp;size_t&nbsp;n); | 比较固定长度字符串(忽略大小写) |
+| \#include&nbsp;&lt;strings.h&gt; | int&nbsp;strcasecmp(const&nbsp;char&nbsp;\*s1,&nbsp;const&nbsp;char&nbsp;\*s2); | 比较字符串(忽略大小写) |
+| \#include&nbsp;&lt;string.h&gt; | int&nbsp;strncmp(const&nbsp;char&nbsp;\*s1,&nbsp;const&nbsp;char&nbsp;\*s2,&nbsp;size_t&nbsp;n); | 比较字符串(指定长度) |
+| \#include&nbsp;&lt;string.h&gt; | char&nbsp;\*strrchr(const&nbsp;char&nbsp;\*s,&nbsp;int&nbsp;c); | 在字符串中定位字符 |
+| \#include&nbsp;&lt;string.h&gt; | char&nbsp;\*strstr(const&nbsp;char&nbsp;\*haystack,&nbsp;const&nbsp;char&nbsp;\*needle); | 寻找指定的子串 |
+| \#include&nbsp;&lt;stdlib.h&gt; | long&nbsp;int&nbsp;strtol(const&nbsp;char&nbsp;\*nptr,&nbsp;char&nbsp;\*\*endptr,&nbsp;int&nbsp;base); | 将字符串转换为long型整数 |
+| \#include&nbsp;&lt;stdlib.h&gt; | unsigned&nbsp;long&nbsp;int&nbsp;strtoul(const&nbsp;char&nbsp;\*nptr,&nbsp;char<br/>\*\*endptr,&nbsp;int&nbsp;base); | 将字符串转换为unsigned&nbsp;long型整数 |
+| \#include&nbsp;&lt;stdlib.h&gt; | unsigned&nbsp;long&nbsp;long&nbsp;int&nbsp;strtoull(const&nbsp;char&nbsp;\*nptr,<br/>char&nbsp;\*\*endptr,int&nbsp;base); | 将字符串转换为unsigned&nbsp;long&nbsp;long型整数 |
+| \#include&nbsp;&lt;regex.h&gt; | int&nbsp;regcomp(regex_t&nbsp;\*preg,&nbsp;const&nbsp;char&nbsp;\*regex,<br/>int&nbsp;cflags); | 编译正则表达式 |
+| \#include&nbsp;&lt;regex.h&gt; | int&nbsp;regexec(const&nbsp;regex_t&nbsp;\*preg,&nbsp;const&nbsp;char&nbsp;\*<br/>string,&nbsp;size_t&nbsp;nmatch,regmatch_t&nbsp;pmatch[],&nbsp;int&nbsp;eflags); | 匹配正则表达式 |
+| \#include&nbsp;&lt;regex.h&gt; | void&nbsp;regfree(regex_t&nbsp;\*preg); | 释放正则表达式 |
+| \#include&nbsp;&lt;string.h&gt; | char&nbsp;\*strerror(int&nbsp;errnum); | 返回描述错误号的字符串 |
+
+  **表5** math
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;stdlib.h&gt; | int&nbsp;abs(int&nbsp;i); | 取绝对值 |
+| \#include&nbsp;&lt;math.h&gt; | double&nbsp;log(double&nbsp;x); | 自然对数函数 |
+| \#include&nbsp;&lt;math.h&gt; | double&nbsp;pow(double&nbsp;x,&nbsp;double&nbsp;y); | 求x的指数y次幂 |
+| \#include&nbsp;&lt;math.h&gt; | double&nbsp;round(double&nbsp;x); | 从零开始,舍入到最接近的整数 |
+| \#include&nbsp;&lt;math.h&gt; | double&nbsp;sqrt(double&nbsp;x); | 平方根 |
+
+  **表6** IO
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;stdio.h&gt; | void&nbsp;clearerr(FILE&nbsp;\*stream); | 清除流的文件结尾和错误指示 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;fclose(FILE&nbsp;\*stream); | 关闭文件流 |
+| \#include&nbsp;&lt;stdio.h&gt; | FILE&nbsp;\*fdopen(int&nbsp;fd,&nbsp;const&nbsp;char&nbsp;\*mode); | 通过文件描述符打开文件流 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;feof(FILE&nbsp;\*stream); | 检测返回文件末尾指示位 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;fflush(FILE&nbsp;\*stream); | 刷新流 |
+| \#include&nbsp;&lt;stdio.h&gt; | char&nbsp;\*fgets(char&nbsp;\*s,&nbsp;int&nbsp;size,&nbsp;FILE&nbsp;\*stream); | 读取流的下一行 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;fileno(FILE&nbsp;\*stream); | 返回流的文件描述符 |
+| \#include&nbsp;&lt;stdio.h&gt; | FILE&nbsp;\*fopen(const&nbsp;char&nbsp;\*path,&nbsp;const&nbsp;char&nbsp;\*mode); | 打开流 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;fputs(const&nbsp;char&nbsp;\*s,&nbsp;FILE&nbsp;\*stream); | 向指定流写入一行 |
+| \#include&nbsp;&lt;stdio.h&gt; | size_t&nbsp;fread(void&nbsp;\*ptr,&nbsp;size_t&nbsp;size,&nbsp;size_t&nbsp;nmemb,<br/>FILE&nbsp;\*stream); | 读一个流 |
+| \#include&nbsp;&lt;stdio.h&gt; | int&nbsp;fseek(FILE&nbsp;\*stream,&nbsp;long&nbsp;offset,&nbsp;int&nbsp;whence); | 设置流指针的位置 |
+| \#include&nbsp;&lt;stdio.h&gt; | long&nbsp;ftell(FILE&nbsp;\*stream); | 获取流指针的位置 |
+| \#include&nbsp;&lt;stdio.h&gt; | size_t&nbsp;fwrite(const&nbsp;void&nbsp;\*ptr,&nbsp;size_t&nbsp;size,&nbsp;size_t<br/>nmemb,FILE&nbsp;\*stream); | 向流写入 |
+| \#include&nbsp;&lt;stdio.h&gt; | void&nbsp;perror(const&nbsp;char&nbsp;\*s); | 打印系统错误信息 |
+| \#include&nbsp;&lt;stdio.h&gt; | void&nbsp;rewind(FILE&nbsp;\*stream); | 重新定位流 |
+| \#include&nbsp;&lt;unistd.h&gt; | ssize_t&nbsp;write(int&nbsp;fd,&nbsp;const&nbsp;void&nbsp;\*buf,&nbsp;size_t&nbsp;size); | 写文件内容 |
+| \#include&nbsp;&lt;unistd.h&gt; | ssize_t&nbsp;read(int&nbsp;fd,&nbsp;void&nbsp;\*buf,&nbsp;size_t&nbsp;size); | 读文件内容 |
+
+  **表7** net
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;sys/socket.h&gt; | void&nbsp;freeaddrinfo(struct&nbsp;addrinfo&nbsp;\*res); | 释放调用getaddrinfo所分配的动态内存 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | int&nbsp;getaddrinfo(const&nbsp;char&nbsp;\*restrict&nbsp;nodename,const<br/>char&nbsp;\*restrict&nbsp;servname,const&nbsp;struct&nbsp;addrinfo&nbsp;\*restrict<br/>hints,struct&nbsp;addrinfo&nbsp;\*\*restrict&nbsp;res); | 网络地址和服务转换 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | int&nbsp;getnameinfo(const&nbsp;struct&nbsp;sockaddr&nbsp;\*restrict&nbsp;sa,<br/>socklen_t&nbsp;salen,char&nbsp;\*restrict&nbsp;node,&nbsp;socklen_t&nbsp;nodelen<br/>,&nbsp;char&nbsp;\*restrict&nbsp;service,socklen_t&nbsp;servicelen,&nbsp;int&nbsp;flags); | 以协议无关的方式进行地址到名称的转换 |
+| \#include&nbsp;&lt;net/if.h&gt; | unsigned&nbsp;int&nbsp;if_nametoindex(const&nbsp;char&nbsp;\*ifname); | 通过网络接口名得到索引 |
+| \#include&nbsp;&lt;arpa/inet.h&gt; | in_addr_t&nbsp;inet_addr(const&nbsp;char&nbsp;\*cp); | 网络主机地址点分十进制形式转换位二进制形式 |
+| \#include&nbsp;&lt;arpa/inet.h&gt; | char&nbsp;\*inet_ntoa(struct&nbsp;in_addr&nbsp;in); | 网络主机地址二进制形式转换位点分十进制形式 |
+| \#include&nbsp;&lt;arpa/inet.h&gt; | const&nbsp;char&nbsp;\*inet_ntop(int&nbsp;af,&nbsp;const&nbsp;void&nbsp;\*src,char&nbsp;\*dst,<br/>socklen_t&nbsp;size); | 网络地址转换 |
+| \#include&nbsp;&lt;arpa/inet.h&gt; | int&nbsp;inet_pton(int&nbsp;af,&nbsp;const&nbsp;char&nbsp;\*src,&nbsp;void&nbsp;\*dst); | 网络地址转换 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | int&nbsp;listen(int&nbsp;sockfd,&nbsp;int&nbsp;backlog); | 监听套接字 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | ssize_t&nbsp;recvmsg(int&nbsp;sockfd,&nbsp;struct&nbsp;msghdr&nbsp;\*msg,&nbsp;int&nbsp;flags); | 从套接字接收消息.只支持iov大小为1的场景,且不支持ancillary消息 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | ssize_t&nbsp;send(int&nbsp;sockfd,&nbsp;const&nbsp;void&nbsp;\*buf,&nbsp;size_t&nbsp;len,&nbsp;int&nbsp;flags); | 从socket发送消息 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | ssize_t&nbsp;sendmsg(int&nbsp;sockfd,&nbsp;const&nbsp;struct&nbsp;msghdr&nbsp;\*msg,&nbsp;int&nbsp;flags); | 从socket发送消息。不支持ancillary消息 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | ssize_t&nbsp;sendto(int&nbsp;sockfd,&nbsp;const&nbsp;void&nbsp;\*buf,&nbsp;size_t&nbsp;len,&nbsp;int<br/>flags,const&nbsp;struct&nbsp;sockaddr&nbsp;\*dest_addr,&nbsp;socklen_t&nbsp;addrlen); | 从socket发送消息 |
+| \#include&nbsp;&lt;sys/socket.h&gt; | int&nbsp;setsockopt(int&nbsp;sockfd,&nbsp;int&nbsp;level,&nbsp;int&nbsp;optname,const<br/>void&nbsp;\*optval,&nbsp;socklen_t&nbsp;optlen); | 设置与套接字关联的选项 |
+
+  **表8** mem
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;string.h&gt; | int&nbsp;memcmp(const&nbsp;void&nbsp;\*s1,&nbsp;const&nbsp;void&nbsp;\*s2,&nbsp;size_t&nbsp;n); | 内存比较 |
+| \#include&nbsp;&lt;string.h&gt; | void&nbsp;\*memcpy(void&nbsp;\*dest,&nbsp;const&nbsp;void&nbsp;\*src,&nbsp;size_t&nbsp;n); | 内存拷贝 |
+| \#include&nbsp;&lt;string.h&gt; | void&nbsp;\*memset(void&nbsp;\*s,&nbsp;int&nbsp;c,&nbsp;size_t&nbsp;n); | 内存初始化 |
+| \#include&nbsp;&lt;stdlib.h&gt; | void&nbsp;\*realloc(void&nbsp;\*ptr,&nbsp;size_t&nbsp;size); | 重分配内存 |
+| \#include&nbsp;&lt;stdlib.h&gt; | void&nbsp;\*malloc(size_t&nbsp;size); | 动态分配内存块大小 |
+| \#include&nbsp;&lt;stdlib.h&gt; | void&nbsp;free(void&nbsp;\*ptr); | 释放ptr所指向的内存空间 |
+
+  **表9** IPC
+
+| 需要包含的头文件 | 接口名 | 描述 |
+| -------- | -------- | -------- |
+| \#include&nbsp;&lt;semaphore.h&gt; | int&nbsp;sem_timedwait(sem_t&nbsp;\*sem,&nbsp;const&nbsp;struct<br/>&nbsp;timespec&nbsp;\*abs_timeout); | 计时锁定信号量 |
+| \#include&nbsp;&lt;semaphore.h&gt; | int&nbsp;sem_destroy(sem_t&nbsp;\*sem); | 销毁指定的无名信号量 |
+| \#include&nbsp;&lt;semaphore.h&gt; | int&nbsp;sem_init(sem_t&nbsp;\*sem,&nbsp;int&nbsp;pshared<br/>,&nbsp;unsigned&nbsp;int&nbsp;value); | 创建并初始化一个无名信号量 |
+| \#include&nbsp;&lt;semaphore.h&gt; | int&nbsp;sem_post(sem_t&nbsp;\*sem); | 增加信号量计数 |
+| \#include&nbsp;&lt;semaphore.h&gt; | int&nbsp;sem_wait(sem_t&nbsp;\*sem); | 获取信号量 |
+| \#include&nbsp;&lt;mqueue.h&gt; | mqd_t&nbsp;mq_open(const&nbsp;char&nbsp;\*mqName,<br/>&nbsp;int&nbsp;openFlag,&nbsp;...); | 此API用于打开一个具有指定名称的已有消息队列或创建一个新的消息队列 |
+| \#include&nbsp;&lt;mqueue.h&gt; | int&nbsp;mq_close(mqd_t&nbsp;personal); | 此API用于关闭具有指定描述符的消息队列 |
+| \#include&nbsp;&lt;mqueue.h&gt; | int&nbsp;mq_unlink(const&nbsp;char&nbsp;\*mqName); | 此API用于删除具有指定名称的消息队列 |
+| \#include&nbsp;&lt;mqueue.h&gt; | int&nbsp;mq_send(mqd_t&nbsp;personal,&nbsp;const<br/>&nbsp;char&nbsp;\*msg,size_t&nbsp;msgLen,&nbsp;unsigned&nbsp;int&nbsp;msgPrio); | 此API用于将具有指定内容和长度的消息放入具有指定描述符的消息队列中 |
+| \#include&nbsp;&lt;mqueue.h&gt; | ssize_t&nbsp;mq_receive(mqd_t&nbsp;personal,&nbsp;char&nbsp;\*msg,<br/>size_t&nbsp;msgLen,&nbsp;unsigned&nbsp;int&nbsp;\*msgPrio); | 此API用于从具有指定描述符的消息队列中删除最老的消息,并将其放入msg_ptr所指向的缓冲区中 |
+| \#include&nbsp;&lt;mqueue.h&gt; | int&nbsp;mq_timedsend(mqd_t&nbsp;personal,&nbsp;const&nbsp;char<br/>\*msg,&nbsp;size_t&nbsp;msgLen,&nbsp;unsigned&nbsp;int&nbsp;msgPrio,&nbsp;c<br/>onst&nbsp;struct&nbsp;timespec&nbsp;\*absTimeout) | 此API用于在预定时间将具有指定内容和长度的消息放入具有描述符的消息队列中 |
+| \#include&nbsp;&lt;mqueue.h&gt; | ssize_t&nbsp;mq_timedreceive(mqd_t&nbsp;personal,&nbsp;char<br/>\*msg,&nbsp;size_t&nbsp;msgLen,&nbsp;unsigned&nbsp;int&nbsp;\*msgPrio,<br/>const&nbsp;struct&nbsp;timespec&nbsp;\*absTimeout); | 此API用于从具有指定描述符的消息队列消息中获取具有指定消息内容和长度的消息 |
+| \#include&nbsp;&lt;mqueue.h&gt; | int&nbsp;mq_setattr(mqd_t&nbsp;mqdes,&nbsp;const&nbsp;struct&nbsp;mq_<br/>attr&nbsp;\*__restrict&nbsp;newattr,&nbsp;struct&nbsp;mq_attr&nbsp;\*__restrict&nbsp;oldattr); | 设置描述符指定的消息队列属性 |
+| \#include&nbsp;&lt;libc.h&gt; | const&nbsp;char&nbsp;\*libc_get_version_string(void); | 获取libc版本字符串 |
+| \#include&nbsp;&lt;libc.h&gt; | int&nbsp;libc_get_version(void); | 获取libc版本号 |
+
+
+#### 注意事项
+
+常用错误码对照表:
+
+| 错误码 | 值 | 描述 | 含义 |
+| -------- | -------- | -------- | -------- |
+| ENOERR | 0 | Success | 成功 |
+| EPERM | 1 | Operation&nbsp;not&nbsp;permitted | 操作不允许 |
+| ENOENT | 2 | No&nbsp;such&nbsp;file&nbsp;or&nbsp;directory | 没有这样的文件或目录 |
+| ESRCH | 3 | No&nbsp;such&nbsp;process | 没有这样的进程(暂不支持) |
+| EINTR | 4 | Interrupted&nbsp;system&nbsp;call | 系统调用被中断 |
+| EIO | 5 | I/O&nbsp;error | I/O错误 |
+| ENXIO | 6 | No&nbsp;such&nbsp;device&nbsp;or&nbsp;address | 没有这样的设备或地址 |
+| E2BIG | 7 | Arg&nbsp;list&nbsp;too&nbsp;long | 参数列表太长 |
+| ENOEXEC | 8 | Exec&nbsp;format&nbsp;error | 执行格式错误 |
+| EBADF | 9 | Bad&nbsp;file&nbsp;number | 坏的文件描述符 |
+| ECHILD | 10 | No&nbsp;child&nbsp;processes | 没有子进程(暂不支持) |
+| EAGAIN | 11 | Try&nbsp;again | 资源暂时不可用 |
+| ENOMEM | 12 | Out&nbsp;of&nbsp;memory | 内存溢出 |
+| EACCES | 13 | Permission&nbsp;denied | 拒绝许可 |
+| EFAULT | 14 | Bad&nbsp;address | 错误的地址 |
+| ENOTBLK | 15 | Block&nbsp;device&nbsp;required | 块设备请求 |
+| EBUSY | 16 | Device&nbsp;or&nbsp;resource&nbsp;busy | 设备或资源忙 |
+| EEXIST | 17 | File&nbsp;exists | 文件存在 |
+| EXDEV | 18 | Cross-device&nbsp;link | 无效的交叉链接 |
+| ENODEV | 19 | No&nbsp;such&nbsp;device | 设备不存在 |
+| ENOTDIR | 20 | Not&nbsp;a&nbsp;directory | 不是一个目录 |
+| EISDIR | 21 | Is&nbsp;a&nbsp;directory | 是一个目录 |
+| EINVAL | 22 | Invalid&nbsp;argument | 无效的参数 |
+| ENFILE\* | 23 | File&nbsp;table&nbsp;overflow | 打开太多的文件系统 |
+| EMFILE | 24 | Too&nbsp;many&nbsp;open&nbsp;files | 打开的文件过多 |
+| EFBIG | 27 | File&nbsp;too&nbsp;large | 文件太大 |
+| ENOSPC | 28 | No&nbsp;space&nbsp;left&nbsp;on&nbsp;device | 设备上没有空间 |
+| ESPIPE | 29 | Illegal&nbsp;seek | 非法移位 |
+| EROFS | 30 | Read-only&nbsp;file&nbsp;system | 只读文件系统 |
+| EMLINK | 31 | Too&nbsp;many&nbsp;links | 太多的链接 |
+| EDOM | 33 | Math&nbsp;argument&nbsp;out&nbsp;of&nbsp;domain | 数值结果超出范围 |
+| ERANGE | 34 | Math&nbsp;result&nbsp;not&nbsp;representable | 数值结果不具代表性 |
+| EDEADLK | 35 | Resource&nbsp;deadlock&nbsp;would&nbsp;occur | 资源死锁错误 |
+| ENAMETOOLONG | 36 | Filename&nbsp;too&nbsp;long | 文件名太长 |
+| ENOLCK | 37 | No&nbsp;record&nbsp;locks&nbsp;available | 没有可用锁 |
+| ENOSYS | 38 | Function&nbsp;not&nbsp;implemented | 功能没有实现 |
+| ENOTEMPTY | 39 | Directory&nbsp;not&nbsp;empty | 目录不空 |
+| ELOOP | 40 | Too&nbsp;many&nbsp;symbolic&nbsp;links&nbsp;encountered | 符号链接层次太多 |
+| ENOMSG | 42 | No&nbsp;message&nbsp;of&nbsp;desired&nbsp;type | 没有期望类型的消息 |
+| EIDRM | 43 | Identifier&nbsp;removed | 标识符删除 |
+| ELNRNG | 48 | Link&nbsp;number&nbsp;out&nbsp;of&nbsp;range | 链接数超出范围 |
+| EBADR | 53 | Invalid&nbsp;request&nbsp;descriptor | 请求描述符无效 |
+| EBADRQC | 56 | Invalid&nbsp;request&nbsp;code | 无效的请求代码 |
+| ENOSTR | 60 | Device&nbsp;not&nbsp;a&nbsp;stream | 设备不是字符流 |
+| ENODATA | 61 | No&nbsp;data&nbsp;available | 无可用数据 |
+| ETIME | 62 | Timer&nbsp;expired | 计时器过期 |
+| EPROTO | 71 | Protocol&nbsp;error | 协议错误 |
+| EBADMSG | 74 | Not&nbsp;a&nbsp;data&nbsp;message | 非数据消息 |
+| EOVERFLOW | 75 | Value&nbsp;too&nbsp;large&nbsp;for&nbsp;defined&nbsp;data&nbsp;type | 值太大,对于定义数据类型 |
+| EMSGSIZE | 90 | Message&nbsp;too&nbsp;long | 消息太长 |
+
+
+#### 编程实例
+
+demo功能:
+
+创建一个线程并将父线程中的信息传递给子线程,在子线程中打印传递过来的信息和自身线程id值。
+
+
+```
+#include <stdio.h>
+#include <pthread.h>
+
+pthread_t ntid;
+
+void *ThreadFn(void *arg)
+{
+    pthread_t tid;
+    while(1) {
+        tid = pthread_self();
+        printf("\n++++++++++++++  %s  %s  tid = %d ++++++++++++++\n", (char*)arg, __FUNCTION__, tid);
+    }
+    return ((void *)0);
+}
+
+void DemoForTest()
+{
+    int err;
+    char* str = "Hello world";
+    err = pthread_create(&ntid, NULL, ThreadFn, (void*)str);
+    if(err != 0) {
+        printf("can't create thread\n");
+    }
+}
+
+```
+
+执行DemoForTest运行结果如下:
+
+
+```
+++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
+
+++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
+
+++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
+```
diff --git a/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md b/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md
index 8ee81f8ae61a503796f4710da3d7602c1fd3631f..16178ecadabea0217f49780744c8d272bc39d590 100644
--- a/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md
+++ b/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md
@@ -215,7 +215,7 @@ UINT32 ExampleQueue(VOID)
         printf("create queue failure, error: %x\n", ret);
     }
 
-    printf("create the queue succes.\n");
+    printf("create the queue success.\n");
     LOS_TaskUnlock();
     return ret;
 }
diff --git a/zh-cn/device-dev/kernel/kernel-mini-basic-memory.md b/zh-cn/device-dev/kernel/kernel-mini-basic-memory.md
index afc518c52ce6037e598cad7b54a883c0f8c7e6eb..5071ddf325680c7d939907b5bb2fd8d8f1368e77 100644
--- a/zh-cn/device-dev/kernel/kernel-mini-basic-memory.md
+++ b/zh-cn/device-dev/kernel/kernel-mini-basic-memory.md
@@ -1,9 +1,322 @@
 # 内存管理
+## 基本概念
 
 
+内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内存的初始化、分配以及释放。
 
-- **[基本概念](kernel-mini-basic-memory-basic.md)**
 
-- **[静态内存](kernel-mini-basic-memory-static.md)**
+在系统运行过程中,内存管理模块通过对内存的申请/释放来管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。
 
-- **[动态内存](kernel-mini-basic-memory-dynamic.md)**
\ No newline at end of file
+
+OpenHarmony LiteOS-M的内存管理分为静态内存管理和动态内存管理,提供内存初始化、分配、释放等功能。
+
+
+- 动态内存:在动态内存池中分配用户指定大小的内存块。
+  - 优点:按需分配。
+  - 缺点:内存池中可能出现碎片。
+
+- 静态内存:在静态内存池中分配用户初始化时预设(固定)大小的内存块。
+  - 优点:分配和释放效率高,静态内存池中无碎片。
+  - 缺点:只能申请到初始化预设大小的内存块,不能按需申请。
+## 静态内存
+
+
+### 运行机制
+
+静态内存实质上是一个静态数组,静态内存池内的块大小在初始化时设定,初始化后块大小不可变更。
+
+静态内存池由一个控制块LOS_MEMBOX_INFO和若干相同大小的内存块LOS_MEMBOX_NODE构成。控制块位于内存池头部,用于内存块管理,包含内存块大小uwBlkSize,内存块数量uwBlkNum,已分配使用的内存块数量uwBlkCnt和空闲内存块链表stFreeList。内存块的申请和释放以块大小为粒度,每个内存块包含指向下一个内存块的指针pstNext。
+
+  **图1** 静态内存示意图
+  ![zh-cn_image_0000001199352039](figures/zh-cn_image_0000001199352039.png)
+
+
+### 开发指导
+
+
+#### 使用场景
+
+当用户需要使用固定长度的内存时,可以通过静态内存分配的方式获取内存,一旦使用完毕,通过静态内存释放函数归还所占用内存,使之可以重复使用。
+
+
+#### 接口说明
+
+OpenHarmony LiteOS-M的静态内存管理主要为用户提供以下功能,接口详细信息可以查看API参考。
+
+  **表1** 静态内存模块接口
+
+| 功能分类 | 接口名 | 
+| -------- | -------- |
+| 初始化静态内存池 | LOS_MemboxInit:初始化一个静态内存池,根据入参设定其起始地址、总大小及每个内存块大小。 | 
+| 清除静态内存块内容 | LOS_MemboxClr:清零从静态内存池中申请的静态内存块的内容。 | 
+| 申请、释放静态内存 | -&nbsp;LOS_MemboxAlloc:从指定的静态内存池中申请一块静态内存块。<br/>-&nbsp;LOS_MemboxFree:释放从静态内存池中申请的一块静态内存块。 | 
+| 获取、打印静态内存池信息 | -&nbsp;LOS_MemboxStatisticsGet:获取指定静态内存池的信息,包括内存池中总内存块数量、已经分配出去的内存块数量、每个内存块的大小。<br/>-&nbsp;LOS_ShowBox:打印指定静态内存池所有节点信息(打印等级是LOS_INFO_LEVEL),包括内存池起始地址、内存块大小、总内存块数量、每个空闲内存块的起始地址、所有内存块的起始地址。 | 
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 初始化后的内存池的内存块数量,不等于总大小除于内存块大小,因为内存池的控制块和每个内存块的控制头,都存在内存开销,设置总大小时,需要将这些因素考虑进去。
+
+
+#### 开发流程
+
+本节介绍使用静态内存的典型场景开发流程。
+
+1. 规划一片内存区域作为静态内存池。
+
+2. 调用LOS_MemboxInit初始化静态内存池。
+   初始化会将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。
+
+3. 调用LOS_MemboxAlloc接口分配静态内存。
+   系统将会从空闲链表中获取第一个空闲块,并返回该内存块的起始地址。
+
+4. 调用LOS_MemboxClr接口。
+   将入参地址对应的内存块清零。
+
+5. 调用LOS_MemboxFree接口。
+   将该内存块加入空闲链表。
+
+
+#### 编程实例
+
+本实例执行以下步骤:
+
+1. 初始化一个静态内存池。
+
+2. 从静态内存池中申请一块静态内存。
+
+3. 在内存块存放一个数据。
+
+4. 打印出内存块中的数据。
+
+5. 清除内存块中的数据。
+
+6. 释放该内存块。
+   示例代码如下:
+
+  
+```
+#include "los_membox.h"
+
+VOID Example_StaticMem(VOID)
+{
+    UINT32 *mem = NULL;
+    UINT32 blkSize = 10;
+    UINT32 boxSize = 100;
+    UINT32 boxMem[1000];
+    UINT32 ret;
+
+    /*内存池初始化*/
+    ret = LOS_MemboxInit(&boxMem[0], boxSize, blkSize);
+    if(ret != LOS_OK) {
+        printf("Membox init failed!\n");
+        return;
+    } else {
+        printf("Membox init success!\n");
+    }
+
+    /*申请内存块*/
+    mem = (UINT32 *)LOS_MemboxAlloc(boxMem);
+    if (NULL == mem) {
+        printf("Mem alloc failed!\n");
+        return;
+    }
+    printf("Mem alloc success!\n");
+
+    /*赋值*/
+    *mem = 828;
+    printf("*mem = %d\n", *mem);
+
+    /*清除内存内容*/
+    LOS_MemboxClr(boxMem, mem);
+    printf("Mem clear success \n *mem = %d\n", *mem);
+
+    /*释放内存*/
+    ret = LOS_MemboxFree(boxMem, mem);
+    if (LOS_OK == ret) {
+        printf("Mem free success!\n");
+    } else {
+        printf("Mem free failed!\n");
+    }
+
+    return;
+}
+```
+
+
+#### 结果验证
+
+输出结果如下:
+
+  
+```
+Membox init success!
+Mem alloc success!
+*mem = 828
+Mem clear success   
+*mem = 0
+Mem free success!
+```
+## 动态内存
+
+
+### 运行机制
+
+动态内存管理,即在内存资源充足的情况下,根据用户需求,从系统配置的一块比较大的连续内存(内存池,也是堆内存)中分配任意大小的内存块。当用户不需要该内存块时,又可以释放回系统供下一次使用。与静态内存相比,动态内存管理的优点是按需分配,缺点是内存池中容易出现碎片。
+
+OpenHarmony LiteOS-M动态内存在TLSF算法的基础上,对区间的划分进行了优化,获得更优的性能,降低了碎片率。动态内存核心算法框图如下:
+
+  **图1** 轻量系统动态内存核心算法
+  ![zh-cn_image_0000001199352445](figures/zh-cn_image_0000001199352445.png)
+
+根据空闲内存块的大小,使用多个空闲链表来管理。根据内存空闲块大小分为两个部分:[4, 127]和[2<sup>7</sup>, 2<sup>31</sup>],如上图size class所示:
+
+1. 对[4,127]区间的内存进行等分,如上图下半部分所示,分为31个小区间,每个小区间对应内存块大小为4字节的倍数。每个小区间对应一个空闲内存链表和用于标记对应空闲内存链表是否为空的一个比特位,值为1时,空闲链表非空。[4,127]区间的31个小区间内存对应31个比特位进行标记链表是否为空。
+
+2. 大于127字节的空闲内存块,按照2的次幂区间大小进行空闲链表管理。总共分为24个小区间,每个小区间又等分为8个二级小区间,见上图上半部分的Size Class和Size SubClass部分。每个二级小区间对应一个空闲链表和用于标记对应空闲内存链表是否为空的一个比特位。总共24\*8=192个二级小区间,对应192个空闲链表和192个比特位进行标记链表是否为空。
+
+例如,当有40字节的空闲内存需要插入空闲链表时,对应小区间[40,43],第10个空闲链表,位图标记的第10比特位。把40字节的空闲内存挂载第10个空闲链表上,并判断是否需要更新位图标记。当需要申请40字节的内存时,根据位图标记获取存在满足申请大小的内存块的空闲链表,从空闲链表上获取空闲内存节点。如果分配的节点大于需要申请的内存大小,进行分割节点操作,剩余的节点重新挂载到相应的空闲链表上。当有580字节的空闲内存需要插入空闲链表时,对应二级小区间[2^9,2^9+2^6],第31+2\*8=47个空闲链表,并使用位图的第47个比特位来标记链表是否为空。把580字节的空闲内存挂载第47个空闲链表上,并判断是否需要更新位图标记。当需要申请580字节的内存时,根据位图标记获取存在满足申请大小的内存块的空闲链表,从空闲链表上获取空闲内存节点。如果分配的节点大于需要申请的内存大小,进行分割节点操作,剩余的节点重新挂载到相应的空闲链表上。如果对应的空闲链表为空,则向更大的内存区间去查询是否有满足条件的空闲链表,实际计算时,会一次性查找到满足申请大小的空闲链表。
+
+内存管理结构如下图所示:
+
+  **图2** 轻量系统动态内存管理结构图
+  ![zh-cn_image_0000001153313284](figures/zh-cn_image_0000001153313284.png)
+
+- 内存池池头部分
+  内存池池头部分包含内存池信息、位图标记数组和空闲链表数组。内存池信息包含内存池起始地址及堆区域总大小,内存池属性。位图标记数组有7个32位无符号整数组成,每个比特位标记对应的空闲链表是否挂载空闲内存块节点。空闲内存链表包含223个空闲内存头节点信息,每个空闲内存头节点信息维护内存节点头和空闲链表中的前驱、后继空闲内存节点。
+
+- 内存池节点部分
+  包含3种类型节点:未使用空闲内存节点,已使用内存节点和尾节点。每个内存节点维护一个前序指针,指向内存池中上一个内存节点,还维护内存节点的大小和使用标记。空闲内存节点和已使用内存节点后面的内存区域是数据域,尾节点没有数据域。
+
+一些芯片片内RAM大小无法满足要求,需要使用片外物理内存进行扩充。对于这样的多段非连续性内存, LiteOS-M内核支持把多个非连续性内存逻辑上合一,用户不感知底层的多段非连续性内存区域。 LiteOS-M内核内存模块把不连续的内存区域作为空闲内存结点插入到空闲内存节点链表,把不同内存区域间的不连续部分标记为虚拟的已使用内存节点,从逻辑上把多个非连续性内存区域实现为一个统一的内存池。下面通过示意图说明下多段非连续性内存的运行机制:
+
+  **图3** 非连续性内存合一示意图
+  ![zh-cn_image_0000001198253551](figures/zh-cn_image_0000001198253551.png)
+
+结合上述示意图,非连续性内存合并为一个统一的内存池的步骤如下:
+
+1. 把多段非连续性内存区域的第一块内存区域通过调用LOS_MemInit接口进行初始化。
+
+2. 获取下一个内存区域的开始地址和长度,计算该内存区域和上一块内存区域的间隔大小gapSize。
+
+3. 把内存区域间隔部分视为虚拟的已使用节点,使用上一个内存区域的尾节点,设置其大小为gapSize+ OS_MEM_NODE_HEAD_SIZE。
+
+4. 把当前内存区域划分为一个空闲内存节点和一个尾节点,把空闲内存节点插入到空闲链表,并设置各个节点的前后链接关系。
+
+5. 如果有更多的非连续内存区域,重复上述步骤2-4。
+
+
+### 开发指导
+
+
+#### 使用场景
+
+动态内存管理的主要工作是动态分配并管理用户申请到的内存区间。动态内存管理主要用于用户需要使用大小不等的内存块的场景,当用户需要使用内存时,可以通过操作系统的动态内存申请函数索取指定大小的内存块,一旦使用完毕,通过动态内存释放函数归还所占用内存,使之可以重复使用。
+
+
+#### 接口说明
+
+OpenHarmony LiteOS-M的动态内存管理主要为用户提供以下功能,接口详细信息可以查看API参考。
+
+  **表1** 动态内存模块接口
+
+| 功能分类 | 接口描述 | 
+| -------- | -------- |
+| 初始化和删除内存池 | -&nbsp;LOS_MemInit:初始化一块指定的动态内存池,大小为size。<br/>-&nbsp;LOS_MemDeInit:删除指定内存池,仅打开LOSCFG_MEM_MUL_POOL时有效。 | 
+| 申请、释放动态内存 | -&nbsp;LOS_MemAlloc:从指定动态内存池中申请size长度的内存。<br/>-&nbsp;LOS_MemFree:释放从指定动态内存中申请的内存。<br/>-&nbsp;LOS_MemRealloc:释放从指定动态内存中申请的内存。 | 
+| 获取内存池信息 | -&nbsp;LOS_MemPoolSizeGet:获取指定动态内存池的总大小。<br/>-&nbsp;LOS_MemTotalUsedGet:获取指定动态内存池的总使用量大小。<br/>-&nbsp;LOS_MemInfoGet:获取指定内存池的内存结构信息,包括空闲内存大小、已使用内存大小、空闲内存块数量、已使用的内存块数量、最大的空闲内存块大小。<br/>-&nbsp;LOS_MemPoolList:打印系统中已初始化的所有内存池,包括内存池的起始地址、内存池大小、空闲内存总大小、已使用内存总大小、最大的空闲内存块大小、空闲内存块数量、已使用的内存块数量。仅打开LOSCFG_MEM_MUL_POOL时有效。 | 
+| 获取内存块信息 | -&nbsp;LOS_MemFreeNodeShow:打印指定内存池的空闲内存块的大小及数量。<br/>-&nbsp;LOS_MemUsedNodeShow:打印指定内存池的已使用内存块的大小及数量。 | 
+| 检查指定内存池的完整性 | LOS_MemIntegrityCheck:对指定内存池做完整性检查,仅打开LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK时有效。 | 
+| 增加非连续性内存区域 | LOS_MemRegionsAdd:支持多段非连续性内存区域,把非连续性内存区域逻辑上整合为一个统一的内存池。仅打开LOSCFG_MEM_MUL_REGIONS时有效。如果内存池指针参数pool为空,则使用多段内存的第一个初始化为内存池,其他内存区域,作为空闲节点插入;如果内存池指针参数pool不为空,则把多段内存作为空闲节点,插入到指定的内存池。 | 
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> - 由于动态内存管理需要管理控制块数据结构来管理内存,这些数据结构会额外消耗内存,故实际用户可使用内存总量小于配置项OS_SYS_MEM_SIZE的大小。
+> 
+> - 对齐分配内存接口LOS_MemAllocAlign/LOS_MemMallocAlign因为要进行地址对齐,可能会额外消耗部分内存,故存在一些遗失内存,当系统释放该对齐内存时,同时回收由于对齐导致的遗失内存。
+> 
+> - 非连续性内存区域接口LOS_MemRegionsAdd的LosMemRegion数组参数传入的非连续性内存区域需要按各个内存区域的内存开始地址升序,且内存区域不能重叠。
+
+
+#### 开发流程
+
+本节介绍使用动态内存的典型场景开发流程。
+
+1. 初始化LOS_MemInit。
+   初始一个内存池后生成一个内存池控制头、尾节点EndNode,剩余的内存被标记为FreeNode内存节点。注:EndNode作为内存池末尾的节点,size为0。
+
+1. 申请任意大小的动态内存LOS_MemAlloc。
+   判断动态内存池中是否存在大于申请量大小的空闲内存块空间,若存在,则划出一块内存块,以指针形式返回,若不存在,返回NULL。如果空闲内存块大于申请量,需要对内存块进行分割,剩余的部分作为空闲内存块挂载到空闲内存链表上。
+
+1. 释放动态内存LOS_MemFree。
+   回收内存块,供下一次使用。调用LOS_MemFree释放内存块,则会回收内存块,并且将其标记为FreeNode。在回收内存块时,相邻的FreeNode会自动合并。
+
+
+#### 编程实例
+
+本实例执行以下步骤:
+
+1. 初始化一个动态内存池。
+
+2. 从动态内存池中申请一个内存块。
+
+3. 在内存块中存放一个数据。
+
+4. 打印出内存块中的数据。
+
+5. 释放该内存块。
+
+示例代码如下:
+
+  
+```
+#include "los_memory.h"
+#define TEST_POOL_SIZE (2*1024)
+__attribute__((aligned(4))) UINT8 g_testPool[TEST_POOL_SIZE];
+VOID Example_DynMem(VOID)
+{
+    UINT32 *mem = NULL;
+    UINT32 ret;
+
+    /*初始化内存池*/
+    ret = LOS_MemInit(g_testPool, TEST_POOL_SIZE);
+    if (LOS_OK  == ret) {
+        printf("Mem init success!\n");
+    } else {
+        printf("Mem init failed!\n");
+        return;
+    }
+
+    /*分配内存*/
+    mem = (UINT32 *)LOS_MemAlloc(g_testPool, 4);
+    if (NULL == mem) {
+        printf("Mem alloc failed!\n");
+        return;
+    }
+    printf("Mem alloc success!\n");
+
+    /*赋值*/
+    *mem = 828;
+    printf("*mem = %d\n", *mem);
+
+    /*释放内存*/
+    ret = LOS_MemFree(g_testPool, mem);
+    if (LOS_OK == ret) {
+        printf("Mem free success!\n");
+    } else {
+        printf("Mem free failed!\n");
+    }
+
+    return;
+}
+```
+
+
+#### 结果验证
+
+输出结果如下:
+
+  
+```
+Mem init success!
+Mem alloc success!
+*mem = 828
+Mem free success!
+```
diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md
index 65e95f800c497f322f28bc990c0665978e7580bf..e0df347da27479ec128062a02c44d458cf6cd9b7 100644
--- a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md
+++ b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md
@@ -40,7 +40,292 @@ M核的文件系统子系统当前支持的文件系统有FATFS与LittleFS。同
 | umount2 | 分区卸载,可通过MNT_FORCE参数进行强制卸载 | 支持 | 不支持 | 
 | statfs | 获取分区信息 | 支持 | 不支持 | 
 
+## FAT
 
-- **[FAT](kernel-mini-extend-file-fat.md)**
 
-- **[LittleFS](kernel-mini-extend-file-lit.md)**
\ No newline at end of file
+### 基本概念
+
+FAT文件系统是File Allocation Table(文件配置表)的简称,主要包括DBR区、FAT区、DATA区三个区域。其中,FAT区各个表项记录存储设备中对应簇的信息,包括簇是否被使用、文件下一个簇的编号、是否文件结尾等。FAT文件系统有FAT12、FAT16、FAT32等多种格式,其中,12、16、32表示对应格式中FAT表项的比特数。FAT文件系统支持多种介质,特别在可移动存储介质(U盘、SD卡、移动硬盘等)上广泛使用,使嵌入式设备和Windows、Linux等桌面系统保持很好的兼容性,方便用户管理操作文件。
+
+OpenHarmony内核支持FAT12、FAT16与FAT32三种格式的FAT文件系统,具有代码量小、资源占用小、可裁切、支持多种物理介质等特性,并且与Windows、Linux等系统保持兼容,支持多设备、多分区识别等功能。OpenHarmony内核支持硬盘多分区,可以在主分区以及逻辑分区上创建FAT文件系统。
+
+
+### 开发指导
+
+
+#### 驱动适配
+
+FAT文件系统的使用需要底层MMC相关驱动的支持。在一个带MMC存储设备的板子上运行FATFS,需要:
+
+1、适配板端EMMC驱动,实现disk_status、disk_initialize、disk_read、disk_write、disk_ioctl接口;
+
+2、新增fs_config.h文件,配置FS_MAX_SS(存储设备最大sector大小)、FF_VOLUME_STRS(分区名)等信息,例如:
+
+  
+```
+#define FF_VOLUME_STRS     "system", "inner", "update", "user"
+#define FS_MAX_SS          512
+#define FAT_MAX_OPEN_FILES 50
+```
+
+
+#### 开发流程
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> - FATFS文件与目录操作:
+>   - 单个文件大小不超过4G。
+>   - 支持同时打开的文件数最大为FAT_MAX_OPEN_FILES,文件夹数最大为FAT_MAX_OPEN_DIRS。
+>   - 暂不支持根目录管理,文件/目录名均以分区名开头,例如“user/testfile”就是在“user”分区下名为“testfile”的文件或目录。
+>   - 若需要同时多次打开同一文件,必须全部使用只读方式(O_RDONLY)。以可写方式(O_RDWR、O_WRONLY等)只能打开一次。
+>   - 读写指针未分离,例如以O_APPEND(追加写)方式打开文件后,读指针也在文件尾,从头读文件前需要用户手动置位。
+>   - 暂不支持文件与目录的权限管理。
+>   - stat及fstat接口暂不支持查询修改时间、创建时间和最后访问时间。微软FAT协议不支持1980年以前的时间。
+> 
+> - FATFS分区挂载与卸载:
+>   - 支持以只读属性挂载分区。当mount函数的入参为MS_RDONLY时,所有的带有写入的接口,如write、mkdir、unlink,以及非O_RDONLY属性的open,将均被拒绝。
+>   - mount支持通过MS_REMOUNT标记修改已挂载分区的权限。
+>   - 在umount操作前,需确保所有目录及文件全部关闭。
+>   - umount2支持通过MNT_FORCE参数强制关闭所有文件与文件夹并umount,但可能造成数据丢失,请谨慎使用。
+> 
+> - FATFS支持重新划分存储设备分区、格式化分区,对应接口为fatfs_fdisk与fatfs_format:
+>   - 在fatfs_format操作之前,若需要格式化的分区已挂载,需确保分区中的所有目录及文件全部关闭,并且分区umount。
+>   - 在fatfs_fdisk操作前,需要该设备中的所有分区均已umount。
+>   - fatfs_fdisk与fatfs_format会造成设备数据丢失,请谨慎使用。
+
+
+### 编程实例
+
+
+#### 实例描述
+
+本实例实现以下功能:
+
+1. 创建目录“user/test”
+
+2. 在“user/test”目录下创建文件“file.txt”
+
+3. 在文件起始位置写入“Hello OpenHarmony!”
+
+4. 将文件内容刷入设备中
+
+5. 设置偏移到文件起始位置
+
+6. 读取文件内容
+
+7. 关闭文件
+
+8. 删除文件
+
+9. 删除目录
+
+
+#### 示例代码
+
+ **前提条件:** 
+
+ 系统已将MMC设备分区挂载到user目录
+
+ **代码实现如下:** 
+  
+  ```
+  #include <stdio.h>
+  #include <string.h>
+  #include "sys/stat.h"
+  #include "fcntl.h"
+  #include "unistd.h"
+
+  #define LOS_OK 0
+  #define LOS_NOK -1
+
+  int FatfsTest(void) 
+  {     
+    int ret;
+    int fd = -1;
+    ssize_t len;
+    off_t off;
+    char dirName[20] = "user/test";
+    char fileName[20] = "user/test/file.txt";
+    char writeBuf[20] = "Hello OpenHarmony!";
+    char readBuf[20] = {0};
+
+    /* 创建目录“user/test” */
+    ret = mkdir(dirName, 0777);
+    if (ret != LOS_OK) {
+        printf("mkdir failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 创建可读写文件"user/test/file.txt" */
+    fd = open(fileName, O_RDWR | O_CREAT, 0777);
+    if (fd < 0) {
+        printf("open file failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 将writeBuf中的内容写入文件 */
+    len = write(fd, writeBuf, strlen(writeBuf));
+    if (len != strlen(writeBuf)) {
+        printf("write file failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 将文件内容刷入存储设备中 */
+    ret = fsync(fd);
+    if (ret != LOS_OK) {
+        printf("fsync failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 将读写指针偏移至文件头 */
+    off = lseek(fd, 0, SEEK_SET);
+    if (off != 0) {
+        printf("lseek failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 将文件内容读出至readBuf中,读取长度为readBuf大小 */
+    len = read(fd, readBuf, sizeof(readBuf));
+    if (len != strlen(writeBuf)) {
+        printf("read file failed.\n");
+        return LOS_NOK;
+    }
+    printf("%s\n", readBuf);
+
+    /* 关闭文件 */
+    ret = close(fd);
+    if (ret != LOS_OK) {
+        printf("close failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 删除文件"user/test/file.txt" */
+    ret = unlink(fileName);
+    if (ret != LOS_OK) {
+        printf("unlink failed.\n");
+        return LOS_NOK;
+    }
+
+    /* 删除目录“user/test” */
+    ret = rmdir(dirName);
+    if (ret != LOS_OK) {
+        printf("rmdir failed.\n");
+        return LOS_NOK;
+    }
+
+    return LOS_OK;
+    }
+  ```
+
+
+#### 结果验证
+
+编译运行得到的结果为:
+
+  
+```
+Hello OpenHarmony!
+```
+## LittleFS
+
+
+### 基本概念
+
+LittleFS是一个小型的Flash文件系统,它结合日志结构(log-structured)文件系统和COW(copy-on-write)文件系统的思想,以日志结构存储元数据,以COW结构存储数据。这种特殊的存储方式,使LittleFS具有强大的掉电恢复能力(power-loss resilience)。分配COW数据块时LittleFS采用了名为统计损耗均衡的动态损耗均衡算法,使Flash设备的寿命得到有效保障。同时LittleFS针对资源紧缺的小型设备进行设计,具有极其有限的ROM和RAM占用,并且所有RAM的使用都通过一个可配置的固定大小缓冲区进行分配,不会随文件系统的扩大占据更多的系统资源。
+
+当在一个资源非常紧缺的小型设备上,寻找一个具有掉电恢复能力并支持损耗均衡的Flash文件系统时,LittleFS是一个比较好的选择。
+
+
+### 开发指导
+
+移植LittleFS到新硬件设备上,需要申明lfs_config:
+
+  
+```
+const struct lfs_config cfg = {
+    // block device operations
+    .read  = user_provided_block_device_read,
+    .prog  = user_provided_block_device_prog,
+    .erase = user_provided_block_device_erase,
+    .sync  = user_provided_block_device_sync,
+
+    // block device configuration
+    .read_size = 16,
+    .prog_size = 16,
+    .block_size = 4096,
+    .block_count = 128,
+    .cache_size = 16,
+    .lookahead_size = 16,
+    .block_cycles = 500,
+};
+```
+
+其中.read,.prog,.erase,.sync分别对应该硬件平台上的底层的读写\擦除\同步等接口。
+
+read_size 每次读取的字节数,可以比物理读单元大以改善性能,这个数值决定了读缓存的大小,但值太大会带来更多的内存消耗。
+
+prog_size 每次写入的字节数,可以比物理写单元大以改善性能,这个数值决定了写缓存的大小,必须是read_size的整数倍,但值太大会带来更多的内存消耗。
+
+block_size 每个擦除块的字节数,可以比物理擦除单元大,但此数值应尽可能小因为每个文件至少会占用一个块。必须是prog_size的整数倍。
+
+block_count 可以被擦除的块数量,这取决于块设备的容量及擦除块的大小。
+
+
+### 示例代码
+
+  代码实现如下:
+  
+```
+#include "lfs.h"
+#include "stdio.h"
+lfs_t lfs;
+lfs_file_t file;
+const struct lfs_config cfg = {
+    // block device operations
+    .read  = user_provided_block_device_read,
+    .prog  = user_provided_block_device_prog,
+    .erase = user_provided_block_device_erase,
+    .sync  = user_provided_block_device_sync,
+    // block device configuration
+    .read_size = 16,
+    .prog_size = 16,
+    .block_size = 4096,
+    .block_count = 128,
+    .cache_size = 16,
+    .lookahead_size = 16,
+    .block_cycles = 500,
+};
+int main(void) {
+    // mount the filesystem
+    int err = lfs_mount(&lfs, &cfg);
+    // reformat if we can't mount the filesystem
+    // this should only happen on the first boot
+    if (err) {
+        lfs_format(&lfs, &cfg);
+        lfs_mount(&lfs, &cfg);
+    }
+    // read current count
+    uint32_t boot_count = 0;
+    lfs_file_open(&lfs, &file, "boot_count", LFS_O_RDWR | LFS_O_CREAT);
+    lfs_file_read(&lfs, &file, &boot_count, sizeof(boot_count));
+    // update boot count
+    boot_count += 1;
+    lfs_file_rewind(&lfs, &file);
+    lfs_file_write(&lfs, &file, &boot_count, sizeof(boot_count));
+    // remember the storage is not updated until the file is closed successfully
+    lfs_file_close(&lfs, &file);
+    // release any resources we were using
+    lfs_unmount(&lfs);
+    // print the boot count
+    printf("boot_count: %d\n", boot_count);
+}
+```
+
+
+ **结果验证** 
+
+首次编译运行得到的结果为:
+
+  
+```
+Say hello 1 times.
+```
\ No newline at end of file
diff --git a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md
index 625990100c08618f1beef05b71bf496e67f2d42a..fab4a6266dabae8db627379f1ffb8073961e6d37 100644
--- a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md
+++ b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md
@@ -4,8 +4,336 @@
 内存调测方法旨在辅助定位动态内存相关问题,提供了基础的动态内存池信息统计手段,向用户呈现内存池水线、碎片率等信息;提供了内存泄漏检测手段,方便用户准确定位存在内存泄漏的代码行,也可以辅助分析系统各个模块内存的使用情况;提供了踩内存检测手段,可以辅助定位越界踩内存的场景。
 
 
-- **[内存信息统计](kernel-mini-memory-debug-mes.md)**
+## 内存信息统计
 
-- **[内存泄漏检测](kernel-mini-memory-debug-det.md)**
 
-- **[踩内存检测](kernel-mini-memory-debug-cet.md)**
\ No newline at end of file
+### 基础概念
+
+内存信息包括内存池大小、内存使用量、剩余内存大小、最大空闲内存、内存水线、内存节点数统计、碎片率等。
+
+- 内存水线:即内存池的最大使用量,每次申请和释放时,都会更新水线值,实际业务可根据该值,优化内存池大小;
+
+- 碎片率:衡量内存池的碎片化程度,碎片率高表现为内存池剩余内存很多,但是最大空闲内存块很小,可以用公式(fragment=100-100\*最大空闲内存块大小/剩余内存大小)来度量;
+
+- 其他参数:通过调用接口(详见[内存管理](../kernel/kernel-mini-basic-memory-basic.md)章节接口说明),扫描内存池的节点信息,统计出相关信息。
+
+
+### 功能配置
+
+LOSCFG_MEM_WATERLINE:开关宏,默认打开;若关闭这个功能,在target_config.h中将这个宏定义为0。如需获取内存水线,需要打开该配置。
+
+
+### 开发指导
+
+
+#### 开发流程
+
+关键结构体介绍:
+
+  
+```
+typedef struct {
+    UINT32 totalUsedSize;       // 内存池的内存使用量
+    UINT32 totalFreeSize;       // 内存池的剩余内存大小
+    UINT32 maxFreeNodeSize;     // 内存池的最大空闲内存块大小
+    UINT32 usedNodeNum;         // 内存池的非空闲内存块个数
+    UINT32 freeNodeNum;         // 内存池的空闲内存块个数
+#if (LOSCFG_MEM_WATERLINE == 1) // 默认打开,如需关闭,在target_config.h中将该宏设置为0
+    UINT32 usageWaterLine;      // 内存池的水线值
+#endif
+} LOS_MEM_POOL_STATUS;
+```
+
+- 内存水线获取:调用LOS_MemInfoGet接口,第1个参数是内存池首地址,第2个参数是LOS_MEM_POOL_STATUS类型的句柄,其中字段usageWaterLine即水线值。
+
+- 内存碎片率计算:同样调用LOS_MemInfoGet接口,可以获取内存池的剩余内存大小和最大空闲内存块大小,然后根据公式(fragment=100-100\*最大空闲内存块大小/剩余内存大小)得出此时的动态内存池碎片率。
+
+
+#### 编程实例
+
+本实例实现如下功能:
+
+1.创建一个监控任务,用于获取内存池的信息;
+
+2.调用LOS_MemInfoGet接口,获取内存池的基础信息;
+
+3.利用公式算出使用率及碎片率。
+
+
+#### 示例代码
+
+  代码实现如下:
+  
+```
+#include <stdio.h>
+#include <string.h>
+#include "los_task.h"
+#include "los_memory.h"
+#include "los_config.h"
+
+
+void MemInfoTaskFunc(void)
+{
+    LOS_MEM_POOL_STATUS poolStatus = {0};
+
+  /* pool为要统计信息的内存地址,此处以OS_SYS_MEM_ADDR为例 */
+    void *pool = OS_SYS_MEM_ADDR;
+    LOS_MemInfoGet(pool, &poolStatus);
+    /* 算出内存池当前的碎片率百分比 */
+    unsigned char fragment = 100 - poolStatus.maxFreeNodeSize * 100 / poolStatus.totalFreeSize;
+    /* 算出内存池当前的使用率百分比 */
+    unsigned char usage = LOS_MemTotalUsedGet(pool) * 100 / LOS_MemPoolSizeGet(pool);
+    printf("usage = %d, fragment = %d, maxFreeSize = %d, totalFreeSize = %d, waterLine = %d\n", usage, fragment, poolStatus.maxFreeNodeSize, 
+           poolStatus.totalFreeSize, poolStatus.usageWaterLine);
+}
+
+int MemTest(void)
+{
+    unsigned int ret;
+    unsigned int taskID;
+    TSK_INIT_PARAM_S taskStatus = {0};
+    taskStatus.pfnTaskEntry = (TSK_ENTRY_FUNC)MemInfoTaskFunc;
+    taskStatus.uwStackSize  = 0x1000;
+    taskStatus.pcName       = "memInfo";
+    taskStatus.usTaskPrio   = 10;
+    ret = LOS_TaskCreate(&taskID, &taskStatus);
+    if (ret != LOS_OK) {
+        printf("task create failed\n");
+        return -1;
+    }
+    return 0;
+}
+```
+
+
+#### 结果验证
+
+编译运行输出的结果如下:
+
+  
+```
+usage = 22, fragment = 3, maxFreeSize = 49056, totalFreeSize = 50132, waterLine = 1414
+```
+## 内存泄漏检测
+
+
+### 基础概念
+
+内存泄漏检测机制作为内核的可选功能,用于辅助定位动态内存泄漏问题。开启该功能,动态内存机制会自动记录申请内存时的函数调用关系(下文简称LR)。如果出现泄漏,就可以利用这些记录的信息,找到内存申请的地方,方便进一步确认。
+
+
+### 功能配置
+
+1. LOSCFG_MEM_LEAKCHECK:开关宏,默认关闭;若打开这个功能,在target_config.h中将这个宏定义为1。
+
+2. LOSCFG_MEM_RECORD_LR_CNT:记录的LR层数,默认3层;每层LR消耗sizeof(void \*)字节数的内存。
+
+3. LOSCFG_MEM_OMIT_LR_CNT:忽略的LR层数,默认4层,即从调用LOS_MemAlloc的函数开始记录,可根据实际情况调整。为啥需要这个配置?有3点原因如下:
+   - LOS_MemAlloc接口内部也有函数调用;
+   - 外部可能对LOS_MemAlloc接口有封装;
+   - LOSCFG_MEM_RECORD_LR_CNT 配置的LR层数有限;
+
+正确配置这个宏,将无效的LR层数忽略,就可以记录有效的LR层数,节省内存消耗。
+
+
+### 开发指导
+
+
+#### 开发流程
+
+该调测功能可以分析关键的代码逻辑中是否存在内存泄漏。开启这个功能,每次申请内存时,会记录LR信息。在需要检测的代码段前后,调用LOS_MemUsedNodeShow接口,每次都会打印指定内存池已使用的全部节点信息,对比前后两次的节点信息,新增的节点信息就是疑似泄漏的内存节点。通过LR,可以找到具体申请的代码位置,进一步确认是否泄漏。
+
+调用LOS_MemUsedNodeShow接口输出的节点信息格式如下:每1行为一个节点信息;第1列为节点地址,可以根据这个地址,使用GDB等手段查看节点完整信息;第2列为节点的大小,等于节点头大小+数据域大小;第3~5列为函数调用关系LR地址,可以根据这个值,结合汇编文件,查看该节点具体申请的位置。
+
+  
+```
+node        size   LR[0]      LR[1]       LR[2]  
+0x10017320: 0x528 0x9b004eba  0x9b004f60  0x9b005002 
+0x10017848: 0xe0  0x9b02c24e  0x9b02c246  0x9b008ef0 
+0x10017928: 0x50  0x9b008ed0  0x9b068902  0x9b0687c4 
+0x10017978: 0x24  0x9b008ed0  0x9b068924  0x9b0687c4
+0x1001799c: 0x30  0x9b02c24e  0x9b02c246  0x9b008ef0 
+0x100179cc: 0x5c  0x9b02c24e  0x9b02c246  0x9b008ef0 
+```
+
+> ![icon-caution.gif](public_sys-resources/icon-caution.gif) **注意:**
+> 开启内存检测会影响内存申请的性能,且每个内存节点都会记录LR地址,内存开销也加大。
+
+
+#### 编程实例
+
+本实例实现如下功能:构建内存泄漏代码段。
+
+1. 调用LOS_MemUsedNodeShow接口,输出全部节点信息打印;
+
+2. 申请内存,但没有释放,模拟内存泄漏;
+
+3. 再次调用LOS_MemUsedNodeShow接口,输出全部节点信息打印;
+
+4. 将两次log进行对比,得出泄漏的节点信息;
+
+5. 通过LR地址,找出泄漏的代码位置;
+
+
+#### 示例代码
+
+代码实现如下:
+
+  
+```
+#include <stdio.h>
+#include <string.h>
+#include "los_memory.h"
+#include "los_config.h"
+
+void MemLeakTest(void)
+{
+    LOS_MemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR);
+    void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8);
+    void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8);
+    LOS_MemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR);
+}
+```
+
+
+#### 结果验证
+
+编译运行输出log如下:
+
+  
+```
+node         size   LR[0]       LR[1]       LR[2]   
+0x20001b04:  0x24   0x08001a10  0x080035ce  0x080028fc 
+0x20002058:  0x40   0x08002fe8  0x08003626  0x080028fc 
+0x200022ac:  0x40   0x08000e0c  0x08000e56  0x0800359e 
+0x20002594:  0x120  0x08000e0c  0x08000e56  0x08000c8a 
+0x20002aac:  0x56   0x08000e0c  0x08000e56  0x08004220 
+
+node         size   LR[0]       LR[1]       LR[2]   
+0x20001b04:  0x24   0x08001a10  0x080035ce  0x080028fc 
+0x20002058:  0x40   0x08002fe8  0x08003626  0x080028fc 
+0x200022ac:  0x40   0x08000e0c  0x08000e56  0x0800359e 
+0x20002594:  0x120  0x08000e0c  0x08000e56  0x08000c8a 
+0x20002aac:  0x56   0x08000e0c  0x08000e56  0x08004220 
+0x20003ac4:  0x1d   0x08001458  0x080014e0  0x080041e6 
+0x20003ae0:  0x1d   0x080041ee  0x08000cc2  0x00000000 
+```
+
+对比两次log,差异如下,这些内存节点就是疑似泄漏的内存块:
+
+  
+```
+0x20003ac4:  0x1d   0x08001458  0x080014e0  0x080041e6 
+0x20003ae0:  0x1d   0x080041ee  0x08000cc2  0x00000000 
+```
+
+部分汇编文件如下:
+
+  
+```
+                MemLeakTest:
+  0x80041d4: 0xb510         PUSH     {R4, LR}
+  0x80041d6: 0x4ca8         LDR.N    R4, [PC, #0x2a0]       ; g_memStart
+  0x80041d8: 0x0020         MOVS     R0, R4
+  0x80041da: 0xf7fd 0xf93e  BL       LOS_MemUsedNodeShow    ; 0x800145a
+  0x80041de: 0x2108         MOVS     R1, #8
+  0x80041e0: 0x0020         MOVS     R0, R4
+  0x80041e2: 0xf7fd 0xfbd9  BL       LOS_MemAlloc           ; 0x8001998
+  0x80041e6: 0x2108         MOVS     R1, #8
+  0x80041e8: 0x0020         MOVS     R0, R4
+  0x80041ea: 0xf7fd 0xfbd5  BL       LOS_MemAlloc           ; 0x8001998
+  0x80041ee: 0x0020         MOVS     R0, R4
+  0x80041f0: 0xf7fd 0xf933  BL       LOS_MemUsedNodeShow    ; 0x800145a
+  0x80041f4: 0xbd10         POP      {R4, PC}
+  0x80041f6: 0x0000         MOVS     R0, R0
+```
+
+其中,通过查找0x080041ee,就可以发现该内存节点是在MemLeakTest接口里申请的且是没有释放的。
+
+## 踩内存检测
+
+
+### 基础概念
+
+踩内存检测机制作为内核的可选功能,用于检测动态内存池的完整性。通过该机制,可以及时发现内存池是否发生了踩内存问题,并给出错误信息,便于及时发现系统问题,提高问题解决效率,降低问题定位成本。
+
+
+### 功能配置
+
+LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:开关宏,默认关闭;若打开这个功能,在target_config.h中将这个宏定义为1。
+
+1. 开启这个功能,每次申请内存,会实时检测内存池的完整性。
+
+2. 如果不开启该功能,也可以调用LOS_MemIntegrityCheck接口检测,但是每次申请内存时,不会实时检测内存完整性,而且由于节点头没有魔鬼数字(开启时才有,省内存),检测的准确性也会相应降低,但对于系统的性能没有影响,故根据实际情况开关该功能。
+
+由于该功能只会检测出哪个内存节点被破坏了,并给出前节点信息(因为内存分布是连续的,当前节点最有可能被前节点破坏)。如果要进一步确认前节点在哪里申请的,需开启内存泄漏检测功能,通过LR记录,辅助定位。
+
+> ![icon-caution.gif](public_sys-resources/icon-caution.gif) **注意:**
+> 开启该功能,节点头多了魔鬼数字字段,会增大节点头大小。由于实时检测完整性,故性能影响较大;若性能敏感的场景,可以不开启该功能,使用LOS_MemIntegrityCheck接口检测。
+
+
+### 开发指导
+
+
+#### 开发流程
+
+通过调用LOS_MemIntegrityCheck接口检测内存池是否发生了踩内存,如果没有踩内存问题,那么接口返回0且没有log输出;如果存在踩内存问题,那么会输出相关log,详见下文编程实例的结果输出。
+
+
+#### 编程实例
+
+本实例实现如下功能:
+
+1. 申请两个物理上连续的内存块;
+
+2. 通过memset构造越界访问,踩到下个节点的头4个字节;
+
+3. 调用LOS_MemIntegrityCheck检测是否发生踩内存。
+
+
+#### 示例代码
+
+代码实现如下:
+
+  
+```
+#include <stdio.h>
+#include <string.h>
+#include "los_memory.h"
+#include "los_config.h"
+
+void MemIntegrityTest(void)
+{
+    /* 申请两个物理连续的内存块 */
+    void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8);
+    void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8);
+    /* 第一个节点内存块大小是8字节,那么12字节的清零,会踩到第二个内存节点的节点头,构造踩内存场景 */
+    memset(ptr1, 0, 8 + 4);
+    LOS_MemIntegrityCheck(LOSCFG_SYS_HEAP_ADDR);
+}
+```
+
+
+#### 结果验证
+
+编译运行输出log如下:
+
+  
+```
+[ERR][OsMemMagicCheckPrint], 2028, memory check error!
+memory used but magic num wrong, magic num = 0x00000000   /* 提示信息,检测到哪个字段被破坏了,用例构造了将下个节点的头4个字节清零,即魔鬼数字字段 */
+
+ broken node head: 0x20003af0  0x00000000  0x80000020, prev node head: 0x20002ad4  0xabcddcba  0x80000020   
+/* 被破坏节点和其前节点关键字段信息,分别为其前节点地址、节点的魔鬼数字、节点的sizeAndFlag;可以看出被破坏节点的魔鬼数字字段被清零,符合用例场景 */
+
+ broken node head LR info:  /* 节点的LR信息需要开启内存检测功能才有有效输出 */
+ LR[0]:0x0800414e
+ LR[1]:0x08000cc2
+ LR[2]:0x00000000
+
+ pre node head LR info:   /* 通过LR信息,可以在汇编文件中查找前节点是哪里申请,然后排查其使用的准确性 */
+ LR[0]:0x08004144
+ LR[1]:0x08000cc2
+ LR[2]:0x00000000
+[ERR]Memory interity check error, cur node: 0x20003b10, pre node: 0x20003af0   /* 被破坏节点和其前节点的地址 */
+```
diff --git a/zh-cn/device-dev/kernel/kernel-small-apx-dll.md b/zh-cn/device-dev/kernel/kernel-small-apx-dll.md
index f96563857060e2ef16b2397f22eb760bac77bbee..d13c006214da35581213e47da24e583cb16b861a 100644
--- a/zh-cn/device-dev/kernel/kernel-small-apx-dll.md
+++ b/zh-cn/device-dev/kernel/kernel-small-apx-dll.md
@@ -18,7 +18,7 @@
 | 增加链表 | -&nbsp;LOS_ListAddList:将指定链表的头端插入到双向链表头端<br/>-&nbsp;LOS_ListHeadInsertList:将指定链表的头端插入到双向链表头端<br/>-&nbsp;LOS_ListTailInsertList:将指定链表的尾端插入到双向链表头端 | 
 | 删除节点 | -&nbsp;LOS_ListDelete:将指定节点从链表中删除<br/>-&nbsp;LOS_ListDelInit:将指定节点从链表中删除,并使用该节点初始化链表 | 
 | 判断双向链表 | -&nbsp;LOS_ListEmpty:判断链表是否为空<br/>-&nbsp;LOS_DL_LIST_IS_END:判断指定链表节点是否为链表尾端:LOS_DL_LIST_IS_ON_QUEUE:判断链表节点是否在双向链表里 | 
-| 获取结构体信息 | -&nbsp;LOS_OFF_SET_OF:获取指定结构体内的成员相对于结构体起始地址的偏移量<br/>-&nbsp;LOS_DL_LIST_ENTRY:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称<br/>-&nbsp;LOS_ListPeekHeadType:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListRemoveHeadType:获取双向链表中第一个链表节点所在的结构体地址,并把第一个链表节点从链表中删除。接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListNextType:获取双向链表中指定链表节点的下一个节点所在的结构体地址。接口的第一个入参表示的是链表中的头节点,第二个入参是指定的链表节点,第三个入参是要获取的结构体名称,第四个入参是链表在该结构体中的名称。如果链表节点下一个为链表头结点为空,返回NULL。<br/>-&nbsp;LOS_OFF_SET_OF:获取指定结构体内的成员相对于结构体起始地址的偏移量<br/>-&nbsp;LOS_DL_LIST_ENTRY:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称<br/>-&nbsp;LOS_ListPeekHeadType:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListRemoveHeadType:获取双向链表中第一个链表节点所在的结构体地址,并把第一个链表节点从链表中删除。接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListNextType:获取双向链表中指定链表节点的下一个节点所在的结构体地址。接口的第一个入参表示的是链表中的头节点,第二个入参是指定的链表节点,第三个入参是要获取的结构体名称,第四个入参是链表在该结构体中的名称。如果链表节点下一个为链表头结点为空,返回NULL。 | 
+| 获取结构体信息 | -&nbsp;LOS_OFF_SET_OF:获取指定结构体内的成员相对于结构体起始地址的偏移量<br/>-&nbsp;LOS_DL_LIST_ENTRY:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称<br/>-&nbsp;LOS_ListPeekHeadType:获取双向链表中第一个链表节点所在的结构体地址,接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListRemoveHeadType:获取双向链表中第一个链表节点所在的结构体地址,并把第一个链表节点从链表中删除。接口的第一个入参表示的是链表中的头节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称。如果链表为空,返回NULL。<br/>-&nbsp;LOS_ListNextType:获取双向链表中指定链表节点的下一个节点所在的结构体地址。接口的第一个入参表示的是链表中的头节点,第二个入参是指定的链表节点,第三个入参是要获取的结构体名称,第四个入参是链表在该结构体中的名称。如果链表节点下一个为链表头结点为空,返回NULL。| 
 | 遍历双向链表 | -&nbsp;LOS_DL_LIST_FOR_EACH:遍历双向链表<br/>-&nbsp;LOS_DL_LIST_FOR_EACH_SAFE:遍历双向链表,并存储当前节点的后继节点用于安全校验 | 
 | 遍历包含双向链表的结构体 | -&nbsp;LOS_DL_LIST_FOR_EACH_ENTRY:遍历指定双向链表,获取包含该链表节点的结构体地址<br/>-&nbsp;LOS_DL_LIST_FOR_EACH_ENTRY_SAFE:遍历指定双向链表,获取包含该链表节点的结构体地址,并存储包含当前节点的后继节点的结构体地址 | 
 
diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md
index a2f3244ecbfe50f54b0eb9808f580a1afd716d22..aaa1f061537203ee243ba8ce14556ac89c4d52d0 100644
--- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md
+++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md
@@ -44,7 +44,7 @@
 > 
 > 发送信号:
 > 
-> a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及COTINUE、COREDUMP功能。
+> a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及CONTINUE、COREDUMP功能。
 > 
 > b. 进程无法屏蔽SIGSTOP、SIGKILL、SIGCONT信号。
 > 
diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
index a7090aa8cd25de4324897faaa8a89fea9bf36368..a5b14d4169aef58347e9fcc10cb4d894439a66bf 100644
--- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
+++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md
@@ -82,7 +82,7 @@ OpenHarmony LiteOS-A内核的NFS文件系统指的是NFS的客户端,NFS客户
      [2]Reply from 10.67.212.178: time=1ms TTL=63
      [3]Reply from 10.67.212.178: time=1ms TTL=63
      --- 10.67.212.178 ping statistics ---
-3. packets transmitted, 4 received, 0 loss
+     packets transmitted, 4 received, 0 loss
 
    客户端NFS初始化,运行命令:
 
@@ -124,7 +124,7 @@ OpenHarmony LiteOS-A内核的NFS文件系统指的是NFS的客户端,NFS客户
    > 
    > 至此,NFS客户端设置完毕。NFS文件系统已成功挂载。
 
-4. 利用NFS共享文件
+3. 利用NFS共享文件
 
    在NFS服务器下新建目录dir,并保存。在OpenHarmony内核下运行ls命令:
 
diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support.md
index 5f2ea549f7be468f4780dd7c4db0c96a8690b4e0..427cc10737c384630f2d0235131c5e7b7c8e5115 100644
--- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support.md
+++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support.md
@@ -1,13 +1,424 @@
 # 支持的文件系统
+## FAT
 
 
+### 基本概念
 
-- **[FAT](kernel-small-bundles-fs-support-fat.md)**
+FAT文件系统是File Allocation Table(文件配置表)的简称,主要包括DBR区、FAT区、DATA区三个区域。其中,FAT区各个表项记录存储设备中对应簇的信息,包括簇是否被使用、文件下一个簇的编号、是否文件结尾等。FAT文件系统有FAT12、FAT16、FAT32等多种格式,其中,12、16、32表示对应格式中FAT表项的比特数,它们同时也限制了文件系统中的最大文件大小。FAT文件系统支持多种介质,特别在可移动存储介质(U盘、SD卡、移动硬盘等)上广泛使用,使嵌入式设备和Windows、Linux等桌面系统保持很好的兼容性,方便用户管理操作文件。
 
-- **[JFFS2](kernel-small-bundles-fs-support-jffs2.md)**
+OpenHarmony内核支持FAT12、FAT16与FAT32三种格式的FAT文件系统,具有代码量小、资源占用小、可裁切、支持多种物理介质等特性,并且与Windows、Linux等系统保持兼容,支持多设备、多分区识别等功能。OpenHarmony内核支持硬盘多分区,可以在主分区以及逻辑分区上创建FAT文件系统。
 
-- **[NFS](kernel-small-bundles-fs-support-nfs.md)**
 
-- **[Ramfs](kernel-small-bundles-fs-support-ramfs.md)**
+### 运行机制
 
-- **[Procfs](kernel-small-bundles-fs-support-procfs.md)**
\ No newline at end of file
+FAT文件系统设计与物理布局的相关文档在互联网上非常丰富,请开发者自行搜索查看。
+
+OpenHarmony LiteOS-A内核通过Bcache提升FAT文件系统性能,Bcache是block cache的简称。当发生读写时,Bcache会缓存读写扇区附近的扇区,以减少I/O次数,提高性能。Bcache的基本缓存单位为block,每个block大小一致(默认有28个block,每个block缓存64个扇区的数据)。当Bcache脏块率(脏扇区数/总扇区数)达到阈值时,会触发写回;如果脏块率未达到阈值,则不会将缓存数据写回磁盘。如果需要保证数据写回,开发者应当调用sync和fsync触发写回。FAT文件系统的部分接口也会触发写回操作(如close、umount等),但开发者不应当基于这些接口触发写回。
+
+
+### 开发指导
+
+
+ **开发流程** 
+
+基本使用流程为挂载→操作→卸载。
+
+SD卡或MMC的设备名为mmcblk[x]p[y],文件系统类型为“vfat”。
+
+示例:
+
+  
+```
+mount("/dev/mmcblk0p0", "/mnt", "vfat", 0, NULL);
+```
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> - FAT文件系统中,单个文件不能大于4 GiB。
+> 
+> - 当有两个SD卡插槽时,卡0和卡1不固定,先插上的为卡0,后插上的为卡1。
+> 
+> - 当多分区功能打开,存在多分区的情况下,卡0注册的设备节点/dev/mmcblk0(主设备)和/dev/mmcblk0p0(次设备)是同一个设备,禁止对主设备进行操作。
+> 
+> - 为避免SD卡使用异常或内存泄漏,SD卡使用过程中拔卡,用户必须先关闭正处于打开状态的文件和目录,并且卸载挂载节点。
+> 
+> - 在format操作之前,需要首先umount挂载点。
+> 
+> - 当Bcache功能生效时,需要注意:
+>   - 当mount函数的入参为MS_NOSYNC时,FAT不会主动将cache的内容写回存储器件。FAT的如下接口(open、close、 unlink、rename、mkdir、rmdir、truncate)不会自动进行sync操作,速度可以提升,但是需要上层主动调用sync来进行数据同步,否则可能会数据丢失。
+> 
+>   - Bcache有定时写回功能。在menuconfig中开启LOSCFG_FS_FAT_CACHE_SYNC_THREAD选项,打开后系统会创建一个任务定时写回Bcache中的数据,默认每隔5秒检查Bcache中脏数据块比例,超过80%时进行sync操作,将Bcache中的脏数据全部写回磁盘。任务优先级、刷新时间间隔以及脏数据块比例的阈值可分别通过接口LOS_SetSyncThreadPrio、 LOS_SetSyncThreadInterval和LOS_SetDirtyRatioThreshold设置。
+>   - 当前cache的默认大小为28个块,每个块64个扇区。
+
+## JFFS2
+
+
+### 基本概念
+
+JFFS2是Journalling Flash File System Version 2(日志文件系统)的缩写,是针对MTD设备的日志型文件系统。
+
+OpenHarmony内核的JFFS2主要应用于NOR FLASH闪存,其特点是:可读写、支持数据压缩、提供了崩溃/掉电安全保护、提供“写平衡”支持等。闪存与磁盘介质有许多差异,直接将磁盘文件系统运行在闪存设备上,会导致性能和安全问题。为解决这一问题,需要实现一个特别针对闪存的文件系统,JFFS2就是这样一种文件系统。
+
+
+### 运行机制
+
+关于JFFS2文件系统的在存储设备上的实际物理布局,及文件系统本身的规格说明,请参考JFFS2的[官方规格说明文档](https://sourceware.org/jffs2/)。
+
+这里仅列举几个对开发者和使用者会有一定影响的JFFS2的重要机制/特征:
+
+1. Mount机制及速度问题:按照JFFS2的设计,所有的文件会按照一定的规则,切分成大小不等的节点,依次存储到flash设备上。在mount流程中,需要获取到所有的这些节点信息并缓存到内存里。因此,mount速度和flash设备的大小和文件数量的多少成线性比例关系。这是JFFS2的原生设计问题,对于mount速度非常介意的用户,可以在内核编译时开启“Enable JFFS2 SUMMARY”选项,可以极大提升mount的速度。这个选项的原理是将mount需要的信息提前存储到flash上,在mount时读取并解析这块内容,使得mount的速度变得相对恒定。这个实际是空间换时间的做法,会消耗8%左右的额外空间。
+
+2. 写平衡的支持:由于flash设备的物理属性,读写都只能基于某个特定大小的“块”进行,为了防止某些特定的块磨损过于严重,在JFFS2中需要对写入的块进行“平衡”的管理,保证所有的块的写入次数都是相对平均的,进而保证flash设备的整体寿命。
+
+3. GC(garbage collection)机制:在JFFS2里发生删除动作,实际的物理空间并不会立即释放,而是由独立的GC线程来做空间整理和搬移等GC动作,和所有的GC机制一样,在JFFS2里的GC会对瞬时的读写性能有一定影响。另外,为了有空间能被用来做空间整理,JFFS2会对每个分区预留3块左右的空间,这个空间是用户不可见的。
+
+4. 压缩机制:当前使用的JFFS2,底层会自动的在每次读/写时进行解压/压缩动作,实际IO的大小和用户请求读写的大小并不会一样。特别在写入时,不能通过写入大小来和flash剩余空间的大小来预估写入一定会成功或者失败。
+
+5. 硬链接机制:JFFS2支持硬链接,底层实际占用的物理空间是一份,对于同一个文件的多个硬连接,并不会增加空间的占用;反之,只有当删除了所有的硬链接时,实际物理空间才会被释放。
+
+
+### 开发指导
+
+对于基于JFFS2和nor flash的开发,总体而言,与其他文件系统非常相似,因为都有VFS层来屏蔽了具体文件系统的差异,对外接口体现也都是标准的POSIX接口。
+
+对于整个裸nor flash设备而言,没有集中的地方来管理和记录分区的信息。因此,需要通过其他的配置方式来传递这部分信息(当前使用的方式是在烧写镜像的时候,使用bootargs参数配置的),然后在代码中调用相应的接口来添加分区,再进行挂载动作。
+
+**制作JFFS2文件系统镜像**
+
+使用mkfs.jffs2工具,制作镜像默认命令如下。页大小默认为4KiB,eraseblock大小默认64KiB。若实际参数与下面不同时,修改相应参数。
+
+  
+```
+./mkfs.jffs2 -d rootfs/ -o rootfs.jffs2
+```
+
+  **表1** 指令含义表(更详细的介绍可以通过mkfs.jffs2 --help来查看)
+
+| 指令 | 含义 | 
+| -------- | -------- |
+| -s | 页大小,不指定默认为4KiB | 
+| -e | eraseblock大小,不指定默认为64KiB | 
+| -p | 镜像大小。在镜像文件后面,用0xFF填充至指定大小,不指定则用0xFF填充至eraseblock对齐。 | 
+| -d | 要制作成文件系统镜像的源目录 | 
+| -o | 要制成的镜像名称 | 
+
+**挂载JFFS2分区**
+
+调用int mount(const char \*source, const char \*target, const char \*filesystemtype, unsigned long mountflags, const void \*data)函数实现设备节点和挂载点的挂载。
+
+该函数有五个参数,第一个参数const char \*source,表示设备节点,第二个参数const char \*target表示挂载点。第三个参数 const char \*filesystemtype,表示文件系统类型。
+
+最后两个参数unsigned long mountflags和const void \*data表示挂载标志和数据,默认为0和NULL;这一操作也可以在Shell中使用mount命令实现,最后两个参数不需要用户给出。
+
+运行命令:
+
+  
+```
+OHOS # mount /dev/spinorblk1 /jffs1 jffs2
+```
+
+将从串口得到如下回应信息,表明挂载成功。
+
+  
+```
+OHOS # mount /dev/spinorblk1 /jffs1 jffs2
+mount OK
+```
+
+挂载成功后,用户就能对norflash进行读写操作。
+
+**卸载JFFS2分区**
+
+调用int umount(const char \*target)函数卸载分区,只需要正确给出挂载点即可。
+
+运行命令:
+
+  
+```
+OHOS # umount /jffs1
+```
+
+将从串口得到如下回应信息,表明卸载成功。
+
+  
+```
+OHOS # umount /jffs1
+umount ok
+```
+## NFS
+
+
+### 基本概念
+
+NFS是Network File System(网络文件系统)的缩写。它最大的功能是可以通过网络,让不同的机器、不同的操作系统彼此分享其他用户的文件。因此,用户可以简单地将它看做是一个文件系统服务,在一定程度上相当于Windows环境下的共享文件夹。
+
+
+### 运行机制
+
+OpenHarmony LiteOS-A内核的NFS文件系统指的是NFS的客户端,NFS客户端能够将远程的NFS服务端分享的目录挂载到本地的机器中,运行程序和共享文件,但不占用当前系统的存储空间,在本地端的机器看起来,远程服务端的目录就好像是自己的一个磁盘一样。
+
+
+### 开发指导
+
+1. 搭建NFS服务器
+
+   这里以Ubuntu操作系统为例,说明服务器端设置步骤。
+
+   - 安装NFS服务器软件。
+
+     设置好Ubuntu系统的下载源,保证网络连接好的情况下执行:
+
+
+     ```
+     sudo apt-get install nfs-kernel-server
+     ```
+
+   - 创建用于挂载的目录并设置完全权限
+
+  
+     ```
+     mkdir -p /home/sqbin/nfs
+     sudo chmod 777 /home/sqbin/nfs
+     ```
+
+   - 设置和启动NFS server。
+
+     修改NFS配置文件/etc/exports,添加如下一行:
+
+
+     ```
+     /home/sqbin/nfs *(rw,no_root_squash,async)
+     ```
+
+     其中/home/sqbin/nfs是NFS共享的根目录。
+
+     执行以下命令启动NFS server:
+
+
+     ```
+     sudo /etc/init.d/nfs-kernel-server start
+     ```
+
+     执行以下命令重启NFS server:
+
+
+     ```
+     sudo /etc/init.d/nfs-kernel-server restart
+     ```
+
+2. 设置单板为NFS客户端
+
+   本指导中的NFS客户端指运行OpenHarmony内核的设备。
+
+   - 硬件连接设置。
+
+     OpenHarmony内核设备连接到NFS服务器的网络。设置两者IP,使其处于同一网段。比如,设置NFS服务器的IP为10.67.212.178/24,设置OpenHarmony内核设备IP为 
+  10.67.212.3/24,注意:此IP为内网私有IP地址,用户使用时有差异,以用户实际IP为准。
+
+     OpenHarmony内核设备上的IP信息可通过ifconfig命令查看。
+
+   - 启动网络,确保单板到NFS服务器之间的网络通畅。
+
+     启动以太网或者其他类型网络,使用ping命令检查到服务器的网络是否通畅。
+
+
+     ```
+     OHOS # ping 10.67.212.178
+     [0]Reply from 10.67.212.178: time=1ms TTL=63
+     [1]Reply from 10.67.212.178: time=0ms TTL=63
+     [2]Reply from 10.67.212.178: time=1ms TTL=63
+     [3]Reply from 10.67.212.178: time=1ms TTL=63
+     --- 10.67.212.178 ping statistics ---
+     packets transmitted, 4 received, 0 loss
+
+   客户端NFS初始化,运行命令:
+
+
+   ```
+   OHOS # mkdir /nfs
+   OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
+   ```
+
+   将从串口得到如下回应信息,表明初始化NFS客户端成功。
+
+
+   ```
+   OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000
+   Mount nfs on 10.67.212.178:/home/sqbin/nfs, uid:1011, gid:1000
+   Mount nfs finished.
+   ```
+
+   该命令将服务器10.67.212.178上的/home/sqbin/nfs目录挂载到OpenHarmony内核设备上的/nfs上。
+
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+   > 本例默认nfs server已经配置可用,即示例中服务器10.67.212.178上的/home/sqbin/nfs已配置可访问。
+   > 
+   > mount命令的格式为:
+   > 
+   > 
+   > ```
+   > mount <SERVER_IP:SERVER_PATH> <CLIENT_PATH> nfs
+   > ```
+   > 
+   > 其中“SERVER_IP”表示服务器的IP地址;“SERVER_PATH”表示服务器端NFS共享目录路径;“CLIENT_PATH”表示设备上的NFS路径,“nfs”表示客户端要挂载的路径,可以根据自己需要替换。
+   > 
+   > 如果不想有NFS访问权限限制,可以在Linux命令行将NFS根目录权限设置成777:
+   > 
+   > 
+   > ```
+   > chmod -R 777 /home/sqbin/nfs
+   > ```
+   > 
+   > 至此,NFS客户端设置完毕。NFS文件系统已成功挂载。
+
+3. 利用NFS共享文件
+
+   在NFS服务器下新建目录dir,并保存。在OpenHarmony内核下运行ls命令:
+
+   ```
+   OHOS # ls /nfs
+   ```
+
+   则可从串口得到如下回应:
+
+
+   ```
+   OHOS # ls /nfs 
+   Directory /nfs:                 
+   drwxr-xr-x 0        u:0     g:0     dir
+   ```
+
+   可见,刚刚在NFS服务器上新建的dir目录已同步到客户端(OpenHarmony内核系统)的/nfs目录,两者保持同步。
+
+   同样地,在客户端(OpenHarmony内核系统)上创建文件和目录,在NFS服务器上也可以访问,读者可自行体验。
+
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+   > 目前,NFS客户端仅支持NFS v3部分规范要求,因此对于规范支持不全的服务器,无法完全兼容。在开发测试过程中,建议使用Linux的NFS server,其对NFS支持很完善。
+
+## Ramfs
+
+
+### 基本概念
+
+RAMFS是一个可动态调整大小的基于RAM的文件系统。RAMFS没有后备存储源。向RAMFS中进行的文件写操作也会分配目录项和页缓存,但是数据并不写回到任何其他存储介质上,掉电后数据丢失。
+### 运行机制
+RAMFS文件系统把所有的文件都放在 RAM 中,所以读/写操作发生在RAM中,可以用RAMFS来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对存储器的读写损耗,也提高了数据读写速度。
+### 开发指导
+挂载:  
+```
+mount(NULL, "/dev/shm", "ramfs", 0, NULL)
+```
+创建目录:  
+```
+mkdir(pathname, mode)
+```
+创建文件: 
+```
+open(pathname, O_NONBLOCK | O_CREAT | O_RDWR, mode)
+```
+读取目录:  
+```
+dir = opendir(pathname) 
+ptr = readdir(dir)
+closedir(dir)
+```
+删除文件:  
+```
+unlink(pathname)
+```
+删除目录: 
+```
+rmdir(pathname)
+```
+去挂载:  
+```
+umount("/dev/shm")
+```
+> ![icon-caution.gif](public_sys-resources/icon-caution.gif) **注意:**
+> - RAMFS只能挂载一次,一次挂载成功后,后面不能继续挂载到其他目录。
+> 
+> - RAMFS属于调测功能,默认配置为关闭,正式产品中不要使用该功能。
+
+## Procfs
+
+
+### 基本概念
+
+procfs是进程文件系统的简称,是一种虚拟文件系统,他用文件的形式,展示进程或其他系统信息。相比调用接口的方式获取信息,以文件操作的方式获取系统信息更为方便。
+
+
+### 运行机制
+
+OpenHarmony内核中,procfs在开机时会自动挂载到/proc目录下,仅支持内核模块创建文件节点来提供查询服务。
+
+
+### 开发指导
+
+procfs文件的创建无法使用一般的文件系统接口,需要使用ProcMkdir接口创建目录,使用CreateProcEntry接口创建文件。文件节点功能的开发就是实现read和write函数的钩子挂到CreateProcEntry创建的文件中。当用户使用读写procfs的文件时,就会调用到钩子函数来实现自定义的功能。
+
+
+编程实例
+
+下面我们以创建/proc/hello/world文件为例,实现如下功能:
+
+1.在/proc/hello/world位置创建一个文件
+
+2.当读文件内容时,返回"HelloWorld!"
+
+3.当写文件内容时,打印写入的内容
+
+  
+```
+#include "proc_fs.h"
+
+static int TestRead(struct SeqBuf *buf, void *arg)
+{
+    LosBufPrintf(buf, "Hello World!\n"); /* 将数据打印到buffer中,这个buffer中的数据会返回到read的结果中 */
+    return 0;
+}
+
+static int TestWrite(struct ProcFile *pf, const char *buffer, size_t buflen, loff_t *ppos)
+{
+    if ((buffer == NULL) || (buflen <= 0)) {
+        return -EINVAL;
+    }
+
+    PRINTK("your input is: %s\n", buffer); /* 注意和上面的read接口区别,这是对write接口输入命令的反馈,这个打印只会打印到控制台 */
+    return buflen;
+}
+static const struct ProcFileOperations HELLO_WORLD_OPS = {
+    .read = TestRead,
+    .write = TestWrite,
+};
+
+void HelloWorldInit(void)
+{
+    /* 创建hello目录 */
+    struct ProcDirEntry *dir = ProcMkdir("hello", NULL);
+    if (dir == NULL) {
+        PRINT_ERR("create dir failed!\n");
+        return;
+    }
+
+    /* 创建world文件 */
+    struct ProcDirEntry *entry = CreateProcEntry("world", 0, dir);
+    if (entry == NULL) {
+        PRINT_ERR("create entry failed!\n");
+        return;
+    }
+
+    /* 将自定义的read和write钩子挂到文件中 */
+    entry->procFileOps = &HELLO_WORLD_OPS;
+}
+```
+
+**结果验证**
+
+启动后在shell输入如下命令
+
+  
+```
+OHOS # cat /proc/hello/world
+OHOS # Hello World!
+OHOS # echo "yo" > /proc/hello/world
+OHOS # your input is: yo
+```
diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-system.md b/zh-cn/device-dev/kernel/kernel-small-bundles-system.md
index 4b75ad05591aac01d8bdcf3957702469a4e70d2c..8037e5e81d9306b3cea7d0c2881be289a387ab9f 100644
--- a/zh-cn/device-dev/kernel/kernel-small-bundles-system.md
+++ b/zh-cn/device-dev/kernel/kernel-small-bundles-system.md
@@ -52,8 +52,8 @@ Syscall Handler的具体实现在kernel/liteos_a/syscall/los_syscall.c中OsArmA3
    #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0)
    #define __NR_pthread_join       (__NR_OHOS_BEGIN + 1)
    #define __NR_pthread_deatch     (__NR_OHOS_BEGIN + 2)
-   #define __NR_creat_user_thread  (__NR_OHOS_BEGIN + 3)
-   #define __NR_processcreat       (__NR_OHOS_BEGIN + 4)
+   #define __NR_create_user_thread  (__NR_OHOS_BEGIN + 3)
+   #define __NR_processcreate       (__NR_OHOS_BEGIN + 4)
    #define __NR_processtart        (__NR_OHOS_BEGIN + 5)
    #define __NR_printf             (__NR_OHOS_BEGIN + 6)
    #define __NR_dumpmemory         (__NR_OHOS_BEGIN + 13)
@@ -98,8 +98,8 @@ Syscall Handler的具体实现在kernel/liteos_a/syscall/los_syscall.c中OsArmA3
    #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0)
    #define __NR_pthread_join       (__NR_OHOS_BEGIN + 1)
    #define __NR_pthread_deatch     (__NR_OHOS_BEGIN + 2)
-   #define __NR_creat_user_thread  (__NR_OHOS_BEGIN + 3)
-   #define __NR_processcreat       (__NR_OHOS_BEGIN + 4)
+   #define __NR_create_user_thread  (__NR_OHOS_BEGIN + 3)
+   #define __NR_processcreate       (__NR_OHOS_BEGIN + 4)
    #define __NR_processtart        (__NR_OHOS_BEGIN + 5)
    #define __NR_printf             (__NR_OHOS_BEGIN + 6)
    #define __NR_dumpmemory         (__NR_OHOS_BEGIN + 13)
diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md
index 78725d748293c1818f84e1dfef14fe06d15983e2..bdcf23dbcf131ab20306089829c72c997cea2d45 100644
--- a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md
+++ b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md
@@ -18,7 +18,7 @@ sem [_ID__ / fulldata_]
 | 参数 | 参数说明 | 取值范围 | 
 | -------- | -------- | -------- |
 | ID | 信号量ID。 | [0,&nbsp;1023]或[0x0,&nbsp;0x3FF] | 
-| fulldata | 查询所有在用的信号量信息,打印信息包括如下:SemID,&nbsp;Count,&nbsp;Original&nbsp;Count,&nbsp;Creater&nbsp;TaskEntry,&nbsp;Last&nbsp;Access&nbsp;Time。 | N/A | 
+| fulldata | 查询所有在用的信号量信息,打印信息包括如下:SemID,&nbsp;Count,&nbsp;Original&nbsp;Count,&nbsp;Creator&nbsp;TaskEntry,&nbsp;Last&nbsp;Access&nbsp;Time。 | N/A | 
 
 
 ## 使用指南
@@ -84,7 +84,7 @@ OHOS # sem
 ```
 OHOS # sem fulldata
 Used Semaphore List:
-   SemID    Count    OriginalCount   Creater(TaskEntry)    LastAccessTime
+   SemID    Count    OriginalCount   Creator(TaskEntry)    LastAccessTime
    ------   ------   -------------   ------------------    --------------
    0xb      0x0      0x0             0x404978fc            0xa1
    0xc      0x0      0x0             0x404978fc            0xa1
@@ -120,5 +120,5 @@ Used Semaphore List:
 | SemID | 信号量ID。 | 
 | Count | 信号量使用数。 | 
 | OriginalCount | 信号量原始计数。 | 
-| Creater | 信号量的创建线程的入口函数地址。 | 
+| Creator | 信号量的创建线程的入口函数地址。 | 
 | LastAccessTime | 上次访问时间。 | 
diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-user.md b/zh-cn/device-dev/kernel/kernel-small-debug-user.md
index 3a57c7c48ce1b8719a750f8b53bf2a01351b8e4f..cb61d4fe832b15e30df9d1f19963be0a811eb68d 100644
--- a/zh-cn/device-dev/kernel/kernel-small-debug-user.md
+++ b/zh-cn/device-dev/kernel/kernel-small-debug-user.md
@@ -1,11 +1,552 @@
 # 用户态内存调测
+## 基本概念
 
 
+Debug版本的musl-libc库为用户提供内存泄漏检测、堆内存统计、踩内存分析以及backtrace功能等维测手段,可以提高用户态内存相关问题的定位效率。
 
-- **[基本概念](kernel-small-debug-user-concept.md)**
 
-- **[运行机制](kernel-small-debug-user-function.md)**
+采用了对malloc/free接口进行插桩,保存关键节点信息,然后程序在申请和释放内存时进行内存节点完整性校验,最后在程序结束时通过统计节点信息得到内存统计信息并根据统计信息判断内存是否泄漏的设计思想
 
-- **[使用指导](kernel-small-debug-user-guide.md)**
+## 运行机制
+
+
+### 内存泄漏检查
+
+对于每个进程,内存调测模块维护了128个链表(当前系统的线程最大数量为128个),每个链表的索引为线程ID。
+
+申请内存时:保存关键信息到内存节点控制块,根据当前线程ID将内存节点控制块挂到对应链表;
+
+释放内存时:根据需要释放的内存地址匹配内存节点控制块并将该控制块删除。
+
+  **图1** 堆内存节点信息链表
+
+  ![zh-cn_image_0000001165890158](figures/zh-cn_image_0000001165890158.png)
+
+申请内存时,返回地址会被保存到LR寄存器中。进程运行过程中,系统会在内存节点控制块中添加疑似泄漏点对应的lr等信息。如下图所示:
+
+  **图2** 堆内存节点信息
+
+  ![zh-cn_image_0000001165890518](figures/zh-cn_image_0000001165890518.png)
+
+其中,TID表示线程ID;PID表示进程ID;ptr表示申请的内存地址;size表示申请的内存大小;lr[n]表示函数调用栈地址,变量n可以根据具体场景的需要进行配置。
+
+释放内存时,将free等接口的入参指针与node的ptr字段进行匹配,如果相同则删除该内存节点控制块信息。
+
+用户通过串口或文件等方式,将各个进程内存调测信息导出,利用addr2line工具将导出的信息转换成导致内存泄漏的代码行,便可以解决内存泄露问题。
+
+  **图3** 泄漏点代码行定位流程
+
+  ![zh-cn_image_0000001165730464](figures/zh-cn_image_0000001165730464.png)
+
+
+### 堆内存统计
+
+用户态线程堆内存使用统计具有一定的实际意义,统计线程申请的堆内存占比,为用户程序的内存使用优化提供数据支持。用户态堆内存统计模块主要涉及的接口为malloc和free。如上图所示,每个进程维护128个链表,链表索引即线程ID,申请内存时系统将ptr和size信息记录在内存节点控制块中并将节点控制块挂在以线程ID为头信息的链表上,堆内存释放时根据ptr从对应的链表上移除相应的堆内存块信息;同时计算出当前线程所持有的堆内存总的使用量,并更新当前进程的堆内存使用量和堆内存使用峰值。
+
+
+### 内存完整性检查
+
+- 使用malloc申请内存(小于等于0x1c000bytes时通过堆分配算法分配)
+  用户程序申请堆内存时,在堆内存节点处添加校验值等信息,如果校验值异常,则很有可能是前一块堆内存使用越界导致的(目前无法识别校验值被野指针破坏的场景)。在内存申请、释放时校验内存节点校验值的正确性,若内存节点被破坏,校验失败时则输出tid、pid及当前被踩节点前一块堆内存申请时保存的调用栈信息,通过addr2line工具可获得具体的代码行信息,辅助用户解决问题。
+
+    **图4** node节点头信息添加校验值
+
+    ![zh-cn_image_0000001211449151](figures/zh-cn_image_0000001211449151.png)
+
+  free堆内存时,不会立即把该内存块释放掉,而是在内存中写入魔术数字0xFE,并放到free队列中(保证在一定时间内不会再被malloc函数分配),当有野指针或use-after-free的情况对该内存进行读取的操作时,能够发现数据异常,但是对于写操作则无法判断出来。
+
+    **图5** free流程图
+
+    ![zh-cn_image_0000001165890904](figures/zh-cn_image_0000001165890904.png)
+
+- 使用malloc申请内存(大于0x1c000bytes时通过mmap申请)
+  当malloc通过mmap申请大块内存时,在返回给用户使用的内存区间头和尾分别多申请一个页,一个页PAGE_SIZE当前为0x1000,这两个页分别通过mprotect接口设置权限为PROT_NONE(无可读可写权限),可以有效防止内存越界读写问题:越界读写数据时由于无读写权限而导致用户程序异常,根据异常调用栈信息可找到相应的代码逻辑。
+
+    **图6** malloc通过mmap机制申请内存的内存布局
+
+    ![zh-cn_image_0000001211130993](figures/zh-cn_image_0000001211130993.png)
+
+### 使用指导
+#### 接口说明
+
+
+  **表1** 内存调测功能
+
+| 接口名 | 描述 | 
+| -------- | -------- |
+| mem_check_init | 初始化内存检测模块。 | 
+| watch_mem | 获取线程级堆内存使用信息。 | 
+| check_leak | 检查是否有堆内存泄漏。 | 
+| check_heap_integrity | 检查堆内存的完整性。 | 
+| backtrace | 获取调用栈地址信息。 | 
+| backtrace_symbols | 根据地址信息获取符号信息。 | 
+| print_trace | 输出函数调用栈信息。 | 
+
+
+  **表2** 调用栈回溯功能
+
+| 接口名 | 描述 | 
+| -------- | -------- |
+| backtrace | 获取调用栈地址信息。 | 
+| backtrace_symbols | 根据地址信息获取符号信息。 | 
+| print_trace | 输出函数调用栈信息。 | 
+
+### 使用说明
+
+
+编译OpenHarmony工程时默认编译的是debug版本,即libc库已经集成内存调测相关的接口实现,用户可以根据具体需要决定是否使能内存调测功能。
+
+
+堆内存调测功能提供两种方式供用户使用:接口调用及命令行参数。
+
+
+- 接口调用:优点是可以较精确的检查某一段代码逻辑的堆内存相关信息,缺点是需要修改用户代码。
+
+- 命令行参数:优点是无需修改用户代码,缺点是无法精确的校验某一段逻辑的堆内存信息。
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 内存调测功能使能后,进程退出时会默认进行一次堆内存泄漏和堆内存完整性检查。内存调测功能未使能时,堆内存统计、堆内存泄漏检查、堆内存完整性校验功能不会开启,调用相关调测接口无响应。
+
+
+- **[接口调用方式](kernel-small-debug-user-guide-use-api.md)**
+
+- **[命令行参数方式](kernel-small-debug-user-guide-use-cli.md)**
+
+
+
+
+#### 接口调用方式
+
+
+##### 示例代码
+
+代码功能:显式调用调测模块的相关接口对用户代码进行内存校验。
+
+  
+```
+#include <pthread.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <debug.h> // 包含提供内存调测接口声明的头文件
+
+#define MALLOC_LEAK_SIZE  0x300
+
+void func(void) {
+    char *ptr = malloc(MALLOC_LEAK_SIZE);
+    memset(ptr, '3', MALLOC_LEAK_SIZE);
+}
+
+int main()
+{
+    mem_check_init(NULL); // 通过串口输出内存调测信息,必须在用户程序第一次申请堆内存之前调用(一般在main函数入口调用),否则调测信息不准确。
+    // mem_check_init("/storage/mem_debug.txt"); // 内存调测信息输出到/storage/mem_debug.txt文件中,如果该文件创建失败,则信息通过串口输出。
+    char *ptr = malloc(MALLOC_LEAK_SIZE);
+    memset(ptr, '1', MALLOC_LEAK_SIZE);
+
+    watch_mem(); // 在当前代码逻辑处查看线程级内存统计信息。
+    func();
+    check_heap_integrity(); // 检查堆内存节点完整性。
+    check_leak(); // 在当前代码逻辑处检查堆内存是否泄漏(一般在程序退出之前校验比较准确,若在malloc和free调用逻辑之间做校验,则结果不准确)。
+    return 0;
+}
+```
+
+
+##### 编译
+
+  
+```
+$ clang -o mem_check mem_check.c -funwind-tables -rdynamic -g -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 -target arm-liteos --sysroot=/home/<user-name>/directory/out/hispark_taurus/ipcamera_hispark_taurus/sysroot $(clang -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 -target arm-liteos -print-file-name=libunwind.a)
+```
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> - 本编译示例基于将编译器的路径写入环境变量中,即.bashrc文件中。
+> 
+> - 编译用户程序及所需的lib库时,需要添加编译选项-funwind-tables,-rdynamic,-g,用于栈回溯。
+> 
+> - -mfloat-abi=softfp,-mcpu=cortex-a7,-mfpu=neon-vfpv4编译选项用于指定具体的芯片架构、浮点数计算优化、fpu,与具体的libc库使用的编译选项保持一致,否则链接时可能出现找不到libc库文件。
+> 
+> - -target arm-liteos用于指定编译器相关库文件路径。
+> 
+> - --sysroot=/home/&lt;user-name&gt;/directory/out/hispark_taurus/ipcamera_hispark_taurus/sysroot用于指定编译器库文件搜索根目录,假设OpenHarmony工程代码存放路径为/home/&lt;user-name&gt;/directory。其中out/hispark_taurus/ipcamera_hispark_taurus路径为在编译时,hb set命令指定的具体产品,本示例选择的是ipcamera_hispark_taurus产品。
+> 
+> - $(clang -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 -target arm-liteos -print-file-name=libunwind.a)用于指定相应的unwind库的路径。
+
+
+##### 调测信息
+
+  
+```
+OHOS # ./mem_check
+OHOS # 
+==PID:4== Heap memory statistics(bytes): // 堆内存统计信息
+    [Check point]: // check点调用栈
+        #00: <main+0x38>[0x86c] -> mem_check
+        #01: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+    [TID: 18, Used: 0x320] // 18号线程堆内存占用,当前进程仅一个线程
+
+==PID:4== Total heap: 0x320 byte(s), Peak: 0x320 byte(s)
+
+Check heap integrity ok! // 堆内存完整性检查
+
+==PID:4== Detected memory leak(s): // 内存泄漏信息及调用栈
+    [Check point]:
+        #00: <check_leak+0x1c4>[0x2da4c] -> /lib/libc.so
+        #01: <main+0x44>[0x878] -> mem_check
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <main+0x1c>[0x850] -> mem_check
+        #01: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <func+0x14>[0x810] -> mem_check
+        #01: <main+0x3c>[0x870] -> mem_check
+        #02: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+
+==PID:4== Detected memory leak(s):
+    [Check point]:
+        #00: <check_leak+0x1c4>[0x2da4c] -> /lib/libc.so
+        #01: <exit+0x28>[0x111ec] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <main+0x1c>[0x850] -> mem_check
+        #01: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <func+0x14>[0x810] -> mem_check
+        #01: <main+0x3c>[0x870] -> mem_check
+        #02: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+
+Check heap integrity ok!
+```
+
+
+##### 调用栈解析
+
+提供parse_mem_info.sh脚本可以对调用栈进行解析,解析脚本存放的路径:kernel/liteos_a/tools/scripts/parse_memory/parse_mem_info.sh。利用脚本可以将相应的调测信息转换成具体的源码行号,如下命令所示,mem_debug.txt保存的是内存调测信息,elf1、elf2等文件是需要解析的elf文件。
+
+  
+```
+$ ./parse_mem_info.sh mem_debug.txt elf1 elf2 elf3 ...
+```
+
+例如:
+
+  
+```
+$ ./parse_mem_info.sh mem_debug.txt mem_check
+Compiler is [gcc/llvm]: llvm
+Now using addr2line ...
+
+==PID:4== Heap memory statistics(bytes):
+    [Check point]:
+        #00: <main+0x38>[0x86c] at /usr1/xxx/TEST_ELF/mem_check.c:22
+        #01: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+    [TID: 18, Used: 0x320]
+
+==PID:4== Total heap: 0x320 byte(s), Peak: 0x320 byte(s)
+
+Check heap integrity ok!
+
+==PID:4== Detected memory leak(s):
+    [Check point]:
+        #00: <check_leak+0x1c4>[0x2da4c] -> /lib/libc.so
+        #01: <main+0x44>[0x878] at /usr1/xxx/TEST_ELF/mem_check.c:28
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <main+0x1c>[0x850] at /usr1/xxx/TEST_ELF/mem_check.c:17
+        #01: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <func+0x14>[0x810] at /usr1/xxx/TEST_ELF/mem_check.c:9
+        #01: <main+0x3c>[0x870] at /usr1/xxx/TEST_ELF/mem_check.c:24
+        #02: <(null)+0x24baf9dc>[0x219dc] -> /lib/libc.so
+
+==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+```
+
+#### 命令行参数方式
+
+
+对用户态进程进行内存相关的检查时,除了接口调用方式还可以通过命令行方式进行内存统计、内存泄漏或内存完整性检查。
+
+```
+--mwatch:初始化内存调测功能,注册信号。内存调测信息将从串口输出;
+--mrecord <f_path>:初始化内存调测功能,注册信号。内存调测信息将保存至f_path文件,若f_path创建失败,则内存调测信息将从串口输出
+```
+
+
+在待调测的进程未退出时可使用信号机制获取对应信息:
+
+```
+kill -35 <pid> # 查看线程级堆内存占用
+kill -36 <pid> # 检查是否存在堆内存泄漏
+kill -37 <pid> # 检查堆内存头节点是否完整
+```
+
+
+##### 示例代码
+
+代码功能:构造内存问题利用命令行方式进行内存调测。
+
+
+```
+#include <pthread.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define MALLOC_LEAK_SIZE  0x300
+
+void func(void) {
+    char *ptr = malloc(MALLOC_LEAK_SIZE);
+    memset(ptr, '3', MALLOC_LEAK_SIZE);
+}
+
+int main()
+{
+    char *ptr = malloc(MALLOC_LEAK_SIZE);
+    memset(ptr, '1', MALLOC_LEAK_SIZE);
+    func();
+    while (1);
+}
+```
+
+
+##### 编译
+
+参考[接口调用一节](../kernel/kernel-small-debug-user-guide-use-api.md#编译)。
+
+
+##### 使用mwatch参数命令
+
+
+```
+OHOS # ./mem_check --mwatch // 利用task命令可以查到mem_check进程的pid为4
+OHOS # 
+OHOS # kill -35 4 // 查看堆内存统计信息
+OHOS # 
+==PID:4== Heap memory statistics(bytes):
+    [Check point]:
+        #00: <arm_signal_process+0x5c>[0x58dfc] -> /lib/libc.so
+
+    [TID: 18, Used: 0x640]
+
+==PID:4== Total heap: 0x640 byte(s), Peak: 0x640 byte(s)
+
+OHOS # kill -36 4 // 检查是否存在堆内存泄漏
+OHOS # 
+==PID:4== Detected memory leak(s):
+    [Check point]:
+        #00: <check_leak+0x1c4>[0x2da4c] -> /lib/libc.so
+        #01: <arm_signal_process+0x5c>[0x58dfc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <main+0x14>[0x724] -> mem_check
+        #01: <(null)+0x2555a9dc>[0x219dc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <func+0x14>[0x6ec] -> mem_check
+        #01: <main+0x30>[0x740] -> mem_check
+        #02: <(null)+0x2555a9dc>[0x219dc] -> /lib/libc.so
+
+==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+
+OHOS # kill -37 4 // 检查堆内存头节点的完整性
+OHOS # 
+Check heap integrity ok!
+```
+
+
+##### 调用栈解析
+
+将调测信息保存至test.txt文件中,利用脚本进行解析,获取内存泄漏的具体行号。
+
+
+```
+$ ./parse_mem_info.sh test.txt mem_check
+Compiler is [gcc/llvm]: llvm
+Now using addr2line ...
+
+==PID:4== Detected memory leak(s):
+    [Check point]:
+        #00: <check_leak+0x1c4>[0x2da4c] -> /lib/libc.so
+        #01: <arm_signal_process+0x5c>[0x58dfc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <main+0x14>[0x724] at /usr1/xxx/TEST_ELF/mem_check.c:14
+        #01: <(null)+0x2555a9dc>[0x219dc] -> /lib/libc.so
+
+    [TID:18 Leak:0x320 byte(s)] Allocated from:
+        #00: <func+0x14>[0x6ec] at /usr1/xxx/TEST_ELF/mem_check.c:8
+        #01: <main+0x30>[0x740] at /usr1/xxx/TEST_ELF/mem_check.c:19
+        #02: <(null)+0x2555a9dc>[0x219dc] -> /lib/libc.so
+
+==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+```
+
+
+##### 使用mrecord参数命令
+
+1. 执行用户程序并指定记录内存调测信息的文件路径
+  
+   ```
+   OHOS # ./mem_check --mrecord /storage/check.txt
+   ```
+
+2. 利用kill -35 &lt;pid&gt;统计内存信息,该信息将会输出到文件中,使用cat命令查看
+  
+   ```
+   OHOS # kill -35 4
+   OHOS # Memory statistics information saved in /storage/pid(4)_check.txt
+   
+   OHOS # cat /storage/pid(4)_check.txt
+   
+   ==PID:4== Heap memory statistics(bytes):
+       [Check point]:
+           #00: <arm_signal_process+0x5c>[0x5973c] -> /lib/libc.so
+   
+       [TID: 18, Used: 0x640]
+   
+   ==PID:4== Total heap: 0x640 byte(s), Peak: 0x640 byte(s)
+   ```
+
+3. 利用kill -36 &lt;pid&gt;校验内存完整性,该信息将会输出到文件中,使用cat命令查看
+  
+   ```
+   OHOS # kill -36 4
+   OHOS # Leak check information saved in /storage/pid(4)_check.txt
+   
+   OHOS # cat /storage/pid(4)_check.txt
+   
+   ==PID:4== Heap memory statistics(bytes):
+       [Check point]:
+           #00: <arm_signal_process+0x5c>[0x5973c] -> /lib/libc.so
+   
+       [TID: 18, Used: 0x640]
+   
+   ==PID:4== Total heap: 0x640 byte(s), Peak: 0x640 byte(s)
+   
+   ==PID:4== Detected memory leak(s):
+       [Check point]:
+           #00: <check_leak+0x1c4>[0x2e38c] -> /lib/libc.so
+           #01: <arm_signal_process+0x5c>[0x5973c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <main+0x14>[0x724] -> mem_check
+           #01: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <func+0x14>[0x6ec] -> mem_check
+           #01: <main+0x30>[0x740] -> mem_check
+           #02: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+   ==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+   ```
+
+4. 利用kill -9 &lt;pid&gt;杀掉当前进程,进程退出后会默认校验内存完整性,该信息将会输出到文件中,使用cat命令查看
+  
+   ```
+   OHOS # kill -9 4
+   OHOS # Leak check information saved in /storage/pid(4)_check.txt
+   
+   Check heap integrity ok!
+   
+   OHOS # cat /storage/pid(4)_check.txt
+   OHOS # 
+   ==PID:4== Heap memory statistics(bytes):
+       [Check point]:
+           #00: <arm_signal_process+0x5c>[0x5973c] -> /lib/libc.so
+   
+       [TID: 18, Used: 0x640]
+   
+   ==PID:4== Total heap: 0x640 byte(s), Peak: 0x640 byte(s)
+   
+   ==PID:4== Detected memory leak(s):
+       [Check point]:
+           #00: <check_leak+0x1c4>[0x2e38c] -> /lib/libc.so
+           #01: <arm_signal_process+0x5c>[0x5973c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <main+0x14>[0x724] -> mem_check
+           #01: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <func+0x14>[0x6ec] -> mem_check
+           #01: <main+0x30>[0x740] -> mem_check
+           #02: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+   ==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+   
+   ==PID:4== Detected memory leak(s):
+       [Check point]:
+           #00: <check_leak+0x1c4>[0x2e38c] -> /lib/libc.so
+           #01: <exit+0x28>[0x11b2c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <main+0x14>[0x724] -> mem_check
+           #01: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+       [TID:18 Leak:0x320 byte(s)] Allocated from:
+           #00: <func+0x14>[0x6ec] -> mem_check
+           #01: <main+0x30>[0x740] -> mem_check
+           #02: <(null)+0x1fdd231c>[0x2231c] -> /lib/libc.so
+   
+   ==PID:4== SUMMARY: 0x640 byte(s) leaked in 2 allocation(s).
+   ```
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 上述连续记录的信息会逐步追加到初始化时所指定的文件中,故最后cat文件时,文件中还包含历史记录的信息内容。
+## 常见问题
+
+
+### UAF(Use after free)
+
+- 申请小块内存(不大于0x1c000字节)
+  free之后:
+
+  读操作:读取free之后的内存大概率是魔术数字(0xFEFEFEFE)
+
+  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+  > free之后的堆内存不会立即释放进堆内存池,会先放至固定长度的队列中,并置魔术数字0xFE,队列满后会将先放至队列中的内存块释放进堆内存池
+
+  写操作:无法校验。
+
+
+- 申请大块内存(大于0x1c000)
+  堆内存由malloc通过调用mmap接口申请,free之后若仍访问该内存,则用户程序异常(该内存区间已被unmap)。
+
+
+### Double free
+
+Double free时,用户程序将会异常退出。
+
+
+### 堆内存节点被踩
+
+- 申请小块内存(不大于0x1c000)
+  堆内存节点被踩时,用户程序将会异常退出,并输出破坏被踩节点的可能的堆内存申请调用栈,对于野指针踩内存情况无法校验出来。例如用户程序mem_check中存在堆内存越界踩的情况,利用命令行方式可以获得踩内存的可能的具体位置。
+
+    
+  ```
+  OHOS # ./mem_check --mwatch  
+  OHOS # 
+  ==PID:6== Memory integrity information:
+      [TID:28 allocated addr: 0x272e1ea0, size: 0x120] The possible attacker was allocated from:
+          #00: <malloc+0x808>[0x640e8] -> /lib/libc.so
+          #01: <threadFunc1+0x7c>[0x21d0] -> mem_check 
+  ```
+
+  可以通过调用栈解析脚本对调用栈信息进行解析。
+
+- 申请大块内存(大于0x1c000)
+
+  堆内存由malloc通过mmap接口申请,申请得到的堆内存块前后各置一个size为PAGE_SIZE大小的区间,设置无读写权限,读写操作会触发用户程序异常。
 
-- **[常见问题](kernel-small-debug-user-faqs.md)**
\ No newline at end of file
diff --git a/zh-cn/device-dev/kernel/kernel-small-memory-lms.md b/zh-cn/device-dev/kernel/kernel-small-memory-lms.md
index 145f6c59875a01312bbbd1a2a34fd5b029810a8e..f818c3bdf349ca14ddf83ba3bf6fdae3ce314436 100644
--- a/zh-cn/device-dev/kernel/kernel-small-memory-lms.md
+++ b/zh-cn/device-dev/kernel/kernel-small-memory-lms.md
@@ -366,7 +366,7 @@ int main(int argc, char * const * argv)
 Heap buffer overflow error detected!
 Illegal READ address at: [0x1f8b3edf]
 Shadow memory address: [0x3d34d3ed : 6]  Shadow memory value: [2]
-Accessable heap addr     0
+Accessible heap addr     0
 Heap red zone            2
 Heap freed buffer        3
 Dump info around address [0x1f8b3edf]:
@@ -391,7 +391,7 @@ Backtrace() returned 5 addresses
 Use after free error detected!
 Illegal Double free address at: [0x1f8b3ee0]
 Shadow memory address: [0x3d34d3ee : 0]  Shadow memory value: [3]
-Accessable heap addr     0
+Accessible heap addr     0
 Heap red zone            2
 Heap freed buffer        3
 Dump info around address [0x1f8b3ee0]:
diff --git a/zh-cn/device-dev/kernel/kernel-small-overview.md b/zh-cn/device-dev/kernel/kernel-small-overview.md
index 5e17f13da79dbf801185ace1e8fe6be946d94c2f..0762afe70e21fa2020f287b687fb091c14eee61c 100644
--- a/zh-cn/device-dev/kernel/kernel-small-overview.md
+++ b/zh-cn/device-dev/kernel/kernel-small-overview.md
@@ -76,7 +76,7 @@ OpenHarmony 轻量级内核是基于IoT领域轻量级物联网操作系统Huawe
 
 **网络协议**
 
-轻量级内核网络协议基于开源LWIP构建,对LWIP的RAM占用进行优化,同时提高LWIP的传输性能。
+轻量级内核网络协议基于开源lwIP(lightweight IP)构建,对lwIP的RAM占用进行优化,同时提高lwIP的传输性能。
 
 - 协议: IP、IPv6、 ICMP、 ND、MLD、 UDP、 TCP、IGMP、ARP、PPPoS、PPPoE
 
diff --git a/zh-cn/device-dev/porting/Readme-CN.md b/zh-cn/device-dev/porting/Readme-CN.md
index ae54c69dc6597106a1d5e8a3cc23d0235bdba6da..8d2c217aee92178f6eb562066e5bcac3465bb7f5 100644
--- a/zh-cn/device-dev/porting/Readme-CN.md
+++ b/zh-cn/device-dev/porting/Readme-CN.md
@@ -67,3 +67,5 @@ repo init -u https://gitee.com/openharmony-sig/manifest.git -b master -m devboar
     - [Combo解决方案之W800芯片移植案例](porting-w800-combo-demo.md)
 - 小型系统芯片移植案例
     - [小型设备STM32MP1芯片移植案例](porting-stm32mp15xx-on-smallsystem.md)
+- 标准系统芯片移植案例
+    - [标准系统方案之瑞芯微RK3568移植案例](porting-dayu200-on_standard-demo.md)
diff --git a/zh-cn/device-dev/porting/porting-chip-board-bundle.md b/zh-cn/device-dev/porting/porting-chip-board-bundle.md
index 6c40374e471a03939674b66328c2b74c28dfa0ac..1fd6ca469bbdf2529b3bbe4d01ccf7f3648755b9 100644
--- a/zh-cn/device-dev/porting/porting-chip-board-bundle.md
+++ b/zh-cn/device-dev/porting/porting-chip-board-bundle.md
@@ -10,7 +10,7 @@
    1. 拷贝include/mbedtls/config.h到ports目录下,并修改打开MBEDTLS_ENTROPY_HARDWARE_ALT开关。
    2. 在ports目录下创建entropy_poll_alt.c文件include并实现entropy_poll.h中的硬件随机数接口
    3. 在BUILD.gn中的mbedtls_sources中增加刚才适配的entropy_poll_alt.c的路径
-   4. 在BIULD.gn中的lite_library("mbedtls_static")中增加一行MBEDTLS_CONFIG_FILE指定新配置文件的位置
+   4. 在BUILD.gn中的lite_library("mbedtls_static")中增加一行MBEDTLS_CONFIG_FILE指定新配置文件的位置
          
        ```
        lite_library("mbedtks_static") {
diff --git a/zh-cn/device-dev/porting/porting-chip-prepare-knows.md b/zh-cn/device-dev/porting/porting-chip-prepare-knows.md
index 528ce6fc4262a09b827c057faa24147705f0cc81..6ab7e3d1032baf227f068b279266f9a869753124 100644
--- a/zh-cn/device-dev/porting/porting-chip-prepare-knows.md
+++ b/zh-cn/device-dev/porting/porting-chip-prepare-knows.md
@@ -18,7 +18,7 @@ OpenHarmony整体工程较为复杂,目录及实现为系统本身功能,如
 | /build/lite | OpenHarmony基础编译构建框架 | 
 | /kernel/liteos_m | 基础内核,其中芯片架构相关实现在arch目录下 | 
 | /device | 板级相关实现,各个三方厂商按照OpenHarmony规范适配实现,device下具体目录结构及移植过程参见[板级系统移植](../porting/porting-chip-board-overview.md) | 
-| /vendor | 产品级相关实现,主要由华为或者产品厂商贡献 | 
+| /vendor | 产品级相关实现,主要由产品厂商贡献 | 
 
 device目录规则:device/{芯片解决方案厂商}/{开发板}。以hisilicon的hispark_taurus为例:
 
@@ -37,7 +37,7 @@ device
 ```
 
 
-vendor目录规则:vendor/{产品解决方案厂商}/{产品名称}。以华为的wifiiot产品为例:
+vendor目录规则:vendor/{产品解决方案厂商}/{产品名称}。以wifiiot产品为例:
 
 
   
diff --git a/zh-cn/device-dev/porting/porting-chip-prepare-process.md b/zh-cn/device-dev/porting/porting-chip-prepare-process.md
index 503972d4e72da5945b93d678c71140707d70f6be..eee8899860e35df47baad80ef1697cf9d04b26f3 100644
--- a/zh-cn/device-dev/porting/porting-chip-prepare-process.md
+++ b/zh-cn/device-dev/porting/porting-chip-prepare-process.md
@@ -44,7 +44,7 @@
    # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain.
    board_toolchain = "gcc-arm-none-eabi"
    
-   # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc.
+   # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc.
    board_toolchain_path =
        rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin",
                    root_build_dir)
diff --git a/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md b/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md
index 9fe8e43aff7baef85f9054fd49f5899d17c0a351..1a5c4104231706bbf1e1d133e18ae82504cac47f 100644
--- a/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md
+++ b/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md
@@ -86,7 +86,7 @@ sudo apt-get install gcc-arm-linux-gnueabi
    # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain.
    board_toolchain = "mips-linux-gnu-gcc"
    
-   # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc.
+   # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc.
    board_toolchain_path = 
        rebase_path("//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin",
                    root_build_dir)
diff --git a/zh-cn/device-dev/porting/porting-thirdparty-cmake.md b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md
index 043e797410d3c3b92a775af0c410d53ab7826f62..94b137955ecd3608b9d1e3ab31ee257d2a0d4d64 100644
--- a/zh-cn/device-dev/porting/porting-thirdparty-cmake.md
+++ b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md
@@ -219,7 +219,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
    
      #toolchain:follow up-layer,depend on $ohos_build_compiler
      if (ohos_build_compiler == "clang") {
-         CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+         CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${root_out_dir}sysroot"
      } else {
          CMAKE_TOOLCHAIN_FLAG = ""
      }
diff --git a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md
index 5d01193f8c7cf62e190cbbf7e326e4ab776d2f2b..1a068c62af7a74c9db2591b9112577685d236dd7 100644
--- a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md
+++ b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md
@@ -173,9 +173,9 @@ if (ohos_build_thirdparty_migrated_from_fuchisa == true) {
 TEST_ENABLE = "YES"
 
 if (TEST_ENABLE == "YES") {
-    MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+    MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${root_out_dir}sysroot/"
 } else {
-    MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/"
+    MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${root_out_dir}sysroot/"
 }
 ```
 
diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md
index 0cc4275aabdaf7e000ffd04c181ab7cbf43aa3db..4e2363163cbd3c5577fd3d245e29279dc042564c 100644
--- a/zh-cn/device-dev/quick-start/quickstart-build.md
+++ b/zh-cn/device-dev/quick-start/quickstart-build.md
@@ -1,41 +1,40 @@
 # 编译形态整体说明
-
-**编译构建支持的产品列表**
+**编译构建支持的产品列表**  (点击链接可知道具体产品配置及其相关差异)
 
 | 编译形态                      | 开发板           | 主芯片      | 内核         | 系统类型     |
 | ----------------------------- | --------------- | ----------- | ----------- | ----------- |
-| neptune100                    | neptune100      | winnermicro | liteos_m    | mini        |
-| rk3568                        | rk3568          | rockchip    | linux       | standard    |
-| rk3568_mini_system            | rk3568          | rockchip    | linux       | standard    |
-| bearpi_hm_micro               | bearpi_hm_micro | stm32mp1xx  | liteos_a    | small       |
-| bearpi_hm_nano                | bearpi_hm_nano  | hi3861v100  | liteos_m    | mini        |
-| wifiiot_hispark_pegasus       | hispark_pegasus | hi3861v100  | liteos_m    | mini        |
-| ipcamera_hispark_aries        | hispark_aries   | hi3518ev300 | liteos_a    | small       |
-| ipcamera_hispark_taurus       | hispark_taurus  | hi3516dv300 | liteos_a    | small       |
-| ipcamera_hispark_taurus_linux | hispark_taurus  | hi3516dv300 | linux       | small       |
-| hispark_taurus_standard       | hispark_taurus  | hi3516dv300 | linux       | standard    |
-| watchos                       | hispark_taurus  | hi3516dv300 | linux       | standard    |
-| hispark_phoenix               | hispark_phoenix | hi3751v350  | linux       | standard    |
-| hispark_taurus_mini_system    | hispark_taurus  | hi3516dv300 | liteos_a    | mini        |
-| hispark_pegasus_mini_system   | hispark_pegasus | hi3861v100  | liteos_m    | mini        |
-| gr5515_sk_iotlink_demo        | gr5515_sk       | gr551x      | liteos_m    | mini        |
-| gr5515_sk_xts_demo            | gr5515_sk       | gr551x      | liteos_m    | mini        |
-| wifi_demo                     | dev_wifi_a      | asr582x     | liteos_m    | mini        |
-| xts_demo                      | dev_wifi_a      | asr582x     | liteos_m    | mini        |
-| display_demo                  | v200zr          | bes2600     | liteos_m    | mini        |
-| xts_demo                      | v200zr          | bes2600     | liteos_m    | mini        |
-| iotlink_demo                  | v200zr          | bes2600     | liteos_m    | mini        |
-| mini_distributed_music_player | v200zr          | bes2600     | liteos_m    | mini        |
-| niobe407                      | niobe407        | stm32f4xx   | liteos_m    | mini        |
-| qemu_mini_system_demo         | arm_mps2_an386  | qemu        | liteos_m    | mini        |
-| qemu_cksy_mini_system_demo    | SmartL_E802     | qemu        | liteos_m    | mini        |
-| qemu_cm55_mini_system_demo    | arm_mps3_an547  | qemu        | liteos_m    | mini        |
-| qemu_xtensa_mini_system_demo  | esp32           | qemu        | liteos_m    | mini        |
-| qemu_riscv_mini_system_demo   | ricsv32_virt    | qemu        | liteos_m    | mini        |
-| qemu_ca7_mini_system_demo     | arm_virt        | qemu        | liteos_a    | small       |
-| qemu_small_system_demo        | arm_virt        | qemu        | liteos_a    | small       |
-| qemu-arm-linux-min            | qemu-arm-linux  | qemu        | linux       | standard    |
-| qemu-arm-linux-headless       | qemu-arm-linux  | qemu        | linux       | standard    |
-| iotlink_demo                  | cst85_wblink    | chipsea     | liteos_m    | mini        |
-| dsoftbus_demo                 | cst85_wblink    | chipsea     | liteos_m    | mini        |
-| xts_demo                      | cst85_wblink    | chipsea     | liteos_m    | mini        |
+| [neptune100](https://gitee.com/openharmony/vendor_hihope/blob/master/neptune_iotlink_demo/config.json)                    | neptune100      | winnermicro | liteos_m    | mini        |
+| [rk3568](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/config.json)                        | rk3568          | rockchip    | linux       | standard    |
+| [rk3568_mini_system](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568_mini_system/config.json)            | rk3568          | rockchip    | linux       | standard    |
+| [bearpi_hm_micro](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_micro/config.json)               | bearpi_hm_micro | stm32mp1xx  | liteos_a    | small       |
+| [bearpi_hm_nano](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_nano/config.json)                | bearpi_hm_nano  | hi3861v100  | liteos_m    | mini        |
+| [wifiiot_hispark_pegasus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/config.json)       | hispark_pegasus | hi3861v100  | liteos_m    | mini        |
+| [ipcamera_hispark_aries](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_aries/config.json)        | hispark_aries   | hi3518ev300 | liteos_a    | small       |
+| [ipcamera_hispark_taurus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus/config.json)       | hispark_taurus  | hi3516dv300 | liteos_a    | small       |
+| [ipcamera_hispark_taurus_linux](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_linux/config.json) | hispark_taurus  | hi3516dv300 | linux       | small       |
+| [hispark_taurus_standard](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_standard/config.json)       | hispark_taurus  | hi3516dv300 | linux       | standard    |
+| [watchos](https://gitee.com/openharmony/vendor_hisilicon/blob/master/watchos/config.json)                       | hispark_taurus  | hi3516dv300 | linux       | standard    |
+| [hispark_phoenix](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_phoenix/config.json)               | hispark_phoenix | hi3751v350  | linux       | standard    |
+| [hispark_taurus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_mini_system/config.json)    | hispark_taurus  | hi3516dv300 | liteos_a    | mini        |
+| [hispark_pegasus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus_mini_system/config.json)   | hispark_pegasus | hi3861v100  | liteos_m    | mini        |
+| [gr5515_sk_iotlink_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_iotlink_demo/config.json)        | gr5515_sk       | gr551x      | liteos_m    | mini        |
+| [gr5515_sk_xts_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_xts_demo/config.json)            | gr5515_sk       | gr551x      | liteos_m    | mini        |
+| [wifi_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/wifi_demo/config.json)                     | dev_wifi_a      | asr582x     | liteos_m    | mini        |
+| [xts_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/xts_demo/config.json)                      | dev_wifi_a      | asr582x     | liteos_m    | mini        |
+| [display_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/display_demo/config.json)                  | v200zr          | bes2600     | liteos_m    | mini        |
+| [xts_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/xts_demo/config.json)                      | v200zr          | bes2600     | liteos_m    | mini        |
+| [iotlink_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/iotlink_demo/config.json)                  | v200zr          | bes2600     | liteos_m    | mini        |
+| [mini_distributed_music_player](https://gitee.com/openharmony/vendor_bestechnic/blob/master/mini_distributed_music_player/config.json) | v200zr          | bes2600     | liteos_m    | mini        |
+| [niobe407](https://gitee.com/openharmony/vendor_talkweb/blob/master/niobe407/config.json)                      | niobe407        | stm32f4xx   | liteos_m    | mini        |
+| [qemu_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_mini_system_demo/config.json)         | arm_mps2_an386  | qemu        | liteos_m    | mini        |
+| [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_csky_mini_system_demo/config.json)    | SmartL_E802     | qemu        | liteos_m    | mini        |
+| [qemu_cm55_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cm55_mini_system_demo/config.json)    | arm_mps3_an547  | qemu        | liteos_m    | mini        |
+| [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json)  | esp32           | qemu        | liteos_m    | mini        |
+| [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv32_mini_system_demo/config.json)   | ricsv32_virt    | qemu        | liteos_m    | mini        |
+| [qemu_ca7_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_ca7_mini_system_demo/config.json)     | arm_virt        | qemu        | liteos_a    | small       |
+| [qemu_small_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json)        | arm_virt        | qemu        | liteos_a    | small       |
+| [qemu_arm_linux_min](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_min/config.json)            | qemu-arm-linux  | qemu        | linux       | standard    |
+| [qemu_arm_linux_headless](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_headless/config.json)       | qemu-arm-linux  | qemu        | linux       | standard    |
+| [iotlink_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/iotlink_demo/config.json)                  | cst85_wblink    | chipsea     | liteos_m    | mini        |
+| [dsoftbus_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/dsoftbus_demo/config.json)                 | cst85_wblink    | chipsea     | liteos_m    | mini        |
+| [xts_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/xts_demo/config.json)                      | cst85_wblink    | chipsea     | liteos_m    | mini        |
diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md
index 79b49ce5480cdd4de7fad23c3ef8f273ac7fa04b..ceef078f3194ff55fc38d0d5e72c186fca77e2d2 100644
--- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md
+++ b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md
@@ -387,18 +387,19 @@ bash build/prebuilts_download.sh
 ### 安装LLVM(仅OpenHarmony_v1.x分支/标签需要)
 
 > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
-> 如果下载的源码为OpenHarmony_v1.x分支/标签,请按下面的步骤安装9.0.0版本的llvm。
+> 如果下载的源码为OpenHarmony_v1.x分支/标签,请按下面的步骤安装12.0.1版本的llvm。
 > 
 > 如果下载的源码为Master及非OpenHarmony_v1.x分支/标签,可直接跳过本小节,hb会自动下载最新的llvm。
 
 1. 打开Linux编译服务器终端。
 
-2. [下载LLVM工具](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)。
+2. [下载LLVM工具](https://repo.huaweicloud.com/openharmony/compiler/clang/12.0.1-530132/linux/clang-530132-linux-x86_64.tar.bz2)。
 
 3. 解压LLVM安装包至~/llvm路径下。
      
    ```
-   tar -zxvf llvm.tar -C ~/
+   tar -jxvf clang.tar.bz2 -C ~/
+   mv ~/clang-530132/ ~/llvm
    ```
 
 4. 设置环境变量。
diff --git a/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md
new file mode 100644
index 0000000000000000000000000000000000000000..98c7de011fef755a118ea6dc9e3f4ef10d1bae4c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md
@@ -0,0 +1,225 @@
+# HDI 接口参考
+
+- 模块
+    - [Audio](_audio.md)
+    - [Battery](battery.md)
+    - [Camera](_camera.md)
+    - [Codec](_codec.md)
+    - [Display](_display.md)
+    - [HdfFaceAuth](_hdf_face_auth.md)
+    - [Input](_input.md)
+    - [Light](_light.md)
+    - [HdfPinAuth](_hdf_pin_auth.md)
+    - [Power](power.md)
+    - [Sensor](_sensor.md)
+    - [Thermal](thermal.md)
+    - [USB](_u_s_b.md)
+    - [HdfUserAuth](_hdf_user_auth.md)
+    - [Vibrator](_vibrator.md)
+    - [WLAN](_w_l_a_n.md)
+- 头文件和结构体
+    - 头文件
+        - [audio_adapter.h](audio__adapter_8h.md)
+        - [audio_attribute.h](audio__attribute_8h.md)
+        - [audio_capture.h](audio__capture_8h.md)
+        - [audio_control.h](audio__control_8h.md)
+        - [audio_manager.h](audio__manager_8h.md)
+        - [audio_render.h](audio__render_8h.md)
+        - [audio_scene.h](audio__scene_8h.md)
+        - [audio_types.h](audio__types_8h.md)
+        - [audio_volume.h](audio__volume_8h.md)
+        - [codec_callback_if.h](codec__callback__if_8h.md)
+        - [codec_common_type.h](codec__common__type_8h.md)
+        - [codec_component_if.h](codec__component__if_8h.md)
+        - [codec_component_manager.h](codec__component__manager_8h.md)
+        - [codec_component_type.h](codec__component__type_8h.md)
+        - [display_device.h](display__device_8h.md)
+        - [display_gfx.h](display__gfx_8h.md)
+        - [display_gralloc.h](display__gralloc_8h.md)
+        - [display_layer.h](display__layer_8h.md)
+        - [display_type.h](display__type_8h.md)
+        - [icamera_device_callback.h](icamera__device__callback_8h.md)
+        - [icamera_device.h](icamera__device_8h.md)
+        - [icamera_host_callback.h](icamera__host__callback_8h.md)
+        - [icamera_host.h](icamera__host_8h.md)
+        - [input_controller.h](input__controller_8h.md)
+        - [input_manager.h](input__manager_8h.md)
+        - [input_reporter.h](input__reporter_8h.md)
+        - [input_type.h](input__type_8h.md)
+        - [ioffline_stream_operator.h](ioffline__stream__operator_8h.md)
+        - [istream_operator_callback.h](istream__operator__callback_8h.md)
+        - [istream_operator.h](istream__operator_8h.md)
+        - [light_if.h](light__if_8h.md)
+        - [light_type.h](light_8typeh.md)
+        - [sensor_if.h](sensor__if_8h.md)
+        - [sensor_type.h](sensor__type_8h.md)
+        - [types.h](types_8h.md)
+        - [usb_info.h](usb__info_8h.md)
+        - [usbd_client.h](usbd__client_8h.md)
+        - [usbd_subscriber.h](usbd__subscriber_8h.md)
+        - [usbd_type.h](usbd__type_8h.md)
+        - [vibrator_if.h](vibrator__if_8h.md)
+        - [vibrator_type.h](vibrator__type_8h.md)
+        - [wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md)
+        - [wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md)
+        - [wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md)
+        - [wifi_hal.h](wifi__hal_8h.md)
+        - [IExecutor.idl](face__auth_2_i_executor_8idl.md)
+        - [IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md)
+        - [FaceAuthTypes.idl](_face_auth_types_8idl.md)
+        - [PinAuthTypes.idl](_pin_auth_types_8idl.md)
+        - [IBatteryCallback.idl](_i_battery_callback_8idl.md)
+        - [IBatteryInterface.idl](_i_battery_interface_8idl.md)
+        - [IExecutor.idl](pin__auth_2_i_executor_8idl.md)
+        - [IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md)
+        - [IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md)
+        - [IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md)
+        - [IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md)
+        - [IPowerInterface.idl](_i_power_interface_8idl.md)
+        - [IThermalInterface.idl](_i_thermal_interface_8idl.md)
+        - [IThermalCallback.idl](_i_thermal_callback_8idl.md)
+        - [IUserAuthInterface.idl](_i_user_auth_interface_8idl.md)
+        - [PowerTypes.idl](_power_types_8idl.md)
+        - [ThermalTypes.idl](_thermal_types_8idl.md)
+        - [Types.idl](_types_8idl.md)
+        - [UserAuthTypes.idl](_user_auth_types_8idl.md)
+    - 结构体
+        - [__attribute__](____attribute____.md)
+        - [Alignment](_alignment.md)
+        - [AllocInfo](_alloc_info.md)
+        - [AudioAdapter](_audio_adapter.md)
+        - [AudioAdapterDescriptor](_audio_adapter_descriptor.md)
+        - [AudioAttribute](_audio_attribute.md)
+        - [AudioCapture](_audio_capture.md)
+        - [AudioControl](_audio_control.md)
+        - [AudioDevExtInfo](_audio_dev_ext_info.md)
+        - [AudioDeviceDescriptor](_audio_device_descriptor.md)
+        - [AudioManager](_audio_manager.md)
+        - [AudioMixExtInfo](_audio_mix_ext_info.md)
+        - [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)
+        - [AudioPort](_audio_port.md)
+        - [AudioPortCap](_audio_port_cap.md)
+        - [AudioPortCapability](_audio_port_capability.md)
+        - [AudioRender](_audio_render.md)
+        - [AudioRoute](_audio_route.md)
+        - [AudioRouteNode](_audio_route_node.md)
+        - [AudioSampleAttributes](_audio_sample_attributes.md)
+        - [AudioScene](_audio_scene.md)
+        - [AudioSceneDescriptor](_audio_scene_descriptor.md)
+        - [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md)
+        - [AudioSessionExtInfo](_audio_session_ext_info.md)
+        - [AudioSubPortCapability](_audio_sub_port_capability.md)
+        - [AudioTimeStamp](_audio_time_stamp.md)
+        - [AudioVolume](_audio_volume.md)
+        - [AuthResultInfo](_auth_result_info.md)
+        - [AuthSolution](_auth_solution.md)
+        - [BatteryInfo](_battery_info.md)
+        - [BufferData](_buffer_data.md)
+        - [CodecCallbackType](_codec_callback_type.md)
+        - [CodecCompCapability](_codec_comp_capability.md)
+        - [CodecComponentManager](_codec_component_manager.md)
+        - [CodecComponentType](_codec_component_type.md)
+        - [CompVerInfo](_comp_ver_info.md)
+        - [CredentialInfo](_credential_info.md)
+        - [DeviceFuncs](_device_funcs.md)
+        - [DisplayCapability](_display_capability.md)
+        - [DisplayInfo](_display_info.md)
+        - [DisplayModeInfo](_display_mode_info.md)
+        - [EnrolledInfo](_enrolled_info.md)
+        - [EnrollParam](_enroll_param.md)
+        - [EnrollResultInfo](_enroll_resultinfo.md)
+        - [EventInfo](_event_info.md)
+        - [ExecutorInfo](_executor_info.md)
+        - [ExecutorInfo](_user_executor_info.md)
+        - [ExecutorRegisterInfo](_executor_register_info.md)
+        - [ExecutorSendMsg](_executor_send_msg.md)
+        - [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md)
+        - [GfxFuncs](_gfx_funcs.md)
+        - [GfxOpt](_gfx_opt.md)
+        - [GrallocFuncs](_gralloc_funcs.md)
+        - [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)
+        - [HDRCapability](_h_d_r_capability.md)
+        - [HDRMetaData](_h_d_r_meta_data.md)
+        - [IBatteryCallback](interface_i_battery_callback.md)
+        - [IBatteryInterface](interface_i_battery_interface.md)
+        - [ICircle](_i_circle.md)
+        - [IdentifyResultInfo](_identify_result_info.md)
+        - [IExecutor](interface_i_executor.md)
+        - [IExecutor](interface_pin_i_executor.md)
+        - [IExecutorCallback](interface_i_executor_callback.md)
+        - [IExecutorCallback](interface_pin_i_executor_callback.md)
+        - [IFaceAuthInterface](interface_i_face_auth_interface.md)
+        - [IInputInterface](_i_input_interface.md)
+        - [ILine](_i_line.md)
+        - [InputController](_input_controller.md)
+        - [InputDevAbility](_input_dev_ability.md)
+        - [InputDevAttr](_input_dev_attr.md) 
+        - [InputDevDesc](_input_dev_desc.md)
+        - [InputDevIdentify](_input_dev_identify.md)
+        - [InputDeviceInfo](_device_info.md)
+        - [InputDimensionInfo](_input_dimension_info.md) 
+        - [InputEventCb](_input_report_event_cb.md)
+        - [InputEventPackage](_event_package.md)
+        - [InputExtraCmd](_input_extra_cmd.md)
+        - [InputHostCb](_input_host_cb.md)
+        - [InputHotPlugEvent](_input_hotplug_event.md)
+        - [InputManager](_input_manager.md)
+        - [InputReporter](_input_reporter.md)
+        - [IPinAuthInterface](interface_i_pin_auth_interface.md)
+        - [IPowerHdiCallback](interface_i_power_hdi_callback.md)
+        - [IPowerInterface](interface_i_power_interface.md)
+        - [IRect](_i_rect.md)
+        - [ISurface](_i_surface.md)
+        - [IThermalCallback](interface_i_thermal_callback.md)
+        - [IThermalInterface](interface_i_thermal_interface.md)
+        - [IUserAuthInterface](interface_i_user_auth_interface.md)
+        - [IWiFi](_i_wi_fi.md)
+        - [IWiFiAp](_i_wi_fi_ap.md)
+        - [IWiFiBaseFeature](_i_wi_fi_base_feature.md)
+        - [IWiFiSta](_i_wi_fi_sta.md)
+        - [LayerAlpha](_layer_alpha.md)
+        - [LayerBuffer](_layer_buffer.md)
+        - [LayerFuncs](_layer_funcs.md)
+        - [LayerInfo](_layer_info.md)
+        - [LightEffect](_light_effect.md)
+        - [LightFlashEffect](_light_flash_effect.md)
+        - [LightInfo](_light_info.md)
+        - [LightInterface](_light_interface.md)
+        - [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)
+        - [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)
+        - [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)
+        - [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)
+        - [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)
+        - [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md)
+        - [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)
+        - [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)
+        - [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)
+        - [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)
+        - [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)
+        - [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)
+        - [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)
+        - [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)
+        - [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)
+        - [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)
+        - [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)
+        - [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)
+        - [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)
+        - [OmxCodecBuffer](_omx_codec_buffer.md)
+        - [PortCap](union_port_cap.md)
+        - [PresentTimestamp](_present_timestamp.md)
+        - [PropertyObject](_property_object.md)
+        - [RangeValue](_range_value.md)
+        - [Rect](_rect.md)
+        - [Rectangle](_rectangle.md)
+        - [ScheduleInfo](_schedule_info.md)
+        - [SensorEvents](_sensor_events.md)
+        - [SensorInformation](_sensor_information.md)
+        - [SensorInterface](_sensor_interface.md)
+        - [StaInfo](_sta_info.md)
+        - [SupportBufferType](_support_buffer_type.md)
+        - [TemplateInfo](_template_info.md)
+        - [ThermalZoneInfo](_thermal_zone_info.md)
+        - [UseBufferType](_use_buffer_type.md)
+        - [VerifyAllocInfo](_verify_alloc_info.md)
+        - [VibratorInterface](_vibrator_interface.md)
+        - [VideoPortCap](_video_port_cap.md)
diff --git a/zh-cn/device-dev/reference/hdi-apis/____attribute____.md b/zh-cn/device-dev/reference/hdi-apis/____attribute____.md
new file mode 100644
index 0000000000000000000000000000000000000000..c271b05bee1f5f6ab32382c00e2c125470c6da91
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/____attribute____.md
@@ -0,0 +1,34 @@
+# __attribute__
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [fd](_display.md#fd) | 句柄&nbsp;fd,&nbsp;-1代表不支持。 | 
+| [reserveInts](_display.md#reserveints) | reserve数组的个数。 | 
+| [reserve](_display.md#reserve)&nbsp;[0] | reserve数组。 | 
+| [baseAddr](_display.md#baseaddr) | 内存的初始地址。 | 
+| [yOffset](_display.md#yoffset) | Y的偏移量。 | 
+| [uOffset](_display.md#uoffset) | U的偏移量。 | 
+| [vOffset](_display.md#voffset) | V的偏移量。 | 
+| [yStride](_display.md#ystride) | Y的stride信息。 | 
+| [uvStride](_display.md#uvstride) | UV的stride信息。 | 
+| [uvStep](_display.md#uvstep) | UV的step信息。 | 
+
+
+## **详细描述**
+
+扩展数据句柄结构体定义。
+
+YUV描述信息结构体定义。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_alignment.md b/zh-cn/device-dev/reference/hdi-apis/_alignment.md
new file mode 100644
index 0000000000000000000000000000000000000000..fe001f65e7ca31fea14d7d5ae3bf63ba18b28d62
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_alignment.md
@@ -0,0 +1,51 @@
+# Alignment
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [widthAlignment](#widthalignment) | 宽的对齐值。 | 
+| [heightAlignment](#heightalignment) | 高的对齐值。 | 
+
+
+## **详细描述**
+
+对齐结构定义,包含宽高的对齐值。
+
+
+## **类成员变量说明**
+
+
+### heightAlignment
+
+  
+```
+int32_t Alignment::heightAlignment
+```
+
+**描述:**
+
+高的对齐值。
+
+
+### widthAlignment
+
+  
+```
+int32_t Alignment::widthAlignment
+```
+
+**描述:**
+
+宽的对齐值。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_alloc_info.md b/zh-cn/device-dev/reference/hdi-apis/_alloc_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..6873294ab8b4518a09450b67b7ff209e41102503
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_alloc_info.md
@@ -0,0 +1,27 @@
+# AllocInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](_display.md#width-67) | 申请内存宽度 | 
+| [height](_display.md#height-67) | 申请内存高度 | 
+| [usage](_display.md#usage-12) | 申请内存的使用场景 | 
+| [format](_display.md#format-12) | 申请内存格式 | 
+| [expectedSize](_display.md#expectedsize) | 申请内存大小 | 
+
+
+## **详细描述**
+
+定义关于要分配的内存的信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio.md b/zh-cn/device-dev/reference/hdi-apis/_audio.md
new file mode 100644
index 0000000000000000000000000000000000000000..554eb44177de3dd16d2f72091eb23972324c3a5c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio.md
@@ -0,0 +1,1319 @@
+# Audio
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [audio_adapter.h](audio__adapter_8h.md) | Audio适配器的接口定义文件 | 
+| [audio_attribute.h](audio__attribute_8h.md) | Audio属性的接口定义文件 | 
+| [audio_capture.h](audio__capture_8h.md) | Audio录音的接口定义文件 | 
+| [audio_control.h](audio__control_8h.md) | Audio控制的接口定义文件 | 
+| [audio_manager.h](audio__manager_8h.md) | Audio适配器管理及加载的接口定义文件 | 
+| [audio_render.h](audio__render_8h.md) | Audio播放的接口定义文件 | 
+| [audio_scene.h](audio__scene_8h.md) | Audio场景的接口定义文件 | 
+| [audio_types.h](audio__types_8h.md) | Audio模块接口定义中使用的自定义数据类型 | 
+| [audio_volume.h](audio__volume_8h.md) | Audio音量的接口定义文件 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioAdapter](_audio_adapter.md) | AudioAdapter音频适配器接口&nbsp;[更多...](_audio_adapter.md) | 
+| [AudioAttribute](_audio_attribute.md) | AudioAttribute音频属性接口&nbsp;[更多...](_audio_attribute.md) | 
+| [AudioCapture](_audio_capture.md) | AudioCapture音频录音接口&nbsp;[更多...](_audio_capture.md) | 
+| [AudioControl](_audio_control.md) | AudioControl音频控制接口&nbsp;[更多...](_audio_control.md) | 
+| [AudioManager](_audio_manager.md) | AudioManager音频适配器管理接口&nbsp;[更多...](_audio_manager.md) | 
+| [AudioRender](_audio_render.md) | AudioRender音频播放接口&nbsp;[更多...](_audio_render.md) | 
+| [AudioScene](_audio_scene.md) | AudioScene音频场景接口&nbsp;[更多...](_audio_scene.md) | 
+| [AudioPort](_audio_port.md) | 音频端口&nbsp;[更多...](_audio_port.md) | 
+| [AudioAdapterDescriptor](_audio_adapter_descriptor.md) | 音频适配器描述符&nbsp;[更多...](_audio_adapter_descriptor.md) | 
+| [AudioDeviceDescriptor](_audio_device_descriptor.md) | 音频设备描述符&nbsp;[更多...](_audio_device_descriptor.md) | 
+| [AudioSceneDescriptor](_audio_scene_descriptor.md) | 音频场景描述符&nbsp;[更多...](_audio_scene_descriptor.md) | 
+| [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述&nbsp;[更多...](union_audio_scene_descriptor_1_1_scene_desc.md) | 
+| [AudioSampleAttributes](_audio_sample_attributes.md) | 音频采样属性&nbsp;[更多...](_audio_sample_attributes.md) | 
+| [AudioTimeStamp](_audio_time_stamp.md) | 音频时间戳&nbsp;[更多...](_audio_time_stamp.md) | 
+| [AudioSubPortCapability](_audio_sub_port_capability.md) | 音频子端口的支持能力&nbsp;[更多...](_audio_sub_port_capability.md) | 
+| [AudioPortCapability](_audio_port_capability.md) | 音频端口的支持能力&nbsp;[更多...](_audio_port_capability.md) | 
+| [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) | mmap缓冲区描述符&nbsp;[更多...](_audio_mmap_buffer_descripter.md) | 
+| [AudioDevExtInfo](_audio_dev_ext_info.md) | 音频设备拓展信息&nbsp;[更多...](_audio_dev_ext_info.md) | 
+| [AudioMixExtInfo](_audio_mix_ext_info.md) | 音轨拓展信息&nbsp;[更多...](_audio_mix_ext_info.md) | 
+| [AudioSessionExtInfo](_audio_session_ext_info.md) | 会话拓展信息&nbsp;[更多...](_audio_session_ext_info.md) | 
+| [AudioRouteNode](_audio_route_node.md) | 音频路由节点&nbsp;[更多...](_audio_route_node.md) | 
+| [AudioRoute](_audio_route.md) | 音频路由信息&nbsp;[更多...](_audio_route.md) | 
+| [AudioVolume](_audio_volume.md) | AudioVolume音频音量接口&nbsp;[更多...](_audio_volume.md) | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| AudioHandle | 音频句柄 | 
+| ([RenderCallback](#rendercallback))&nbsp;(enum&nbsp;[AudioCallbackType](#audiocallbacktype),&nbsp;void&nbsp;\*reserved,&nbsp;void&nbsp;\*cookie) | 回调函数指针&nbsp;[更多...](#rendercallback) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AudioPortDirection](#audioportdirection)&nbsp;{&nbsp;PORT_OUT&nbsp;=&nbsp;0x1u,&nbsp;PORT_IN&nbsp;=&nbsp;0x2u,&nbsp;PORT_OUT_IN&nbsp;=&nbsp;0x3u&nbsp;} | 音频端口的类型&nbsp;[更多...](#audioportdirection) | 
+| [AudioPortPin](#audioportpin)&nbsp;{&nbsp;&nbsp;&nbsp;PIN_NONE&nbsp;=&nbsp;0x0u,&nbsp;PIN_OUT_SPEAKER&nbsp;=&nbsp;0x1u,&nbsp;PIN_OUT_HEADSET&nbsp;=&nbsp;0x2u,&nbsp;PIN_OUT_LINEOUT&nbsp;=&nbsp;0x4u,&nbsp;&nbsp;&nbsp;PIN_OUT_HDMI&nbsp;=&nbsp;0x8u,&nbsp;PIN_OUT_USB&nbsp;=&nbsp;0x10u,&nbsp;PIN_OUT_USB_EXT&nbsp;=&nbsp;0x20u,&nbsp;PIN_IN_MIC&nbsp;=&nbsp;0x8000001u,&nbsp;&nbsp;&nbsp;PIN_IN_HS_MIC&nbsp;=&nbsp;0x8000002u,&nbsp;PIN_IN_LINEIN&nbsp;=&nbsp;0x8000004u,&nbsp;PIN_IN_USB_EXT&nbsp;=&nbsp;0x8000008u&nbsp;} | 音频适配器端口的PIN脚&nbsp;[更多...](#audioportpin) | 
+| [AudioCategory](#audiocategory)&nbsp;{&nbsp;AUDIO_IN_MEDIA&nbsp;=&nbsp;0,&nbsp;AUDIO_IN_COMMUNICATION,&nbsp;AUDIO_IN_RINGTONE,&nbsp;AUDIO_IN_CALL&nbsp;} | 音频类型(category)&nbsp;[更多...](#audiocategory) | 
+| [AudioFormat](#audioformat)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_PCM_8_BIT&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_FORMAT_PCM_16_BIT&nbsp;=&nbsp;0x2u,&nbsp;AUDIO_FORMAT_PCM_24_BIT&nbsp;=&nbsp;0x3u,&nbsp;AUDIO_FORMAT_PCM_32_BIT&nbsp;=&nbsp;0x4u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_AAC_MAIN&nbsp;=&nbsp;0x1000001u,&nbsp;AUDIO_FORMAT_AAC_LC&nbsp;=&nbsp;0x1000002u,&nbsp;AUDIO_FORMAT_AAC_LD&nbsp;=&nbsp;0x1000003u,&nbsp;AUDIO_FORMAT_AAC_ELD&nbsp;=&nbsp;0x1000004u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_AAC_HE_V1&nbsp;=&nbsp;0x1000005u,&nbsp;AUDIO_FORMAT_AAC_HE_V2&nbsp;=&nbsp;0x1000006u,&nbsp;AUDIO_FORMAT_G711A&nbsp;=&nbsp;0x2000001u,&nbsp;AUDIO_FORMAT_G711U&nbsp;=&nbsp;0x2000002u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_G726&nbsp;=&nbsp;0x2000003u&nbsp;} | 音频格式&nbsp;[更多...](#audioformat) | 
+| [AudioChannelMask](#audiochannelmask)&nbsp;{&nbsp;AUDIO_CHANNEL_FRONT_LEFT&nbsp;=&nbsp;0x1,&nbsp;AUDIO_CHANNEL_FRONT_RIGHT&nbsp;=&nbsp;0x2,&nbsp;AUDIO_CHANNEL_MONO&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_CHANNEL_STEREO&nbsp;=&nbsp;0x3u&nbsp;} | 音频通道掩码(mask)&nbsp;[更多...](#audiochannelmask) | 
+| [AudioSampleRatesMask](#audiosampleratesmask)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_8000&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_SAMPLE_RATE_MASK_12000&nbsp;=&nbsp;0x2u,&nbsp;AUDIO_SAMPLE_RATE_MASK_11025&nbsp;=&nbsp;0x4u,&nbsp;AUDIO_SAMPLE_RATE_MASK_16000&nbsp;=&nbsp;0x8u,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_22050&nbsp;=&nbsp;0x10u,&nbsp;AUDIO_SAMPLE_RATE_MASK_24000&nbsp;=&nbsp;0x20u,&nbsp;AUDIO_SAMPLE_RATE_MASK_32000&nbsp;=&nbsp;0x40u,&nbsp;AUDIO_SAMPLE_RATE_MASK_44100&nbsp;=&nbsp;0x80u,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_48000&nbsp;=&nbsp;0x100u,&nbsp;AUDIO_SAMPLE_RATE_MASK_64000&nbsp;=&nbsp;0x200u,&nbsp;AUDIO_SAMPLE_RATE_MASK_96000&nbsp;=&nbsp;0x400u,&nbsp;AUDIO_SAMPLE_RATE_MASK_INVALID&nbsp;=&nbsp;0xFFFFFFFFu&nbsp;} | 音频采样频率MASK&nbsp;[更多...](#audiosampleratesmask) | 
+| [AudioPortPassthroughMode](#audioportpassthroughmode)&nbsp;{&nbsp;PORT_PASSTHROUGH_LPCM&nbsp;=&nbsp;0x1,&nbsp;PORT_PASSTHROUGH_RAW&nbsp;=&nbsp;0x2,&nbsp;PORT_PASSTHROUGH_HBR2LBR&nbsp;=&nbsp;0x4,&nbsp;PORT_PASSTHROUGH_AUTO&nbsp;=&nbsp;0x8&nbsp;} | 音频端口的数据透传模式&nbsp;[更多...](#audioportpassthroughmode) | 
+| [AudioSampleFormat](#audiosampleformat)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S8,&nbsp;AUDIO_SAMPLE_FORMAT_S8P,&nbsp;AUDIO_SAMPLE_FORMAT_U8,&nbsp;AUDIO_SAMPLE_FORMAT_U8P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S16,&nbsp;AUDIO_SAMPLE_FORMAT_S16P,&nbsp;AUDIO_SAMPLE_FORMAT_U16,&nbsp;AUDIO_SAMPLE_FORMAT_U16P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S24,&nbsp;AUDIO_SAMPLE_FORMAT_S24P,&nbsp;AUDIO_SAMPLE_FORMAT_U24,&nbsp;AUDIO_SAMPLE_FORMAT_U24P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S32,&nbsp;AUDIO_SAMPLE_FORMAT_S32P,&nbsp;AUDIO_SAMPLE_FORMAT_U32,&nbsp;AUDIO_SAMPLE_FORMAT_U32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S64,&nbsp;AUDIO_SAMPLE_FORMAT_S64P,&nbsp;AUDIO_SAMPLE_FORMAT_U64,&nbsp;AUDIO_SAMPLE_FORMAT_U64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_F32,&nbsp;AUDIO_SAMPLE_FORMAT_F32P,&nbsp;AUDIO_SAMPLE_FORMAT_F64,&nbsp;AUDIO_SAMPLE_FORMAT_F64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_U8,&nbsp;AUDIO_SAMPLE_FMT_S16,&nbsp;AUDIO_SAMPLE_FMT_S32,&nbsp;AUDIO_SAMPLE_FMT_FLOAT,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_DOUBLE,&nbsp;AUDIO_SAMPLE_FMT_U8P,&nbsp;AUDIO_SAMPLE_FMT_S16P,&nbsp;AUDIO_SAMPLE_FMT_S32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_FLOATP,&nbsp;AUDIO_SAMPLE_FMT_DOUBLEP,&nbsp;AUDIO_SAMPLE_FMT_INVALID&nbsp;} | 原始音频样本格式&nbsp;[更多...](#audiosampleformat) | 
+| [AudioChannelMode](#audiochannelmode)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_CHANNEL_NORMAL&nbsp;=&nbsp;0,&nbsp;AUDIO_CHANNEL_BOTH_LEFT,&nbsp;AUDIO_CHANNEL_BOTH_RIGHT,&nbsp;AUDIO_CHANNEL_EXCHANGE,&nbsp;&nbsp;&nbsp;AUDIO_CHANNEL_MIX,&nbsp;AUDIO_CHANNEL_LEFT_MUTE,&nbsp;AUDIO_CHANNEL_RIGHT_MUTE,&nbsp;AUDIO_CHANNEL_BOTH_MUTE&nbsp;} | 音频播放的通道模式&nbsp;[更多...](#audiochannelmode) | 
+| [AudioDrainNotifyType](#audiodrainnotifytype)&nbsp;{&nbsp;AUDIO_DRAIN_NORMAL_MODE,&nbsp;AUDIO_DRAIN_EARLY_MODE&nbsp;} | DrainBuffer函数结束类型&nbsp;[更多...](#audiodrainnotifytype) | 
+| [AudioCallbackType](#audiocallbacktype)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_NONBLOCK_WRITE_COMPELETED,&nbsp;AUDIO_DRAIN_COMPELETED,&nbsp;AUDIO_FLUSH_COMPLETED,&nbsp;AUDIO_RENDER_FULL,&nbsp;&nbsp;&nbsp;AUDIO_ERROR_OCCUR&nbsp;} | 回调函数通知事件类型&nbsp;[更多...](#audiocallbacktype) | 
+| [AudioPortRole](#audioportrole)&nbsp;{&nbsp;AUDIO_PORT_UNASSIGNED_ROLE&nbsp;=&nbsp;0,&nbsp;AUDIO_PORT_SOURCE_ROLE&nbsp;=&nbsp;1,&nbsp;AUDIO_PORT_SINK_ROLE&nbsp;=&nbsp;2&nbsp;} | 音频端口角色&nbsp;[更多...](#audioportrole) | 
+| [AudioPortType](#audioporttype)&nbsp;{&nbsp;AUDIO_PORT_UNASSIGNED_TYPE&nbsp;=&nbsp;0,&nbsp;AUDIO_PORT_DEVICE_TYPE&nbsp;=&nbsp;1,&nbsp;AUDIO_PORT_MIX_TYPE&nbsp;=&nbsp;2,&nbsp;AUDIO_PORT_SESSION_TYPE&nbsp;=&nbsp;3&nbsp;} | 音频端口类型&nbsp;[更多...](#audioporttype) | 
+| [AudioSessionType](#audiosessiontype)&nbsp;{&nbsp;AUDIO_OUTPUT_STAGE_SESSION&nbsp;=&nbsp;0,&nbsp;AUDIO_OUTPUT_MIX_SESSION,&nbsp;AUDIO_ALLOCATE_SESSION,&nbsp;AUDIO_INVALID_SESSION&nbsp;} | 端口会话类型&nbsp;[更多...](#audiosessiontype) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GetAudioManagerFuncs](#getaudiomanagerfuncs)&nbsp;(void) | 获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)[更多...](#getaudiomanagerfuncs) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| [AudioPort::dir](#dir) | 音频端口的类型。 | 
+| [AudioPort::portId](#portid-14) | 音频端口的ID。 | 
+| [AudioPort::portName](#portname) | 音频端口的名称。 | 
+| [AudioAdapterDescriptor::adapterName](#adaptername) | 音频适配器的名称。 | 
+| [AudioAdapterDescriptor::portNum](#portnum) | 一个音频适配器支持的端口数目。 | 
+| [AudioAdapterDescriptor::ports](#ports) | 一个音频适配器支持的端口列表。 | 
+| [AudioDeviceDescriptor::portId](#portid-24) | 音频端口ID。 | 
+| [AudioDeviceDescriptor::pins](#pins) | 音频端口上的PIN脚(输出、输入)。 | 
+| [AudioDeviceDescriptor::desc](#desc-15) | 以字符串命名的音频设备。 | 
+| [AudioSceneDescriptor::SceneDesc::id](#id) | 音频场景的ID。 | 
+| [AudioSceneDescriptor::SceneDesc::desc](#desc-35) | 以字符串命名的音频场景。 | 
+| [AudioSceneDescriptor::scene](#scene) | 音频场景的名称。 | 
+| [AudioSceneDescriptor::desc](#desc-25) | 音频设备描述符。 | 
+| [AudioSampleAttributes::type](#type-13) | 音频类型。 | 
+| [AudioSampleAttributes::interleaved](#interleaved) | 音频数据交织的标记。 | 
+| [AudioSampleAttributes::format](#format) | 音频数据格式。 | 
+| [AudioSampleAttributes::sampleRate](#samplerate) | 音频采样频率。 | 
+| [AudioSampleAttributes::channelCount](#channelcount-12) | 音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 | 
+| [AudioSampleAttributes::period](#period) | 音频采样周期。 | 
+| [AudioSampleAttributes::frameSize](#framesize) | 音频数据的帧大小。 | 
+| [AudioSampleAttributes::isBigEndian](#isbigendian) | 音频数据的大端标志。 | 
+| [AudioSampleAttributes::isSignedData](#issigneddata) | 音频数据的有符号或无符号标志。 | 
+| [AudioSampleAttributes::startThreshold](#startthreshold) | 音频渲染开始阈值。 | 
+| [AudioSampleAttributes::stopThreshold](#stopthreshold) | 音频渲染停止阈值。 | 
+| [AudioSampleAttributes::silenceThreshold](#silencethreshold) | 音频捕获缓冲区阈值。 | 
+| [AudioSampleAttributes::streamId](#streamid-12) | 渲染或捕获的音频标识符。 | 
+| [AudioTimeStamp::tvSec](#tvsec) | tvSec时间,单位:秒。 | 
+| [AudioTimeStamp::tvNSec](#tvnsec) | tvNSec时间,单位:纳秒。 | 
+| [AudioSubPortCapability::portId](#portid-34) | 子端口ID。 | 
+| [AudioSubPortCapability::desc](#desc-45) | 以字符串命名的子端口。 | 
+| [AudioSubPortCapability::mask](#mask) | 数据透传模式。 | 
+| [AudioPortCapability::deviceType](#devicetype) | 设备输出、输入类型。 | 
+| [AudioPortCapability::deviceId](#deviceid) | 绑定(bind)设备ID,唯一的设备识别符。 | 
+| [AudioPortCapability::hardwareMode](#hardwaremode) | 是否支持设备绑定处理。 | 
+| [AudioPortCapability::formatNum](#formatnum) | 支持的音频格式数目。 | 
+| [AudioPortCapability::formats](#formats) | 支持的音频格式。 | 
+| [AudioPortCapability::sampleRateMasks](#sampleratemasks) | 支持的音频采样频率(8k、16k、32k、48k)。 | 
+| [AudioPortCapability::channelMasks](#channelmasks) | 设备的声道布局掩码(mask)。 | 
+| [AudioPortCapability::channelCount](#channelcount-22) | 支持的最大声道总数。 | 
+| [AudioPortCapability::subPortsNum](#subportsnum) | 支持的子端口数目(仅用于输出设备)。 | 
+| [AudioPortCapability::subPorts](#subports) | 支持的子端口列表。 | 
+| [AudioPortCapability::supportSampleFormatNum](#supportsampleformatnum) | 支持的音频样本格式数量。 | 
+| [AudioPortCapability::supportSampleFormats](#supportsampleformats) | 支持的音频样本格式。 | 
+| [AudioMmapBufferDescripter::memoryAddress](#memoryaddress) | 指向mmap缓冲区的指针。 | 
+| [AudioMmapBufferDescripter::memoryFd](#memoryfd) | mmap缓冲区的文件描述符。 | 
+| [AudioMmapBufferDescripter::totalBufferFrames](#totalbufferframes) | 缓冲区总大小,单位:帧。 | 
+| [AudioMmapBufferDescripter::transferFrameSize](#transferframesize) | 传输大小,单位:帧。 | 
+| [AudioMmapBufferDescripter::isShareable](#isshareable) | mmap缓冲区是否可以在进程间共享。 | 
+| [AudioDevExtInfo::moduleId](#moduleid-12) | 音频流绑定的模块ID。 | 
+| [AudioDevExtInfo::type](#type-23) | 音频端口上的PIN脚(输出、输入)。 | 
+| [AudioDevExtInfo::desc](#desc-55) | 地址描述。 | 
+| [AudioMixExtInfo::moduleId](#moduleid-22) | 流所属模块标识符。 | 
+| [AudioMixExtInfo::streamId](#streamid-22) | 由调用者传递的Render或Capture标识符。 | 
+| [AudioSessionExtInfo::sessionType](#sessiontype) | 音频会话类型。 | 
+| [AudioRouteNode::portId](#portid-44) | 音频端口ID。 | 
+| [AudioRouteNode::role](#role) | 指定端口角色为sink或source。 | 
+| [AudioRouteNode::type](#type-33) | 指定端口类型。 | 
+| [AudioRouteNode::device](#device) | 设备特定信息。 | 
+| [AudioRouteNode::mix](#mix) | 音轨特定信息。 | 
+| [AudioRouteNode::session](#session) | 会话特定信息。 | 
+| [AudioRoute::sourcesNum](#sourcesnum) | 发送端节点数量。 | 
+| [AudioRoute::sources](#sources) | 发送端列表。 | 
+| [AudioRoute::sinksNum](#sinksnum) | 接受端节点数量。 | 
+| [AudioRoute::sinks](#sinks) | 接受端列表。 | 
+
+
+## **详细描述**
+
+Audio模块接口定义。
+
+音频接口涉及自定义类型、驱动加载接口、驱动适配器接口、音频播放(render)接口、音频录音(capture)接口等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类型定义说明**
+
+
+### RenderCallback
+
+  
+```
+typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)
+```
+
+**描述:**
+
+回调函数指针。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| AudioCallbackType | 回调函数响应类型 | 
+| reserved | 保留字段 | 
+| cookie | 用于传递数据 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+RegCallback
+
+
+## **枚举类型说明**
+
+
+### AudioCallbackType
+
+  
+```
+enum AudioCallbackType
+```
+
+**描述:**
+
+回调函数通知事件类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_NONBLOCK_WRITE_COMPELETED | 非阻塞式写完成 | 
+| AUDIO_DRAIN_COMPELETED | DrainBuffer完成 | 
+| AUDIO_FLUSH_COMPLETED | Flush完成 | 
+| AUDIO_RENDER_FULL | Render缓冲区已满 | 
+| AUDIO_ERROR_OCCUR | 发生了错误 | 
+
+
+### AudioCategory
+
+  
+```
+enum AudioCategory
+```
+
+**描述:**
+
+音频类型(category)。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_IN_MEDIA | 媒体 | 
+| AUDIO_IN_COMMUNICATION | 通信 | 
+| AUDIO_IN_RINGTONE | 铃声 | 
+| AUDIO_IN_CALL | 呼叫 | 
+
+
+### AudioChannelMask
+
+  
+```
+enum AudioChannelMask
+```
+
+**描述:**
+
+音频通道掩码(mask)。
+
+定义音频声道的位置。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_CHANNEL_FRONT_LEFT | 声道布局前左 | 
+| AUDIO_CHANNEL_FRONT_RIGHT | 声道布局前右 | 
+| AUDIO_CHANNEL_MONO | 单声道 | 
+| AUDIO_CHANNEL_STEREO | 立体声,由左右声道组成(FRONT_LEFT&nbsp;\|&nbsp;FRONT_RIGHT) | 
+
+
+### AudioChannelMode
+
+  
+```
+enum AudioChannelMode
+```
+
+**描述:**
+
+音频播放的通道模式。
+
+> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
+> 下面的模式是针对双通道立体声的音频播放而设置,其他不支持。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_CHANNEL_NORMAL | 正常模式,不做处理 | 
+| AUDIO_CHANNEL_BOTH_LEFT | 两个声道全部为左声道声音 | 
+| AUDIO_CHANNEL_BOTH_RIGHT | 两个声道全部为右声道声音 | 
+| AUDIO_CHANNEL_EXCHANGE | 左右声道数据互换,左声道为右声道声音,右声道为左声道声音 | 
+| AUDIO_CHANNEL_MIX | 左右两个声道输出为左右声道相加(混音) | 
+| AUDIO_CHANNEL_LEFT_MUTE | 左声道静音,右声道播放原右声道声音 | 
+| AUDIO_CHANNEL_RIGHT_MUTE | 右声道静音,左声道播放原左声道声音 | 
+| AUDIO_CHANNEL_BOTH_MUTE | 左右声道均静音 | 
+
+
+### AudioDrainNotifyType
+
+  
+```
+enum AudioDrainNotifyType
+```
+
+**描述:**
+
+DrainBuffer函数结束类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_DRAIN_NORMAL_MODE | DrainBuffer在所有数据播放结束后返回 | 
+| AUDIO_DRAIN_EARLY_MODE | DrainBuffer()在当前曲目的所有数据播放完之前返回,以便留出时间给音频服务做连续性曲目切换 | 
+
+
+### AudioFormat
+
+  
+```
+enum AudioFormat
+```
+
+**描述:**
+
+音频格式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_FORMAT_PCM_8_BIT | 8bit位宽pcm格式 | 
+| AUDIO_FORMAT_PCM_16_BIT | 16bit位宽pcm格式 | 
+| AUDIO_FORMAT_PCM_24_BIT | 24bit位宽pcm格式 | 
+| AUDIO_FORMAT_PCM_32_BIT | 32bit位宽pcm格式 | 
+| AUDIO_FORMAT_AAC_MAIN | AAC&nbsp;MAIN格式 | 
+| AUDIO_FORMAT_AAC_LC | AAC&nbsp;LC格式 | 
+| AUDIO_FORMAT_AAC_LD | AAC&nbsp;LD格式 | 
+| AUDIO_FORMAT_AAC_ELD | AAC&nbsp;ELD格式 | 
+| AUDIO_FORMAT_AAC_HE_V1 | AAC&nbsp;HE_V1格式 | 
+| AUDIO_FORMAT_AAC_HE_V2 | AAC&nbsp;HE_V2格式 | 
+| AUDIO_FORMAT_G711A | G711A格式 | 
+| AUDIO_FORMAT_G711U | G711u格式 | 
+| AUDIO_FORMAT_G726 | G726格式 | 
+
+
+### AudioPortDirection
+
+  
+```
+enum AudioPortDirection
+```
+
+**描述:**
+
+音频端口的类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PORT_OUT | 音频输出端口。 | 
+| PORT_IN | 音频输入端口。 | 
+| PORT_OUT_IN | 音频输出/入端口,同时支持输出和输入能力(OUT&nbsp;\|&nbsp;IN)。 | 
+
+
+### AudioPortPassthroughMode
+
+  
+```
+enum AudioPortPassthroughMode
+```
+
+**描述:**
+
+音频端口的数据透传模式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PORT_PASSTHROUGH_LPCM | 立体声pcm | 
+| PORT_PASSTHROUGH_RAW | HDMI透传 | 
+| PORT_PASSTHROUGH_HBR2LBR | 蓝光次世代音频降规格输出 | 
+| PORT_PASSTHROUGH_AUTO | 根据HDMI&nbsp;EDID能力自动匹配 | 
+
+
+### AudioPortPin
+
+  
+```
+enum AudioPortPin
+```
+
+**描述:**
+
+音频适配器端口的PIN脚。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIN_NONE | 无效PIN | 
+| PIN_OUT_SPEAKER | 喇叭输出 | 
+| PIN_OUT_HEADSET | 有线耳机输出 | 
+| PIN_OUT_LINEOUT | Lineout输出 | 
+| PIN_OUT_HDMI | HDMI输出 | 
+| PIN_OUT_USB | USB设备输出 | 
+| PIN_OUT_USB_EXT | 扩展&nbsp;USB&nbsp;设备输出 | 
+| PIN_IN_MIC | Mic输入 | 
+| PIN_IN_HS_MIC | 有线耳机Mic输入 | 
+| PIN_IN_LINEIN | Linein输入 | 
+| PIN_IN_USB_EXT | 扩展&nbsp;USB&nbsp;设备输入 | 
+
+
+### AudioPortRole
+
+  
+```
+enum AudioPortRole
+```
+
+**描述:**
+
+音频端口角色。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_PORT_UNASSIGNED_ROLE | 未指定端口角色 | 
+| AUDIO_PORT_SOURCE_ROLE | 指定端口为发送端角色 | 
+| AUDIO_PORT_SINK_ROLE | 指定端口为接受端角色 | 
+
+
+### AudioPortType
+
+  
+```
+enum AudioPortType
+```
+
+**描述:**
+
+音频端口类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_PORT_UNASSIGNED_TYPE | 未指定端口类型 | 
+| AUDIO_PORT_DEVICE_TYPE | 指定端口为设备类型 | 
+| AUDIO_PORT_MIX_TYPE | 指定端口类型为复合类型 | 
+| AUDIO_PORT_SESSION_TYPE | 指定端口为会话类型 | 
+
+
+### AudioSampleFormat
+
+  
+```
+enum AudioSampleFormat
+```
+
+**描述:**
+
+原始音频样本格式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U8 | 8bit位宽无符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U8P | 8bit位宽无符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S16 | 16bit位宽有符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S16P | 16bit位宽有符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U16 | 16bit位宽无符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U16P | 16bit位宽无符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S24 | 24bit位宽有符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S24P | 24bit位宽有符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U24 | 24bit位宽无符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U24P | 24bit位宽无符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S32 | 32bit位宽有符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S32P | 32bit位宽有符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U32 | 32bit位宽无符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U32P | 32bit位宽无符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S64 | 64bit位宽有符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_S64P | 64bit位宽有符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U64 | 64bit位宽无符号交织样本 | 
+| AUDIO_SAMPLE_FORMAT_U64P | 64bit位宽无符号非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_F32 | 32bit位宽浮点型交织样本 | 
+| AUDIO_SAMPLE_FORMAT_F32P | 64bit位宽浮点型非交织样本 | 
+| AUDIO_SAMPLE_FORMAT_F64 | 64bit位宽双精度浮点型交织样本 | 
+| AUDIO_SAMPLE_FORMAT_F64P | 64bit位宽双精度浮点型非交织样本 | 
+| AUDIO_SAMPLE_FMT_U8 | 无符号8位整型,打包格式 | 
+| AUDIO_SAMPLE_FMT_S16 | 带符号16位整型,打包格式 | 
+| AUDIO_SAMPLE_FMT_S32 | 带符号32位整型,打包格式 | 
+| AUDIO_SAMPLE_FMT_FLOAT | 浮点型,打包格式 | 
+| AUDIO_SAMPLE_FMT_DOUBLE | 双精度浮点型,打包格式 | 
+| AUDIO_SAMPLE_FMT_U8P | 无符号8位整型,平面格式 | 
+| AUDIO_SAMPLE_FMT_S16P | 带符号16位整型,平面格式 | 
+| AUDIO_SAMPLE_FMT_S32P | 带符号32位整型,平面格式 | 
+| AUDIO_SAMPLE_FMT_FLOATP | 浮点型,平面格式 | 
+| AUDIO_SAMPLE_FMT_DOUBLEP | 双精度浮点型,平面格式 | 
+| AUDIO_SAMPLE_FMT_INVALID | 无效采样格式 | 
+
+
+### AudioSampleRatesMask
+
+  
+```
+enum AudioSampleRatesMask
+```
+
+**描述:**
+
+音频采样频率MASK。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_SAMPLE_RATE_MASK_8000 | 8K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_12000 | 12K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_11025 | 11.025K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_16000 | 16K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_22050 | 22.050K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_24000 | 24K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_32000 | 32K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_44100 | 44.1K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_48000 | 48K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_64000 | 64K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_96000 | 96K&nbsp;采样频率 | 
+| AUDIO_SAMPLE_RATE_MASK_INVALID | 无效的采样频率 | 
+
+
+### AudioSessionType
+
+  
+```
+enum AudioSessionType
+```
+
+**描述:**
+
+端口会话类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_OUTPUT_STAGE_SESSION | 会话绑定到指定输出流 | 
+| AUDIO_OUTPUT_MIX_SESSION | 会话绑定到特定音轨 | 
+| AUDIO_ALLOCATE_SESSION | 会话ID需重新申请 | 
+| AUDIO_INVALID_SESSION | 无效会话类型 | 
+
+
+## **函数说明**
+
+
+### GetAudioManagerFuncs()
+
+  
+```
+struct AudioManager* GetAudioManagerFuncs (void )
+```
+
+**描述:**
+
+获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。
+
+**返回:**
+
+成功返回一个音频适配器管理接口的对象,失败返回NULL。
+
+
+## **变量说明**
+
+
+### adapterName
+
+  
+```
+const char* AudioAdapterDescriptor::adapterName
+```
+
+**描述:**
+
+音频适配器的名称。
+
+
+### channelCount [1/2]
+
+  
+```
+uint32_t AudioSampleAttributes::channelCount
+```
+
+**描述:**
+
+音频通道数目,如单通道(mono)为1、立体声(stereo)为2。
+
+
+### channelCount [2/2]
+
+  
+```
+unsigned int AudioPortCapability::channelCount
+```
+
+**描述:**
+
+支持的最大声道总数。
+
+
+### channelMasks
+
+  
+```
+enum AudioChannelMask AudioPortCapability::channelMasks
+```
+
+**描述:**
+
+设备的声道布局掩码(mask),详情参考[AudioChannelMask](#audiochannelmask)。
+
+
+### desc [1/5]
+
+  
+```
+const char* AudioDeviceDescriptor::desc
+```
+
+**描述:**
+
+以字符串命名的音频设备。
+
+
+### desc [2/5]
+
+  
+```
+struct AudioDeviceDescriptor AudioSceneDescriptor::desc
+```
+
+**描述:**
+
+音频设备描述符。
+
+
+### desc [3/5]
+
+  
+```
+const char* AudioSceneDescriptor::SceneDesc::desc
+```
+
+**描述:**
+
+以字符串命名的音频场景。
+
+
+### desc [4/5]
+
+  
+```
+const char* AudioSubPortCapability::desc
+```
+
+**描述:**
+
+以字符串命名的子端口。
+
+
+### desc [5/5]
+
+  
+```
+const char* AudioDevExtInfo::desc
+```
+
+**描述:**
+
+地址描述。
+
+
+### deviceId
+
+  
+```
+unsigned int AudioPortCapability::deviceId
+```
+
+**描述:**
+
+绑定(bind)设备ID,唯一的设备识别符。
+
+
+### deviceType
+
+  
+```
+unsigned int AudioPortCapability::deviceType
+```
+
+**描述:**
+
+设备输出、输入类型。
+
+
+### dir
+
+  
+```
+enum AudioPortDirection AudioPort::dir
+```
+
+**描述:**
+
+音频端口的类型,详情参考[AudioPortDirection](#audioportdirection)。
+
+
+### format
+
+  
+```
+enum AudioFormat AudioSampleAttributes::format
+```
+
+**描述:**
+
+音频数据格式,详情参考[AudioFormat](#audioformat)。
+
+
+### formatNum
+
+  
+```
+unsigned int AudioPortCapability::formatNum
+```
+
+**描述:**
+
+支持的音频格式数目。
+
+
+### formats
+
+  
+```
+enum AudioFormat* AudioPortCapability::formats
+```
+
+**描述:**
+
+支持的音频格式,详情参考[AudioFormat](#audioformat)。
+
+
+### frameSize
+
+  
+```
+uint32_t AudioSampleAttributes::frameSize
+```
+
+**描述:**
+
+音频数据的帧大小。
+
+
+### hardwareMode
+
+  
+```
+bool AudioPortCapability::hardwareMode
+```
+
+**描述:**
+
+是否支持设备绑定处理。
+
+
+### id
+
+  
+```
+unsigned int AudioSceneDescriptor::SceneDesc::id
+```
+
+**描述:**
+
+音频场景的ID。
+
+
+### interleaved
+
+  
+```
+bool AudioSampleAttributes::interleaved
+```
+
+**描述:**
+
+音频数据交织的标记。
+
+
+### isBigEndian
+
+  
+```
+bool AudioSampleAttributes::isBigEndian
+```
+
+**描述:**
+
+音频数据的大端标志。
+
+
+### isShareable
+
+  
+```
+int32_t AudioMmapBufferDescripter::isShareable
+```
+
+**描述:**
+
+mmap缓冲区是否可以在进程间共享。
+
+
+### isSignedData
+
+  
+```
+bool AudioSampleAttributes::isSignedData
+```
+
+**描述:**
+
+音频数据的有符号或无符号标志
+
+
+### mask
+
+  
+```
+enum AudioPortPassthroughMode AudioSubPortCapability::mask
+```
+
+**描述:**
+
+数据透传模式,详情参考[AudioPortPassthroughMode](#audioportpassthroughmode)。
+
+
+### memoryAddress
+
+  
+```
+void* AudioMmapBufferDescripter::memoryAddress
+```
+
+**描述:**
+
+指向mmap缓冲区的指针。
+
+
+### memoryFd
+
+  
+```
+int32_t AudioMmapBufferDescripter::memoryFd
+```
+
+**描述:**
+
+mmap缓冲区的文件描述符。
+
+
+### moduleId [1/2]
+
+  
+```
+int32_t AudioDevExtInfo::moduleId
+```
+
+**描述:**
+
+音频流绑定的模块ID。
+
+
+### moduleId [2/2]
+
+  
+```
+int32_t AudioMixExtInfo::moduleId
+```
+
+**描述:**
+
+流所属模块标识符。
+
+
+### period
+
+  
+```
+uint32_t AudioSampleAttributes::period
+```
+
+**描述:**
+
+音频采样周期。
+
+
+### pins
+
+  
+```
+enum AudioPortPin AudioDeviceDescriptor::pins
+```
+
+**描述:**
+
+音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。
+
+
+### portId [1/4]
+
+  
+```
+unsigned int AudioPort::portId
+```
+
+**描述:**
+
+音频端口的ID。
+
+
+### portId [2/4]
+
+  
+```
+unsigned int AudioDeviceDescriptor::portId
+```
+
+**描述:**
+
+音频端口ID。
+
+
+### portId [3/4]
+
+  
+```
+unsigned int AudioSubPortCapability::portId
+```
+
+**描述:**
+
+子端口ID。
+
+
+### portId [4/4]
+
+  
+```
+int32_t AudioRouteNode::portId
+```
+
+**描述:**
+
+音频端口ID。
+
+
+### portName
+
+  
+```
+const char* AudioPort::portName
+```
+
+**描述:**
+
+音频端口的名称。
+
+
+### portNum
+
+  
+```
+unsigned int AudioAdapterDescriptor::portNum
+```
+
+**描述:**
+
+一个音频适配器支持的端口数目。
+
+
+### ports
+
+  
+```
+struct AudioPort* AudioAdapterDescriptor::ports
+```
+
+**描述:**
+
+一个音频适配器支持的端口列表。
+
+
+### role
+
+  
+```
+enum AudioPortRole AudioRouteNode::role
+```
+
+**描述:**
+
+指定端口角色为sink或source。
+
+
+### sampleRate
+
+  
+```
+unsigned int AudioSampleAttributes::sampleRate
+```
+
+**描述:**
+
+音频采样频率。
+
+
+### sampleRateMasks
+
+  
+```
+unsigned int AudioPortCapability::sampleRateMasks
+```
+
+**描述:**
+
+支持的音频采样频率(8k、16k、32k、48k)。
+
+
+### scene
+
+  
+```
+union AudioSceneDescriptor::SceneDesc AudioSceneDescriptor::scene
+```
+
+**描述:**
+
+音频场景的名称。
+
+
+### sessionType
+
+  
+```
+enum AudioSessionType AudioSessionExtInfo::sessionType
+```
+
+**描述:**
+
+音频会话类型。
+
+
+### silenceThreshold
+
+  
+```
+uint32_t AudioSampleAttributes::silenceThreshold
+```
+
+**描述:**
+
+音频捕获缓冲区阈值。
+
+
+### sinks
+
+  
+```
+const struct AudioRouteNode* AudioRoute::sinks
+```
+
+**描述:**
+
+接受端列表。
+
+
+### sinksNum
+
+  
+```
+uint32_t AudioRoute::sinksNum
+```
+
+**描述:**
+
+接受端节点数量。
+
+
+### sources
+
+  
+```
+const struct AudioRouteNode* AudioRoute::sources
+```
+
+**描述:**
+
+发送端列表。
+
+
+### sourcesNum
+
+  
+```
+uint32_t AudioRoute::sourcesNum
+```
+
+**描述:**
+
+发送端节点数量。
+
+
+### startThreshold
+
+  
+```
+uint32_t AudioSampleAttributes::startThreshold
+```
+
+**描述:**
+
+音频渲染开始阈值。
+
+
+### stopThreshold
+
+  
+```
+uint32_t AudioSampleAttributes::stopThreshold
+```
+
+**描述:**
+
+音频渲染停止阈值。
+
+
+### streamId [1/2]
+
+  
+```
+int32_t AudioSampleAttributes::streamId
+```
+
+**描述:**
+
+渲染或捕获的音频标识符。
+
+
+### streamId [2/2]
+
+  
+```
+int32_t AudioMixExtInfo::streamId
+```
+
+**描述:**
+
+由调用者传递的Render或Capture标识符。
+
+
+### subPorts
+
+  
+```
+struct AudioSubPortCapability* AudioPortCapability::subPorts
+```
+
+**描述:**
+
+支持的子端口列表。
+
+
+### subPortsNum
+
+  
+```
+unsigned int AudioPortCapability::subPortsNum
+```
+
+**描述:**
+
+支持的子端口数目(仅用于输出设备)。
+
+
+### supportSampleFormatNum
+
+  
+```
+uint32_t AudioPortCapability::supportSampleFormatNum
+```
+
+**描述:**
+
+支持的音频样本格式数量。
+
+
+### supportSampleFormats
+
+  
+```
+enum AudioSampleFormat* AudioPortCapability::supportSampleFormats
+```
+
+**描述:**
+
+支持的音频样本格式,详请参考[AudioSampleFormat](_codec.md#audiosampleformat)。
+
+
+### totalBufferFrames
+
+  
+```
+int32_t AudioMmapBufferDescripter::totalBufferFrames
+```
+
+**描述:**
+
+缓冲区总大小,单位:帧。
+
+
+### transferFrameSize
+
+  
+```
+int32_t AudioMmapBufferDescripter::transferFrameSize
+```
+
+**描述:**
+
+传输大小,单位:帧。
+
+
+### tvNSec
+
+  
+```
+int64_t AudioTimeStamp::tvNSec
+```
+
+**描述:**
+
+tvNSec时间,单位:纳秒。
+
+
+### tvSec
+
+  
+```
+int64_t AudioTimeStamp::tvSec
+```
+
+**描述:**
+
+tvSec时间,单位:秒。
+
+
+### type [1/3]
+
+  
+```
+enum AudioCategory AudioSampleAttributes::type
+```
+
+**描述:**
+
+音频类型,详情参考[AudioCategory](#audiocategory)。
+
+
+### type [2/3]
+
+  
+```
+enum AudioPortPin AudioDevExtInfo::type
+```
+
+**描述:**
+
+音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。
+
+
+### type [3/3]
+
+  
+```
+enum AudioPortType AudioRouteNode::type
+```
+
+**描述:**
+
+指定端口类型。
+
+
+### device
+
+  
+```
+ struct AudioDevExtInfo AudioRouteNode::device
+```
+
+**描述:**
+
+设备特定信息。
+
+
+### mix
+
+  
+```
+ struct AudioMixExtInfo AudioRouteNode::mix
+```
+
+**描述:**
+
+音轨特定信息。
+
+
+### session
+
+  
+```
+ struct AudioSessionExtInfo AudioRouteNode::session
+```
+
+**描述:**
+
+会话特定信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md
new file mode 100644
index 0000000000000000000000000000000000000000..c4ddc25428e9e04cacde47a42b131bec1d9e60cf
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md
@@ -0,0 +1,326 @@
+# AudioAdapter
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[InitAllPorts](#initallports)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter) | 初始化一个音频适配器所有的端口驱动&nbsp;[更多...](#initallports) | 
+| (&nbsp;[CreateRender](#createrender)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;const&nbsp;struct&nbsp;[AudioDeviceDescriptor](_audio_device_descriptor.md)&nbsp;\*desc,&nbsp;const&nbsp;struct&nbsp;[AudioSampleAttributes](_audio_sample_attributes.md)&nbsp;\*attrs,&nbsp;struct&nbsp;[AudioRender](_audio_render.md)&nbsp;\*\*render) | 创建一个音频播放(render)接口的对象&nbsp;[更多...](#createrender) | 
+| (&nbsp;[DestroyRender](#destroyrender)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;struct&nbsp;[AudioRender](_audio_render.md)&nbsp;\*render) | 销毁一个音频播放(render)接口的对象&nbsp;[更多...](#destroyrender) | 
+| (&nbsp;[CreateCapture](#createcapture)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;const&nbsp;struct&nbsp;[AudioDeviceDescriptor](_audio_device_descriptor.md)&nbsp;\*desc,&nbsp;const&nbsp;struct&nbsp;[AudioSampleAttributes](_audio_sample_attributes.md)&nbsp;\*attrs,&nbsp;struct&nbsp;[AudioCapture](_audio_capture.md)&nbsp;\*\*capture) | 创建一个音频录音(capture)接口的对象&nbsp;[更多...](#createcapture) | 
+| (&nbsp;[DestroyCapture](#destroycapture)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;struct&nbsp;[AudioCapture](_audio_capture.md)&nbsp;\*capture) | 销毁一个音频录音(capture)接口的对象&nbsp;[更多...](#destroycapture) | 
+| (&nbsp;[GetPortCapability](#getportcapability)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;struct&nbsp;[AudioPort](_audio_port.md)&nbsp;\*port,&nbsp;struct&nbsp;[AudioPortCapability](_audio_port_capability.md)&nbsp;\*capability) | 获取一个音频适配器的端口驱动的能力集&nbsp;[更多...](#getportcapability) | 
+| (&nbsp;[SetPassthroughMode](#setpassthroughmode)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;struct&nbsp;[AudioPort](_audio_port.md)&nbsp;\*port,&nbsp;enum&nbsp;[AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)&nbsp;mode) | 设置音频端口驱动的数据透传模式&nbsp;[更多...](#setpassthroughmode) | 
+| (&nbsp;[GetPassthroughMode](#getpassthroughmode)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;struct&nbsp;[AudioPort](_audio_port.md)&nbsp;\*port,&nbsp;enum&nbsp;[AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)&nbsp;\*mode) | 获取音频端口驱动的数据透传模式&nbsp;[更多...](#getpassthroughmode) | 
+| (&nbsp;[UpdateAudioRoute](#updateaudioroute)&nbsp;)(struct&nbsp;AudioAdapter&nbsp;\*adapter,&nbsp;const&nbsp;struct&nbsp;[AudioRoute](_audio_route.md)&nbsp;\*route,&nbsp;int32_t&nbsp;\*routeHandle) | 更新一个或多个发送端和接受端之间的路由&nbsp;[更多...](#updateaudioroute) | 
+| (&nbsp;[ReleaseAudioRoute](#releaseaudioroute)&nbsp;)(struct&nbsp;&nbsp;\*adapter,&nbsp;int32_t&nbsp;routeHandle) | 释放一个音频路由.&nbsp;[更多...](#releaseaudioroute) | 
+
+
+## **详细描述**
+
+AudioAdapter音频适配器接口
+
+提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建render、创建capture、获取端口能力集等
+
+**参见:**
+
+[AudioRender](_audio_render.md)
+
+[AudioCapture](_audio_capture.md)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### CreateCapture
+
+  
+```
+int32_t(* AudioAdapter::CreateCapture) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture)
+```
+
+**描述:**
+
+创建一个音频录音(capture)接口的对象
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器的指针 | 
+| desc | 指向要启动的音频适配器的描述符的指针 | 
+| attrs | 指向要打开的音频采样属性的指针 | 
+| capture | 指向AudioCapture对象的二级指针 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetPortCapability](#getportcapability)
+
+[DestroyCapture](#destroycapture)
+
+
+### CreateRender
+
+  
+```
+int32_t(* AudioAdapter::CreateRender) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render)
+```
+
+**描述:**
+
+创建一个音频播放(render)接口的对象
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| desc | 待打开的音频设备描述符 | 
+| attrs | 待打开的音频采样属性 | 
+| render | 获取的音频播放接口的对象实例保存到render中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetPortCapability](#getportcapability)
+
+[DestroyRender](#destroyrender)
+
+
+### DestroyCapture
+
+  
+```
+int32_t(* AudioAdapter::DestroyCapture) (struct AudioAdapter *adapter, struct AudioCapture *capture)
+```
+
+**描述:**
+
+销毁一个音频录音(capture)接口的对象
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| capture | 待操作的音频录音接口对象 | 
+
+**注意:**
+
+在音频录音过程中,不能销毁该接口对象
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[CreateCapture](#createcapture)
+
+
+### DestroyRender
+
+  
+```
+int32_t(* AudioAdapter::DestroyRender) (struct AudioAdapter *adapter, struct AudioRender *render)
+```
+
+**描述:**
+
+销毁一个音频播放(render)接口的对象
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| render | 待操作的音频播放接口对象 | 
+
+**注意:**
+
+在音频播放过程中,不能销毁该接口对象
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[CreateRender](#createrender)
+
+
+### GetPassthroughMode
+
+  
+```
+int(* AudioAdapter::GetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode)
+```
+
+**描述:**
+
+获取音频端口驱动的数据透传模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| port | 待获取的端口 | 
+| mode | 获取的传输模式保存到mode中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetPassthroughMode](#setpassthroughmode)
+
+
+### GetPortCapability
+
+  
+```
+int(* AudioAdapter::GetPortCapability) (struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability)
+```
+
+**描述:**
+
+获取一个音频适配器的端口驱动的能力集
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| port | 待获取的端口 | 
+| capability | 获取的端口能力保存到capability中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### InitAllPorts
+
+  
+```
+int(* AudioAdapter::InitAllPorts) (struct AudioAdapter *adapter)
+```
+
+**描述:**
+
+初始化一个音频适配器所有的端口驱动
+
+在音频服务中,调用其他驱动接口前需要首先调用该接口检查端口是否已经初始化完成,如果端口驱动初始化完成,则函数返回值0, 否则返回负值,如果端口没有初始化完成,则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### ReleaseAudioRoute
+
+  
+```
+int32_t(* AudioAdapter::ReleaseAudioRoute) (struct AudioAdapter *adapter, int32_t routeHandle)
+```
+
+**描述:**
+
+释放一个音频路由.
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| routeHandle | 待释放的路由句柄. | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### SetPassthroughMode
+
+  
+```
+int(* AudioAdapter::SetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode)
+```
+
+**描述:**
+
+设置音频端口驱动的数据透传模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| port | 待设置的端口 | 
+| mode | 待设置的传输模式 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetPassthroughMode](#getpassthroughmode)
+
+
+### UpdateAudioRoute
+
+  
+```
+int32_t(* AudioAdapter::UpdateAudioRoute) (struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle)
+```
+
+**描述:**
+
+更新一个或多个发送端和接受端之间的路由
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| adapter | 待操作的音频适配器对象 | 
+| route | 路由信息 | 
+| routeHandle | 生成的路由句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_adapter_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter_descriptor.md
new file mode 100644
index 0000000000000000000000000000000000000000..37968692e35f2e2db9256d19583836daad3789e0
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter_descriptor.md
@@ -0,0 +1,25 @@
+# AudioAdapterDescriptor
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [adapterName](_audio.md#adaptername) | 音频适配器的名称。 | 
+| [portNum](_audio.md#portnum) | 一个音频适配器支持的端口数目。 | 
+| [ports](_audio.md#ports) | 一个音频适配器支持的端口列表。 | 
+
+
+## **详细描述**
+
+音频适配器描述符。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_attribute.md b/zh-cn/device-dev/reference/hdi-apis/_audio_attribute.md
new file mode 100644
index 0000000000000000000000000000000000000000..84a9d471c65afca1d228083706ac4d352a689826
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_attribute.md
@@ -0,0 +1,263 @@
+# AudioAttribute
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[GetFrameSize](#getframesize)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;uint64_t&nbsp;\*size) | 获取音频帧(frame)的大小&nbsp;[更多...](#getframesize) | 
+| (&nbsp;[GetFrameCount](#getframecount)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;uint64_t&nbsp;\*count) | 获取音频buffer中的音频帧数&nbsp;[更多...](#getframecount) | 
+| (&nbsp;[SetSampleAttributes](#setsampleattributes)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;const&nbsp;struct&nbsp;[AudioSampleAttributes](_audio_sample_attributes.md)&nbsp;\*attrs) | 设置音频采样的属性参数&nbsp;[更多...](#setsampleattributes) | 
+| (&nbsp;[GetSampleAttributes](#getsampleattributes)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;struct&nbsp;[AudioSampleAttributes](_audio_sample_attributes.md)&nbsp;\*attrs) | 获取音频采样的属性参数&nbsp;[更多...](#getsampleattributes) | 
+| (&nbsp;[GetCurrentChannelId](#getcurrentchannelid)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;uint32_t&nbsp;\*channelId) | 获取音频的数据通道ID&nbsp;[更多...](#getcurrentchannelid) | 
+| (&nbsp;[SetExtraParams](#setextraparams)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;const&nbsp;char&nbsp;\*keyValueList) | 设置音频拓展参数&nbsp;[更多...](#setextraparams) | 
+| (&nbsp;[GetExtraParams](#getextraparams)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;char&nbsp;\*keyValueList) | 获取音频拓展参数&nbsp;[更多...](#getextraparams) | 
+| (&nbsp;[ReqMmapBuffer](#reqmmapbuffer)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;int32_t&nbsp;reqSize,&nbsp;struct&nbsp;[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)&nbsp;\*desc) | 请求mmap缓冲区&nbsp;[更多...](#reqmmapbuffer) | 
+| (&nbsp;[GetMmapPosition](#getmmapposition)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;uint64_t&nbsp;\*frames,&nbsp;struct&nbsp;[AudioTimeStamp](_audio_time_stamp.md)&nbsp;\*time) | 获取当前mmap的读/写位置&nbsp;[更多...](#getmmapposition) | 
+
+
+## **详细描述**
+
+AudioAttribute音频属性接口
+
+提供音频播放(render)或录音(capture)需要的公共属性驱动能力,包括获取帧(frame)信息、设置采样属性等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### GetCurrentChannelId
+
+  
+```
+int32_t(* AudioAttribute::GetCurrentChannelId) (AudioHandle handle, uint32_t *channelId)
+```
+
+**描述:**
+
+获取音频的数据通道ID
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| channelId | 获取的通道ID保存到channelId中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetExtraParams
+
+  
+```
+int32_t(* AudioAttribute::GetExtraParams) (AudioHandle handle, char *keyValueList)
+```
+
+**描述:**
+
+获取音频拓展参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割 | 
+
+**返回:**
+
+成功返回值0,失败返回负值。
+
+
+### GetFrameCount
+
+  
+```
+int32_t(* AudioAttribute::GetFrameCount) (AudioHandle handle, uint64_t *count)
+```
+
+**描述:**
+
+获取音频buffer中的音频帧数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| count | 一个音频buffer中包含的音频帧数,获取后保存到count中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetFrameSize
+
+  
+```
+int32_t(* AudioAttribute::GetFrameSize) (AudioHandle handle, uint64_t *size)
+```
+
+**描述:**
+
+获取音频帧(frame)的大小
+
+获取一帧音频数据的长度(字节数)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| size | 获取的音频帧大小(字节数)保存到size中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetMmapPosition
+
+  
+```
+int32_t(* AudioAttribute::GetMmapPosition) (AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time)
+```
+
+**描述:**
+
+获取当前mmap的读/写位置
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| frames | 获取的音频帧计数保存到frames中 | 
+| time | 获取的关联时间戳保存到time中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetSampleAttributes
+
+  
+```
+int32_t(* AudioAttribute::GetSampleAttributes) (AudioHandle handle, struct AudioSampleAttributes *attrs)
+```
+
+**描述:**
+
+获取音频采样的属性参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| attrs | 获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetSampleAttributes](#setsampleattributes)
+
+
+### ReqMmapBuffer
+
+  
+```
+int32_t(* AudioAttribute::ReqMmapBuffer) (AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc)
+```
+
+**描述:**
+
+请求mmap缓冲区
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| reqSize | 请求缓冲区的大小 | 
+| desc | 缓冲区描述符 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### SetExtraParams
+
+  
+```
+int32_t(* AudioAttribute::SetExtraParams) (AudioHandle handle, const char *keyValueList)
+```
+
+**描述:**
+
+设置音频拓展参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### SetSampleAttributes
+
+  
+```
+int32_t(* AudioAttribute::SetSampleAttributes) (AudioHandle handle, const struct AudioSampleAttributes *attrs)
+```
+
+**描述:**
+
+设置音频采样的属性参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetSampleAttributes](#getsampleattributes)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_capture.md b/zh-cn/device-dev/reference/hdi-apis/_audio_capture.md
new file mode 100644
index 0000000000000000000000000000000000000000..0cc96d36c54f5325f93f26beb4f2e8ec7daffd6f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_capture.md
@@ -0,0 +1,84 @@
+# AudioCapture
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| control | 音频控制能力接口,详情参考[AudioControl](_audio_control.md) | 
+| attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | 
+| scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | 
+| volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | 
+| (&nbsp;[CaptureFrame](#captureframe)&nbsp;)(struct&nbsp;AudioCapture&nbsp;\*capture,&nbsp;void&nbsp;\*frame,&nbsp;uint64_t&nbsp;requestBytes,&nbsp;uint64_t&nbsp;\*replyBytes) | 从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据)&nbsp;[更多...](#captureframe) | 
+| (&nbsp;[GetCapturePosition](#getcaptureposition)&nbsp;)(struct&nbsp;AudioCapture&nbsp;\*capture,&nbsp;uint64_t&nbsp;\*frames,&nbsp;struct&nbsp;[AudioTimeStamp](_audio_time_stamp.md)&nbsp;\*time) | 获取音频输入帧数的上一次计数&nbsp;[更多...](#getcaptureposition) | 
+
+
+## **详细描述**
+
+AudioCapture音频录音接口。
+
+
+## **类成员变量说明**
+
+
+### CaptureFrame
+
+  
+```
+int32_t(* AudioCapture::CaptureFrame) (struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes)
+```
+
+**描述:**
+
+从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| capture | 待操作的音频录音接口对象 | 
+| frame | 待存放输入数据的音频frame | 
+| requestBytes | 待存放输入数据的音频frame大小(字节数) | 
+| replyBytes | 实际读取到的音频数据长度(字节数),获取后保存到replyBytes中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetCapturePosition
+
+  
+```
+int32_t(* AudioCapture::GetCapturePosition) (struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time)
+```
+
+**描述:**
+
+获取音频输入帧数的上一次计数
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| capture | 待操作的音频录音接口对象 | 
+| frames | 获取的音频帧计数保存到frames中 | 
+| time | 获取的关联时间戳保存到time中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[CaptureFrame](#captureframe)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_control.md b/zh-cn/device-dev/reference/hdi-apis/_audio_control.md
new file mode 100644
index 0000000000000000000000000000000000000000..1d4d71c6d86d3874b823102ae0d71b296daa5794
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_control.md
@@ -0,0 +1,214 @@
+# AudioControl
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[Start](#start)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 启动一个音频播放(render)或录音(capture)处理&nbsp;[更多...](#start) | 
+| (&nbsp;[Stop](#stop)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 停止一个音频播放(render)或录音(capture)处理&nbsp;[更多...](#stop) | 
+| (&nbsp;[Pause](#pause)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 暂停一个音频播放(render)或录音(capture)处理&nbsp;[更多...](#pause) | 
+| (&nbsp;[Resume](#resume)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 恢复一个音频播放(render)或录音(capture)处理&nbsp;[更多...](#resume) | 
+| (&nbsp;[Flush](#flush)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 刷新音频缓冲区buffer中的数据&nbsp;[更多...](#flush) | 
+| (&nbsp;[TurnStandbyMode](#turnstandbymode)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle) | 设置或去设置设备的待机模式&nbsp;[更多...](#turnstandbymode) | 
+| (&nbsp;[AudioDevDump](#audiodevdump)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;int32_t&nbsp;range,&nbsp;int32_t&nbsp;fd) | Dump音频设备信息&nbsp;[更多...](#audiodevdump) | 
+
+
+## **详细描述**
+
+AudioControl音频控制接口。
+
+提供音频播放(render)或录音(capture)需要的公共控制驱动能力,包括Start、Stop、Pause、Resume、Flush等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### AudioDevDump
+
+  
+```
+int32_t(* AudioControl::AudioDevDump) (AudioHandle handle, int32_t range, int32_t fd)
+```
+
+**描述:**
+
+Dump音频设备信息
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| range | Dump信息范围,分为简要信息、全量信息 | 
+| fd | 指定Dump目标文件 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### Flush
+
+  
+```
+int32_t(* AudioControl::Flush) (AudioHandle handle)
+```
+
+**描述:**
+
+刷新音频缓冲区buffer中的数据
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### Pause
+
+  
+```
+int32_t(* AudioControl::Pause) (AudioHandle handle)
+```
+
+**描述:**
+
+暂停一个音频播放(render)或录音(capture)处理
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[Resume](#resume)
+
+
+### Resume
+
+  
+```
+int32_t(* AudioControl::Resume) (AudioHandle handle)
+```
+
+**描述:**
+
+恢复一个音频播放(render)或录音(capture)处理
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[Pause](#pause)
+
+
+### Start
+
+  
+```
+int32_t(* AudioControl::Start) (AudioHandle handle)
+```
+
+**描述:**
+
+启动一个音频播放(render)或录音(capture)处理
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[Stop](#stop)
+
+
+### Stop
+
+  
+```
+int32_t(* AudioControl::Stop) (AudioHandle handle)
+```
+
+**描述:**
+
+停止一个音频播放(render)或录音(capture)处理
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[Start](#start)
+
+
+### TurnStandbyMode
+
+  
+```
+int32_t(* AudioControl::TurnStandbyMode) (AudioHandle handle)
+```
+
+**描述:**
+
+设置或去设置设备的待机模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+
+**返回:**
+
+设置设备待机模式成功返回值0,再次执行后去设置待机模式成功返回正值,失败返回负值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_dev_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_dev_ext_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..1a4a421f8463c9ce844d987f98c89b4cce8cffe9
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_dev_ext_info.md
@@ -0,0 +1,25 @@
+# AudioDevExtInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [moduleId](_audio.md#moduleid-12) | 音频流绑定的模块ID。 | 
+| [type](_audio.md#type-23) | 音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#audioportpin)。 | 
+| [desc](_audio.md#desc-55) | 地址描述。 | 
+
+
+## **详细描述**
+
+音频设备拓展信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_device_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_device_descriptor.md
new file mode 100644
index 0000000000000000000000000000000000000000..5e10acce99f5c951a1daf983a6b01e36fe84b3de
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_device_descriptor.md
@@ -0,0 +1,25 @@
+# AudioDeviceDescriptor
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [portId](_audio.md#portid-24) | 频端口ID。 | 
+| [pins](_audio.md#pins) | 音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#audioportpin)。 | 
+| [desc](_audio.md#desc-15) | 以字符串命名的音频设备。 | 
+
+
+## **详细描述**
+
+音频场景描述符。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_manager.md b/zh-cn/device-dev/reference/hdi-apis/_audio_manager.md
new file mode 100644
index 0000000000000000000000000000000000000000..045023b3ff1ff9db7e0bf85e19d2546fdf4a6fd9
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_manager.md
@@ -0,0 +1,148 @@
+# AudioManager
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[GetAllAdapters](#getalladapters)&nbsp;)(struct&nbsp;AudioAdapterManager&nbsp;\*manager,&nbsp;struct&nbsp;[AudioAdapterDescriptor](_audio_adapter_descriptor.md)&nbsp;\*\*descs,&nbsp;int&nbsp;\*size) | 获取音频驱动中支持的所有适配器的列表&nbsp;[更多...](#getalladapters) | 
+| (&nbsp;[LoadAdapter](#loadadapter)&nbsp;)(struct&nbsp;AudioAdapterManager&nbsp;\*manager,&nbsp;const&nbsp;struct&nbsp;[AudioAdapterDescriptor](_audio_adapter_descriptor.md)&nbsp;\*desc,&nbsp;struct&nbsp;[AudioAdapter](_audio_adapter.md)&nbsp;\*\*adapter) | 加载一个音频适配器(声卡)的驱动&nbsp;[更多...](#loadadapter) | 
+| (&nbsp;[UnloadAdapter](#unloadadapter)&nbsp;)(struct&nbsp;AudioAdapterManager&nbsp;\*manager,&nbsp;struct&nbsp;[AudioAdapter](_audio_adapter.md)&nbsp;\*adapter) | 卸载音频适配器(声卡)的驱动&nbsp;[更多...](#unloadadapter) | 
+| (&nbsp;[ReleaseAudioManagerObject](#releaseaudiomanagerobject)&nbsp;)(struct&nbsp;AudioManager&nbsp;\*object) | 释放音频管理接口对象&nbsp;[更多...](#releaseaudiomanagerobject) | 
+
+
+## **详细描述**
+
+AudioManager音频适配器管理接口
+
+按照音频服务下发的音频适配器(声卡)描述符加载一个具体的音频适配器驱动程序
+
+参见:
+
+[AudioAdapter](_audio_adapter.md)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### GetAllAdapters
+
+  
+```
+int(* AudioManager::GetAllAdapters) (struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size)
+```
+
+**描述:**
+
+获取音频驱动中支持的所有适配器的列表
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| manager | 待操作的音频管理接口对象 | 
+| descs | 获取到的音频适配器列表保存到descs中 | 
+| size | 获取到的音频适配器列表的长度保存到size中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[LoadAdapter](#loadadapter)
+
+
+### LoadAdapter
+
+  
+```
+int(* AudioManager::LoadAdapter) (struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter)
+```
+
+**描述:**
+
+加载一个音频适配器(声卡)的驱动
+
+加载一个具体的音频驱动,例如usb驱动,在具体实现中可能加载的是一个动态链接库(\*.so)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| manager | 待操作的音频管理接口对象 | 
+| desc | 待加载的音频适配器描述符 | 
+| adapter | 获取的音频适配器接口的对象实例保存到adapter中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetAllAdapters](#getalladapters)
+
+[UnloadAdapter](#unloadadapter)
+
+
+### ReleaseAudioManagerObject
+
+  
+```
+bool(* AudioManager::ReleaseAudioManagerObject) (struct AudioManager *object)
+```
+
+**描述:**
+
+释放音频管理接口对象
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| object | 待操作的音频管理接口对象 | 
+
+**返回:**
+
+成功返回ture,失败返回false
+
+
+### UnloadAdapter
+
+  
+```
+void(* AudioManager::UnloadAdapter) (struct AudioAdapterManager *manager, struct AudioAdapter *adapter)
+```
+
+**描述:**
+
+卸载音频适配器(声卡)的驱动
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| manager | 待操作的音频管理接口对象 | 
+| adapter | 待卸载的音频适配器接口的对象 | 
+
+**参见:**
+
+[LoadAdapter](#loadadapter)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_mix_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_mix_ext_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..fcf31a50003dfd54672b80acc06b907f1f80295b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_mix_ext_info.md
@@ -0,0 +1,24 @@
+# AudioMixExtInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [moduleId](_audio.md#moduleid-22) | 流所属模块标识符。 | 
+| [streamId](_audio.md#streamid-22) | 由调用者传递的Render或Capture标识符。 | 
+
+
+## **详细描述**
+
+音轨拓展信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_mmap_buffer_descripter.md b/zh-cn/device-dev/reference/hdi-apis/_audio_mmap_buffer_descripter.md
new file mode 100644
index 0000000000000000000000000000000000000000..cd301a7d69f96715c46423c1ed984d7b59b17173
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_mmap_buffer_descripter.md
@@ -0,0 +1,27 @@
+# AudioMmapBufferDescripter
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [memoryAddress](_audio.md#memoryaddress) | 指向mmap缓冲区的指针。 | 
+| [memoryFd](_audio.md#memoryfd) | mmap缓冲区的文件描述符。 | 
+| [totalBufferFrames](_audio.md#totalbufferframes) | 缓冲区总大小,单位:帧。 | 
+| [transferFrameSize](_audio.md#transferframesize) | 传输大小,单位:帧。 | 
+| [isShareable](_audio.md#isshareable) | mmap缓冲区是否可以在进程间共享。 | 
+
+
+## **详细描述**
+
+mmap缓冲区描述符。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_port.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port.md
new file mode 100644
index 0000000000000000000000000000000000000000..5ad207379d352367e346ca39e607789e4d38207a
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_port.md
@@ -0,0 +1,25 @@
+# AudioPort
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [dir](_audio.md#dir) | 音频端口的类型,详情参考[AudioPortDirection](_audio.md#audioportdirection)。 | 
+| [portId](_audio.md#portid-14) | 音频端口的ID。 | 
+| [portName](_audio.md#portname) | 音频端口的名称。 | 
+
+
+## **详细描述**
+
+音频端口。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port_cap.md
new file mode 100644
index 0000000000000000000000000000000000000000..6545ac35c4833ef5e247a78a03361ce016574928
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_port_cap.md
@@ -0,0 +1,77 @@
+# AudioPortCap
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [sampleFormats](#sampleformats)&nbsp;[[SAMPLE_FMT_NUM](_codec.md#ga9bda75c363e9bcff915cdd521dd7ba84)] | 支持的音频采样格式,详见[AudioSampleFormat](_codec.md#audiosampleformat)。 | 
+| [sampleRate](#samplerate)&nbsp;[[SAMPLE_RATE_NUM](_codec.md#ga0d905eaa05b4b6fcec76924eb795d7fe)] | 支持的音频采样率,详见[AudioSampleRate](_codec.md#audiosamplerate)。 | 
+| [channelLayouts](#channellayouts)&nbsp;[[CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)] | 支持的音频通道数channel&nbsp;layouts。 | 
+| [channelCount](#channelcount)&nbsp;[[CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)] | 支持的音频通道数。 | 
+
+
+## **详细描述**
+
+定义音频编解码能力。
+
+
+## **类成员变量说明**
+
+
+### channelCount
+
+  
+```
+int32_t AudioPortCap::channelCount[CHANNEL_NUM]
+```
+
+**描述:**
+
+支持的音频通道数
+
+
+### channelLayouts
+
+  
+```
+int32_t AudioPortCap::channelLayouts[CHANNEL_NUM]
+```
+
+**描述:**
+
+支持的音频通道数channel layouts
+
+
+### sampleFormats
+
+  
+```
+int32_t AudioPortCap::sampleFormats[SAMPLE_FMT_NUM]
+```
+
+**描述:**
+
+支持的音频采样格式,详见[AudioSampleFormat](_codec.md#audiosampleformat)
+
+
+### sampleRate
+
+  
+```
+int32_t AudioPortCap::sampleRate[SAMPLE_RATE_NUM]
+```
+
+**描述:**
+
+支持的音频采样率,详见[AudioSampleRate](_codec.md#audiosamplerate)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_port_capability.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port_capability.md
new file mode 100644
index 0000000000000000000000000000000000000000..4fbfb7c94e6286adf5b6d23a34f2d2ecd0d239f9
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_port_capability.md
@@ -0,0 +1,34 @@
+# AudioPortCapability
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [deviceType](_audio.md#devicetype) | 设备输出、输入类型。 | 
+| [deviceId](_audio.md#deviceid) | 绑定(bind)设备ID,唯一的设备识别符。 | 
+| [hardwareMode](_audio.md#hardwaremode) | 是否支持设备绑定处理。 | 
+| [formatNum](_audio.md#formatnum) | 支持的音频格式数目。 | 
+| [formats](_audio.md#formats) | 支持的音频格式,详情参考[AudioFormat](_audio.md#audioformat)。 | 
+| [sampleRateMasks](_audio.md#sampleratemasks) | 支持的音频采样频率(8k、16k、32k、48k)。 | 
+| [channelMasks](_audio.md#channelmasks) | 设备的声道布局掩码(mask),详情参考[AudioChannelMask](_audio.md#audiochannelmask)。 | 
+| [channelCount](_audio.md#channelcount-22) | 支持的最大声道总数。 | 
+| [subPortsNum](_audio.md#subportsnum) | 支持的子端口数目(仅用于输出设备)。 | 
+| [subPorts](_audio.md#subports) | 支持的子端口列表。 | 
+| [supportSampleFormatNum](_audio.md#supportsampleformatnum) | 支持的音频样本格式数量。 | 
+| [supportSampleFormats](_audio.md#supportsampleformats) | 支持的音频样本格式,详请参考[AudioSampleFormat](_audio.md#audiosampleformat)。 | 
+
+
+## **详细描述**
+
+音频端口的支持能力。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_render.md b/zh-cn/device-dev/reference/hdi-apis/_audio_render.md
new file mode 100644
index 0000000000000000000000000000000000000000..8f2fbb7f23b9011a2a2c0949356cafd80e58c7c0
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_render.md
@@ -0,0 +1,297 @@
+# AudioRender
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| control | 音频控制能力接口,详情参考[AudioControl](_audio_control.md) | 
+| attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | 
+| scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | 
+| volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | 
+| (&nbsp;[GetLatency](#getlatency)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;uint32_t&nbsp;\*ms) | 获取音频硬件驱动估计的延迟时间&nbsp;[更多...](#getlatency) | 
+| (&nbsp;[RenderFrame](#renderframe)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;const&nbsp;void&nbsp;\*frame,&nbsp;uint64_t&nbsp;requestBytes,&nbsp;uint64_t&nbsp;\*replyBytes) | 往音频驱动中播放(render)一帧输出数据(放音,音频下行数据)&nbsp;[更多...](#renderframe) | 
+| (&nbsp;[GetRenderPosition](#getrenderposition)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;uint64_t&nbsp;\*frames,&nbsp;struct&nbsp;[AudioTimeStamp](_audio_time_stamp.md)&nbsp;\*time) | 获取音频输出帧数的上一次计数&nbsp;[更多...](#getrenderposition) | 
+| (&nbsp;[SetRenderSpeed](#setrenderspeed)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;float&nbsp;speed) | 设置一个音频的播放速度&nbsp;[更多...](#setrenderspeed) | 
+| (&nbsp;[GetRenderSpeed](#getrenderspeed)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;float&nbsp;\*speed) | 获取一个音频当前的播放速度&nbsp;[更多...](#getrenderspeed) | 
+| (&nbsp;[SetChannelMode](#setchannelmode)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;enum&nbsp;[AudioChannelMode](_audio.md#audiochannelmode)&nbsp;mode) | 设置音频播放的通道模式&nbsp;[更多...](#setchannelmode) | 
+| (&nbsp;[GetChannelMode](#getchannelmode)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;enum&nbsp;[AudioChannelMode](_audio.md#audiochannelmode)&nbsp;\*mode) | 获取音频播放当前的通道模式&nbsp;[更多...](#getchannelmode) | 
+| (&nbsp;[RegCallback](#regcallback)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;[RenderCallback](_audio.md#rendercallback)&nbsp;callback,&nbsp;void&nbsp;\*cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知&nbsp;[更多...](#regcallback) | 
+| (&nbsp;[DrainBuffer](#drainbuffer)&nbsp;)(struct&nbsp;AudioRender&nbsp;\*render,&nbsp;enum&nbsp;[AudioDrainNotifyType](_audio.md#audiodrainnotifytype)&nbsp;\*type) | 排空缓冲区中的数据&nbsp;[更多...](#drainbuffer) | 
+
+
+## **详细描述**
+
+AudioRender音频播放接口
+
+提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据(render frame)等
+
+**参见:**
+
+[AudioControl](_audio_control.md)
+
+[AudioAttribute](_audio_attribute.md)
+
+[AudioScene](_audio_scene.md)
+
+[AudioVolume](_audio_volume.md)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### DrainBuffer
+
+  
+```
+int32_t(* AudioRender::DrainBuffer) (struct AudioRender *render, enum AudioDrainNotifyType *type)
+```
+
+**描述:**
+
+排空缓冲区中的数据
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| type | DrainBuffer的操作类型,详情请参考[AudioDrainNotifyType](_audio.md#audiodrainnotifytype) | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[RegCallback](#regcallback)
+
+
+### GetChannelMode
+
+  
+```
+int32_t(* AudioRender::GetChannelMode) (struct AudioRender *render, enum AudioChannelMode *mode)
+```
+
+**描述:**
+
+获取音频播放当前的通道模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| mode | 获取的通道模式保存到mode中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetChannelMode](#setchannelmode)
+
+
+### GetLatency
+
+  
+```
+int32_t(* AudioRender::GetLatency) (struct AudioRender *render, uint32_t *ms)
+```
+
+**描述:**
+
+获取音频硬件驱动估计的延迟时间
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| ms | 获取的延迟时间(单位:毫秒)保存到ms中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### GetRenderPosition
+
+  
+```
+int32_t(* AudioRender::GetRenderPosition) (struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time)
+```
+
+**描述:**
+
+获取音频输出帧数的上一次计数
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| frames | 获取的音频帧计数保存到frames中 | 
+| time | 获取的关联时间戳保存到time中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[RenderFrame](#renderframe)
+
+
+### GetRenderSpeed
+
+  
+```
+int32_t(* AudioRender::GetRenderSpeed) (struct AudioRender *render, float *speed)
+```
+
+**描述:**
+
+获取一个音频当前的播放速度
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| speed | 获取的播放速度保存到speed中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetRenderSpeed](#setrenderspeed)
+
+
+### RegCallback
+
+  
+```
+int32_t(* AudioRender::RegCallback) (struct AudioRender *render, RenderCallback callback, void *cookie)
+```
+
+**描述:**
+
+注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| callback | 注册的回调函数 | 
+| cookie | 回调函数的入参 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[RegCallback](#regcallback)
+
+
+### RenderFrame
+
+  
+```
+int32_t(* AudioRender::RenderFrame) (struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes)
+```
+
+**描述:**
+
+往音频驱动中播放(render)一帧输出数据(放音,音频下行数据)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| frame | 待写入的输出数据的音频frame | 
+| requestBytes | 待写入的输出数据的音频frame大小(字节数) | 
+| replyBytes | 实际写入的音频数据长度(字节数),获取后保存到replyBytes中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+
+### SetChannelMode
+
+  
+```
+int32_t(* AudioRender::SetChannelMode) (struct AudioRender *render, enum AudioChannelMode mode)
+```
+
+**描述:**
+
+设置音频播放的通道模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| speed | 待设置的通道模式 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetChannelMode](#getchannelmode)
+
+
+### SetRenderSpeed
+
+  
+```
+int32_t(* AudioRender::SetRenderSpeed) (struct AudioRender *render, float speed)
+```
+
+**描述:**
+
+设置一个音频的播放速度
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| render | 待操作的音频播放接口对象 | 
+| speed | 待设置的播放速度 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetRenderSpeed](#getrenderspeed)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_route.md b/zh-cn/device-dev/reference/hdi-apis/_audio_route.md
new file mode 100644
index 0000000000000000000000000000000000000000..d4db5ceddec9bf88fbeb75fa15f6c1a61dc57ac5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_route.md
@@ -0,0 +1,26 @@
+# AudioRoute
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [sourcesNum](_audio.md#sourcesnum) | 发送端节点数量。 | 
+| [sources](_audio.md#sources) | 发送端列表。 | 
+| [sinksNum](_audio.md#sinksnum) | 接受端节点数量。 | 
+| [sinks](_audio.md#sinks) | 接受端列表。 | 
+
+
+## **详细描述**
+
+音频路由信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_route_node.md b/zh-cn/device-dev/reference/hdi-apis/_audio_route_node.md
new file mode 100644
index 0000000000000000000000000000000000000000..2686ecf9b5d43ab44660185531ecc550aca6cc71
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_route_node.md
@@ -0,0 +1,28 @@
+# AudioRouteNode
+
+
+## **è¿°**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [portId](_audio.md#portid-44) | 音频端口ID。 | 
+| [role](_audio.md#role) | 指定端口角色为sink或source。 | 
+| [type](_audio.md#type-33) | 指定端口类型。 | 
+| [device](_audio.md#device) | 设备特定信息。 | 
+| [mix](_audio.md#mix) | 音轨特定信息。 | 
+| [session](_audio.md#session) | 会话特定信息。 | 
+
+
+## **详细描述**
+
+音频路由节点。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_sample_attributes.md b/zh-cn/device-dev/reference/hdi-apis/_audio_sample_attributes.md
new file mode 100644
index 0000000000000000000000000000000000000000..8b2c871f1cf272d6f90fbc43ce08b37e108da7f3
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_sample_attributes.md
@@ -0,0 +1,35 @@
+# AudioSampleAttributes
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [type](_audio.md#type-13) | 音频类型,详情参考[AudioCategory](_audio.md#audiocategory)。 | 
+| [interleaved](_audio.md#interleaved) | 音频数据交织的标记。 | 
+| [format](_audio.md#format) | 音频数据格式,详情参考[AudioFormat](_audio.md#audioformat)。 | 
+| [sampleRate](_audio.md#samplerate) | 音频采样频率。 | 
+| [channelCount](_audio.md#channelcount-12) | 音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 | 
+| [period](_audio.md#period) | 音频采样周期。 | 
+| [frameSize](_audio.md#framesize) | 音频数据的帧大小。 | 
+| [isBigEndian](_audio.md#isbigendian) | 音频数据的大端标志。 | 
+| [isSignedData](_audio.md#issigneddata) | 音频数据的有符号或无符号标志。 | 
+| [startThreshold](_audio.md#startthreshold) | 音频渲染开始阈值。 | 
+| [stopThreshold](_audio.md#stopthreshold) | 音频渲染停止阈值。 | 
+| [silenceThreshold](_audio.md#silencethreshold) | 音频捕获缓冲区阈值。 | 
+| [streamId](_audio.md#streamid-12) | 渲染或捕获的音频标识符。 | 
+
+
+## **详细描述**
+
+音频采样属性。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_scene.md b/zh-cn/device-dev/reference/hdi-apis/_audio_scene.md
new file mode 100644
index 0000000000000000000000000000000000000000..520381a9b410129142f620ecb394f8fa2183ce94
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_scene.md
@@ -0,0 +1,100 @@
+# AudioScene
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[CheckSceneCapability](#checkscenecapability)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;const&nbsp;struct&nbsp;[AudioSceneDescriptor](_audio_scene_descriptor.md)&nbsp;\*scene,&nbsp;bool&nbsp;\*supported) | 是否支持某个音频场景的配置&nbsp;[更多...](#checkscenecapability) | 
+| (&nbsp;[SelectScene](#selectscene)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;const&nbsp;struct&nbsp;[AudioSceneDescriptor](_audio_scene_descriptor.md)&nbsp;\*scene) | 选择音频场景&nbsp;[更多...](#selectscene) | 
+
+
+## **详细描述**
+
+AudioScene音频场景接口。
+
+提供音频播放(render)或录音(capture)需要的公共场景驱动能力,包括选择音频场景等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### CheckSceneCapability
+
+  
+```
+int32_t(* AudioScene::CheckSceneCapability) (AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported)
+```
+
+**描述:**
+
+是否支持某个音频场景的配置
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| scene | 待获取的音频场景描述符 | 
+| supported | 是否支持的状态保存到supported中,true表示支持,false表示不支持 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SelectScene](#selectscene)
+
+
+### SelectScene
+
+  
+```
+int32_t(* AudioScene::SelectScene) (AudioHandle handle, const struct AudioSceneDescriptor *scene)
+```
+
+**描述:**
+
+选择音频场景
+
+- 1. 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备
+  - 在媒体播放场景scene为media_speaker
+  - 在语音通话免提场景scene为voice_speaker
+
+- 2. 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game)
+
+- 3. 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| scene | 待设置的音频场景描述符 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[CheckSceneCapability](#checkscenecapability)
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_scene_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_scene_descriptor.md
new file mode 100644
index 0000000000000000000000000000000000000000..624073d4aec715fb57f5695527a5d8cd662c5d05
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_scene_descriptor.md
@@ -0,0 +1,30 @@
+# AudioSceneDescriptor
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述&nbsp;[AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [scene](_audio.md#scene) | 音频场景的名称。 | 
+| [desc](_audio.md#desc-25) | 音频设备描述符。 | 
+
+
+## **详细描述**
+
+音频场景描述符。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_session_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_session_ext_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..d48ad307922f7be094c3e4492497e7564a9a70e3
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_session_ext_info.md
@@ -0,0 +1,23 @@
+# AudioSessionExtInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [sessionType](_audio.md#sessiontype) | 音频会话类型。 | 
+
+
+## **详细描述**
+
+会话拓展信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_sub_port_capability.md b/zh-cn/device-dev/reference/hdi-apis/_audio_sub_port_capability.md
new file mode 100644
index 0000000000000000000000000000000000000000..1bc223b1d5f70bb6b1725cf4d184216cc1c93e3f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_sub_port_capability.md
@@ -0,0 +1,25 @@
+# AudioSubPortCapability
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [portId](_audio.md#portid-34) | 子端口ID。 | 
+| [desc](_audio.md#desc-45) | 以字符串命名的子端口。 | 
+| [mask](_audio.md#mask) | 数据透传模式,详情参考[AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)。 | 
+
+
+## **详细描述**
+
+音频子端口的支持能力。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_time_stamp.md b/zh-cn/device-dev/reference/hdi-apis/_audio_time_stamp.md
new file mode 100644
index 0000000000000000000000000000000000000000..ec53fdefc97c8e41d22e4b68f00796577b63b74e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_time_stamp.md
@@ -0,0 +1,26 @@
+# AudioTimeStamp
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [tvSec](_audio.md#tvsec) | tvSec时间,单位:秒。 | 
+| [tvNSec](_audio.md#tvnsec) | tvNSec时间,单位:纳秒。 | 
+
+
+## **详细描述**
+
+音频时间戳。
+
+时间定义,POSIX timespec的替代品。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_audio_volume.md b/zh-cn/device-dev/reference/hdi-apis/_audio_volume.md
new file mode 100644
index 0000000000000000000000000000000000000000..2766ba7eb2bb60cb95e4281799707f2ceb81abd1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_audio_volume.md
@@ -0,0 +1,242 @@
+# AudioVolume
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[SetMute](#setmute)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;bool&nbsp;mute) | 设置音频的静音状态&nbsp;[更多...](#setmute) | 
+| (&nbsp;[GetMute](#getmute)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;bool&nbsp;\*mute) | 获取音频的静音状态&nbsp;[更多...](#getmute) | 
+| (&nbsp;[SetVolume](#setvolume)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;float&nbsp;volume) | 设置一个音频流的音量&nbsp;[更多...](#setvolume) | 
+| (&nbsp;[GetVolume](#getvolume)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;float&nbsp;\*volume) | 获取一个音频流的音量&nbsp;[更多...](#getvolume) | 
+| (&nbsp;[GetGainThreshold](#getgainthreshold)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;float&nbsp;\*min,&nbsp;float&nbsp;\*max) | 获取音频流增益的阈值&nbsp;[更多...](#getgainthreshold) | 
+| (&nbsp;[GetGain](#getgain)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;float&nbsp;\*gain) | 获取音频流的增益&nbsp;[更多...](#getgain) | 
+| (&nbsp;[SetGain](#setgain)&nbsp;)([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79)&nbsp;handle,&nbsp;float&nbsp;gain) | 设置音频流的增益&nbsp;[更多...](#setgain) | 
+
+
+## **详细描述**
+
+AudioVolume音频音量接口。
+
+提供音频播放(render)或录音(capture)需要的公共音量驱动能力,包括静音操作、设置音量、设置增益等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### GetGain
+
+  
+```
+int32_t(* AudioVolume::GetGain) (AudioHandle handle, float *gain)
+```
+
+**描述:**
+
+获取音频流的增益
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| gain | 保存当前获取到的增益到gain中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetGainThreshold](#getgainthreshold)
+
+[SetGain](#setgain)
+
+
+### GetGainThreshold
+
+  
+```
+int32_t(* AudioVolume::GetGainThreshold) (AudioHandle handle, float *min, float *max)
+```
+
+**描述:**
+
+获取音频流增益的阈值
+
+在具体的功能实现中,可以根据芯片平台的实际情况来进行处理:
+
+- 1. 可以使用实际的增益值,例如增益的范围为-50db ~ 6db
+
+- 2. 也可以将增益范围设定为0.0~1.0,如果增益的范围为-50db ~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| min | 获取的音频增益的阈值下限保存到min中 | 
+| max | 获取的音频增益的阈值上限保存到max中 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetGain](#getgain)
+
+[SetGain](#setgain)
+
+
+### GetMute
+
+  
+```
+int32_t(* AudioVolume::GetMute) (AudioHandle handle, bool *mute)
+```
+
+**描述:**
+
+获取音频的静音状态
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| mute | 获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetMute](#setmute)
+
+
+### GetVolume
+
+  
+```
+int32_t(* AudioVolume::GetVolume) (AudioHandle handle, float *volume)
+```
+
+**描述:**
+
+获取一个音频流的音量
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| volume | 获取的音量保存到volume中,范围0.0~1.0 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[SetVolume](#setvolume)
+
+
+### SetGain
+
+  
+```
+int32_t(* AudioVolume::SetGain) (AudioHandle handle, float gain)
+```
+
+**描述:**
+
+设置音频流的增益
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| gain | gain&nbsp;待设置的增益 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetGainThreshold](#getgainthreshold)
+
+[GetGain](#getgain)
+
+
+### SetMute
+
+  
+```
+int32_t(* AudioVolume::SetMute) (AudioHandle handle, bool mute)
+```
+
+**描述:**
+
+设置音频的静音状态
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| mute | 待设置的静音状态,true表示静音操作、false表示取消静音操作 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
+
+**参见:**
+
+[GetMute](#getmute)
+
+
+### SetVolume
+
+  
+```
+int32_t(* AudioVolume::SetVolume) (AudioHandle handle, float volume)
+```
+
+**描述:**
+
+设置一个音频流的音量。
+
+音量的取值范围是0.0~1.0,如果音频服务中的音量等级为15级(0 ~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15)
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 待操作的音频句柄 | 
+| volume | 待设置的音量,范围0.0~1.0 | 
+
+**返回:**
+
+成功返回值0,失败返回负值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md b/zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..3f269e41cebe579b6dd22d6ea14b78eb7f3128de
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md
@@ -0,0 +1,111 @@
+# AuthResultInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [result](#result) | 用户身份认证结果。 | 
+| [freezingTime](#freezingtime) | 认证方式被冻结的时间。 | 
+| [remainTimes](#remaintimes) | 认证方式距离被冻结的可处理认证请求次数。 | 
+| [msgs](#msgs) | 执行器发送的消息。 | 
+| [token](#token) | 用户身份认证令牌。 | 
+| rootSecret | 保护文件加密密钥的密钥。 | 
+
+
+## **详细描述**
+
+用户身份认证结果信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### freezingTime
+
+  
+```
+int AuthResultInfo::freezingTime
+```
+
+**描述:**
+
+认证方式被冻结的时间。
+
+
+### msgs
+
+  
+```
+struct ExecutorSendMsg [] AuthResultInfo::msgs
+```
+
+**描述:**
+
+执行器发送的消息。
+
+
+### remainTimes
+
+  
+```
+int AuthResultInfo::remainTimes
+```
+
+**描述:**
+
+认证方式距离被冻结的可处理认证请求次数。
+
+
+### result
+
+  
+```
+unsigned int AuthResultInfo::result
+```
+
+**描述:**
+
+用户身份认证结果。
+
+
+### token
+
+  
+```
+unsigned char [] AuthResultInfo::token
+```
+
+**描述:**
+
+用户身份认证令牌。
+
+
+### rootSecret
+
+  
+```
+unsigned char [] AuthResultInfo::rootSecret
+```
+
+**描述:**
+
+保护文件加密密钥的密钥。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_auth_solution.md b/zh-cn/device-dev/reference/hdi-apis/_auth_solution.md
new file mode 100644
index 0000000000000000000000000000000000000000..8a43490939301ffa64c3dc9b11ce588041ee6e69
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_auth_solution.md
@@ -0,0 +1,98 @@
+# AuthSolution
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [userId](#userid) | 用户ID。 | 
+| [authTrustLevel](#authtrustlevel) | 认证结果可信等级。 | 
+| [authType](#authtype) | 用户认证凭据类型AuthType}。 | 
+| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | 
+| [challenge](#challenge) | 挑战值,用于签发认证令牌。 | 
+
+
+## **详细描述**
+
+认证方案。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authTrustLevel
+
+  
+```
+unsigned int AuthSolution::authTrustLevel
+```
+
+**描述:**
+
+认证结果可信等级。
+
+
+### authType
+
+  
+```
+enum AuthType AuthSolution::authType
+```
+
+**描述:**
+
+用户认证凭据类型AuthType}。
+
+
+### challenge
+
+  
+```
+unsigned char [] AuthSolution::challenge
+```
+
+**描述:**
+
+挑战值,用于签发认证令牌。
+
+
+### executorSensorHint
+
+  
+```
+unsigned int AuthSolution::executorSensorHint
+```
+
+**描述:**
+
+既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。
+
+
+### userId
+
+  
+```
+int AuthSolution::userId
+```
+
+**描述:**
+
+用户ID。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_battery_info.md b/zh-cn/device-dev/reference/hdi-apis/_battery_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..8373d179faf623504f0e9deee42a05dd4be0ca68
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_battery_info.md
@@ -0,0 +1,224 @@
+# BatteryInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [capacity](#capacity) | 表示电池的电量百分比。 | 
+| [voltage](#voltage) | 表示电池的电压。 | 
+| [temperature](#temperature) | 表示电池的温度 | 
+| [healthState](#healthstate) | 表示电池的健康状态。 | 
+| [pluggedType](#pluggedtype) | 表示电池的充电设备类型。 | 
+| [pluggedMaxCurrent](#pluggedmaxcurrent) | 表示电池的最大充电电流。 | 
+| [pluggedMaxVoltage](#pluggedmaxvoltage) | 表示电池的最大充电电压。 | 
+| [chargeState](#chargestate) | 表示电池的充电状态。 | 
+| [chargeCounter](#chargecounter) | 表示电池的充电次数。 | 
+| [totalEnergy](#totalenergy) | 表示电池的总容量。 | 
+| [curAverage](#curaverage) | 表示电池的平均电流。 | 
+| [curNow](#curnow) | 表示电池的实时电流。 | 
+| [remainEnergy](#remainenergy) | 表示电池的剩余容量。 | 
+| [present](#present) | 表示是否支持电池或者电池是否在位。 | 
+| [technology](#technology) | 表示电池的技术型号。 | 
+
+
+## **详细描述**
+
+电池相关信息。
+
+**Since:**
+
+3.1
+
+
+## **类成员变量说明**
+
+
+### capacity
+
+  
+```
+int BatteryInfo::capacity
+```
+
+**描述:**
+
+表示电池的电量百分比。
+
+
+### chargeCounter
+
+  
+```
+int BatteryInfo::chargeCounter
+```
+
+**描述:**
+
+表示电池的充电次数。
+
+
+### chargeState
+
+  
+```
+int BatteryInfo::chargeState
+```
+
+**描述:**
+
+表示电池的充电状态。
+
+
+### curAverage
+
+  
+```
+int BatteryInfo::curAverage
+```
+
+**描述:**
+
+表示电池的平均电流。
+
+
+### curNow
+
+  
+```
+int BatteryInfo::curNow
+```
+
+**描述:**
+
+表示电池的实时电流。
+
+
+### healthState
+
+  
+```
+int BatteryInfo::healthState
+```
+
+**描述:**
+
+表示电池的健康状态。
+
+
+### pluggedMaxCurrent
+
+  
+```
+int BatteryInfo::pluggedMaxCurrent
+```
+
+**描述:**
+
+表示电池的最大充电电流。
+
+
+### pluggedMaxVoltage
+
+  
+```
+int BatteryInfo::pluggedMaxVoltage
+```
+
+**描述:**
+
+表示电池的最大充电电压。
+
+
+### pluggedType
+
+  
+```
+int BatteryInfo::pluggedType
+```
+
+**描述:**
+
+表示电池的充电设备类型。
+
+
+### present
+
+  
+```
+byte BatteryInfo::present
+```
+
+**描述:**
+
+表示是否支持电池或者电池是否在位。
+
+
+### remainEnergy
+
+  
+```
+int BatteryInfo::remainEnergy
+```
+
+**描述:**
+
+表示电池的剩余容量。
+
+
+### technology
+
+  
+```
+String BatteryInfo::technology
+```
+
+**描述:**
+
+表示电池的技术型号。
+
+
+### temperature
+
+  
+```
+int BatteryInfo::temperature
+```
+
+**描述:**
+
+表示电池的温度
+
+
+### totalEnergy
+
+  
+```
+int BatteryInfo::totalEnergy
+```
+
+**描述:**
+
+表示电池的总容量。
+
+
+### voltage
+
+  
+```
+int BatteryInfo::voltage
+```
+
+**描述:**
+
+表示电池的电压。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_buffer_data.md b/zh-cn/device-dev/reference/hdi-apis/_buffer_data.md
new file mode 100644
index 0000000000000000000000000000000000000000..667b9b2a71c852b359534877e1f4c7294afa1137
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_buffer_data.md
@@ -0,0 +1,24 @@
+# BufferData
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [phyAddr](_display.md#phyaddr-12) | 物理内存地址。 | 
+| [virAddr](_display.md#viraddr) | 虚拟内存地址。 | 
+
+
+## **详细描述**
+
+定义一层的缓冲区数据,包括虚拟和物理内存地址。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_camera.md b/zh-cn/device-dev/reference/hdi-apis/_camera.md
new file mode 100644
index 0000000000000000000000000000000000000000..066935359619d140db859247ec934dc16ac93ad6
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_camera.md
@@ -0,0 +1,1837 @@
+# Camera
+
+
+## **汇总**
+
+
+### 文件
+
+| 文件 | 描述 |
+| -------- | -------- |
+| [icamera_device.h](icamera__device_8h.md) | Camera设备操作接口。 |
+| [icamera_device_callback.h](icamera__device__callback_8h.md) | Camera设备的回调接口,主要包含Camera设备发生错误时和上报metadata的回调函数。 |
+| [icamera_host.h](icamera__host_8h.md) | Camera服务的管理类,对上层提供HDI接口。 |
+| [icamera_host_callback.h](icamera__host__callback_8h.md) | ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 |
+| [ioffline_stream_operator.h](ioffline__stream__operator_8h.md) | 离线流的操作接口。 |
+| [istream_operator.h](istream__operator_8h.md) | 流的操作接口。 |
+| [istream_operator_callback.h](istream__operator__callback_8h.md) | [IStreamOperator](istream__operator_8h.md)相关的回调,这些回调均由调用者实现。 |
+| [types.h](types_8h.md) | Camera模块HDI接口使用的数据类型。 |
+
+
+### ç±»
+
+| 类 | 描述 |
+| -------- | -------- |
+| [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) | Camera设备操作。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) |
+| [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) | Camera设备操作回调。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) |
+| [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) | Camera服务的管理类。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) |
+| [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) | Camera服务的管理回调。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) |
+| [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) | 离线流的操作类。[更多...](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) |
+| [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) | 流的操作类。[更多...](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) |
+| [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) | 流的操作回调类。[更多...](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) |
+| [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) | 流信息,用于创建流时传入相关的配置参数。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_stream_info.md) |
+| [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | 流的属性。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) |
+| [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) | 捕获请求的相关信息。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_info.md) |
+| [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | 捕获结束相关信息,用于捕获结束回调&nbsp;**OnCaptureEnded**。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) |
+| [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | 流错误信息,用于回调&nbsp;**OnCaptureError**。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) |
+
+
+### 类型定义
+
+| 类型定义 | 描述 |
+| -------- | -------- |
+| **OHOS::Camera::CameraAbility**&nbsp;=&nbsp;CameraMetadata | Camera设备能力集合。 |
+| **OHOS::Camera::CameraSetting**&nbsp;=&nbsp;CameraMetadata | Camera设置参数,包括sensor帧率,3A相关参数等。 |
+| **OHOS::Camera::MetaType**&nbsp;=&nbsp;int32_t | 整型。 |
+
+
+### 枚举
+
+| 枚举 | 描述 |
+| -------- | -------- |
+| [OHOS::Camera::CamRetCode](#camretcode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;&nbsp;&nbsp;OHOS::Camera::NO_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::CAMERA_BUSY&nbsp;=&nbsp;-1,&nbsp;OHOS::Camera::INSUFFICIENT_RESOURCES&nbsp;=&nbsp;-2,&nbsp;OHOS::Camera::INVALID_ARGUMENT&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;OHOS::Camera::METHOD_NOT_SUPPORTED&nbsp;=&nbsp;-4,&nbsp;OHOS::Camera::CAMERA_CLOSED&nbsp;=&nbsp;-5,&nbsp;OHOS::Camera::DEVICE_ERROR&nbsp;=&nbsp;-6&nbsp;} | HDI接口的返回值。&nbsp;[更多...](#camretcode) |
+| [OHOS::Camera::ResultCallbackMode](#resultcallbackmode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::PER_FRAME,&nbsp;OHOS::Camera::ON_CHANGED&nbsp;} | metadata的上报模式。&nbsp;[更多...](#resultcallbackmode) |
+| [OHOS::Camera::OperationMode](#operationmode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::NORMAL&nbsp;=&nbsp;0&nbsp;} | 流的使用模式。&nbsp;[更多...](#operationmode) |
+| [OHOS::Camera::StreamIntent](#streamintent)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;&nbsp;&nbsp;OHOS::Camera::PREVIEW&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::VIDEO&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::STILL_CAPTURE&nbsp;=&nbsp;2,&nbsp;OHOS::Camera::POST_VIEW&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;OHOS::Camera::ANALYZE&nbsp;=&nbsp;4,&nbsp;OHOS::Camera::CUSTOM&nbsp;=&nbsp;5&nbsp;} | 流的类型。&nbsp;[更多...](#streamintent) |
+| [OHOS::Camera::EncodeType](#encodetype)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::ENCODE_TYPE_NULL&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::ENCODE_TYPE_H264&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::ENCODE_TYPE_H265&nbsp;=&nbsp;2,&nbsp;OHOS::Camera::ENCODE_TYPE_JPEG&nbsp;=&nbsp;3&nbsp;} | 流数据的编码类型。&nbsp;[更多...](#encodetype) |
+| [OHOS::Camera::StreamSupportType](#streamsupporttype)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::DYNAMIC_SUPPORTED,&nbsp;OHOS::Camera::RE_CONFIGURED_REQUIRED,&nbsp;OHOS::Camera::NOT_SUPPORTED&nbsp;} | 动态配置流的切换方式,使用场景参考&nbsp;[IsStreamsSupported](#isstreamssupported)&nbsp;。&nbsp;[更多...](#streamsupporttype) |
+| [OHOS::Camera::CameraStatus](#camerastatus)&nbsp;{&nbsp;OHOS::Camera::UN_AVAILABLE&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::AVAILABLE&nbsp;=&nbsp;1&nbsp;} | Camera设备状态。&nbsp;[更多...](#camerastatus) |
+| [OHOS::Camera::FlashlightStatus](#flashlightstatus)&nbsp;:&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::FLASHLIGHT_OFF&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::FLASHLIGHT_ON&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::FLASHLIGHT_UNAVAILABLE&nbsp;=&nbsp;2&nbsp;} | 闪光灯状态。&nbsp;[更多...](#flashlightstatus) |
+| [OHOS::Camera::CameraEvent](#cameraevent):&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::CAMERA_EVENT_DEVICE_ADD&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::CAMERA_EVENT_DEVICE_RMV&nbsp;=&nbsp;1&nbsp;} | Camera事件。&nbsp;[更多...](#cameraevent) |
+| [OHOS::Camera::ErrorType](#errortype)&nbsp;:&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::FATAL_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::REQUEST_TIMEOUT&nbsp;=&nbsp;1&nbsp;} | 设备错误类型,用于设备错误回调&nbsp;[OnError](#onerror)。&nbsp;[更多...](#errortype) |
+| [OHOS::Camera::StreamError](#streamerror)&nbsp;{&nbsp;OHOS::Camera::UNKNOWN_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::BUFFER_LOST&nbsp;=&nbsp;1&nbsp;} | 流错误类型,用于流错误类型&nbsp;[CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。&nbsp;[更多...](#streamerror) |
+
+
+### 函数
+
+| 函数 | 描述 |
+| -------- | -------- |
+| **OHOS::Camera::ICameraDevice::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.Device") | IPC通信token校验。 |
+| [OHOS::Camera::ICameraDevice::GetStreamOperator](#getstreamoperator)&nbsp;(const&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)&nbsp;&gt;&nbsp;&amp;streamOperator)=0 | 获取流操作句柄。&nbsp;[更多...](#getstreamoperator) |
+| [OHOS::Camera::ICameraDevice::UpdateSettings](#updatesettings)&nbsp;(const&nbsp;std::shared_ptr&lt;&nbsp;CameraSetting&nbsp;&gt;&nbsp;&amp;settings)=0 | 更新设备控制参数。&nbsp;[更多...](#updatesettings) |
+| [OHOS::Camera::ICameraDevice::SetResultMode](#setresultmode)&nbsp;(const&nbsp;[ResultCallbackMode](#resultcallbackmode)&nbsp;&amp;mode)=0 | 设置metadata上报模式,逐帧上报还是设备状态变化时上报。&nbsp;[更多...](#setresultmode) |
+| [OHOS::Camera::ICameraDevice::GetEnabledResults](#getenabledresults)&nbsp;(std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 查询使能的metadata。&nbsp;[更多...](#getenabledresults) |
+| [OHOS::Camera::ICameraDevice::EnableResult](#enableresult)&nbsp;(const&nbsp;std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 打开metadata上报开关。&nbsp;[更多...](#enableresult) |
+| [OHOS::Camera::ICameraDevice::DisableResult](#disableresult)&nbsp;(const&nbsp;std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 关闭metadata上报开关。&nbsp;[更多...](#disableresult) |
+| [OHOS::Camera::ICameraDevice::Close](#close)&nbsp;()=0 | 关闭Camera设备。&nbsp;[更多...](#close) |
+| **OHOS::Camera::ICameraDeviceCallback::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.DeviceCallback") | IPC通信token校验。 |
+| [OHOS::Camera::ICameraDeviceCallback::OnError](#onerror)&nbsp;([ErrorType](#errortype)&nbsp;type,&nbsp;int32_t&nbsp;errorCode)=0 | 设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。&nbsp;[更多...](#onerror) |
+| [OHOS::Camera::ICameraDeviceCallback::OnResult](#onresult)&nbsp;(uint64_t&nbsp;timestamp,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;result)=0 | 上报Camera设备相关的metadata的回调,上报方式查看&nbsp;[SetResultMode](#setresultmode)。&nbsp;[更多...](#onresult) |
+| **OHOS::Camera::ICameraHost::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.Host") | IPC通信token校验。 |
+| [OHOS::Camera::ICameraHost::Get](#get)&nbsp;(const&nbsp;char&nbsp;\*serviceName) | 获取ICameraHost实例。&nbsp;[更多...](#get) |
+| [OHOS::Camera::ICameraHost::SetCallback](#setcallback)&nbsp;(const&nbsp;OHOS::sptr&lt;&nbsp;[ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)&nbsp;&gt;&nbsp;&amp;callback)=0 | 设置ICameraHost回调接口,回调函数参考&nbsp;[ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。&nbsp;[更多...](#setcallback) |
+| [OHOS::Camera::ICameraHost::GetCameraIds](#getcameraids)&nbsp;(std::vector&lt;&nbsp;std::string&nbsp;&gt;&nbsp;&amp;cameraIds)=0 | 获取当前可用的Camera设备ID列表。&nbsp;[更多...](#getcameraids) |
+| [OHOS::Camera::ICameraHost::GetCameraAbility](#getcameraability)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;std::shared_ptr&lt;&nbsp;CameraAbility&nbsp;&gt;&nbsp;&amp;ability)=0 | 获取Camera设备能力集合。&nbsp;[更多...](#getcameraability) |
+| [OHOS::Camera::ICameraHost::OpenCamera](#opencamera)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;const&nbsp;OHOS::sptr&lt;&nbsp;[ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)&nbsp;&gt;&nbsp;&amp;device)=0 | 打开Camera设备。&nbsp;[更多...](#opencamera) |
+| [OHOS::Camera::ICameraHost::SetFlashlight](#setflashlight)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;bool&nbsp;&amp;isEnable)=0 | 打开或关闭闪光灯。&nbsp;[更多...](#setflashlight) |
+| **OHOS::Camera::ICameraHostCallback::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.HostCallback") | IPC通信token校验。 |
+| [OHOS::Camera::ICameraHostCallback::OnCameraStatus](#oncamerastatus)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[CameraStatus](#camerastatus)&nbsp;status)=0 | 用于Camera设备状态变化时上报状态信息给调用者。&nbsp;[更多...](#oncamerastatus) |
+| [OHOS::Camera::ICameraHostCallback::OnFlashlightStatus](#onflashlightstatus)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[FlashlightStatus](#flashlightstatus)&nbsp;status)=0 | 用于在闪光灯状态变化时上报状态信息给调用者。&nbsp;[更多...](#onflashlightstatus) |
+| [OHOS::Camera::ICameraHostCallback::OnCameraEvent](#oncameraevent)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[CameraEvent](#cameraevent)&nbsp;event)=0 | 在相机事件发生时调用。&nbsp;[更多...](#oncameraevent) |
+| **OHOS::Camera::IOfflineStreamOperator::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.OfflineStreamOperator") | IPC通信token校验。 |
+| [OHOS::Camera::IOfflineStreamOperator::CancelCapture](#cancelcapture-12)&nbsp;(int&nbsp;captureId)=0 | 取消捕获请求。&nbsp;[更多...](#cancelcapture-12) |
+| [OHOS::Camera::IOfflineStreamOperator::ReleaseStreams](#releasestreams-12)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 释放离线流。&nbsp;[更多...](#releasestreams-12) |
+| [OHOS::Camera::IOfflineStreamOperator::Release](#release)&nbsp;()=0 | 释放所有离线流。&nbsp;[更多...](#release) |
+| **OHOS::Camera::IStreamOperator::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.StreamOperator") | IPC通信token校验。 |
+| [OHOS::Camera::IStreamOperator::IsStreamsSupported](#isstreamssupported)&nbsp;([OperationMode](#operationmode)&nbsp;mode,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;modeSetting,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)&nbsp;&gt;&gt;&nbsp;&amp;info,&nbsp;[StreamSupportType](#streamsupporttype)&nbsp;&amp;type)=0 | 查询是否支持添加参数对应的流&nbsp;[更多...](#isstreamssupported) |
+| [OHOS::Camera::IStreamOperator::CreateStreams](#createstreams)&nbsp;(const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)&nbsp;&gt;&gt;&nbsp;&amp;streamInfos)=0 | 创建流。&nbsp;[更多...](#createstreams) |
+| [OHOS::Camera::IStreamOperator::ReleaseStreams](#releasestreams-22)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 释放流。&nbsp;[更多...](#releasestreams-22) |
+| [OHOS::Camera::IStreamOperator::CommitStreams](#commitstreams)&nbsp;([OperationMode](#operationmode)&nbsp;mode,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;modeSetting)=0 | 配置流。&nbsp;[更多...](#commitstreams) |
+| [OHOS::Camera::IStreamOperator::GetStreamAttributes](#getstreamattributes)&nbsp;(std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)&nbsp;&gt;&gt;&nbsp;&amp;attributes)=0 | 获取流的属性。&nbsp;[更多...](#getstreamattributes) |
+| [OHOS::Camera::IStreamOperator::AttachBufferQueue](#attachbufferqueue)&nbsp;(int&nbsp;streamId,&nbsp;const&nbsp;OHOS::sptr&lt;&nbsp;OHOS::IBufferProducer&nbsp;&gt;&nbsp;&amp;producer)=0 | 绑定生产者句柄和指定流。&nbsp;[更多...](#attachbufferqueue) |
+| [OHOS::Camera::IStreamOperator::DetachBufferQueue](#detachbufferqueue)&nbsp;(int&nbsp;streamId)=0 | 解除生产者句柄和指定流的绑定关系。&nbsp;[更多...](#detachbufferqueue) |
+| [OHOS::Camera::IStreamOperator::Capture](#capture)&nbsp;(int&nbsp;captureId,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;[CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)&nbsp;&gt;&nbsp;&amp;info,&nbsp;bool&nbsp;isStreaming)=0 | 捕获图像。&nbsp;[更多...](#capture) |
+| [OHOS::Camera::IStreamOperator::CancelCapture](#cancelcapture-22)&nbsp;(int&nbsp;captureId)=0 | 取消捕获。&nbsp;[更多...](#cancelcapture-22) |
+| [OHOS::Camera::IStreamOperator::ChangeToOfflineStream](#changetoofflinestream)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds,&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)&nbsp;&gt;&nbsp;&amp;offlineOperator)=0 | 将指定流转换成离线流。&nbsp;[更多...](#changetoofflinestream) |
+| **OHOS::Camera::IStreamOperatorCallback::DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.StreamOperatorCallback") | IPC通信token校验。 |
+| [OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted](#oncapturestarted)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;int32_t&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 捕获开始回调,在捕获开始时调用。&nbsp;[更多...](#oncapturestarted) |
+| [OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded](#oncaptureended)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)&nbsp;&gt;&gt;&nbsp;&amp;infos)=0 | 捕获结束回调,在捕获结束时调用。&nbsp;[更多...](#oncaptureended) |
+| [OHOS::Camera::IStreamOperatorCallback::OnCaptureError](#oncaptureerror)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)&nbsp;&gt;&gt;&nbsp;&amp;infos)=0 | 捕获错误回调,在捕获过程中发生错误时调用。&nbsp;[更多...](#oncaptureerror) |
+| [OHOS::Camera::IStreamOperatorCallback::OnFrameShutter](#onframeshutter)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;int32_t&nbsp;&gt;&nbsp;&amp;streamIds,&nbsp;uint64_t&nbsp;timestamp)=0 | 帧捕获回调。&nbsp;[更多...](#onframeshutter) |
+
+
+### 变量
+
+| 变量 | 描述 |
+| -------- | -------- |
+| [OHOS::Camera::StreamInfo::streamId_](#streamid-14) | 流的ID,用于在设备内唯一标识一条流。 |
+| [OHOS::Camera::StreamInfo::width_](#width-12) | 图像宽度。 |
+| [OHOS::Camera::StreamInfo::height_](#height-12) | 图像高度。 |
+| [OHOS::Camera::StreamInfo::format_](#format) | 图像格式。 |
+| [OHOS::Camera::StreamInfo::dataspace_](#dataspace) | 图像颜色空间。 |
+| [OHOS::Camera::StreamInfo::intent_](#intent) | 流类型。 |
+| [OHOS::Camera::StreamInfo::tunneledMode_](#tunneledmode) | 隧道模式,值为true时开启,false关闭。 |
+| [OHOS::Camera::StreamInfo::bufferQueue_](#bufferqueue) | 图形提供的生产者句柄。 |
+| [OHOS::Camera::StreamInfo::minFrameDuration_](#minframeduration) | 最小帧间隔。 |
+| [OHOS::Camera::StreamInfo::encodeType_](#encodetype) | 编码类型。 |
+| [OHOS::Camera::StreamAttribute::streamId_](#streamid-24) | 流的ID,用于在设备内唯一标识一条流。 |
+| [OHOS::Camera::StreamAttribute::width_](#width-22) | 图像宽度。 |
+| [OHOS::Camera::StreamAttribute::height_](#height-22) | 图像高度。 |
+| [OHOS::Camera::StreamAttribute::overrideFormat_](#overrideformat) | 重写的图像格式。 |
+| [OHOS::Camera::StreamAttribute::overrideDataspace_](#overridedataspace) | 重写的图像颜色空间。 |
+| [OHOS::Camera::StreamAttribute::producerUsage_](#producerusage) | 重写后的生产者的使用方式。 |
+| [OHOS::Camera::StreamAttribute::producerBufferCount_](#producerbuffercount) | 重写后的生产者缓存数量。 |
+| [OHOS::Camera::StreamAttribute::maxBatchCaptureCount_](#maxbatchcapturecount) | 连拍支持的最大捕获帧数量。 |
+| [OHOS::Camera::StreamAttribute::maxCaptureCount_](#maxcapturecount) | 最大的并发捕获请求个数,默认为1。 |
+| [OHOS::Camera::CaptureInfo::streamIds_](#streamids) | 捕获的流ID集合。 |
+| [OHOS::Camera::CaptureInfo::captureSetting_](#capturesetting) | 捕获的配置信息。 |
+| [OHOS::Camera::CaptureInfo::enableShutterCallback_](#enableshuttercallback) | 使能捕获回调。 |
+| [OHOS::Camera::CaptureEndedInfo::streamId_](#streamid-34) | 捕获的流ID。 |
+| [OHOS::Camera::CaptureEndedInfo::frameCount_](#framecount) | 捕获结束时已经抓取的帧数。 |
+| [OHOS::Camera::CaptureErrorInfo::streamId_](#streamid-44) | 流ID。 |
+| [OHOS::Camera::CaptureErrorInfo::error_](#error) | 错误类型。 |
+
+
+## **详细描述**
+
+Camera模块接口定义。
+
+Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。
+
+**Since:**
+
+1.0
+
+
+## **枚举类型说明**
+
+
+### CameraEvent
+
+
+```
+enum OHOS::Camera::CameraEvent : uint32_t
+```
+
+**描述:**
+
+Camera事件。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| CAMERA_EVENT_DEVICE_ADD | Camera设备增加事件。 |
+| CAMERA_EVENT_DEVICE_RMV | Camera设备删除事件。 |
+
+
+### CameraStatus
+
+
+```
+enum OHOS::Camera::CameraStatus
+```
+
+**描述:**
+
+Camera设备状态。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| UN_AVAILABLE | 设备当前不在位或者不可用。 |
+| AVAILABLE | 设备当前可用。 |
+
+
+### CamRetCode
+
+
+```
+enum OHOS::Camera::CamRetCode : int32_t
+```
+
+**描述:**
+
+HDI接口的返回值。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| NO_ERROR | 调用成功。 |
+| CAMERA_BUSY | 设备当前忙。 |
+| INSUFFICIENT_RESOURCES | 资源不足。 |
+| INVALID_ARGUMENT | 参数错误。 |
+| METHOD_NOT_SUPPORTED | 不支持当前调用方法。 |
+| CAMERA_CLOSED | Camera设备已经关闭。 |
+| DEVICE_ERROR | 驱动层发生严重错误。 |
+
+
+### EncodeType
+
+
+```
+enum OHOS::Camera::EncodeType : int32_t
+```
+
+**描述:**
+
+流数据的编码类型。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| ENCODE_TYPE_NULL | 未设置编码类型。 |
+| ENCODE_TYPE_H264 | 编码类型为H264。 |
+| ENCODE_TYPE_H265 | 编码类型为H265。 |
+| ENCODE_TYPE_JPEG | 编码类型为JPEG。 |
+
+
+### ErrorType
+
+
+```
+enum OHOS::Camera::ErrorType : uint32_t
+```
+
+**描述:**
+
+设备错误类型,用于设备错误回调 **OnError**。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| FATAL_ERROR | 严重错误,需要关闭Camera设备。 |
+| REQUEST_TIMEOUT | 请求超时,需要关闭Camera设备。 |
+
+
+### FlashlightStatus
+
+
+```
+enum OHOS::Camera::FlashlightStatus : uint32_t
+```
+
+**描述:**
+
+闪光灯状态。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| FLASHLIGHT_OFF | 闪光灯关闭。 |
+| FLASHLIGHT_ON | 闪光灯开启。 |
+| FLASHLIGHT_UNAVAILABLE | 闪光灯当前不可用。 |
+
+
+### OperationMode
+
+
+```
+enum OHOS::Camera::OperationMode : int32_t
+```
+
+**描述:**
+
+流的使用模式。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| NORMAL | 普通模式。 |
+
+
+### ResultCallbackMode
+
+
+```
+enum OHOS::Camera::ResultCallbackMode : int32_t
+```
+
+**描述:**
+
+metadata的上报模式。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| PER_FRAME | 每帧上报。 |
+| ON_CHANGED | 设备状态变化时上报。 |
+
+
+### StreamError
+
+
+```
+enum OHOS::Camera::StreamError
+```
+
+**描述:**
+
+流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| UNKNOWN_ERROR | 流未知错误。 |
+| BUFFER_LOST | 丢包。 |
+
+
+### StreamIntent
+
+
+```
+enum OHOS::Camera::StreamIntent : int32_t
+```
+
+**描述:**
+
+流的类型。
+
+| 枚举值 | **描述** |
+| -------- | -------- |
+| PREVIEW | 流数据用于显示,即预览流。 |
+| VIDEO | 流数据用于编码生成录像,即录像流。 |
+| STILL_CAPTURE | 流数据用于编码生成照片,即拍照流。 |
+| POST_VIEW | 流数据用于保存缩略图。 |
+| ANALYZE | 流数据用于图像分析。 |
+| CUSTOM | 自定义类型。 |
+
+
+### StreamSupportType
+
+
+```
+enum OHOS::Camera::StreamSupportType : int32_t
+```
+
+**描述:**
+
+动态配置流的切换方式,使用场景参考 [IsStreamsSupported](#isstreamssupported) 。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| DYNAMIC_SUPPORTED | 支持动态配置流,对应的流参数直接生效。 |
+| RE_CONFIGURED_REQUIRED | 不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。 |
+| NOT_SUPPORTED | 不支持对应的流参数配置。 |
+
+
+## **函数说明**
+
+
+### AttachBufferQueue()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr < OHOS::IBufferProducer > & producer )
+```
+
+**描述:**
+
+绑定生产者句柄和指定流。
+
+如果在 [CreateStreams](#createstreams) 创建流时已经指定了生产者句柄,则不需要调用该接口。如果需要重新绑定, 需先调用 [DetachBufferQueue](#detachbufferqueue) 进行解绑,然后再绑定。 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,那么不需要绑定生产者句柄, 此时在创建流时 [CreateStreams](#createstreams) 的 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) 参数的生产者句柄bufferQueue_为空,而 tunneledMode_需设置为false。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamId | [IN]&nbsp;用于标识要绑定的流。 |
+| producer | [IN]&nbsp;生产者句柄。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[DetachBufferQueue](#detachbufferqueue)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### CancelCapture() [1/2]
+
+
+```
+virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId)
+```
+
+**描述:**
+
+取消捕获请求。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;用于标识要取消的捕获请求。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+
+### CancelCapture() [2/2]
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::CancelCapture (int captureId)
+```
+
+**描述:**
+
+取消捕获。
+
+取消连续捕获时会调用 **OnCaptureEnded**。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | 用于标识要取消的捕获请求 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[Capture](#capture)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### Capture()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< CaptureInfo > & info, bool isStreaming )
+```
+
+**描述:**
+
+捕获图像。
+
+本接口必须在调用 [CommitStreams](#commitstreams) 配置流之后调用。 图像捕获有两种模式,分别是连续捕获和单次捕获。
+
+- 连续捕获即触发之后模块内部进行连续的捕获, 消费者可以连续收到图像数据,不需要多次调用本接口,若再次调用了本接口, 则停止当前捕获,更新捕获信息,再进行一次新的捕获,多用于预览、录像或者连拍场景。
+
+- 单次捕获即触发之后只捕获一帧图像数据,用于单次拍照场景。 捕获启动时,会调用 **OnCaptureStarted** 来通知调用者捕获已经启动。
+
+连续捕获需调用 [CancelCapture](#cancelcapture-22) 来停止捕获。 捕获结束时,会调用 **OnCaptureEnded** 来通知调用者捕获的帧计数等信息。 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的 enableShutterCallback_ 使能 **OnFrameShutter**,使能后每次捕获触发 **OnFrameShutter** 对于多个流同时捕获的场景,本模块内部保证同时上报多路流捕获数据。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;捕获请求的唯一标识,由调用者指定,调用者需保证在Camera设备打开期间,捕获请求ID是唯一的。 |
+| info | [IN]&nbsp;捕获请求的参数信息,具体信息查看&nbsp;[CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)。 |
+| isStreaming | [IN]&nbsp;是否连续捕获,true表示连续捕获,否则为单次捕获。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+OnFrameShutter
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### ChangeToOfflineStream()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > & streamIds, OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IOfflineStreamOperator > & offlineOperator )
+```
+
+**描述:**
+
+将指定流转换成离线流。
+
+离线流只能由拍照流转换而来,其他流不支持。 一些设备处理能力有限,可能导致拍照时算法处理时间较长,从而引起捕获请求堆积在模块内部,而转换为离线 流之后,可关闭底层设备,由离线流接替,进行后续的处理。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamIds | [IN]&nbsp;用于指定要转换成离线流的流集合。 |
+| callback | [IN]&nbsp;用于设置离线流的回调。 |
+| offlineOperator | [OUT]&nbsp;转换后的离线流。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### Close()
+
+
+```
+virtual void OHOS::Camera::ICameraDevice::Close ()
+```
+
+**描述:**
+
+关闭Camera设备。
+
+**参见:**
+
+[OpenCamera](#opencamera)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### CommitStreams()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting )
+```
+
+**描述:**
+
+配置流。
+
+本接口需在调用 [CreateStreams](#createstreams) 创建流之后调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| mode | [IN]&nbsp;流运行的模式,支持的模式定义在&nbsp;**OperationMode**。 |
+| modeSetting | [IN]&nbsp;流的配置参数,包括帧率,ZOOM等信息。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### CreateStreams()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> & streamInfos)
+```
+
+**描述:**
+
+创建流。
+
+此函数接口依据输入的流信息创建流,调用该接口之前需先通过 [IsStreamsSupported](#isstreamssupported) 查询HAL是否支持要创建的流。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamInfos | [IN]&nbsp;流信息列表,流信息定义在&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)。输入的流信息可能会被修改,需通过&nbsp;[GetStreamAttributes](#getstreamattributes)&nbsp;获取最新的流属性。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### DetachBufferQueue()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId)
+```
+
+**描述:**
+
+解除生产者句柄和指定流的绑定关系。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamId | [IN]&nbsp;用于标识要解除绑定的流。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看[CamRetCode](#camretcode)。
+
+**参见:**
+
+[AttachBufferQueue](#attachbufferqueue)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### DisableResult()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > & results)
+```
+
+**描述:**
+
+关闭metadata上报开关。
+
+屏蔽之后,相应的**OnResult**不再上报,需 [EnableResult](#enableresult) 使能之后才上报。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| results | [IN]&nbsp;需要关闭上报开关的metadata。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[EnableResult](#enableresult)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### EnableResult()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > & results)
+```
+
+**描述:**
+
+打开metadata上报开关。
+
+**OnResult** 只上报此接口使能后的metadata。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| results | [IN]&nbsp;需要打开上报开关的metadata。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[DisableResult](#disableresult)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### Get()
+
+
+```
+static sptr<ICameraHost> OHOS::Camera::ICameraHost::Get (const char * serviceName)
+```
+
+**描述:**
+
+获取ICameraHost实例。
+
+此接口为Camera调用入口,需要先通过该接口获取ICameraHost实例,然后通过ICameraHost实例进行其它操作。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| serviceName | [IN]&nbsp;要获取的ICameraHost实例的名称,当前实现中实例名称固定为camera_service。 |
+
+**返回:**
+
+成功返回ICameraHost实例,失败返回nullptr。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GetCameraAbility()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraAbility (const std::string & cameraId, std::shared_ptr< CameraAbility > & ability )
+```
+
+**描述:**
+
+获取Camera设备能力集合。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | [IN]&nbsp;用于指定要操作的Camera设备,通过&nbsp;[GetCameraIds](#getcameraids)&nbsp;获取。 |
+| ability | [OUT]&nbsp;返回cameraId对应Camera设备的能力集合。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[GetCameraIds](#getcameraids)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GetCameraIds()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > & cameraIds)
+```
+
+**描述:**
+
+获取当前可用的Camera设备ID列表。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraIds | [OUT]&nbsp;返回当前可用的设备列表 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[GetCameraAbility](#getcameraability)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GetEnabledResults()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > & results)
+```
+
+**描述:**
+
+查询使能的metadata。
+
+[EnableResult](#enableresult) 使能需要上报的metadata之后,可通过此接口查询使能的metadata。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| results | [OUT]&nbsp;所有使能的metadata。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GetStreamAttributes()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> & attributes)
+```
+
+**描述:**
+
+获取流的属性。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| attributes | [OUT]&nbsp;用于获取流的属性。在调用[CreateStreams](#createstreams)&nbsp;时,通过参数streamInfos携带的流信息可能会被重写,因此通过该接口获取的流属性可能会和&nbsp;[CreateStreams](#createstreams)&nbsp;输入的流信息存在差异。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GetStreamOperator()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IStreamOperator > & streamOperator )
+```
+
+**描述:**
+
+获取流操作句柄。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| callback | [IN]&nbsp;设置流回调接口,详细可查看&nbsp;[IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md),&nbsp;用于上报捕获开始&nbsp;**OnCaptureStarted**,捕获结束&nbsp;**OnCaptureEnded**,&nbsp;**OnCaptureError**&nbsp;捕获错误等信息。 |
+| streamOperator | [OUT]&nbsp;返回流操作句柄。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### IsStreamsSupported()
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting, const std::vector< std::shared_ptr< StreamInfo >> & info, StreamSupportType & type )
+```
+
+**描述:**
+
+查询是否支持添加参数对应的流。
+
+流是指从底层设备输出,经本模块内部各环节处理,最终传递到上层服务或者应用的一组数据序列 本模块支持的流的类型有预览流,录像流,拍照流等,更多类型可查看 **StreamIntent**。
+
+此函数接口根据输入的运行模式和配置信息以及当前模块中正在运行的流,查询是否支持动态添加流。
+
+- 如果本模块支持在不停止其他流的情况下添加新流,或者即使停止其他流但上层服务或应用不感知,则通过type参数返回DYNAMIC_SUPPORTED,上层服务或应用可以直接添加新流。
+
+- 如果本模块支持添加新流但需要上层服务或应用先停止所有流的捕获,则通过type参数返回RE_CONFIGURED_REQUIRED。
+
+- 如果不支持添加输入的新流,则返回NOT_SUPPORTED。
+
+此函数需要在调用 [CreateStreams](#createstreams) 创建流之前调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| mode | [IN]&nbsp;流运行的模式,支持的模式参考&nbsp;**OperationMode**。 |
+| modeSetting | [IN]&nbsp;流的配置,包括帧率,3A等配置信息。 |
+| info | [IN]&nbsp;流的配置信息,具体参考&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)。 |
+| type | [OUT]&nbsp;对动态配置流的支持类型,支持类型定义在&nbsp;**StreamSupportType**。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnCameraEvent()
+
+
+```
+virtual void OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string & cameraId, CameraEvent event )
+```
+
+**描述:**
+
+在相机事件发生时调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | 表示相机事件绑定的相机ID。 |
+| event | 表示相机事件类型。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnCameraStatus()
+
+
+```
+virtual void OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string & cameraId, CameraStatus status )
+```
+
+**描述:**
+
+用于Camera设备状态变化时上报状态信息给调用者。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | [IN]&nbsp;状态发生变化的Camera设备ID。 |
+| status | [IN]&nbsp;最新的设备状态。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnCaptureEnded()
+
+
+```
+virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> & infos )
+```
+
+**描述:**
+
+捕获结束回调,在捕获结束时调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;用于标识回调对应的捕获请求。 |
+| infos | [IN]&nbsp;捕获结束相关信息。 |
+
+**参见:**
+
+[OnCaptureStarted](#oncapturestarted)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnCaptureError()
+
+
+```
+virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> & infos )
+```
+
+**描述:**
+
+捕获错误回调,在捕获过程中发生错误时调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;用于标识回调对应的捕获请求。 |
+| infos | [IN]&nbsp;捕获错误信息列表。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnCaptureStarted()
+
+
+```
+virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > & streamIds )
+```
+
+**描述:**
+
+捕获开始回调,在捕获开始时调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;用于标识回调对应的捕获请求。 |
+| streamIds | [IN]&nbsp;回调对应的流集合。 |
+
+**参见:**
+
+[OnCaptureEnded](#oncaptureended)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnError()
+
+
+```
+virtual void OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode )
+```
+
+**描述:**
+
+设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| type | [IN]&nbsp;错误类型,具体错误类型可参考&nbsp;**ErrorType**。 |
+| errorCode | [IN]&nbsp;错误码,当前暂未使用。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnFlashlightStatus()
+
+
+```
+virtual void OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string & cameraId, FlashlightStatus status )
+```
+
+**描述:**
+
+用于在闪光灯状态变化时上报状态信息给调用者。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | [IN]&nbsp;状态发生变化的闪关灯所绑定的Camera设备ID。 |
+| status | [IN]&nbsp;最新的闪光灯状态。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnFrameShutter()
+
+
+```
+virtual void OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > & streamIds, uint64_t timestamp )
+```
+
+**描述:**
+
+帧捕获回调。
+
+通过 **Capture** 的输入参数 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的enableShutterCallback_使能该回调, 使能后每次捕获均会触发此回调。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| captureId | [IN]&nbsp;用于标识回调对应的捕获请求。 |
+| streamIds | [IN]&nbsp;回调对应的流集合。 |
+| timestamp | [IN]&nbsp;该接口被调用时的时间戳。 |
+
+**参见:**
+
+Capture
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OnResult()
+
+
+```
+virtual void OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > & result )
+```
+
+**描述:**
+
+上报Camera设备相关的metadata的回调,上报方式查看 [SetResultMode](#setresultmode)。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| timestamp | [IN]&nbsp;metadata上报的时间戳。 |
+| result | [IN]&nbsp;上报的metadata,上报的metadata由&nbsp;**EnableResult**&nbsp;指定,&nbsp;可通过&nbsp;**GetEnabledResults**&nbsp;查询,**DisableResult**&nbsp;关闭上报开关。 |
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### OpenCamera()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraHost::OpenCamera (const std::string & cameraId, const OHOS::sptr< ICameraDeviceCallback > & callback, OHOS::sptr< ICameraDevice > & device )
+```
+
+**描述:**
+
+打开Camera设备。
+
+打开指定的Camera设备,通过此接口可以获取到ICameraDevice对象,通过ICameraDevice对象可以操作具体的Camera设备。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | [IN]&nbsp;需要打开的Camera设备ID,可通过&nbsp;[GetCameraIds](#getcameraids)&nbsp;接口获取当前已有Camera设备列表。 |
+| callback | [IN]&nbsp;Camera设备相关的回调函数,具体参见&nbsp;[ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)。 |
+| device | [OUT]&nbsp;返回当前要打开的Camera设备ID对应的ICameraDevice对象。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[GetCameraIds](#getcameraids)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### Release()
+
+
+```
+virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::Release ()
+```
+
+**描述:**
+
+释放所有离线流。
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### ReleaseStreams() [1/2]
+
+
+```
+virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > & streamIds)
+```
+
+**描述:**
+
+释放离线流。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamIds | 用于标识要释放的离线流集合。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### ReleaseStreams() [2/2]
+
+
+```
+virtual CamRetCode OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > & streamIds)
+```
+
+**描述:**
+
+释放流。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| streamIds | [IN]&nbsp;要释放的流ID列表。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功;
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### SetCallback()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > & callback)
+```
+
+**描述:**
+
+设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| callback | [IN]&nbsp;要设置的回调函数。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### SetFlashlight()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraHost::SetFlashlight (const std::string & cameraId, bool & isEnable )
+```
+
+**描述:**
+
+打开或关闭闪光灯。
+
+该接口只能由打开cameraId指定Camera设备的调用者调用。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| cameraId | [IN]&nbsp;闪光灯对应的Camera设备ID。 |
+| isEnable | [IN]&nbsp;true打开闪光灯,false关闭闪光灯。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**参见:**
+
+[GetCameraIds](#getcameraids)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### SetResultMode()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode & mode)
+```
+
+**描述:**
+
+设置metadata上报模式,逐帧上报还是设备状态变化时上报。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| mode | [IN]&nbsp;metadata的上报模式,逐帧上报或者设备状态变化时上报,查看&nbsp;**ResultCallbackMode**。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### UpdateSettings()
+
+
+```
+virtual CamRetCode OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > & settings)
+```
+
+**描述:**
+
+更新设备控制参数。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| settings | [IN]&nbsp;Camera设置参数,包括sensor帧率,3A相关参数等。 |
+
+**返回:**
+
+NO_ERROR 表示执行成功。
+
+其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **变量说明**
+
+
+### bufferQueue_
+
+
+```
+OHOS::sptr<OHOS::IBufferProducer> OHOS::Camera::StreamInfo::bufferQueue_
+```
+
+**描述:**
+
+图形提供的生产者句柄。
+
+
+### captureSetting_
+
+
+```
+std::shared_ptr<CameraMetadata> OHOS::Camera::CaptureInfo::captureSetting_
+```
+
+**描述:**
+
+捕获的配置信息。
+
+
+### dataspace_
+
+
+```
+int OHOS::Camera::StreamInfo::dataspace_
+```
+
+**描述:**
+
+图像颜色空间。
+
+
+### enableShutterCallback_
+
+
+```
+bool OHOS::Camera::CaptureInfo::enableShutterCallback_
+```
+
+**描述:**
+
+使能捕获回调,每一次捕获后都会触发 **OnFrameShutter**。
+
+
+### encodeType_
+
+
+```
+EncodeType OHOS::Camera::StreamInfo::encodeType_
+```
+
+**描述:**
+
+编码类型。
+
+
+### error_
+
+
+```
+StreamError OHOS::Camera::CaptureErrorInfo::error_
+```
+
+**描述:**
+
+错误类型。
+
+
+### format_
+
+
+```
+int OHOS::Camera::StreamInfo::format_
+```
+
+**描述:**
+
+图像格式。
+
+
+### frameCount_
+
+
+```
+int OHOS::Camera::CaptureEndedInfo::frameCount_
+```
+
+**描述:**
+
+捕获结束时已经抓取的帧数。
+
+
+### height_ [1/2]
+
+
+```
+int OHOS::Camera::StreamInfo::height_
+```
+
+**描述:**
+
+图像高度。
+
+
+### height_ [2/2]
+
+
+```
+int OHOS::Camera::StreamAttribute::height_
+```
+
+**描述:**
+
+图像高度。
+
+
+### intent_
+
+
+```
+StreamIntent OHOS::Camera::StreamInfo::intent_
+```
+
+**描述:**
+
+流类型。
+
+
+### maxBatchCaptureCount_
+
+
+```
+int OHOS::Camera::StreamAttribute::maxBatchCaptureCount_
+```
+
+**描述:**
+
+连拍支持的最大捕获帧数量。
+
+
+### maxCaptureCount_
+
+
+```
+int OHOS::Camera::StreamAttribute::maxCaptureCount_
+```
+
+**描述:**
+
+最大的并发捕获请求个数,默认为1。
+
+
+### minFrameDuration_
+
+
+```
+int OHOS::Camera::StreamInfo::minFrameDuration_
+```
+
+**描述:**
+
+最小帧间隔。
+
+
+### overrideDataspace_
+
+
+```
+int OHOS::Camera::StreamAttribute::overrideDataspace_
+```
+
+**描述:**
+
+重写的图像颜色空间。
+
+
+### overrideFormat_
+
+
+```
+int OHOS::Camera::StreamAttribute::overrideFormat_
+```
+
+**描述:**
+
+重写的图像格式。
+
+
+### producerBufferCount_
+
+
+```
+int OHOS::Camera::StreamAttribute::producerBufferCount_
+```
+
+**描述:**
+
+重写后的生产者缓存数量。
+
+
+### producerUsage_
+
+
+```
+int OHOS::Camera::StreamAttribute::producerUsage_
+```
+
+**描述:**
+
+重写后的生产者的使用方式。
+
+
+### streamId_ [1/4]
+
+
+```
+int OHOS::Camera::StreamInfo::streamId_
+```
+
+**描述:**
+
+流的ID,用于在设备内唯一标识一条流。
+
+
+### streamId_ [2/4]
+
+
+```
+int OHOS::Camera::StreamAttribute::streamId_
+```
+
+**描述:**
+
+流的ID,用于在设备内唯一标识一条流。
+
+
+### streamId_ [3/4]
+
+
+```
+int OHOS::Camera::CaptureEndedInfo::streamId_
+```
+
+**描述:**
+
+捕获的流ID。
+
+
+### streamId_ [4/4]
+
+
+```
+int OHOS::Camera::CaptureErrorInfo::streamId_
+```
+
+**描述:**
+
+流ID。
+
+
+### streamIds_
+
+
+```
+std::vector<int> OHOS::Camera::CaptureInfo::streamIds_
+```
+
+**描述:**
+
+捕获的流ID集合。
+
+
+### tunneledMode_
+
+
+```
+bool OHOS::Camera::StreamInfo::tunneledMode_
+```
+
+**描述:**
+
+隧道模式,值为true时开启,false关闭。
+
+开启隧道模式后,HAL不直接和上层交互,通过图形提供的生产者句柄来传递帧数据, 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,此时需要关闭隧道模式。
+
+
+### width_ [1/2]
+
+
+```
+int OHOS::Camera::StreamInfo::width_
+```
+
+**描述:**
+
+图像宽度。
+
+
+### width_ [2/2]
+
+
+```
+int OHOS::Camera::StreamAttribute::width_
+```
+
+**描述:**
+
+图像宽度。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_codec.md b/zh-cn/device-dev/reference/hdi-apis/_codec.md
new file mode 100644
index 0000000000000000000000000000000000000000..f3eea39775c59854ce737f602b09aed8711e69fd
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_codec.md
@@ -0,0 +1,1346 @@
+# Codec
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [codec_callback_if.h](codec__callback__if_8h.md) | 主要包括回调函数接口定义。 | 
+| [codec_common_type.h](codec__common__type_8h.md) | Codec模块接口定义中使用的自定义数据类型。 | 
+| [codec_component_if.h](codec__component__if_8h.md) | 主要包括Codec组件接口定义。 | 
+| [codec_component_manager.h](codec__component__manager_8h.md) | 主要包括Codec组件管理类接口。 | 
+| [codec_component_type.h](codec__component__type_8h.md) | Codec模块接口定义中使用的自定义数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [CodecCallbackType](_codec_callback_type.md) | Codec回调接口定义。&nbsp;[更多...](_codec_callback_type.md) | 
+| [Alignment](_alignment.md) | 对齐结构定义,包含宽高的对齐值。&nbsp;[更多...](_alignment.md) | 
+| [Rect](_rect.md) | 矩形的定义。&nbsp;[更多...](_rect.md) | 
+| [RangeValue](_range_value.md) | 取值范围的定义。&nbsp;[更多...](_range_value.md) | 
+| [CodecComponentType](_codec_component_type.md) | Codec组件接口定义。&nbsp;[更多...](_codec_component_type.md) | 
+| [CodecComponentManager](_codec_component_manager.md) | Codec组件管理类接口定义。&nbsp;[更多...](_codec_component_manager.md) | 
+| [VideoPortCap](_video_port_cap.md) | 定义视频编解码能力。&nbsp;[更多...](_video_port_cap.md) | 
+| [AudioPortCap](_audio_port_cap.md) | 定义音频编解码能力。&nbsp;[更多...](_audio_port_cap.md) | 
+| [PortCap](union_port_cap.md) | 定义音视频编解码能力。&nbsp;[更多...](union_port_cap.md) | 
+| [CodecCompCapability](_codec_comp_capability.md) | 定义Codec编解码能力。&nbsp;[更多...](_codec_comp_capability.md) | 
+| [OmxCodecBuffer](_omx_codec_buffer.md) | Codec&nbsp;buffer信息的定义。&nbsp;[更多...](_omx_codec_buffer.md) | 
+| [CompVerInfo](_comp_ver_info.md) | 定义组件版本信息。&nbsp;[更多...](_comp_ver_info.md) | 
+| [EventInfo](_event_info.md) | 定义事件上报信息。&nbsp;[更多...](_event_info.md) | 
+| [SupportBufferType](_support_buffer_type.md) | SupportBuffer类型定义。&nbsp;[更多...](_support_buffer_type.md) | 
+| [UseBufferType](_use_buffer_type.md) | UseBuffer类型定义。&nbsp;[更多...](_use_buffer_type.md) | 
+| [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) | BufferHandleUsage类型定义。&nbsp;[更多...](_get_buffer_handle_usage_params.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| SAMPLE_FMT_NUM&nbsp;&nbsp;&nbsp;&nbsp;32 | 采样格式最大值。 | 
+| UUID_LENGTH&nbsp;&nbsp;&nbsp;&nbsp;128 | 定义UUID长度。 | 
+| PIX_FORMAT_NUM&nbsp;&nbsp;&nbsp;&nbsp;16 | 支持的像素格式数组大小。 | 
+| SAMPLE_FORMAT_NUM&nbsp;&nbsp;&nbsp;&nbsp;12 | 支持的音频采样格式数组大小。 | 
+| SAMPLE_RATE_NUM&nbsp;&nbsp;&nbsp;&nbsp;16 | 支持的音频采样率数组大小。 | 
+| CHANNEL_NUM&nbsp;&nbsp;&nbsp;&nbsp;16 | 支持的音频通道数组大小。 | 
+| NAME_LENGTH&nbsp;&nbsp;&nbsp;&nbsp;32 | 组件名称大小。 | 
+| PROFILE_NUM&nbsp;&nbsp;&nbsp;&nbsp;256 | 支持的profile数组大小。 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [CodecType](#codectype)&nbsp;{&nbsp;VIDEO_DECODER,&nbsp;VIDEO_ENCODER,&nbsp;AUDIO_DECODER,&nbsp;AUDIO_ENCODER,&nbsp;&nbsp;&nbsp;INVALID_TYPE&nbsp;} | 枚举编解码的类型。&nbsp;[更多...](#codectype) | 
+| [Profile](#profile)&nbsp;{&nbsp;INVALID_PROFILE&nbsp;=&nbsp;0,&nbsp;AAC_LC_PROFILE&nbsp;=&nbsp;0x1000,&nbsp;AAC_MAIN_PROFILE,&nbsp;AAC_HE_V1_PROFILE,&nbsp;&nbsp;&nbsp;AAC_HE_V2_PROFILE,&nbsp;AAC_LD_PROFILE,&nbsp;AAC_ELD_PROFILE,&nbsp;AVC_BASELINE_PROFILE&nbsp;=&nbsp;0x2000,&nbsp;&nbsp;&nbsp;AVC_MAIN_PROFILE,&nbsp;AVC_HIGH_PROFILE,&nbsp;HEVC_MAIN_PROFILE&nbsp;=&nbsp;0x3000,&nbsp;HEVC_MAIN_10_PROFILE&nbsp;} | 枚举Codec规格。&nbsp;[更多...](#profile) | 
+| [AudioSampleRate](#audiosamplerate)&nbsp;{&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_8000&nbsp;=&nbsp;8000,&nbsp;AUD_SAMPLE_RATE_12000&nbsp;=&nbsp;12000,&nbsp;AUD_SAMPLE_RATE_11025&nbsp;=&nbsp;11025,&nbsp;AUD_SAMPLE_RATE_16000&nbsp;=&nbsp;16000,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_22050&nbsp;=&nbsp;22050,&nbsp;AUD_SAMPLE_RATE_24000&nbsp;=&nbsp;24000,&nbsp;AUD_SAMPLE_RATE_32000&nbsp;=&nbsp;32000,&nbsp;AUD_SAMPLE_RATE_44100&nbsp;=&nbsp;44100,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_48000&nbsp;=&nbsp;48000,&nbsp;AUD_SAMPLE_RATE_64000&nbsp;=&nbsp;64000,&nbsp;AUD_SAMPLE_RATE_96000&nbsp;=&nbsp;96000,&nbsp;AUD_SAMPLE_RATE_INVALID&nbsp;} | 枚举音频采样率。&nbsp;[更多...](#audiosamplerate) | 
+| [CodecCapsMask](#codeccapsmask)&nbsp;{&nbsp;CODEC_CAP_ADAPTIVE_PLAYBACK&nbsp;=&nbsp;0x1,&nbsp;CODEC_CAP_SECURE_PLAYBACK&nbsp;=&nbsp;0x2,&nbsp;CODEC_CAP_TUNNEL_PLAYBACK&nbsp;=&nbsp;0x4,&nbsp;CODEC_CAP_MULTI_PLANE&nbsp;=&nbsp;0x10000&nbsp;} | 枚举播放能力。&nbsp;[更多...](#codeccapsmask) | 
+| [CodecProcessMode](#codecprocessmode)&nbsp;{&nbsp;&nbsp;&nbsp;PROCESS_BLOCKING_INPUT_BUFFER&nbsp;=&nbsp;0X1,&nbsp;PROCESS_BLOCKING_OUTPUT_BUFFER&nbsp;=&nbsp;0X2,&nbsp;PROCESS_BLOCKING_CONTROL_FLOW&nbsp;=&nbsp;0X4,&nbsp;PROCESS_NONBLOCKING_INPUT_BUFFER&nbsp;=&nbsp;0X100,&nbsp;&nbsp;&nbsp;PROCESS_NONBLOCKING_OUTPUT_BUFFER&nbsp;=&nbsp;0X200,&nbsp;PROCESS_NONBLOCKING_CONTROL_FLOW&nbsp;=&nbsp;0X400&nbsp;} | 枚举编解码处理模式。&nbsp;[更多...](#codecprocessmode) | 
+| [AvCodecRole](#avcodecrole)&nbsp;{&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_IMAGE_JPEG&nbsp;=&nbsp;0,&nbsp;MEDIA_ROLETYPE_VIDEO_AVC,&nbsp;MEDIA_ROLETYPE_VIDEO_HEVC,&nbsp;MEDIA_ROLETYPE_AUDIO_FIRST&nbsp;=&nbsp;0x10000,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_AAC&nbsp;=&nbsp;0x10000,&nbsp;MEDIA_ROLETYPE_AUDIO_G711A,&nbsp;MEDIA_ROLETYPE_AUDIO_G711U,&nbsp;MEDIA_ROLETYPE_AUDIO_G726,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_PCM,&nbsp;MEDIA_ROLETYPE_AUDIO_MP3,&nbsp;MEDIA_ROLETYPE_INVALID&nbsp;} | 枚举音视频编解码组件类型。&nbsp;[更多...](#avcodecrole) | 
+| [AudioSampleFormat](#audiosampleformat)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S8,&nbsp;AUDIO_SAMPLE_FORMAT_S8P,&nbsp;AUDIO_SAMPLE_FORMAT_U8,&nbsp;AUDIO_SAMPLE_FORMAT_U8P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S16,&nbsp;AUDIO_SAMPLE_FORMAT_S16P,&nbsp;AUDIO_SAMPLE_FORMAT_U16,&nbsp;AUDIO_SAMPLE_FORMAT_U16P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S24,&nbsp;AUDIO_SAMPLE_FORMAT_S24P,&nbsp;AUDIO_SAMPLE_FORMAT_U24,&nbsp;AUDIO_SAMPLE_FORMAT_U24P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S32,&nbsp;AUDIO_SAMPLE_FORMAT_S32P,&nbsp;AUDIO_SAMPLE_FORMAT_U32,&nbsp;AUDIO_SAMPLE_FORMAT_U32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S64,&nbsp;AUDIO_SAMPLE_FORMAT_S64P,&nbsp;AUDIO_SAMPLE_FORMAT_U64,&nbsp;AUDIO_SAMPLE_FORMAT_U64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_F32,&nbsp;AUDIO_SAMPLE_FORMAT_F32P,&nbsp;AUDIO_SAMPLE_FORMAT_F64,&nbsp;AUDIO_SAMPLE_FORMAT_F64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_U8,&nbsp;AUDIO_SAMPLE_FMT_S16,&nbsp;AUDIO_SAMPLE_FMT_S32,&nbsp;AUDIO_SAMPLE_FMT_FLOAT,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_DOUBLE,&nbsp;AUDIO_SAMPLE_FMT_U8P,&nbsp;AUDIO_SAMPLE_FMT_S16P,&nbsp;AUDIO_SAMPLE_FMT_S32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_FLOATP,&nbsp;AUDIO_SAMPLE_FMT_DOUBLEP,&nbsp;AUDIO_SAMPLE_FMT_INVALID&nbsp;} | 枚举音频采样格式。&nbsp;[更多...](#audiosampleformat) | 
+| [CodecBufferType](#codecbuffertype)&nbsp;{&nbsp;&nbsp;&nbsp;CODEC_BUFFER_TYPE_INVALID&nbsp;=&nbsp;0,&nbsp;CODEC_BUFFER_TYPE_VIRTUAL_ADDR&nbsp;=&nbsp;0x1,&nbsp;CODEC_BUFFER_TYPE_AVSHARE_MEM_FD&nbsp;=&nbsp;0x2,&nbsp;CODEC_BUFFER_TYPE_HANDLE&nbsp;=&nbsp;0x4,&nbsp;&nbsp;&nbsp;CODEC_BUFFER_TYPE_DYNAMIC_HANDLE&nbsp;=&nbsp;0x8&nbsp;} | 定义buffer类型。&nbsp;[更多...](#codecbuffertype) | 
+| [ShareMemTypes](#sharememtypes)&nbsp;{&nbsp;READ_WRITE_TYPE&nbsp;=&nbsp;0x1,&nbsp;READ_ONLY_TYPE&nbsp;=&nbsp;0x2&nbsp;} | 枚举共享内存类型。&nbsp;[更多...](#sharememtypes) | 
+| [OmxIndexCodecExType](#omxindexcodecextype)&nbsp;{&nbsp;OMX_IndexExtBufferTypeStartUnused&nbsp;=&nbsp;OMX_IndexKhronosExtensions&nbsp;+&nbsp;0x00a00000,&nbsp;OMX_IndexParamSupportBufferType,&nbsp;OMX_IndexParamUseBufferType,&nbsp;OMX_IndexParamGetBufferHandleUsage&nbsp;} | 枚举Codec扩展index。&nbsp;[更多...](#omxindexcodecextype) | 
+| [OmxVideoExType](#omxvideoextype)&nbsp;{&nbsp;OMX_VIDEO_CodingHEVC&nbsp;=&nbsp;11&nbsp;} | 枚举Codec扩展编码类型。&nbsp;[更多...](#omxvideoextype) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [CodecCallbackTypeGet](#codeccallbacktypeget)&nbsp;(struct&nbsp;HdfRemoteService&nbsp;\*remote) | 实例化CodecCallbackType对象。&nbsp;[更多...](#codeccallbacktypeget) | 
+| [CodecCallbackTypeRelease](#codeccallbacktyperelease)&nbsp;(struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*instance) | 释放CodecCallbackType对象。&nbsp;[更多...](#codeccallbacktyperelease) | 
+| [CodecComponentTypeGet](#codeccomponenttypeget)&nbsp;(struct&nbsp;HdfRemoteService&nbsp;\*remote) | 实例化CodecComponentType对象。&nbsp;[更多...](#codeccomponenttypeget) | 
+| [CodecComponentTypeRelease](#codeccomponenttyperelease)&nbsp;(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*instance) | 释放CodecComponentType对象。&nbsp;[更多...](#codeccomponenttyperelease) | 
+| [GetCodecComponentManager](#getcodeccomponentmanager)&nbsp;(void) | 实例化CodecComponentManager对象。&nbsp;[更多...](#getcodeccomponentmanager) | 
+| [CodecComponentManagerRelease](#codeccomponentmanagerrelease)&nbsp;(void) | 释放CodecComponentManager对象。&nbsp;[更多...](#codeccomponentmanagerrelease) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| [CodecCallbackType::remote](#remote) | 指向HdfRemoteService的指针。&nbsp;[更多...](#remote) | 
+| (&nbsp;[CodecCallbackType::EventHandler](#eventhandler)&nbsp;)(struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*self,&nbsp;enum&nbsp;OMX_EVENTTYPE&nbsp;event,&nbsp;struct&nbsp;[EventInfo](_event_info.md)&nbsp;\*info) | 事件上报。&nbsp;[更多...](#eventhandler) | 
+| (&nbsp;[CodecCallbackType::EmptyBufferDone](#emptybufferdone)&nbsp;)(struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*self,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 上报输入buffer编码或者解码处理完毕。&nbsp;[更多...](#emptybufferdone) | 
+| (&nbsp;[CodecCallbackType::FillBufferDone](#fillbufferdone)&nbsp;)(struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*self,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 上报输出buffer填充完毕。&nbsp;[更多...](#fillbufferdone) | 
+| (&nbsp;[CodecComponentType::GetComponentVersion](#getcomponentversion)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;struct&nbsp;[CompVerInfo](_comp_ver_info.md)&nbsp;\*verInfo) | 获取Codec组件版本号。&nbsp;[更多...](#getcomponentversion) | 
+| (&nbsp;[CodecComponentType::SendCommand](#sendcommand)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;enum&nbsp;OMX_COMMANDTYPE&nbsp;cmd,&nbsp;uint32_t&nbsp;param,&nbsp;int8_t&nbsp;\*cmdData,&nbsp;uint32_t&nbsp;cmdDataLen) | 发送命令给组件。&nbsp;[更多...](#sendcommand) | 
+| (&nbsp;[CodecComponentType::GetParameter](#getparameter)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;paramIndex,&nbsp;int8_t&nbsp;\*paramStruct,&nbsp;uint32_t&nbsp;paramStructLen) | 获取组件参数设置。&nbsp;[更多...](#getparameter) | 
+| (&nbsp;[CodecComponentType::SetParameter](#setparameter)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*paramStruct,&nbsp;uint32_t&nbsp;paramStructLen) | 设置组件需要的参数。&nbsp;[更多...](#setparameter) | 
+| (&nbsp;[CodecComponentType::GetConfig](#getconfig)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*cfgStruct,&nbsp;uint32_t&nbsp;cfgStructLen) | 获取组件的配置结构。&nbsp;[更多...](#getconfig) | 
+| (&nbsp;[CodecComponentType::SetConfig](#setconfig)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*cfgStruct,&nbsp;uint32_t&nbsp;cfgStructLen) | 设置组件的配置。&nbsp;[更多...](#setconfig) | 
+| (&nbsp;[CodecComponentType::GetExtensionIndex](#getextensionindex)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;const&nbsp;char&nbsp;\*paramName,&nbsp;uint32_t&nbsp;\*indexType) | 根据字符串获取组件的扩展索引。&nbsp;[更多...](#getextensionindex) | 
+| (&nbsp;[CodecComponentType::GetState](#getstate)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;enum&nbsp;OMX_STATETYPE&nbsp;\*state) | 获取组件的当前状态。&nbsp;[更多...](#getstate) | 
+| (&nbsp;[CodecComponentType::ComponentTunnelRequest](#componenttunnelrequest)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;port,&nbsp;int32_t&nbsp;tunneledComp,&nbsp;uint32_t&nbsp;tunneledPort,&nbsp;struct&nbsp;OMX_TUNNELSETUPTYPE&nbsp;\*tunnelSetup) | 设置组件采用Tunnel方式通信。&nbsp;[更多...](#componenttunnelrequest) | 
+| (&nbsp;[CodecComponentType::UseBuffer](#usebuffer)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 指定组件端口的buffer。&nbsp;[更多...](#usebuffer) | 
+| (&nbsp;[CodecComponentType::AllocateBuffer](#allocatebuffer)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 向组件申请端口buffer。&nbsp;[更多...](#allocatebuffer) | 
+| (&nbsp;[CodecComponentType::FreeBuffer](#freebuffer)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 释放buffer。&nbsp;[更多...](#freebuffer) | 
+| (&nbsp;[CodecComponentType::EmptyThisBuffer](#emptythisbuffer)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 编解码输入待处理buffer。&nbsp;[更多...](#emptythisbuffer) | 
+| (&nbsp;[CodecComponentType::FillThisBuffer](#fillthisbuffer)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 编解码输出填充buffer。&nbsp;[更多...](#fillthisbuffer) | 
+| (&nbsp;[CodecComponentType::SetCallbacks](#setcallbacks)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*callback,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen) | 设置Codec组件的回调函数。&nbsp;[更多...](#setcallbacks) | 
+| (&nbsp;[CodecComponentType::ComponentDeInit](#componentdeinit)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self) | 组件去初始化。&nbsp;[更多...](#componentdeinit) | 
+| (&nbsp;[CodecComponentType::UseEglImage](#useeglimage)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer,&nbsp;uint32_t&nbsp;portIndex,&nbsp;int8_t&nbsp;\*eglImage,&nbsp;uint32_t&nbsp;eglImageLen) | 使用已在EGL中申请的空间。&nbsp;[更多...](#useeglimage) | 
+| (&nbsp;[CodecComponentType::ComponentRoleEnum](#componentroleenum)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*self,&nbsp;uint8_t&nbsp;\*role,&nbsp;uint32_t&nbsp;roleLen,&nbsp;uint32_t&nbsp;index) | 获取组件角色。&nbsp;[更多...](#componentroleenum) | 
+
+
+## **详细描述**
+
+Codec模块接口定义。
+
+Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
+
+
+## **枚举类型说明**
+
+
+### AudioSampleFormat
+
+
+```
+enum AudioSampleFormat
+```
+
+**描述:**
+
+枚举音频采样格式。
+
+- 对于planar的采样格式,每个声道的数据是独立存储在data中。
+
+- 对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。
+
+| 枚举值 | 描述 | 
+| -------- | -------- |
+| AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U8 | 8bit位宽无符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U8P | 8bit位宽无符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S16 | 16bit位宽有符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S16P | 16bit位宽有符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U16 | 16bit位宽无符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U16P | 16bit位宽无符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S24 | 24bit位宽有符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S24P | 24bit位宽有符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U24 | 24bit位宽无符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U24P | 24bit位宽无符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S32 | 32bit位宽有符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S32P | 32bit位宽有符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U32 | 32bit位宽无符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U32P | 32bit位宽无符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S64 | 64bit位宽有符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_S64P | 64bit位宽有符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U64 | 64bit位宽无符号交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_U64P | 64bit位宽无符号非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_F32 | 32bit位宽浮点型交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_F32P | 64bit位宽浮点型非交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_F64 | 64bit位宽双精度浮点型交织样本。 | 
+| AUDIO_SAMPLE_FORMAT_F64P | 64bit位宽双精度浮点型非交织样本。 | 
+| AUDIO_SAMPLE_FMT_U8 | 无符号8位整型,打包格式。 | 
+| AUDIO_SAMPLE_FMT_S16 | 带符号16位整型,打包格式。 | 
+| AUDIO_SAMPLE_FMT_S32 | 带符号32位整型,打包格式。 | 
+| AUDIO_SAMPLE_FMT_FLOAT | 浮点型,打包格式。 | 
+| AUDIO_SAMPLE_FMT_DOUBLE | 双精度浮点型,打包格式。 | 
+| AUDIO_SAMPLE_FMT_U8P | 无符号8位整型,平面格式。 | 
+| AUDIO_SAMPLE_FMT_S16P | 带符号16位整型,平面格式。 | 
+| AUDIO_SAMPLE_FMT_S32P | 带符号32位整型,平面格式。 | 
+| AUDIO_SAMPLE_FMT_FLOATP | 浮点型,平面格式。 | 
+| AUDIO_SAMPLE_FMT_DOUBLEP | 双精度浮点型,平面格式。 | 
+| AUDIO_SAMPLE_FMT_INVALID | 无效采样格式。 | 
+
+
+### AudioSampleRate
+
+
+```
+enum AudioSampleRate
+```
+
+**描述:**
+
+枚举音频采样率
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AUD_SAMPLE_RATE_8000 | 8K采样率 | 
+| AUD_SAMPLE_RATE_12000 | 12K采样率 | 
+| AUD_SAMPLE_RATE_11025 | 11.025K采样率 | 
+| AUD_SAMPLE_RATE_16000 | 16K采样率 | 
+| AUD_SAMPLE_RATE_22050 | 22.050K采样率 | 
+| AUD_SAMPLE_RATE_24000 | 24K采样率 | 
+| AUD_SAMPLE_RATE_32000 | 32K采样率 | 
+| AUD_SAMPLE_RATE_44100 | 44.1K采样率 | 
+| AUD_SAMPLE_RATE_48000 | 48K采样率 | 
+| AUD_SAMPLE_RATE_64000 | 64K采样率 | 
+| AUD_SAMPLE_RATE_96000 | 96K采样率 | 
+| AUD_SAMPLE_RATE_INVALID | 无效采样率 | 
+
+
+### AvCodecRole
+
+
+```
+enum AvCodecRole
+```
+
+**描述:**
+
+枚举音视频编解码组件类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| MEDIA_ROLETYPE_IMAGE_JPEG | 图像JPEG媒体类型 | 
+| MEDIA_ROLETYPE_VIDEO_AVC | 视频H.264媒体类型 | 
+| MEDIA_ROLETYPE_VIDEO_HEVC | 视频H.265媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_FIRST | 音频编解码器类型 | 
+| MEDIA_ROLETYPE_AUDIO_AAC | 音频AAC媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_G711A | 音频G711A媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_G711U | 音频G711U媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_G726 | 音频G726媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_PCM | 音频PCM媒体类型 | 
+| MEDIA_ROLETYPE_AUDIO_MP3 | 音频MP3媒体类型 | 
+| MEDIA_ROLETYPE_INVALID | 无效媒体类型 | 
+
+
+### CodecBufferType
+
+
+```
+enum CodecBufferType
+```
+
+**描述:**
+
+定义buffer类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CODEC_BUFFER_TYPE_INVALID | 无效buffer类型 | 
+| CODEC_BUFFER_TYPE_VIRTUAL_ADDR | 虚拟地址类型 | 
+| CODEC_BUFFER_TYPE_AVSHARE_MEM_FD | 共享内存类型 | 
+| CODEC_BUFFER_TYPE_HANDLE | handle类型 | 
+| CODEC_BUFFER_TYPE_DYNAMIC_HANDLE | 动态handle类型 | 
+
+
+### CodecCapsMask
+
+
+```
+enum CodecCapsMask
+```
+
+**描述:**
+
+枚举播放能力。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CODEC_CAP_ADAPTIVE_PLAYBACK | 自适应播放能力 | 
+| CODEC_CAP_SECURE_PLAYBACK | 安全播放能力 | 
+| CODEC_CAP_TUNNEL_PLAYBACK | 通道播放能力 | 
+| CODEC_CAP_MULTI_PLANE | 视频图像平面/音频通道平面能力 | 
+
+
+### CodecProcessMode
+
+
+```
+enum CodecProcessMode
+```
+
+**描述:**
+
+枚举编解码处理模式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PROCESS_BLOCKING_INPUT_BUFFER | 同步模式输入buffer | 
+| PROCESS_BLOCKING_OUTPUT_BUFFER | 同步模式输出buffer | 
+| PROCESS_BLOCKING_CONTROL_FLOW | 同步模式控制流 | 
+| PROCESS_NONBLOCKING_INPUT_BUFFER | 异步模式输入buffer | 
+| PROCESS_NONBLOCKING_OUTPUT_BUFFER | 异步模式输出buffer | 
+| PROCESS_NONBLOCKING_CONTROL_FLOW | 异步模式控制流 | 
+
+
+### CodecType
+
+
+```
+enum CodecType
+```
+
+**描述:**
+
+枚举编解码的类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| VIDEO_DECODER | 视频解码类型 | 
+| VIDEO_ENCODER | 视频编码类型 | 
+| AUDIO_DECODER | 音频解码类型 | 
+| AUDIO_ENCODER | 音频编码类型 | 
+| INVALID_TYPE | 无效类型 | 
+
+
+### OmxIndexCodecExType
+
+
+```
+enum OmxIndexCodecExType
+```
+
+**描述:**
+
+枚举Codec扩展index。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| OMX_IndexExtBufferTypeStartUnused | BufferType&nbsp;扩展index | 
+| OMX_IndexParamSupportBufferType | SupportBuffer类型 | 
+| OMX_IndexParamUseBufferType | UseBuffer类型 | 
+| OMX_IndexParamGetBufferHandleUsage | GetBufferHandleUsage类型 | 
+
+
+### OmxVideoExType
+
+
+```
+enum OmxVideoExType
+```
+
+**描述:**
+
+枚举Codec扩展编码类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| OMX_VIDEO_CodingHEVC | HEVC编码类型 | 
+
+
+### Profile
+
+
+```
+enum Profile
+```
+
+**描述:**
+
+枚举Codec规格。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| INVALID_PROFILE | 无效的规格。 | 
+| AAC_LC_PROFILE | AAC低复杂度规格。 | 
+| AAC_MAIN_PROFILE | AAC主规格。 | 
+| AAC_HE_V1_PROFILE | AAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1。 | 
+| AAC_HE_V2_PROFILE | AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2。 | 
+| AAC_LD_PROFILE | AAC低延迟规格。 | 
+| AAC_ELD_PROFILE | AAC增强型低延迟规格。 | 
+| AVC_BASELINE_PROFILE | H.264低规格。 | 
+| AVC_MAIN_PROFILE | H.264主规格。 | 
+| AVC_HIGH_PROFILE | H.264高规格。 | 
+| HEVC_MAIN_PROFILE | H.265主规格。 | 
+| HEVC_MAIN_10_PROFILE | H.265&nbsp;10比特主规格。 | 
+
+
+### ShareMemTypes
+
+
+```
+enum ShareMemTypes
+```
+
+**描述:**
+
+枚举共享内存类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| READ_WRITE_TYPE | 可读可写的共享内存类型 | 
+| READ_ONLY_TYPE | 可读的共享内存类型 | 
+
+
+## **函数说明**
+
+
+### CodecCallbackTypeGet()
+
+
+```
+struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote)
+```
+
+**描述:**
+
+实例化CodecCallbackType对象。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| remote | 输入参数,指向HdfRemoteService的指针。 | 
+
+**返回:**
+
+实例化CodecCallbackType对象。
+
+**Since:**
+
+3.1
+
+
+### CodecCallbackTypeRelease()
+
+
+```
+void CodecCallbackTypeRelease (struct CodecCallbackType * instance)
+```
+
+**描述:**
+
+释放CodecCallbackType对象。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| instance | 输入参数,指向CodecCallbackType实例的指针。 | 
+
+**Since:**
+
+3.1
+
+
+### CodecComponentManagerRelease()
+
+
+```
+void CodecComponentManagerRelease (void )
+```
+
+**描述:**
+
+释放CodecComponentManager对象。
+
+**Since:**
+
+3.1
+
+
+### CodecComponentTypeGet()
+
+
+```
+struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remote)
+```
+
+**描述:**
+
+实例化CodecComponentType对象。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| remote | 输入参数,指向RemoteService的指针。 | 
+
+**返回:**
+
+实例化的CodecComponentType对象。
+
+**Since:**
+
+3.1
+
+
+### CodecComponentTypeRelease()
+
+
+```
+void CodecComponentTypeRelease (struct CodecComponentType * instance)
+```
+
+**描述:**
+
+释放CodecComponentType对象。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| instance | 输入参数,指向CodecComponentType实例的指针。 | 
+
+**Since:**
+
+3.1
+
+
+### GetCodecComponentManager()
+
+
+```
+struct CodecComponentManager* GetCodecComponentManager (void )
+```
+
+**描述:**
+
+实例化CodecComponentManager对象。
+
+**返回:**
+
+实例化的CodecComponentManager对象。
+
+**Since:**
+
+3.1
+
+
+## **变量说明**
+
+
+### AllocateBuffer
+
+
+```
+int32_t(* CodecComponentType::AllocateBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+向组件申请端口buffer。
+
+向组件申请分配新的buffer,此接口在以下情况下使用:
+
+- 当组件处于OMX_StateLoaded状态,并且用户已经向组件发送OMX_StateIdle状态转换请求。
+
+- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
+
+- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| portIndex | 输入参数,指定的组件端口。 | 
+| buffer | 输入输出参数,指向要申请的buffer结构体[OmxCodecBuffer](_omx_codec_buffer.md)指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示申请buffer成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,申请buffer失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,申请buffer失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,申请buffer失败。
+
+**Since:**
+
+3.1
+
+
+### ComponentDeInit
+
+
+```
+int32_t(* CodecComponentType::ComponentDeInit) (struct CodecComponentType *self)
+```
+
+**描述:**
+
+组件去初始化。
+
+调用此接口使组件去初始化,当组件处于OMX_StateLoaded状态时,将直接关闭组件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示去初始化成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,去初始化失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,去初始化失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,去初始化失败。
+
+**Since:**
+
+3.1
+
+
+### ComponentRoleEnum
+
+
+```
+int32_t(* CodecComponentType::ComponentRoleEnum) (struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index)
+```
+
+**描述:**
+
+获取组件角色。
+
+根据组件角色索引获取对应组件角色。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| role | 输出参数,角色名称。 | 
+| roleLen | 输入参数,role字节数。 | 
+| index | 输入参数,角色的索引,一个组件可能支持多种角色。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取角色成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取角色失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取角色失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取角色失败。
+
+**Since:**
+
+3.1
+
+
+### ComponentTunnelRequest
+
+
+```
+int32_t(* CodecComponentType::ComponentTunnelRequest) (struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup)
+```
+
+**描述:**
+
+设置组件采用Tunnel方式通信。
+
+当组件处于OMX_StateLoaded 状态时,用户通过调用此接口确定组件是否可以进行Tunnel传输,如果可以则设置组件的Tunnel传输。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| port | 输入参数,组件设置的端口。 | 
+| tunneledComp | 输入参数,组件的tunnel&nbsp;handle。 | 
+| tunneledPort | 输入参数,组件用来Tunnel通信的端口。 | 
+| tunnelSetup | 输入输出参数,指向Tunnel设置的结构体**OMX_TUNNELSETUPTYPE**指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,设置失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。
+
+**Since:**
+
+3.1
+
+
+### EmptyBufferDone
+
+
+```
+int32_t(* CodecCallbackType::EmptyBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+上报输入buffer编码或者解码处理完毕。
+
+组件运行过程中向上报告输入buffer已经使用完毕。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的callback指针。 | 
+| appData | 输入参数,上层数据,通常是设置回调时给入的上层实例。 | 
+| appDataLen | 输入参数,appData字节数。 | 
+| buffer | 输入参数,已经处理完毕的输入buffer信息[OmxCodecBuffer](_omx_codec_buffer.md)。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示上报成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,上报失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。
+
+**Since:**
+
+3.1
+
+
+### EmptyThisBuffer
+
+
+```
+int32_t(* CodecComponentType::EmptyThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+编解码输入待处理buffer。
+
+此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示输入buffer成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,输入buffer失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,输入buffer失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,输入buffer失败。
+
+**Since:**
+
+3.1
+
+
+### EventHandler
+
+
+```
+int32_t(* CodecCallbackType::EventHandler) (struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info)
+```
+
+**描述:**
+
+事件上报。
+
+组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。
+
+- 当eEvent为OMX_EventCmdComplete,eventData为NULL,data1数据为OMX_COMMANDTYPE,此时,当data1为OMX_CommandStateSet,data2表示状态,其它情况下,data2表示端口。
+
+- 当event为OMX_EventError时,data1表示错误码,data2和eventData都为0。
+
+- 当event为OMX_EventMark时,data1和data2都为0,eventData指向mark指针。
+
+- 当event为OMX_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。
+
+- 当event为OMX_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。
+
+- 当event为OMX_EventResourcesAcquired或OMX_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的callback指针。 | 
+| event | 输入参数,要通知的事件类型,详见**OMX_EVENTTYPE**。 | 
+| info | 输入参数,指向事件上报携带的信息指针,详见[EventInfo](_event_info.md)。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示事件上报成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,事件上报失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,事件上报失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,事件上报失败。
+
+**Since:**
+
+3.1
+
+
+### FillBufferDone
+
+
+```
+int32_t(* CodecCallbackType::FillBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+上报输出buffer填充完毕。
+
+组件运行过程中向上报告输出buffer已经填充完毕。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的callback指针。 | 
+| appData | 输入参数,上层数据,通常是设置回调时给入的上层实例。 | 
+| appDataLen | 输入参数,appData字节数。 | 
+| buffer | 输入参数,已经填充完毕的buffer信息[OmxCodecBuffer](_omx_codec_buffer.md)。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示上报成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,上报失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。
+
+**Since:**
+
+3.1
+
+
+### FillThisBuffer
+
+
+```
+int32_t(* CodecComponentType::FillThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+编解码输出填充buffer。
+
+此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示填充buffer成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,填充buffer失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,填充buffer失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,填充buffer失败。
+
+**Since:**
+
+3.1
+
+
+### FreeBuffer
+
+
+```
+int32_t(* CodecComponentType::FreeBuffer) (struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+释放buffer。
+
+此接口在以下情况下使用:
+
+- 当组件处于OMX_StateIdle状态,并且已经向组件发送OMX_StateLoaded状态转换请求。
+
+- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle时调用。
+
+- 此接口调用可随时进行,但是如果未在上述情况下执行,可能会导致组件上报OMX_ErrorPortUnpopulated事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| portIndex | 输入参数,指定的组件端口。 | 
+| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示释放buffer成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,释放buffer失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,释放buffer失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,释放buffer失败。
+
+**Since:**
+
+3.1
+
+
+### GetComponentVersion
+
+
+```
+int32_t(* CodecComponentType::GetComponentVersion) (struct CodecComponentType *self, struct CompVerInfo *verInfo)
+```
+
+**描述:**
+
+获取Codec组件版本号。
+
+通过查询组件,返回组件版本信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| verInfo | 输出参数,指向组件版本信息的指针,详见[CompVerInfo](_comp_ver_info.md)。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取版本号成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取版本号失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取版本号失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取版本号失败。
+
+**Since:**
+
+3.1
+
+
+### GetConfig
+
+
+```
+int32_t(* CodecComponentType::GetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)
+```
+
+**描述:**
+
+获取组件的配置结构。
+
+加载组件后可以随时调用此接口获取组件的配置。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| index | 输入参数,待填充结构的索引,详见**OMX_INDEXTYPE**。 | 
+| cfgStruct | 输入输出参数,指向由组件填充的应用程序分配的结构体指针。 | 
+| cfgStructLen | 输入参数,上层传入的cfgStruct字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取配置成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取配置失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取配置失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取配置失败。
+
+**Since:**
+
+3.1
+
+
+### GetExtensionIndex
+
+
+```
+int32_t(* CodecComponentType::GetExtensionIndex) (struct CodecComponentType *self, const char *paramName, uint32_t *indexType)
+```
+
+**描述:**
+
+根据字符串获取组件的扩展索引。
+
+将扩展字符串转换为Openmax IL结构索引。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| paramName | 输入参数,组件用来转换为配置索引的字符串。 | 
+| indexType | 输出参数,由paramName转换的配置索引,详见**OMX_INDEXTYPE**。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取扩展索引成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取扩展索引失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取扩展索引失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取扩展索引失败。
+
+**Since:**
+
+3.1
+
+
+### GetParameter
+
+
+```
+int32_t(* CodecComponentType::GetParameter) (struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen)
+```
+
+**描述:**
+
+获取组件参数设置。
+
+当组件处于除了OMX_StateInvalid(组件状态异常)之外的其他状态,用户可通过此接口获取组件参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| paramIndex | 输入参数,待填充结构的索引,详见**OMX_INDEXTYPE**。 | 
+| paramStruct | 输入输出参数,指向由组件填充的应用程序分配的结构体指针。 | 
+| paramStructLen | 输入参数,paramStruct字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取参数成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取参数失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取参数失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取参数失败。
+
+**Since:**
+
+3.1
+
+
+### GetState
+
+
+```
+int32_t(* CodecComponentType::GetState) (struct CodecComponentType *self, enum OMX_STATETYPE *state)
+```
+
+**描述:**
+
+获取组件的当前状态。
+
+用户可调用此接口获取组件的当前状态,组件状态详见**OMX_STATETYPE**。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| state | 输出参数,指向获取到的状态指针,组件状态详见**OMX_STATETYPE**。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取状态成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取状态失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取状态失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取状态失败。
+
+**Since:**
+
+3.1
+
+
+### remote
+
+
+```
+struct HdfRemoteService* CodecCallbackType::remote
+```
+
+**描述:**
+
+指向HdfRemoteService的指针。
+
+**Since:**
+
+3.1
+
+
+### SendCommand
+
+
+```
+int32_t(* CodecComponentType::SendCommand) (struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen)
+```
+
+**描述:**
+
+发送命令给组件。
+
+发送命令给组件,当命令为设置状态时,会有事件回调通知结果给上层,其他命令则没有事件上报。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| cmd | 输入参数,组件要执行的命令,详见**OMX_COMMANDTYPE**。 | 
+| param | 输入参数,组件要执行的命令携带的参数。<br/>-&nbsp;当cmd为OMX_CommandStateSet时,param的值详见**OMX_STATETYPE**。<br/>-&nbsp;当cmd为OMX_CommandFlush、OMX_CommandPortDisable、OMX_CommandPortEnable、OMX_CommandMarkBuffer时,param为目标端口。 | 
+| cmdData | 输入参数,当cmd为OMX_CommandMarkBuffer时,指向OMX_MARKTYPE结构体指针。 | 
+| cmdDataLen | 输入参数,上层传递的cmdData字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示发送命令成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,发送命令失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,发送命令失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,发送命令失败。
+
+**Since:**
+
+3.1
+
+
+### SetCallbacks
+
+
+```
+int32_t(* CodecComponentType::SetCallbacks) (struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen)
+```
+
+**描述:**
+
+设置Codec组件的回调函数。
+
+当组件处于OMX_StateLoaded状态时,使用此回调函数向上通知事件以及上报可用的输入输出信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| callback | 输入参数,指向回调函数[CodecCallbackType](_codec_callback_type.md)对象指针。 | 
+| appData | 输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。 | 
+| appDataLen | 输入参数,上层传递的appData字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置回调成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,设置回调失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,设置回调失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置回调失败。
+
+**Since:**
+
+3.1
+
+
+### SetConfig
+
+
+```
+int32_t(* CodecComponentType::SetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)
+```
+
+**描述:**
+
+设置组件的配置。
+
+加载组件后可以随时调用此接口设置组件的配置。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| index | 输入参数,要设置的结构索引,详见**OMX_INDEXTYPE**。 | 
+| cfgStruct | 输入参数,指向组件用于初始化的应用程序分配结构的指针。 | 
+| cfgStructLen | 输入参数,cfgStruct字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置配置成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,设置失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。
+
+**Since:**
+
+3.1
+
+
+### SetParameter
+
+
+```
+int32_t(* CodecComponentType::SetParameter) (struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen)
+```
+
+**描述:**
+
+设置组件需要的参数。
+
+当组件处于OMX_StateLoaded、OMX_StateWaitForResources状态或者端口是去使能状态,用户可通过此接口设置组件参数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| index | 输入参数,要设置的结构索引,详见**OMX_INDEXTYPE**。 | 
+| paramStruct | 输入参数,指向组件用于初始化的应用程序分配结构的指针。 | 
+| paramStructLen | 输入参数,paramStruct字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置参数成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,设置参数失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,设置参数失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置参数失败。
+
+**Since:**
+
+3.1
+
+
+### UseBuffer
+
+
+```
+int32_t(* CodecComponentType::UseBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)
+```
+
+**描述:**
+
+指定组件端口的buffer。
+
+此接口在以下情况下使用:
+
+- 当组件处于OMX_StateLoaded状态,并且用户已经向组件发送OMX_StateIdle状态转换请求。
+
+- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
+
+- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| portIndex | 输入参数,指定的组件端口。 | 
+| buffer | 输入输出参数,指向要使用的buffer结构体[OmxCodecBuffer](_omx_codec_buffer.md)指针。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示指定成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,指定失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,指定失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,指定失败。
+
+**Since:**
+
+3.1
+
+
+### UseEglImage
+
+
+```
+int32_t(* CodecComponentType::UseEglImage) (struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen)
+```
+
+**描述:**
+
+使用已在EGL中申请的空间。
+
+此接口在以下情况下使用:
+
+- 当组件处于OMX_StateLoaded状态,并且已经向组件发送OMX_StateIdle状态转换请求。
+
+- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
+
+- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| self | 输入参数,指向要操作的Codec组件指针。 | 
+| buffer | 输入输出参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | 
+| portIndex | 输入参数,指定的组件端口。 | 
+| eglImage | 输入参数,EGL申请的图像指针。 | 
+| eglImageLen | 输入参数,eglImage字节数。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示使用成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,使用失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,使用失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,使用失败。
+
+**Since:**
+
+3.1
diff --git a/zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md b/zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md
new file mode 100644
index 0000000000000000000000000000000000000000..adf3edf8dd060694cd88c7d590360ca591ec7527
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md
@@ -0,0 +1,38 @@
+# CodecCallbackType
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [remote](_codec.md#remote) | 指向HdfRemoteService的指针。&nbsp;[更多...](_codec.md#remote) | 
+| (&nbsp;[EventHandler](_codec.md#eventhandler)&nbsp;)(struct&nbsp;CodecCallbackType&nbsp;\*self,&nbsp;enum&nbsp;OMX_EVENTTYPE&nbsp;event,&nbsp;struct&nbsp;[EventInfo](_event_info.md)&nbsp;\*info) | 事件上报。&nbsp;[更多...](_codec.md#eventhandler) | 
+| (&nbsp;[EmptyBufferDone](_codec.md#emptybufferdone)&nbsp;)(struct&nbsp;CodecCallbackType&nbsp;\*self,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 上报输入buffer编码或者解码处理完毕。&nbsp;[更多...](_codec.md#emptybufferdone) | 
+| (&nbsp;[FillBufferDone](_codec.md#fillbufferdone)&nbsp;)(struct&nbsp;CodecCallbackType&nbsp;\*self,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 上报输出buffer填充完毕。&nbsp;[更多...](_codec.md#fillbufferdone) | 
+
+
+## **详细描述**
+
+Codec回调接口定义。
+
+提供了以下3种回调函数:
+
+- 组件错误事件、命令完成事件、端口设置等事件回调,详见EventHandler。
+
+- 输入端口处理完buffer回调,详见EmptyBufferDone。
+
+- 输出端口填充完buffer回调,详见FillBufferDone。 通过以下两种方式注册回调:
+
+- 创建组件时,通过CreateComponent方法。
+
+- 当组件处于OMX_StateLoaded状态时,通过SetCallbacks方法注册回调。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_codec_comp_capability.md b/zh-cn/device-dev/reference/hdi-apis/_codec_comp_capability.md
new file mode 100644
index 0000000000000000000000000000000000000000..f8900208d56a534c34c0204d6d8124024c4fc9b6
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_codec_comp_capability.md
@@ -0,0 +1,155 @@
+# CodecCompCapability
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [role](#role) | 媒体类型。 | 
+| [type](#type) | 编解码类型。 | 
+| [compName](#compname)&nbsp;[[NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)] | 编解码组件名称。 | 
+| [supportProfiles](#supportprofiles)&nbsp;[[PROFILE_NUM](_codec.md#gaab6353cb3662bdc672ae8ab90df529ce)] | 支持的profiles,详见[Profile](_codec.md#profile)。 | 
+| [maxInst](#maxinst) | 最大实例。 | 
+| [isSoftwareCodec](#issoftwarecodec) | 软件编解码还是硬件编解码。 | 
+| [processModeMask](#processmodemask) | 编解码处理模式掩码,详见[CodecProcessMode](_codec.md#codecprocessmode)。 | 
+| [capsMask](#capsmask) | 编解码播放能力掩码,详见[CodecCapsMask](_codec.md#codeccapsmask)。 | 
+| [bitRate](#bitrate) | 支持的码率范围。 | 
+| [port](#port) | 支持的音视频编解码能力。 | 
+
+
+## **详细描述**
+
+定义Codec编解码能力。
+
+
+## **类成员变量说明**
+
+
+### bitRate
+
+  
+```
+RangeValue CodecCompCapability::bitRate
+```
+
+**描述:**
+
+支持的码率范围
+
+
+### capsMask
+
+  
+```
+uint32_t CodecCompCapability::capsMask
+```
+
+**描述:**
+
+编解码播放能力掩码,详见[CodecCapsMask](_codec.md#codeccapsmask).
+
+
+### compName
+
+  
+```
+char CodecCompCapability::compName[NAME_LENGTH]
+```
+
+**描述:**
+
+编解码组件名称
+
+
+### isSoftwareCodec
+
+  
+```
+bool CodecCompCapability::isSoftwareCodec
+```
+
+**描述:**
+
+软件编解码还是硬件编解码
+
+
+### maxInst
+
+  
+```
+int32_t CodecCompCapability::maxInst
+```
+
+**描述:**
+
+最大实例
+
+
+### port
+
+  
+```
+PortCap CodecCompCapability::port
+```
+
+**描述:**
+
+支持的音视频编解码能力
+
+
+### processModeMask
+
+  
+```
+int32_t CodecCompCapability::processModeMask
+```
+
+**描述:**
+
+编解码处理模式掩码,详见[CodecProcessMode](_codec.md#codecprocessmode).
+
+
+### role
+
+  
+```
+AvCodecRole CodecCompCapability::role
+```
+
+**描述:**
+
+媒体类型
+
+
+### supportProfiles
+
+  
+```
+int32_t CodecCompCapability::supportProfiles[PROFILE_NUM]
+```
+
+**描述:**
+
+支持的profiles,详见[Profile](_codec.md#profile)
+
+
+### type
+
+  
+```
+CodecType CodecCompCapability::type
+```
+
+**描述:**
+
+编解码类型
diff --git a/zh-cn/device-dev/reference/hdi-apis/_codec_component_manager.md b/zh-cn/device-dev/reference/hdi-apis/_codec_component_manager.md
new file mode 100644
index 0000000000000000000000000000000000000000..22b2d95f61a7a6529fdf473dcec84ed2a8bedd22
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_codec_component_manager.md
@@ -0,0 +1,148 @@
+# CodecComponentManager
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| ([GetComponentNum](#getcomponentnum)&nbsp;)() | 获取Codec编解码组件数量。&nbsp;[更多...](#getcomponentnum) | 
+| (&nbsp;[GetComponentCapabilityList](#getcomponentcapabilitylist)&nbsp;)([CodecCompCapability](_codec_comp_capability.md)&nbsp;\*capList,&nbsp;int32_t&nbsp;count) | 获取编解码能力集表。&nbsp;[更多...](#getcomponentcapabilitylist) | 
+| (&nbsp;[CreateComponent](#createcomponent)&nbsp;)(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*\*component,&nbsp;char&nbsp;\*compName,&nbsp;void&nbsp;\*appData,&nbsp;int32_t&nbsp;appDataSize,&nbsp;struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*callbacks) | 创建Codec组件实例。&nbsp;[更多...](#createcomponent) | 
+| (&nbsp;[DestroyComponent](#destroycomponent))(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*component) | 销毁组件实例。&nbsp;[更多...](#destroycomponent) | 
+
+
+## **详细描述**
+
+Codec组件管理类接口定义。
+
+主要提供以下功能:
+
+- 获取Codec编解码组件数量以及编解码能力集表。
+
+- 创建/销毁Codec组件。
+
+
+## **类成员变量说明**
+
+
+### CreateComponent
+
+  
+```
+int32_t(* CodecComponentManager::CreateComponent) (struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks)
+```
+
+**描述:**
+
+创建Codec组件实例。
+
+根据组件名称创建Codec组件实例。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| component | 输出参数,指向Codec组件的指针。 | 
+| compName | 输入参数,组件名称。 | 
+| appData | 输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。 | 
+| appDataSize | 输入参数,appData字节数。 | 
+| callbacks | 输入参数,回调接口,指向OMX_CALLBACKTYPE结构的指针,详见[CodecCallbackType](_codec_callback_type.md)。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示创建组件成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,创建组件失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,创建组件失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,创建组件失败。
+
+
+### DestroyComponent
+
+  
+```
+int32_t(* CodecComponentManager::DestroyComponent) (struct CodecComponentType *component)
+```
+
+**描述:**
+
+销毁组件实例。
+
+销毁指定的Codec组件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| component | 输入参数,需要销毁的Codec组件。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示销毁组件成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,销毁组件失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,销毁组件失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,销毁组件失败。
+
+
+### GetComponentCapabilityList
+
+  
+```
+int32_t(* CodecComponentManager::GetComponentCapabilityList) (CodecCompCapability *capList, int32_t count)
+```
+
+**描述:**
+
+获取编解码能力集表。
+
+用户可通过此接口了解Codec模块提供了哪些编解码能力,对应的能力体现在[CodecCompCapability](_codec_comp_capability.md)结构体。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| capList | 输出参数,返回全部组件的能力集表[CodecCompCapability](_codec_comp_capability.md)。 | 
+| count | 输入参数,编解码组件数量,由[GetComponentNum](#getcomponentnum)获得。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取能力集表成功。
+
+HDF_ERR_INVALID_PARAM 表示参数无效,获取能力集表失败。
+
+HDF_ERR_INVALID_OBJECT 表示对象无效,获取能力集表失败。
+
+HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取能力集表失败。
+
+
+### GetComponentNum
+
+  
+```
+int32_t(* CodecComponentManager::GetComponentNum) ()
+```
+
+**描述:**
+
+获取Codec编解码组件数量。
+
+通过此接口获取Codec编解码组件数量,用来获取全部编解码能力集。
+
+**返回:**
+
+Codec编解码组件数量。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md b/zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md
new file mode 100644
index 0000000000000000000000000000000000000000..0850d4c66221b70819644d1f2d693e094c82d1ed
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md
@@ -0,0 +1,54 @@
+# CodecComponentType
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[GetComponentVersion](_codec.md#getcomponentversion)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;struct&nbsp;[CompVerInfo](_comp_ver_info.md)&nbsp;\*verInfo) | 获取Codec组件版本号。&nbsp;[更多...](_codec.md#getcomponentversion) | 
+| (&nbsp;[SendCommand](_codec.md#sendcommand)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;enum&nbsp;OMX_COMMANDTYPE&nbsp;cmd,&nbsp;uint32_t&nbsp;param,&nbsp;int8_t&nbsp;\*cmdData,&nbsp;uint32_t&nbsp;cmdDataLen) | 发送命令给组件。&nbsp;[更多...](_codec.md#sendcommand) | 
+| (&nbsp;[GetParameter](_codec.md#getparameter)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;paramIndex,&nbsp;int8_t&nbsp;\*paramStruct,&nbsp;uint32_t&nbsp;paramStructLen) | 获取组件参数设置。&nbsp;[更多...](_codec.md#getparameter) | 
+| (&nbsp;[SetParameter](_codec.md#setparameter)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*paramStruct,&nbsp;uint32_t&nbsp;paramStructLen) | 设置组件需要的参数。&nbsp;[更多...](_codec.md#setparameter) | 
+| (&nbsp;[GetConfig](_codec.md#getconfig)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*cfgStruct,&nbsp;uint32_t&nbsp;cfgStructLen) | 获取组件的配置结构。&nbsp;[更多...](_codec.md#getconfig) | 
+| (&nbsp;[SetConfig](_codec.md#setconfig)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;index,&nbsp;int8_t&nbsp;\*cfgStruct,&nbsp;uint32_t&nbsp;cfgStructLen) | 设置组件的配置。&nbsp;[更多...](_codec.md#setconfig) | 
+| (&nbsp;[GetExtensionIndex](_codec.md#getextensionindex)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;const&nbsp;char&nbsp;\*paramName,&nbsp;uint32_t&nbsp;\*indexType) | 根据字符串获取组件的扩展索引。&nbsp;[更多...](_codec.md#getextensionindex) | 
+| (&nbsp;[GetState](_codec.md#getstate)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;enum&nbsp;OMX_STATETYPE&nbsp;\*state) | 获取组件的当前状态。&nbsp;[更多...](_codec.md#getstate) | 
+| (&nbsp;[ComponentTunnelRequest](_codec.md#componenttunnelrequest)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;port,&nbsp;int32_t&nbsp;tunneledComp,&nbsp;uint32_t&nbsp;tunneledPort,&nbsp;struct&nbsp;OMX_TUNNELSETUPTYPE&nbsp;\*tunnelSetup) | 设置组件采用Tunnel方式通信。&nbsp;[更多...](_codec.md#componenttunnelrequest) | 
+| (&nbsp;[UseBuffer](_codec.md#usebuffer)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 指定组件端口的buffer。&nbsp;[更多...](_codec.md#usebuffer) | 
+| (&nbsp;[AllocateBuffer](_codec.md#allocatebuffer)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 向组件申请端口buffer。&nbsp;[更多...](_codec.md#allocatebuffer) | 
+| (&nbsp;[FreeBuffer](_codec.md#freebuffer)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;uint32_t&nbsp;portIndex,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 释放buffer。&nbsp;[更多...](_codec.md#freebuffer) | 
+| (&nbsp;[EmptyThisBuffer](_codec.md#emptythisbuffer)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 编解码输入待处理buffer。&nbsp;[更多...](_codec.md#emptythisbuffer) | 
+| (&nbsp;[FillThisBuffer](_codec.md#fillthisbuffer)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;const&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer) | 编解码输出填充buffer。&nbsp;[更多...](_codec.md#fillthisbuffer) | 
+| (&nbsp;[SetCallbacks](_codec.md#setcallbacks)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*callback,&nbsp;int8_t&nbsp;\*appData,&nbsp;uint32_t&nbsp;appDataLen) | 设置Codec组件的回调函数。&nbsp;[更多...](_codec.md#setcallbacks) | 
+| (&nbsp;[ComponentDeInit](_codec.md#componentdeinit)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self) | 组件去初始化。&nbsp;[更多...](_codec.md#componentdeinit) | 
+| (&nbsp;[UseEglImage](_codec.md#useeglimage)&nbsp;)(struct&nbsp;CodecComponentType&nbsp;\*self,&nbsp;struct&nbsp;[OmxCodecBuffer](_omx_codec_buffer.md)&nbsp;\*buffer,&nbsp;uint32_t&nbsp;portIndex,&nbsp;int8_t&nbsp;\*eglImage,&nbsp;uint32_t&nbsp;eglImageLen) | 使用已在EGL中申请的空间。&nbsp;[更多...](_codec.md#useeglimage) | 
+| (&nbsp;[ComponentRoleEnum](_codec.md#componentroleenum)&nbsp;)(struct&nbsp;[CodecComponentType&nbsp;\*self,&nbsp;uint8_t&nbsp;\*role,&nbsp;uint32_t&nbsp;roleLen,&nbsp;uint32_t&nbsp;index) | 获取组件角色。&nbsp;[更多...](_codec.md#componentroleenum) | 
+
+
+## **详细描述**
+
+Codec组件接口定义。
+
+主要提供以下功能:
+
+- 获取组件的版本。
+
+- 组件参数配置的获取和设置。
+
+- 发送命令至组件及获取组件状态。
+
+- 设置回调函数。
+
+- 设置/释放组件使用的buffer。
+
+- 编解码输入输出buffer处理 具体方法使用详见函数说明。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_comp_ver_info.md b/zh-cn/device-dev/reference/hdi-apis/_comp_ver_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..ddf1830d2f8d1634cbe777656fdefd8f61615340
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_comp_ver_info.md
@@ -0,0 +1,78 @@
+# CompVerInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [compName](#compname)&nbsp;[[NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)] | 组件名称 | 
+| [compUUID](#compuuid)&nbsp;[[UUID_LENGTH](_codec.md#ga9226162b034cc837cd977f0fcf611c2c)] | 组件的UUID标识符 | 
+| [compVersion](#compversion) | OMX组件版本信息 | 
+| [specVersion](#specversion) | 构建组件所依据的规范的版本信息 | 
+
+
+## **Details**
+
+
+## **详细描述**
+
+
+## **类成员变量说明**
+
+
+### compName
+
+  
+```
+char CompVerInfo::compName[NAME_LENGTH]
+```
+
+**描述:**
+
+组件名称
+
+
+### compUUID
+
+  
+```
+uint8_t CompVerInfo::compUUID[UUID_LENGTH]
+```
+
+**描述:**
+
+组件的UUID标识符
+
+
+### compVersion
+
+  
+```
+union OMX_VERSIONTYPE CompVerInfo::compVersion
+```
+
+**描述:**
+
+OMX组件版本信息
+
+
+### specVersion
+
+  
+```
+union OMX_VERSIONTYPE CompVerInfo::specVersion
+```
+
+**描述:**
+
+构建组件所依据的规范的版本信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_credential_info.md b/zh-cn/device-dev/reference/hdi-apis/_credential_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..2d38ca382a44d3e2df74c71b2a33e3dd69ccf44e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_credential_info.md
@@ -0,0 +1,111 @@
+# CredentialInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [credentialId](#credentialid) | 认证凭据ID。 | 
+| [index](#index) | 用户认证框架的执行器索引。 | 
+| [templateId](#templateid) | 认证凭据模版ID。 | 
+| [authType](#authtype) | 用户认证凭据类型。 | 
+| [executorMatcher](#executormatcher) | 执行器匹配器。 | 
+| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | 
+
+
+## **详细描述**
+
+认证凭据信息。
+
+**自动:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType CredentialInfo::authType
+```
+
+**描述:**
+
+用户认证凭据类型。
+
+
+### credentialId
+
+  
+```
+unsigned long CredentialInfo::credentialId
+```
+
+**描述:**
+
+认证凭据ID。
+
+
+### executorSensorHint
+
+  
+```
+unsigned int CredentialInfo::executorSensorHint
+```
+
+**描述:**
+
+既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。
+
+
+### executorMatcher
+
+  
+```
+unsigned int CredentialInfo::executorMatcher
+```
+
+**描述:**
+
+执行器匹配器。
+
+
+### index
+
+  
+```
+unsigned long CredentialInfo::index
+```
+
+**描述:**
+
+用户认证框架的执行器索引。
+
+
+### templateId
+
+  
+```
+unsigned long CredentialInfo::templateId
+```
+
+**描述:**
+
+认证凭据模版ID。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_device_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_device_funcs.md
new file mode 100644
index 0000000000000000000000000000000000000000..a423b267c59d718dc84d6dd28e3ccc8c884bba7b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_device_funcs.md
@@ -0,0 +1,59 @@
+# DeviceFuncs
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;**RegHotPlugCallback**&nbsp;)(HotPlugCallback&nbsp;callback,&nbsp;void&nbsp;\*data) | 注册热插拔事件回调 | 
+| (&nbsp;**RegDisplayVBlankCallback**&nbsp;)(uint32_t&nbsp;devId,&nbsp;VBlankCallback&nbsp;callback,&nbsp;void&nbsp;\*data) | 注册VBlank事件回调。 | 
+| (&nbsp;**RegDisplayRefreshCallback**&nbsp;)(uint32_t&nbsp;devId,&nbsp;RefreshCallback&nbsp;callback,&nbsp;void&nbsp;\*data) | 刷新请求回调。 | 
+| (&nbsp;**GetDisplayCapability**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DisplayCapability](_display_capability.md)&nbsp;\*info) | 获取显示设备能力集。 | 
+| (&nbsp;**GetDisplaySupportedModes**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[DisplayModeInfo](_display_mode_info.md)&nbsp;\*modes) | 获取显示设备支持的显示模式信息。 | 
+| (&nbsp;**GetDisplayMode**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*modeId) | 获取显示设备当前的显示模式。 | 
+| (&nbsp;**SetDisplayMode**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;modeId) | 设置显示设备的显示模式。 | 
+| (&nbsp;**GetDisplayPowerStatus**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DispPowerStatus](_display.md#disppowerstatus)&nbsp;\*status) | 获取显示设备当前的电源状态。 | 
+| (&nbsp;**SetDisplayPowerStatus**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DispPowerStatus](_display.md#disppowerstatus)&nbsp;status) | 设置显示设备当前的电源状态。 | 
+| (&nbsp;**GetDisplayBacklight**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*level) | 获取显示设备当前的背光值。 | 
+| (&nbsp;**SetDisplayBacklight**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;level) | 设置显示设备当前的背光值。 | 
+| (&nbsp;**GetDisplayProperty**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;id,&nbsp;uint64_t&nbsp;\*value) | 获取显示设备属性值。 | 
+| (&nbsp;**SetDisplayProperty**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;id,&nbsp;uint64_t&nbsp;value) | 设置显示设备属性值。 | 
+| (&nbsp;**PrepareDisplayLayers**&nbsp;)(uint32_t&nbsp;devId,&nbsp;bool&nbsp;\*needFlushFb) | 显示设备合成前准备 | 
+| (&nbsp;**GetDisplayCompChange**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;uint32_t&nbsp;\*Layers,&nbsp;int32_t&nbsp;\*type) | 获取显示设备合成类型有变化的layer | 
+| (&nbsp;**SetDisplayClientCrop**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的裁剪区域。 | 
+| (&nbsp;**SetDisplayClientDestRect**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的显示区域。 | 
+| (&nbsp;**SetDisplayClientBuffer**&nbsp;)(uint32_t&nbsp;devId,&nbsp;const&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;fence) | 设置显示设备的显示缓存。 | 
+| (&nbsp;**SetDisplayClientDamage**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;num,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的显示脏区 | 
+| (&nbsp;**SetDisplayVsyncEnabled**&nbsp;)(uint32_t&nbsp;devId,&nbsp;bool&nbsp;enabled) | 使能垂直同步信号。 | 
+| (&nbsp;**GetDisplayReleaseFence**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;uint32_t&nbsp;\*layers,&nbsp;int32_t&nbsp;\*fences) | 获取显示图层fence。 | 
+| (&nbsp;**GetDisplaySupportedColorGamuts**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[ColorGamut](_display.md#colorgamut)&nbsp;\*gamuts) | 获取显示设备支持的色域信息。 | 
+| (&nbsp;**GetDisplayColorGamut**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](_display.md#colorgamut)&nbsp;\*gamut) | 获取显示设备当前的色域模式。 | 
+| (&nbsp;**SetDisplayColorGamut**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](_display.md#colorgamut)&nbsp;gamut) | 设置显示设备当前的色域模式。 | 
+| (&nbsp;**GetDisplayGamutMap**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[GamutMap](_display.md#gamutmap)&nbsp;\*gamutMap) | 获取显示设备当前的色域映射模式。 | 
+| (&nbsp;**SetDisplayGamutMap**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[GamutMap](_display.md#gamutmap)&nbsp;gamutMap) | 设置显示设备当前的色域映射模式。 | 
+| (&nbsp;**SetDisplayColorTransform**&nbsp;)(uint32_t&nbsp;devId,&nbsp;const&nbsp;float&nbsp;\*matrix) | 设置显示设备当前的4x4的颜色转换矩阵。 | 
+| (&nbsp;**GetHDRCapabilityInfos**&nbsp;)(uint32_t&nbsp;devId,&nbsp;[HDRCapability](_h_d_r_capability.md)&nbsp;\*info) | 获取显示设备支持的HDR属性信息。 | 
+| (&nbsp;**GetSupportedMetadataKey**&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[HDRMetadataKey](_display.md#hdrmetadatakey)&nbsp;\*keys) | 获取显示设备支持的&nbsp;HDRMetadataKey。 | 
+| (&nbsp;**Commit**&nbsp;)(uint32_t&nbsp;devId,&nbsp;int32_t&nbsp;\*fence) | 提交合成送显请求。 | 
+| (&nbsp;**InvokeDisplayCmd**&nbsp;)(uint32_t&nbsp;devId,...) | 调用显示设备命令。 | 
+| (&nbsp;**CreateVirtualDisplay**&nbsp;)(uint32_t&nbsp;width,&nbsp;uint32_t&nbsp;height,&nbsp;int32_t&nbsp;\*format,&nbsp;uint32_t&nbsp;\*devId) | 创建虚拟显示设备。 | 
+| (&nbsp;**DestroyVirtualDisplay**&nbsp;)(uint32_t&nbsp;devId) | 销毁虚拟显示设备。 | 
+| (&nbsp;**SetVirtualDisplayBuffer**&nbsp;)(uint32_t&nbsp;devId,&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;fence) | 设置虚拟屏的输出缓存。 | 
+| (&nbsp;**GetWriteBackFrame**&nbsp;)(uint32_t&nbsp;devId,&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;\*fence) | 获取显示设备的回写帧。 | 
+| (&nbsp;**CreateWriteBack**&nbsp;)(uint32_t&nbsp;\*devId,&nbsp;uint32_t&nbsp;width,&nbsp;uint32_t&nbsp;height,&nbsp;int32_t&nbsp;\*format) | 对指定显示设备创建回写点。 | 
+| (&nbsp;**DestroyWriteBack**&nbsp;)(uint32_t&nbsp;devId) | 销毁指定显示设备的回写点。 | 
+
+
+## **详细描述**
+
+显示设备控制接口结构体,定义显示设备控制接口函数指针。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_device_info.md b/zh-cn/device-dev/reference/hdi-apis/_device_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..d70dedd1806bb2b2c392c58f0ed8e4bca5deaed2
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_device_info.md
@@ -0,0 +1,118 @@
+# InputDeviceInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [devIndex](#devindex) | 设备索引 |      
+| [devType](#devtype) | 设备类型 |                       
+| [chipInfo](#chipinfo)&nbsp;[CHIP_INFO_LEN] | 驱动芯片编码信息 | 
+| [vendorName](#vendorname)&nbsp;[VENDOR_NAME_LEN] | 模组厂商名 |  
+| [chipName](#chipname)&nbsp;[CHIP_NAME_LEN] | 驱动芯片型号 | 
+| [attrSet](#attrset)| 设备属性。 |
+| [abilitySet](#abilityset)| 设备能力属性。|
+
+
+
+## **详细描述**
+
+Input设备基础设备信息。
+
+
+## **类成员变量说明**
+
+
+### chipInfo
+
+  
+```
+char InputDeviceInfo::chipInfo[CHIP_INFO_LEN]
+```
+
+**描述:**
+
+驱动芯片编码信息。
+
+
+### chipName
+
+  
+```
+char InputDeviceInfo::chipName[CHIP_NAME_LEN]
+```
+
+**描述:**
+
+驱动芯片型号。
+
+
+### devIndex
+
+  
+```
+uint32_t InputDeviceInfo::devIndex
+```
+
+**描述:**
+
+设备索引。
+
+
+
+### devType
+
+  
+```
+uint32_t InputDeviceInfo::devType
+```
+
+**描述:**
+
+设备类型。
+
+
+### vendorName
+
+  
+```
+char InputDeviceInfo::vendorName[VENDOR_NAME_LEN]
+```
+
+**描述:**
+
+模组厂商名。
+
+
+### attrSet
+
+  
+```
+InputDevAttr InputDeviceInfo::attrSet
+```
+
+**描述:**
+
+设备属性。
+
+
+### abilitySet
+
+  
+```
+InputDevAbility InputDeviceInfo::abilitySet
+```
+
+**描述:**
+
+设备能力属性。
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_display.md b/zh-cn/device-dev/reference/hdi-apis/_display.md
new file mode 100644
index 0000000000000000000000000000000000000000..1e8b1851aba085b8630c317c39fe21b9091e40d5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_display.md
@@ -0,0 +1,3358 @@
+# Display
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [display_device.h](display__device_8h.md) | 显示设备控制接口声明。 | 
+| [display_gfx.h](display__gfx_8h.md) | 显示硬件加速驱动接口声明。 | 
+| [display_gralloc.h](display__gralloc_8h.md) | 显示内存驱动接口声明。 | 
+| [display_layer.h](display__layer_8h.md) | 显示图层驱动接口声明。 | 
+| [display_type.h](display__type_8h.md) | 显示类型定义,定义显示驱动接口所使用的数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [DeviceFuncs](_device_funcs.md) | 显示设备控制接口结构体,定义显示设备控制接口函数指针。&nbsp;[更多...](_device_funcs.md) | 
+| [GfxFuncs](_gfx_funcs.md) | 显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。&nbsp;[更多...](_gfx_funcs.md) | 
+| [GrallocFuncs](_gralloc_funcs.md) | 显示内存驱动接口结构体,定义显示内存驱动接口函数指针。&nbsp;[更多...](_gralloc_funcs.md) | 
+| [LayerFuncs](_layer_funcs.md) | 显示图层驱动接口结构体,定义显示图层驱动接口函数指针。&nbsp;[更多...](_layer_funcs.md) | 
+| [DisplayInfo](_display_info.md) | 定义显示信息结构体&nbsp;[更多...](_display_info.md) | 
+| [LayerInfo](_layer_info.md) | 定义图层信息结构体&nbsp;[更多...](_layer_info.md) | 
+| [LayerAlpha](_layer_alpha.md) | 定义图层Alpha信息的结构体&nbsp;[更多...](_layer_alpha.md) | 
+| [BufferData](_buffer_data.md) | 定义一层的缓冲区数据,包括虚拟和物理内存地址。&nbsp;[更多...](_buffer_data.md) | 
+| [LayerBuffer](_layer_buffer.md) | 图层Buffer,用于存放图层数据。&nbsp;[更多...](_layer_buffer.md) | 
+| [IRect](_i_rect.md) | 定义矩形信息&nbsp;[更多...](_i_rect.md) | 
+| [ISurface](_i_surface.md) | 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。&nbsp;[更多...](_i_surface.md) | 
+| [ILine](_i_line.md) | 线条描述结构体定义,用于硬件加速绘制直线。&nbsp;[更多...](_i_line.md) | 
+| [ICircle](_i_circle.md) | 圆形描述结构体定义,用于硬件加速绘制圆形。&nbsp;[更多...](_i_circle.md) | 
+| [Rectangle](_rectangle.md) | 矩形描述结构体定义,用于硬件加速绘制矩形,&nbsp;[更多...](_rectangle.md) | 
+| [GfxOpt](_gfx_opt.md) | 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。&nbsp;[更多...](_gfx_opt.md) | 
+| [PropertyObject](_property_object.md) | 定义包含名称、属性ID和值的属性对象。&nbsp;[更多...](_property_object.md) | 
+| [DisplayCapability](_display_capability.md) | 定义输出性能。&nbsp;[更多...](_display_capability.md) | 
+| [DisplayModeInfo](_display_mode_info.md) | 定义输出模式信息。&nbsp;[更多...](_display_mode_info.md) | 
+| [AllocInfo](_alloc_info.md) | 定义关于要分配的内存的信息。&nbsp;[更多...](_alloc_info.md) | 
+| [HDRCapability](_h_d_r_capability.md) | HDR属性结构体定义&nbsp;[更多...](_h_d_r_capability.md) | 
+| [HDRMetaData](_h_d_r_meta_data.md) | HDR元数据结构体定义&nbsp;[更多...](_h_d_r_meta_data.md) | 
+| [VerifyAllocInfo](_verify_alloc_info.md) | 用于验证内存分配信息的结构体定义&nbsp;[更多...](_verify_alloc_info.md) | 
+| [PresentTimestamp](_present_timestamp.md) | 上屏时间戳结构体定义&nbsp;[更多...](_present_timestamp.md) | 
+| [__attribute__](____attribute____.md) | 扩展数据句柄结构体定义&nbsp;[更多...](____attribute____.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| **PROPERTY_NAME_LEN**&nbsp;&nbsp;&nbsp;50 | 属性名字长度。 | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([HotPlugCallback](#hotplugcallback))&nbsp;(uint32_t&nbsp;devId,&nbsp;bool&nbsp;connected,&nbsp;void&nbsp;\*data) | 热插拔事件回调。[更多...](#hotplugcallback) | 
+| ([VBlankCallback](#vblankcallback))&nbsp;(unsigned&nbsp;int&nbsp;sequence,&nbsp;uint64_t&nbsp;ns,&nbsp;void&nbsp;\*data) | VBlank&nbsp;事件回调。&nbsp;[更多...](#vblankcallback) | 
+| ([RefreshCallback](#refreshcallback))&nbsp;(uint32_t&nbsp;devId,&nbsp;void&nbsp;\*data) | 刷新请求回调。[更多...](#refreshcallback) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [DispErrCode](#disperrcode)&nbsp;{&nbsp;DISPLAY_SUCCESS&nbsp;=&nbsp;0,&nbsp;DISPLAY_FAILURE&nbsp;=&nbsp;-1,&nbsp;DISPLAY_FD_ERR&nbsp;=&nbsp;-2,&nbsp;DISPLAY_PARAM_ERR&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;DISPLAY_NULL_PTR&nbsp;=&nbsp;-4,&nbsp;DISPLAY_NOT_SUPPORT&nbsp;=&nbsp;-5,&nbsp;DISPLAY_NOMEM&nbsp;=&nbsp;-6,&nbsp;DISPLAY_SYS_BUSY&nbsp;=&nbsp;-7,&nbsp;&nbsp;&nbsp;DISPLAY_NOT_PERM&nbsp;=&nbsp;-8&nbsp;} | 返回值类型定义。&nbsp;[更多...](#disperrcode) | 
+| [LayerType](#layertype)&nbsp;{&nbsp;LAYER_TYPE_GRAPHIC,&nbsp;LAYER_TYPE_OVERLAY,&nbsp;LAYER_TYPE_SDIEBAND,&nbsp;LAYER_TYPE_CURSOR,&nbsp;&nbsp;&nbsp;LAYER_TYPE_BUTT&nbsp;} | 图层类型定义。&nbsp;[更多...](#layertype) | 
+| {&nbsp;HBM_USE_CPU_READ&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;0),&nbsp;HBM_USE_CPU_WRITE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;1),&nbsp;HBM_USE_MEM_MMZ&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;2),&nbsp;HBM_USE_MEM_DMA&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;3),&nbsp;&nbsp;&nbsp;HBM_USE_MEM_SHARE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;4),&nbsp;HBM_USE_MEM_MMZ_CACHE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;5),&nbsp;HBM_USE_MEM_FB&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;6),&nbsp;HBM_USE_ASSIGN_SIZE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;7)&nbsp;} | 缓冲区定义。[更多...](#anonymous-enum) | 
+| [PixelFormat](#pixelformat)&nbsp;{&nbsp;PIXEL_FMT_CLUT8&nbsp;=&nbsp;0,&nbsp;PIXEL_FMT_CLUT1,&nbsp;PIXEL_FMT_CLUT4,&nbsp;PIXEL_FMT_RGB_565,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBA_5658,&nbsp;PIXEL_FMT_RGBX_4444,&nbsp;PIXEL_FMT_RGBA_4444,&nbsp;PIXEL_FMT_RGB_444,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBX_5551,&nbsp;PIXEL_FMT_RGBA_5551,&nbsp;PIXEL_FMT_RGB_555,&nbsp;PIXEL_FMT_RGBX_8888,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBA_8888,&nbsp;PIXEL_FMT_RGB_888,&nbsp;PIXEL_FMT_BGR_565,&nbsp;PIXEL_FMT_BGRX_4444,&nbsp;&nbsp;&nbsp;PIXEL_FMT_BGRA_4444,&nbsp;PIXEL_FMT_BGRX_5551,&nbsp;PIXEL_FMT_BGRA_5551,&nbsp;PIXEL_FMT_BGRX_8888,&nbsp;&nbsp;&nbsp;PIXEL_FMT_BGRA_8888,&nbsp;PIXEL_FMT_YUV_422_I,&nbsp;PIXEL_FMT_YCBCR_422_SP,&nbsp;PIXEL_FMT_YCRCB_422_SP,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YCBCR_420_SP,&nbsp;PIXEL_FMT_YCRCB_420_SP,&nbsp;PIXEL_FMT_YCBCR_422_P,&nbsp;PIXEL_FMT_YCRCB_422_P,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YCBCR_420_P,&nbsp;PIXEL_FMT_YCRCB_420_P,&nbsp;PIXEL_FMT_YUYV_422_PKG,&nbsp;PIXEL_FMT_UYVY_422_PKG,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YVYU_422_PKG,&nbsp;PIXEL_FMT_VYUY_422_PKG,&nbsp;PIXEL_FMT_VENDER_MASK&nbsp;=&nbsp;0X7FFF0000,&nbsp;PIXEL_FMT_BUTT&nbsp;=&nbsp;0X7FFFFFFF&nbsp;} | 像素格式类型定义。&nbsp;[更多...](#pixelformat) | 
+| [TransformType](#transformtype)&nbsp;{&nbsp;ROTATE_NONE&nbsp;=&nbsp;0,&nbsp;ROTATE_90,&nbsp;ROTATE_180,&nbsp;ROTATE_270,&nbsp;&nbsp;&nbsp;ROTATE_BUTT&nbsp;} | 图层变换类型定义。&nbsp;[更多...](#transformtype) | 
+| [BlendType](#blendtype)&nbsp;{&nbsp;BLEND_NONE&nbsp;=&nbsp;0,&nbsp;BLEND_CLEAR,&nbsp;BLEND_SRC,&nbsp;BLEND_SRCOVER,&nbsp;&nbsp;&nbsp;BLEND_DSTOVER,&nbsp;BLEND_SRCIN,&nbsp;BLEND_DSTIN,&nbsp;BLEND_SRCOUT,&nbsp;&nbsp;&nbsp;BLEND_DSTOUT,&nbsp;BLEND_SRCATOP,&nbsp;BLEND_DSTATOP,&nbsp;BLEND_ADD,&nbsp;&nbsp;&nbsp;BLEND_XOR,&nbsp;BLEND_DST,&nbsp;BLEND_AKS,&nbsp;BLEND_AKD,&nbsp;&nbsp;&nbsp;BLEND_BUTT&nbsp;} | 显示内存类型定义。&nbsp;[更多...](#blendtype) | 
+| [RopType](#roptype)&nbsp;{&nbsp;ROP_BLACK&nbsp;=&nbsp;0,&nbsp;ROP_NOTMERGEPEN,&nbsp;ROP_MASKNOTPEN,&nbsp;ROP_NOTCOPYPEN,&nbsp;&nbsp;&nbsp;ROP_MASKPENNOT,&nbsp;ROP_NOT,&nbsp;ROP_XORPEN,&nbsp;ROP_NOTMASKPEN,&nbsp;&nbsp;&nbsp;ROP_MASKPEN,&nbsp;ROP_NOTXORPEN,&nbsp;ROP_NOP,&nbsp;ROP_MERGENOTPEN,&nbsp;&nbsp;&nbsp;ROP_COPYPE,&nbsp;ROP_MERGEPENNOT,&nbsp;ROP_MERGEPEN,&nbsp;ROP_WHITE,&nbsp;&nbsp;&nbsp;ROP_BUTT&nbsp;} | 硬件加速支持的ROP操作类型。&nbsp;[更多...](#roptype) | 
+| [ColorKey](#colorkey)&nbsp;{&nbsp;CKEY_NONE&nbsp;=&nbsp;0,&nbsp;CKEY_SRC,&nbsp;CKEY_DST,&nbsp;CKEY_BUTT&nbsp;} | Color&nbsp;key操作类型定义,即硬件加速支持的Color&nbsp;key操作类型。&nbsp;[更多...](#colorkey) | 
+| [MirrorType](#mirrortype)&nbsp;{&nbsp;MIRROR_NONE&nbsp;=&nbsp;0,&nbsp;MIRROR_LR,&nbsp;MIRROR_TB,&nbsp;MIRROR_BUTT&nbsp;} | 硬件加速支持的镜像操作类型定义&nbsp;[更多...](#mirrortype) | 
+| [Connection](#connection)&nbsp;{&nbsp;CON_INVALID&nbsp;=&nbsp;0,&nbsp;CONNECTED,&nbsp;DISCONNECTED&nbsp;} | 热插拔连接类型定义&nbsp;[更多...](#connection) | 
+| [InterfaceType](#interfacetype)&nbsp;{&nbsp;DISP_INTF_HDMI&nbsp;=&nbsp;0,&nbsp;DISP_INTF_LCD,&nbsp;DISP_INTF_BT1120,&nbsp;DISP_INTF_BT656,&nbsp;&nbsp;&nbsp;DISP_INTF_YPBPR,&nbsp;DISP_INTF_RGB,&nbsp;DISP_INTF_CVBS,&nbsp;DISP_INTF_SVIDEO,&nbsp;&nbsp;&nbsp;DISP_INTF_VGA,&nbsp;DISP_INTF_MIPI,&nbsp;DISP_INTF_PANEL,&nbsp;DISP_INTF_BUTT&nbsp;} | 枚举接口类型。&nbsp;[更多...](#interfacetype) | 
+| [DispPowerStatus](#disppowerstatus)&nbsp;{&nbsp;POWER_STATUS_ON,&nbsp;POWER_STATUS_STANDBY,&nbsp;POWER_STATUS_SUSPEND,&nbsp;POWER_STATUS_OFF,&nbsp;&nbsp;&nbsp;POWER_STATUS_BUTT&nbsp;} | 枚举显示状态&nbsp;[更多...](#disppowerstatus) | 
+| [CompositionType](#compositiontype)&nbsp;{&nbsp;COMPOSITION_CLIENT,&nbsp;COMPOSITION_DEVICE,&nbsp;COMPOSITION_CURSOR,&nbsp;COMPOSITION_VIDEO,&nbsp;&nbsp;&nbsp;COMPOSITION_DEVICE_CLEAR,&nbsp;COMPOSITION_CLIENT_CLEAR,&nbsp;COMPOSITION_TUNNEL,&nbsp;COMPOSITION_BUTT&nbsp;} | 枚举特殊层的组合类型。&nbsp;[更多...](#compositiontype) | 
+| [ColorGamut](#colorgamut)&nbsp;{&nbsp;COLOR_GAMUT_INVALID&nbsp;=&nbsp;-1,&nbsp;COLOR_GAMUT_NATIVE&nbsp;=&nbsp;0,&nbsp;COLOR_GAMUT_SATNDARD_BT601&nbsp;=&nbsp;1,&nbsp;COLOR_GAMUT_STANDARD_BT709&nbsp;=&nbsp;2,&nbsp;&nbsp;&nbsp;COLOR_GAMUT_DCI_P3&nbsp;=&nbsp;3,&nbsp;COLOR_GAMUT_SRGB&nbsp;=&nbsp;4,&nbsp;COLOR_GAMUT_ADOBE_RGB&nbsp;=&nbsp;5,&nbsp;COLOR_GAMUT_DISPLAY_P3&nbsp;=&nbsp;6,&nbsp;&nbsp;&nbsp;COLOR_GAMUT_BT2020&nbsp;=&nbsp;7,&nbsp;COLOR_GAMUT_BT2100_PQ&nbsp;=&nbsp;8,&nbsp;COLOR_GAMUT_BT2100_HLG&nbsp;=&nbsp;9,&nbsp;COLOR_GAMUT_DISPLAY_BT2020&nbsp;=&nbsp;10&nbsp;} | 色域类型枚举值&nbsp;[更多...](#colorgamut) | 
+| [GamutMap](#gamutmap)&nbsp;{&nbsp;GAMUT_MAP_CONSTANT&nbsp;=&nbsp;0,&nbsp;GAMUT_MAP_EXPANSION&nbsp;=&nbsp;1,&nbsp;GAMUT_MAP_HDR_CONSTANT&nbsp;=&nbsp;2,&nbsp;GAMUT_MAP_HDR_EXPANSION&nbsp;=&nbsp;3&nbsp;} | 枚举色域的映射类型&nbsp;[更多...](#gamutmap) | 
+| [ColorDataSpace](#colordataspace)&nbsp;{&nbsp;&nbsp;&nbsp;COLOR_DATA_SPACE_UNKNOWN&nbsp;=&nbsp;0,&nbsp;GAMUT_BT601&nbsp;=&nbsp;0x00000001,&nbsp;GAMUT_BT709&nbsp;=&nbsp;0x00000002,&nbsp;GAMUT_DCI_P3&nbsp;=&nbsp;0x00000003,&nbsp;&nbsp;&nbsp;GAMUT_SRGB&nbsp;=&nbsp;0x00000004,&nbsp;GAMUT_ADOBE_RGB&nbsp;=&nbsp;0x00000005,&nbsp;GAMUT_DISPLAY_P3&nbsp;=&nbsp;0x00000006,&nbsp;GAMUT_BT2020&nbsp;=&nbsp;0x00000007,&nbsp;&nbsp;&nbsp;GAMUT_BT2100_PQ&nbsp;=&nbsp;0x00000008,&nbsp;GAMUT_BT2100_HLG&nbsp;=&nbsp;0x00000009,&nbsp;GAMUT_DISPLAY_BT2020&nbsp;=&nbsp;0x0000000a,&nbsp;TRANSFORM_FUNC_UNSPECIFIED&nbsp;=&nbsp;0x00000100,&nbsp;&nbsp;&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;=&nbsp;0x00000200,&nbsp;TRANSFORM_FUNC_SRGB&nbsp;=&nbsp;0x00000300,&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;=&nbsp;0x00000400,&nbsp;TRANSFORM_FUNC_GM2_2&nbsp;=&nbsp;0x00000500,&nbsp;&nbsp;&nbsp;TRANSFORM_FUNC_GM2_6&nbsp;=&nbsp;0x00000600,&nbsp;TRANSFORM_FUNC_GM2_8&nbsp;=&nbsp;0x00000700,&nbsp;TRANSFORM_FUNC_ST2084&nbsp;=&nbsp;0x00000800,&nbsp;TRANSFORM_FUNC_HLG&nbsp;=&nbsp;0x00000900,&nbsp;&nbsp;&nbsp;PRECISION_UNSPECIFIED&nbsp;=&nbsp;0x00010000,&nbsp;PRECISION_FULL&nbsp;=&nbsp;0x00020000,&nbsp;PRESION_LIMITED&nbsp;=&nbsp;0x00030000,&nbsp;PRESION_EXTENDED&nbsp;=&nbsp;0x00040000,&nbsp;&nbsp;&nbsp;BT601_SMPTE170M_FULL&nbsp;=&nbsp;GAMUT_BT601&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT601_SMPTE170M_LIMITED&nbsp;=&nbsp;GAMUT_BT601&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRESION_LIMITED,&nbsp;BT709_LINEAR_FULL&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT709_LINEAR_EXTENDED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRESION_EXTENDED,&nbsp;&nbsp;&nbsp;BT709_SRGB_FULL&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT709_SRGB_EXTENDED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRESION_EXTENDED,&nbsp;BT709_SMPTE170M_LIMITED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRESION_LIMITED,&nbsp;DCI_P3_LINEAR_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;DCI_P3_GAMMA26_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_GM2_6&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;DISPLAY_P3_LINEAR_FULL&nbsp;=&nbsp;GAMUT_DISPLAY_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;DCI_P3_SRGB_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;ADOBE_RGB_GAMMA22_FULL&nbsp;=&nbsp;GAMUT_ADOBE_RGB&nbsp;\|&nbsp;TRANSFORM_FUNC_GM2_2&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;BT2020_LINEAR_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_SRGB_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_SMPTE170M_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_ST2084_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_ST2084&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;BT2020_HLG_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_HLG&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_ST2084_LIMITED&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_ST2084&nbsp;\|&nbsp;PRESION_LIMITED&nbsp;} | 枚举颜色空间的类型&nbsp;[更多...](#colordataspace) | 
+| [HDRFormat](#hdrformat)&nbsp;{&nbsp;NOT_SUPPORT_HDR&nbsp;=&nbsp;0,&nbsp;DOLBY_VISION&nbsp;=&nbsp;1,&nbsp;HDR10&nbsp;=&nbsp;2,&nbsp;HLG&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;HDR10_PLUS&nbsp;=&nbsp;4,&nbsp;HDR_VIVID&nbsp;=&nbsp;5&nbsp;} | 枚举HDR格式&nbsp;[更多...](#hdrformat) | 
+| [HDRMetadataKey](#hdrmetadatakey)&nbsp;{&nbsp;MATAKEY_RED_PRIMARY_X&nbsp;=&nbsp;0,&nbsp;MATAKEY_RED_PRIMARY_Y&nbsp;=&nbsp;1,&nbsp;MATAKEY_GREEN_PRIMARY_X&nbsp;=&nbsp;2,&nbsp;MATAKEY_GREEN_PRIMARY_Y&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;MATAKEY_BLUE_PRIMARY_X&nbsp;=&nbsp;4,&nbsp;MATAKEY_BLUE_PRIMARY_Y&nbsp;=&nbsp;5,&nbsp;MATAKEY_WHITE_PRIMARY_X&nbsp;=&nbsp;6,&nbsp;MATAKEY_WHITE_PRIMARY_Y&nbsp;=&nbsp;7,&nbsp;&nbsp;&nbsp;MATAKEY_MAX_LUMINANCE&nbsp;=&nbsp;8,&nbsp;MATAKEY_MIN_LUMINANCE&nbsp;=&nbsp;9,&nbsp;MATAKEY_MAX_CONTENT_LIGHT_LEVEL&nbsp;=&nbsp;10,&nbsp;MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL&nbsp;=&nbsp;11,&nbsp;&nbsp;&nbsp;MATAKEY_HDR10_PLUS&nbsp;=&nbsp;12,&nbsp;MATAKEY_HDR_VIVID&nbsp;=&nbsp;13&nbsp;} | 枚举HDR元数据关键字&nbsp;[更多...](#hdrmetadatakey) | 
+| [PresentTimestampType](#presenttimestamptype)&nbsp;{&nbsp;HARDWARE_DISPLAY_PTS_UNSUPPORTED&nbsp;=&nbsp;0,&nbsp;HARDWARE_DISPLAY_PTS_DELAY&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;0,&nbsp;HARDWARE_DISPLAY_PTS_TIMESTAMP&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;1&nbsp;} | 上屏时间戳类型枚举值&nbsp;[更多...](#presenttimestamptype) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [DeviceInitialize](#deviceinitialize)&nbsp;([DeviceFuncs](_device_funcs.md)&nbsp;\*\*funcs) | 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。&nbsp;[更多...](#deviceinitialize) | 
+| [DeviceUninitialize](#deviceuninitialize)&nbsp;([DeviceFuncs](_device_funcs.md)&nbsp;\*funcs) | 取消显示设备控制接口的初始化,释放控制接口使用到的资源。&nbsp;[更多...](#deviceuninitialize) | 
+| [GfxInitialize](#gfxinitialize)&nbsp;([GfxFuncs](_gfx_funcs.md)&nbsp;\*\*funcs) | 获取硬件加速相关的操作接口指针。&nbsp;[更多...](#gfxinitialize) | 
+| [GfxUninitialize](#gfxuninitialize)&nbsp;([GfxFuncs](_gfx_funcs.md)&nbsp;\*funcs) | 释放硬件加速相关的操作接口指针。&nbsp;[更多...](#gfxuninitialize) | 
+| [GrallocInitialize](#grallocinitialize)&nbsp;([GrallocFuncs](_gralloc_funcs.md)&nbsp;\*\*funcs) | 初始化内存模块,并获取内存提供的操作接口。&nbsp;[更多...](#grallocinitialize) | 
+| [GrallocUninitialize](#grallocuninitialize)&nbsp;([GrallocFuncs](_gralloc_funcs.md)&nbsp;\*funcs) | 取消初始化内存模块,并释放内存操作接口指针。&nbsp;[更多...](#grallocuninitialize) | 
+| [LayerInitialize](#layerinitialize)&nbsp;([LayerFuncs](_layer_funcs.md)&nbsp;\*\*funcs) | 实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。&nbsp;[更多...](#layerinitialize) | 
+| [LayerUninitialize](#layeruninitialize)&nbsp;([LayerFuncs](_layer_funcs.md)&nbsp;\*funcs) | 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。&nbsp;[更多...](#layeruninitialize) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[DeviceFuncs::RegHotPlugCallback](#reghotplugcallback)&nbsp;)([HotPlugCallback](#hotplugcallback)&nbsp;callback,&nbsp;void&nbsp;\*data) | 注册热插拔事件回调。&nbsp;[更多...](#reghotplugcallback) | 
+| (&nbsp;[DeviceFuncs::RegDisplayVBlankCallback](#regdisplayvblankcallback)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[VBlankCallback](#vblankcallback)&nbsp;callback,&nbsp;void&nbsp;\*data) | 注册VBlank事件回调。&nbsp;[更多...](#regdisplayvblankcallback) | 
+| (&nbsp;[DeviceFuncs::RegDisplayRefreshCallback](#regdisplayrefreshcallback)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[RefreshCallback](#refreshcallback)&nbsp;callback,&nbsp;void&nbsp;\*data) | 刷新请求回调。&nbsp;[更多...](#regdisplayrefreshcallback) | 
+| (&nbsp;[DeviceFuncs::GetDisplayCapability](#getdisplaycapability)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DisplayCapability](_display_capability.md)&nbsp;\*info) | 获取显示设备能力集。&nbsp;[更多...](#getdisplaycapability) | 
+| (&nbsp;[DeviceFuncs::GetDisplaySupportedModes](#getdisplaysupportedmodes)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[DisplayModeInfo](_display_mode_info.md)&nbsp;\*modes) | 获取显示设备支持的显示模式信息。&nbsp;[更多...](#getdisplaysupportedmodes) | 
+| (&nbsp;[DeviceFuncs::GetDisplayMode](#getdisplaymode)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*modeId) | 获取显示设备当前的显示模式。&nbsp;[更多...](#getdisplaymode) | 
+| (&nbsp;[DeviceFuncs::SetDisplayMode](#setdisplaymode)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;modeId) | 设置显示设备的显示模式。&nbsp;[更多...](#setdisplaymode) | 
+| (&nbsp;[DeviceFuncs::GetDisplayPowerStatus](#getdisplaypowerstatus)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DispPowerStatus](#disppowerstatus)&nbsp;\*status) | 获取显示设备当前的电源状态。&nbsp;[更多...](#getdisplaypowerstatus) | 
+| ([&nbsp;DeviceFuncs::SetDisplayPowerStatus](#setdisplaypowerstatus)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DispPowerStatus](#disppowerstatus)&nbsp;status) | 设置显示设备当前的电源状态。&nbsp;[更多...](#setdisplaypowerstatus) | 
+| (&nbsp;[DeviceFuncs::GetDisplayBacklight](#getdisplaybacklight)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*level) | 获取显示设备当前的背光值。&nbsp;[更多...](#getdisplaybacklight) | 
+| (&nbsp;[DeviceFuncs::SetDisplayBacklight](#setdisplaybacklight)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;level) | 设置显示设备当前的背光值。&nbsp;[更多...](#setdisplaybacklight) | 
+| (&nbsp;[DeviceFuncs::GetDisplayProperty](#getdisplayproperty)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;id,&nbsp;uint64_t&nbsp;\*value) | 获得显示设备属性值。&nbsp;[更多...](#getdisplayproperty) | 
+| (&nbsp;[DeviceFuncs::SetDisplayProperty](#setdisplayproperty)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;id,&nbsp;uint64_t&nbsp;value) | 设置显示设备属性值。&nbsp;[更多...](#setdisplayproperty) | 
+| (&nbsp;[DeviceFuncs::PrepareDisplayLayers](#preparedisplaylayers)&nbsp;)(uint32_t&nbsp;devId,&nbsp;bool&nbsp;\*needFlushFb) | 显示设备合成前准备。&nbsp;[更多...](#preparedisplaylayers) | 
+| (&nbsp;[DeviceFuncs::GetDisplayCompChange](#getdisplaycompchange)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;uint32_t&nbsp;\*Layers,&nbsp;int32_t&nbsp;\*type) | 获取显示设备合成类型有变化的layer。&nbsp;[更多...](#getdisplaycompchange) | 
+| (&nbsp;[DeviceFuncs::SetDisplayClientCrop](#setdisplayclientcrop)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的裁剪区域。&nbsp;[更多...](#setdisplayclientcrop) | 
+| (&nbsp;[DeviceFuncs::SetDisplayClientDestRect](#setdisplayclientdestrect)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的显示区域。&nbsp;[更多...](#setdisplayclientdestrect) | 
+| (&nbsp;[DeviceFuncs::SetDisplayClientBuffer](#setdisplayclientbuffer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;const&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;fence) | 设置显示设备的显示缓存。&nbsp;[更多...](#setdisplayclientbuffer) | 
+| (&nbsp;[DeviceFuncs::SetDisplayClientDamage](#setdisplayclientdamage)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;num,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置显示设备的显示脏区。&nbsp;[更多...](#setdisplayclientdamage) | 
+| (&nbsp;[DeviceFuncs::SetDisplayVsyncEnabled](#setdisplayvsyncenabled)&nbsp;)(uint32_t&nbsp;devId,&nbsp;bool&nbsp;enabled) | 使能垂直同步信号。&nbsp;[更多...](#setdisplayvsyncenabled) | 
+| (&nbsp;[DeviceFuncs::GetDisplayReleaseFence](#getdisplayreleasefence)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;uint32_t&nbsp;\*layers,&nbsp;int32_t&nbsp;\*fences) | 获取显示图层fence。&nbsp;[更多...](#getdisplayreleasefence) | 
+| (&nbsp;[DeviceFuncs::GetDisplaySupportedColorGamuts](#getdisplaysupportedcolorgamuts)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[ColorGamut](#colorgamut)&nbsp;\*gamuts) | 获取显示设备支持的色域信息。&nbsp;[更多...](#getdisplaysupportedcolorgamuts) | 
+| (&nbsp;[DeviceFuncs::GetDisplayColorGamut](#getdisplaycolorgamut)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](#colorgamut)&nbsp;\*gamut) | 获取显示设备当前的色域模式。&nbsp;[更多...](#getdisplaycolorgamut) | 
+| (&nbsp;[DeviceFuncs::SetDisplayColorGamut](#setdisplaycolorgamut)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](#colorgamut)&nbsp;gamut) | 设置显示设备当前的色域模式。&nbsp;[更多...](#setdisplaycolorgamut) | 
+| (&nbsp;[DeviceFuncs::GetDisplayGamutMap](#getdisplaygamutmap)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](#colorgamut)&nbsp;\*gamutMap) | 获取显示设备当前的色域映射模式。&nbsp;[更多...](#getdisplaygamutmap) | 
+| (&nbsp;[DeviceFuncs::SetDisplayGamutMap](#setdisplaygamutmap)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[ColorGamut](#colorgamut)&nbsp;gamutMap) | 设置显示设备当前的色域映射模式。&nbsp;[更多...](#setdisplaygamutmap) | 
+| (&nbsp;[DeviceFuncs::SetDisplayColorTransform](#setdisplaycolortransform)&nbsp;)(uint32_t&nbsp;devId,&nbsp;const&nbsp;float&nbsp;\*matrix) | 设置显示设备当前的4x4的颜色转换矩阵。&nbsp;[更多...](#setdisplaycolortransform) | 
+| (&nbsp;[DeviceFuncs::GetHDRCapabilityInfos](#gethdrcapabilityinfos)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[HDRCapability](_h_d_r_capability.md)&nbsp;\*info) | 获取显示设备支持的HDR属性信息。&nbsp;[更多...](#gethdrcapabilityinfos) | 
+| (&nbsp;[DeviceFuncs::GetSupportedMetadataKey](#getsupportedmetadatakey)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;\*num,&nbsp;[HDRMetadataKey](#hdrmetadatakey)&nbsp;\*keys) | 获取显示设备支持的&nbsp;HDRMetadataKey。&nbsp;[更多...](#getsupportedmetadatakey) | 
+| (&nbsp;[DeviceFuncs::Commit](#commit)&nbsp;)(uint32_t&nbsp;devId,&nbsp;int32_t&nbsp;\*fence) | 提交合成送显请求。&nbsp;[更多...](#commit) | 
+| (&nbsp;[DeviceFuncs::InvokeDisplayCmd](#invokedisplaycmd)&nbsp;)(uint32_t&nbsp;devId,...) | 调用显示设备命令。&nbsp;[更多...](#invokedisplaycmd) | 
+| ([&nbsp;DeviceFuncs::CreateVirtualDisplay](#createvirtualdisplay)&nbsp;)(uint32_t&nbsp;width,&nbsp;uint32_t&nbsp;height,&nbsp;int32_t&nbsp;\*format,&nbsp;uint32_t&nbsp;\*devId) | 创建虚拟显示设备。&nbsp;[更多...](#createvirtualdisplay) | 
+| (&nbsp;[DeviceFuncs::DestroyVirtualDisplay](#destroyvirtualdisplay)&nbsp;)(uint32_t&nbsp;devId) | 销毁虚拟显示设备。&nbsp;[更多...](#destroyvirtualdisplay) | 
+| (&nbsp;[DeviceFuncs::SetVirtualDisplayBuffer](#setvirtualdisplaybuffer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;fence) | 设置虚拟屏的输出缓存。&nbsp;[更多...](#setvirtualdisplaybuffer) | 
+| (&nbsp;[DeviceFuncs::GetWriteBackFrame](#getwritebackframe)&nbsp;)(uint32_t&nbsp;devId,&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;\*fence) | 获取显示设备的回写帧。&nbsp;[更多...](#getwritebackframe) | 
+| (&nbsp;[DeviceFuncs::CreateWriteBack](#createwriteback)&nbsp;)(uint32_t&nbsp;\*devId,&nbsp;uint32_t&nbsp;width,&nbsp;uint32_t&nbsp;height,&nbsp;int32_t&nbsp;\*format) | 对指定显示设备创建回写点。&nbsp;[更多...](#createwriteback) | 
+| (&nbsp;[DeviceFuncs::DestroyWriteBack](#destroywriteback)&nbsp;)(uint32_t&nbsp;devId) | 销毁指定显示设备的回写点。&nbsp;[更多...](#destroywriteback) | 
+| [DisplayInfo::width](#width-17) | 显示屏宽度 | 
+| [DisplayInfo::height](#height-17) | 显示屏高度 | 
+| [DisplayInfo::rotAngle](#rotangle) | 显示屏旋转角度 | 
+| [LayerInfo::width](#width-27) | 图层宽度 | 
+| [LayerInfo::height](#height-27) | 图层高度 | 
+| [LayerInfo::type](#type-13) | 图层类型,包括图形层、视频层和媒体播放模式 | 
+| [LayerInfo::bpp](#bpp) | 每像素所占bit数 | 
+| [LayerInfo::pixFormat](#pixformat-12) | 图层像素格式 | 
+| [LayerAlpha::enGlobalAlpha](#englobalalpha-12) | 全局alpha使能标志 | 
+| [LayerAlpha::enPixelAlpha](#enpixelalpha-12) | 像素alpha使能标志 | 
+| [LayerAlpha::alpha0](#alpha0-12) | alpha0值,取值范围:[0,&nbsp;255] | 
+| [LayerAlpha::alpha1](#alpha1-12) | alpha1值,取值范围:[0,&nbsp;255] | 
+| [LayerAlpha::gAlpha](#galpha) | 全局alpha值,取值范围:[0,&nbsp;255] | 
+| [BufferData::phyAddr](#phyaddr-12) | 物理内存地址 | 
+| [BufferData::virAddr](#viraddr) | 虚拟内存地址 | 
+| [LayerBuffer::fenceId](#fenceid) | buffer&nbsp;的fence号r | 
+| [LayerBuffer::width](#width-37) | buffer宽度 | 
+| [LayerBuffer::height](#height-37) | buffer高度 | 
+| [LayerBuffer::pitch](#pitch) | 一行数据所占字节数 | 
+| [LayerBuffer::pixFormat](#pixformat-22) | buffer像素格式r | 
+| [LayerBuffer::data](#data) | 图层buffer数据 | 
+| [LayerBuffer::hdl](#hdl) | 图层buffer句柄 | 
+| [IRect::x](#x-12) | 矩形框起始x坐标 | 
+| [IRect::y](#y-12) | 矩形框起始y坐标 | 
+| [IRect::w](#w) | 矩形框宽度 | 
+| [IRect::h](#h) | 矩形框高度 | 
+| [ISurface::phyAddr](#phyaddr-22) | 图像首地址 | 
+| [ISurface::height](#height-47) | 图像高度 | 
+| [ISurface::width](#width-47) | 图像宽度 | 
+| [ISurface::stride](#stride) | 图像跨度 | 
+| [ISurface::enColorFmt](#encolorfmt) | 图像格式 | 
+| [ISurface::bYCbCrClut](#bycbcrclut) | CLUT表是否位于&nbsp;YCbCr&nbsp;空间 | 
+| [ISurface::bAlphaMax255](#balphamax255) | 图像alpha最大值为255还是128 | 
+| [ISurface::bAlphaExt1555](#balphaext1555) | 是否使能1555的Alpha扩展 | 
+| [ISurface::alpha0](#alpha0-22) | Alpha0值,取值范围:[0,255] | 
+| [ISurface::alpha1](#alpha1-22) | Alpha1值,取值范围:[0,255] | 
+| [ISurface::cbcrPhyAddr](#cbcrphyaddr) | CbCr分量地址 | 
+| [ISurface::cbcrStride](#cbcrstride) | CbCr分量跨度 | 
+| [ISurface::clutPhyAddr](#clutphyaddr) | Clut表首地址,用作颜色扩展或颜色校正 | 
+| [ILine::x0](#x0) | 线条起点的x坐标 | 
+| [ILine::y0](#y0) | 线条起点的y坐标 | 
+| [ILine::x1](#x1) | 线条终点的x坐标 | 
+| [ILine::y1](#y1) | 线条终点的y坐标 | 
+| [ILine::color](#color-13) | 线条颜色 | 
+| [ICircle::x](#x-22) | 圆心x坐标 | 
+| [ICircle::y](#y-22) | 圆心y坐标r | 
+| [ICircle::r](#r) | 圆的半径 | 
+| [ICircle::color](#color-23) | 圆的颜色 | 
+| [Rectangle::rect](#rect) | 矩形区域 | 
+| [Rectangle::color](#color-33) | 矩形颜色 | 
+| [GfxOpt::enGlobalAlpha](#englobalalpha-22) | 全局alpha使能位 | 
+| [GfxOpt::globalAlpha](#globalalpha) | 全局alpha的值 | 
+| [GfxOpt::enPixelAlpha](#enpixelalpha-22) | 像素alpha使能位 | 
+| [GfxOpt::blendType](#blendtype) | 混合方式 | 
+| [GfxOpt::colorKeyFrom](#colorkeyfrom) | 色键模式 | 
+| [GfxOpt::enableRop](#enablerop) | Rop功能使能位 | 
+| [GfxOpt::colorRopType](#colorroptype) | 颜色的Rop类型 | 
+| [GfxOpt::alphaRopType](#alpharoptype) | Alpha的Rop类型 | 
+| [GfxOpt::enableScale](#enablescale) | 缩放功能使能位 | 
+| [GfxOpt::rotateType](#rotatetype) | 旋转类型 | 
+| [GfxOpt::mirrorType](#mirrortype) | 镜像类型 | 
+| [PropertyObject::name](#name-12)&nbsp;[PROPERTY_NAME_LEN] | 属性名称 | 
+| [PropertyObject::propId](#propid) | 属性ID | 
+| [PropertyObject::value](#value-12) | 属性值 | 
+| [DisplayCapability::name](#name-22)&nbsp;[PROPERTY_NAME_LEN] | 显示设备名称 | 
+| [DisplayCapability::type](#type-23) | 显示屏接口类型 | 
+| [DisplayCapability::phyWidth](#phywidth) | 物理宽度 | 
+| [DisplayCapability::phyHeight](#phyheight) | 物理高度 | 
+| [DisplayCapability::supportLayers](#supportlayers) | 支持的图层数 | 
+| [DisplayCapability::virtualDispCount](#virtualdispcount) | 支持的虚拟屏数 | 
+| [DisplayCapability::supportWriteBack](#supportwriteback) | 是否支持回写 | 
+| [DisplayCapability::propertyCount](#propertycount) | 属性数组大小 | 
+| [DisplayCapability::props](#props) | 属性数组 | 
+| [DisplayModeInfo::width](#width-57) | 像素宽度 | 
+| [DisplayModeInfo::height](#height-57) | 像素高度 | 
+| [DisplayModeInfo::freshRate](#freshrate) | 刷新速率 | 
+| [DisplayModeInfo::id](#id) | 模式ID | 
+| [AllocInfo::width](#width-67) | 申请内存宽度 | 
+| [AllocInfo::height](#height-67) | 申请内存高度 | 
+| [AllocInfo::usage](#usage-12) | 申请内存的使用场景 | 
+| [AllocInfo::format](#format-12) | 申请内存格式 | 
+| [AllocInfo::expectedSize](#expectedsize) | 申请内存大小 | 
+| [HDRCapability::formatCount](#formatcount) | 支持的HDR格式的数量 | 
+| [HDRCapability::formats](#formats) | 支持的HDR格式的数组首地址 | 
+| [HDRCapability::maxLum](#maxlum) | 最大的光亮度luminance值 | 
+| [HDRCapability::maxAverageLum](#maxaveragelum) | 最大的平均光亮度luminance值 | 
+| [HDRCapability::minLum](#minlum) | 最小的光亮度luminance值 | 
+| [HDRMetaData::key](#key) | HDR元数据关键字 | 
+| [HDRMetaData::value](#value-22) | 关键字对应的值 | 
+| [VerifyAllocInfo::width](#width-77) | 分配内存的宽度 | 
+| [VerifyAllocInfo::height](#height-77) | 分配内存的高度 | 
+| [VerifyAllocInfo::usage](#usage-22) | 内存的用处 | 
+| [VerifyAllocInfo::format](#format-22) | 分配内存的像素格式 | 
+| [PresentTimestamp::type](#type-33) | 上屏时间戳类型 | 
+| [PresentTimestamp::time](#time) | 类型对应的值 | 
+| [__attribute__::fd](#fd) | 句柄&nbsp;fd,-1代表不支持 | 
+| [__attribute__::reserveInts](#reserveints) | reserve数组的个数 | 
+| [__attribute__::reserve](#reserve)&nbsp;[0] | reserve数组 | 
+| [__attribute__::baseAddr](#baseaddr) | 内存的初始地址 | 
+| [__attribute__::yOffset](#yoffset) | Y的偏移量 | 
+| [__attribute__::uOffset](#uoffset) | U的偏移量 | 
+| [__attribute__::vOffset](#voffset) | V的偏移量 | 
+| [__attribute__::yStride](#ystride) | Y的stride信息 | 
+| [__attribute__::uvStride](#uvstride) | UV的stride信息 | 
+| [__attribute__::uvStep](#uvstep) | UV的step信息 | 
+
+
+## **详细描述**
+
+显示模块驱动接口定义。
+
+提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+2.0
+
+
+## **类型定义说明**
+
+
+### HotPlugCallback
+
+
+```
+typedef void(* HotPlugCallback) (uint32_t devId, bool connected, void *data)
+```
+
+**描述:**
+
+热插拔事件回调。
+
+当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 | 
+| connected | 输入参数,指明设备的连接状态,ture代表连接,false代表断开。 | 
+| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考&nbsp;RegHotPlugCallback&nbsp;接口注册时传递的地址。 | 
+
+
+### RefreshCallback
+
+
+```
+typedef void(* RefreshCallback) (uint32_t devId, void *data)
+```
+
+**描述:**
+
+刷新请求回调。
+
+刷新请求回调,当接口实现层需要图形服务刷新数据帧时会回调该接口,需要通过RegDisplayRefreshCallback注册该回调接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID。 | 
+| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayRefreshCallback接口注册时传递的地址。 | 
+
+
+### VBlankCallback
+
+
+```
+typedef void(* VBlankCallback) (unsigned int sequence, uint64_t ns, void *data)
+```
+
+**描述:**
+
+VBlank 事件回调。
+
+垂直同步事件回调接口,需要通过RegDisplayVBlankCallback注册该回调接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| sequence | 输入参数,指明VBlank序列,是一个累加值。 | 
+| ns | 输入参数,该次VBlank事件的时间戳,以纳秒为单位。 | 
+| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayVBlankCallback接口注册时传递的地址。 | 
+
+
+## **枚举类型说明**
+
+
+### anonymous enum
+
+
+```
+anonymous enum
+```
+
+**描述:**
+
+缓冲区定义。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| HBM_USE_CPU_READ | CPU&nbsp;读缓冲 | 
+| HBM_USE_CPU_WRITE | CPU&nbsp;写内存 | 
+| HBM_USE_MEM_MMZ | MMZ | 
+| HBM_USE_MEM_DMA | DMA缓冲区 | 
+| HBM_USE_MEM_SHARE | 共享内存缓冲区 | 
+| HBM_USE_MEM_MMZ_CACHE | MMZ缓存 | 
+| HBM_USE_MEM_FB | 帧缓存 | 
+| HBM_USE_ASSIGN_SIZE | 内存分配 | 
+
+
+### BlendType
+
+
+```
+enum BlendType
+```
+
+**描述:**
+
+显示内存类型定义。
+
+根据图形系统指定的类型进行分配,包括带cache或者不带cache的内存。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| BLEND_NONE | No&nbsp;混合操作 | 
+| BLEND_CLEAR | CLEAR&nbsp;混合操作 | 
+| BLEND_SRC | SRC&nbsp;混合操作 | 
+| BLEND_SRCOVER | SRC_OVER&nbsp;混合操作 | 
+| BLEND_DSTOVER | DST_OVER&nbsp;混合操作 | 
+| BLEND_SRCIN | SRC_IN&nbsp;混合操作 | 
+| BLEND_DSTIN | DST_IN&nbsp;混合操作 | 
+| BLEND_SRCOUT | SRC_OUT&nbsp;混合操作 | 
+| BLEND_DSTOUT | DST_OUT&nbsp;混合操作 | 
+| BLEND_SRCATOP | SRC_ATOP&nbsp;混合操作 | 
+| BLEND_DSTATOP | DST_ATOP&nbsp;混合操作 | 
+| BLEND_ADD | ADD&nbsp;混合操作 | 
+| BLEND_XOR | XOR&nbsp;混合操作 | 
+| BLEND_DST | DST&nbsp;混合操作 | 
+| BLEND_AKS | AKS&nbsp;混合操作 | 
+| BLEND_AKD | AKD&nbsp;混合操作 | 
+| BLEND_BUTT | 空操作 | 
+
+
+### ColorDataSpace
+
+
+```
+enum ColorDataSpace
+```
+
+**描述:**
+
+枚举颜色空间的类型
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COLOR_DATA_SPACE_UNKNOWN | 未知的 | 
+| GAMUT_BT601 | BT601色域 | 
+| GAMUT_BT709 | BT709色域 | 
+| GAMUT_DCI_P3 | DCI_P3色域 | 
+| GAMUT_SRGB | SRGB色域 | 
+| GAMUT_ADOBE_RGB | ADOBE_RGB色域 | 
+| GAMUT_DISPLAY_P3 | DISPLAY_P3色域 | 
+| GAMUT_BT2020 | BT2020色域 | 
+| GAMUT_BT2100_PQ | BT2100_PQ色域 | 
+| GAMUT_BT2100_HLG | BT2100_HLG色域 | 
+| GAMUT_DISPLAY_BT2020 | DISPLAY_BT2020色域 | 
+| TRANSFORM_FUNC_UNSPECIFIED | UNSPECIFIED转换函数 | 
+| TRANSFORM_FUNC_LINEAR | LINEAR转换函数 | 
+| TRANSFORM_FUNC_SRGB | SRGB转换函数 | 
+| TRANSFORM_FUNC_SMPTE_170M | SMPTE_170M转换函数 | 
+| TRANSFORM_FUNC_GM2_2 | GM2_2转换函数 | 
+| TRANSFORM_FUNC_GM2_6 | GM2_6转换函数 | 
+| TRANSFORM_FUNC_GM2_8 | GM2_8转换函数 | 
+| TRANSFORM_FUNC_ST2084 | ST2084转换函数 | 
+| TRANSFORM_FUNC_HLG | HLG转换函数 | 
+| PRECISION_UNSPECIFIED | UNSPECIFIED精度 | 
+| PRECISION_FULL | FULL精度 | 
+| PRESION_LIMITED | LIMITED精度 | 
+| PRESION_EXTENDED | EXTENDED精度 | 
+| BT601_SMPTE170M_FULL | BT601色域&nbsp;\|&nbsp;SMPTE_170M转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT601_SMPTE170M_LIMITED | BT601色域&nbsp;\|&nbsp;SMPTE_170M转换函数&nbsp;\|&nbsp;LIMITED精度 | 
+| BT709_LINEAR_FULL | BT709色域&nbsp;\|&nbsp;LINEAR转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT709_LINEAR_EXTENDED | BT709色域&nbsp;\|&nbsp;LINEAR转换函数&nbsp;\|&nbsp;EXTENDED精度 | 
+| BT709_SRGB_FULL | BT709色域&nbsp;\|&nbsp;SRGB转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT709_SRGB_EXTENDED | BT709色域&nbsp;\|&nbsp;SRGB转换函数&nbsp;\|&nbsp;EXTENDED精度 | 
+| BT709_SMPTE170M_LIMITED | BT709色域&nbsp;\|&nbsp;SMPTE_170M转换函数&nbsp;\|&nbsp;LIMITED精度 | 
+| DCI_P3_LINEAR_FULL | DCI_P3色域&nbsp;\|&nbsp;LINEAR转换函数&nbsp;\|&nbsp;FULL精度 | 
+| DCI_P3_GAMMA26_FULL | DCI_P3色域&nbsp;\|&nbsp;GM2_6转换函数&nbsp;\|&nbsp;FULL精度 | 
+| DISPLAY_P3_LINEAR_FULL | DISPLAY_P3色域&nbsp;\|&nbsp;LINEAR转换函数&nbsp;\|&nbsp;FULL精度 | 
+| DCI_P3_SRGB_FULL | DCI_P3色域&nbsp;\|&nbsp;SRGB转换函数&nbsp;\|&nbsp;FULL精度 | 
+| ADOBE_RGB_GAMMA22_FULL | ADOBE_RGB色域&nbsp;\|&nbsp;GM2_2转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_LINEAR_FULL | BT2020色域&nbsp;\|&nbsp;LINEAR转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_SRGB_FULL | BT2020色域&nbsp;\|&nbsp;SRGB转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_SMPTE170M_FULL | BT2020色域&nbsp;\|&nbsp;SMPTE_170M转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_ST2084_FULL | BT2020色域&nbsp;\|&nbsp;ST2084转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_HLG_FULL | BT2020色域&nbsp;\|&nbsp;HLG转换函数&nbsp;\|&nbsp;FULL精度 | 
+| BT2020_ST2084_LIMITED | BT2020色域&nbsp;\|&nbsp;ST2084转换函数&nbsp;\|&nbsp;LIMITED精度 | 
+
+
+### ColorGamut
+
+
+```
+enum ColorGamut
+```
+
+**描述:**
+
+色域类型枚举值。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COLOR_GAMUT_INVALID | 无效值 | 
+| COLOR_GAMUT_NATIVE | 默认值 | 
+| COLOR_GAMUT_SATNDARD_BT601 | Standard&nbsp;BT601类型 | 
+| COLOR_GAMUT_STANDARD_BT709 | Standard&nbsp;BT709类型 | 
+| COLOR_GAMUT_DCI_P3 | DCI&nbsp;P3类型 | 
+| COLOR_GAMUT_SRGB | SRGB类型 | 
+| COLOR_GAMUT_ADOBE_RGB | Adobe&nbsp;RGB类型 | 
+| COLOR_GAMUT_DISPLAY_P3 | display&nbsp;P3类型 | 
+| COLOR_GAMUT_BT2020 | BT2020类型 | 
+| COLOR_GAMUT_BT2100_PQ | BT2100&nbsp;PQ类型 | 
+| COLOR_GAMUT_BT2100_HLG | BT2100&nbsp;HLG类型 | 
+| COLOR_GAMUT_DISPLAY_BT2020 | Display&nbsp;BT2020类型 | 
+
+
+### ColorKey
+
+
+```
+enum ColorKey
+```
+
+**描述:**
+
+Color key操作类型定义,即硬件加速支持的Color key操作类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CKEY_NONE | 不使用colorkey | 
+| CKEY_SRC | 使用源colorkey | 
+| CKEY_DST | 使用目标colorkey | 
+| CKEY_BUTT | 空操作 | 
+
+
+### CompositionType
+
+
+```
+enum CompositionType
+```
+
+**描述:**
+
+枚举特殊层的组合类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COMPOSITION_CLIENT | Client&nbsp;合成类型,使用CPU或者GPU合成。 | 
+| COMPOSITION_DEVICE | Device&nbsp;合成类型,使用Device合成。 | 
+| COMPOSITION_CURSOR | Cursor合成类型,用于光标合成。 | 
+| COMPOSITION_VIDEO | Video合成类型,用于视频层合成。 | 
+| COMPOSITION_DEVICE_CLEAR | Device&nbsp;clear&nbsp;合成类型,device会清除目标区域。 | 
+| COMPOSITION_CLIENT_CLEAR | Client&nbsp;clear&nbsp;合成类型,service会清除目标区域。 | 
+| COMPOSITION_TUNNEL | Tunnel&nbsp;合成类型,用于tunnel。 | 
+| COMPOSITION_BUTT | 合成类型,一个不可用类型,用于默认初始化。 | 
+
+
+### Connection
+
+
+```
+enum Connection
+```
+
+**描述:**
+
+热插拔连接类型定义
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CON_INVALID | 无效类型 | 
+| CONNECTED | 已连接 | 
+| DISCONNECTED | 断开连接 | 
+
+
+### DispErrCode
+
+
+```
+enum DispErrCode
+```
+
+**描述:**
+
+返回值类型定义。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| DISPLAY_SUCCESS | 成功 | 
+| DISPLAY_FAILURE | 失败 | 
+| DISPLAY_FD_ERR | fd错误 | 
+| DISPLAY_PARAM_ERR | 参数错误 | 
+| DISPLAY_NULL_PTR | 空指针 | 
+| DISPLAY_NOT_SUPPORT | 不支持的特性 | 
+| DISPLAY_NOMEM | 内存不足 | 
+| DISPLAY_SYS_BUSY | 系统繁忙 | 
+| DISPLAY_NOT_PERM | 操作不允许 | 
+
+
+### DispPowerStatus
+
+
+```
+enum DispPowerStatus
+```
+
+**描述:**
+
+枚举显示状态
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| POWER_STATUS_ON | 上电模式 | 
+| POWER_STATUS_STANDBY | 待机模式 | 
+| POWER_STATUS_SUSPEND | 休眠模式 | 
+| POWER_STATUS_OFF | 下电模式 | 
+| POWER_STATUS_BUTT | 默认模式 | 
+
+
+### GamutMap
+
+
+```
+enum GamutMap
+```
+
+**描述:**
+
+枚举色域的映射类型
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| GAMUT_MAP_CONSTANT | 不变 | 
+| GAMUT_MAP_EXPANSION | 映射增强 | 
+| GAMUT_MAP_HDR_CONSTANT | 不变,用于HDR | 
+| GAMUT_MAP_HDR_EXPANSION | 映射增强,用于HDR | 
+
+
+### HDRFormat
+
+
+```
+enum HDRFormat
+```
+
+**描述:**
+
+枚举HDR格式
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| NOT_SUPPORT_HDR | 不支持HDR | 
+| DOLBY_VISION | Dolby&nbsp;Vision格式 | 
+| HDR10 | HDR10格式 | 
+| HLG | HLG格式 | 
+| HDR10_PLUS | HDR10&nbsp;Plus格式 | 
+| HDR_VIVID | Vivid格式 | 
+
+
+### HDRMetadataKey
+
+
+```
+enum HDRMetadataKey
+```
+
+**描述:**
+
+枚举HDR元数据关键字
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| MATAKEY_RED_PRIMARY_X | 红基色X坐标 | 
+| MATAKEY_RED_PRIMARY_Y | 红基色Y坐标 | 
+| MATAKEY_GREEN_PRIMARY_X | 绿基色X坐标 | 
+| MATAKEY_GREEN_PRIMARY_Y | 绿基色Y坐标 | 
+| MATAKEY_BLUE_PRIMARY_X | 蓝基色X坐标 | 
+| MATAKEY_BLUE_PRIMARY_Y | 蓝基色Y坐标 | 
+| MATAKEY_WHITE_PRIMARY_X | 白点X坐标 | 
+| MATAKEY_WHITE_PRIMARY_Y | 白点Y坐标 | 
+| MATAKEY_MAX_LUMINANCE | 最大的光亮度 | 
+| MATAKEY_MIN_LUMINANCE | 最小的光亮度 | 
+| MATAKEY_MAX_CONTENT_LIGHT_LEVEL | 最大的内容亮度水平 | 
+| MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL | 最大的帧平均亮度水平 | 
+| MATAKEY_HDR10_PLUS | HDR10&nbsp;Plus | 
+| MATAKEY_HDR_VIVID | Vivid | 
+
+
+### InterfaceType
+
+
+```
+enum InterfaceType
+```
+
+**描述:**
+
+枚举接口类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| DISP_INTF_HDMI | HDMI&nbsp;接口 | 
+| DISP_INTF_LCD | LCD&nbsp;接口 | 
+| DISP_INTF_BT1120 | BT1120&nbsp;接口 | 
+| DISP_INTF_BT656 | BT656&nbsp;接口 | 
+| DISP_INTF_YPBPR | YPBPR&nbsp;接口 | 
+| DISP_INTF_RGB | RGB&nbsp;接口 | 
+| DISP_INTF_CVBS | CVBS&nbsp;接口 | 
+| DISP_INTF_SVIDEO | SVIDEO&nbsp;接口 | 
+| DISP_INTF_VGA | VGA&nbsp;接口 | 
+| DISP_INTF_MIPI | MIPI&nbsp;接口 | 
+| DISP_INTF_PANEL | PANEL&nbsp;接口 | 
+| DISP_INTF_BUTT | BUTT接口,一个不可用类型,用于默认初始化。 | 
+
+
+### LayerType
+
+
+```
+enum LayerType
+```
+
+**描述:**
+
+图层类型定义。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| LAYER_TYPE_GRAPHIC | 图形层 | 
+| LAYER_TYPE_OVERLAY | 视频层 | 
+| LAYER_TYPE_SDIEBAND | 媒体播放 | 
+| LAYER_TYPE_CURSOR | 光标层 | 
+| LAYER_TYPE_BUTT | 空图层 | 
+
+
+### MirrorType
+
+
+```
+enum MirrorType
+```
+
+**描述:**
+
+硬件加速支持的镜像操作类型定义
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| MIRROR_NONE | 不使用镜像 | 
+| MIRROR_LR | 左右镜像 | 
+| MIRROR_TB | 上下镜像 | 
+| MIRROR_BUTT | 空操作 | 
+
+
+### PixelFormat
+
+
+```
+enum PixelFormat
+```
+
+**描述:**
+
+像素格式类型定义。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIXEL_FMT_CLUT8 | CLUT8&nbsp;格式 | 
+| PIXEL_FMT_CLUT1 | CLUT1&nbsp;格式 | 
+| PIXEL_FMT_CLUT4 | CLUT4&nbsp;格式 | 
+| PIXEL_FMT_RGB_565 | RGB565&nbsp;格式 | 
+| PIXEL_FMT_RGBA_5658 | RGBA5658&nbsp;格式 | 
+| PIXEL_FMT_RGBX_4444 | RGBX4444&nbsp;格式 | 
+| PIXEL_FMT_RGBA_4444 | RGBA4444&nbsp;格式 | 
+| PIXEL_FMT_RGB_444 | RGB444&nbsp;格式 | 
+| PIXEL_FMT_RGBX_5551 | RGBX5551&nbsp;格式 | 
+| PIXEL_FMT_RGBA_5551 | RGBA5551&nbsp;格式 | 
+| PIXEL_FMT_RGB_555 | RGB555&nbsp;格式 | 
+| PIXEL_FMT_RGBX_8888 | RGBX8888&nbsp;格式 | 
+| PIXEL_FMT_RGBA_8888 | RGBA8888&nbsp;格式 | 
+| PIXEL_FMT_RGB_888 | RGB888&nbsp;格式 | 
+| PIXEL_FMT_BGR_565 | BGR565&nbsp;格式 | 
+| PIXEL_FMT_BGRX_4444 | BGRX4444&nbsp;格式 | 
+| PIXEL_FMT_BGRA_4444 | BGRA4444&nbsp;格式 | 
+| PIXEL_FMT_BGRX_5551 | BGRX5551&nbsp;格式 | 
+| PIXEL_FMT_BGRA_5551 | BGRA5551&nbsp;格式 | 
+| PIXEL_FMT_BGRX_8888 | BGRX8888&nbsp;格式 | 
+| PIXEL_FMT_BGRA_8888 | BGRA8888&nbsp;格式 | 
+| PIXEL_FMT_YUV_422_I | YUV422&nbsp;交错格式 | 
+| PIXEL_FMT_YCBCR_422_SP | YCBCR422&nbsp;半平面格式 | 
+| PIXEL_FMT_YCRCB_422_SP | YCRCB422&nbsp;半平面格式 | 
+| PIXEL_FMT_YCBCR_420_SP | YCBCR420&nbsp;半平面格式 | 
+| PIXEL_FMT_YCRCB_420_SP | YCRCB420&nbsp;半平面格式 | 
+| PIXEL_FMT_YCBCR_422_P | YCBCR422&nbsp;平面格式 | 
+| PIXEL_FMT_YCRCB_422_P | YCRCB422&nbsp;平面格式 | 
+| PIXEL_FMT_YCBCR_420_P | YCBCR420&nbsp;平面格式 | 
+| PIXEL_FMT_YCRCB_420_P | YCRCB420&nbsp;平面格式 | 
+| PIXEL_FMT_YUYV_422_PKG | YUYV422&nbsp;打包格式 | 
+| PIXEL_FMT_UYVY_422_PKG | UYVY422&nbsp;打包格式t | 
+| PIXEL_FMT_YVYU_422_PKG | YVYU422&nbsp;打包格式 | 
+| PIXEL_FMT_VYUY_422_PKG | VYUY422&nbsp;打包格式 | 
+| PIXEL_FMT_VENDER_MASK | vendor&nbsp;mask&nbsp;格式 | 
+| PIXEL_FMT_BUTT | Invalid&nbsp;像素格式 | 
+
+
+### PresentTimestampType
+
+
+```
+enum PresentTimestampType
+```
+
+**描述:**
+
+上屏时间戳类型枚举值。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| HARDWARE_DISPLAY_PTS_UNSUPPORTED | 不支持 | 
+| HARDWARE_DISPLAY_PTS_DELAY | Delay&nbsp;时延类型 | 
+| HARDWARE_DISPLAY_PTS_TIMESTAMP | 时间戳类型 | 
+
+
+### RopType
+
+
+```
+enum RopType
+```
+
+**描述:**
+
+硬件加速支持的ROP操作类型。
+
+硬件加速支持的ROP操作类型,在将前景位图的RGB颜色分量和Alpha分量值与背景位图的RGB颜色 分量值和Alpha分量值进行按位的布尔运算(包括按位与,按位或等),将结果输出。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ROP_BLACK | 黑色 | 
+| ROP_NOTMERGEPEN | ~(S2+S1) | 
+| ROP_MASKNOTPEN | ~S2&amp;S1 | 
+| ROP_NOTCOPYPEN | ~S2 | 
+| ROP_MASKPENNOT | S2&amp;~S1 | 
+| ROP_NOT | ~S1 | 
+| ROP_XORPEN | S2^S1 | 
+| ROP_NOTMASKPEN | ~(S2&amp;S1) | 
+| ROP_MASKPEN | S2&amp;S1 | 
+| ROP_NOTXORPEN | ~(S2^S1) | 
+| ROP_NOP | S1 | 
+| ROP_MERGENOTPEN | ~S2+S1 | 
+| ROP_COPYPE | S2 | 
+| ROP_MERGEPENNOT | S2+~S1 | 
+| ROP_MERGEPEN | S2+S1 | 
+| ROP_WHITE | 白色 | 
+| ROP_BUTT | 无效值 | 
+
+
+### TransformType
+
+
+```
+enum TransformType
+```
+
+**描述:**
+
+图层变换类型定义。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ROTATE_NONE | 不旋转 | 
+| ROTATE_90 | 旋转90度 | 
+| ROTATE_180 | 旋转180度 | 
+| ROTATE_270 | 旋转270度 | 
+| ROTATE_BUTT | 无效操作 | 
+
+
+## **函数说明**
+
+
+### DeviceInitialize()
+
+
+```
+int32_t DeviceInitialize (DeviceFuncs **funcs)
+```
+
+**描述:**
+
+实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### DeviceUninitialize()
+
+
+```
+int32_t DeviceUninitialize (DeviceFuncs * funcs)
+```
+
+**描述:**
+
+取消显示设备控制接口的初始化,释放控制接口使用到的资源。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GfxInitialize()
+
+
+```
+int32_t GfxInitialize (GfxFuncs **funcs)
+```
+
+**描述:**
+
+获取硬件加速相关的操作接口指针。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GfxUninitialize()
+
+
+```
+int32_t GfxUninitialize (GfxFuncs * funcs)
+```
+
+**描述:**
+
+释放硬件加速相关的操作接口指针。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,硬件加速操作接口指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GrallocInitialize()
+
+
+```
+int32_t GrallocInitialize (GrallocFuncs **funcs)
+```
+
+**描述:**
+
+初始化内存模块,并获取内存提供的操作接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### GrallocUninitialize()
+
+
+```
+int32_t GrallocUninitialize (GrallocFuncs * funcs)
+```
+
+**描述:**
+
+取消初始化内存模块,并释放内存操作接口指针。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### LayerInitialize()
+
+
+```
+int32_t LayerInitialize (LayerFuncs **funcs)
+```
+
+**描述:**
+
+实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**参见:**
+
+[LayerUninitialize](#layeruninitialize)
+
+
+### LayerUninitialize()
+
+
+```
+int32_t LayerUninitialize (LayerFuncs * funcs)
+```
+
+**描述:**
+
+取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+**参见:**
+
+[LayerInitialize](#layerinitialize)
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **变量说明**
+
+
+### alpha0 [1/2]
+
+
+```
+uint8_t LayerAlpha::alpha0
+```
+
+**描述:**
+
+alpha0值,取值范围:[0, 255]
+
+
+### alpha0 [2/2]
+
+
+```
+uint8_t ISurface::alpha0
+```
+
+**描述:**
+
+Alpha0值,取值范围:[0,255]
+
+
+### alpha1 [1/2]
+
+
+```
+uint8_t LayerAlpha::alpha1
+```
+
+**描述:**
+
+alpha1值,取值范围:[0, 255]
+
+
+### alpha1 [2/2]
+
+
+```
+uint8_t ISurface::alpha1
+```
+
+**描述:**
+
+Alpha1值,取值范围:[0,255]
+
+
+### alphaRopType
+
+
+```
+RopType GfxOpt::alphaRopType
+```
+
+**描述:**
+
+Alpha的Rop类型
+
+
+### bAlphaExt1555
+
+
+```
+bool ISurface::bAlphaExt1555
+```
+
+**描述:**
+
+是否使能1555的Alpha扩展
+
+
+### bAlphaMax255
+
+
+```
+bool ISurface::bAlphaMax255
+```
+
+**描述:**
+
+图像alpha最大值为255还是128
+
+
+### baseAddr
+
+
+```
+void* __attribute__::baseAddr
+```
+
+**描述:**
+
+内存的初始地址
+
+
+### blendType
+
+
+```
+BlendType GfxOpt::blendType
+```
+
+**描述:**
+
+混合方式
+
+
+### bpp
+
+
+```
+int32_t LayerInfo::bpp
+```
+
+**描述:**
+
+每像素所占bit数
+
+
+### bYCbCrClut
+
+
+```
+bool ISurface::bYCbCrClut
+```
+
+**描述:**
+
+CLUT表是否位于 YCbCr 空间
+
+
+### cbcrPhyAddr
+
+
+```
+uint64_t ISurface::cbcrPhyAddr
+```
+
+**描述:**
+
+CbCr分量地址
+
+
+### cbcrStride
+
+
+```
+int32_t ISurface::cbcrStride
+```
+
+**描述:**
+
+CbCr分量跨度
+
+
+### clutPhyAddr
+
+
+```
+uint64_t ISurface::clutPhyAddr
+```
+
+**描述:**
+
+Clut表首地址,用作颜色扩展或颜色校正
+
+
+### color [1/3]
+
+
+```
+uint32_t ILine::color
+```
+
+**描述:**
+
+线条颜色
+
+
+### color [2/3]
+
+
+```
+uint32_t ICircle::color
+```
+
+**描述:**
+
+圆的颜色
+
+
+### color [3/3]
+
+
+```
+uint32_t Rectangle::color
+```
+
+**描述:**
+
+矩形颜色
+
+
+### colorKeyFrom
+
+
+```
+ColorKey GfxOpt::colorKeyFrom
+```
+
+**描述:**
+
+色键模式
+
+
+### colorRopType
+
+
+```
+RopType GfxOpt::colorRopType
+```
+
+**描述:**
+
+颜色的Rop类型
+
+
+### Commit
+
+
+```
+int32_t(* DeviceFuncs::Commit) (uint32_t devId, int32_t *fence)
+```
+
+**描述:**
+
+提交合成送显请求。
+
+图形服务通过该接口向接口实现层提交合成送显请求,如果有硬件合成层,接口实现层需要在这时进行合成,并且把最终合成的数据送到硬件进行显示。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| fences | 输出参数,fence首地址,指向fence数组的首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### CreateVirtualDisplay
+
+
+```
+int32_t(* DeviceFuncs::CreateVirtualDisplay) (uint32_t width, uint32_t height, int32_t *format, uint32_t *devId)
+```
+
+**描述:**
+
+创建虚拟显示设备。
+
+该接口用于创建一个虚拟显示设备。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| width | 输入参数,指定显示设备的像素宽度。 |
+| height | 输入参数,指定显示设备的像素高度。 |
+| format | 输出参数,指定显示设备的像素格式。详情参考[PixelFormat](#pixelformat),接口实现层可以根据硬件需求,修改format并返回给图形服务。 |
+| devId | 输出参数,用于接口层返回创建的设备ID。 |
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### CreateWriteBack
+
+
+```
+int32_t(* DeviceFuncs::CreateWriteBack) (uint32_t *devId, uint32_t width, uint32_t height, int32_t *format)
+```
+
+**描述:**
+
+对指定显示设备创建回写点。
+
+该接口用来对指定的设备创建一个回写点,如果回写点数量超过了限制,接口实现层将会返回失败。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID,接口实现层在创建完回写点后将回写点设备ID存放在该参数中返回给图形服务。 | 
+| width | 输入参数,回写像素宽度。 | 
+| height | 输入参数,回写像素高度。 | 
+| format | 输入参数,回写点数据格式,详情参考[PixelFormat](#pixelformat),接口实现层可以根据硬件需求,修改format并返回给图形服务。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### data
+
+
+```
+BufferData LayerBuffer::data
+```
+
+**描述:**
+
+图层buffer数据
+
+
+### DestroyVirtualDisplay
+
+
+```
+int32_t(* DeviceFuncs::DestroyVirtualDisplay) (uint32_t devId)
+```
+
+**描述:**
+
+销毁虚拟显示设备。
+
+该接口用于销毁指定的虚拟显示设备。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### DestroyWriteBack
+
+
+```
+int32_t(* DeviceFuncs::DestroyWriteBack) (uint32_t devId)
+```
+
+**描述:**
+
+销毁指定显示设备的回写点。
+
+该接口用來销毁指定的回写点。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### enableRop
+
+
+```
+bool GfxOpt::enableRop
+```
+
+**描述:**
+
+Rop功能使能位
+
+
+### enableScale
+
+
+```
+bool GfxOpt::enableScale
+```
+
+**描述:**
+
+缩放功能使能位
+
+
+### enColorFmt
+
+
+```
+PixelFormat ISurface::enColorFmt
+```
+
+**描述:**
+
+图像格式
+
+
+### enGlobalAlpha [1/2]
+
+
+```
+bool LayerAlpha::enGlobalAlpha
+```
+
+**描述:**
+
+全局alpha使能标志
+
+
+### enGlobalAlpha [2/2]
+
+
+```
+bool GfxOpt::enGlobalAlpha
+```
+
+**描述:**
+
+全局alpha使能位
+
+
+### enPixelAlpha [1/2]
+
+
+```
+bool LayerAlpha::enPixelAlpha
+```
+
+**描述:**
+
+像素alpha使能标志
+
+
+### enPixelAlpha [2/2]
+
+
+```
+bool GfxOpt::enPixelAlpha
+```
+
+**描述:**
+
+像素alpha使能位
+
+
+### expectedSize
+
+
+```
+uint32_t AllocInfo::expectedSize
+```
+
+**描述:**
+
+申请内存大小
+
+
+### fd
+
+
+```
+int32_t __attribute__::fd
+```
+
+**描述:**
+
+句柄 fd,-1代表不支持。
+
+
+### fenceId
+
+
+```
+int32_t LayerBuffer::fenceId
+```
+
+**描述:**
+
+buffer 的fence号
+
+
+### format [1/2]
+
+
+```
+PixelFormat AllocInfo::format
+```
+
+**描述:**
+
+申请内存格式
+
+
+### format [2/2]
+
+
+```
+PixelFormat VerifyAllocInfo::format
+```
+
+**描述:**
+
+分配内存的像素格式
+
+
+### formatCount
+
+
+```
+uint32_t HDRCapability::formatCount
+```
+
+**描述:**
+
+支持的HDR格式的数量
+
+
+### formats
+
+
+```
+HDRFormat* HDRCapability::formats
+```
+
+**描述:**
+
+支持的HDR格式的数组首地址
+
+
+### freshRate
+
+
+```
+uint32_t DisplayModeInfo::freshRate
+```
+
+**描述:**
+
+刷新速率
+
+
+### gAlpha
+
+
+```
+uint8_t LayerAlpha::gAlpha
+```
+
+**描述:**
+
+全局alpha值,取值范围:[0, 255]
+
+
+### GetDisplayBacklight
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayBacklight) (uint32_t devId, uint32_t *level)
+```
+
+**描述:**
+
+获取显示设备当前的背光值。
+
+图形服务可以通过该接口获取设置显示设备的背光值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| level | 输出参数,保存对应设备的背光值,由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayCapability
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayCapability) (uint32_t devId, DisplayCapability *info)
+```
+
+**描述:**
+
+获取显示设备能力集。
+
+图形服务可以通过该接口获取显示设备具备哪些显示能力。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| info | 输出参数,设备支持的能力级信息,详情参考&nbsp;{\@DisplayCapability}。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayColorGamut
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayColorGamut) (uint32_t devId, ColorGamut *gamut)
+```
+
+**描述:**
+
+获取显示设备当前的色域模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| gamut | 输出参数,保存对应设备的色域模式,由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayCompChange
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayCompChange) (uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type)
+```
+
+**描述:**
+
+获取显示设备合成类型有变化的layer。
+
+在合成准备阶段,显示设备会根据设备的合成能力修改图层的合成类型,该接口会返回哪些图层合成类型发生了变化。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输出参数,表示合成类型发生了变化的图层数量。 | 
+| Layers | 输出参数,指向图层数组首地址。 | 
+| type | 输出参数,指向合成类型数组首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayGamutMap
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayGamutMap) (uint32_t devId, GamutMap *gamutMap)
+```
+
+**描述:**
+
+获取显示设备当前的色域映射模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| gamutMap | 输出参数,保存对应设备的色域映射模式,由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayMode
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayMode) (uint32_t devId, uint32_t *modeId)
+```
+
+**描述:**
+
+获取显示设备当前的显示模式。
+
+图形服务可以通过该接口获取显示设备当前的显示模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| modeId | 输出参数,存放当前设备的显示模式ID,&nbsp;由接口实现层进行数据的写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayPowerStatus
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayPowerStatus) (uint32_t devId, DispPowerStatus *status)
+```
+
+**描述:**
+
+获取显示设备当前的电源状态。
+
+图形服务可以通过该接口获设置显示设备的电源状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| status | 输出参数,保存对应设备的电源状态,由接口实现层进行状态的写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayProperty
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t *value)
+```
+
+**描述:**
+
+获得显示设备属性值。
+
+图形服务可以通过该接口获取显示设备具体的属性值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| id | 输入参数,由接口GetDisplayCapability返回属性ID。 | 
+| level | 输出参数,属性ID对应的属性值,由接口实现层写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplayReleaseFence
+
+
+```
+int32_t(* DeviceFuncs::GetDisplayReleaseFence) (uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences)
+```
+
+**描述:**
+
+获取显示图层fence。
+
+图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输出参数,图层个数。 | 
+| layers | 输出参数,图层首地址,指向图层数组的首地址。 | 
+| fences | 输出参数,fence首地址,指向fence数组的首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplaySupportedColorGamuts
+
+
+```
+int32_t(* DeviceFuncs::GetDisplaySupportedColorGamuts) (uint32_t devId, uint32_t *num, ColorGamut *gamuts)
+```
+
+**描述:**
+
+获取显示设备支持的色域信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输出参数,设备支持的色域数组个数。 | 
+| gamuts | 输出参数,色域首地址,指向色域数组首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetDisplaySupportedModes
+
+
+```
+int32_t(* DeviceFuncs::GetDisplaySupportedModes) (uint32_t devId, uint32_t *num, DisplayModeInfo *modes)
+```
+
+**描述:**
+
+获取显示设备支持的显示模式信息。
+
+图形服务可以通过该接口获取到显示设备支持哪些显示模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输出参数,设备支持的模式数量。 | 
+| modes | 输出参数,设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个Id与之对应,在获取当前模式&nbsp;和设置当前模式时都会使用到,详情参考&nbsp;{\@DisplayModeInfo}。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetHDRCapabilityInfos
+
+
+```
+int32_t(* DeviceFuncs::GetHDRCapabilityInfos) (uint32_t devId, HDRCapability *info)
+```
+
+**描述:**
+
+获取显示设备支持的HDR属性信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| info | 输出参数,保存对应设备的HDR属性信息,由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetSupportedMetadataKey
+
+
+```
+int32_t(* DeviceFuncs::GetSupportedMetadataKey) (uint32_t devId, uint32_t *num, HDRMetadataKey *keys)
+```
+
+**描述:**
+
+获取显示设备支持的 HDRMetadataKey。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输出参数,设备支持的HDRMetadataKey数组个数。 | 
+| keys | 输出参数,HDRMetadataKey首地址,指向HDRMetadataKey数组首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### GetWriteBackFrame
+
+
+```
+int32_t(* DeviceFuncs::GetWriteBackFrame) (uint32_t devId, BufferHandle *buffer, int32_t *fence)
+```
+
+**描述:**
+
+获取显示设备的回写帧。
+
+该接口用来获取devId指定的回写点数据,接口实现层将显示设备回写点的数据写入到设置的缓存中。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| buffer | 输出参数,回写点数据缓存。 | 
+| fence | 输出参数,同步栅栏,图形服务在调用该接口时,需要将Buffer的release&nbsp;fence&nbsp;传入,标记该缓存是否可以被写入,接口实现层在接口返回前需要将buffer的acquirce&nbsp;fence&nbsp;写入回传给图形服务,用来标记回写数据是否已经写入缓存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### globalAlpha
+
+
+```
+uint32_t GfxOpt::globalAlpha
+```
+
+**描述:**
+
+全局alpha的值
+
+
+### h
+
+
+```
+int32_t IRect::h
+```
+
+**描述:**
+
+矩形框高度
+
+
+### hdl
+
+
+```
+BufferHandle* LayerBuffer::hdl
+```
+
+**描述:**
+
+图层buffer句柄
+
+
+### height [1/7]
+
+
+```
+uint32_t DisplayInfo::height
+```
+
+**描述:**
+
+显示屏高度
+
+
+### height [2/7]
+
+
+```
+int32_t LayerInfo::height
+```
+
+**描述:**
+
+图层高度
+
+
+### height [3/7]
+
+
+```
+int32_t LayerBuffer::height
+```
+
+**描述:**
+
+buffer高度
+
+
+### height [4/7]
+
+
+```
+int32_t ISurface::height
+```
+
+**描述:**
+
+图像高度
+
+
+### height [5/7]
+
+
+```
+int32_t DisplayModeInfo::height
+```
+
+**描述:**
+
+像素高度
+
+
+### height [6/7]
+
+
+```
+uint32_t AllocInfo::height
+```
+
+**描述:**
+
+申请内存高度
+
+
+### height [7/7]
+
+
+```
+uint32_t VerifyAllocInfo::height
+```
+
+**描述:**
+
+分配内存的高度
+
+
+### id
+
+
+```
+int32_t DisplayModeInfo::id
+```
+
+**描述:**
+
+模式ID
+
+
+### InvokeDisplayCmd
+
+
+```
+int32_t(* DeviceFuncs::InvokeDisplayCmd) (uint32_t devId,...)
+```
+
+**描述:**
+
+调用显示设备命令。
+
+该接口用于图形服务和接口实现层之间的接口扩展,如果由临时接口新增可以通过该接口进行扩展,不用增加新的接口定义。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### key
+
+
+```
+HDRMetadataKey HDRMetaData::key
+```
+
+**描述:**
+
+HDR元数据关键字
+
+
+### maxAverageLum
+
+
+```
+float HDRCapability::maxAverageLum
+```
+
+**描述:**
+
+最大的平均光亮度luminance值
+
+
+### maxLum
+
+
+```
+float HDRCapability::maxLum
+```
+
+**描述:**
+
+最大的光亮度luminance值
+
+
+### minLum
+
+
+```
+float HDRCapability::minLum
+```
+
+**描述:**
+
+最小的光亮度luminance值
+
+
+### mirrorType
+
+
+```
+MirrorType GfxOpt::mirrorType
+```
+
+**描述:**
+
+镜像类型
+
+
+### name [1/2]
+
+
+```
+char PropertyObject::name[PROPERTY_NAME_LEN]
+```
+
+**描述:**
+
+属性名称
+
+
+### name [2/2]
+
+
+```
+char DisplayCapability::name[PROPERTY_NAME_LEN]
+```
+
+**描述:**
+
+显示设备名称
+
+
+### phyAddr [1/2]
+
+
+```
+uint64_t BufferData::phyAddr
+```
+
+**描述:**
+
+物理内存地址
+
+
+### phyAddr [2/2]
+
+
+```
+uint64_t ISurface::phyAddr
+```
+
+**描述:**
+
+图像首地址
+
+
+### phyHeight
+
+
+```
+uint32_t DisplayCapability::phyHeight
+```
+
+**描述:**
+
+物理高度
+
+
+### phyWidth
+
+
+```
+uint32_t DisplayCapability::phyWidth
+```
+
+**描述:**
+
+物理宽度
+
+
+### pitch
+
+
+```
+int32_t LayerBuffer::pitch
+```
+
+**描述:**
+
+一行数据所占字节数
+
+
+### pixFormat [1/2]
+
+
+```
+PixelFormat LayerInfo::pixFormat
+```
+
+**描述:**
+
+图层像素格式
+
+
+### pixFormat [2/2]
+
+
+```
+PixelFormat LayerBuffer::pixFormat
+```
+
+**描述:**
+
+buffer像素格式
+
+
+### PrepareDisplayLayers
+
+
+```
+int32_t(* DeviceFuncs::PrepareDisplayLayers) (uint32_t devId, bool *needFlushFb)
+```
+
+**描述:**
+
+显示设备合成前准备。
+
+图形服务在合成前需要通过该接口通知显示设备进行合成前的准备工作。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| needFlushFb | 输出参数,接口实现层通过该参数指示图形服务在commit前是否需要通过SetDisplayClientBuffer重新设置显示帧存。&nbsp;true表示需要设置显示帧存,false表示不需要。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### propertyCount
+
+
+```
+uint32_t DisplayCapability::propertyCount
+```
+
+**描述:**
+
+属性数组大小
+
+
+### propId
+
+
+```
+uint32_t PropertyObject::propId
+```
+
+**描述:**
+
+属性ID
+
+
+### props
+
+
+```
+PropertyObject* DisplayCapability::props
+```
+
+**描述:**
+
+属性数组
+
+
+### r
+
+
+```
+int32_t ICircle::r
+```
+
+**描述:**
+
+圆的半径
+
+
+### rect
+
+
+```
+IRect Rectangle::rect
+```
+
+**描述:**
+
+矩形区域
+
+
+### RegDisplayRefreshCallback
+
+
+```
+int32_t(* DeviceFuncs::RegDisplayRefreshCallback) (uint32_t devId, RefreshCallback callback, void *data)
+```
+
+**描述:**
+
+刷新请求回调。
+
+注册刷新请求事件回调,当实现层有刷新需求时,实现层通过回调注册的接口通知图形服务。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| callback | 输入参数,刷新请求事件回调实例,当有接口实现层有刷新请求时,需要通过该实例通知图形服务。 | 
+| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### RegDisplayVBlankCallback
+
+
+```
+int32_t(* DeviceFuncs::RegDisplayVBlankCallback) (uint32_t devId, VBlankCallback callback, void *data)
+```
+
+**描述:**
+
+注册VBlank事件回调。
+
+注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| callback | 输入参数,VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。 | 
+| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### RegHotPlugCallback
+
+
+```
+int32_t(* DeviceFuncs::RegHotPlugCallback) ((HotPlugCallback callback, void *data)
+```
+
+**描述:**
+
+注册热插拔事件回调。
+
+注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| callback | 输入参数,热插拔事件回调实例,当有热插拔事件发生时,接口实现层需要通过该实例通知图形服务。 | 
+| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### reserve
+
+
+```
+int32_t __attribute__::reserve[0]
+```
+
+**描述:**
+
+reserve数组
+
+
+### reserveInts
+
+
+```
+uint32_t __attribute__::reserveInts
+```
+
+**描述:**
+
+reserve数组的个数
+
+
+### rotAngle
+
+
+```
+int32_t DisplayInfo::rotAngle
+```
+
+**描述:**
+
+显示屏旋转角度
+
+
+### rotateType
+
+
+```
+TransformType GfxOpt::rotateType
+```
+
+**描述:**
+
+旋转类型
+
+
+### SetDisplayBacklight
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayBacklight) (uint32_t devId, uint32_t level)
+```
+
+**描述:**
+
+设置显示设备当前的背光值。
+
+图形服务可以通过该接口获设置显示设备的背光值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| level | 输入参数,表示需要设置的背光值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayClientBuffer
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayClientBuffer) (uint32_t devId, const BufferHandle *buffer, int32_t fence)
+```
+
+**描述:**
+
+设置显示设备的显示缓存。
+
+图形服务可以通过该接口将显示缓存设置给显示设备,显示设备硬件合成结果将会存放在该显示缓存中。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| buffer | 输入参数,显示缓存。 | 
+| fence | 输入参数,同步栅栏,标识显示缓存是否可以访问,有图形服务创建和释放,接口实现层需要等待同步栅栏发送信号后才能使用显示缓存。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayClientCrop
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayClientCrop) (uint32_t devId, IRect *rect)
+```
+
+**描述:**
+
+设置显示设备的裁剪区域。
+
+图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| rect | 输入参数,ClientBuffer的裁剪区域。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayClientDamage
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayClientDamage) (uint32_t devId, uint32_t num, IRect *rect)
+```
+
+**描述:**
+
+设置显示设备的显示脏区。
+
+图形服务可以通过该接口设置显示设备脏区,接口实现层可以根据该区域进行区域刷新,脏区是由多个矩形区域组合起来的。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| num | 输入参数,矩形个数。 | 
+| rect | 输入参数,区域矩形指针,指向矩形数组的首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayClientDestRect
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayClientDestRect) (uint32_t devId, IRect *rect)
+```
+
+**描述:**
+
+设置显示设备的显示区域。
+
+图形服务可以通过该接口设置显示设备的显示区域。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| rect | 输入参数,显示区域。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayColorGamut
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayColorGamut) (uint32_t devId, ColorGamut gamut)
+```
+
+**描述:**
+
+设置显示设备当前的色域模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| gamut | 输入参数,表示需要设置的色域模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayColorTransform
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayColorTransform) (uint32_t devId, const float *matrix)
+```
+
+**描述:**
+
+设置显示设备当前的4x4的颜色转换矩阵。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| matrix | 输入参数,表示需要设置的颜色转换模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayGamutMap
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayGamutMap) (uint32_t devId, GamutMap gamutMap)
+```
+
+**描述:**
+
+设置显示设备当前的色域映射模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| gamutMap | 输入参数,表示需要设置的色域映射模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayMode
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayMode) (uint32_t devId, uint32_t modeId)
+```
+
+**描述:**
+
+设置显示设备的显示模式。
+
+图形服务可以通过该接口获设置显示设备的显示模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| modeId | 输入参数,指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayPowerStatus
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayPowerStatus) (uint32_t devId, DispPowerStatus status)
+```
+
+**描述:**
+
+设置显示设备当前的电源状态。
+
+图形服务可以通过该接口获设置显示设备的电源状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| status | 输入参数,表示需要设置的电源状态。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayProperty
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t value)
+```
+
+**描述:**
+
+设置显示设备属性值。
+
+图形服务可以通过该接口设置显示设备具体的属性值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| id | 输入参数,由接口GetDisplayCapability返回属性ID。 | 
+| value | 输入参数,需要设置的属性值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetDisplayVsyncEnabled
+
+
+```
+int32_t(* DeviceFuncs::SetDisplayVsyncEnabled) (uint32_t devId, bool enabled)
+```
+
+**描述:**
+
+使能垂直同步信号。
+
+图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到VBlankCallback事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| enabled | 输入参数,使能状态,true表示能,false表示不能。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### SetVirtualDisplayBuffer
+
+
+```
+int32_t(* DeviceFuncs::SetVirtualDisplayBuffer) (uint32_t devId, BufferHandle *buffer, int32_t fence)
+```
+
+**描述:**
+
+设置虚拟屏的输出缓存。
+
+该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| buffer | 输出参数,输出缓存。 | 
+| fence | 输出参数,同步栅栏。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。
+
+
+### stride
+
+
+```
+int32_t ISurface::stride
+```
+
+**描述:**
+
+图像跨度
+
+
+### supportLayers
+
+
+```
+uint32_t DisplayCapability::supportLayers
+```
+
+**描述:**
+
+支持的图层数
+
+
+### supportWriteBack
+
+
+```
+bool DisplayCapability::supportWriteBack
+```
+
+**描述:**
+
+是否支持回写
+
+
+### time
+
+
+```
+int64_t PresentTimestamp::time
+```
+
+**描述:**
+
+类型对应的值
+
+
+### type [1/3]
+
+
+```
+LayerType LayerInfo::type
+```
+
+**描述:**
+
+图层类型,包括图形层、视频层和媒体播放模式
+
+
+### type [2/3]
+
+
+```
+InterfaceType DisplayCapability::type
+```
+
+**描述:**
+
+显示屏接口类型
+
+
+### type [3/3]
+
+
+```
+PresentTimestampType PresentTimestamp::type
+```
+
+**描述:**
+
+上屏时间戳类型
+
+
+### uOffset
+
+
+```
+size_t __attribute__::uOffset
+```
+
+**描述:**
+
+U的偏移量
+
+
+### usage [1/2]
+
+
+```
+uint64_t AllocInfo::usage
+```
+
+**描述:**
+
+申请内存的使用场景
+
+
+### usage [2/2]
+
+
+```
+uint64_t VerifyAllocInfo::usage
+```
+
+**描述:**
+
+内存的用处
+
+
+### uvStep
+
+
+```
+size_t __attribute__::uvStep
+```
+
+**描述:**
+
+UV的step信息
+
+
+### uvStride
+
+
+```
+size_t __attribute__::uvStride
+```
+
+**描述:**
+
+UV的stride信息
+
+
+### value [1/2]
+
+
+```
+uint64_t PropertyObject::value
+```
+
+**描述:**
+
+属性值
+
+
+### value [2/2]
+
+
+```
+float HDRMetaData::value
+```
+
+**描述:**
+
+关键字对应的值
+
+
+### virAddr
+
+
+```
+void* BufferData::virAddr
+```
+
+**描述:**
+
+虚拟内存地址
+
+
+### virtualDispCount
+
+
+```
+uint32_t DisplayCapability::virtualDispCount
+```
+
+**描述:**
+
+支持的虚拟屏数
+
+
+### vOffset
+
+
+```
+size_t __attribute__::vOffset
+```
+
+**描述:**
+
+V的偏移量
+
+
+### w
+
+
+```
+int32_t IRect::w
+```
+
+**描述:**
+
+矩形框宽度
+
+
+### width [1/7]
+
+
+```
+uint32_t DisplayInfo::width
+```
+
+**描述:**
+
+显示屏宽度
+
+
+### width [2/7]
+
+
+```
+int32_t LayerInfo::width
+```
+
+**描述:**
+
+图层宽度
+
+
+### width [3/7]
+
+
+```
+int32_t LayerBuffer::width
+```
+
+**描述:**
+
+buffer宽度
+
+
+### width [4/7]
+
+
+```
+int32_t ISurface::width
+```
+
+**描述:**
+
+图像宽度
+
+
+### width [5/7]
+
+
+```
+int32_t DisplayModeInfo::width
+```
+
+**描述:**
+
+像素宽度
+
+
+### width [6/7]
+
+
+```
+uint32_t AllocInfo::width
+```
+
+**描述:**
+
+申请内存宽度
+
+
+### width [7/7]
+
+
+```
+uint32_t VerifyAllocInfo::width
+```
+
+**描述:**
+
+分配内存的宽度
+
+
+### x [1/2]
+
+
+```
+int32_t IRect::x
+```
+
+**描述:**
+
+矩形框起始x坐标
+
+
+### x [2/2]
+
+
+```
+int32_t ICircle::x
+```
+
+**描述:**
+
+圆心x坐标
+
+
+### x0
+
+
+```
+int32_t ILine::x0
+```
+
+**描述:**
+
+线条起点的x坐标
+
+
+### x1
+
+
+```
+int32_t ILine::x1
+```
+
+**描述:**
+
+线条终点的x坐标
+
+
+### y [1/2]
+
+
+```
+int32_t IRect::y
+```
+
+**描述:**
+
+矩形框起始y坐标
+
+
+### y [2/2]
+
+
+```
+int32_t ICircle::y
+```
+
+**描述:**
+
+圆心y坐标r
+
+
+### y0
+
+
+```
+int32_t ILine::y0
+```
+
+**描述:**
+
+线条起点的y坐标
+
+
+### y1
+
+
+```
+int32_t ILine::y1
+```
+
+**描述:**
+
+线条终点的y坐标
+
+
+### yOffset
+
+
+```
+size_t __attribute__::yOffset
+```
+
+**描述:**
+
+Y的偏移量
+
+
+### yStride
+
+
+```
+size_t __attribute__::yStride
+```
+
+**描述:**
+
+Y的stride信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_display_capability.md b/zh-cn/device-dev/reference/hdi-apis/_display_capability.md
new file mode 100644
index 0000000000000000000000000000000000000000..a4a43e5cb58d12934ab7589b6e901c97b5a4c3c7
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_display_capability.md
@@ -0,0 +1,31 @@
+# DisplayCapability
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [name](_display.md#name-22)&nbsp;[PROPERTY_NAME_LEN] | 显示设备名称 | 
+| [type](_display.md#type-23) | 显示屏接口类型 | 
+| [phyWidth](_display.md#phywidth) | 物理宽度 | 
+| [phyHeight](_display.md#phyheight) | 物理高度 | 
+| [supportLayers](_display.md#supportlayers) | 支持的图层数 | 
+| [virtualDispCount](_display.md#virtualdispcount) | 支持的虚拟屏数 | 
+| [supportWriteBack](_display.md#supportwriteback) | 是否支持回写 | 
+| [propertyCount](_display.md#propertycount) | 属性数组大小 | 
+| [props](_display.md#props) | 属性数组 | 
+
+
+## **详细描述**
+
+定义输出性能。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_display_info.md b/zh-cn/device-dev/reference/hdi-apis/_display_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..b67997b6de13b855cdea17de0987e37d70b233be
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_display_info.md
@@ -0,0 +1,25 @@
+# DisplayInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](_display.md#width-17) | 显示屏宽度 | 
+| [height](_display.md#height-17) | 显示屏高度 | 
+| [rotAngle](_display.md#rotangle) | 显示屏旋转角度 | 
+
+
+## **详细描述**
+
+定义显示信息结构体。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_display_mode_info.md b/zh-cn/device-dev/reference/hdi-apis/_display_mode_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..eafd58d19e35fad8b0a08e5389bd1ca9e34b1209
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_display_mode_info.md
@@ -0,0 +1,26 @@
+# DisplayModeInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](_display.md#width-57) | 像素宽度 | 
+| [height](_display.md#height-57) | 像素高度 | 
+| [freshRate](_display.md#freshrate) | 刷新速率 | 
+| [id](_display.md#id) | 模式ID | 
+
+
+## **详细描述**
+
+定义输出模式信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_enroll_param.md b/zh-cn/device-dev/reference/hdi-apis/_enroll_param.md
new file mode 100644
index 0000000000000000000000000000000000000000..cc322e8336343a6499543a67f7ca6565cf3f29b3
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_enroll_param.md
@@ -0,0 +1,72 @@
+# EnrollParam
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [authType](#authtype) | 用户认证凭据类型。 | 
+| [executorType](#executortype) | 执行器类型。 | 
+| [executorId](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | 
+
+
+## **详细描述**
+
+录入结果信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType EnrollParam::authType
+```
+
+**描述:**
+
+用户认证凭据类型。
+
+
+### executorSensorHint
+
+  
+```
+unsigned int EnrollParam::executorSensorHint
+```
+
+**描述:**
+
+既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。
+
+
+### executorType
+
+  
+```
+unsigned int EnrollParam::executorType
+```
+
+**描述:**
+
+执行器类型。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md b/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..a1213411c37768ce085514a640f8d89adc301a63
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md
@@ -0,0 +1,72 @@
+# EnrollResultInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [credentialId](#credentialid) | 认证凭据ID。 | 
+| [oldInfo](#oldinfo) | 旧凭据信息。 | 
+| [rootSecret](#rootsecret) | 保护文件加密密钥的密钥。 | 
+
+
+## **详细描述**
+
+注册认证凭据参数。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### credentialId
+
+  
+```
+unsigned long EnrollResultInfo::credentialId
+```
+
+**描述:**
+
+认证凭据ID。
+
+
+### oldInfo
+
+  
+```
+struct CredentialInfo EnrollParam::oldInfo
+```
+
+**描述:**
+
+旧凭据信息{\@link CredentialInfo}。
+
+
+### rootSecret
+
+  
+```
+unsigned char[] EnrollParam::rootSecret
+```
+
+**描述:**
+
+保护文件加密密钥的密钥。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_enrolled_info.md b/zh-cn/device-dev/reference/hdi-apis/_enrolled_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..36c6ffd6e1e8e66e645074fd4fb3b81388059e14
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_enrolled_info.md
@@ -0,0 +1,59 @@
+# EnrolledInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [enrolledId](#enrolledid) | 注册ID,用户注册新的认证凭据时会更新注册ID。 | 
+| [authType](#authtype) | 用户认证凭据类型。 | 
+
+
+## **详细描述**
+
+注册信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType EnrolledInfo::authType
+```
+
+**描述:**
+
+用户认证凭据类型AuthType}。
+
+
+### enrolledId
+
+  
+```
+unsigned long EnrolledInfo::enrolledId
+```
+
+**描述:**
+
+注册ID,用户注册新的认证凭据时会更新注册ID。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_event_info.md b/zh-cn/device-dev/reference/hdi-apis/_event_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..02b70dc552b5ced6c3ed1b8f1cc995cce92fab1d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_event_info.md
@@ -0,0 +1,103 @@
+# EventInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [appData](#appdata) | 设置回调时给入的上层实例。 | 
+| [appDataLen](#appdatalen) | appData字节数。 | 
+| [data1](#data1) | 事件上报携带的数据1。 | 
+| [data2](#data2) | 事件上报携带的数据2。 | 
+| [eventData](#eventdata) | 事件上报携带的数据信息。 | 
+| [eventDataLen](#eventdatalen) | eventData字节数。 | 
+
+
+## **详细描述**
+
+定义事件上报信息。
+
+
+## **类成员变量说明**
+
+
+### appData
+
+  
+```
+int8_t* EventInfo::appData
+```
+
+**描述:**
+
+设置回调时给入的上层实例
+
+
+### appDataLen
+
+  
+```
+uint32_t EventInfo::appDataLen
+```
+
+**描述:**
+
+appData字节数
+
+
+### data1
+
+  
+```
+uint32_t EventInfo::data1
+```
+
+**描述:**
+
+事件上报携带的数据1
+
+
+### data2
+
+  
+```
+uint32_t EventInfo::data2
+```
+
+**描述:**
+
+事件上报携带的数据2
+
+
+### eventData
+
+  
+```
+int8_t* EventInfo::eventData
+```
+
+**描述:**
+
+事件上报携带的数据信息
+
+
+### eventDataLen
+
+  
+```
+uint32_t EventInfo::eventDataLen
+```
+
+**描述:**
+
+eventData字节数
diff --git a/zh-cn/device-dev/reference/hdi-apis/_event_package.md b/zh-cn/device-dev/reference/hdi-apis/_event_package.md
new file mode 100644
index 0000000000000000000000000000000000000000..d044d04799d0a1a4c8c726025cbb3624db1a7bf5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_event_package.md
@@ -0,0 +1,77 @@
+# InputEventPackage
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [type](#type) | 输入事件的属性 | 
+| [code](#code) | 输入事件的特定编码项 | 
+| [value](#value) | 输入事件编码项对应的值 | 
+| [timestamp](#timestamp) | 输入事件对应的时间戳 | 
+
+
+## **详细描述**
+
+Input事件数据包结构。
+
+
+## **类成员变量说明**
+
+
+### code
+
+  
+```
+uint32_t EventPackage::code
+```
+
+**描述:**
+
+输入事件的特定编码项
+
+
+### timestamp
+
+  
+```
+uint64_t EventPackage::timestamp
+```
+
+**描述:**
+
+输入事件对应的时间戳
+
+
+### type
+
+  
+```
+uint32_t EventPackage::type
+```
+
+**描述:**
+
+输入事件的属性
+
+
+### value
+
+  
+```
+int32_t EventPackage::value
+```
+
+**描述:**
+
+输入事件编码项对应的值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_executor_info.md b/zh-cn/device-dev/reference/hdi-apis/_executor_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..29f4d116ca581180a4a07be6ffccddbc250ee365
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_executor_info.md
@@ -0,0 +1,152 @@
+# ExecutorInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [sensorId](#sensorid) | 传感器ID,不同传感器在人脸/口令认证驱动内的唯一标识。 | 
+| [executorType](#executortype) | 执行器类型,根据执行器支持的能力/算法类型进行分类。 | 
+| [index](#index) | 用户认证框架的执行器索引。 | 
+| [executorRole](#executorrole) | 执行器角色。 | 
+| [authType](#authtype) | 用户认证凭据类型。 | 
+| [esl](#esl) | 执行器安全等级。 | 
+| [publicKey](#publickey) | 执行器公钥,用于校验该执行器私钥签名的信息。 | 
+| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | 
+| [info](#info) | 执行器注册信息。 | 
+
+
+## **详细描述**
+
+执行器信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType ExecutorInfo::authType
+```
+
+**描述:**
+
+用户认证凭据类型。
+
+
+### esl
+
+  
+```
+enum ExecutorSecureLevel ExecutorInfo::esl
+```
+
+**描述:**
+
+执行器安全等级[ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel)。
+
+
+### executorRole
+
+  
+```
+enum ExecutorRole ExecutorInfo::executorRole
+```
+
+**描述:**
+
+执行器角色[ExecutorRole](_hdf_user_auth.md#executorrole)。
+
+
+### executorType
+
+  
+```
+unsigned int ExecutorInfo::executorType
+```
+
+**描述:**
+
+执行器类型,根据执行器支持的能力/算法类型进行分类。
+
+
+### extraInfo
+
+  
+```
+unsigned char [] ExecutorInfo::extraInfo
+```
+
+**描述:**
+
+其他相关信息,用于支持信息扩展。
+
+
+### index
+
+  
+```
+unsigned long ExecutorInfo::index
+```
+
+**描述:**
+
+用户认证框架的执行器索引。
+
+
+### info
+
+  
+```
+struct ExecutorRegisterInfo ExecutorInfo::info
+```
+
+**描述:**
+
+执行器注册信息ExecutorRegisterInfo。
+
+
+### publicKey
+
+  
+```
+unsigned char [] ExecutorInfo::publicKey
+```
+
+**描述:**
+
+执行器公钥,用于校验该执行器私钥签名的信息。
+
+
+### sensorId
+
+  
+```
+unsigned short ExecutorInfo::sensorId
+```
+
+**描述:**
+
+传感器ID,不同传感器在人脸认证驱动内的唯一标识。
+
+传感器ID,不同传感器在口令认证驱动内的唯一标识。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md b/zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..ff242ae7d76d8749b458eac663519c3ca30fbb12
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md
@@ -0,0 +1,111 @@
+# ExecutorRegisterInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [authType](#authtype) | 用户认证凭据类型。 | 
+| [executorRole](#executorrole) | 执行器角色。 | 
+| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器ID。 | 
+| [executorMatcher](#executormatcher) | 执行器类型,根据执行器支持的认证能力进行分类。 | 
+| [esl](#esl) | 执行器安全等级。 | 
+| [publicKey](#publickey) | 执行器公钥,用于校验该执行器私钥签名的信息。 | 
+
+
+## **详细描述**
+
+执行器注册信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType ExecutorRegisterInfo::authType
+```
+
+**描述:**
+
+用户认证凭据类型。
+
+
+### esl
+
+  
+```
+enum ExecutorSecureLevel ExecutorRegisterInfo::esl
+```
+
+**描述:**
+
+执行器安全等级[ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel)。
+
+
+### executorSensorHint
+
+  
+```
+unsigned int ExecutorRegisterInfo::executorSensorHint
+```
+
+**描述:**
+
+既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。
+
+
+### executorRole
+
+  
+```
+enum ExecutorRole ExecutorRegisterInfo::executorRole
+```
+
+**描述:**
+
+执行器角色[ExecutorRole](_hdf_user_auth.md#executorrole)。
+
+
+### executorMatcher
+
+  
+```
+unsigned int ExecutorRegisterInfo::executorMatcher
+```
+
+**描述:**
+
+执行器匹配器,根据执行器支持的认证能力进行分类。
+
+
+### publicKey
+
+  
+```
+unsigned char [] ExecutorRegisterInfo::publicKey
+```
+
+**描述:**
+
+执行器公钥,用于校验该执行器私钥签名的信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md b/zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md
new file mode 100644
index 0000000000000000000000000000000000000000..90ed9fcc8933fe089cf35c374839e4168bf83f8c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md
@@ -0,0 +1,70 @@
+# ExecutorSendMsg
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [executorIndex](#executorindex) | 用户认证框架的执行器索引。 | 
+| [commandId](#commandid) | 消息命令ID。 | 
+| [msg](#msg) | 执行器发送的消息。 | 
+
+
+## **详细描述**
+
+执行器发送的消息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+
+## **类成员变量说明**
+
+
+### executorIndex
+
+  
+```
+unsigned long ExecutorSendMsg::executorIndex
+```
+
+**描述:**
+
+用户认证框架的执行器索引。
+
+
+### commandId
+
+  
+```
+unsigned int ExecutorSendMsg::commandId
+```
+
+**描述:**
+
+消息命令ID。
+
+
+### msg
+
+  
+```
+unsigned char [] ExecutorSendMsg::msg
+```
+
+**描述:**
+
+执行器发送的消息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..b9c9e4ad7876f5796cd736e15b1ec3ae429eb4c1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md
@@ -0,0 +1,46 @@
+# FaceAuthTypes.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [ExecutorInfo](_executor_info.md) | 执行器信息。&nbsp;[更多...](_executor_info.md) | 
+| [TemplateInfo](_template_info.md) | 凭据模版信息。&nbsp;[更多...](_template_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](_hdf_face_auth.md#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](_hdf_face_auth.md#authtype) | 
+| [ExecutorRole](_hdf_face_auth.md#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](_hdf_face_auth.md#executorrole) | 
+| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](_hdf_face_auth.md#executorsecurelevel) | 
+| [CommandId](_hdf_face_auth.md#commandid)&nbsp;:&nbsp;int&nbsp;{&nbsp;LOCK_TEMPLATE&nbsp;=&nbsp;1,&nbsp;UNLOCK_TEMPLATE&nbsp;=&nbsp;2,&nbsp;VENDOR_COMMAND_BEGIN&nbsp;=&nbsp;10000&nbsp;} | 枚举人脸认证功能相关操作命令。&nbsp;[更多...](_hdf_face_auth.md#commandid) | 
+| [FaceTipsCode](_hdf_face_auth.md#facetipscode)&nbsp;:&nbsp;int&nbsp;{&nbsp;FACE_AUTH_TIP_TOO_BRIGHT&nbsp;=&nbsp;1,&nbsp;FACE_AUTH_TIP_TOO_DARK&nbsp;=&nbsp;2,&nbsp;FACE_AUTH_TIP_TOO_CLOSE&nbsp;=&nbsp;3,&nbsp;FACE_AUTH_TIP_TOO_FAR&nbsp;=&nbsp;4,&nbsp;&nbsp;&nbsp;FACE_AUTH_TIP_TOO_HIGH&nbsp;=&nbsp;5,&nbsp;FACE_AUTH_TIP_TOO_LOW&nbsp;=&nbsp;6,&nbsp;FACE_AUTH_TIP_TOO_RIGHT&nbsp;=&nbsp;7,&nbsp;FACE_AUTH_TIP_TOO_LEFT&nbsp;=&nbsp;8,&nbsp;&nbsp;&nbsp;FACE_AUTH_TIP_TOO_MUCH_MOTION&nbsp;=&nbsp;9,&nbsp;FACE_AUTH_TIP_POOR_GAZE&nbsp;=&nbsp;10,&nbsp;FACE_AUTH_TIP_NOT_DETECTED&nbsp;=&nbsp;11,&nbsp;VENDOR_FACE_AUTH_TIP_BEGIN&nbsp;=&nbsp;10000&nbsp;} | 枚举提示信息编码。&nbsp;[更多...](_hdf_face_auth.md#facetipscode) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义人脸认证驱动的枚举类和数据结构。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_get_buffer_handle_usage_params.md b/zh-cn/device-dev/reference/hdi-apis/_get_buffer_handle_usage_params.md
new file mode 100644
index 0000000000000000000000000000000000000000..2f5936c9d16e2800eb9fd6718d7f18f552e99685
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_get_buffer_handle_usage_params.md
@@ -0,0 +1,77 @@
+# GetBufferHandleUsageParams
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [size](#size) | 结构体大小 | 
+| [version](#version) | 组件版本信息 | 
+| [portIndex](#portindex) | 端口索引 | 
+| [usage](#usage) | 使用率 | 
+
+
+## **详细描述**
+
+BufferHandleUsage类型定义。
+
+
+## **类成员变量说明**
+
+
+### portIndex
+
+  
+```
+uint32_t GetBufferHandleUsageParams::portIndex
+```
+
+**描述:**
+
+端口索引
+
+
+### size
+
+  
+```
+uint32_t GetBufferHandleUsageParams::size
+```
+
+**描述:**
+
+结构体大小
+
+
+### usage
+
+  
+```
+uint32_t GetBufferHandleUsageParams::usage
+```
+
+**描述:**
+
+usage
+
+
+### version
+
+  
+```
+union OMX_VERSIONTYPE GetBufferHandleUsageParams::version
+```
+
+**描述:**
+
+组件版本信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_gfx_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_gfx_funcs.md
new file mode 100644
index 0000000000000000000000000000000000000000..76ed3097f7da3a13a35b00d4f791bfcf2ffa2ccf
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_gfx_funcs.md
@@ -0,0 +1,239 @@
+# GfxFuncs
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[InitGfx](#initgfx)&nbsp;)(void) | 初始化硬件加速。&nbsp;[更多...](#initgfx) | 
+| (&nbsp;[DeinitGfx](#deinitgfx)&nbsp;)(void) | 去初始化硬件加速。&nbsp;[更多...](#deinitgfx) | 
+| (&nbsp;[FillRect](#fillrect)&nbsp;)([ISurface](_i_surface.md)&nbsp;\*surface,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect,&nbsp;uint32_t&nbsp;color,&nbsp;[GfxOpt](_gfx_opt.md)&nbsp;\*opt) | 填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。&nbsp;[更多...](#fillrect) | 
+| (&nbsp;[DrawRectangle](#drawrectangle)&nbsp;)([ISurface](_i_surface.md)&nbsp;\*surface,&nbsp;[Rectangle](_rectangle.md)&nbsp;\*rect,&nbsp;uint32_t&nbsp;color,&nbsp;[GfxOpt](_gfx_opt.md)&nbsp;\*opt) | 绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。&nbsp;[更多...](#drawrectangle) | 
+| (&nbsp;[DrawLine](#drawline)&nbsp;)([ISurface](_i_surface.md)&nbsp;\*surface,&nbsp;[ILine](_i_line.md)&nbsp;\*line,&nbsp;[GfxOpt](_gfx_opt.md)&nbsp;\*opt) | 绘制直线,使用一种颜色在画布上绘制一条直线。&nbsp;[更多...](#drawline) | 
+| (&nbsp;[DrawCircle](#drawcircle)&nbsp;)([ISurface](_i_surface.md)&nbsp;\*surface,&nbsp;[ICircle](_i_circle.md)&nbsp;\*circle,&nbsp;[GfxOpt](_gfx_opt.md)&nbsp;\*opt) | 绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。&nbsp;[更多...](#drawcircle) | 
+| (&nbsp;[Blit](#blit)&nbsp;)([ISurface](_i_surface.md)&nbsp;\*srcSurface,&nbsp;[IRect](_i_rect.md)&nbsp;\*srcRect,&nbsp;[ISurface](_i_surface.md)&nbsp;\*dstSurface,&nbsp;[IRect](_i_rect.md)&nbsp;\*dstRect,&nbsp;[GfxOpt](_gfx_opt.md)&nbsp;\*opt) | 位图搬移&nbsp;[更多...](#blit) | 
+| (&nbsp;[Sync](#sync)&nbsp;)(int32_t&nbsp;timeOut) | 硬件加速同步。&nbsp;[更多...](#sync) | 
+
+
+## **详细描述**
+
+显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。
+
+
+## **类成员变量说明**
+
+
+### Blit
+
+  
+```
+int32_t(* GfxFuncs::Blit) (ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt)
+```
+
+**描述:**
+
+位图搬移
+
+在位图搬移过程中,可以实现色彩空间转换、缩放、旋转等功能。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| srcSurface | 输入参数,源位图信息。 | 
+| srcRect | 输入参数,源位图搬移区域。 | 
+| dstSurface | 输出参数,目标位图信息。 | 
+| dstRect | 输出参数,目标位图区域。 | 
+| opt | 输入参数,硬件加速选项。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### DeinitGfx
+
+  
+```
+int32_t(* GfxFuncs::DeinitGfx) (void)
+```
+
+**描述:**
+
+去初始化硬件加速。
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[InitGfx](#initgfx)
+
+
+### DrawCircle
+
+  
+```
+int32_t(* GfxFuncs::DrawCircle) (ISurface *surface, ICircle *circle, GfxOpt *opt)
+```
+
+**描述:**
+
+绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| surface | 输入参数,画布。 | 
+| circle | 输入参数,圆形结构。 | 
+| opt | 输入参数,硬件加速选项。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### DrawLine
+
+  
+```
+int32_t(* GfxFuncs::DrawLine) (ISurface *surface, ILine *line, GfxOpt *opt)
+```
+
+**描述:**
+
+绘制直线,使用一种颜色在画布上绘制一条直线。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| surface | 输入参数,画布。 | 
+| line | 输入参数,直线结构。 | 
+| opt | 输入参数,硬件加速选项。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### DrawRectangle
+
+  
+```
+int32_t(* GfxFuncs::DrawRectangle) (ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt)
+```
+
+**描述:**
+
+绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| surface | 输入参数,画布。 | 
+| rect | 输入参数,矩形框结构。 | 
+| color | 输入参数,绘制的颜色。 | 
+| opt | 输入参数,硬件加速选项。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### FillRect
+
+  
+```
+int32_t(* GfxFuncs::FillRect) (ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt)
+```
+
+**描述:**
+
+填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| surface | 输入参数,画布。 | 
+| rect | 输入参数,填充的矩形区域。 | 
+| color | 输入参数,填充的颜色。 | 
+| opt | 输入参数,硬件加速选项。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### InitGfx
+
+  
+```
+int32_t(* GfxFuncs::InitGfx) (void)
+```
+
+**描述:**
+
+初始化硬件加速。
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[DeinitGfx](#deinitgfx)
+
+
+### Sync
+
+  
+```
+int32_t(* GfxFuncs::Sync) (int32_t timeOut)
+```
+
+**描述:**
+
+硬件加速同步。
+
+在使用硬件加速模块进行图像绘制、图像叠加、图像搬移时,通过调用该接口进行硬件同步,该接口会等待硬件加速完成。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| timeOut | 输入参数,硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_gfx_opt.md b/zh-cn/device-dev/reference/hdi-apis/_gfx_opt.md
new file mode 100644
index 0000000000000000000000000000000000000000..00fdaa09fd517f09213a136e8ab126a907c73b02
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_gfx_opt.md
@@ -0,0 +1,33 @@
+# GfxOpt
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [enGlobalAlpha](_display.md#englobalalpha-22) | 全局alpha使能标志 | 
+| [globalAlpha](_display.md#globalalpha) | 全局alpha的值 | 
+| [enPixelAlpha](_display.md#enpixelalpha-22) | 像素alpha使能标志 | 
+| [blendType](_display.md#blendtype) | 混合方式 | 
+| [colorKeyFrom](_display.md#colorkeyfrom) | 色键模式 | 
+| [enableRop](_display.md#enablerop) | Rop功能使能位 | 
+| [colorRopType](_display.md#colorroptype) | 颜色的Rop类型 | 
+| [alphaRopType](_display.md#alpharoptype) | Alpha的Rop类型 | 
+| [enableScale](_display.md#enablescale) | 缩放功能使能位 | 
+| [rotateType](_display.md#rotatetype) | 旋转类型 | 
+| [mirrorType](_display.md#mirrortype) | 镜像类型 | 
+
+
+## **详细描述**
+
+图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_gralloc_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_gralloc_funcs.md
new file mode 100644
index 0000000000000000000000000000000000000000..d67c99a3dd81c1e4afa35a157c5b43538d65f4c1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_gralloc_funcs.md
@@ -0,0 +1,273 @@
+# GrallocFuncs
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[AllocMem](#allocmem)&nbsp;)(const&nbsp;[AllocInfo](_alloc_info.md)&nbsp;\*info,&nbsp;BufferHandle&nbsp;\*\*handle) | 显示内存分配。&nbsp;[更多...](#allocmem) | 
+| (&nbsp;[FreeMem](#freemem)&nbsp;)(BufferHandle&nbsp;\*handle) | 显示内存释放。&nbsp;[更多...](#freemem) | 
+| (&nbsp;[Mmap](#mmap)&nbsp;)(BufferHandle&nbsp;\*handle) | 显示内存映射,将内存映射到对应的进程地址空间中。&nbsp;[更多...](#mmap) | 
+| (&nbsp;[MmapYUV](#mmapyuv)&nbsp;)(BufferHandle&nbsp;\*handle,&nbsp;YUVDescInfo&nbsp;\*info) | YUV&nbsp;内存映射。&nbsp;[更多...](#mmapyuv) | 
+| (&nbsp;[MmapCache](#mmapcache)&nbsp;)(BufferHandle&nbsp;\*handle) | 显示内存映射,将内存映射为&nbsp;cache&nbsp;内存到对应的进程地址空间中。&nbsp;[更多...](#mmapcache) | 
+| (&nbsp;[Unmap](#unmap)&nbsp;)(BufferHandle&nbsp;\*handle) | 内存反映射,将内存进行反映射。&nbsp;[更多...](#unmap) | 
+| (&nbsp;[FlushCache](#flushcache)&nbsp;)(BufferHandle&nbsp;\*handle) | 刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。&nbsp;[更多...](#flushcache) | 
+| (&nbsp;[FlushMCache](#flushmcache)&nbsp;)(BufferHandle&nbsp;\*handle) | 刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。&nbsp;[更多...](#flushmcache) | 
+| (&nbsp;[InvalidateCache](#invalidatecache)&nbsp;)(BufferHandle&nbsp;\*handle) | 使cache中的内容无效用以存储更新内存内容。&nbsp;[更多...](#invalidatecache) | 
+| (&nbsp;[IsSupportedAlloc](#issupportedalloc)&nbsp;)(uint32_t&nbsp;num,&nbsp;const&nbsp;[VerifyAllocInfo](_verify_alloc_info.md)&nbsp;\*infos,&nbsp;bool&nbsp;\*supporteds) | 检测给定的VerifyAllocInfo数组信息能否申请内存成功。&nbsp;[更多...](#issupportedalloc) | 
+
+
+## **详细描述**
+
+显示内存驱动接口结构体,定义显示内存驱动接口函数指针。
+
+
+## **类成员变量说明**
+
+
+### AllocMem
+
+  
+```
+int32_t(* GrallocFuncs::AllocMem) (const AllocInfo *info, BufferHandle **handle)
+```
+
+**描述:**
+
+显示内存分配。
+
+根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| info | 输入参数,指示申请内存AllocInfo信息. | 
+| handle | 输入参数,指向申请的内存handle指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### FlushCache
+
+  
+```
+int32_t(* GrallocFuncs::FlushCache) (BufferHandle *handle)
+```
+
+**描述:**
+
+刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,待刷新cache的handle指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### FlushMCache
+
+  
+```
+int32_t(* GrallocFuncs::FlushMCache) (BufferHandle *handle)
+```
+
+**描述:**
+
+刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,待刷新cache的handle指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### FreeMem
+
+  
+```
+void(* GrallocFuncs::FreeMem) (BufferHandle *handle)
+```
+
+**描述:**
+
+显示内存释放。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输入参数,待释放的内存handle指针。 | 
+
+**返回:**
+
+成功返回有效地址,失败返回NULL。
+
+
+### InvalidateCache
+
+  
+```
+int32_t(* GrallocFuncs::InvalidateCache) (BufferHandle *handle)
+```
+
+**描述:**
+
+使cache中的内容无效用以存储更新内存内容。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,待无效cache的handle指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### IsSupportedAlloc
+
+  
+```
+int32_t(* GrallocFuncs::IsSupportedAlloc) (uint32_t num, const VerifyAllocInfo *infos, bool *supporteds)
+```
+
+**描述:**
+
+检测给定的VerifyAllocInfo数组信息能否申请内存成功。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| num | 输入参数,VerifyAllocInfo数组个数。 | 
+| infos | 输出参数,VerifyAllocInfo数组首地址。 | 
+| supporteds | 输出参数,supporteds数组首地址,&nbsp;表示能否申请成功。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### Mmap
+
+  
+```
+void*(* GrallocFuncs::Mmap) (BufferHandle *handle)
+```
+
+**描述:**
+
+显示内存映射,将内存映射到对应的进程地址空间中。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输入参数,待映射内存handle指针。 | 
+
+**返回:**
+
+成功返回有效地址,失败返回NULL。
+
+
+### MmapCache
+
+  
+```
+void*(* GrallocFuncs::MmapCache) (BufferHandle *handle)
+```
+
+**描述:**
+
+显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,待映射内存&nbsp;handle&nbsp;指针。 | 
+
+**返回:**
+
+成功返回有效地址,失败返回 NULL。
+
+
+### MmapYUV
+
+  
+```
+void*(* GrallocFuncs::MmapYUV) (BufferHandle *handle, YUVDescInfo *info)
+```
+
+**描述:**
+
+YUV 内存映射。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,指示内存映射的输出缓存。 | 
+| info | 输出参数,指示内存映射的YUVDescInfo信息。 | 
+
+**返回:**
+
+成功返回有效地址,失败返回 NULL。
+
+
+### Unmap
+
+  
+```
+int32_t(* GrallocFuncs::Unmap) (BufferHandle *handle)
+```
+
+**描述:**
+
+内存反映射,将内存进行反映射。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| handle | 输出参数,待反映射内存handle指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_h_d_r_capability.md b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_capability.md
new file mode 100644
index 0000000000000000000000000000000000000000..08d19bbbbfe355000de3b0421183a4a8f1eb73da
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_capability.md
@@ -0,0 +1,27 @@
+# HDRCapability
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [formatCount](_display.md#formatcount) | 支持的HDR格式的数量 | 
+| [formats](_display.md#formats) | 支持的HDR格式的数组首地址 | 
+| [maxLum](_display.md#maxlum) | 最大的光亮度luminance值 | 
+| [maxAverageLum](_display.md#maxaveragelum) | 最大的平均光亮度luminance值 | 
+| [minLum](_display.md#minlum) | 最小的光亮度luminance值 | 
+
+
+## **详细描述**
+
+HDR属性结构体定义。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_h_d_r_meta_data.md b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_meta_data.md
new file mode 100644
index 0000000000000000000000000000000000000000..d20665318f9555957e07bac0617c2f65e6f5586f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_meta_data.md
@@ -0,0 +1,24 @@
+# HDRMetaData
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [key](_display.md#key) | HDR元数据关键字。 | 
+| [value](_display.md#value-22) | 关键字对应的值。 | 
+
+
+## **详细描述**
+
+HDR元数据结构体定义。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md
new file mode 100644
index 0000000000000000000000000000000000000000..742e19ca1cb15f5562d8a22f65651c69e2250123
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md
@@ -0,0 +1,157 @@
+# HdfFaceAuth
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [FaceAuthTypes.idl](_face_auth_types_8idl.md) | 定义人脸认证驱动的枚举类和数据结构。 | 
+| [IExecutor.idl](face__auth_2_i_executor_8idl.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 | 
+| [IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。 | 
+| [IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md) | 定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [ExecutorInfo](_executor_info.md) | 执行器信息。&nbsp;[更多...](_executor_info.md) | 
+| [TemplateInfo](_template_info.md) | 凭据模版信息。&nbsp;[更多...](_template_info.md) | 
+| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。&nbsp;[更多...](interface_i_executor.md) | 
+| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。&nbsp;[更多...](interface_i_executor_callback.md) | 
+| [IFaceAuthInterface](interface_i_face_auth_interface.md) | 定义获取人脸认证驱动的执行器列表接口。&nbsp;[更多...](interface_i_face_auth_interface.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](#authtype) | 
+| [ExecutorRole](#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](#executorrole) | 
+| [ExecutorSecureLevel](#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](#executorsecurelevel) | 
+| [CommandId](#commandid)&nbsp;:&nbsp;int&nbsp;{&nbsp;LOCK_TEMPLATE&nbsp;=&nbsp;1,&nbsp;UNLOCK_TEMPLATE&nbsp;=&nbsp;2,&nbsp;VENDOR_COMMAND_BEGIN&nbsp;=&nbsp;10000&nbsp;} | 枚举人脸认证功能相关操作命令。&nbsp;[更多...](#commandid) | 
+| [FaceTipsCode](#facetipscode)&nbsp;:&nbsp;int&nbsp;{&nbsp;FACE_AUTH_TIP_TOO_BRIGHT&nbsp;=&nbsp;1,&nbsp;FACE_AUTH_TIP_TOO_DARK&nbsp;=&nbsp;2,&nbsp;FACE_AUTH_TIP_TOO_CLOSE&nbsp;=&nbsp;3,&nbsp;FACE_AUTH_TIP_TOO_FAR&nbsp;=&nbsp;4,&nbsp;&nbsp;&nbsp;FACE_AUTH_TIP_TOO_HIGH&nbsp;=&nbsp;5,&nbsp;FACE_AUTH_TIP_TOO_LOW&nbsp;=&nbsp;6,&nbsp;FACE_AUTH_TIP_TOO_RIGHT&nbsp;=&nbsp;7,&nbsp;FACE_AUTH_TIP_TOO_LEFT&nbsp;=&nbsp;8,&nbsp;&nbsp;&nbsp;FACE_AUTH_TIP_TOO_MUCH_MOTION&nbsp;=&nbsp;9,&nbsp;FACE_AUTH_TIP_POOR_GAZE&nbsp;=&nbsp;10,&nbsp;FACE_AUTH_TIP_NOT_DETECTED&nbsp;=&nbsp;11,&nbsp;VENDOR_FACE_AUTH_TIP_BEGIN&nbsp;=&nbsp;10000&nbsp;} | 枚举提示信息编码。&nbsp;[更多...](#facetipscode) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | 
+
+
+## **详细描述**
+
+提供人脸认证驱动的标准API接口。
+
+人脸认证驱动为人脸认证服务提供统一的访问接口。获取人脸认证驱动代理后,人脸认证服务可以调用相关接口获取执行器,获取人脸认证执行器后, 人脸认证服务可以调用相关接口获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。
+
+**Since:**
+
+3.2
+
+
+## **枚举类型说明**
+
+
+### AuthType
+
+  
+```
+enum AuthType : int
+```
+
+**描述:**
+
+枚举用户认证凭据类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIN | 认证凭据类型为口令。 | 
+| FACE | 认证凭据类型为人脸。 | 
+| FINGERPRINT | 认证凭据类型为指纹。 | 
+
+
+### CommandId
+
+  
+```
+enum CommandId : int
+```
+
+**描述:**
+
+枚举人脸认证功能相关操作命令。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| LOCK_TEMPLATE | 锁定人脸模版。 | 
+| UNLOCK_TEMPLATE | 解锁人脸模版。 | 
+| VENDOR_COMMAND_BEGIN | 用于厂商自定义操作指令。 | 
+
+
+### ExecutorRole
+
+  
+```
+enum ExecutorRole : int
+```
+
+**描述:**
+
+枚举执行器角色。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | 
+| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | 
+| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | 
+
+
+### ExecutorSecureLevel
+
+  
+```
+enum ExecutorSecureLevel : int
+```
+
+**描述:**
+
+枚举执行器安全等级。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | 
+| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | 
+| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | 
+| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | 
+
+
+### FaceTipsCode
+
+  
+```
+enum FaceTipsCode : int
+```
+
+**描述:**
+
+枚举提示信息编码。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| FACE_AUTH_TIP_TOO_BRIGHT | 获取的人脸图像由于光照度高而过亮。 | 
+| FACE_AUTH_TIP_TOO_DARK | 获取的人脸图像由于光照度低而过暗。 | 
+| FACE_AUTH_TIP_TOO_CLOSE | 人脸离设备过近。 | 
+| FACE_AUTH_TIP_TOO_FAR | 人脸离设备过远。 | 
+| FACE_AUTH_TIP_TOO_HIGH | 设备过高,只拍到人脸的上半部分。 | 
+| FACE_AUTH_TIP_TOO_LOW | 设备过低,只拍到人脸的下半部分。 | 
+| FACE_AUTH_TIP_TOO_RIGHT | 设备偏右,只拍到人脸的右侧部分。 | 
+| FACE_AUTH_TIP_TOO_LEFT | 设备偏左,只拍到人脸的左侧部分。 | 
+| FACE_AUTH_TIP_TOO_MUCH_MOTION | 人脸信息采集过程中,人脸移动过多。 | 
+| FACE_AUTH_TIP_POOR_GAZE | 用户未注视设备。 | 
+| FACE_AUTH_TIP_NOT_DETECTED | 未检测到人脸。 | 
+| VENDOR_FACE_AUTH_TIP_BEGIN | 用于厂商自定义提示信息。 | 
diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md
new file mode 100644
index 0000000000000000000000000000000000000000..10de6c4064d9b27e522693a9d859d5a097d1e85f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md
@@ -0,0 +1,127 @@
+# HdfPinAuth
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [IExecutor.idl](pin__auth_2_i_executor_8idl.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 | 
+| [IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。 | 
+| [IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md) | 定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。 | 
+| [PinAuthTypes.idl](_pin_auth_types_8idl.md) | 定义口令认证驱动的枚举类和数据结构。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。[更多...](interface_pin_i_executor.md) | 
+| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_pin_i_executor.md)。&nbsp;[更多...](interface_pin_i_executor_callback.md) | 
+| [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。&nbsp;[更多...](interface_i_pin_auth_interface.md) | 
+| [ExecutorInfo](_executor_info.md) | 执行器信息。&nbsp;[更多...](_executor_info.md) | 
+| [TemplateInfo](_template_info.md) | 凭据模版信息。&nbsp;[更多...](_template_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](#authtype) | 
+| [ExecutorRole](#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](#executorrole) | 
+| [ExecutorSecureLevel](#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](#executorsecurelevel) | 
+| [CommandId](#commandid)&nbsp;:&nbsp;int&nbsp;{&nbsp;DEFAULT&nbsp;=&nbsp;0&nbsp;} | 枚举口令认证相关功能操作命令。&nbsp;[更多...](#commandid) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | 
+
+
+## **详细描述**
+
+提供口令认证驱动的标准API接口。
+
+口令认证驱动为口令认证服务提供统一的访问接口。获取口令认证驱动代理后,口令认证服务可以调用相关接口获取执行器,获取口令认证执行器后, 口令认证服务可以调用相关接口获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。
+
+**Since:**
+
+3.2
+
+
+## **枚举类型说明**
+
+
+### AuthType
+
+  
+```
+enum AuthType : int
+```
+
+**描述:**
+
+枚举用户认证凭据类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIN | 认证凭据类型为口令。 | 
+| FACE | 认证凭据类型为人脸。 | 
+| FINGERPRINT | 认证凭据类型为指纹。 | 
+
+
+### CommandId
+
+  
+```
+enum CommandId : int
+```
+
+**描述:**
+
+枚举口令认证相关功能操作命令。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| DEFAULT | 默认无效操作命令。 | 
+
+
+### ExecutorRole
+
+  
+```
+enum ExecutorRole : int
+```
+
+**描述:**
+
+枚举执行器角色。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | 
+| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | 
+| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | 
+
+
+### ExecutorSecureLevel
+
+  
+```
+enum ExecutorSecureLevel : int
+```
+
+**描述:**
+
+枚举执行器安全等级。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | 
+| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | 
+| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | 
+| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | 
diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_thermal_callback_info.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_thermal_callback_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..5652e991ce997a3b1c53d18467dc185f278e806d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_thermal_callback_info.md
@@ -0,0 +1,38 @@
+# HdfThermalCallbackInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [info](#info) | 设备发热的信息列表。 | 
+
+
+## **详细描述**
+
+设备发热的信息列表。
+
+
+## **类成员变量说明**
+
+
+### info
+
+  
+```
+List<struct ThermalZoneInfo> HdfThermalCallbackInfo::info
+```
+
+**描述:**
+
+设备发热的信息列表。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md
new file mode 100644
index 0000000000000000000000000000000000000000..abdbc3ced7dfeafaf2c4892d213017fd87642005
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md
@@ -0,0 +1,134 @@
+# HdfUserAuth
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [IUserAuthInterface.idl](_i_user_auth_interface_8idl.md) | 声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。 | 
+| [UserAuthTypes.idl](_user_auth_types_8idl.md) | 定义用户认证驱动的枚举类和数据结构。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IUserAuthInterface](interface_i_user_auth_interface.md) | 声明用户认证驱动的API接口。&nbsp;[更多...](interface_i_user_auth_interface.md) | 
+| [ExecutorRegisterInfo](_executor_register_info.md) | 执行器注册信息。&nbsp;[更多...](_executor_register_info.md) | 
+| [ExecutorInfo](_user_executor_info.md) | 执行器信息。&nbsp;[更多...](_user_executor_info.md) | 
+| [ScheduleInfo](_schedule_info.md) | 调度信息。&nbsp;[更多...](_schedule_info.md) | 
+| [AuthSolution](_auth_solution.md) | 认证方案。&nbsp;[更多...](_auth_solution.md) | 
+| [ExecutorSendMsg](_executor_send_msg.md) | 执行器发送的消息。&nbsp;[更多...](_executor_send_msg.md) | 
+| [AuthResultInfo](_auth_result_info.md) | 用户身份认证结果信息。&nbsp;[更多...](_auth_result_info.md) | 
+| [IdentifyResultInfo](_identify_result_info.md) | 用户身份识别结果信息。&nbsp;[更多...](_identify_result_info.md) | 
+| [EnrollParam](_enroll_param.md) | 注册认证凭据参数。&nbsp;[更多...](_enroll_param.md) | 
+| [CredentialInfo](_credential_info.md) | 认证凭据信息。&nbsp;[更多...](_credential_info.md) | 
+| [EnrolledInfo](_enrolled_info.md) | 注册信息。&nbsp;[更多...](_enrolled_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4,&nbsp;ALL&nbsp;=&nbsp;0&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](#authtype) | 
+| [ExecutorRole](#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](#executorrole) | 
+| [ExecutorSecureLevel](#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](#executorsecurelevel) | 
+| [PinSubType](#pinsubtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN\_SIX&nbsp;=&nbsp;10000,&nbsp;PIN\_NUMBER&nbsp;=&nbsp;10001,&nbsp;PIN\_MIX&nbsp;=&nbsp;10002&nbsp;} | 口令认证子类型。&nbsp;[更多...](#pinsubtype) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | 
+
+
+## **详细描述**
+
+提供用户认证驱动的标准API接口。
+
+用户认证驱动为用户认证服务提供统一的访问接口。获取用户认证驱动代理后,用户认证服务可以调用相关接口注册执行器,管理用户认证凭据, 完成PIN码和生物特征。
+
+**Since:**
+
+3.2
+
+
+## **枚举类型说明**
+
+
+### AuthType
+
+  
+```
+enum AuthType : int
+```
+
+**描述:**
+
+枚举用户认证凭据类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIN | 认证凭据类型为口令。 | 
+| FACE | 认证凭据类型为人脸。 | 
+| FINGERPRINT | 认证凭据类型为指纹。 | 
+| ALL | 表示包含所有认证凭据类型。 | 
+
+
+### ExecutorRole
+
+  
+```
+enum ExecutorRole : int
+```
+
+**描述:**
+
+枚举执行器角色。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | 
+| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | 
+| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | 
+
+
+### ExecutorSecureLevel
+
+  
+```
+enum ExecutorSecureLevel : int
+```
+
+**描述:**
+
+枚举执行器安全等级。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | 
+| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | 
+| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | 
+| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | 
+
+
+### PinSubType
+
+  
+```
+enum PinSubType : int
+```
+
+**描述:**
+
+口令认证子类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PIN_SIX | 六位口令密码。 | 
+| PIN_NUMBER| 数字口令密码。 | 
+| PIN_MIX | 混合密码。 | 
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_battery_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_battery_callback_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..96897505990ce8d3b82c7a6d27b6f0f21cfb6cb5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_battery_callback_8idl.md
@@ -0,0 +1,40 @@
+# IBatteryCallback.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IBatteryCallback](interface_i_battery_callback.md) | 电池信息的回调。&nbsp;[更多...](interface_i_battery_callback.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | 
+
+
+## **详细描述**
+
+电池信息的回调。
+
+电池模块为电池服务提供的订阅电池信息变化的回调。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_battery_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_battery_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..7a4a80ad0cd4c4d46a7afd72724c1fc404b56903
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_battery_interface_8idl.md
@@ -0,0 +1,36 @@
+# IBatteryInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IBatteryInterface](interface_i_battery_interface.md) | 获取、订阅电池信息的接口。&nbsp;[更多...](interface_i_battery_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | 
+
+
+## **详细描述**
+
+获取、订阅电池信息的接口。
+
+服务获取此对象后,可以调用相关的接口获取、订阅电池信息。
+
+**Since:**
+
+3.1
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_circle.md b/zh-cn/device-dev/reference/hdi-apis/_i_circle.md
new file mode 100644
index 0000000000000000000000000000000000000000..1bc7edaa14025dad5c55d757af5ac06dbeb04bc4
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_circle.md
@@ -0,0 +1,26 @@
+# ICircle
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [x](_display.md#x-22) | 矩形框起始X坐标。 | 
+| [y](_display.md#y-22) | 矩形框起始Y坐标。 | 
+| [r](_display.md#r) | 圆的半径。 | 
+| [color](_display.md#color-23) | 圆的颜色。 | 
+
+
+## **详细描述**
+
+圆形描述结构体定义,用于硬件加速绘制圆形。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_face_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_face_auth_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..3776682000f467549f40f0f7bfb4d606a56ccb9c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_face_auth_interface_8idl.md
@@ -0,0 +1,34 @@
+# IFaceAuthInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IFaceAuthInterface](interface_i_face_auth_interface.md) | 定义获取人脸认证驱动的执行器列表接口。&nbsp;[更多...](interface_i_face_auth_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_input_interface.md b/zh-cn/device-dev/reference/hdi-apis/_i_input_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..cf3f527b4fe26462524e33a0bc2e87b7a294d5e4
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_input_interface.md
@@ -0,0 +1,64 @@
+# IInputInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [iInputManager](#iinputmanager) | Input设备的设备管理接口。 | 
+| [iInputController](#iinputcontroller) | Input设备的业务控制接口。 | 
+| [iInputReporter](#iinputreporter) | Input设备的数据上报接口。 | 
+
+
+## **详细描述**
+
+定义用于提供Input设备驱动程序功能的接口。
+
+
+## **类成员变量说明**
+
+
+### iInputController
+
+  
+```
+InputController* IInputInterface::iInputController
+```
+
+**描述:**
+
+Input设备的业务控制接口。
+
+
+### iInputManager
+
+  
+```
+InputManager* IInputInterface::iInputManager
+```
+
+**描述:**
+
+Input设备的设备管理接口。
+
+
+### iInputReporter
+
+  
+```
+InputReporter* IInputInterface::iInputReporter
+```
+
+**描述:**
+
+Input设备的数据上报接口。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_line.md b/zh-cn/device-dev/reference/hdi-apis/_i_line.md
new file mode 100644
index 0000000000000000000000000000000000000000..ee33cb7f530956d58f511b68858c0770d7530ce6
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_line.md
@@ -0,0 +1,27 @@
+# ILine
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [x0](_display.md#x0) | 线条起点的X坐标。 | 
+| [y0](_display.md#y0) | 线条起点的Y坐标。 | 
+| [x1](_display.md#x1) | 线条终点的X坐标。 | 
+| [y1](_display.md#y1) | 线条终点的Y坐标。 | 
+| [color](_display.md#color-13) | 线条颜色。 | 
+
+
+## **详细描述**
+
+线条描述结构体定义,用于硬件加速绘制直线。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_pin_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_pin_auth_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..75007400f13eb9b00a91b8954caf233be2906ad9
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_pin_auth_interface_8idl.md
@@ -0,0 +1,34 @@
+# IPinAuthInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。&nbsp;[更多...](interface_i_pin_auth_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_power_hdi_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_power_hdi_callback_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..58b85115424fd410feff222b777c099e50a88746
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_power_hdi_callback_8idl.md
@@ -0,0 +1,40 @@
+# IPowerHdiCallback.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Power](power.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IPowerHdiCallback](interface_i_power_hdi_callback.md) | 休眠/唤醒状态的回调。&nbsp;[更多...](interface_i_power_hdi_callback.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.power.v1_0 | 电源接口的包路径 | 
+
+
+## **详细描述**
+
+休眠/唤醒状态的回调。
+
+电源模块为电源服务提供的订阅休眠/唤醒状态的回调。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_power_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_power_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..b6899c701f1f7919e937b3f9e7e86e7693e13fe2
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_power_interface_8idl.md
@@ -0,0 +1,40 @@
+# IPowerInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Power](power.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IPowerInterface](interface_i_power_interface.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。&nbsp;[更多...](interface_i_power_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.power.v1_0 | 电源接口的包路径 | 
+
+
+## **详细描述**
+
+休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。
+
+电源模块为电源服务提供休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_rect.md b/zh-cn/device-dev/reference/hdi-apis/_i_rect.md
new file mode 100644
index 0000000000000000000000000000000000000000..f2b8f481e4ebb1800008d7ccf84bf9da98e0ef96
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_rect.md
@@ -0,0 +1,26 @@
+# IRect
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [x](_display.md#x-12) | 矩形框起始X坐标。 | 
+| [y](_display.md#y-12) | 矩形框起始Y坐标。 | 
+| [w](_display.md#w) | 矩形框宽度。 | 
+| [h](_display.md#h) | 矩形框高度。 | 
+
+
+## **详细描述**
+
+定义矩形信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_surface.md b/zh-cn/device-dev/reference/hdi-apis/_i_surface.md
new file mode 100644
index 0000000000000000000000000000000000000000..2108ff270981699143688f0452a594b229c2e83b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_surface.md
@@ -0,0 +1,35 @@
+# ISurface
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [phyAddr](_display.md#phyaddr-22) | 图像首地址 | 
+| [height](_display.md#height-47) | 图像高度 | 
+| [width](_display.md#width-47) | 图像宽度 | 
+| [stride](_display.md#stride) | 图像跨度 | 
+| [enColorFmt](_display.md#encolorfmt) | 图像格式 | 
+| [bYCbCrClut](_display.md#bycbcrclut) | CLUT表是否位于&nbsp;YCbCr&nbsp;空间 | 
+| [bAlphaMax255](_display.md#balphamax255) | 图像alpha最大值为255还是128 | 
+| [bAlphaExt1555](_display.md#balphaext1555) | 是否使能1555的Alpha扩展 | 
+| [alpha0](_display.md#alpha0-22) | Alpha0值,取值范围:[0,255] | 
+| [alpha1](_display.md#alpha1-22) | Alpha1值,取值范围:[0,255] | 
+| [cbcrPhyAddr](_display.md#cbcrphyaddr) | CLUT表首地址,用作颜色扩展或颜色校正 | 
+| [cbcrStride](_display.md#cbcrstride) | CbCr分量跨度 | 
+| [clutPhyAddr](_display.md#clutphyaddr) | CbCr分量地址 | 
+
+
+## **详细描述**
+
+用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_thermal_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_callback_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..5a4758d6b98696af3f30cdea9973526aa0dc68e4
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_callback_8idl.md
@@ -0,0 +1,40 @@
+# IThermalCallback.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IThermalCallback](interface_i_thermal_callback.md) | 订阅设备发热状态的回调。&nbsp;[更多...](interface_i_thermal_callback.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | 
+
+
+## **详细描述**
+
+设备发热状态的回调。
+
+热模块为热服务提供的设备发热状态的回调。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_thermal_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..06a92364867540b188c6d3cec54e94ff968d74ca
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_interface_8idl.md
@@ -0,0 +1,40 @@
+# IThermalInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IThermalInterface](interface_i_thermal_interface.md) | 设备温度管理、控制及订阅接口。&nbsp;[更多...](interface_i_thermal_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | 
+
+
+## **详细描述**
+
+设备温度管理、控制及订阅接口。
+
+热模块为热服务提供的设备温度管理、控制及订阅接口。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_user_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_user_auth_interface_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..7f3c5bd0151a021922e2030f7c66bd5bd19aa98f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_user_auth_interface_8idl.md
@@ -0,0 +1,34 @@
+# IUserAuthInterface.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IUserAuthInterface](interface_i_user_auth_interface.md) | 声明用户认证驱动的API接口。&nbsp;[更多...](interface_i_user_auth_interface.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | 
+
+
+## **详细描述**
+
+声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md
new file mode 100644
index 0000000000000000000000000000000000000000..4010893f082cb29cf18a9f8aaeeff6c7ea0bbec6
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md
@@ -0,0 +1,369 @@
+# IWiFi
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[start](#start)&nbsp;)(struct&nbsp;IWiFi&nbsp;\*iwifi) | 创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。&nbsp;[更多...](#start) | 
+| (&nbsp;[stop](#stop)&nbsp;)(struct&nbsp;IWiFi&nbsp;\*iwifi) | 销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。&nbsp;[更多...](#stop) | 
+| (&nbsp;[getSupportFeature](#getsupportfeature)&nbsp;)(uint8_t&nbsp;\*supType,&nbsp;uint32_t&nbsp;size) | 获取该设备支持的WLAN特性(不考虑当前的使用状态)。&nbsp;[更多...](#getsupportfeature) | 
+| (&nbsp;[getSupportCombo](#getsupportcombo)&nbsp;)(uint64_t&nbsp;\*combo,&nbsp;uint32_t&nbsp;size) | 获取多网卡共存情况。&nbsp;[更多...](#getsupportcombo) | 
+| (&nbsp;[createFeature](#createfeature)&nbsp;)(int32_t&nbsp;type,&nbsp;struct&nbsp;[IWiFiBaseFeature](_i_wi_fi_base_feature.md)&nbsp;\*\*ifeature) | 根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。&nbsp;[更多...](#createfeature) | 
+| (&nbsp;[getFeatureByIfName](#getfeaturebyifname)&nbsp;)(const&nbsp;char&nbsp;\*ifName,&nbsp;struct&nbsp;[IWiFiBaseFeature](_i_wi_fi_base_feature.md)&nbsp;\*\*ifeature) | 通过网络接口名字获取对应的特性。&nbsp;[更多...](#getfeaturebyifname) | 
+| (&nbsp;[registerEventCallback](#registereventcallback)&nbsp;)([CallbackFunc](_w_l_a_n.md#callbackfunc)&nbsp;cbFunc,&nbsp;const&nbsp;char&nbsp;\*ifName) | 注册IWiFi的回调函数,监听异步事件。&nbsp;[更多...](#registereventcallback) | 
+| (&nbsp;[unregisterEventCallback](#unregistereventcallback)&nbsp;)([CallbackFunc](_w_l_a_n.md#callbackfunc)&nbsp;cbFunc,&nbsp;const&nbsp;char&nbsp;\*ifName) | 去注册IWiFi的回调函数。&nbsp;[更多...](#unregistereventcallback) | 
+| (&nbsp;[destroyFeature](#destroyfeature)&nbsp;)(struct&nbsp;[IWiFiBaseFeature](_i_wi_fi_base_feature.md)&nbsp;\*ifeature) | 根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。&nbsp;[更多...](#destroyfeature) | 
+| (&nbsp;[resetDriver](#resetdriver)&nbsp;)(const&nbsp;uint8_t&nbsp;chipId,&nbsp;const&nbsp;char&nbsp;\*ifName) | 重置具有指定芯片ID的WLAN驱动程序。&nbsp;[更多...](#resetdriver) | 
+| (&nbsp;[getNetDevInfo](#getnetdevinfo)&nbsp;)(struct&nbsp;NetDeviceInfoResult&nbsp;\*netDeviceInfoResult) | 获取网络设备信息(设备索引、网卡名字、MAC等信息)。&nbsp;[更多...](#getnetdevinfo) | 
+| (&nbsp;[getPowerMode](#getpowermode)&nbsp;)(const&nbsp;char&nbsp;\*ifName,&nbsp;uint8_t&nbsp;\*mode) | 获取正在使用的功率模式。&nbsp;[更多...](#getpowermode) | 
+| (&nbsp;[setPowerMode](#setpowermode)&nbsp;)(const&nbsp;char&nbsp;\*ifName,&nbsp;uint8_t&nbsp;mode) | 设置功率模式&nbsp;[更多...](#setpowermode) | 
+
+
+## **详细描述**
+
+HAL对WLAN服务提供的基本能力。
+
+用于创建HAL与驱动的通道,创建/获取/销毁WLAN特性等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### createFeature
+
+  
+```
+int32_t(* IWiFi::createFeature) (int32_t type, struct IWiFiBaseFeature **ifeature)
+```
+
+**描述:**
+
+根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| type | 输入参数,创建的feature类型。 | 
+| ifeature | 输出参数,获取创建的feature对象。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### destroyFeature
+
+  
+```
+int32_t(* IWiFi::destroyFeature) (struct IWiFiBaseFeature *ifeature)
+```
+
+**描述:**
+
+根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ifeature | 输入参数,销毁的feature对象。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getFeatureByIfName
+
+  
+```
+int32_t(* IWiFi::getFeatureByIfName) (const char *ifName, struct IWiFiBaseFeature **ifeature)
+```
+
+**描述:**
+
+通过网络接口名字获取对应的特性。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ifName | 输入参数,网卡名称。 | 
+| ifeature | 输出参数,获取该网络接口名字的feature对象。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getNetDevInfo
+
+  
+```
+int32_t(* IWiFi::getNetDevInfo) (struct NetDeviceInfoResult *netDeviceInfoResult)
+```
+
+**描述:**
+
+获取网络设备信息(设备索引、网卡名字、MAC等信息)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| netDeviceInfoResult | 输出参数,得到的网络设备信息。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getPowerMode
+
+  
+```
+int32_t(* IWiFi::getPowerMode) (const char *ifName, uint8_t *mode)
+```
+
+**描述:**
+
+获取正在使用的功率模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ifName | 输入参数,网卡名称。 | 
+| mode | 输出参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getSupportCombo
+
+  
+```
+int32_t(* IWiFi::getSupportCombo) (uint64_t *combo, uint32_t size)
+```
+
+**描述:**
+
+获取多网卡共存情况。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| combo | 输出参数,基于芯片的能力保存当前所有支持的多网卡共存情况(比如支持AP,STA,P2P等不同组合的共存)。 | 
+| size | 输入参数,combo数组的长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getSupportFeature
+
+  
+```
+int32_t(* IWiFi::getSupportFeature) (uint8_t *supType, uint32_t size)
+```
+
+**描述:**
+
+获取该设备支持的WLAN特性(不考虑当前的使用状态)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| supType | 输出参数,保存当前设备支持的特性。 | 
+| size | 输入参数,supType数组的长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### registerEventCallback
+
+  
+```
+int32_t(* IWiFi::registerEventCallback) (CallbackFunc cbFunc, const char *ifName)
+```
+
+**描述:**
+
+注册IWiFi的回调函数,监听异步事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| cbFunc | 输入参数,注册的回调函数。 | 
+| ifName | 输入参数,网卡名称。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### resetDriver
+
+  
+```
+int32_t(* IWiFi::resetDriver) (const uint8_t chipId, const char *ifName)
+```
+
+**描述:**
+
+重置具有指定芯片ID的WLAN驱动程序。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| chipId | 输入参数,需要进行重置驱动的对应芯片ID。 | 
+| ifName | 输入参数,网卡名称。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### setPowerMode
+
+  
+```
+int32_t(* IWiFi::setPowerMode) (const char *ifName, uint8_t mode)
+```
+
+**描述:**
+
+设置功率模式
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ifName | 输入参数,网卡名称。 | 
+| mode | 输入参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### start
+
+  
+```
+int32_t(* IWiFi::start) (struct IWiFi *iwifi)
+```
+
+**描述:**
+
+创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| iwifi | 输入参数,IWiFi对象。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### stop
+
+  
+```
+int32_t(* IWiFi::stop) (struct IWiFi *iwifi)
+```
+
+**描述:**
+
+销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| iwifi | 输入参数,IWiFi对象。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### unregisterEventCallback
+
+  
+```
+int32_t(* IWiFi::unregisterEventCallback) (CallbackFunc cbFunc, const char *ifName)
+```
+
+**描述:**
+
+去注册IWiFi的回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| cbFunc | 输入参数,去注册的回调函数。 | 
+| ifName | 输入参数,网卡名称。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md
new file mode 100644
index 0000000000000000000000000000000000000000..2b291fba5e1a5852eee597b9d401ea72884f5b70
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md
@@ -0,0 +1,101 @@
+# IWiFiAp
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [baseFeature](#basefeature) | 基本特性。 | 
+| (&nbsp;[getAsscociatedStas](#getasscociatedstas)&nbsp;)(const&nbsp;struct&nbsp;IWiFiAp&nbsp;\*apFeature,&nbsp;struct&nbsp;[StaInfo](_sta_info.md)&nbsp;\*staInfo,&nbsp;uint32_t&nbsp;count,&nbsp;uint32_t&nbsp;\*num) | 获取连接上的所有STA的信息(目前只包含MAC地址)。&nbsp;[更多...](#getasscociatedstas) | 
+| (&nbsp;[setCountryCode](#setcountrycode)&nbsp;)(const&nbsp;struct&nbsp;IWiFiAp&nbsp;\*apFeature,&nbsp;const&nbsp;char&nbsp;\*code,&nbsp;uint32_t&nbsp;len) | 设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。&nbsp;[更多...](#setcountrycode) | 
+
+
+## **详细描述**
+
+继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### baseFeature
+
+  
+```
+struct IWiFiBaseFeature IWiFiAp::baseFeature
+```
+
+**描述:**
+
+基本特性。
+
+
+### getAsscociatedStas
+
+  
+```
+int32_t(* IWiFiAp::getAsscociatedStas) (const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num)
+```
+
+**描述:**
+
+获取连接上的所有STA的信息(目前只包含MAC地址)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| apFeature | 输入参数,AP特性。 | 
+| staInfo | 输出参数,保存与AP连接的STA的基本信息。 | 
+| count | 输入参数,staInfo结构体数组的元素个数。 | 
+| num | 输出参数,实际连接的STA的个数。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### setCountryCode
+
+  
+```
+int32_t(* IWiFiAp::setCountryCode) (const struct IWiFiAp *apFeature, const char *code, uint32_t len)
+```
+
+**描述:**
+
+设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| apFeature | 输入参数,AP特性。 | 
+| code | 输入参数,设置的国家码。 | 
+| len | 输入参数,国家码长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md
new file mode 100644
index 0000000000000000000000000000000000000000..0f440188c6e2ce31ffc78229a6d82c8e53a3702a
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md
@@ -0,0 +1,259 @@
+# IWiFiBaseFeature
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [ifName](#ifname)&nbsp;[[IFNAME_MAX_LEN](_w_l_a_n.md#ga63637ece87095ff8d153f650434ecf97)] | 网卡名称。 | 
+| **type** | 特性的类型,参考[FeatureType](_w_l_a_n.md#featuretype)。 | 
+| (&nbsp;[getNetworkIfaceName](#getnetworkifacename)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature) | 根据基本特性获取网卡名称。&nbsp;[更多...](#getnetworkifacename) | 
+| (&nbsp;[getFeatureType](#getfeaturetype)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature) | 获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。&nbsp;[更多...](#getfeaturetype) | 
+| (&nbsp;[setMacAddress](#setmacaddress)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature,&nbsp;unsigned&nbsp;char&nbsp;\*mac,&nbsp;uint8_t&nbsp;len) | 根据传入参数设置对应网卡的MAC地址。&nbsp;[更多...](#setmacaddress) | 
+| (&nbsp;[getDeviceMacAddress](#getdevicemacaddress)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature,&nbsp;unsigned&nbsp;char&nbsp;\*mac,&nbsp;uint8_t&nbsp;len) | 获取设备的MAC地址。&nbsp;[更多...](#getdevicemacaddress) | 
+| (&nbsp;[getValidFreqsWithBand](#getvalidfreqswithband)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature,&nbsp;int32_t&nbsp;band,&nbsp;int32_t&nbsp;\*freqs,&nbsp;uint32_t&nbsp;count,&nbsp;uint32_t&nbsp;\*num) | 获取指定频段(2.4G或者5G)下支持的频率。&nbsp;[更多...](#getvalidfreqswithband) | 
+| (&nbsp;[setTxPower](#settxpower)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature,&nbsp;int32_t&nbsp;power) | 设置发射功率。&nbsp;[更多...](#settxpower) | 
+| (&nbsp;[getChipId](#getchipid)&nbsp;)(const&nbsp;struct&nbsp;IWiFiBaseFeature&nbsp;\*baseFeature,&nbsp;uint8_t&nbsp;\*chipId) | 获得当前驱动的芯片ID。&nbsp;[更多...](#getchipid) | 
+| (&nbsp;[getIfNamesByChipId](#getifnamesbychipid)&nbsp;)(const&nbsp;uint8_t&nbsp;chipId,&nbsp;char&nbsp;\*\*ifNames,&nbsp;uint32_t&nbsp;\*num) | 通过芯片ID获得当前芯片所有的网卡名称。&nbsp;[更多...](#getifnamesbychipid) | 
+
+
+## **详细描述**
+
+WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### getChipId
+
+  
+```
+int32_t(* IWiFiBaseFeature::getChipId) (const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId)
+```
+
+**描述:**
+
+获得当前驱动的芯片ID。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+| chipId | 输出参数,获得的芯片ID。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getDeviceMacAddress
+
+  
+```
+int32_t(* IWiFiBaseFeature::getDeviceMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)
+```
+
+**描述:**
+
+获取设备的MAC地址。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+| mac | 输出参数,获得的MAC地址。 | 
+| len | 输入参数,获得的MAC地址长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getFeatureType
+
+  
+```
+int32_t(*IWiFiBaseFeature::getFeatureType) (const struct IWiFiBaseFeature *baseFeature)
+```
+
+**描述:**
+
+获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+
+**返回:**
+
+如果操作成功,则返回特性类型。
+
+如果操作失败,则返回负值。
+
+
+### getIfNamesByChipId
+
+  
+```
+int32_t(* IWiFiBaseFeature::getIfNamesByChipId) (const uint8_t chipId, char **ifNames, uint32_t *num)
+```
+
+**描述:**
+
+通过芯片ID获得当前芯片所有的网卡名称。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| chipId | 输入参数,需要获取网卡名称的芯片ID。 | 
+| ifNames | 输出参数,网卡名称。 | 
+| num | 输出参数,网卡的数量。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### getNetworkIfaceName
+
+  
+```
+const char*(* IWiFiBaseFeature::getNetworkIfaceName) (const struct IWiFiBaseFeature *baseFeature)
+```
+
+**描述:**
+
+根据基本特性获取网卡名称。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+
+**返回:**
+
+如果操作成功,则返回网卡名称。
+
+如果操作失败,则返回NULL。
+
+
+### getValidFreqsWithBand
+
+  
+```
+int32_t(* IWiFiBaseFeature::getValidFreqsWithBand) (const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num)
+```
+
+**描述:**
+
+获取指定频段(2.4G或者5G)下支持的频率。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+| band | 输入参数,指定的一个频段。 | 
+| freqs | 输出参数,保存支持的频率。 | 
+| count | 输入参数,频率数组的元素个数。 | 
+| num | 输出参数,实际支持的频率个数。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### ifName
+
+  
+```
+char IWiFiBaseFeature::ifName[IFNAME_MAX_LEN]
+```
+
+**描述:**
+
+网卡名称。
+
+
+### setMacAddress
+
+  
+```
+int32_t(* IWiFiBaseFeature::setMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)
+```
+
+**描述:**
+
+根据传入参数设置对应网卡的MAC地址。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+| mac | 输入参数,设置的MAC地址。 | 
+| len | 输入参数,设置的MAC地址长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### setTxPower
+
+  
+```
+int32_t(* IWiFiBaseFeature::setTxPower) (const struct IWiFiBaseFeature *baseFeature, int32_t power)
+```
+
+**描述:**
+
+设置发射功率。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| baseFeature | 输入参数,基本特性。 | 
+| power | 输入参数,设置的发射功率。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md
new file mode 100644
index 0000000000000000000000000000000000000000..aff3e568d7d0cae1422620565645673dbcb5508e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md
@@ -0,0 +1,99 @@
+# IWiFiSta
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [baseFeature](#basefeature) | 基本特性。 | 
+| (&nbsp;[setScanningMacAddress](#setscanningmacaddress)&nbsp;)(const&nbsp;struct&nbsp;IWiFiSta&nbsp;\*staFeature,&nbsp;unsigned&nbsp;char&nbsp;\*scanMac,&nbsp;uint8_t&nbsp;len) | 设置扫描单个MAC地址。&nbsp;[更多...](#setscanningmacaddress) | 
+| (&nbsp;[startScan](#startscan)&nbsp;)(const&nbsp;char&nbsp;\*ifName,&nbsp;WifiScan&nbsp;\*scan) | 启动扫描。&nbsp;[更多...](#startscan) | 
+
+
+## **详细描述**
+
+继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### baseFeature
+
+  
+```
+struct IWiFiBaseFeature IWiFiSta::baseFeature
+```
+
+**描述:**
+
+基本特性。
+
+
+### setScanningMacAddress
+
+  
+```
+int32_t(* IWiFiSta::setScanningMacAddress) (const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len)
+```
+
+**描述:**
+
+设置扫描单个MAC地址。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| staFeature | 输入参数,STA特性。 | 
+| scanMac | 输入参数,设置STA扫描的MAC地址。 | 
+| len | 输入参数,MAC地址的长度。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### startScan
+
+  
+```
+int32_t(* IWiFiSta::startScan) (const char *ifName, WifiScan *scan)
+```
+
+**描述:**
+
+启动扫描。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ifName | 输入参数,网卡名称。 | 
+| scan | 输入参数,扫描参数。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_identify_result_info.md b/zh-cn/device-dev/reference/hdi-apis/_identify_result_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..f990a2d18bffdca9b2404f92e1c56f191bc93676
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_identify_result_info.md
@@ -0,0 +1,72 @@
+# IdentifyResultInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [result](#result) | 用户身份识别结果。 | 
+| [userId](#userid) | 用户ID。 | 
+| [token](#token) | 用户身份识别令牌。 | 
+
+
+## **详细描述**
+
+用户身份识别结果信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### result
+
+  
+```
+int IdentifyResultInfo::result
+```
+
+**描述:**
+
+用户身份识别结果。
+
+
+### token
+
+  
+```
+unsigned char [] IdentifyResultInfo::token
+```
+
+**描述:**
+
+用户身份识别令牌。
+
+
+### userId
+
+  
+```
+int IdentifyResultInfo::userId
+```
+
+**描述:**
+
+用户ID。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input.md b/zh-cn/device-dev/reference/hdi-apis/_input.md
new file mode 100644
index 0000000000000000000000000000000000000000..9914bfec5d164e82eb19072c2bc546a26066ae65
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input.md
@@ -0,0 +1,238 @@
+# Input
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [input_controller.h](input__controller_8h.md) | 描述Input设备业务控制相关的接口声明。 | 
+| [input_manager.h](input__manager_8h.md) | 描述Input设备管理相关的接口声明。 | 
+| [input_reporter.h](input__reporter_8h.md) | 描述Input设备数据上报相关的接口声明。 | 
+| [input_type.h](input__type_8h.md) | Input设备相关的类型定义,定义了Input设备驱动接口所使用的结构体及枚举类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [InputController](_input_controller.md) | 提供Input设备业务控制相关的接口。&nbsp;[更多...](_input_controller.md) | 
+| [InputManager](_input_manager.md) | 提供Input设备管理相关的接口。&nbsp;[更多...](_input_manager.md) | 
+| [IInputInterface](_i_input_interface.md) | 定义用于提供输入设备驱动能力的接口。[更多...](_i_input_interface.md) | 
+| [InputReporter](_input_reporter.md) | 提供Input设备数据上报相关的接口。&nbsp;[更多...](_input_reporter.md) | 
+| [InputEventPackage](_event_package.md) | Input事件数据包结构。&nbsp;[更多...](_event_package.md) | 
+| [InputHotPlugEvent](_input_hotplug_event.md) | 热插拔事件数据包结构。&nbsp;[更多...](_input_hotplug_event.md) | 
+| [InputDevDesc](_input_dev_desc.md) | Input设备描述信息。&nbsp;[更多...](_input_dev_desc.md) | 
+| [InputEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。&nbsp;[更多...](_input_report_event_cb.md) | 
+| [InputHostCb](_input_host_cb.md) | 此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。&nbsp;[更多...](_input_host_cb.md) | 
+| [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,存储支持事件的位图。&nbsp;[更多...](_input_dev_ability.md) | 
+| [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信息。&nbsp;[更多...](_input_dimension_info.md) | 
+| [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。&nbsp;[更多...](_input_dev_identify.md) | 
+| [InputDevAttr](_input_dev_attr.md) | Input设备属性。&nbsp;[更多...](_input_dev_attr.md) | 
+| [InputDeviceInfo](_device_info.md) | Input设备基础设备信息。&nbsp;[更多...](_device_info.md) | 
+| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构。&nbsp;[更多...](_input_extra_cmd.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| **MAX_INPUT_DEV_NUM**&nbsp;&nbsp;&nbsp;32 | Input设备最大数量。 | 
+| **DEV_NAME_LEN**&nbsp;&nbsp;&nbsp;64 | Input设备名称长度。 | 
+| **CHIP_INFO_LEN**&nbsp;&nbsp;&nbsp;10 | 芯片信息长度。 | 
+| **CHIP_NAME_LEN**&nbsp;&nbsp;&nbsp;10 | 芯片名称长度。 | 
+| **VENDOR_NAME_LEN**&nbsp;&nbsp;&nbsp;10 | 厂商名称长度。 | 
+| **SELF_TEST_RESULT_LEN**&nbsp;&nbsp;&nbsp;20 | 自测结果长度。 | 
+| **DEV_MANAGER_SERVICE_NAME**&nbsp;&nbsp;&nbsp;"hdf_input_host" | Input设备节点服务名称。 | 
+| **DIV_ROUND_UP(nr, d)**&nbsp;&nbsp;(((nr) + (d) - 1) / (d)) | 向上取整计算公式。|
+| **BYTE_HAS_BITS**&nbsp;&nbsp;8 | 一个字节所包含的比特数。 |
+| **BITS_TO_UINT64(count)**&nbsp;&nbsp;DIV_ROUND_UP(count, BYTE_HAS_BITS * sizeof(uint64_t)) | 比特与64位无符号整数的转换公式。 |
+| **HDF_FF_CNT**&nbsp;&nbsp;(0x7f + 1) | Input设备发送力反馈命令的数量最大值。|
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [RetStatus](#retstatus)&nbsp;{&nbsp;INPUT_SUCCESS&nbsp;=&nbsp;0,&nbsp;INPUT_FAILURE&nbsp;=&nbsp;-1,&nbsp;INPUT_INVALID_PARAM&nbsp;=&nbsp;-2,&nbsp;INPUT_NOMEM&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;INPUT_NULL_PTR&nbsp;=&nbsp;-4,&nbsp;INPUT_TIMEOUT&nbsp;=&nbsp;-5,&nbsp;INPUT_UNSUPPORTED&nbsp;=&nbsp;-6&nbsp;} | 定义返回值类型。&nbsp;[更多...](#retstatus) | 
+| [InputDevType](#inputdevtype)&nbsp;{&nbsp;INDEV_TYPE_TOUCH,&nbsp;INDEV_TYPE_KEY,&nbsp;INDEV_TYPE_KEYBOARD,&nbsp;INDEV_TYPE_MOUSE,&nbsp;&nbsp;&nbsp;INDEV_TYPE_BUTTON,&nbsp;INDEV_TYPE_CROWN,&nbsp;INDEV_TYPE_ENCODER,&nbsp;INDEV_TYPE_UNKNOWN&nbsp;} | 定义Input设备类型。&nbsp;[更多...](#inputdevtype) | 
+| [PowerStatus](#powerstatus)&nbsp;{&nbsp;INPUT_RESUME,&nbsp;INPUT_SUSPEND,&nbsp;INPUT_LOW_POWER,&nbsp;INPUT_POWER_STATUS_UNKNOWN&nbsp;} | 定义电源状态。&nbsp;[更多...](#powerstatus) | 
+| [CapacitanceTest](#capacitancetest)&nbsp;{&nbsp;BASE_TEST,&nbsp;FULL_TEST,&nbsp;MMI_TEST,&nbsp;RUNNING_TEST,&nbsp;&nbsp;&nbsp;TEST_TYPE_UNKNOWN&nbsp;} | 定义容值测试类型。&nbsp;[更多...](#capacitancetest) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GetInputInterface](#getinputinterface)&nbsp;([IInputInterface](_i_input_interface.md)&nbsp;\*\*interface) | Input服务通过调用此接口获取操作Input设备的所有接口。&nbsp;[更多...](#getinputinterface) | 
+| [ReleaseInputInterface](#releaseinputinterface)&nbsp;([IInputInterface](_i_input_interface.md)&nbsp;\*\*inputInterface) | Input服务通过调用此接口释放操作Input设备的所有接口。&nbsp;[更多...](#releaseinputinterface) | 
+
+
+## **详细描述**
+
+Input模块驱动接口声明。
+
+本模块为Input服务提供相关驱动接口,包括Input设备的打开和关闭、Input事件获取、设备信息查询、回调函数注册、特性状态控制等接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **枚举类型说明**
+
+
+### CapacitanceTest
+
+  
+```
+enum CapacitanceTest
+```
+
+**描述:**
+
+定义容值测试类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| BASE_TEST | 基础容值测试 | 
+| FULL_TEST | 全量容值自检测试 | 
+| MMI_TEST | MMI容值测试 | 
+| RUNNING_TEST | 老化容值测试 | 
+| TEST_TYPE_UNKNOWN | 未知的测试类型 | 
+
+
+### InputDevType
+
+  
+```
+enum InputDevType
+```
+
+**描述:**
+
+定义Input设备类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| INDEV_TYPE_TOUCH | 触摸屏。 | 
+| INDEV_TYPE_KEY | 物理按键。 | 
+| INDEV_TYPE_KEYBOARD | 键盘。 | 
+| INDEV_TYPE_MOUSE | 鼠标。 | 
+| INDEV_TYPE_BUTTON | 虚拟按键。 | 
+| INDEV_TYPE_CROWN | 表冠。 | 
+| INDEV_TYPE_ENCODER | 自定义编码的特定功能或者事件。 | 
+| INDEV_TYPE_UNKNOWN | 未知输入设备类型。 | 
+
+
+### PowerStatus
+
+  
+```
+enum PowerStatus
+```
+
+**描述:**
+
+定义电源状态。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| INPUT_RESUME | 正常唤醒。 | 
+| INPUT_SUSPEND | 休眠下电模式。 | 
+| INPUT_LOW_POWER | 休眠低功耗模式。 | 
+| INPUT_POWER_STATUS_UNKNOWN | 未知电源状态。 | 
+
+
+### RetStatus
+
+  
+```
+enum RetStatus
+```
+
+**描述:**
+
+定义返回值类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| INPUT_SUCCESS | 成功。 | 
+| INPUT_FAILURE | 失败。 | 
+| INPUT_INVALID_PARAM | 无效参数。 | 
+| INPUT_NOMEM | 内存不足。 | 
+| INPUT_NULL_PTR | 空指针。 | 
+| INPUT_TIMEOUT | 执行超时。 | 
+| INPUT_UNSUPPORTED | 特性不支持。 | 
+
+
+## **函数说明**
+
+
+### GetInputInterface()
+
+  
+```
+int32_t GetInputInterface (IInputInterface **interface)
+```
+
+**描述:**
+
+Input服务通过调用此接口获取操作Input设备的所有接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| interface | 对Input设备进行接口操作的指针,通常在Input服务启动后,通过调用此函数获取Input设备操作接口。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看**RetSatus**。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+### ReleaseInputInterface()
+
+  
+```
+int32_t ReleaseInputInterface (IInputInterface *inputInterface)
+```
+
+**描述:**
+
+Input服务通过调用此接口释放操作Input设备的所有接口。
+
+**参数:**
+
+| 名称 | 描述 | 
+| -------- | -------- |
+| inputInterface| 对Input设备进行接口操作的指针。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看**RetSatus**。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_controller.md b/zh-cn/device-dev/reference/hdi-apis/_input_controller.md
new file mode 100644
index 0000000000000000000000000000000000000000..58ab8b158a18cc045e658f398061460f0ef07b0b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_controller.md
@@ -0,0 +1,276 @@
+# InputController
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[SetPowerStatus](#setpowerstatus)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;uint32_t&nbsp;status) | 设置电源状态&nbsp;[更多...](#setpowerstatus) | 
+| (&nbsp;[GetPowerStatus](#getpowerstatus)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;uint32_t&nbsp;\*status) | 获取电源状态&nbsp;[更多...](#getpowerstatus) | 
+| (&nbsp;[GetDeviceType](#getdevicetype)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;uint32_t&nbsp;\*deviceType) | 获取devIndex对应的Input设备的类型&nbsp;[更多...](#getdevicetype) | 
+| (&nbsp;[GetChipInfo](#getchipinfo)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;char&nbsp;\*chipInfo,&nbsp;uint32_t&nbsp;length) | 获取器件对应的编码信息&nbsp;[更多...](#getchipinfo) | 
+| (&nbsp;[GetVendorName](#getvendorname)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;char&nbsp;\*vendorName,&nbsp;uint32_t&nbsp;length) | 获取devIndex对应的模组厂商名&nbsp;[更多...](#getvendorname) | 
+| (&nbsp;[GetChipName](#getchipname)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;char&nbsp;\*chipName,&nbsp;uint32_t&nbsp;length) | 获取devIndex对应的驱动芯片名&nbsp;[更多...](#getchipname) | 
+| (&nbsp;[SetGestureMode](#setgesturemode)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;uint32_t&nbsp;gestureMode) | 设置手势模式&nbsp;[更多...](#setgesturemode) | 
+| (&nbsp;[RunCapacitanceTest](#runcapacitancetest)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;uint32_t&nbsp;testType,&nbsp;char&nbsp;\*result,&nbsp;uint32_t&nbsp;length) | 执行容值自检测试&nbsp;[更多...](#runcapacitancetest) | 
+| (&nbsp;[RunExtraCommand](#runextracommand)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;[InputExtraCmd](_input_extra_cmd.md)&nbsp;\*cmd) | 执行拓展指令&nbsp;[更多...](#runextracommand) | 
+
+
+## **详细描述**
+
+提供Input设备业务控制相关的接口。
+
+此类接口包含电源状态的设置、特性的使能、器件信息的获取,以及产线相关的测试功能接口。
+
+
+## **类成员变量说明**
+
+
+### GetChipInfo
+
+  
+```
+int32_t(* InputController::GetChipInfo) (uint32_t devIndex, char *chipInfo, uint32_t length)
+```
+
+**描述:**
+
+获取器件对应的编码信息。
+
+一款产品通常会有多家模组和Driver IC,上层应用如果关注具体器件型号,则通过此接口来获取。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| chipInfo | 输出参数,获取的对应设备索引的器件编码信息。 | 
+| length | 输入参数,保存器件芯片信息的内存长度。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetChipName
+
+  
+```
+int32_t(* InputController::GetChipName) (uint32_t devIndex, char *chipName, uint32_t length)
+```
+
+**描述:**
+
+获取devIndex对应的驱动芯片名。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| chipName | 输出参数,获取的对应设备索引的驱动芯片名。 | 
+| length | 输入参数,保存驱动芯片名的内存长度。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetDeviceType
+
+  
+```
+int32_t(* InputController::GetDeviceType) (uint32_t devIndex, uint32_t *deviceType)
+```
+
+**描述:**
+
+获取devIndex对应的Input设备的类型。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| deviceType | 输出参数,获取的对应设备索引的设备类型,具体参考[InputDevType](_input.md#inputdevtype)。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetPowerStatus
+
+  
+```
+int32_t(* InputController::GetPowerStatus) (uint32_t devIndex, uint32_t *status)
+```
+
+**描述:**
+
+获取电源状态。
+
+在系统休眠或者唤醒时,Input服务或电源管理模块获取电源状态,以便驱动IC能正常进入对应的休眠模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| status | 输出参数,获取的对应设备索引的电源状态,具体参考[PowerStatus](_input.md#powerstatus)。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetVendorName
+
+  
+```
+int32_t(* InputController::GetVendorName) (uint32_t devIndex, char *vendorName, uint32_t length)
+```
+
+**描述:**
+
+获取devIndex对应的模组厂商名。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| vendorName | 获取的对应设备索引的模组厂商名。 | 
+| length | 保存模组厂商名的内存长度。 | 
+
+**返回:**
+
+Returns INPUT_SUCCESS 表示执行成功。
+
+Returns 其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### RunCapacitanceTest
+
+  
+```
+int32_t(* InputController::RunCapacitanceTest) (uint32_t devIndex, uint32_t testType, char *result, uint32_t length)
+```
+
+**描述:**
+
+执行容值自检测试。
+
+启动不同检测场景下的容值自检测试,并获取测试结果,容值自检项由器件厂商自定义, 一般包括RawData测试、短路检测、开路检测、干扰检测、行列差检测等测试项。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| testType | 输入参数,容值测试的测试类型,具体参考[CapacitanceTest](_input.md#capacitancetest)。 | 
+| result | 输出参数,容值测试的结果,成功则输出“SUCC”,失败则返回对应的错误提示。 | 
+| length | 输入参数,保存容值测试结果的内存长度。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### RunExtraCommand
+
+  
+```
+int32_t(* InputController::RunExtraCommand) (uint32_t devIndex, InputExtraCmd *cmd)
+```
+
+**描述:**
+
+执行拓展指令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| cmd | 输入参数,拓展指令数据包,包括指令编码及参数,具体参考[InputExtraCmd](_input_extra_cmd.md)。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### SetGestureMode
+
+  
+```
+int32_t(* InputController::SetGestureMode) (uint32_t devIndex, uint32_t gestureMode)
+```
+
+**描述:**
+
+设置手势模式。
+
+上层应用开关手势模式,即设置手势模式的对应使能bit。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| gestureMode | 输入参数,手势模式的开关状态。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### SetPowerStatus
+
+  
+```
+int32_t(* InputController::SetPowerStatus) (uint32_t devIndex, uint32_t status)
+```
+
+**描述:**
+
+设置电源状态。
+
+在系统休眠或者唤醒时,Input服务或电源管理模块设置电源状态,以使驱动IC能正常进入对应的休眠模式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| status | 输入参数,设置的电源状态,Input服务控制Input设备进入resume或者suspend等状态[PowerStatus](_input.md#powerstatus)。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md
new file mode 100644
index 0000000000000000000000000000000000000000..d7ec4c6686ae6b2f80a83c11b74685a1bdfcb128
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md
@@ -0,0 +1,196 @@
+# InputDevAbility
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [devProp](#devprop) | 设备属性 | 
+| [eventType](#eventtype) | 记录支持的事件类型的位图 | 
+| [absCode](#abscode)  | 记录支持的绝对坐标的位图 |
+| [relCode](#relcode)  | 记录支持的相对坐标的位图 |
+| [keyCode](#keycode)  | 记录支持的按键值的位图 |
+| [ledCode](#ledcode)  | 记录设备支持的指示灯的位图 |
+| [miscCode](misccode#)  |记录设备支持的其他功能的位图  |
+| [soundCode](#soundcode)  | 记录设备支持的声音或警报的位图 |
+| [forceCode](#forcecode)  | 记录设备支持的作用力功能的位图 |
+| [switchCode](#switchcode)  | 记录设备支持的开关功能的位图 |
+| [keyType](#keytype)  | 按键状态的位图 |
+| [ledType](#ledtype)  | LED状态的位图 |
+| [soundType](#soundtype)  | 声音状态的位图 |
+| [switchType](#switchtype)  | 开关状态的位图 |
+
+## **详细描述**
+
+Input设备的能力属性,存储支持事件的位图。用位的方式来表示该Input设备能够上报的事件类型。
+
+
+## **类成员变量说明**
+
+
+### devProp
+
+
+```
+uint64_t InputDevAbility::devProp[BITS_TO_UINT64(INPUT_PROP_CNT)]
+```
+
+**描述:**
+
+设备属性。
+
+
+### eventType
+
+
+```
+uint64_t InputDevAbility::eventType[BITS_TO_UINT64(EV_CNT)]
+```
+
+**描述:**
+
+用于记录支持的事件类型的位图。
+
+### absCode
+
+
+```
+uint64_t InputDevAbility::absCode[BITS_TO_UINT64(ABS_CNT)]
+```
+
+**描述:**
+
+记录支持的绝对坐标的位图。
+
+### relCode
+
+
+```
+uint64_t InputDevAbility::relCode[BITS_TO_UINT64(REL_CNT)]
+```
+
+**描述:**
+
+记录支持的相对坐标的位图。
+
+### keyCode
+
+
+```
+uint64_t InputDevAbility::keyCode[BITS_TO_UINT64(KEY_CNT)]
+```
+
+**描述:**
+
+记录支持的按键值的位图。
+
+
+### ledCode
+
+
+```
+uint64_t InputDevAbility::ledCode[BITS_TO_UINT64(LED_CNT)]
+```
+
+**描述:**
+
+记录设备支持的指示灯的位图。
+
+
+### miscCode
+
+
+```
+uint64_t InputDevAbility::miscCode[BITS_TO_UINT64(MSC_CNT)]
+```
+
+**描述:**
+
+记录设备支持的其他功能的位图。
+
+
+### soundCode
+
+
+```
+uint64_t InputDevAbility::soundCode[BITS_TO_UINT64(SND_CNT)]
+```
+
+**描述:**
+
+记录设备支持的声音或警报的位图。
+
+
+### forceCode
+
+```
+uint64_t InputDevAbility::forceCode[BITS_TO_UINT64(HDF_FF_CNT)]
+```
+
+**描述:**
+
+记录设备支持的作用力功能的位图。
+
+
+### switchCode
+
+```
+uint64_t InputDevAbility::switchCode[BITS_TO_UINT64(SW_CNT)]
+```
+
+**描述:**
+
+记录设备支持的开关功能的位图。
+
+
+### keyType
+
+```
+uint64_t InputDevAbility::keyType[BITS_TO_UINT64(KEY_CNT)]
+```
+
+**描述:**
+
+按键状态的位图。
+
+
+### ledType
+
+```
+uint64_t InputDevAbility::ledType[BITS_TO_UINT64(LED_CNT)]
+```
+
+**描述:**
+
+LED状态的位图。
+
+### soundType
+
+```
+uint64_t InputDevAbility::soundType[BITS_TO_UINT64(SND_CNT)]
+```
+
+**描述:**
+
+声音状态的位图。
+
+### switchType
+
+```
+uint64_t InputDevAbility::switchType[BITS_TO_UINT64(SW_CNT)]
+```
+
+**描述:**
+
+开关状态的位图。
+
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md
new file mode 100644
index 0000000000000000000000000000000000000000..d6dcb2b37936249aeae66af38131a56c27019797
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md
@@ -0,0 +1,58 @@
+# InputDevAttr
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [devName](#devname) | 设备名 | 
+| [id](#id) | 设备识别信息 | 
+| [axisInfo](#axisinfo)  | 设备维度信息 |
+
+## **详细描述**
+
+Input设备属性。
+
+
+## **类成员变量说明**
+
+
+### devName
+
+```
+char InputDevAttr::devName[DEV_NAME_LEN]
+```
+
+**描述:**
+
+设备名。
+
+### id
+
+```
+InputDevIdentify InputDevAttr::id
+```
+
+**描述:**
+
+设备识别信息。
+
+### axisInfo
+
+```
+InputDimensionInfo InputDevAttr::axisInfo[ABS_CNT];
+```
+
+**描述:**
+
+设备维度信息。
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md
new file mode 100644
index 0000000000000000000000000000000000000000..5950fca754533fbb0f35713da421cac14917b3a5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md
@@ -0,0 +1,51 @@
+# InputDevDesc
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [devIndex](#devindex) | 设备索引 | 
+| [devType](#devtype) | 设备类型 | 
+
+
+## **详细描述**
+
+Input设备描述信息。
+
+
+## **类成员变量说明**
+
+
+### devIndex
+
+
+```
+uint32_t InputHotPlugEvent::devIndex
+```
+
+**描述:**
+
+设备索引。
+
+
+### devType
+
+
+```
+uint32_t InputHotPlugEvent::devType
+```
+
+**描述:**
+
+设备类型。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md
new file mode 100644
index 0000000000000000000000000000000000000000..8520f5f62c0ef6732a00091ae3fb49a910e03632
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md
@@ -0,0 +1,69 @@
+# InputDevIdentify
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [busType](#bustype) | 总线类型 | 
+| [vendor](#vendor) | 生产商编号 | 
+| [product](#product)  | 产品编号 |
+| [fuzz](#version)  | 版本号 |
+
+## **详细描述**
+
+Input设备的识别信息。
+
+
+## **类成员变量说明**
+
+
+### busType
+
+```
+uint16_t InputDevIdentify::busType
+```
+
+**描述:**
+
+总线类型。
+
+### vendor
+
+```
+uint16_t InputDevIdentify::vendor
+```
+
+**描述:**
+
+生产商编号。
+
+### product
+
+```
+uint16_t InputDevIdentify::product
+```
+
+**描述:**
+
+产品编号。
+
+### version
+
+```
+uint16_t InputDevIdentify::version
+```
+
+**描述:**
+
+版本号。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md b/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..bdbbdbd5d33b9886691cbedfa742fa432c43f34e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md
@@ -0,0 +1,91 @@
+# InputDimensionInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [axis](#axis) | 坐标轴 | 
+| [min](#min) | 记录各个坐标的最小值 | 
+| [max](#max)  | 记录各个坐标的最大值 |
+| [fuzz](#fuzz)  | 记录各个坐标的分辨率 |
+| [flat](#flat)  | 记录各个坐标的基准值 |
+| [range](#range)  | 范围 |
+
+## **详细描述**
+
+Input设备的维度信息。
+
+
+## **类成员变量说明**
+
+
+### axis
+
+```
+int32_t InputDimensionInfo::axis
+```
+
+**描述:**
+
+坐标轴。
+
+### min
+
+```
+int32_t InputDimensionInfo::min
+```
+
+**描述:**
+
+记录各个坐标的最小值。
+
+### max
+
+```
+int32_t InputDimensionInfo::max
+```
+
+**描述:**
+
+记录各个坐标的最大值。
+
+### fuzz
+
+```
+int32_t InputDimensionInfo::fuzz
+```
+
+**描述:**
+
+记录各个坐标的分辨率。
+
+### flat
+
+```
+int32_t InputDimensionInfo::flat
+```
+
+**描述:**
+
+记录各个坐标的基准值。
+
+### range
+
+```
+int32_t InputDimensionInfo::range
+```
+
+**描述:**
+
+范围。
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_extra_cmd.md b/zh-cn/device-dev/reference/hdi-apis/_input_extra_cmd.md
new file mode 100644
index 0000000000000000000000000000000000000000..56083e65b9a4c823d7c5fc42cc29ddbd3b910228
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_extra_cmd.md
@@ -0,0 +1,51 @@
+# InputExtraCmd
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [cmdCode](#cmdcode) | 指令对应的编码。 | 
+| [cmdValue](#cmdvalue) | 指令传输的数据。 | 
+
+
+## **详细描述**
+
+扩展指令的数据结构。
+
+
+## **类成员变量说明**
+
+
+### cmdCode
+
+  
+```
+const char* InputExtraCmd::cmdCode
+```
+
+**描述:**
+
+指令对应的编码
+
+
+### cmdValue
+
+  
+```
+const char* InputExtraCmd::cmdValue
+```
+
+**描述:**
+
+指令传输的数据
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md b/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md
new file mode 100644
index 0000000000000000000000000000000000000000..372d6d7847b87f3d69a034e382093462d778e26e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md
@@ -0,0 +1,44 @@
+# InputHostCb
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[HotPlugCallback](#hotplugcallback)&nbsp;)&nbsp;(const&nbsp;[InputHotPlugEvent](_input_hotplug_event.md)&nbsp;\*event) | 热插拔事件上报的回调函数。&nbsp;[更多...](#hotplugcallback) | 
+
+
+## **详细描述**
+
+此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。
+
+
+## **类成员变量说明**
+
+
+### HotPlugCallback
+
+
+```
+void (* InputHostCb::HotPlugCallback) (const InputHotPlugEvent* event);
+```
+
+**描述:**
+
+热插拔事件上报的回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 输入参数,上报的热插拔事件数据。 | 
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md b/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md
new file mode 100644
index 0000000000000000000000000000000000000000..1bfe63ea8dbf62d5577191ab8c18ca4fa4af7096
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md
@@ -0,0 +1,66 @@
+# InputHotPlugEvent
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [devIndex](#devindex) | 设备索引 | 
+| [devType](#devtype) | 设备类型 | 
+| [status](#status) | 设备状态| 
+
+
+## **详细描述**
+
+热插拔事件数据包结构。
+
+
+## **类成员变量说明**
+
+
+### devIndex
+
+
+```
+uint32_t InputHotPlugEvent::devIndex
+```
+
+**描述:**
+
+设备索引。
+
+
+### devType
+
+
+```
+uint32_t InputHotPlugEvent::devType
+```
+
+**描述:**
+
+设备类型。
+
+
+### status
+
+
+```
+uint32_t InputHotPlugEvent::status
+```
+
+**描述:**
+
+设备状态。
+-  1:离线
+-  0:在线。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_manager.md b/zh-cn/device-dev/reference/hdi-apis/_input_manager.md
new file mode 100644
index 0000000000000000000000000000000000000000..ac0611a28958d35fe31156a134270a7be2c0ba03
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_manager.md
@@ -0,0 +1,156 @@
+# InputManager
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[ScanInputDevice](#scaninputdevice)&nbsp;)(DevDesc&nbsp;\*staArr,&nbsp;uint32_t&nbsp;arrLen) | Input服务用于扫描所有在线设备。&nbsp;[更多...](#scaninputdevice) | 
+| (&nbsp;[OpenInputDevice](#openinputdevice)&nbsp;)(uint32_t&nbsp;devIndex) | Input服务打开对应设备的设备文件&nbsp;[更多...](#openinputdevice) | 
+| (&nbsp;[CloseInputDevice](#closeinputdevice)&nbsp;)(uint32_t&nbsp;devIndex) | Input服务关闭对应设备的设备文件&nbsp;[更多...](#closeinputdevice) | 
+| (&nbsp;[GetInputDevice](#getinputdevice)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;[InputDeviceInfo](_device_info.md)&nbsp;\*\*devInfo) | Input服务获取对应ID的设备信息&nbsp;[更多...](#getinputdevice) | 
+| (&nbsp;[GetInputDeviceList](#getinputdevicelist)&nbsp;)(uint32_t&nbsp;\*devNum,&nbsp;[InputDeviceInfo](_device_info.md)&nbsp;\*\*devList,&nbsp;uint32_t&nbsp;size) | Input服务获取所有Input设备列表的设备信息&nbsp;[更多...](#getinputdevicelist) | 
+
+
+## **详细描述**
+
+提供Input设备管理相关的接口。
+
+此类接口包Input设备的扫描、打开和关闭、特定设备信息查询,以及所有设备列表信息获取等接口。
+
+
+## **类成员变量说明**
+
+
+### CloseInputDevice
+
+  
+```
+int32_t(* InputManager::CloseInputDevice) (uint32_t devIndex)
+```
+
+**描述:**
+
+Input服务关闭对应设备的设备文件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。| 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetInputDevice
+
+  
+```
+int32_t(* InputManager::GetInputDevice) (uint32_t devIndex, InputDeviceInfo **devInfo)
+```
+
+**描述:**
+
+Input服务获取对应ID的设备信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| devInfo | 输出参数,即devIndex对应的设备的设备信息,具体参考[InputDeviceInfo](_device_info.md)。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### GetInputDeviceList
+
+  
+```
+int32_t(* InputManager::GetInputDeviceList) (uint32_t *devNum, InputDeviceInfo **devList, uint32_t size)
+```
+
+**描述:**
+
+Input服务获取所有Input设备列表的设备信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devNum | 输出参数,当前已经注册过的所有Input设备的总数。 | 
+| devInfo | 输出参数,Input设备列表所对应的设备信息,具体参考[InputDeviceInfo](_device_info.md)。 | 
+| size | 输入参数,即指定deviceList数组对应的元素个数。| 
+
+返回:
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### OpenInputDevice
+
+  
+```
+int32_t(* InputManager::OpenInputDevice) (uint32_t devIndex)
+```
+
+**描述:**
+
+Input服务打开对应设备的设备文件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### ScanInputDevice
+
+  
+```
+int32_t(* InputManager::ScanInputDevice) (InputDevDesc *staArr, uint32_t arrLen)
+```
+
+**描述:**
+
+Input服务用于扫描所有在线设备。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| staArr | 输出参数,存放Input设备扫描信息的数组,信息包含设备索引以及设备类型。 | 
+| arrLen | 输入参数,staArr数组的长度信息。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md b/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md
new file mode 100644
index 0000000000000000000000000000000000000000..b6dd9371652a5af31acba24509d9bc040d8fe6c7
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md
@@ -0,0 +1,47 @@
+# InputEventCb
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[EventPkgCallback](#eventpkgcallback)&nbsp;)(const&nbsp;[InputEventPackage](_event_package.md)&nbsp;\*\*pkgs,&nbsp;uint32_t&nbsp;count,&nbsp;uint32_t&nbsp;devIndex) | 输入事件数据上报的回调函数。&nbsp;[更多...](#eventpkgcallback) | 
+
+
+## **详细描述**
+
+此结构体定义了输入事件回调函数并提供给Input服务使用。
+
+
+## **类成员变量说明**
+
+
+### EventPkgCallback
+
+  
+```
+void (* InputEventCb::EventPkgCallback)(const InputEventPackage **pkgs, uint32_t count, uint32_t devIndex);
+```
+
+**描述:**
+
+输入事件数据上报的回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| pkgs| 驱动上报的Input事件数据。 | 
+| count | Input事件数据包的个数。 | 
+| devIndex | Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_reporter.md b/zh-cn/device-dev/reference/hdi-apis/_input_reporter.md
new file mode 100644
index 0000000000000000000000000000000000000000..fb4feb386c944bed951b37290c8711af10e4d28f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_reporter.md
@@ -0,0 +1,126 @@
+# InputReporter
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[RegisterReportCallback](#registerreportcallback)&nbsp;)(uint32_t&nbsp;devIndex,&nbsp;[InputHostCb](_input_report_event_cb.md)&nbsp;\*callback) | 注册对应设备的回调函数。&nbsp;[更多...](#registerreportcallback) | 
+| (&nbsp;[UnregisterReportCallback](#unregisterreportcallback)&nbsp;)(uint32_t&nbsp;devIndex) | 注销对应设备的回调函数。&nbsp;[更多...](#unregisterreportcallback) | 
+| (&nbsp;[RegisterHotPlugCallback](#registerhotplugcallback)&nbsp;)([InputHostCb](_input_report_event_cb.md)&nbsp;\*callback) | 注册Input设备的热插拔回调函数。&nbsp;[更多...](#registerhotplugcallback) | 
+| (&nbsp;[UnregisterHotPlugCallback](#unregisterhotplugcallback)&nbsp;)(void) | 注销Input设备的热插拔回调函数。&nbsp;[更多...](#unregisterhotplugcallback) | 
+
+
+## **详细描述**
+
+提供Input设备数据上报相关的接口。
+
+此类接口包含Input设备的数据上报回调函数的注册和注销。
+
+
+## **类成员变量说明**
+
+
+### RegisterHotPlugCallback
+
+  
+```
+int32_t(* InputReporter::RegisterHotPlugCallback) (InputHostCb *callback)
+```
+
+**描述:**
+
+注册Input设备的热插拔回调函数。
+
+Input服务通过此接口注册回调函数到hdi中,所有Input设备由此函数进行热插拔事件上报。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| callback | 输入参数,回调函数的函数指针。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### RegisterReportCallback
+
+  
+```
+int32_t(* InputReporter::RegisterReportCallback) (uint32_t devIndex, InputEventCb *callback)
+```
+
+**描述:**
+
+注册对应设备的回调函数。
+
+Input服务通过此接口注册数据回调函数到hdi中,hdi通过此回调函数上报Input事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | 
+| callback | 输入参数,回调函数的函数指针。 | 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### UnregisterHotPlugCallback
+
+  
+```
+int32_t(* InputReporter::UnregisterHotPlugCallback) (void)
+```
+
+**描述:**
+
+注销Input设备的热插拔回调函数。
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
+
+
+### UnregisterReportCallback
+
+  
+```
+int32_t(* InputReporter::UnregisterReportCallback) (uint32_t devIndex)
+```
+
+**描述:**
+
+注销对应设备的回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devIndex | 输入参数,Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。| 
+
+**返回:**
+
+INPUT_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[RetSatus](_input.md#retstatus)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_layer_alpha.md b/zh-cn/device-dev/reference/hdi-apis/_layer_alpha.md
new file mode 100644
index 0000000000000000000000000000000000000000..9dc52678aecefe62852b3c53f430b051c1f39bb0
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_layer_alpha.md
@@ -0,0 +1,27 @@
+# LayerAlpha
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [enGlobalAlpha](_display.md#englobalalpha-12) | 全局alpha使能标志 | 
+| [enPixelAlpha](_display.md#enpixelalpha-12) | 像素alpha使能标志 | 
+| [alpha0](_display.md#alpha0-12) | alpha0值,取值范围:[0,&nbsp;255] | 
+| [alpha1](_display.md#alpha1-12) | alpha1值,取值范围:[0,&nbsp;255] | 
+| [gAlpha](_display.md#galpha) | 全局alpha值,取值范围:[0,&nbsp;255] | 
+
+
+## **详细描述**
+
+定义图层Alpha信息的结构体。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_layer_buffer.md b/zh-cn/device-dev/reference/hdi-apis/_layer_buffer.md
new file mode 100644
index 0000000000000000000000000000000000000000..179aa36a396027e7cbae879faf591dcbfc977550
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_layer_buffer.md
@@ -0,0 +1,29 @@
+# LayerBuffer
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [fenceId](_display.md#fenceid) | buffer的fence号 | 
+| [width](_display.md#width-37) | buffer宽度 | 
+| [height](_display.md#height-37) | buffer高度 | 
+| [pitch](_display.md#pitch) | 一行数据所占字节数 | 
+| [pixFormat](_display.md#pixformat-22) | 图层像素格式 | 
+| [data](_display.md#data) | 图层buffer数据 | 
+| [hdl](_display.md#hdl) | 图层buffer句柄 | 
+
+
+## **详细描述**
+
+图层Buffer,用于存放图层数据。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_layer_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_layer_funcs.md
new file mode 100644
index 0000000000000000000000000000000000000000..6868d6a8388fc43ef53e245a960504741a1ebf6c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_layer_funcs.md
@@ -0,0 +1,1267 @@
+# LayerFuncs
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[InitDisplay](#initdisplay)&nbsp;)(uint32_t&nbsp;devId) | 初始化显示设备。&nbsp;[更多...](#initdisplay) | 
+| (&nbsp;[DeinitDisplay](#deinitdisplay)&nbsp;)(uint32_t&nbsp;devId) | 取消初始化显示设备。&nbsp;[更多...](#deinitdisplay) | 
+| (&nbsp;[GetDisplayInfo](#getdisplayinfo)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[DisplayInfo](_display_info.md)&nbsp;\*dispInfo) | 获取显示设备相关信息。&nbsp;[更多...](#getdisplayinfo) | 
+| (&nbsp;[CreateLayer](#createlayer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;const&nbsp;[LayerInfo](_layer_info.md)&nbsp;\*layerInfo,&nbsp;uint32_t&nbsp;\*layerId) | 打开图层。&nbsp;[更多...](#createlayer) | 
+| (&nbsp;[CloseLayer](#closelayer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId) | 关闭图层。&nbsp;[更多...](#closelayer) | 
+| (&nbsp;[SetLayerVisible](#setlayervisible)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;visible) | 设置图层是否可见。&nbsp;[更多...](#setlayervisible) | 
+| (&nbsp;[GetLayerVisibleState](#getlayervisiblestate)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;\*visible) | 获取图层是否可见状态。&nbsp;[更多...](#getlayervisiblestate) | 
+| (&nbsp;[SetLayerSize](#setlayersize)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置图层大小。&nbsp;[更多...](#setlayersize) | 
+| (&nbsp;[GetLayerSize](#getlayersize)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 获取图层大小。&nbsp;[更多...](#getlayersize) | 
+| (&nbsp;[SetLayerCrop](#setlayercrop)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置图层裁剪区域。&nbsp;[更多...](#setlayercrop) | 
+| (&nbsp;[SetLayerZorder](#setlayerzorder)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;zorder) | 设置图层Z轴次序。&nbsp;[更多...](#setlayerzorder) | 
+| (&nbsp;[GetLayerZorder](#getlayerzorder)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;\*zorder) | 获取图层Z轴次序。&nbsp;[更多...](#getlayerzorder) | 
+| (&nbsp;[SetLayerPreMulti](#setlayerpremulti)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;preMul) | 设置图层预乘。&nbsp;[更多...](#setlayerpremulti) | 
+| (&nbsp;[GetLayerPreMulti](#getlayerpremulti)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;\*preMul) | 获取图层预乘标识。&nbsp;[更多...](#getlayerpremulti) | 
+| (&nbsp;[SetLayerAlpha](#setlayeralpha)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[LayerAlpha](_layer_alpha.md)&nbsp;\*alpha) | 设置图层alpha值。&nbsp;[更多...](#setlayeralpha) | 
+| (&nbsp;[GetLayerAlpha](#getlayeralpha)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[LayerAlpha](_layer_alpha.md)&nbsp;\*alpha) | 获取图层alpha值。&nbsp;[更多...](#getlayeralpha) | 
+| (&nbsp;[SetLayerColorKey](#setlayercolorkey)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;enable,&nbsp;uint32_t&nbsp;key) | 设置图层colorkey属性,在图层叠加时使用。&nbsp;[更多...](#setlayercolorkey) | 
+| (&nbsp;[GetLayerColorKey](#getlayercolorkey)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;bool&nbsp;\*enable,&nbsp;uint32_t&nbsp;\*key) | 获取图层colorkey。&nbsp;[更多...](#getlayercolorkey) | 
+| (&nbsp;[SetLayerPalette](#setlayerpalette)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;\*palette,&nbsp;uint32_t&nbsp;len) | 设置图层调色板。&nbsp;[更多...](#setlayerpalette) | 
+| (&nbsp;[GetLayerPalette](#getlayerpalette)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;\*palette,&nbsp;uint32_t&nbsp;len) | 获取图层调色板。&nbsp;[更多...](#getlayerpalette) | 
+| (&nbsp;[SetTransformMode](#settransformmode)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[TransformType](_display.md#transformtype)&nbsp;type) | 设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。&nbsp;[更多...](#settransformmode) | 
+| (&nbsp;[SetLayerCompression](#setlayercompression)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;int32_t&nbsp;compType) | 设置图层压缩功能&nbsp;[更多...](#setlayercompression) | 
+| (&nbsp;[GetLayerCompression](#getlayercompression)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;int32_t&nbsp;\*compType) | 获取图层压缩功能是否打开。&nbsp;[更多...](#getlayercompression) | 
+| (&nbsp;[SetLayerDirtyRegion](#setlayerdirtyregion)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[IRect](_i_rect.md)&nbsp;\*region) | 设置图层刷新区域。&nbsp;[更多...](#setlayerdirtyregion) | 
+| (&nbsp;[GetLayerBuffer](#getlayerbuffer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[LayerBuffer](_layer_buffer.md)&nbsp;\*buffer) | 获取图层的buffer。&nbsp;[更多...](#getlayerbuffer) | 
+| (&nbsp;[Flush](#flush)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[LayerBuffer](_layer_buffer.md)&nbsp;\*buffer) | 刷新图层。&nbsp;[更多...](#flush) | 
+| (&nbsp;[WaitForVBlank](#waitforvblank)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;int32_t&nbsp;timeOut) | 实现等待帧消隐期到来功能。&nbsp;[更多...](#waitforvblank) | 
+| (&nbsp;[SnapShot](#snapshot)&nbsp;)(uint32_t&nbsp;devId,&nbsp;[LayerBuffer](_layer_buffer.md)&nbsp;\*buffer) | 实现抓图功能。&nbsp;[更多...](#snapshot) | 
+| (&nbsp;[SetLayerVisibleRegion](#setlayervisibleregion)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;num,&nbsp;[IRect](_i_rect.md)&nbsp;\*rect) | 设置一个图层的可见区域&nbsp;[更多...](#setlayervisibleregion) | 
+| (&nbsp;[SetLayerBuffer](#setlayerbuffer)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;const&nbsp;BufferHandle&nbsp;\*buffer,&nbsp;int32_t&nbsp;fence) | 设置一个层的缓冲区。&nbsp;[更多...](#setlayerbuffer) | 
+| (&nbsp;[InvokeLayerCmd](#invokelayercmd)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;cmd,...) | 扩展接口&nbsp;[更多...](#invokelayercmd) | 
+| (&nbsp;[SetLayerCompositionType](#setlayercompositiontype)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[CompositionType](_display.md#compositiontype)&nbsp;type) | 设置客户端期望的组合类型&nbsp;[更多...](#setlayercompositiontype) | 
+| (&nbsp;[SetLayerBlendType](#setlayerblendtype)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[BlendType](_display.md#blendtype)&nbsp;type) | 设置混合类型&nbsp;[更多...](#setlayerblendtype) | 
+| (&nbsp;[SetLayerColorTransform](#setlayercolortransform)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;const&nbsp;float&nbsp;\*matrix) | 设置图层当前的颜色转换矩阵。&nbsp;[更多...](#setlayercolortransform) | 
+| (&nbsp;[SetLayerColorDataSpace](#setlayercolordataspace)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[ColorDataSpace](_display.md#colordataspace)&nbsp;colorSpace) | 设置图层的颜色数据空间。&nbsp;[更多...](#setlayercolordataspace) | 
+| (&nbsp;[GetLayerColorDataSpace](#getlayercolordataspace)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[ColorDataSpace](_display.md#colordataspace)&nbsp;\*colorSpace) | 获取图层当前的颜色数据空间。&nbsp;[更多...](#getlayercolordataspace) | 
+| (&nbsp;[SetLayerMetaData](#setlayermetadata)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;uint32_t&nbsp;num,&nbsp;const&nbsp;[HDRMetaData](_h_d_r_meta_data.md)&nbsp;\*metaData) | 设置图层的HDRmetaData。&nbsp;[更多...](#setlayermetadata) | 
+| (&nbsp;[SetLayerMetaDataSet](#setlayermetadataset)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[HDRMetadataKey](_display.md#hdrmetadatakey)&nbsp;key,&nbsp;uint32_t&nbsp;num,&nbsp;const&nbsp;uint8_t&nbsp;\*metaData) | 设置图层的metaData&nbsp;set。&nbsp;[更多...](#setlayermetadataset) | 
+| (&nbsp;[GetSupportedPresentTimestamp](#getsupportedpresenttimestamp)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[PresentTimestampType](_display.md#presenttimestamptype)&nbsp;\*type) | 获取图层支持的上屏时间戳类型。&nbsp;[更多...](#getsupportedpresenttimestamp) | 
+| (&nbsp;[GetHwPresentTimestamp](#gethwpresenttimestamp)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;[PresentTimestamp](_present_timestamp.md)&nbsp;\*pts) | 获取图层的上屏时间戳信息。&nbsp;[更多...](#gethwpresenttimestamp) | 
+| (&nbsp;[SetLayerTunnelHandle](#setlayertunnelhandle)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;ExtDataHandle&nbsp;\*handle) | 设置图层的tunnel句柄。&nbsp;[更多...](#setlayertunnelhandle) | 
+| (&nbsp;[GetLayerReleaseFence](#getlayerreleasefence)&nbsp;)(uint32_t&nbsp;devId,&nbsp;uint32_t&nbsp;layerId,&nbsp;int32_t&nbsp;\*fence) | 获取图层的同步栅栏。&nbsp;[更多...](#getlayerreleasefence) | 
+
+
+## **详细描述**
+
+显示图层驱动接口结构体,定义显示图层驱动接口函数指针。
+
+
+## **类成员变量说明**
+
+
+### CloseLayer
+
+  
+```
+int32_t(* LayerFuncs::CloseLayer) (uint32_t devId, uint32_t layerId)
+```
+
+**描述:**
+
+关闭图层。
+
+在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+**OpenLayer**
+
+
+### CreateLayer
+
+  
+```
+int32_t(* LayerFuncs::CreateLayer) (uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId)
+```
+
+**描述:**
+
+打开图层。
+
+GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerInfo | 输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 | 
+| layerId | 输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[CloseLayer](#closelayer)
+
+
+### DeinitDisplay
+
+  
+```
+int32_t(* LayerFuncs::DeinitDisplay) (uint32_t devId)
+```
+
+**描述:**
+
+取消初始化显示设备。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[InitDisplay](#initdisplay)
+
+
+### Flush
+
+  
+```
+int32_t(* LayerFuncs::Flush) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer)
+```
+
+**描述:**
+
+刷新图层。
+
+将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| buffer | 输出参数,待刷新的buffer。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### GetDisplayInfo
+
+  
+```
+int32_t(* LayerFuncs::GetDisplayInfo) (uint32_t devId, DisplayInfo *dispInfo)
+```
+
+**描述:**
+
+获取显示设备相关信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| dispInfo | 输出参数,显示相关信息。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### GetHwPresentTimestamp
+
+  
+```
+int32_t(* LayerFuncs::GetHwPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestamp *pts)
+```
+
+**描述:**
+
+获取图层的上屏时间戳信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| pts | 输出参数,保存图层的上屏时间戳信息,&nbsp;由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### GetLayerAlpha
+
+  
+```
+int32_t(* LayerFuncs::GetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha)
+```
+
+**描述:**
+
+获取图层alpha值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| alpha | 输出参数,保存获取的图层alpha值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerAlpha](#setlayeralpha)
+
+
+### GetLayerBuffer
+
+  
+```
+int32_t(* LayerFuncs::GetLayerBuffer) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer)
+```
+
+**描述:**
+
+获取图层的buffer。
+
+向buffer中绘图后,调用Flush接口显示到屏幕上。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| buffer | 输出参数,保存获取的图层buffer。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[Flush](#flush)
+
+
+### GetLayerColorDataSpace
+
+  
+```
+int32_t(* LayerFuncs::GetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace)
+```
+
+**描述:**
+
+获取图层当前的颜色数据空间。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| colorSpace | 输出参数,保存对应图层的颜色数据空间。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### GetLayerColorKey
+
+  
+```
+int32_t(* LayerFuncs::GetLayerColorKey) (uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key)
+```
+
+**描述:**
+
+获取图层colorkey。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| enable | 输出参数,保存获取的enable色键使能标识。 | 
+| key | 输出参数,保存获取的色键值,即颜色值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerColorKey](#setlayercolorkey)
+
+
+### GetLayerCompression
+
+  
+```
+int32_t(* LayerFuncs::GetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t *compType)
+```
+
+**描述:**
+
+获取图层压缩功能是否打开。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| compType | 输出参数,保存获取的图层压缩功能状态。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerCompression](#setlayercompression)
+
+
+### GetLayerPalette
+
+  
+```
+int32_t(* LayerFuncs::GetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)
+```
+
+**描述:**
+
+获取图层调色板。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| palette | 输出参数,保存获取的图层调色板。 | 
+| len | 输入参数,调色板长度。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerPalette](#setlayerpalette)
+
+
+### GetLayerPreMulti
+
+  
+```
+int32_t(* LayerFuncs::GetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool *preMul)
+```
+
+**描述:**
+
+获取图层预乘标识。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| preMul | 输出参数,保存获取的图层预乘使能标识。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerPreMulti](#setlayerpremulti)
+
+
+### GetLayerReleaseFence
+
+  
+```
+int32_t(* LayerFuncs::GetLayerReleaseFence) (uint32_t devId, uint32_t layerId, int32_t *fence)
+```
+
+**描述:**
+
+获取图层的同步栅栏。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| fence | 输出参数,保存图层的&nbsp;release&nbsp;fence,&nbsp;由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### GetLayerSize
+
+  
+```
+int32_t(* LayerFuncs::GetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect)
+```
+
+**描述:**
+
+获取图层大小。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| rect | 输出参数,保存获取的图层大小。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerSize](#setlayersize)
+
+
+### GetLayerVisibleState
+
+  
+```
+int32_t(* LayerFuncs::GetLayerVisibleState) (uint32_t devId, uint32_t layerId, bool *visible)
+```
+
+**描述:**
+
+获取图层是否可见状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| visible | 输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerVisible](#setlayervisible)
+
+
+### GetLayerZorder
+
+  
+```
+int32_t(* LayerFuncs::GetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t *zorder)
+```
+
+**描述:**
+
+获取图层Z轴次序。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| zorder | 输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0,&nbsp;255],值越大图层越往上排列。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[SetLayerZorder](#setlayerzorder)
+
+
+### GetSupportedPresentTimestamp
+
+  
+```
+int32_t(* LayerFuncs::GetSupportedPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestampType *type)
+```
+
+**描述:**
+
+获取图层支持的上屏时间戳类型。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| type | 输出参数,保存图层支持的上屏时间戳类型,&nbsp;由接口实现层进行写入。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### InitDisplay
+
+  
+```
+int32_t(* LayerFuncs::InitDisplay) (uint32_t devId)
+```
+
+**描述:**
+
+初始化显示设备。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[DeinitDisplay](#deinitdisplay)
+
+
+### InvokeLayerCmd
+
+  
+```
+int32_t(* LayerFuncs::InvokeLayerCmd) (uint32_t devId, uint32_t layerId, uint32_t cmd,...)
+```
+
+**描述:**
+
+扩展接口
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备的ID。取值范围为0&nbsp;~&nbsp;4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 
+| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 
+| cmd | 输入参数,表示扩展cmd,用于识别不同的意图。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerAlpha
+
+  
+```
+int32_t(* LayerFuncs::SetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha)
+```
+
+**描述:**
+
+设置图层alpha值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| alpha | 输入参数,待设置的图层&nbsp;alpha&nbsp;值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerAlpha](#getlayeralpha)
+
+
+### SetLayerBlendType
+
+  
+```
+int32_t(* LayerFuncs::SetLayerBlendType) (uint32_t devId, uint32_t layerId, BlendType type)
+```
+
+**描述:**
+
+设置混合类型
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备的ID。取值范围为0&nbsp;~&nbsp;4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 
+| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 
+| type | 输入参数,指示混合类型。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerBuffer
+
+  
+```
+int32_t(* LayerFuncs::SetLayerBuffer) (uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence)
+```
+
+**描述:**
+
+设置一个层的缓冲区。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备的ID。取值范围为0&nbsp;~&nbsp;4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 
+| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 
+| buffer | 输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。 | 
+| fence | 输入参数,同步文件的fd。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerColorDataSpace
+
+  
+```
+int32_t(* LayerFuncs::SetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace)
+```
+
+**描述:**
+
+设置图层的颜色数据空间。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| colorSpace | 输入参数,表示需要设置的颜色数据空间。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerColorKey
+
+  
+```
+int32_t(* LayerFuncs::SetLayerColorKey) (uint32_t devId, uint32_t layerId, bool enable, uint32_t key)
+```
+
+**描述:**
+
+设置图层colorkey属性,在图层叠加时使用。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| enable | 输入参数,待设置的色键使能标识。 | 
+| key | 输入参数,待设置的色键值,即颜色值。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerColorKey](#getlayercolorkey)
+
+
+### SetLayerColorTransform
+
+  
+```
+int32_t(* LayerFuncs::SetLayerColorTransform) (uint32_t devId, uint32_t layerId, const float *matrix)
+```
+
+**描述:**
+
+设置图层当前的颜色转换矩阵。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| matrix | 输入参数,表示需要设置的颜色转换模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerCompositionType
+
+  
+```
+int32_t(* LayerFuncs::SetLayerCompositionType) (uint32_t devId, uint32_t layerId, CompositionType type)
+```
+
+**描述:**
+
+设置客户端期望的组合类型
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备的ID。取值范围为0&nbsp;~&nbsp;4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 
+| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 
+| type | 输入参数,指示客户端期望的组合类型。它可能随实现而变化。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerCompression
+
+  
+```
+int32_t(* LayerFuncs::SetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t compType)
+```
+
+**描述:**
+
+设置图层压缩功能
+
+在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| compType | 输入参数,图层压缩使能标识。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerCompression](#getlayercompression)
+
+
+### SetLayerCrop
+
+  
+```
+int32_t(* LayerFuncs::SetLayerCrop) (uint32_t devId, uint32_t layerId, IRect *rect)
+```
+
+**描述:**
+
+设置图层裁剪区域。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| rect | 输入参数,待设置的裁剪区域。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerDirtyRegion
+
+  
+```
+int32_t(* LayerFuncs::SetLayerDirtyRegion) (uint32_t devId, uint32_t layerId, IRect *region)
+```
+
+**描述:**
+
+设置图层刷新区域。
+
+GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| region | 输入参数,待设置的刷新区域。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerMetaData
+
+  
+```
+int32_t(* LayerFuncs::SetLayerMetaData) (uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData)
+```
+
+**描述:**
+
+设置图层的HDRmetaData。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| num | 输入参数,metadata&nbsp;数组个数。 | 
+| metaData | 输入参数,表示需要设置的&nbsp;metadata&nbsp;数组首地址。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerMetaDataSet
+
+  
+```
+int32_t(* LayerFuncs::SetLayerMetaDataSet) (uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData)
+```
+
+**描述:**
+
+设置图层的metaData set。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| key | 输入参数,表示需要设置的&nbsp;HDRMetadataKey。 | 
+| num | 输入参数,metadata&nbsp;数组个数。 | 
+| metaData | 输入参数,表示需要设置的&nbsp;metadata&nbsp;数组首地址,&nbsp;数据类型为uint8_t。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerPalette
+
+  
+```
+int32_t(* LayerFuncs::SetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)
+```
+
+**描述:**
+
+设置图层调色板。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| palette | 输入参数,待设置的图层调色板。 | 
+| len | 输入参数,调色板长度。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerPalette](#getlayerpalette)
+
+
+### SetLayerPreMulti
+
+  
+```
+int32_t(* LayerFuncs::SetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool preMul)
+```
+
+**描述:**
+
+设置图层预乘。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| preMul | 输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerPreMulti](#getlayerpremulti)
+
+
+### SetLayerSize
+
+  
+```
+int32_t(* LayerFuncs::SetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect)
+```
+
+**描述:**
+
+设置图层大小。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| rect | 输入参数,待设置的图层大小,单位为像素。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerSize](#getlayersize)
+
+
+### SetLayerTunnelHandle
+
+  
+```
+int32_t(* LayerFuncs::SetLayerTunnelHandle) (uint32_t devId, uint32_t layerId, ExtDataHandle *handle)
+```
+
+**描述:**
+
+设置图层的tunnel句柄。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,指示需要操作的设备ID。 | 
+| layerId | 输入参数,指示需要操作的图层ID。 | 
+| handle | 输入参数,表示需要设置的句柄。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerVisible
+
+  
+```
+int32_t(* LayerFuncs::SetLayerVisible) (uint32_t devId, uint32_t layerId, bool visible)
+```
+
+**描述:**
+
+设置图层是否可见。
+
+不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| visible | 输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerVisibleState](#getlayervisiblestate)
+
+
+### SetLayerVisibleRegion
+
+  
+```
+int32_t(* LayerFuncs::SetLayerVisibleRegion) (uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect)
+```
+
+**描述:**
+
+设置一个图层的可见区域
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备的ID。取值范围为0&nbsp;~&nbsp;4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 
+| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 
+| num | 输入参数,指定rect的计数,该区域包含多个&nbsp;[IRect](_i_rect.md),num表示该区域中有多少个rect区域。 | 
+| rect | 输出参数,rectes对象的指针。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SetLayerZorder
+
+  
+```
+int32_t(* LayerFuncs::SetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t zorder)
+```
+
+**描述:**
+
+设置图层Z轴次序。
+
+图层的Z序值越大,图层越靠上显示。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| zorder | 输入参数,待设置的图层Z序,为整数值,取值范围为[0,&nbsp;255],值越大图层越往上排列。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+**参见:**
+
+[GetLayerZorder](#getlayerzorder)
+
+
+### SetTransformMode
+
+  
+```
+int32_t(* LayerFuncs::SetTransformMode) (uint32_t devId, uint32_t layerId, TransformType type)
+```
+
+**描述:**
+
+设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| type | 输入参数,待设置的图层变换模式。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### SnapShot
+
+  
+```
+int32_t(* LayerFuncs::SnapShot) (uint32_t devId, LayerBuffer *buffer)
+```
+
+**描述:**
+
+实现抓图功能。
+
+本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。
+
+otherwise.
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| buffer | 输出参数,保存截屏的buffer信息。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
+
+
+### WaitForVBlank
+
+  
+```
+int32_t(* LayerFuncs::WaitForVBlank) (uint32_t devId, uint32_t layerId, int32_t timeOut)
+```
+
+**描述:**
+
+实现等待帧消隐期到来功能。
+
+该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 
+| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 
+| timeOut | 输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。 | 
+
+**返回:**
+
+DISPLAY_SUCCESS 表示执行成功。
+
+其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_layer_info.md b/zh-cn/device-dev/reference/hdi-apis/_layer_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..dec0da93d00b2149b713cc2369472137edc4cb8f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_layer_info.md
@@ -0,0 +1,29 @@
+# LayerInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](_display.md#width-27) | 图层宽度 | 
+| [height](_display.md#height-27) | 图层高度 | 
+| [type](_display.md#type-13) | 图层类型,包括图形层、视频层和媒体播放模式。 | 
+| [bpp](_display.md#bpp) | 每像素所占bit数 | 
+| [pixFormat](_display.md#pixformat-12) | 图层像素格式 | 
+
+
+## **详细描述**
+
+定义图层信息结构体。
+
+在创建图层时,需要将LayerInfo传递给创建图层接口,创建图层接口根据图层信息创建相应图层。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_light.md b/zh-cn/device-dev/reference/hdi-apis/_light.md
new file mode 100644
index 0000000000000000000000000000000000000000..62e49861d2aaad72185e10e690f2b52c59a93309
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_light.md
@@ -0,0 +1,159 @@
+# Light
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [light_if.h](light__if_8h.md) | 声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 | 
+| [light_type.h](light_8typeh.md) | 定义灯的数据结构,包括灯ID、灯的模式、灯的闪烁模式和持续时间、灯的状态、灯的效果。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [LightFlashEffect](_light_flash_effect.md) | 定义闪烁参数。&nbsp;[更多...](_light_flash_effect.md) | 
+| [LightEffect](_light_effect.md) | 定义灯的效果参数。&nbsp;[更多...](_light_effect.md) | 
+| [LightInfo](_light_info.md) | 定义灯的基本信息。&nbsp;[更多...](_light_info.md) | 
+| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。&nbsp;[更多...](_light_interface.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [LightStatus](#lightstatus)&nbsp;{&nbsp;LIGHT_SUCCESS&nbsp;=&nbsp;0,&nbsp;LIGHT_NOT_SUPPORT&nbsp;=&nbsp;-1,&nbsp;LIGHT_NOT_FLASH&nbsp;=&nbsp;-2,&nbsp;LIGHT_NOT_BRIGHTNESS&nbsp;=&nbsp;-3&nbsp;} | 枚举灯模块的状态值。&nbsp;[更多...](#lightstatus) | 
+| [LightId](#lightid)&nbsp;{&nbsp;LIGHT_ID_NONE&nbsp;=&nbsp;0,&nbsp;LIGHT_ID_BATTERY&nbsp;=&nbsp;1,&nbsp;LIGHT_ID_NOTIFICATIONS&nbsp;=&nbsp;2,&nbsp;LIGHT_ID_ATTENTION&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;LIGHT_ID_BUTT&nbsp;=&nbsp;4&nbsp;} | 枚举灯类型&nbsp;[更多...](#lightid) | 
+| [LightFlashMode](#lightflashmode)&nbsp;{&nbsp;LIGHT_FLASH_NONE&nbsp;=&nbsp;0,&nbsp;LIGHT_FLASH_TIMED&nbsp;=&nbsp;1,&nbsp;LIGHT_FLASH_BUTT&nbsp;=&nbsp;2&nbsp;} | 枚举灯的模式&nbsp;[更多...](#lightflashmode) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [NewLightInterfaceInstance](#newlightinterfaceinstance)&nbsp;(void) | 创建LightInterface实例。&nbsp;[更多...](#newlightinterfaceinstance) | 
+| [FreeLightInterfaceInstance](#freelightinterfaceinstance)&nbsp;(void) | 释放LightInterface实例和相关资源。&nbsp;[更多...](#freelightinterfaceinstance) | 
+
+
+## **详细描述**
+
+灯模块对灯服务提供通用的接口能力。
+
+灯模块为灯服务提供通用的接口去访问灯驱动。 服务获取灯驱动对象或代理后,可以调用相关的APIs接口获取灯信息、打开或关闭灯,并根据灯ID设置灯闪烁模式。
+
+**Since:**
+
+3.1
+
+
+## **枚举类型说明**
+
+
+### LightFlashMode
+
+  
+```
+enum LightFlashMode
+```
+
+**描述:**
+
+枚举灯的模式
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| LIGHT_FLASH_NONE | 常亮。 | 
+| LIGHT_FLASH_TIMED | 闪烁。 | 
+| LIGHT_FLASH_BUTT | 无效模式。 | 
+
+
+### LightId
+
+  
+```
+enum LightId
+```
+
+**描述:**
+
+枚举灯类型
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| LIGHT_ID_NONE | 未知ID。 | 
+| LIGHT_ID_BATTERY | 电源指示灯。 | 
+| LIGHT_ID_NOTIFICATIONS | 通知灯。 | 
+| LIGHT_ID_ATTENTION | 报警灯。 | 
+| LIGHT_ID_BUTT | 无效ID。 | 
+
+
+### LightStatus
+
+  
+```
+enum LightStatus
+```
+
+**描述:**
+
+枚举灯模块的状态值。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| LIGHT_SUCCESS | 操作成功。 | 
+| LIGHT_NOT_SUPPORT | 灯ID不支持。 | 
+| LIGHT_NOT_FLASH | 设置闪烁不支持。 | 
+| LIGHT_NOT_BRIGHTNESS | 设置亮度不支持。 | 
+
+
+## **函数说明**
+
+
+### FreeLightInterfaceInstance()
+
+  
+```
+int32_t FreeLightInterfaceInstance (void )
+```
+
+**描述:**
+
+释放LightInterface实例和相关资源。
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+3.1
+
+
+### NewLightInterfaceInstance()
+
+  
+```
+const struct LightInterface* NewLightInterfaceInstance (void )
+```
+
+**描述:**
+
+创建LightInterface实例。
+
+创建的LightInterface实例可用于执行相关的灯控制操作。
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+3.1
diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_effect.md b/zh-cn/device-dev/reference/hdi-apis/_light_effect.md
new file mode 100644
index 0000000000000000000000000000000000000000..63a331afec767e0ed728758026263075c7cbed70
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_light_effect.md
@@ -0,0 +1,57 @@
+# LightEffect
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+| Public&nbsp;属性 | 描述 |
+| -------- | -------- |
+| [lightBrightness](#lightbrightness) | 亮度值。 |
+| [flashEffect](#flasheffect) | 闪烁模式。 |
+
+
+## **详细描述**
+
+定义灯的效果参数。
+
+参数包括亮度和闪烁模式。
+
+**Since:**
+
+3.1
+
+
+## **类成员变量说明**
+
+
+### flashEffect
+
+
+```
+struct LightFlashEffect LightEffect::flashEffect
+```
+
+**描述:**
+
+闪烁模式。详见[LightFlashEffect](_light_flash_effect.md)。
+
+
+### lightBrightness
+
+
+```
+int32_t LightEffect::lightBrightness
+```
+
+**描述:**
+
+亮度值:Bits 24–31为扩展位,Bits 16–23为红色,Bits 8–15为绿色,Bits 0–7为蓝色。 如果相对应的字节段不等于0,表示打开相应颜色的灯。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_flash_effect.md b/zh-cn/device-dev/reference/hdi-apis/_light_flash_effect.md
new file mode 100644
index 0000000000000000000000000000000000000000..9a8a9123a99ee397b85ff88fc9158af0a16d446e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_light_flash_effect.md
@@ -0,0 +1,70 @@
+# LightFlashEffect
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [flashMode](#flashmode) | 闪烁模式。 | 
+| [onTime](#ontime) | 表示灯在闪烁期间点亮时持续的时间(毫秒)。 | 
+| [offTime](#offtime) | 表示灯在闪烁期间熄灭时持续的时间(毫秒)。 | 
+
+
+## **详细描述**
+
+定义闪烁参数。
+
+这些参数包括闪烁模式以及闪烁期间指示灯的打开和关闭时间。
+
+**Since:**
+
+3.1
+
+
+## **类成员变量说明**
+
+
+### flashMode
+
+  
+```
+int32_t LightFlashEffect::flashMode
+```
+
+**描述:**
+
+闪烁模式,详见[LightFlashMode](_light.md#lightflashmode)。
+
+
+### offTime
+
+  
+```
+int32_t LightFlashEffect::offTime
+```
+
+**描述:**
+
+表示灯在闪烁期间熄灭时持续的时间(毫秒)。
+
+
+### onTime
+
+  
+```
+int32_t LightFlashEffect::onTime
+```
+
+**描述:**
+
+表示灯在闪烁期间点亮时持续的时间(毫秒)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_info.md b/zh-cn/device-dev/reference/hdi-apis/_light_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..20d8387e71e256aaefa055c21bd9b66d208379d2
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_light_info.md
@@ -0,0 +1,57 @@
+# LightInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [lightId](#lightid) | 灯ID | 
+| [reserved](#reserved) | 自定义扩展信息 | 
+
+
+## **详细描述**
+
+定义灯的基本信息。
+
+基本的灯信息包括灯ID和自定义扩展信息。
+
+**Since:**
+
+3.1
+
+
+## **类成员变量说明**
+
+
+### lightId
+
+  
+```
+uint32_t LightInfo::lightId
+```
+
+**描述:**
+
+灯ID,详见[LightId](_light.md#lightid)。
+
+
+### reserved
+
+  
+```
+int32_t LightInfo::reserved
+```
+
+**描述:**
+
+自定义扩展信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_interface.md b/zh-cn/device-dev/reference/hdi-apis/_light_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..9621d96fb11e3d7a3df73214c9aa2d5a45f0b252
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_light_interface.md
@@ -0,0 +1,109 @@
+# LightInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+| Public&nbsp;属性 | 描述 |
+| -------- | -------- |
+| (&nbsp;[GetLightInfo](#getlightinfo)&nbsp;)([out]&nbsp;struct&nbsp;[LightInfo](_light_info.md)&nbsp;\*\*lightInfo,&nbsp;[out]&nbsp;uint32_t&nbsp;\*count) | 获取当前系统中所有类型的灯信息。&nbsp;[更多...](#getlightinfo) |
+| (&nbsp;[TurnOnLight](#turnonlight)&nbsp;)([in]&nbsp;uint32_t&nbsp;lightId,&nbsp;[in]&nbsp;struct&nbsp;[LightEffect](_light_effect.md)&nbsp;\*effect) | 根据指定的灯ID打开列表中的可用灯。&nbsp;[更多...](#turnonlight) |
+| (&nbsp;[TurnOffLight](#turnofflight)&nbsp;)([in]&nbsp;uint32_t&nbsp;lightId) | 根据指定的灯ID关闭列表中的可用灯。&nbsp;[更多...](#turnofflight) |
+
+
+## **详细描述**
+
+定义可以在灯上执行的基本操作。
+
+操作包括获取灯的信息、打开或关闭灯、设置灯的亮度和闪烁模式。
+
+
+## **类成员变量说明**
+
+
+### GetLightInfo
+
+
+```
+int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out] uint32_t *count)
+```
+
+**描述:**
+
+获取当前系统中所有类型的灯信息。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| lightInfo | 表示指向灯信息的二级指针,详见[LightInfo](_light_info.md)。 |
+| count | 表示指向灯数量的指针。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### TurnOffLight
+
+
+```
+int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId)
+```
+
+**描述:**
+
+根据指定的灯ID关闭列表中的可用灯。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### TurnOnLight
+
+
+```
+int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightEffect *effect)
+```
+
+**描述:**
+
+根据指定的灯ID打开列表中的可用灯。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 |
+| effect | 表示指向灯效果的指针,如果lightbrightness字段为0时,&nbsp;灯的亮度根据HCS配置的默认亮度进行设置,详见[LightEffect](_light_effect.md)。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果不支持灯ID,则返回-1。
+
+如果不支持闪烁设置,则返回-2。
+
+如果不支持亮度设置,则返回-3。
+
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..73ab78e3a96dd2462352ba188d74bb550375939d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md
@@ -0,0 +1,24 @@
+# OHOS::Camera::CaptureEndedInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [streamId_](_camera.md#streamid-34) | 捕获的流ID。 | 
+| [frameCount_](_camera.md#framecount) | 捕获结束时已经抓取的帧数。 | 
+
+
+## **详细描述**
+
+捕获结束相关信息,用于捕获结束回调[OnCaptureEnded](_camera.md#oncaptureended)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..fed70cf0c2f5339c6d17280d30ba324167a08120
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md
@@ -0,0 +1,24 @@
+# OHOS::Camera::CaptureErrorInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [streamId_](_camera.md#streamid-44) | 流ID。 | 
+| [error_](_camera.md#error) | 错误类型。 | 
+
+
+## **详细描述**
+
+流错误信息,用于回调[OnCaptureError](_camera.md#oncaptureerror)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..ed436019406bf6e0646d37c6a78cc3996d993b0e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md
@@ -0,0 +1,25 @@
+# OHOS::Camera::CaptureInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [streamIds_](_camera.md#streamids) | 捕获的流ID集合。 | 
+| [captureSetting_](_camera.md#capturesetting) | 捕获的配置信息。 | 
+| [enableShutterCallback_](_camera.md#enableshuttercallback) | 使能捕获回调,每一次捕获后都会触发&nbsp;[OnFrameShutter](_camera.md#onframeshutter)。 | 
+
+
+## **详细描述**
+
+捕获请求的相关信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md
new file mode 100644
index 0000000000000000000000000000000000000000..7000a726a8d5d1456daafc9e9baff100c162208b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md
@@ -0,0 +1,30 @@
+# OHOS::Camera::ICameraDevice
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.Device") | IPC通信token校验。 | 
+| [GetStreamOperator](_camera.md#getstreamoperator)&nbsp;(const&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)&nbsp;&gt;&nbsp;&amp;streamOperator)=0 | 获取流操作句柄。&nbsp;[更多...](_camera.md#getstreamoperator) | 
+| [UpdateSettings](_camera.md#updatesettings)&nbsp;(const&nbsp;std::shared_ptr&lt;&nbsp;CameraSetting&nbsp;&gt;&nbsp;&amp;settings)=0 | 更新设备控制参数。&nbsp;[更多...](_camera.md#updatesettings) | 
+| [SetResultMode](_camera.md#setresultmode)&nbsp;(const&nbsp;[ResultCallbackMode](_camera.md#resultcallbackmode)&nbsp;&amp;mode)=0 | 设置metadata上报模式,逐帧上报还是设备状态变化时上报。&nbsp;[更多...](_camera.md#setresultmode) | 
+| [GetEnabledResults](_camera.md#getenabledresults)&nbsp;(std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 查询使能的metadata。&nbsp;[更多...](_camera.md#getenabledresults) | 
+| [EnableResult](_camera.md#enableresult)&nbsp;(const&nbsp;std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 打开metadata上报开关。&nbsp;[更多...](_camera.md#enableresult) | 
+| [DisableResult](_camera.md#disableresult)&nbsp;(const&nbsp;std::vector&lt;&nbsp;MetaType&nbsp;&gt;&nbsp;&amp;results)=0 | 关闭metadata上报开关。&nbsp;[更多...](_camera.md#disableresult) | 
+| [Close](_camera.md#close)&nbsp;()=0 | 关闭Camera设备。&nbsp;[更多...](_camera.md#close) | 
+
+
+## **详细描述**
+
+Camera设备操作。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a7f16ecc6932bca6fc726e496004236aa3f81ad
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md
@@ -0,0 +1,25 @@
+# OHOS::Camera::ICameraDeviceCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.DeviceCallback") | IPC通信token校验。 | 
+| [OnError](_camera.md#onerror)&nbsp;([ErrorType](_camera.md#errortype)&nbsp;type,&nbsp;int32_t&nbsp;errorCode)=0 | 设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。&nbsp;[更多...](_camera.md#onerror) | 
+| [OnResult](_camera.md#onresult)&nbsp;(uint64_t&nbsp;timestamp,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;result)=0 | 上报camera设备相关的metadata的回调,上报方式查看&nbsp;[SetResultMode](_camera.md#setresultmode)。&nbsp;[更多...](_camera.md#onresult) | 
+
+
+## **详细描述**
+
+Camera设备操作回调。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md
new file mode 100644
index 0000000000000000000000000000000000000000..a77249e55bb64230e8eb8c1d48e59c9623013a3e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md
@@ -0,0 +1,35 @@
+# OHOS::Camera::ICameraHost
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.Host") | IPC通信token校验。 | 
+| [SetCallback](_camera.md#setcallback)&nbsp;(const&nbsp;OHOS::sptr&lt;&nbsp;[ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)&nbsp;&gt;&nbsp;&amp;callback)=0 | 设置ICameraHost回调接口,回调函数参考&nbsp;[ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。&nbsp;[更多...](_camera.md#setcallback) | 
+| [GetCameraIds](_camera.md#getcameraids)&nbsp;(std::vector&lt;&nbsp;std::string&nbsp;&gt;&nbsp;&amp;cameraIds)=0 | 获取当前可用的Camera设备ID列表。&nbsp;[更多...](_camera.md#getcameraids) | 
+| [GetCameraAbility](_camera.md#getcameraability)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;std::shared_ptr&lt;&nbsp;CameraAbility&nbsp;&gt;&nbsp;&amp;ability)=0 | 获取Camera设备能力集合。&nbsp;[更多...](_camera.md#getcameraability) | 
+| [OpenCamera](_camera.md#opencamera)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;const&nbsp;OHOS::sptr&lt;&nbsp;[ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)&nbsp;&gt;&nbsp;&amp;device)=0 | 打开Camera设备。&nbsp;[更多...](_camera.md#opencamera) | 
+| [SetFlashlight](_camera.md#setflashlight)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;bool&nbsp;&amp;isEnable)=0 | 打开或关闭闪光灯。&nbsp;[更多...](_camera.md#setflashlight) | 
+
+
+### 静态 Public 成员函数
+
+  | 静态&nbsp;Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [Get](_camera.md#get)&nbsp;(const&nbsp;char&nbsp;\*serviceName) | 获取ICameraHost实例。&nbsp;[更多...](_camera.md#get) | 
+
+
+## **详细描述**
+
+Camera服务的管理类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..7a0885b50d8f9647c9fd0dc82e9684dd2acdf255
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md
@@ -0,0 +1,26 @@
+# OHOS::Camera::ICameraHostCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.HostCallback") | IPC通信token校验。 | 
+| [OnCameraStatus](_camera.md#oncamerastatus)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[CameraStatus](_camera.md#camerastatus)&nbsp;status)=0 | 用于Camera设备状态变化时上报状态信息给调用者。&nbsp;[更多...](_camera.md#oncamerastatus) | 
+| [OnFlashlightStatus](_camera.md#onflashlightstatus)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[FlashlightStatus](_camera.md#flashlightstatus)&nbsp;status)=0 | 用于在闪光灯状态变化时上报状态信息给调用者。&nbsp;[更多...](_camera.md#onflashlightstatus) | 
+| [OnCameraEvent](_camera.md#oncameraevent)&nbsp;(const&nbsp;std::string&nbsp;&amp;cameraId,&nbsp;[CameraEvent](_camera.md#cameraevent)&nbsp;event)=0 | 在相机事件发生时调用。&nbsp;[更多...](_camera.md#oncameraevent) | 
+
+
+## **详细描述**
+
+Camera服务的管理回调。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md
new file mode 100644
index 0000000000000000000000000000000000000000..f8793d89a49086de20c50ba6beb49a85107eaba9
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md
@@ -0,0 +1,26 @@
+# OHOS::Camera::IOfflineStreamOperator
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.OfflineStreamOperator") | IPC通信token校验。 | 
+| [CancelCapture](_camera.md#cancelcapture-12)&nbsp;(int&nbsp;captureId)=0 | 取消捕获请求。&nbsp;[更多...](_camera.md#cancelcapture-12) | 
+| [ReleaseStreams](_camera.md#releasestreams-12)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 释放离线流。&nbsp;[更多...](_camera.md#releasestreams-12) | 
+| [Release](_camera.md#release)&nbsp;()=0 | 释放所有离线流。&nbsp;[更多...](_camera.md#release) | 
+
+
+## **详细描述**
+
+离线流的操作类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md
new file mode 100644
index 0000000000000000000000000000000000000000..b38ca7889204518e9f9321b212375022a92b2acd
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md
@@ -0,0 +1,33 @@
+# OHOS::Camera::IStreamOperator
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.StreamOperator") | IPC通信token校验。 | 
+| [IsStreamsSupported](_camera.md#isstreamssupported)&nbsp;([OperationMode](_camera.md#operationmode)&nbsp;mode,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;modeSetting,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)&nbsp;&gt;&gt;&nbsp;&amp;info,&nbsp;[StreamSupportType](_camera.md#streamsupporttype)&nbsp;&amp;type)=0 | 查询是否支持添加参数对应的流&nbsp;[更多...](_camera.md#isstreamssupported) | 
+| [CreateStreams](_camera.md#createstreams)&nbsp;(const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)&nbsp;&gt;&gt;&nbsp;&amp;streamInfos)=0 | 创建流。&nbsp;[更多...](_camera.md#createstreams) | 
+| [ReleaseStreams](_camera.md#releasestreams-22)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 释放流。&nbsp;[更多...](_camera.md#releasestreams-22) | 
+| [CommitStreams](_camera.md#commitstreams)&nbsp;([OperationMode](_camera.md#operationmode)&nbsp;mode,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;CameraMetadata&nbsp;&gt;&nbsp;&amp;modeSetting)=0 | 配置流。&nbsp;[更多...](_camera.md#commitstreams) | 
+| [GetStreamAttributes](_camera.md#getstreamattributes)&nbsp;(std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)&nbsp;&gt;&gt;&nbsp;&amp;attributes)=0 | 获取流的属性。&nbsp;[更多...](_camera.md#getstreamattributes) | 
+| [AttachBufferQueue](_camera.md#attachbufferqueue)&nbsp;(int&nbsp;streamId,&nbsp;const&nbsp;OHOS::sptr&lt;&nbsp;OHOS::IBufferProducer&nbsp;&gt;&nbsp;&amp;producer)=0 | 绑定生产者句柄和指定流。&nbsp;[更多...](_camera.md#attachbufferqueue) | 
+| [DetachBufferQueue](_camera.md#detachbufferqueue)&nbsp;(int&nbsp;streamId)=0 | 解除生产者句柄和指定流的绑定关系。&nbsp;[更多...](_camera.md#detachbufferqueue) | 
+| [Capture](_camera.md#capture)&nbsp;(int&nbsp;captureId,&nbsp;const&nbsp;std::shared_ptr&lt;&nbsp;[CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)&nbsp;&gt;&nbsp;&amp;info,&nbsp;bool&nbsp;isStreaming)=0 | 捕获图像。&nbsp;[更多...](_camera.md#capture) | 
+| [CancelCapture](_camera.md#cancelcapture-22)&nbsp;(int&nbsp;captureId)=0 | 取消捕获。&nbsp;[更多...](_camera.md#cancelcapture-22) | 
+| [ChangeToOfflineStream](_camera.md#changetoofflinestream)&nbsp;(const&nbsp;std::vector&lt;&nbsp;int&nbsp;&gt;&nbsp;&amp;streamIds,&nbsp;OHOS::sptr&lt;&nbsp;[IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)&nbsp;&gt;&nbsp;&amp;callback,&nbsp;OHOS::sptr&lt;&nbsp;[IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)&nbsp;&gt;&nbsp;&amp;offlineOperator)=0 | 将指定流转换成离线流。&nbsp;[更多...](_camera.md#changetoofflinestream) | 
+
+
+## **详细描述**
+
+流的操作类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..4935fd6e235e1850ee9309db17f28910e75f5996
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md
@@ -0,0 +1,27 @@
+# OHOS::Camera::IStreamOperatorCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| **DECLARE_INTERFACE_DESCRIPTOR**&nbsp;(u"HDI.Camera.V1_0.StreamOperatorCallback") | IPC通信token校验。 | 
+| [OnCaptureStarted](_camera.md#oncapturestarted)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;int32_t&nbsp;&gt;&nbsp;&amp;streamIds)=0 | 捕获开始回调,在捕获开始时调用。&nbsp;[更多...](_camera.md#oncapturestarted) | 
+| [OnCaptureEnded](_camera.md#oncaptureended)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)&nbsp;&gt;&gt;&nbsp;&amp;infos)=0 | 捕获结束回调,在捕获结束时调用。&nbsp;[更多...](_camera.md#oncaptureended) | 
+| [OnCaptureError](_camera.md#oncaptureerror)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;std::shared_ptr&lt;&nbsp;[CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)&nbsp;&gt;&gt;&nbsp;&amp;infos)=0 | 捕获错误回调,在捕获过程中发生错误时调用。&nbsp;[更多...](_camera.md#oncaptureerror) | 
+| [OnFrameShutter](_camera.md#onframeshutter)&nbsp;(int32_t&nbsp;captureId,&nbsp;const&nbsp;std::vector&lt;&nbsp;int32_t&nbsp;&gt;&nbsp;&amp;streamIds,&nbsp;uint64_t&nbsp;timestamp)=0 | 帧捕获回调。&nbsp;[更多...](_camera.md#onframeshutter) | 
+
+
+## **详细描述**
+
+流的操作回调类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md
new file mode 100644
index 0000000000000000000000000000000000000000..568e09e49daf3d929d6862a117be57fad26048eb
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md
@@ -0,0 +1,31 @@
+# OHOS::Camera::StreamAttribute
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [streamId_](_camera.md#streamid-24) | 流的ID,用于在设备内唯一标识一条流。 | 
+| [width_](_camera.md#width-22) | 图像宽度。 | 
+| [height_](_camera.md#height-22) | 图像高度。 | 
+| [overrideFormat_](_camera.md#overrideformat) | 重写的图像格式。 | 
+| [overrideDatasapce_](_camera.md#overridedataspace) | 重写的图像颜色空间 | 
+| [producerUsage_](_camera.md#producerusage) | 重写后的生产者的使用方式。 | 
+| [producerBufferCount_](_camera.md#producerbuffercount) | 重写后的生产者缓存数量。 | 
+| [maxBatchCaptureCount_](_camera.md#maxbatchcapturecount) | 连拍支持的最大捕获帧数量。 | 
+| [maxCaptureCount_](_camera.md#maxcapturecount) | 最大的并发捕获请求个数,默认为1。 | 
+
+
+## **详细描述**
+
+流的属性。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..f258c8e39376ad1284bfaff72cbd2b4a8273b4d5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md
@@ -0,0 +1,32 @@
+# OHOS::Camera::StreamInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [streamId_](_camera.md#streamid-14) | 流的ID,用于在设备内唯一标识一条流。 | 
+| [width_](_camera.md#width-12) | 图像宽度。 | 
+| [height_](_camera.md#height-12) | 图像高度。 | 
+| [format_](_camera.md#format) | 图像格式。 | 
+| [datasapce_](_camera.md#dataspace) | 图像颜色空间。 | 
+| [intent_](_camera.md#intent) | 流类型。 | 
+| [tunneledMode_](_camera.md#tunneledmode) | 隧道模式,值为true时开启,false关闭。 | 
+| [bufferQueue_](_camera.md#bufferqueue) | 图形提供的生产者句柄。 | 
+| [minFrameDuration_](_camera.md#minframeduration) | 最小帧间隔。 | 
+| [encodeType_](_camera.md#encodetype) | 编码类型。 | 
+
+
+## **详细描述**
+
+流信息,用于创建流时传入相关的配置参数。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..0ae62b90c880862107a3d949d7b659b322ca278e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md
@@ -0,0 +1,25 @@
+# OHOS::USB::USBDeviceInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [status](_u_s_b.md#status) | USB设备状态 | 
+| [busNum](_u_s_b.md#busnum-12) | USB总线编号 | 
+| [devNum](_u_s_b.md#devnum) | USB设备编号 | 
+
+
+## **详细描述**
+
+USB设备信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md
new file mode 100644
index 0000000000000000000000000000000000000000..545ea45988ed42a69dd6b855e100795956fb4850
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md
@@ -0,0 +1,27 @@
+# OHOS::USB::UsbCtrlTransfer
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [requestType](_u_s_b.md#requesttype) | 请求类型 | 
+| [requestCmd](_u_s_b.md#requestcmd) | 请求命令字 | 
+| [value](_u_s_b.md#value) | 请求值 | 
+| [index](_u_s_b.md#index) | 索引 | 
+| [timeout](_u_s_b.md#timeout) | 超时时间 | 
+
+
+## **详细描述**
+
+USB控制传输。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md
new file mode 100644
index 0000000000000000000000000000000000000000..5df0bae75c4fc4c442c14211b38e55b2b928dba5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md
@@ -0,0 +1,24 @@
+# OHOS::USB::UsbDev
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [busNum](_u_s_b.md#busnum-22) | USB总线编号 | 
+| [devAddr](_u_s_b.md#devaddr) | USB设备地址 | 
+
+
+## **详细描述**
+
+USB设备。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..c576768593247cab80492de2de938a982745071c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md
@@ -0,0 +1,35 @@
+# OHOS::USB::UsbInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [setDevInfoStatus](_u_s_b.md#setdevinfostatus)&nbsp;(int32_t&nbsp;status) | 设置USB设备状态。&nbsp;[更多...](_u_s_b.md#setdevinfostatus) | 
+| [setDevInfoBusNum](_u_s_b.md#setdevinfobusnum)&nbsp;(int32_t&nbsp;busNum) | 设置USB总线编号。&nbsp;[更多...](_u_s_b.md#setdevinfobusnum) | 
+| [setDevInfoDevNum](_u_s_b.md#setdevinfodevnum)&nbsp;(int32_t&nbsp;devNum) | 设置USB设备编号。&nbsp;[更多...](_u_s_b.md#setdevinfodevnum) | 
+| [getDevInfoStatus](_u_s_b.md#getdevinfostatus)&nbsp;()&nbsp;const | 获取USB设备状态。&nbsp;[更多...](_u_s_b.md#getdevinfostatus) | 
+| [getDevInfoBusNum](_u_s_b.md#getdevinfobusnum)&nbsp;()&nbsp;const | 获取USB总线编号。&nbsp;[更多...](_u_s_b.md#getdevinfobusnum) | 
+| [getDevInfoDevNum](_u_s_b.md#getdevinfodevnum)&nbsp;()&nbsp;const | 获取USB设备编号。&nbsp;[更多...](_u_s_b.md#getdevinfodevnum) | 
+
+
+### Private 成员变量
+
+  | Private&nbsp;成员变量 | 描述 | 
+| -------- | -------- |
+| [USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)&nbsp;devInfo | USB设备信息。 | 
+
+
+## **详细描述**
+
+USB设备信息类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md
new file mode 100644
index 0000000000000000000000000000000000000000..e58adfe5cdf7a56550c81967622d862343ac384f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md
@@ -0,0 +1,24 @@
+# OHOS::USB::UsbPipe
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [interfaceId](_u_s_b.md#interfaceid) | USB设备接口ID | 
+| [endpointId](_u_s_b.md#endpointid) | USB设备端点ID | 
+
+
+## **详细描述**
+
+管道信息。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md
new file mode 100644
index 0000000000000000000000000000000000000000..9bc4102d6e28c072dee510f953bb241cf9413766
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md
@@ -0,0 +1,62 @@
+# OHOS::USB::UsbdClient
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OpenDevice](_u_s_b.md#opendevice)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev) | 打开设备,建立连接。&nbsp;[更多...](_u_s_b.md#opendevice) | 
+| [CloseDevice](_u_s_b.md#closedevice)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev) | 关闭设备,释放与设备相关的所有系统资源。&nbsp;[更多...](_u_s_b.md#closedevice) | 
+| [GetDeviceDescriptor](_u_s_b.md#getdevicedescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 获取设备描述符。&nbsp;[更多...](_u_s_b.md#getdevicedescriptor) | 
+| [GetStringDescriptor](_u_s_b.md#getstringdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;descId,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 根据String&nbsp;ID获取设备的字符串描述符。&nbsp;[更多...](_u_s_b.md#getstringdescriptor) | 
+| [GetConfigDescriptor](_u_s_b.md#getconfigdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;descId,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 根据config&nbsp;ID获取设备的配置描述符config。&nbsp;[更多...](_u_s_b.md#getconfigdescriptor) | 
+| [GetRawDescriptor](_u_s_b.md#getrawdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 获取原始描述符。&nbsp;[更多...](_u_s_b.md#getrawdescriptor) | 
+| [GetFileDescriptor](_u_s_b.md#getfiledescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;int32_t&nbsp;&amp;fd) | 获取文件描述符。&nbsp;[更多...](_u_s_b.md#getfiledescriptor) | 
+| [SetConfig](_u_s_b.md#setconfig)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;configIndex) | 设置当前的config信息。&nbsp;[更多...](_u_s_b.md#setconfig) | 
+| [GetConfig](_u_s_b.md#getconfig)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;&amp;configIndex) | 获取当前的config信息。&nbsp;[更多...](_u_s_b.md#getconfig) | 
+| [ClaimInterface](_u_s_b.md#claiminterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid,&nbsp;uint8_t&nbsp;force) | 打开接口,并声明独占接口,必须在数据传输前执行。&nbsp;[更多...](_u_s_b.md#claiminterface) | 
+| [ReleaseInterface](_u_s_b.md#releaseinterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid) | 关闭接口,释放接口的占用,在停止数据传输后执行。&nbsp;[更多...](_u_s_b.md#releaseinterface) | 
+| [SetInterface](_u_s_b.md#setinterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid,&nbsp;uint8_t&nbsp;altIndex) | 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。&nbsp;[更多...](_u_s_b.md#setinterface) | 
+| [BulkTransferRead](_u_s_b.md#bulktransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。&nbsp;[更多...](_u_s_b.md#bulktransferread) | 
+| [BulkTransferWrite](_u_s_b.md#bulktransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行批量数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](_u_s_b.md#bulktransferwrite) | 
+| [ControlTransfer](_u_s_b.md#controltransfer)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)&nbsp;&amp;ctrl,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 对此设备执行端点零的控制事务,传输方向由请求类型决定。&nbsp;如果requestType&&nbsp;USB_ENDPOINT_DIR_MASK是USB_DIR_OUT&nbsp;,则传输是写入,如果是USB_DIR_IN&nbsp;,则传输是读取。&nbsp;[更多...](_u_s_b.md#controltransfer) | 
+| [InterruptTransferRead](_u_s_b.md#interrupttransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行中断数据读取,&nbsp;返回读取的数据和长度,端点方向必须为数据读取。&nbsp;[更多...](_u_s_b.md#interrupttransferread) | 
+| [InterruptTransferWrite](_u_s_b.md#interrupttransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行中断数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](_u_s_b.md#interrupttransferwrite) | 
+| [IsoTransferRead](_u_s_b.md#isotransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行等时数据读取,&nbsp;返回读取的数据和长度,端点方向必须为数据读取。&nbsp;[更多...](_u_s_b.md#isotransferread) | 
+| [IsoTransferWrite](_u_s_b.md#isotransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行等时数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](_u_s_b.md#isotransferwrite) | 
+| [RequestQueue](_u_s_b.md#requestqueue)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;clientData,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;buffer) | 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。&nbsp;[更多...](_u_s_b.md#requestqueue) | 
+| [RequestWait](_u_s_b.md#requestwait)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;clientData,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;buffer,&nbsp;int32_t&nbsp;timeout) | 等待RequestQueue异步请求的操作结果。&nbsp;[更多...](_u_s_b.md#requestwait) | 
+| [RequestCancel](_u_s_b.md#requestcancel)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 取消待处理的数据请求。&nbsp;[更多...](_u_s_b.md#requestcancel) | 
+| [GetCurrentFunctions](_u_s_b.md#getcurrentfunctions)&nbsp;(int32_t&nbsp;&amp;funcs) | 获取从设备支持的功能列表(按位域表示)(从设备)。&nbsp;[更多...](_u_s_b.md#getcurrentfunctions) | 
+| [SetCurrentFunctions](_u_s_b.md#setcurrentfunctions)&nbsp;(int32_t&nbsp;funcs) | 设置从设备支持的功能列表(按位域表示)(从设备)。&nbsp;[更多...](_u_s_b.md#setcurrentfunctions) | 
+| [SetPortRole](_u_s_b.md#setportrole)&nbsp;(int32_t&nbsp;portId,&nbsp;int32_t&nbsp;powerRole,&nbsp;int32_t&nbsp;dataRole) | 设置port端口的角色。&nbsp;[更多...](_u_s_b.md#setportrole) | 
+| [QueryPort](_u_s_b.md#queryport)&nbsp;(int32_t&nbsp;&amp;portId,&nbsp;int32_t&nbsp;&amp;powerRole,&nbsp;int32_t&nbsp;&amp;dataRole,&nbsp;int32_t&nbsp;&amp;mode) | 查询port端口的当前设置。&nbsp;[更多...](_u_s_b.md#queryport) | 
+| [BindUsbdSubscriber](_u_s_b.md#bindusbdsubscriber)&nbsp;(const&nbsp;sptr&lt;&nbsp;[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)&nbsp;&gt;&nbsp;&amp;subscriber) | 绑定订阅者。&nbsp;[更多...](_u_s_b.md#bindusbdsubscriber) | 
+| [UnbindUsbdSubscriber](_u_s_b.md#unbindusbdsubscriber)&nbsp;(const&nbsp;sptr&lt;&nbsp;[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)&nbsp;&gt;&nbsp;&amp;subscriber) | 解绑订阅者。&nbsp;[更多...](_u_s_b.md#unbindusbdsubscriber) | 
+| [RegBulkCallback](_u_s_b.md#regbulkcallback)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;const&nbsp;sptr&lt;&nbsp;IRemoteObject&nbsp;&gt;&nbsp;&amp;cb) | 注册批量传输异步回调函数。&nbsp;[更多...](_u_s_b.md#regbulkcallback) | 
+| [UnRegBulkCallback](_u_s_b.md#unregbulkcallback)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 注销批量传输异步回调函数。&nbsp;[更多...](_u_s_b.md#unregbulkcallback) | 
+| [BulkRead](_u_s_b.md#bulkread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;sptr&lt;&nbsp;Ashmem&nbsp;&gt;&nbsp;&amp;ashmem) | 批量传输异步读数据。&nbsp;[更多...](_u_s_b.md#bulkread) | 
+| [BulkWrite](_u_s_b.md#bulkwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;sptr&lt;&nbsp;Ashmem&nbsp;&gt;&nbsp;&amp;ashmem) | 批量传输异步写数据。&nbsp;[更多...](_u_s_b.md#bulkwrite) | 
+| [BulkCancel](_u_s_b.md#bulkcancel)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。&nbsp;[更多...](_u_s_b.md#bulkcancel) | 
+
+
+### 静态 Public 成员函数
+
+  | 静态&nbsp;Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [GetInstance](_u_s_b.md#getinstance)&nbsp;() | 获取实例。 | 
+
+
+## 详细描述
+
+USB驱动客户端类。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md
new file mode 100644
index 0000000000000000000000000000000000000000..57043338245c2dc4c9531bb08ba21e2abd987d9e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md
@@ -0,0 +1,41 @@
+# OHOS::USB::UsbdSubscriber
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [DeviceEvent](_u_s_b.md#deviceevent)&nbsp;(const&nbsp;[UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)&nbsp;&amp;info)=0 | 设备事件。&nbsp;[更多...](_u_s_b.md#deviceevent) | 
+| [PortChangedEvent](_u_s_b.md#portchangedevent)&nbsp;(int32_t&nbsp;portId,&nbsp;int32_t&nbsp;powerRole,&nbsp;int32_t&nbsp;dataRole,&nbsp;int32_t&nbsp;mode)=0 | 端口改变事件。&nbsp;[更多...](_u_s_b.md#portchangedevent) | 
+| [OnRemoteRequest](_u_s_b.md#onremoterequest)&nbsp;(uint32_t&nbsp;code,&nbsp;MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option)&nbsp;override | 远程请求。&nbsp;[更多...](_u_s_b.md#onremoterequest) | 
+
+
+### Private 成员函数
+
+  | Private&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::UsbdSubscriber::ParserUsbInfo](_u_s_b.md#parserusbinfo)&nbsp;(MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option,&nbsp;UsbInfo&nbsp;&amp;info) | 解析USB设备信息。&nbsp;[更多...](_u_s_b.md#parserusbinfo) | 
+| [OHOS::USB::UsbdSubscriber::ParserPortInfo](_u_s_b.md#parserportinfo)&nbsp;(MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option,&nbsp;PortInfo&nbsp;&amp;info) | 解析USB设备端口信息。&nbsp;[更多...](_u_s_b.md#parserportinfo) | 
+
+
+## **详细描述**
+
+USB驱动订阅类。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_omx_codec_buffer.md b/zh-cn/device-dev/reference/hdi-apis/_omx_codec_buffer.md
new file mode 100644
index 0000000000000000000000000000000000000000..9b59c569ce179b8ea38d724027c1726aeeaf40c1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_omx_codec_buffer.md
@@ -0,0 +1,194 @@
+# OmxCodecBuffer
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [bufferId](#bufferid) | buffer的ID。 | 
+| [size](#size) | 结构体大小。 | 
+| [version](#version) | 组件版本信息。 | 
+| [bufferType](#buffertype) | buffer类型。 | 
+| [buffer](#buffer) | 编码或者解码使用的buffer。 | 
+| [bufferLen](#bufferlen) | buffer大小。 | 
+| [allocLen](#alloclen) | 申请的buffer大小。 | 
+| [filledLen](#filledlen) | 填充的buffer大小。 | 
+| [offset](#offset) | 有效数据从缓冲区开始的起始偏移量。 | 
+| [fenceFd](#fencefd) | 该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer。 | 
+| [type](#type) | 共享内存类型。 | 
+| [pts](#pts) | 时间戳。 | 
+| [flag](#flag) | 标志。 | 
+
+
+## **详细描述**
+
+Codec buffer信息的定义。
+
+
+## **类成员变量说明**
+
+
+### allocLen
+
+  
+```
+uint32_t OmxCodecBuffer::allocLen
+```
+
+**描述:**
+
+申请的buffer大小
+
+
+### buffer
+
+  
+```
+uint8_t* OmxCodecBuffer::buffer
+```
+
+**描述:**
+
+编码或者解码使用的buffer
+
+
+### bufferId
+
+  
+```
+uint32_t OmxCodecBuffer::bufferId
+```
+
+**描述:**
+
+buffer ID
+
+
+### bufferLen
+
+  
+```
+uint32_t OmxCodecBuffer::bufferLen
+```
+
+**描述:**
+
+buffer大小
+
+
+### bufferType
+
+  
+```
+enum CodecBufferType OmxCodecBuffer::bufferType
+```
+
+**描述:**
+
+buffer类型
+
+
+### fenceFd
+
+  
+```
+int32_t OmxCodecBuffer::fenceFd
+```
+
+**描述:**
+
+该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer
+
+
+### filledLen
+
+  
+```
+uint32_t OmxCodecBuffer::filledLen
+```
+
+**描述:**
+
+填充的buffer大小
+
+
+### flag
+
+  
+```
+uint32_t OmxCodecBuffer::flag
+```
+
+**描述:**
+
+标志
+
+
+### offset
+
+  
+```
+uint32_t OmxCodecBuffer::offset
+```
+
+**描述:**
+
+有效数据从缓冲区开始的起始偏移量
+
+
+### pts
+
+  
+```
+int64_t OmxCodecBuffer::pts
+```
+
+**描述:**
+
+时间戳
+
+
+### size
+
+  
+```
+uint32_t OmxCodecBuffer::size
+```
+
+**描述:**
+
+结构体大小
+
+
+### type
+
+  
+```
+enum ShareMemTypes OmxCodecBuffer::type
+```
+
+**描述:**
+
+共享内存类型
+
+
+### version
+
+  
+```
+union OMX_VERSIONTYPE OmxCodecBuffer::version
+```
+
+**描述:**
+
+组件版本信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_pin_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_pin_auth_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..9e2a1a49e5be8d62450f959d90cca14151476c7e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_pin_auth_types_8idl.md
@@ -0,0 +1,45 @@
+# PinAuthTypes.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [ExecutorInfo](_executor_info.md) | 执行器信息。&nbsp;[更多...](_executor_info.md) | 
+| [TemplateInfo](_template_info.md) | 凭据模版信息。&nbsp;[更多...](_template_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](_hdf_pin_auth.md#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](_hdf_face_auth.md#authtype) | 
+| [ExecutorRole](_hdf_pin_auth.md#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](_hdf_face_auth.md#executorrole) | 
+| [ExecutorSecureLevel](_hdf_pin_auth.md#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](_hdf_face_auth.md#executorsecurelevel) | 
+| [CommandId](_hdf_pin_auth.md#commandid)&nbsp;:&nbsp;int&nbsp;{&nbsp;DEFAULT&nbsp;=&nbsp;0&nbsp;} | 枚举口令认证功能相关操作命令。&nbsp;[更多...](_hdf_face_auth.md#commandid) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义口令认证驱动的枚举类和数据结构。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..179b60a2a0a0261d0e9d3c8afd29316395f440ef
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md
@@ -0,0 +1,42 @@
+# PowerTypes.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Power](power.md)
+
+
+## **汇总**
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [PowerHdfCmd](power.md#powerhdfcmd)&nbsp;{&nbsp;&nbsp;&nbsp;CMD_REGISTER_CALLBCK&nbsp;=&nbsp;0,&nbsp;CMD_START_SUSPEND,&nbsp;CMD_STOP_SUSPEND,&nbsp;CMD_FORCE_SUSPEND,&nbsp;&nbsp;&nbsp;CMD_SUSPEND_BLOCK,&nbsp;CMD_SUSPEND_UNBLOCK,&nbsp;CMD_DUMP&nbsp;} | 枚举电源命令的参数。&nbsp;[更多...](power.md#powerhdfcmd) | 
+| [PowerHdfCallbackCmd](power.md#powerhdfcallbackcmd)&nbsp;{&nbsp;CMD_ON_SUSPEND&nbsp;=&nbsp;0,&nbsp;CMD_ON_WAKEUP&nbsp;} | 枚举电源状态回调的参数。&nbsp;[更多...](power.md#powerhdfcallbackcmd) | 
+| [PowerHdfState](power.md#powerhdfstate)&nbsp;{&nbsp;AWAKE&nbsp;=&nbsp;0,&nbsp;INACTIVE,&nbsp;SLEEP&nbsp;} | 枚举电源的状态。&nbsp;[更多...](power.md#powerhdfstate) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.power.v1_0 | 电源管理接口的包路径 | 
+
+
+## **详细描述**
+
+电源相关的数据类型。
+
+电源管理中使用的数据类型,包括命令参数、回调参数和系统状态。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_present_timestamp.md b/zh-cn/device-dev/reference/hdi-apis/_present_timestamp.md
new file mode 100644
index 0000000000000000000000000000000000000000..75be9d799ef7eb95d18e7484fcf739a32cf44408
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_present_timestamp.md
@@ -0,0 +1,24 @@
+# PresentTimestamp
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [type](_display.md#type-33) | 上屏时间戳类型 | 
+| [time](_display.md#time) | 类型对应的值 | 
+
+
+## **详细描述**
+
+上屏时间戳结构体定义。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_property_object.md b/zh-cn/device-dev/reference/hdi-apis/_property_object.md
new file mode 100644
index 0000000000000000000000000000000000000000..5520d0be40f9064035c5f374f32739ebe89798dc
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_property_object.md
@@ -0,0 +1,25 @@
+# PropertyObject
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [name](_display.md#name-12)&nbsp;[PROPERTY_NAME_LEN] | 属性名称 | 
+| [propId](_display.md#propid) | 属性ID | 
+| [value](_display.md#value-12) | 属性值 | 
+
+
+## **详细描述**
+
+定义包含名称、属性ID和值的属性对象。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_range_value.md b/zh-cn/device-dev/reference/hdi-apis/_range_value.md
new file mode 100644
index 0000000000000000000000000000000000000000..723b312f4a6bb0b12078398487a4ba026204d60d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_range_value.md
@@ -0,0 +1,51 @@
+# RangeValue
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [min](#min) | 最小值 | 
+| [max](#max) | 最大值 | 
+
+
+## **详细描述**
+
+取值范围的定义。
+
+
+## **类成员变量说明**
+
+
+### max
+
+  
+```
+int32_t RangeValue::max
+```
+
+**描述:**
+
+最大值
+
+
+### min
+
+  
+```
+int32_t RangeValue::min
+```
+
+**描述:**
+
+最小值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_rect.md b/zh-cn/device-dev/reference/hdi-apis/_rect.md
new file mode 100644
index 0000000000000000000000000000000000000000..c241e45e26485c1110984ac3a9bd24cfecb53422
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_rect.md
@@ -0,0 +1,51 @@
+# Rect
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](#width) | 矩形的宽 | 
+| [height](#height) | 矩形的高 | 
+
+
+## **详细描述**
+
+矩形的定义。
+
+
+## **类成员变量说明**
+
+
+### height
+
+  
+```
+int32_t Rect::height
+```
+
+**描述:**
+
+矩形的高
+
+
+### width
+
+  
+```
+int32_t Rect::width
+```
+
+**描述:**
+
+矩形的宽
diff --git a/zh-cn/device-dev/reference/hdi-apis/_rectangle.md b/zh-cn/device-dev/reference/hdi-apis/_rectangle.md
new file mode 100644
index 0000000000000000000000000000000000000000..374827e42143f6317681811d5d2c53c30469ced8
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_rectangle.md
@@ -0,0 +1,24 @@
+# Rectangle
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [rect](_display.md#rect) | 矩形区域 | 
+| [color](_display.md#color-33) | 矩形颜色 | 
+
+
+## **详细描述**
+
+矩形描述结构体定义,用于硬件加速绘制矩形。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_schedule_info.md b/zh-cn/device-dev/reference/hdi-apis/_schedule_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..4fcebffea49a53a5907520898ee73d4e84f4b09e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_schedule_info.md
@@ -0,0 +1,111 @@
+# ScheduleInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [scheduleId](#scheduleid) | 调度ID,用于标识一次操作请求的执行器调度过程。 | 
+| [templateIds](#templateids) | 模版ID列表。 | 
+| [authType](#authtype) | 用户认证凭据类型。 | 
+| [executorMatcher](#executormatcher) | 执行器匹配器。 | 
+| [scheduleMode](#schedulemode) | 调度模式,支持注册、认证和识别模式。 | 
+| [executors](#executors) | 执行器信息列表。 | 
+
+
+## **详细描述**
+
+调度信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### authType
+
+  
+```
+enum AuthType ScheduleInfo::authType
+```
+
+**描述:**
+
+用户认证凭据类型。
+
+
+### executors
+
+  
+```
+struct ExecutorInfo [] ScheduleInfo::executors
+```
+
+**描述:**
+
+执行器信息列表。
+
+
+### executorMatcher
+
+  
+```
+unsigned int ScheduleInfo::executorMatcher
+```
+
+**描述:**
+
+执行器匹配器。
+
+
+### scheduleId
+
+  
+```
+unsigned long ScheduleInfo::scheduleId
+```
+
+**描述:**
+
+调度ID,用于标识一次操作请求的执行器调度过程。
+
+
+### scheduleMode
+
+  
+```
+unsigned int ScheduleInfo::scheduleMode
+```
+
+**描述:**
+
+调度模式,支持注册、认证和识别模式。
+
+
+### templateIds
+
+  
+```
+unsigned long [] ScheduleInfo::templateIds
+```
+
+**描述:**
+
+模版ID列表。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor.md b/zh-cn/device-dev/reference/hdi-apis/_sensor.md
new file mode 100644
index 0000000000000000000000000000000000000000..8af61d4b6a4eab3cd53ef07e76ba0273ebe8d67c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_sensor.md
@@ -0,0 +1,326 @@
+# Sensor
+
+
+## **汇总**
+
+
+### 文件
+
+| 文件 | 描述 |
+| -------- | -------- |
+| [sensor_if.h](sensor__if_8h.md) | Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/取消订阅传感器数据、&nbsp;使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 |
+| [sensor_type.h](sensor__type_8h.md) | 定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 |
+
+
+### ç±»
+
+| 类 | 描述 |
+| -------- | -------- |
+| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。&nbsp;[更多...](_sensor_interface.md) |
+| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。&nbsp;[更多...](_sensor_information.md) |
+| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。&nbsp;[更多...](_sensor_events.md) |
+
+
+### 宏定义
+
+| 宏定义 | 描述 |
+| -------- | -------- |
+| [SENSOR_NAME_MAX_LEN](#sensornamemaxlen)&nbsp;&nbsp;&nbsp;32 | Sensor名称的最大长度。 |
+| [SENSOR_VERSION_MAX_LEN](#sensorversionmaxlen)&nbsp;&nbsp;&nbsp;16 | Sensor版本号的最大长度。 |
+
+
+### 类型定义
+
+| 类型定义 | 描述 |
+| -------- | -------- |
+| ([RecordDataCallback](#recorddatacallback))&nbsp;(const&nbsp;struct&nbsp;[SensorEvents](_sensor_events.md)&nbsp;\*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时,&nbsp;需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。&nbsp;[更多...](#recorddatacallback) |
+
+
+### 枚举
+
+| 枚举 | 描述 |
+| -------- | -------- |
+| [SensorStatus](#sensorstatus)&nbsp;{&nbsp;SENSOR_SUCCESS&nbsp;=&nbsp;0,&nbsp;SENSOR_FAILURE&nbsp;=&nbsp;-1,&nbsp;SENSOR_NOT_SUPPORT&nbsp;=&nbsp;-2,&nbsp;SENSOR_INVALID_PARAM&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;SENSOR_INVALID_SERVICE&nbsp;=&nbsp;-4,&nbsp;SENSOR_NULL_PTR&nbsp;=&nbsp;-5&nbsp;} | 定义传感器模块返回值类型。&nbsp;[更多...](#sensorstatus) |
+| [SensorTypeTag](#sensortypetag)&nbsp;{&nbsp;SENSOR_TYPE_NONE&nbsp;=&nbsp;0,&nbsp;SENSOR_TYPE_ACCELEROMETER&nbsp;=&nbsp;1,&nbsp;SENSOR_TYPE_GYROSCOPE&nbsp;=&nbsp;2,&nbsp;SENSOR_TYPE_PHOTOPLETHYSMOGRAPH&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ELECTROCARDIOGRAPH&nbsp;=&nbsp;4,&nbsp;SENSOR_TYPE_AMBIENT_LIGHT&nbsp;=&nbsp;5,&nbsp;SENSOR_TYPE_MAGNETIC_FIELD&nbsp;=&nbsp;6,&nbsp;SENSOR_TYPE_CAPACITIVE&nbsp;=&nbsp;7,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_BAROMETER&nbsp;=&nbsp;8,&nbsp;SENSOR_TYPE_TEMPERATURE&nbsp;=&nbsp;9,&nbsp;SENSOR_TYPE_HALL&nbsp;=&nbsp;10,&nbsp;SENSOR_TYPE_GESTURE&nbsp;=&nbsp;11,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_PROXIMITY&nbsp;=&nbsp;12,&nbsp;SENSOR_TYPE_HUMIDITY&nbsp;=&nbsp;13,&nbsp;SENSOR_TYPE_MEDICAL_BEGIN&nbsp;=&nbsp;128,&nbsp;SENSOR_TYPE_MEDICAL_END&nbsp;=&nbsp;160,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_PHYSICAL_MAX&nbsp;=&nbsp;255,&nbsp;SENSOR_TYPE_ORIENTATION&nbsp;=&nbsp;256,&nbsp;SENSOR_TYPE_GRAVITY&nbsp;=&nbsp;257,&nbsp;SENSOR_TYPE_LINEAR_ACCELERATION&nbsp;=&nbsp;258,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ROTATION_VECTOR&nbsp;=&nbsp;259,&nbsp;SENSOR_TYPE_AMBIENT_TEMPERATURE&nbsp;=&nbsp;260,&nbsp;SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED&nbsp;=&nbsp;261,&nbsp;SENSOR_TYPE_GAME_ROTATION_VECTOR&nbsp;=&nbsp;262,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_GYROSCOPE_UNCALIBRATED&nbsp;=&nbsp;263,&nbsp;SENSOR_TYPE_SIGNIFICANT_MOTION&nbsp;=&nbsp;264,&nbsp;SENSOR_TYPE_PEDOMETER_DETECTION&nbsp;=&nbsp;265,&nbsp;SENSOR_TYPE_PEDOMETER&nbsp;=&nbsp;266,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR&nbsp;=&nbsp;277,&nbsp;SENSOR_TYPE_HEART_RATE&nbsp;=&nbsp;278,&nbsp;SENSOR_TYPE_DEVICE_ORIENTATION&nbsp;=&nbsp;279,&nbsp;SENSOR_TYPE_WEAR_DETECTION&nbsp;=&nbsp;280,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED&nbsp;=&nbsp;281,&nbsp;SENSOR_TYPE_MAX&nbsp;} | 定义传感器类型标识。&nbsp;[更多...](#sensortypetag) |
+| [SensorAccuracyType](#sensoraccuracytype)&nbsp;{&nbsp;SENSOR_NO_ACCURACY&nbsp;=&nbsp;0,&nbsp;SENSOR_LOW_ACCURACY&nbsp;=&nbsp;1,&nbsp;SENSOR_MEDIUM_ACCURACY&nbsp;=&nbsp;2,&nbsp;SENSOR_HIGH_ACCURACY&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_MAX_ACCURACY&nbsp;} | 传感器的精度类型。&nbsp;[更多...](#sensoraccuracytype) |
+| [SensorRangeType](#sensorrangetype)&nbsp;{&nbsp;SENSOR_RANGE_LEVEL1&nbsp;=&nbsp;0,&nbsp;SENSOR_RANGE_LEVEL2&nbsp;=&nbsp;1,&nbsp;SENSOR_RANGE_LEVEL3&nbsp;=&nbsp;2,&nbsp;SENSOR_RANGE_LEVEL_MAX&nbsp;} | 传感器的量程级别。&nbsp;[更多...](#sensorrangetype) |
+| [SensorModeType](#sensormodetype)&nbsp;{&nbsp;SENSOR_MODE_DEFAULT&nbsp;=&nbsp;0,&nbsp;SENSOR_MODE_REALTIME&nbsp;=&nbsp;1,&nbsp;SENSOR_MODE_ON_CHANGE&nbsp;=&nbsp;2,&nbsp;SENSOR_MODE_ONE_SHOT&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_MODE_FIFO_MODE&nbsp;=&nbsp;4,&nbsp;SENSOR_MODE_MAX&nbsp;} | 传感器的工作模式。&nbsp;[更多...](#sensormodetype) |
+| [SensorGroupType](#sensorgrouptype)&nbsp;{&nbsp;TRADITIONAL_SENSOR_TYPE&nbsp;=&nbsp;0,&nbsp;MEDICAL_SENSOR_TYPE&nbsp;=&nbsp;1,&nbsp;SENSOR_GROUP_TYPE_MAX&nbsp;} | 枚举传感器的硬件服务组。&nbsp;[更多...](#sensorgrouptype) |
+
+
+### 函数
+
+| 函数 | 描述 |
+| -------- | -------- |
+| [NewSensorInterfaceInstance](#newsensorinterfaceinstance)&nbsp;(void) | 创建传感器接口实例。&nbsp;[更多...](#newsensorinterfaceinstance) |
+| [FreeSensorInterfaceInstance](#freesensorinterfaceinstance)&nbsp;(void) | 释放传感器接口实例。&nbsp;[更多...](#freesensorinterfaceinstance) |
+
+
+## **详细描述**
+
+传感器设备驱动对传感器服务提供通用的接口能力。
+
+模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+## **宏定义说明**
+
+
+### SENSOR_NAME_MAX_LEN
+
+
+```
+#define SENSOR_NAME_MAX_LEN   32
+```
+
+**描述:**
+
+Sensor名称的最大长度。
+
+
+### SENSOR_VERSION_MAX_LEN
+
+
+```
+#define SENSOR_VERSION_MAX_LEN  16
+```
+
+**描述:**
+
+Sensor版本号的最大长度。
+
+
+## **类型定义说明**
+
+
+### RecordDataCallback
+
+
+```
+typedef int32_t(* RecordDataCallback) (const struct SensorEvents *)
+```
+
+**描述:**
+
+传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。
+
+
+## **枚举类型说明**
+
+
+### SensorAccuracyType
+
+
+```
+enum SensorAccuracyType
+```
+
+**描述:**
+
+传感器的精度类型。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| SENSOR_NO_ACCURACY | 无精度类型。 |
+| SENSOR_LOW_ACCURACY | 低精度类型。 |
+| SENSOR_MEDIUM_ACCURACY | 中等精度类型。 |
+| SENSOR_HIGH_ACCURACY | 高精度类型。 |
+| SENSOR_MAX_ACCURACY | 最大精度类型。 |
+
+
+### SensorGroupType
+
+
+```
+enum SensorGroupType
+```
+
+**描述:**
+
+枚举传感器的硬件服务组。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| TRADITIONAL_SENSOR_TYPE | 传统传感器类型,传感器ID枚举值范围为128-160。 |
+| MEDICAL_SENSOR_TYPE | 医疗传感器类型,传感器ID枚举值范围不在128-160之间。 |
+| SENSOR_GROUP_TYPE_MAX | 最大传感器类型。 |
+
+
+### SensorModeType
+
+
+```
+enum SensorModeType
+```
+
+**描述:**
+
+传感器的工作模式。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| SENSOR_MODE_DEFAULT | 传感器默认工作模式状态。 |
+| SENSOR_MODE_REALTIME | 传感器实时工作模式状态,一组数据上报一次。 |
+| SENSOR_MODE_ON_CHANGE | 传感器实时工作模式状态,状态变更上报一次。 |
+| SENSOR_MODE_ONE_SHOT | 传感器实时工作模式状态,只上报一次。 |
+| SENSOR_MODE_FIFO_MODE | 传感器缓存工作模式状态,根据配置的缓存大小上报。 |
+| SENSOR_MODE_MAX | 传感器最大类型标识。 |
+
+
+### SensorRangeType
+
+
+```
+enum SensorRangeType
+```
+
+**描述:**
+
+传感器的量程级别。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| SENSOR_RANGE_LEVEL1 | 量程级别1。 |
+| SENSOR_RANGE_LEVEL2 | 量程级别2。 |
+| SENSOR_RANGE_LEVEL3 | 量程级别3。 |
+| SENSOR_RANGE_LEVEL_MAX | 量程最大级别。 |
+
+
+### SensorStatus
+
+
+```
+enum SensorStatus
+```
+
+**描述:**
+
+定义传感器模块返回值类型。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| SENSOR_SUCCESS | 传感器执行成功。 |
+| SENSOR_FAILURE | 传感器执行失败。 |
+| SENSOR_NOT_SUPPORT | 传感器不支持。 |
+| SENSOR_INVALID_PARAM | 传感器无效参数。 |
+| SENSOR_INVALID_SERVICE | 传感器无效服务。 |
+| SENSOR_NULL_PTR | 传感器空指针。 |
+
+
+### SensorTypeTag
+
+
+```
+enum SensorTypeTag
+```
+
+**描述:**
+
+定义传感器类型标识。
+
+| 枚举值 | 描述 |
+| -------- | -------- |
+| SENSOR_TYPE_NONE | 空传感器类型,用于测试。 |
+| SENSOR_TYPE_ACCELEROMETER | 加速度传感器。 |
+| SENSOR_TYPE_GYROSCOPE | 陀螺仪传感器。 |
+| SENSOR_TYPE_PHOTOPLETHYSMOGRAPH | 心率传感器。 |
+| SENSOR_TYPE_ELECTROCARDIOGRAPH | 心电传感器。 |
+| SENSOR_TYPE_AMBIENT_LIGHT | 环境光传感器。 |
+| SENSOR_TYPE_MAGNETIC_FIELD | 地磁传感器。 |
+| SENSOR_TYPE_CAPACITIVE | 电容传感器。 |
+| SENSOR_TYPE_BAROMETER | 气压计传感器。 |
+| SENSOR_TYPE_TEMPERATURE | 温度传感器。 |
+| SENSOR_TYPE_HALL | 霍尔传感器。 |
+| SENSOR_TYPE_GESTURE | 手势传感器。 |
+| SENSOR_TYPE_PROXIMITY | 接近光传感器。 |
+| SENSOR_TYPE_HUMIDITY | 湿度传感器。 |
+| SENSOR_TYPE_MEDICAL_BEGIN | 医疗传感器ID枚举值范围的开始。 |
+| SENSOR_TYPE_MEDICAL_END | 医疗传感器ID枚举值范围的结束。 |
+| SENSOR_TYPE_PHYSICAL_MAX | 物理传感器最大类型。 |
+| SENSOR_TYPE_ORIENTATION | 方向传感器。 |
+| SENSOR_TYPE_GRAVITY | 重力传感器。 |
+| SENSOR_TYPE_LINEAR_ACCELERATION | 线性加速度传感器。 |
+| SENSOR_TYPE_ROTATION_VECTOR | 旋转矢量传感器。 |
+| SENSOR_TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 |
+| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校准磁场传感器。 |
+| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戏旋转矢量传感器。 |
+| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校准陀螺仪传感器。 |
+| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度动作传感器。 |
+| SENSOR_TYPE_PEDOMETER_DETECTION | 计步器检测传感器。 |
+| SENSOR_TYPE_PEDOMETER | 计步器传感器。 |
+| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋转矢量传感器。 |
+| SENSOR_TYPE_HEART_RATE | 心率传感器。 |
+| SENSOR_TYPE_DEVICE_ORIENTATION | 设备方向传感器。 |
+| SENSOR_TYPE_WEAR_DETECTION | 佩戴检测传感器。 |
+| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校准加速度传感器。 |
+| SENSOR_TYPE_MAX | 传感器类型最大个数标识。 |
+
+
+## **函数说明**
+
+
+### FreeSensorInterfaceInstance()
+
+
+```
+int32_t FreeSensorInterfaceInstance (void )
+```
+
+**描述:**
+
+释放传感器接口实例。
+
+**返回:**
+
+如果释放实例成功,则返回0。
+
+如果释放实例失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+### NewSensorInterfaceInstance()
+
+
+```
+const struct SensorInterface* NewSensorInterfaceInstance (void )
+```
+
+**描述:**
+
+创建传感器接口实例。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 表示传感器ID。有关详细信息,详见[SensorTypeTag](#sensortypetag)。 |
+| cb | 表示要注册的回调函数。有关详细信息,详见[RecordDataCallback](#recorddatacallback)。 |
+
+**返回:**
+
+如果创建实例成功,则返回非零值。
+
+如果创建实例失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor_events.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_events.md
new file mode 100644
index 0000000000000000000000000000000000000000..51c8079517f1e6cb44ca20b482c9dfc357328a1e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_sensor_events.md
@@ -0,0 +1,122 @@
+# SensorEvents
+
+
+## **概述**
+
+**所属模块:**
+
+[Sensor](_sensor.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [sensorId](#sensorid) | 传感器的标识号。 | 
+| [version](#version) | 传感器算法版本号。 | 
+| [timestamp](#timestamp) | 传感器数据生成时间。 | 
+| [option](#option) | 传感器量程精度可选配置。 | 
+| [mode](#mode) | 传感器工作模式。 | 
+| [data](#data) | 传感器数据地址。 | 
+| [dataLen](#section0442151664211) | 传感器数据长度。 | 
+
+
+## **详细描述**
+
+上报传感器数据结构。
+
+上报传感器设备数据事件信息包括传感器的标识号、传感器算法版本号、传感器数据生成时间、传感器量程精度可选配置、传感器工作模式、传感器数据地址、传感器数据长度。
+
+**Since:**
+
+2.2
+
+
+## **类成员变量说明**
+
+
+### data
+
+  
+```
+uint8_t* SensorEvents::data
+```
+
+**描述:**
+
+传感器数据地址。
+
+
+### mode
+
+  
+```
+int32_t SensorEvents::mode
+```
+
+**描述:**
+
+传感器工作模式。
+
+
+### option
+
+  
+```
+uint32_t SensorEvents::option
+```
+
+**描述:**
+
+传感器量程精度可选配置。
+
+
+### sensorId
+
+  
+```
+int32_t SensorEvents::sensorId
+```
+
+**描述:**
+
+传感器的标识号。
+
+
+### timestamp
+
+  
+```
+int64_t SensorEvents::timestamp
+```
+
+**描述:**
+
+传感器数据生成时间。
+
+
+### version
+
+  
+```
+int32_t SensorEvents::version
+```
+
+**描述:**
+
+传感器算法版本号。
+
+
+### h2dataLen
+
+  
+```
+int32_t SensorEvents::dataLen
+```
+
+**描述:**
+
+传感器算法版本号。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md
new file mode 100644
index 0000000000000000000000000000000000000000..083c23aab81e737015db46d92d10380f6775cbdb
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md
@@ -0,0 +1,148 @@
+# SensorInformation
+
+
+## **概述**
+
+**所属模块:**
+
+[Sensor](_sensor.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+| Public&nbsp;属性 | 描述 |
+| -------- | -------- |
+| [sensorName](#sensorname)&nbsp;[[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器名称。 |
+| [vendorName](#vendorname)&nbsp;[[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器设备厂商。 |
+| [firmwareVersion](#firmwareversion)&nbsp;[[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器固件版本号。 |
+| [hardwareVersion](#hardwareversion)<br/>[[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器硬件版本号。 |
+| [sensorTypeId](#sensortypeid) | 传感器类型编号。 |
+| [sensorId](#sensorid) | 传感器的标识号,由传感器驱动开发者定义。 |
+| [maxRange](#maxrange) | 传感器的最大量程。 |
+| [accuracy](#accuracy) | 传感器的精度。 |
+| [power](#power) | 传感器的功耗。 |
+
+
+## **详细描述**
+
+定义传感器基本信息。
+
+一个传感器设备信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。
+
+**Since:**
+
+2.2
+
+
+## **类成员变量说明**
+
+
+### accuracy
+
+
+```
+float SensorInformation::accuracy
+```
+
+**描述:**
+
+传感器的精度。
+
+
+### firmwareVersion
+
+
+```
+char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN]
+```
+
+**描述:**
+
+传感器固件版本号。
+
+
+### hardwareVersion
+
+
+```
+char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN]
+```
+
+**描述:**
+
+传感器硬件版本号。
+
+
+### maxRange
+
+
+```
+float SensorInformation::maxRange
+```
+
+**描述:**
+
+传感器的最大量程。
+
+
+### sensorId
+
+
+```
+int32_t SensorInformation::sensorId
+```
+
+**描述:**
+
+传感器的标识号,由传感器驱动开发者定义。
+
+
+### sensorName
+
+
+```
+char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN]
+```
+
+**描述:**
+
+传感器名称。
+
+
+### sensorTypeId
+
+
+```
+int32_t SensorInformation::sensorTypeId
+```
+
+**描述:**
+
+传感器类型编号,唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。
+
+
+### vendorName
+
+
+```
+char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN]
+```
+
+**描述:**
+
+传感器设备厂商。
+
+
+### power
+
+
+```
+char SensorInformation::power
+```
+
+**描述:**
+
+传感器的功耗。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..a6c64a9af33a52941b36c03b13843f780e9d518f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md
@@ -0,0 +1,234 @@
+# SensorInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Sensor](_sensor.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+| Public&nbsp;属性 | 描述 |
+| -------- | -------- |
+| (&nbsp;[GetAllSensors](#getallsensors)&nbsp;)([out]&nbsp;struct&nbsp;[SensorInformation](_sensor_information.md)&nbsp;\*\*sensorInfo,&nbsp;[out]&nbsp;int32_t&nbsp;\*count) | 获取当前系统中所有类型的传感器信息。&nbsp;[更多...](#getallsensors) |
+| (&nbsp;[Enable](#enable)&nbsp;)([in]&nbsp;int32_t&nbsp;sensorId) | 根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。&nbsp;[更多...](#enable) |
+| (&nbsp;[Disable](#disable)&nbsp;)([in]&nbsp;int32_t&nbsp;sensorId) | 根据传感器设备类型标识去使能传感器信息列表里存在的设备。&nbsp;[更多...](#disable) |
+| (&nbsp;[SetBatch](#setbatch)&nbsp;)([in]&nbsp;int32_t&nbsp;sensorId,&nbsp;[in]&nbsp;int64_t&nbsp;samplingInterval,&nbsp;[in]&nbsp;int64_t&nbsp;reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。&nbsp;[更多...](#setbatch) |
+| (&nbsp;[SetMode](#setmode)&nbsp;)([in]&nbsp;int32_t&nbsp;sensorId,&nbsp;[in]&nbsp;int32_t&nbsp;mode) | 设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。&nbsp;[更多...](#setmode) |
+| (&nbsp;[SetOption](#setoption)&nbsp;)([in]&nbsp;int32_t&nbsp;sensorId,&nbsp;[in]&nbsp;uint32_t&nbsp;option) | 设置指定传感器量程、精度等可选配置。&nbsp;[更多...](#setoption) |
+| (&nbsp;[Register](#register)&nbsp;)([in]&nbsp;int32_t&nbsp;groupId,&nbsp;[in]&nbsp;[RecordDataCallback](_sensor.md#recorddatacallback)&nbsp;cb) | 订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。&nbsp;[更多...](#register) |
+| (&nbsp;[Unregister](#unregister)&nbsp;)([in]&nbsp;int32_t&nbsp;groupId,&nbsp;[in]&nbsp;[RecordDataCallback](_sensor.md#recorddatacallback)&nbsp;cb) | 订阅者取消注册传感器数据回调函数。&nbsp;[更多...](#unregister) |
+
+
+## **详细描述**
+
+提供sensor设备基本控制操作接口。
+
+结构体提供获取传感器设备信息、订阅/取消订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。
+
+
+## **类成员变量说明**
+
+
+### Disable
+
+
+```
+int32_t(* SensorInterface::Disable) ([in] int32_t sensorId)
+```
+
+**描述:**
+
+根据传感器设备类型标识去使能传感器信息列表里存在的设备。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### Enable
+
+
+```
+int32_t(* SensorInterface::Enable) ([in] int32_t sensorId)
+```
+
+**描述:**
+
+根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### GetAllSensors
+
+
+```
+int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sensorInfo,[out] int32_t *count)
+```
+
+**描述:**
+
+获取当前系统中所有类型的传感器信息。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorInfo | 输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、&nbsp;固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见[SensorInformation](_sensor_information.md)。 |
+| count | 输出系统中注册的传感器数量。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### Register
+
+
+```
+int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallback cb)
+```
+
+**描述:**
+
+订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| groupId | 传感器组ID。&nbsp;sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。&nbsp;sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。 |
+| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 |
+
+**返回:**
+
+如果注册回调函数成功,则返回0。
+
+如果注册回调函数失败,则返回负数。
+
+
+### SetBatch
+
+
+```
+int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplingInterval,[in] int64_t reportInterval)
+```
+
+**描述:**
+
+设置指定传感器的数据采样间隔和数据上报间隔。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 |
+| samplingInterval | 设置指定传感器的数据采样间隔,单位纳秒。 |
+| reportInterval | 表示传感器数据上报间隔,单位纳秒。 |
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+
+### SetMode
+
+
+```
+int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode)
+```
+
+**描述:**
+
+设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 |
+| mode | 传感器的数据上报模式,详见[SensorModeType](_sensor.md#sensormodetype)。 |
+
+**返回:**
+
+如果设置传感器数据报告模式成功,则返回0。
+
+如果设置传感器数据报告模式失败,则返回负数。
+
+
+### SetOption
+
+
+```
+int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t option)
+```
+
+**描述:**
+
+设置指定传感器量程、精度等可选配置。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 |
+| option | 传感器的量程、精度等配置。 |
+
+**返回:**
+
+如果设置参数成功,则返回0。
+
+如果设置参数失败,则返回负数。
+
+
+### Unregister
+
+
+```
+int32_t(* SensorInterface::Unregister) ([in] int32_t groupId,[in] RecordDataCallback cb)
+```
+
+**描述:**
+
+订阅者取消注册传感器数据回调函数。
+
+**参数:**
+
+| 名称 | 描述 |
+| -------- | -------- |
+| groupId | 传感器组ID。&nbsp;sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。&nbsp;sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。 |
+| cb | 要取消注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 |
+
+**返回:**
+
+如果取消注册回调函数成功,则返回0。
+
+如果取消注册回调函数失败,则返回负数。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_sta_info.md b/zh-cn/device-dev/reference/hdi-apis/_sta_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..605e17a4f2e3e629a11939553baf0b28cbf0561e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_sta_info.md
@@ -0,0 +1,46 @@
+# StaInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [mac](#mac)&nbsp;[[WIFI_MAC_ADDR_LENGTH](_w_l_a_n.md#ga27ea7645cf89c113dae48346e19a676f)] | STA的MAC地址 | 
+
+
+## **详细描述**
+
+描述与AP连接的STA的基本信息。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### mac
+
+  
+```
+unsigned char StaInfo::mac[WIFI_MAC_ADDR_LENGTH]
+```
+
+**描述:**
+
+STA的MAC地址。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_support_buffer_type.md b/zh-cn/device-dev/reference/hdi-apis/_support_buffer_type.md
new file mode 100644
index 0000000000000000000000000000000000000000..22e7876400f9ef145757edc027231d5053b53499
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_support_buffer_type.md
@@ -0,0 +1,77 @@
+# SupportBufferType
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [size](#size) | 结构体大小 | 
+| [version](#version) | 组件版本信息 | 
+| [portIndex](#portindex) | 端口索引 | 
+| [bufferTypes](#buffertypes) | 支持的所有Buffer类型 | 
+
+
+## **详细描述**
+
+SupportBuffer类型定义。
+
+
+## **类成员变量说明**
+
+
+### bufferTypes
+
+  
+```
+uint32_t SupportBufferType::bufferTypes
+```
+
+**描述:**
+
+支持的所有Buffer类型
+
+
+### portIndex
+
+  
+```
+uint32_t SupportBufferType::portIndex
+```
+
+**描述:**
+
+端口索引
+
+
+### size
+
+  
+```
+uint32_t SupportBufferType::size
+```
+
+**描述:**
+
+结构体大小
+
+
+### version
+
+  
+```
+union OMX_VERSIONTYPE SupportBufferType::version
+```
+
+**描述:**
+
+组件版本信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_template_info.md b/zh-cn/device-dev/reference/hdi-apis/_template_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..1d900c103ee8602a976a9364388b7a5ab2a0215f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_template_info.md
@@ -0,0 +1,85 @@
+# TemplateInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [executorType](#executortype) | 执行器类型,根据执行器支持的算法类型进行分类。 | 
+| [freezingTime](#freezingtime) | 认证方式被冻结的时间。 | 
+| [remainTimes](#remaintimes) | 认证方式距离被冻结的可处理认证请求次数。 | 
+| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | 
+
+
+## **详细描述**
+
+凭据模版信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### executorType
+
+  
+```
+unsigned int TemplateInfo::executorType
+```
+
+**描述:**
+
+执行器类型,根据执行器支持的算法类型进行分类。
+
+
+### extraInfo
+
+  
+```
+unsigned char [] TemplateInfo::extraInfo
+```
+
+**描述:**
+
+其他相关信息,用于支持信息扩展。
+
+
+### freezingTime
+
+  
+```
+int TemplateInfo::freezingTime
+```
+
+**描述:**
+
+认证方式被冻结的时间。
+
+
+### remainTimes
+
+  
+```
+int TemplateInfo::remainTimes
+```
+
+**描述:**
+
+认证方式距离被冻结的可处理认证请求次数。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_thermal_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_thermal_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..38c78e4de0d69fd3c775a820e311780c09d6482f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_thermal_types_8idl.md
@@ -0,0 +1,41 @@
+# ThermalTypes.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [ThermalZoneInfo](_thermal_zone_info.md) | 设备发热的信息。&nbsp;[更多...](_thermal_zone_info.md) | 
+| [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) | 设备发热的信息列表。&nbsp;[更多...](_hdf_thermal_callback_info.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | 
+
+
+## **详细描述**
+
+设备发热状态相关的数据类型。
+
+热管理中使用的数据类型,包括设备发热的信息和设备发热的信息列表。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_thermal_zone_info.md b/zh-cn/device-dev/reference/hdi-apis/_thermal_zone_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..6c60b3463c1d06fa6efc51a5d5c0ba07fc3be39f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_thermal_zone_info.md
@@ -0,0 +1,55 @@
+# ThermalZoneInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [type](#type) | 发热器件的类型。 | 
+| [temp](#temp) | 器件的温度值。 | 
+
+
+## **详细描述**
+
+设备发热的信息。
+
+**Since:**
+
+3.1
+
+
+## **类成员变量说明**
+
+
+### temp
+
+  
+```
+int ThermalZoneInfo::temp
+```
+
+**描述:**
+
+器件的温度值。
+
+
+### type
+
+  
+```
+String ThermalZoneInfo::type
+```
+
+**描述:**
+
+发热器件的类型。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..b924caff85bec0cdd0dcac7a8eefa0fca8334854
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_types_8idl.md
@@ -0,0 +1,49 @@
+# Types.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [BatteryInfo](_battery_info.md) | 电池相关信息。&nbsp;[更多...](_battery_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [BatteryHealthState](battery.md#batteryhealthstate)&nbsp;{&nbsp;&nbsp;&nbsp;BATTERY_HEALTH_UNKNOWN&nbsp;=&nbsp;0,&nbsp;BATTERY_HEALTH_GOOD,&nbsp;BATTERY_HEALTH_OVERHEAT,&nbsp;BATTERY_HEALTH_OVERVOLTAGE,&nbsp;&nbsp;&nbsp;BATTERY_HEALTH_COLD,&nbsp;BATTERY_HEALTH_DEAD,&nbsp;BATTERY_HEALTH_RESERVED&nbsp;} | 电池的健康状态。&nbsp;[更多...](battery.md#batteryhealthstate) | 
+| [BatteryChargeState](battery.md#batterychargestate)&nbsp;{&nbsp;&nbsp;&nbsp;CHARGE_STATE_NONE&nbsp;=&nbsp;0,&nbsp;CHARGE_STATE_ENABLE,&nbsp;CHARGE_STATE_DISABLE,&nbsp;CHARGE_STATE_FULL,&nbsp;&nbsp;&nbsp;CHARGE_STATE_RESERVED&nbsp;} | 电池的充电状态。&nbsp;[更多...](battery.md#batterychargestate) | 
+| [BatteryPluggedType](battery.md#batterypluggedtype)&nbsp;{&nbsp;&nbsp;&nbsp;PLUGGED_TYPE_NONE&nbsp;=&nbsp;0,&nbsp;PLUGGED_TYPE_AC,&nbsp;PLUGGED_TYPE_USB,&nbsp;PLUGGED_TYPE_WIRELESS,&nbsp;&nbsp;&nbsp;PLUGGED_TYPE_BUTT&nbsp;} | 电池的充电设备类型。&nbsp;[更多...](battery.md#batterypluggedtype) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | 
+
+
+## **详细描述**
+
+电池信息相关数据类型。
+
+电池信息中使用的数据类型,包括健康状态、充电状态、充电设备类型和电池信息结构。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_u_s_b.md b/zh-cn/device-dev/reference/hdi-apis/_u_s_b.md
new file mode 100644
index 0000000000000000000000000000000000000000..3753bc9918d7c0294c6ac0a78719179b8c252740
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_u_s_b.md
@@ -0,0 +1,1863 @@
+# USB
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [usb_info.h](usb__info_8h.md) | USB驱动订阅模块使用的数据类型。 | 
+| [usbd_client.h](usbd__client_8h.md) | 声明标准USB驱动接口函数。 | 
+| [usbd_subscriber.h](usbd__subscriber_8h.md) | USB驱动订阅模块。 | 
+| [usbd_type.h](usbd__type_8h.md) | USB驱动模块接口定义中使用的自定义数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | 
+| [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | USB设备信息类。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | 
+| [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | Usb驱动类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | 
+| [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | 订阅类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | 
+| [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | USB设备。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | 
+| [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 管道信息。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 
+| [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | USB控制传输。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| [USB_MAX_INTERFACES](#usb\_max\_interfaces)&nbsp;&nbsp;&nbsp;32 | USB设备最大接口数量。 | 
+
+
+### 静态常量
+
+  | 静态常量 | 描述 | 
+| -------- | -------- |
+| [USB_ENDPOINT_DIR_MASK](#usb\_endpoint\_dir\_mask)&nbsp;&nbsp;&nbsp;0x80 | 从地址中提取USB Endpoint方向的位掩码。 | 
+| [USB_ENDPOINT_DIR_IN](#usb\_endpoint\_dir\_in)&nbsp;&nbsp;&nbsp;0x80 | USB Endpoint从设备到主机的数据方向。 | 
+| [USB_ENDPOINT_DIR_OUT](#usb\_endpoint\_dir\_out)&nbsp;&nbsp;&nbsp;0 | USB Endpoint从主机到设备的数据方向。 | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([UsbdRequestCallback](#usbdrequestcallback))&nbsp;(uint8_t&nbsp;\*requestArg) | 请求回调函数。[更多...](#usbdrequestcallback) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [UsbdBulkCbCmd](#usbdbulkcbcmd)&nbsp;{&nbsp;CMD_USBD_BULK_CALLBACK_READ,&nbsp;CMD_USBD_BULK_CALLBACK_WRITE&nbsp;} | 批量回调命令字。&nbsp;[更多...](#usbdbulkcbcmd) | 
+| [UsbdDeviceAction](#usbddeviceaction)&nbsp;{&nbsp;ACT_DEVUP&nbsp;=&nbsp;0,&nbsp;ACT_DEVDOWN,&nbsp;ACT_UPDEVICE,&nbsp;ACT_DOWNDEVICE&nbsp;} | 主机端和设备端插拔事件。&nbsp;[更多...](#usbddeviceaction) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::UsbInfo::setDevInfoStatus](#setdevinfostatus)&nbsp;(int32_t&nbsp;status) | 设置USB设备状态。&nbsp;[更多...](#setdevinfostatus) | 
+| [OHOS::USB::UsbInfo::setDevInfoBusNum](#setdevinfobusnum)&nbsp;(int32_t&nbsp;busNum) | 设置USB总线编号。&nbsp;[更多...](#setdevinfobusnum) | 
+| [OHOS::USB::UsbInfo::setDevInfoDevNum](#setdevinfodevnum)&nbsp;(int32_t&nbsp;devNum) | 设置USB设备编号。&nbsp;[更多...](#setdevinfodevnum) | 
+| [OHOS::USB::UsbInfo::getDevInfoStatus](#getdevinfostatus)&nbsp;()&nbsp;const | 获取USB设备状态。&nbsp;[更多...](#getdevinfostatus) | 
+| [OHOS::USB::UsbInfo::getDevInfoBusNum](#getdevinfobusnum)&nbsp;()&nbsp;const | 获取USB总线编号。&nbsp;[更多...](#getdevinfobusnum) | 
+| [OHOS::USB::UsbInfo::getDevInfoDevNum](#getdevinfodevnum)&nbsp;()&nbsp;const | 获取USB设备编号。&nbsp;[更多...](#getdevinfodevnum) | 
+| [OHOS::USB::UsbdClient::GetInstance](#getinstance)&nbsp;()&nbsp; | 获取实例。&nbsp;[更多...](#getinstance) | 
+| [OHOS::USB::UsbdClient::OpenDevice](#opendevice)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev) | 打开设备,建立连接。&nbsp;[更多...](#opendevice) | 
+| [OHOS::USB::UsbdClient::CloseDevice](#closedevice)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev) | 关闭设备,释放与设备相关的所有系统资源。&nbsp;[更多...](#closedevice) | 
+| [OHOS::USB::UsbdClient::GetDeviceDescriptor](#getdevicedescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 获取设备描述符。&nbsp;[更多...](#getdevicedescriptor) | 
+| [OHOS::USB::UsbdClient::GetStringDescriptor](#getstringdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;descId,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 根据String&nbsp;ID获取设备的字符串描述符。&nbsp;[更多...](#getstringdescriptor) | 
+| [OHOS::USB::UsbdClient::GetConfigDescriptor](#getconfigdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;descId,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 根据config&nbsp;ID获取设备的配置描述符config。&nbsp;[更多...](#getconfigdescriptor) | 
+| [OHOS::USB::UsbdClient::GetRawDescriptor](#getrawdescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;descriptor) | 获取原始描述符。&nbsp;[更多...](#getrawdescriptor) | 
+| [OHOS::USB::UsbdClient::GetFileDescriptor](#getfiledescriptor)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;int32_t&nbsp;&amp;fd) | 获取文件描述符。&nbsp;[更多...](#getfiledescriptor) | 
+| [OHOS::USB::UsbdClient::SetConfig](#setconfig)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;configIndex) | 设置当前的config信息。&nbsp;[更多...](#setconfig) | 
+| [OHOS::USB::UsbdClient::GetConfig](#getconfig)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;&amp;configIndex) | 获取当前的config信息。&nbsp;[更多...](#getconfig) | 
+| [OHOS::USB::UsbdClient::ClaimInterface](#claiminterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid,&nbsp;uint8_t&nbsp;force) | 打开接口,并声明独占接口,必须在数据传输前执行。&nbsp;[更多...](#claiminterface) | 
+| [OHOS::USB::UsbdClient::ReleaseInterface](#releaseinterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid) | 关闭接口,释放接口的占用,在停止数据传输后执行。&nbsp;[更多...](#releaseinterface) | 
+| [OHOS::USB::UsbdClient::SetInterface](#setinterface)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;uint8_t&nbsp;interfaceid,&nbsp;uint8_t&nbsp;altIndex) | 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。&nbsp;[更多...](#setinterface) | 
+| [OHOS::USB::UsbdClient::BulkTransferRead](#bulktransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。&nbsp;[更多...](#bulktransferread) | 
+| [OHOS::USB::UsbdClient::BulkTransferWrite](#bulktransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行批量数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](#bulktransferwrite) | 
+| [OHOS::USB::UsbdClient::ControlTransfer](#controltransfer)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)&nbsp;&amp;ctrl,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 对此设备执行端点零的控制事务,传输方向由请求类型决定。&nbsp;如果requestType&&nbsp;USB_ENDPOINT_DIR_MASK是USB_DIR_OUT&nbsp;,则传输是写入,如果是USB_DIR_IN&nbsp;,则传输是读取。&nbsp;[更多...](#controltransfer) | 
+| [OHOS::USB::UsbdClient::InterruptTransferRead](#interrupttransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行中断数据读取,&nbsp;返回读取的数据和长度,端点方向必须为数据读取。&nbsp;[更多...](#interrupttransferread) | 
+| [OHOS::USB::UsbdClient::InterruptTransferWrite](#interrupttransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行中断数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](#interrupttransferwrite) | 
+| [OHOS::USB::UsbdClient::IsoTransferRead](#isotransferread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行等时数据读取,&nbsp;返回读取的数据和长度,端点方向必须为数据读取。&nbsp;[更多...](#isotransferread) | 
+| [OHOS::USB::UsbdClient::IsoTransferWrite](#isotransferwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;int32_t&nbsp;timeout,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;data) | 在给定端点上执行等时数据写入,&nbsp;返回读取的数据和长度,端点方向必须为数据写入。&nbsp;[更多...](#isotransferwrite) | 
+| [OHOS::USB::UsbdClient::RequestQueue](#requestqueue)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;clientData,&nbsp;const&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;buffer) | 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。&nbsp;[更多...](#requestqueue) | 
+| [OHOS::USB::UsbdClient::RequestWait](#requestwait)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;clientData,&nbsp;std::vector&lt;&nbsp;uint8_t&nbsp;&gt;&nbsp;&amp;buffer,&nbsp;int32_t&nbsp;timeout) | 等待RequestQueue异步请求的操作结果。&nbsp;[更多...](#requestwait) | 
+| [OHOS::USB::UsbdClient::RequestCancel](#requestcancel)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 取消待处理的数据请求。&nbsp;[更多...](#requestcancel) | 
+| [OHOS::USB::UsbdClient::GetCurrentFunctions](#getcurrentfunctions)&nbsp;(int32_t&nbsp;&amp;funcs) | 获取从设备支持的功能列表(按位域表示)(从设备)。&nbsp;[更多...](#getcurrentfunctions) | 
+| [OHOS::USB::UsbdClient::SetCurrentFunctions](#setcurrentfunctions)&nbsp;(int32_t&nbsp;funcs) | 设置从设备支持的功能列表(按位域表示)(从设备)。&nbsp;[更多...](#setcurrentfunctions) | 
+| [OHOS::USB::UsbdClient::SetPortRole](#setportrole)&nbsp;(int32_t&nbsp;portId,&nbsp;int32_t&nbsp;powerRole,&nbsp;int32_t&nbsp;dataRole) | 设置port端口的角色。&nbsp;[更多...](#setportrole) | 
+| [OHOS::USB::UsbdClient::QueryPort](#queryport)&nbsp;(int32_t&nbsp;&amp;portId,&nbsp;int32_t&nbsp;&amp;powerRole,&nbsp;int32_t&nbsp;&amp;dataRole,&nbsp;int32_t&nbsp;&amp;mode) | 查询port端口的当前设置。&nbsp;[更多...](#queryport) | 
+| [OHOS::USB::UsbdClient::BindUsbdSubscriber](#bindusbdsubscriber)&nbsp;(const&nbsp;sptr&lt;&nbsp;[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)&nbsp;&gt;&nbsp;&amp;subscriber) | 绑定订阅者。&nbsp;[更多...](#bindusbdsubscriber) | 
+| [OHOS::USB::UsbdClient::UnbindUsbdSubscriber](#unbindusbdsubscriber)&nbsp;(const&nbsp;sptr&lt;&nbsp;[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)&nbsp;&gt;&nbsp;&amp;subscriber) | 解绑订阅者。&nbsp;[更多...](#unbindusbdsubscriber) | 
+| [OHOS::USB::UsbdClient::RegBulkCallback](#regbulkcallback)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;const&nbsp;sptr&lt;&nbsp;IRemoteObject&nbsp;&gt;&nbsp;&amp;cb) | 注册批量传输异步回调函数。&nbsp;[更多...](#regbulkcallback) | 
+| [OHOS::USB::UsbdClient::UnRegBulkCallback](#unregbulkcallback)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 注销批量传输异步回调函数。&nbsp;[更多...](#unregbulkcallback) | 
+| [OHOS::USB::UsbdClient::BulkRead](#bulkread)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;sptr&lt;&nbsp;Ashmem&nbsp;&gt;&nbsp;&amp;ashmem) | 批量传输异步读数据。&nbsp;[更多...](#bulkread) | 
+| [OHOS::USB::UsbdClient::BulkWrite](#bulkwrite)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe,&nbsp;sptr&lt;&nbsp;Ashmem&nbsp;&gt;&nbsp;&amp;ashmem) | 批量传输异步写数据。&nbsp;[更多...](#bulkwrite) | 
+| [OHOS::USB::UsbdClient::BulkCancel](#bulkcancel)&nbsp;(const&nbsp;[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)&nbsp;&amp;dev,&nbsp;const&nbsp;[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)&nbsp;&amp;pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。&nbsp;[更多...](#bulkcancel) | 
+| [OHOS::USB::UsbdSubscriber::DeviceEvent](#deviceevent)&nbsp;(const&nbsp;[UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)&nbsp;&amp;info)=0 | 设备事件。&nbsp;[更多...](#deviceevent) | 
+| [OHOS::USB::UsbdSubscriber::PortChangedEvent](#portchangedevent)&nbsp;(int32_t&nbsp;portId,&nbsp;int32_t&nbsp;powerRole,&nbsp;int32_t&nbsp;dataRole,&nbsp;int32_t&nbsp;mode)=0 | 端口改变事件。&nbsp;[更多...](#portchangedevent) | 
+| [OHOS::USB::UsbdSubscriber::OnRemoteRequest](#onremoterequest)&nbsp;(uint32_t&nbsp;code,&nbsp;MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option)&nbsp;override | 远程请求。&nbsp;[更多...](#onremoterequest) | 
+| [OHOS::USB::UsbdSubscriber::ParserUsbInfo](#parserusbinfo)&nbsp;(MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option,&nbsp;UsbInfo&nbsp;&amp;info) | 解析USB设备信息。&nbsp;[更多...](#parserusbinfo) | 
+| [OHOS::USB::UsbdSubscriber::ParserPortInfo](#parserportinfo)&nbsp;(MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option,&nbsp;PortInfo&nbsp;&amp;info) | 解析USB设备端口信息。&nbsp;[更多...](#parserportinfo) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::USBDeviceInfo::status](#status) | USB设备状态 | 
+| [OHOS::USB::USBDeviceInfo::busNum](#busnum-12) | USB总线编号 | 
+| [OHOS::USB::USBDeviceInfo::devNum](#devnum) | USB设备编号 | 
+| [OHOS::USB::UsbDev::busNum](#busnum-22) | USB总线编号 | 
+| [OHOS::USB::UsbDev::devAddr](#devaddr) | USB设备地址 | 
+| [OHOS::USB::UsbPipe::interfaceId](#interfaceid) | USB设备接口ID | 
+| [OHOS::USB::UsbPipe::endpointId](#endpointid) | USB设备端点ID | 
+| [OHOS::USB::UsbCtrlTransfer::requestType](#requesttype) | 请求类型 | 
+| [OHOS::USB::UsbCtrlTransfer::requestCmd](#requestcmd) | 请求命令字 | 
+| [OHOS::USB::UsbCtrlTransfer::value](#value) | 请求值 | 
+| [OHOS::USB::UsbCtrlTransfer::index](#index) | 索引 | 
+| [OHOS::USB::UsbCtrlTransfer::timeout](#timeout) | 超时时间 | 
+| [OHOS::USB::UsbInfo::devInfo](#devinfo ) | USB设备信息 | 
+
+
+## **详细描述**
+
+定义(USB)功能的标准API接口。
+
+该模块用于获取描述符、接口对象、请求对象和提交请求的自定义数据类型和函数。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+## **宏定义说明**
+
+
+### USB_MAX_INTERFACES
+
+  
+```
+#define USB_MAX_INTERFACES   32
+```
+
+**描述:**
+
+USB设备最大接口数量
+
+
+## **静态常量说明**
+
+### USB_ENDPOINT_DIR_MASK
+  
+```
+static const int32_t USB_ENDPOINT_DIR_MASK = 0x80
+```
+
+**描述:**
+
+从地址中提取USB Endpoint方向的位掩码
+
+
+### USB_ENDPOINT_DIR_IN
+  
+```
+static const int32_t USB_ENDPOINT_DIR_IN = 0x80
+```
+
+**描述:**
+
+USB Endpoint从设备到主机的数据方向
+
+### USB_ENDPOINT_DIR_OUT
+  
+```
+static const int32_t USB_ENDPOINT_DIR_OUT = 0
+```
+
+**描述:**
+
+USB Endpoint从主机到设备的数据方向
+
+
+## **类型定义说明**
+
+
+### UsbdRequestCallback
+
+  
+```
+typedef void(* UsbdRequestCallback) (uint8_t *requestArg)
+```
+
+**描述:**
+
+请求回调函数
+
+
+## **枚举类型说明**
+
+
+### UsbdBulkCbCmd
+
+  
+```
+enum UsbdBulkCbCmd
+```
+
+**描述:**
+
+批量回调命令字。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CMD_USBD_BULK_CALLBACK_READ | 批量回调读取 | 
+| CMD_USBD_BULK_CALLBACK_WRITE | 批量回调写入 | 
+
+
+### UsbdDeviceAction
+
+  
+```
+enum UsbdDeviceAction
+```
+
+**描述:**
+
+主机端和设备端插拔事件。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| ACT_DEVUP | 主机端接入设备 | 
+| ACT_DEVDOWN | 主机端拔出设备 | 
+| ACT_UPDEVICE | 设备连接 | 
+| ACT_DOWNDEVICE | 设备断开 | 
+
+
+## **函数说明**
+
+
+### BindUsbdSubscriber()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber)
+```
+
+**描述:**
+
+绑定订阅者。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| subscriber | 输入参数,订阅者信息,详见[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### BulkCancel()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BulkCancel (const UsbDev & dev, const UsbPipe & pipe )
+```
+
+**描述:**
+
+批量传输异步取消接口,用于取消当前接口的异步批量读写操作。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### BulkRead()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BulkRead (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem )
+```
+
+**描述:**
+
+批量传输异步读数据。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| ashmem | 输出参数,为共享内存,用于存放读取的数据,详见**Ashmem**。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### BulkTransferRead()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输出参数,获取写入的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### BulkTransferWrite()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, const std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输入参数,写入的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### BulkWrite()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::BulkWrite (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem )
+```
+
+**描述:**
+
+批量传输异步写数据。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| ashmem | 输入参数,为共享内存,用于存放需要写入的数据,详见**Ashmem**。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### ClaimInterface()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::ClaimInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t force )
+```
+
+**描述:**
+
+打开接口,并声明独占接口,必须在数据传输前执行。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| interfaceid | 输入参数,USB设备interface&nbsp;ID。 | 
+| force | 输入参数,是否强制:&nbsp;1强制&nbsp;0不强制。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### CloseDevice()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::CloseDevice (const UsbDev & dev)
+```
+
+**描述:**
+
+关闭设备,释放与设备相关的所有系统资源。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### ControlTransfer()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::ControlTransfer (const UsbDev & dev, const UsbCtrlTransfer & ctrl, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| ctrl | 输入参数,USB设备控制数据包结构,详见[UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)。 | 
+| data | 输入/输出参数,读取/写入的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### DeviceEvent()
+
+  
+```
+virtual int32_t OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo & info)
+```
+
+**描述:**
+
+设备事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| [UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | 输入参数,USB设备信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetConfig()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetConfig (const UsbDev & dev, uint8_t & configIndex )
+```
+
+**描述:**
+
+获取当前的config信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| configIndex | 输出参数,USB设备config信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetConfigDescriptor()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor )
+```
+
+**描述:**
+
+根据config ID获取设备的配置描述符config。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| descId | 输入参数,USB的config&nbsp;ID。 | 
+| descriptor | 输出参数,获取USB设备config信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetCurrentFunctions()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t & funcs)
+```
+
+**描述:**
+
+获取从设备支持的功能列表(按位域表示)(从设备)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输出参数,获取当前设备的function的值。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetDeviceDescriptor()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor )
+```
+
+**描述:**
+
+获取设备描述符。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| descriptor | 输出参数,USB设备描述符信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### getDevInfoBusNum()
+
+  
+```
+int32_t OHOS::USB::UsbInfo::getDevInfoBusNum () const
+```
+
+**描述:**
+
+获取USB总线编号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输出参数,USB总线编号。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### getDevInfoDevNum()
+
+  
+```
+int32_t OHOS::USB::UsbInfo::getDevInfoDevNum () const
+```
+
+**描述:**
+
+获取USB设备编号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输出参数,USB设备编号。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### getDevInfoStatus()
+
+  
+```
+int32_t OHOS::USB::UsbInfo::getDevInfoStatus () const
+```
+
+**描述:**
+
+获取USB设备状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输出参数,设备状态。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetFileDescriptor()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev & dev, int32_t & fd )
+```
+
+**描述:**
+
+获取文件描述符。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| fd | 输出参数,USB设备文件描述符。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetRawDescriptor()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor )
+```
+
+**描述:**
+
+获取原始描述符。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| descriptor | 输出参数,USB设备原始描述符。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### GetStringDescriptor()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor )
+```
+
+**描述:**
+
+根据String ID获取设备的字符串描述符。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| descId | 输入参数,USB的string&nbsp;ID。 | 
+| descriptor | 输出参数,获取USB设备config信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### InterruptTransferRead()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输出参数,读取的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### InterruptTransferWrite()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输入参数,写入的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### IsoTransferRead()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输出参数,读取的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### IsoTransferWrite()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )
+```
+
+**描述:**
+
+在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| timeout | 输入参数,超时时间。 | 
+| data | 输入参数,读取的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### OnRemoteRequest()
+
+  
+```
+int32_t OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel & data, MessageParcel & reply, MessageOption & option )
+```
+
+**描述:**
+
+远程请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| code | 输入参数,命令字。 | 
+| data | 输入参数,待解析的数据。 | 
+| reply | 输出参数,返回的数据。 | 
+| option | 输入参数,选项数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### OpenDevice()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::OpenDevice (const UsbDev & dev)
+```
+
+**描述:**
+
+打开设备,建立连接。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### ParserUsbInfo()
+
+  
+```
+static int32_t OHOS::USB::UsbdSubscriber::ParserUsbInfo(MessageParcel &data, MessageParcel &reply, MessageOption &option, UsbInfo &info)
+```
+
+**描述:**
+
+解析USB设备信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| data | 输入参数,命令字。| 
+| reply | 输出参数,返回的数据。 |
+| option | 输入参数,选项数据。|
+| info | 输出参数,USB设备信息。|
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+### ParserPortInfo()
+
+  
+```
+static int32_t OHOS::USB::UsbdSubscriber::ParserPortInfo(MessageParcel &data, MessageParcel &reply, MessageOption &option, PortInfo &info)
+```
+
+**描述:**
+
+解析USB设备端口信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| data | 输入参数,命令字。| 
+| reply | 输出参数,返回的数据。 |
+| option | 输入参数,选项数据。|
+| info | 输出参数,USB设备端口信息。|
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### PortChangedEvent()
+
+  
+```
+virtual int32_t OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode )
+```
+
+**描述:**
+
+端口改变事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| portId | 输入参数,端口ID。 | 
+| powerRole | 输入参数,电源角色的值。 | 
+| dataRole | 输入参数,数据角色的值。 | 
+| mode | 输入参数,端口模式的值。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### QueryPort()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::QueryPort (int32_t & portId, int32_t & powerRole, int32_t & dataRole, int32_t & mode )
+```
+
+**描述:**
+
+查询port端口的当前设置。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| portId | 输出参数,port接口ID。 | 
+| powerRole | 输出参数,电源角色的值。 | 
+| dataRole | 输出参数,数据角色的值。 | 
+| mode | 输出参数,模式的值。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### RegBulkCallback()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev & dev, const UsbPipe & pipe, const sptr< IRemoteObject > & cb )
+```
+
+**描述:**
+
+注册批量传输异步回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| cb | 输入参数,回调函数对象的引用。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### ReleaseInterface()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev & dev, uint8_t interfaceid )
+```
+
+**描述:**
+
+关闭接口,释放接口的占用,在停止数据传输后执行。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| interfaceid | 输入参数,USB设备interface&nbsp;ID。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### RequestCancel()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::RequestCancel (const UsbDev & dev, const UsbPipe & pipe )
+```
+
+**描述:**
+
+取消待处理的数据请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### RequestQueue()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::RequestQueue (const UsbDev & dev, const UsbPipe & pipe, const std::vector< uint8_t > & clientData, const std::vector< uint8_t > & buffer )
+```
+
+**描述:**
+
+将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+| clientData | 输入参数,用户数据。 | 
+| buffer | 输入参数,传输的数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### RequestWait()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::RequestWait (const UsbDev & dev, std::vector< uint8_t > & clientData, std::vector< uint8_t > & buffer, int32_t timeout )
+```
+
+**描述:**
+
+等待RequestQueue异步请求的操作结果。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| clientData | 输入参数,用户数据。 | 
+| buffer | 输入参数,传输数据。 | 
+| timeout | 输入参数,超时时间。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### SetConfig()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::SetConfig (const UsbDev & dev, uint8_t configIndex )
+```
+
+**描述:**
+
+设置当前的config信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| configIndex | 输入参数,USB设备config信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### SetCurrentFunctions()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs)
+```
+
+**描述:**
+
+设置从设备支持的功能列表(按位域表示)(从设备)。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| funcs | 输入参数,传入设备支持的function的值。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### setDevInfoBusNum()
+
+  
+```
+void OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum)
+```
+
+**描述:**
+
+设置USB总线编号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输入参数,USB总线编号。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### setDevInfoDevNum()
+
+  
+```
+void OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum)
+```
+
+**描述:**
+
+设置USB设备编号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输入参数,USB设备编号。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### setDevInfoStatus()
+
+  
+```
+void OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status)
+```
+
+**描述:**
+
+设置USB设备状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| status | 输入参数,设备状态。 | 
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### SetInterface()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::SetInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t altIndex )
+```
+
+**描述:**
+
+设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| interfaceid | 输入参数,USB设备interface&nbsp;ID。 | 
+| altIndex | 输入参数,interface的AlternateSetting信息。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### SetPortRole()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole )
+```
+
+**描述:**
+
+设置port端口的角色。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| portId | 输入参数,port接口ID。 | 
+| powerRole | 输入参数,电源角色的值。 | 
+| dataRole | 输入参数,数据角色的值。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### UnbindUsbdSubscriber()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber)
+```
+
+**描述:**
+
+解绑订阅者。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| subscriber | 输入参数,订阅者信息,详见[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+### UnRegBulkCallback()
+
+  
+```
+int32_t OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev & dev, const UsbPipe & pipe )
+```
+
+**描述:**
+
+注销批量传输异步回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | 
+| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非零值 表示操作失败。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+### GetInstance()
+
+  
+```
+OHOS::USB::UsbdClient::GetInstance()
+```
+
+**描述:**
+
+获取实例。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
+
+
+## **变量说明**
+
+
+### busNum [1/2]
+
+  
+```
+int32_t OHOS::USB::USBDeviceInfo::busNum
+```
+
+**描述:**
+
+USB总线编号
+
+
+### busNum [2/2]
+
+  
+```
+uint8_t OHOS::USB::UsbDev::busNum
+```
+
+**描述:**
+
+USB总线编号
+
+
+### devAddr
+
+  
+```
+uint8_t OHOS::USB::UsbDev::devAddr
+```
+
+**描述:**
+
+USB设备地址
+
+### devInfo
+
+  
+```
+OHOS::USB::UsbInfo devInfo
+```
+
+**描述:**
+
+USB设备信息
+
+
+### devNum
+
+  
+```
+int32_t OHOS::USB::USBDeviceInfo::devNum
+```
+
+**描述:**
+
+USB设备编号
+
+
+### endpointId
+
+  
+```
+uint8_t OHOS::USB::UsbPipe::endpointId
+```
+
+**描述:**
+
+USB设备端点ID
+
+
+### index
+
+  
+```
+int32_t OHOS::USB::UsbCtrlTransfer::index
+```
+
+**描述:**
+
+索引
+
+
+### interfaceId
+
+  
+```
+uint8_t OHOS::USB::UsbPipe::interfaceId
+```
+
+**描述:**
+
+USB设备接口ID
+
+
+### requestCmd
+
+  
+```
+int32_t OHOS::USB::UsbCtrlTransfer::requestCmd
+```
+
+**描述:**
+
+请求命令字
+
+
+### requestType
+
+  
+```
+int32_t OHOS::USB::UsbCtrlTransfer::requestType
+```
+
+**描述:**
+
+请求类型
+
+
+### status
+
+  
+```
+int32_t OHOS::USB::USBDeviceInfo::status
+```
+
+**描述:**
+
+USB设备状态
+
+
+### timeout
+
+  
+```
+int32_t OHOS::USB::UsbCtrlTransfer::timeout
+```
+
+**描述:**
+
+超时时间
+
+
+### value
+
+  
+```
+int32_t OHOS::USB::UsbCtrlTransfer::value
+```
+
+**描述:**
+
+请求值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_use_buffer_type.md b/zh-cn/device-dev/reference/hdi-apis/_use_buffer_type.md
new file mode 100644
index 0000000000000000000000000000000000000000..99e2e88d43d8cea5b32d737fca929bc64e8772cb
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_use_buffer_type.md
@@ -0,0 +1,77 @@
+# UseBufferType
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [size](#size) | 结构体大小 | 
+| [version](#version) | 组件版本信息 | 
+| [portIndex](#portindex) | 端口索引 | 
+| [bufferType](#buffertype) | Buffer类型 | 
+
+
+## **详细描述**
+
+UseBuffer类型定义。
+
+
+## **类成员变量说明**
+
+
+### bufferType
+
+  
+```
+uint32_t UseBufferType::bufferType
+```
+
+**描述:**
+
+Buffer类型
+
+
+### portIndex
+
+  
+```
+uint32_t UseBufferType::portIndex
+```
+
+**描述:**
+
+端口索引
+
+
+### size
+
+  
+```
+uint32_t UseBufferType::size
+```
+
+**描述:**
+
+结构体大小
+
+
+### version
+
+  
+```
+union OMX_VERSIONTYPE UseBufferType::version
+```
+
+**描述:**
+
+组件版本信息
diff --git a/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..fe896715602f302e112f2b7ce8a6965bc4a6b264
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md
@@ -0,0 +1,54 @@
+# UserAuthTypes.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [ExecutorRegisterInfo](_executor_register_info.md) | 执行器注册信息。&nbsp;[更多...](_executor_register_info.md) | 
+| [ExecutorInfo](_executor_info.md) | 执行器信息。&nbsp;[更多...](_executor_info.md) | 
+| [ScheduleInfo](_schedule_info.md) | 调度信息。&nbsp;[更多...](_schedule_info.md) | 
+| [AuthSolution](_auth_solution.md) | 认证方案。&nbsp;[更多...](_auth_solution.md) | 
+| [ExecutorSendMsg](_executor_send_msg.md) | 执行器发送的消息。&nbsp;[更多...](_executor_send_msg.md) | 
+| [AuthResultInfo](_auth_result_info.md) | 用户身份认证结果信息。&nbsp;[更多...](_auth_result_info.md) | 
+| [IdentifyResultInfo](_identify_result_info.md) | 用户身份识别结果信息。&nbsp;[更多...](_identify_result_info.md) | 
+| [EnrollParam](_enroll_param.md) | 注册认证凭据参数。&nbsp;[更多...](_enroll_param.md) | 
+| [CredentialInfo](_credential_info.md) | 认证凭据信息。&nbsp;[更多...](_credential_info.md) | 
+| [EnrolledInfo](_enrolled_info.md) | 注册信息。&nbsp;[更多...](_enrolled_info.md) | 
+| [EnrollResultInfo](_enroll_resultinfo.md) | 录入结果信息。[更多...](_enroll_resultinfo.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AuthType](_hdf_user_auth.md#authtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN&nbsp;=&nbsp;1,&nbsp;FACE&nbsp;=&nbsp;2,&nbsp;FINGERPRINT&nbsp;=&nbsp;4,&nbsp;ALL&nbsp;=&nbsp;0&nbsp;} | 枚举用户认证凭据类型。&nbsp;[更多...](_hdf_user_auth.md#authtype) | 
+| [ExecutorRole](_hdf_user_auth.md#executorrole)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;COLLECTOR&nbsp;=&nbsp;1,&nbsp;VERIFIER&nbsp;=&nbsp;2,&nbsp;ALL_IN_ONE&nbsp;=&nbsp;3&nbsp;} | 枚举执行器角色。&nbsp;[更多...](_hdf_user_auth.md#executorrole) | 
+| [ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;ESL0&nbsp;=&nbsp;0,&nbsp;ESL1&nbsp;=&nbsp;1,&nbsp;ESL2&nbsp;=&nbsp;2,&nbsp;ESL3&nbsp;=&nbsp;3&nbsp;} | 枚举执行器安全等级。&nbsp;[更多...](_hdf_user_auth.md#executorsecurelevel) | 
+| [PinSubType](_hdf_user_auth.md#pinsubtype)&nbsp;:&nbsp;int&nbsp;{&nbsp;&nbsp;&nbsp;PIN\_SIX&nbsp;=&nbsp;10000,&nbsp;PIN\_NUMBER&nbsp;=&nbsp;10001,&nbsp;PIN\_MIX&nbsp;=&nbsp;10002&nbsp;} | 口令认证子类型。&nbsp;[更多...](_hdf_user_auth.md#pinsubtype) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义用户认证驱动的枚举类和数据结构。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md b/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..126685bf071258a5a15d65dc8804d274f1a55325
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md
@@ -0,0 +1,59 @@
+# ExecutorInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| executorIndex | 用户认证框架的执行器索引。 | 
+| info | 执行器注册信息。 | 
+
+
+## **详细描述**
+
+执行器信息。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **类成员变量说明**
+
+
+### executorIndex
+
+  
+```
+unsigned long ExecutorInfo::executorIndex
+```
+
+**描述:**
+
+用户认证框架的执行器索引。
+
+
+### info
+
+  
+```
+struct ExecutorRegisterInfo ExecutorInfo::info
+```
+
+**描述:**
+
+执行器注册信息[ExecutorRegisterInfo](_executor_register_info.md)。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_verify_alloc_info.md b/zh-cn/device-dev/reference/hdi-apis/_verify_alloc_info.md
new file mode 100644
index 0000000000000000000000000000000000000000..dc697ac80a3a92a5e11de4a8454af11cf5bc5a5b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_verify_alloc_info.md
@@ -0,0 +1,26 @@
+# VerifyAllocInfo
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [width](_display.md#width-77) | 分配内存的宽度 | 
+| [height](_display.md#height-77) | 分配内存的高度 | 
+| [usage](_display.md#usage-22) | 内存的用处 | 
+| [format](_display.md#format-22) | 分配内存的像素格式 | 
+
+
+## **详细描述**
+
+用于验证内存分配信息的结构体定义。
diff --git a/zh-cn/device-dev/reference/hdi-apis/_vibrator.md b/zh-cn/device-dev/reference/hdi-apis/_vibrator.md
new file mode 100644
index 0000000000000000000000000000000000000000..b3d4c3a0a251d34fd3722591f477e63b3f86f38e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_vibrator.md
@@ -0,0 +1,171 @@
+# Vibrator
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [vibrator_if.h](vibrator__if_8h.md) | 定义马达数据结构,包括马达模式和效果振动。 | 
+| [vibrator_type.h](vibrator__type_8h.md) | 定义马达数据结构,包括马达模式和效果振动。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [VibratorInterface](_vibrator_interface.md) | 提供Vibrator设备基本控制操作接口。[更多...](_vibrator_interface.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [VibratorMode](#vibratormode)&nbsp;{&nbsp;VIBRATOR_MODE_ONCE&nbsp;=&nbsp;0,&nbsp;VIBRATOR_MODE_PRESET&nbsp;=&nbsp;1,&nbsp;VIBRATOR_MODE_BUTT&nbsp;} | 枚举马达振动模式。&nbsp;[更多...](#vibratormode) | 
+| [VibratorStatus](#vibratorstatus)&nbsp;{&nbsp;VIBRATOR_SUCCESS&nbsp;=&nbsp;0,&nbsp;VIBRATOR_NOT_PERIOD&nbsp;=&nbsp;-1,&nbsp;&nbsp;VIBRATOR_NOT_INTENSITY&nbsp;&nbsp;=&nbsp;-2,&nbsp;&nbsp;VIBRATOR_NOT_FREQUENCY=&nbsp;-3} | 枚举马达振动模式。[更多...](#vibratorstatus) | 
+| [VibratorInfo](#vibratorinfo)&nbsp;{&nbsp;isSupportIntensity,&nbsp;isSupportFrequency,&nbsp;intensityMaxValue,&nbsp;intensityMinValue,&nbsp;frequencyMaxValue,&nbsp;frequencyMinValue} | 定义马达参数。[更多...](#vibratorinfo) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [NewVibratorInterfaceInstance](#newvibratorinterfaceinstance)&nbsp;(void) | 创建一个VibratorInterface实例。&nbsp;[更多...](#newvibratorinterfaceinstance) | 
+| [FreeVibratorInterfaceInstance](#freevibratorinterfaceinstance)&nbsp;(void) | 释放VibratorInterface实例以及相关资源。&nbsp;[更多...](#freevibratorinterfaceinstance) | 
+
+
+## **详细描述**
+
+马达驱动对马达服务提供通用的接口能力。
+
+服务获取驱动对象或者代理后,马达服务启动或停止振动。 通过驱动程序对象或代理提供使用功能。
+
+**Since:**
+
+2.2
+
+**版本**
+
+1.0:
+
+
+## **枚举类型说明**
+
+
+### VibratorMode
+
+  
+```
+enum VibratorMode
+```
+
+**描述:**
+
+枚举马达振动模式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| VIBRATOR_MODE_ONCE | 表示给定持续时间内的一次性振动。 | 
+| VIBRATOR_MODE_PRESET | 表示具有预置效果的周期性振动。 | 
+| VIBRATOR_MODE_BUTT | 表示效果模式无效。 | 
+
+
+### VibratorStatus
+
+  
+```
+enum VibratorStatus
+```
+
+**描述:**
+
+枚举马达振动模式。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| VIBRATOR_SUCCESS | 操作成功。 | 
+| VIBRATOR_NOT_PERIOD | 不支持振动周期设置。 | 
+| VIBRATOR_NOT_INTENSITY | 不支持振幅设置。 | 
+| VIBRATOR_NOT_FREQUENCY | 不支持频率设置。 | 
+
+
+### VibratorInfo
+
+  
+```
+enum VibratorInfo
+```
+
+**描述:**
+
+定义马达参数。
+
+参数包括设置马达振幅和频率以及振幅和频率的范围。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| isSupportIntensity | 设置马达振幅。1表示支持,0表示不支持。 | 
+| isSupportFrequency | 设置马达频率。1表示支持,0表示不支持。 | 
+| intensityMaxValue | 最大振幅。 | 
+| intensityMinValue | 最小振幅。 | 
+| frequencyMaxValue | 最大频率。 | 
+| frequencyMinValue | 最小频率。 | 
+
+
+## **函数说明**
+
+
+### FreeVibratorInterfaceInstance()
+
+  
+```
+int32_t FreeVibratorInterfaceInstance (void )
+```
+
+**描述:**
+
+释放VibratorInterface实例以及相关资源。
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+### NewVibratorInterfaceInstance()
+
+  
+```
+const struct VibratorInterface* NewVibratorInterfaceInstance (void )
+```
+
+**描述:**
+
+创建一个VibratorInterface实例。
+
+获的马达接口实例可用于控制马达按照配置进行振动。
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/_vibrator_interface.md b/zh-cn/device-dev/reference/hdi-apis/_vibrator_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..3812f340bae039c6c2d64f9cb25ffa59bab7b3b8
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_vibrator_interface.md
@@ -0,0 +1,208 @@
+# VibratorInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Vibrator](_vibrator.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| (&nbsp;[StartOnce](#startonce)&nbsp;)([in]&nbsp;uint32_t&nbsp;duration) | 控制马达以执行给定持续时间的一次性振动。&nbsp;[更多...](#startonce) | 
+| (&nbsp;[Start](#start)&nbsp;)([in]&nbsp;const&nbsp;char&nbsp;\*effectType) | 控制马达以预置效果执行周期性振动。&nbsp;[更多...](#start) | 
+| (&nbsp;[Stop](#stop)&nbsp;)([in]&nbsp;enum&nbsp;[VibratorMode](_vibrator.md#vibratormode)&nbsp;mode) | 停止马达振动。&nbsp;[更多...](#stop) | 
+| (&nbsp;[GetVibratorInfo](#getvibratorinfo))([out]&nbsp;struct&nbsp;VibratorInfo&nbsp;\*\*vibratorInfo) | 获取有关系统中支持设置振幅和频率的所有马达信息。[更多...](#getvibratorinfo) | 
+| (&nbsp;[EnableVibratorModulation](#enablevibratormodulation))(uint32_t&nbsp;duration,&nbsp;int32_t&nbsp;intensity,&nbsp;int32_t&nbsp;frequency) | 根据传入的振动效果启动马达。&nbsp;[更多...](#enablevibratormodulation) | 
+
+
+## **详细描述**
+
+提供Vibrator设备基本控制操作接口。
+
+操作包括马达模式和效果振动、停止马达振动。
+
+
+## **类成员变量说明**
+
+
+### Start
+
+  
+```
+int32_t(*VibratorInterface::Start) ([in] const char *effectType)
+```
+
+**描述:**
+
+控制马达以预置效果执行周期性振动。
+
+单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| effectType | 指向指示预置效果类型的指针。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+### StartOnce
+
+  
+```
+int32_t(*VibratorInterface::StartOnce) ([in] uint32_t duration)
+```
+
+**描述:**
+
+控制马达以执行给定持续时间的一次性振动。
+
+单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| duration | 指示一次性振动的持续时间,以毫秒为单位。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+### Stop
+
+  
+```
+int32_t(*VibratorInterface::Stop) ([in] enum VibratorMode mode)
+```
+
+**描述:**
+
+停止马达振动。
+
+马达启动前,必须在任何模式下停止振动。此功能用在振动过程之后。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| mode | 指示振动模式,可以是一次性或周期性的,详见[VibratorMode](_vibrator.md#vibratormode)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
+
+
+### GetVibratorInfo
+
+  
+```
+int32_t (*VibratorInterface::GetVibratorInfo)([out] struct VibratorInfo **vibratorInfo)
+```
+
+**描述:**
+
+获取有关系统中支持设置振幅和频率的所有马达信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| vibratorInfo | 表示指向马达信息的指针,详见&nbsp;[VibratorInfo](_vibrator.md#vibratorinfo)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.1
+
+
+### EnableVibratorModulation
+
+  
+```
+int32_t (*VibratorInterface::EnableVibratorModulation)(uint32_t duration, int32_t intensity, int32_t frequency);
+```
+
+**描述:**
+
+根据传入的振动效果启动马达。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| duration | 表示马达振动的持续时间,以毫秒为单位。 | 
+| intensity | 表示振动周期内的马达振幅。 | 
+| frequency | 表示振动周期内的马达频率。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果不支持振动周期设置,则返回-1。
+
+如果不支持振幅设置,则返回-2。
+
+如果不支持频率设置,则返回-3。
+
+
+**Since:**
+
+
+3.2
+
+
+**Version:**
+
+
+1.1
diff --git a/zh-cn/device-dev/reference/hdi-apis/_video_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/_video_port_cap.md
new file mode 100644
index 0000000000000000000000000000000000000000..0b3aea7ea7efe0a9d32a357d6432cc438d455b36
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_video_port_cap.md
@@ -0,0 +1,116 @@
+# VideoPortCap
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [minSize](#minsize) | 支持的最小分辨率 | 
+| [maxSize](#maxsize) | 支持的最大分辨率 | 
+| [whAlignment](#whalignment) | 宽高对齐值 | 
+| [blockCount](#blockcount) | 支持的块数量范围 | 
+| [blocksPerSecond](#blockspersecond) | 每秒可处理的块数量范围 | 
+| [blockSize](#blocksize) | 支持的块大小 | 
+| [supportPixFmts](#supportpixfmts)&nbsp;[[PIX_FORMAT_NUM](_codec.md#gadb8c6478388b68c09835ebe093a8920a)] | 支持的像素格式 | 
+
+
+## **详细描述**
+
+定义视频编解码能力。
+
+
+## **类成员变量说明**
+
+
+### blockCount
+
+  
+```
+RangeValue VideoPortCap::blockCount
+```
+
+**描述:**
+
+支持的块数量范围
+
+
+### blockSize
+
+  
+```
+Rect VideoPortCap::blockSize
+```
+
+**描述:**
+
+支持的块大小
+
+
+### blocksPerSecond
+
+  
+```
+RangeValue VideoPortCap::blocksPerSecond
+```
+
+**描述:**
+
+每秒可处理的块数量范围
+
+
+### maxSize
+
+  
+```
+Rect VideoPortCap::maxSize
+```
+
+**描述:**
+
+支持的最大分辨率
+
+
+### minSize
+
+  
+```
+Rect VideoPortCap::minSize
+```
+
+**描述:**
+
+支持的最小分辨率
+
+
+### supportPixFmts
+
+  
+```
+int32_t VideoPortCap::supportPixFmts[PIX_FORMAT_NUM]
+```
+
+**描述:**
+
+支持的像素格式
+
+
+### whAlignment
+
+  
+```
+Alignment VideoPortCap::whAlignment
+```
+
+**描述:**
+
+宽高对齐值
diff --git a/zh-cn/device-dev/reference/hdi-apis/_w_l_a_n.md b/zh-cn/device-dev/reference/hdi-apis/_w_l_a_n.md
new file mode 100644
index 0000000000000000000000000000000000000000..1abeadfea0e954a557e821a716cab04c96aa158c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/_w_l_a_n.md
@@ -0,0 +1,304 @@
+# WLAN
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [wifi_hal.h](wifi__hal_8h.md) | 提供给WLAN服务的WLAN基本能力接口。 | 
+| [wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md) | 提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。 | 
+| [wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md) | 提供WLAN基本特性能力。 | 
+| [wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md) | 提供WLAN的STA特性能力。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IWiFi](_i_wi_fi.md) | HAL对WLAN服务提供的基本能力。&nbsp;[更多...](_i_wi_fi.md) | 
+| [StaInfo](_sta_info.md) | 描述与AP连接的STA的基本信息&nbsp;[更多...](_sta_info.md) | 
+| [IWiFiAp](_i_wi_fi_ap.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。&nbsp;[更多...](_i_wi_fi_ap.md) | 
+| [IWiFiBaseFeature](_i_wi_fi_base_feature.md) | WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。&nbsp;[更多...](_i_wi_fi_base_feature.md) | 
+| [IWiFiSta](_i_wi_fi_sta.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。&nbsp;[更多...](_i_wi_fi_sta.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| IFNAME_MAX_LEN&nbsp;&nbsp;&nbsp;&nbsp;16 | 网卡名称最大长度。 | 
+| WIFI_MAC_ADDR_LENGTH&nbsp;&nbsp;&nbsp;&nbsp;6 | WLAN的MAC地址长度。 | 
+| ERR_UNAUTH_ACCESS&nbsp;&nbsp;&nbsp;&nbsp;(-6) | 定义访问失败错误码。 | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([CallbackFunc](#callbackfunc))&nbsp;(uint32_t&nbsp;event,&nbsp;void&nbsp;\*data,&nbsp;const&nbsp;char&nbsp;\*ifName) | 定义IWiFi回调函数的原型,监听异步事件。&nbsp;[更多...](#callbackfunc) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [FeatureType](#featuretype)&nbsp;{&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_UNSPECIFIED,&nbsp;PROTOCOL_80211_IFTYPE_ADHOC,&nbsp;PROTOCOL_80211_IFTYPE_STATION,&nbsp;PROTOCOL_80211_IFTYPE_AP,&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_AP_VLAN,&nbsp;PROTOCOL_80211_IFTYPE_WDS,&nbsp;PROTOCOL_80211_IFTYPE_MONITOR,&nbsp;PROTOCOL_80211_IFTYPE_MESH_POINT,&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_P2P_CLIENT,&nbsp;PROTOCOL_80211_IFTYPE_P2P_GO,&nbsp;PROTOCOL_80211_IFTYPE_P2P_DEVICE,&nbsp;PROTOCOL_80211_IFTYPE_NUM&nbsp;} | 枚举WLAN相关特性的类型[FeatureType](#featuretype)。&nbsp;[更多...](#featuretype) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [WifiConstruct](#wificonstruct)&nbsp;(struct&nbsp;[IWiFi](_i_wi_fi.md)&nbsp;\*\*wifiInstance) | 创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。&nbsp;[更多...](#wificonstruct) | 
+| [WifiDestruct](#wifidestruct)&nbsp;(struct&nbsp;[IWiFi](_i_wi_fi.md)&nbsp;\*\*wifiInstance) | 销毁IWiFi结构体并释放相关资源。&nbsp;[更多...](#wifidestruct) | 
+| [InitApFeature](#initapfeature)&nbsp;(struct&nbsp;[IWiFiAp](_i_wi_fi_ap.md)&nbsp;\*\*fe) | 初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](#featuretype)时调用。&nbsp;[更多...](#initapfeature) | 
+| [InitBaseFeature](#initbasefeature)&nbsp;(struct&nbsp;[IWiFiBaseFeature](_i_wi_fi_base_feature.md)&nbsp;\*\*fe) | WLAN服务创建任何类型的特性{\@Link&nbsp;FeatureType}时,都需要调用此函数。&nbsp;[更多...](#initbasefeature) | 
+| [InitStaFeature](#initstafeature)&nbsp;(struct&nbsp;[IWiFiSta](_i_wi_fi_sta.md)&nbsp;\*\*fe) | 初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](#featuretype)时调用。&nbsp;[更多...](#initstafeature) | 
+
+
+## **详细描述**
+
+WLAN模块向上层WLAN服务提供了统一接口。
+
+HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点,扫描,关联WLAN热点,WLAN平台芯片管理,网络数据缓冲的申请、释放、移动等操作,网络设备管理,电源管理等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **类型定义说明**
+
+
+### CallbackFunc
+
+  
+```
+typedef int32_t(* CallbackFunc) (uint32_t event, void *data, const char *ifName)
+```
+
+**描述:**
+
+定义IWiFi回调函数的原型,监听异步事件。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 输入参数,回调传入的事件类型标识。 | 
+| data | 输入参数,回调传入的数据。 | 
+| ifName | 输入参数,网卡名称。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+## **枚举类型说明**
+
+
+### FeatureType
+
+  
+```
+enum FeatureType
+```
+
+**描述:**
+
+枚举WLAN相关特性的类型[FeatureType](#featuretype)。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PROTOCOL_80211_IFTYPE_UNSPECIFIED | 未定义的类型 | 
+| PROTOCOL_80211_IFTYPE_ADHOC | 特设型网络 | 
+| PROTOCOL_80211_IFTYPE_STATION | 工作站 | 
+| PROTOCOL_80211_IFTYPE_AP | 接入点 | 
+| PROTOCOL_80211_IFTYPE_AP_VLAN | 虚拟接入点 | 
+| PROTOCOL_80211_IFTYPE_WDS | 无线分布式系统 | 
+| PROTOCOL_80211_IFTYPE_MONITOR | 网络监听器 | 
+| PROTOCOL_80211_IFTYPE_MESH_POINT | 组网 | 
+| PROTOCOL_80211_IFTYPE_P2P_CLIENT | 对等网络客户端 | 
+| PROTOCOL_80211_IFTYPE_P2P_GO | 对等网络群组所有者 | 
+| PROTOCOL_80211_IFTYPE_P2P_DEVICE | 对等网络设备 | 
+| PROTOCOL_80211_IFTYPE_NUM | 网口的数目 | 
+
+
+## **函数说明**
+
+
+### InitApFeature()
+
+  
+```
+int32_t InitApFeature (struct IWiFiAp **fe)
+```
+
+**描述:**
+
+初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](#featuretype)时调用。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| fe | 输入参数,AP特性[IWiFiAp](_i_wi_fi_ap.md)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### InitBaseFeature()
+
+  
+```
+int32_t InitBaseFeature (struct IWiFiBaseFeature **fe)
+```
+
+**描述:**
+
+WLAN服务创建任何类型的特性{\@Link FeatureType}时,都需要调用此函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| fe | 输入参数,基本特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### InitStaFeature()
+
+  
+```
+int32_t InitStaFeature (struct IWiFiSta **fe)
+```
+
+**描述:**
+
+初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](#featuretype)时调用。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| fe | 输出参数,STA特性[IWiFiSta](_i_wi_fi_sta.md)。 | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### WifiConstruct()
+
+  
+```
+int32_t WifiConstruct (struct IWiFi **wifiInstance)
+```
+
+**描述:**
+
+创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| wifiInstance | HAL服务对象[IWiFi](_i_wi_fi.md) | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
+
+
+### WifiDestruct()
+
+  
+```
+int32_t WifiDestruct (struct IWiFi **wifiInstance)
+```
+
+**描述:**
+
+销毁IWiFi结构体并释放相关资源。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| wifiInstance | HAL服务对象[IWiFi](_i_wi_fi.md) | 
+
+**返回:**
+
+如果操作成功,则返回0。
+
+如果操作失败,则返回负值。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/annotated.md b/zh-cn/device-dev/reference/hdi-apis/annotated.md
new file mode 100644
index 0000000000000000000000000000000000000000..86ba79c685e4f78974093e893d95a35995197b62
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/annotated.md
@@ -0,0 +1,267 @@
+# 结构体
+
+
+
+- **[__attribute__](____attribute____.md)**
+
+- **[Alignment](_alignment.md)**
+
+- **[AllocInfo](_alloc_info.md)**
+
+- **[AudioAdapter](_audio_adapter.md)**
+
+- **[AudioAdapterDescriptor](_audio_adapter_descriptor.md)**
+
+- **[AudioAttribute](_audio_attribute.md)**
+
+- **[AudioCapture](_audio_capture.md)**
+
+- **[AudioControl](_audio_control.md)**
+
+- **[AudioDevExtInfo](_audio_dev_ext_info.md)**
+
+- **[AudioDeviceDescriptor](_audio_device_descriptor.md)**
+
+- **[AudioManager](_audio_manager.md)**
+
+- **[AudioMixExtInfo](_audio_mix_ext_info.md)**
+
+- **[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)**
+
+- **[AudioPort](_audio_port.md)**
+
+- **[AudioPortCap](_audio_port_cap.md)**
+
+- **[AudioPortCapability](_audio_port_capability.md)**
+
+- **[AudioRender](_audio_render.md)**
+
+- **[AudioRoute](_audio_route.md)**
+
+- **[AudioRouteNode](_audio_route_node.md)**
+
+- **[AudioSampleAttributes](_audio_sample_attributes.md)**
+
+- **[AudioScene](_audio_scene.md)**
+
+- **[AudioSceneDescriptor](_audio_scene_descriptor.md)**
+
+- **[AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md)**
+
+- **[AudioSessionExtInfo](_audio_session_ext_info.md)**
+
+- **[AudioSubPortCapability](_audio_sub_port_capability.md)**
+
+- **[AudioTimeStamp](_audio_time_stamp.md)**
+
+- **[AudioVolume](_audio_volume.md)**
+
+- **[AuthResultInfo](_auth_result_info.md)**
+
+- **[AuthSolution](_auth_solution.md)**
+
+- **[BatteryInfo](_battery_info.md)**
+
+- **[BufferData](_buffer_data.md)**
+
+- **[CodecCallbackType](_codec_callback_type.md)**
+
+- **[CodecCompCapability](_codec_comp_capability.md)**
+
+- **[CodecComponentManager](_codec_component_manager.md)**
+
+- **[CodecComponentType](_codec_component_type.md)**
+
+- **[CompVerInfo](_comp_ver_info.md)**
+
+- **[CredentialInfo](_credential_info.md)**
+
+- **[DeviceFuncs](_device_funcs.md)**
+
+- **[DeviceInfo](_device_info.md)**
+
+- **[DisplayCapability](_display_capability.md)**
+
+- **[DisplayInfo](_display_info.md)**
+
+- **[DisplayModeInfo](_display_mode_info.md)**
+
+- **[EnrolledInfo](_enrolled_info.md)**
+
+- **[EnrollParam](_enroll_param.md)**
+
+- **[EnrollResultInfo](_enroll_resultinfo.md)**
+
+- **[EventInfo](_event_info.md)**
+
+- **[EventPackage](_event_package.md)**
+
+- **[ExecutorInfo](_executor_info.md)**
+
+- **[ExecutorInfo](_user_executor_info.md)**
+
+- **[ExecutorRegisterInfo](_executor_register_info.md)**
+
+- **[ExecutorSendMsg](_executor_send_msg.md)**
+
+- **[GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md)**
+
+- **[GfxFuncs](_gfx_funcs.md)**
+
+- **[GfxOpt](_gfx_opt.md)**
+
+- **[GrallocFuncs](_gralloc_funcs.md)**
+
+- **[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)**
+
+- **[HDRCapability](_h_d_r_capability.md)**
+
+- **[HDRMetaData](_h_d_r_meta_data.md)**
+
+- **[IBatteryCallback](interface_i_battery_callback.md)**
+
+- **[IBatteryInterface](interface_i_battery_interface.md)**
+
+- **[ICircle](_i_circle.md)**
+
+- **[IdentifyResultInfo](_identify_result_info.md)**
+
+- **[IExecutor](interface_i_executor.md)**
+
+- **[IExecutor](interface_pin_i_executor.md)**
+
+- **[IExecutorCallback](interface_i_executor_callback.md)**
+
+- **[IExecutorCallback](interface_pin_i_executor_callback.md)**
+
+- **[IFaceAuthInterface](interface_i_face_auth_interface.md)**
+
+- **[IInputInterface](_i_input_interface.md)**
+
+- **[ILine](_i_line.md)**
+
+- **[InputController](_input_controller.md)**
+
+- **[InputExtraCmd](_input_extra_cmd.md)**
+
+- **[InputManager](_input_manager.md)**
+
+- **[InputReporter](_input_reporter.md)**
+
+- **[InputReportEventCb](_input_report_event_cb.md)**
+
+- **[IPinAuthInterface](interface_i_pin_auth_interface.md)**
+
+- **[IPowerHdiCallback](interface_i_power_hdi_callback.md)**
+
+- **[IPowerInterface](interface_i_power_interface.md)**
+
+- **[IRect](_i_rect.md)**
+
+- **[ISurface](_i_surface.md)**
+
+- **[IThermalCallback](interface_i_thermal_callback.md)**
+
+- **[IThermalInterface](interface_i_thermal_interface.md)**
+
+- **[IUserAuthInterface](interface_i_user_auth_interface.md)**
+
+- **[IWiFi](_i_wi_fi.md)**
+
+- **[IWiFiAp](_i_wi_fi_ap.md)**
+
+- **[IWiFiBaseFeature](_i_wi_fi_base_feature.md)**
+
+- **[IWiFiSta](_i_wi_fi_sta.md)**
+
+- **[LayerAlpha](_layer_alpha.md)**
+
+- **[LayerBuffer](_layer_buffer.md)**
+
+- **[LayerFuncs](_layer_funcs.md)**
+
+- **[LayerInfo](_layer_info.md)**
+
+- **[LightEffect](_light_effect.md)**
+
+- **[LightFlashEffect](_light_flash_effect.md)**
+
+- **[LightInfo](_light_info.md)**
+
+- **[LightInterface](_light_interface.md)**
+
+- **[OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)**
+
+- **[OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)**
+
+- **[OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)**
+
+- **[OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)**
+
+- **[OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)**
+
+- **[OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md)**
+
+- **[OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)**
+
+- **[OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)**
+
+- **[OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)**
+
+- **[OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)**
+
+- **[OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)**
+
+- **[OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)**
+
+- **[OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)**
+
+- **[OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)**
+
+- **[OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)**
+
+- **[OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)**
+
+- **[OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)**
+
+- **[OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)**
+
+- **[OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)**
+
+- **[OmxCodecBuffer](_omx_codec_buffer.md)**
+
+- **[PortCap](union_port_cap.md)**
+
+- **[PresentTimestamp](_present_timestamp.md)**
+
+- **[PropertyObject](_property_object.md)**
+
+- **[RangeValue](_range_value.md)**
+
+- **[Rect](_rect.md)**
+
+- **[Rectangle](_rectangle.md)**
+
+- **[ScheduleInfo](_schedule_info.md)**
+
+- **[SensorEvents](_sensor_events.md)**
+
+- **[SensorInformation](_sensor_information.md)**
+
+- **[SensorInterface](_sensor_interface.md)**
+
+- **[StaInfo](_sta_info.md)**
+
+- **[SupportBufferType](_support_buffer_type.md)**
+
+- **[TemplateInfo](_template_info.md)**
+
+- **[ThermalZoneInfo](_thermal_zone_info.md)**
+
+- **[UseBufferType](_use_buffer_type.md)**
+
+- **[VerifyAllocInfo](_verify_alloc_info.md)**
+
+- **[VibratorInterface](_vibrator_interface.md)**
+
+- **[VideoPortCap](_video_port_cap.md)**
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__adapter_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__adapter_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..39a1c6b4c753d39fa2c89bf7aea12435a1a1397d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__adapter_8h.md
@@ -0,0 +1,31 @@
+# audio_adapter.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioAdapter](_audio_adapter.md) | AudioAdapter音频适配器接口&nbsp;[更多...](_audio_adapter.md) | 
+
+
+## **详细描述**
+
+Audio适配器的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__attribute_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__attribute_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..095bcf40db692f78de203acd93a8bf9d0058821d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__attribute_8h.md
@@ -0,0 +1,31 @@
+# audio_attribute.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioAttribute](_audio_attribute.md) | AudioAttribute音频属性接口&nbsp;[更多...](_audio_attribute.md) | 
+
+
+## **详细描述**
+
+Audio属性的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__capture_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__capture_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..62573f64322601ee09e1172bb3e0036654ad439d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__capture_8h.md
@@ -0,0 +1,31 @@
+# audio_capture.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioCapture](_audio_capture.md) | AudioCapture音频录音接口&nbsp;[更多...](_audio_capture.md) | 
+
+
+## **详细描述**
+
+Audio录音的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__control_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__control_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..04254ba25ab995425f023c5dc54a8ee23a340fb1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__control_8h.md
@@ -0,0 +1,31 @@
+# audio_control.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioControl](_audio_control.md) | AudioControl音频控制接口&nbsp;[更多...](_audio_control.md) | 
+
+
+## **详细描述**
+
+Audio控制的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__manager_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..7ac28b26d6aa3f47e03f6eee4990e6b5da257a86
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__manager_8h.md
@@ -0,0 +1,38 @@
+# audio_manager.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioManager](_audio_manager.md) | AudioManager音频适配器管理接口&nbsp;[更多...](_audio_manager.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GetAudioManagerFuncs](_audio.md#getaudiomanagerfuncs)&nbsp;(void) | 获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)[更多...](_audio.md#getaudiomanagerfuncs) | 
+
+
+## **详细描述**
+
+Audio适配器管理及加载的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__render_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__render_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..7f1d7eaa28d7a5ecf2edba37ea302a9d8b96463b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__render_8h.md
@@ -0,0 +1,31 @@
+# audio_render.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioRender](_audio_render.md) | AudioRender音频播放接口&nbsp;[更多...](_audio_render.md) | 
+
+
+## **详细描述**
+
+Audio播放的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__scene_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__scene_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..09b3026f883670d286ec9bedca1e4a27f8a65d54
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__scene_8h.md
@@ -0,0 +1,31 @@
+# audio_scene.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioScene](_audio_scene.md) | AudioScene音频场景接口&nbsp;[更多...](_audio_scene.md) | 
+
+
+## **详细描述**
+
+Audio场景的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..5d038c1abc9b3780f27c3a1143fd02639cc99119
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md
@@ -0,0 +1,75 @@
+# audio_types.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioPort](_audio_port.md) | 音频端口&nbsp;[更多...](_audio_port.md) | 
+| [AudioAdapterDescriptor](_audio_adapter_descriptor.md) | 音频适配器描述符&nbsp;[更多...](_audio_adapter_descriptor.md) | 
+| [AudioDeviceDescriptor](_audio_device_descriptor.md) | 音频设备描述符&nbsp;[更多...](_audio_device_descriptor.md) | 
+| [AudioSceneDescriptor](_audio_scene_descriptor.md) | 音频场景描述符&nbsp;[更多...](_audio_scene_descriptor.md) | 
+| [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述&nbsp;[更多...](union_audio_scene_descriptor_1_1_scene_desc.md) | 
+| [AudioSampleAttributes](_audio_sample_attributes.md) | 音频采样属性&nbsp;[更多...](_audio_sample_attributes.md) | 
+| [AudioTimeStamp](_audio_time_stamp.md) | 音频时间戳&nbsp;[更多...](_audio_time_stamp.md) | 
+| [AudioSubPortCapability](_audio_sub_port_capability.md) | 音频子端口的支持能力&nbsp;[更多...](_audio_sub_port_capability.md) | 
+| [AudioPortCapability](_audio_port_capability.md) | 音频端口的支持能力&nbsp;[更多...](_audio_port_capability.md) | 
+| [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) | mmap缓冲区描述符&nbsp;[更多...](_audio_mmap_buffer_descripter.md) | 
+| [AudioDevExtInfo](_audio_dev_ext_info.md) | 音频设备拓展信息&nbsp;[更多...](_audio_dev_ext_info.md) | 
+| [AudioMixExtInfo](_audio_mix_ext_info.md) | 音轨拓展信息&nbsp;[更多...](_audio_mix_ext_info.md) | 
+| [AudioSessionExtInfo](_audio_session_ext_info.md) | 会话拓展信息&nbsp;[更多...](_audio_session_ext_info.md) | 
+| [AudioRouteNode](_audio_route_node.md) | 音频路由节点&nbsp;[更多...](_audio_route_node.md) | 
+| [AudioRoute](_audio_route.md) | 音频路由信息&nbsp;[更多...](_audio_route.md) | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| [AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) | 音频句柄 | 
+| ([RenderCallback](_audio.md#rendercallback))&nbsp;(enum&nbsp;[AudioCallbackType](_audio.md#audiocallbacktype),&nbsp;void&nbsp;\*reserved,&nbsp;void&nbsp;\*cookie) | 回调函数指针&nbsp;[更多...](_audio.md#rendercallback) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AudioPortDirection](_audio.md#audioportdirection)&nbsp;{&nbsp;PORT_OUT&nbsp;=&nbsp;0x1u,&nbsp;PORT_IN&nbsp;=&nbsp;0x2u,&nbsp;PORT_OUT_IN&nbsp;=&nbsp;0x3u&nbsp;} | 音频端口的类型&nbsp;[更多...](_audio.md#audioportdirection) | 
+| [AudioPortPin](_audio.md#audioportpin)&nbsp;{&nbsp;&nbsp;&nbsp;PIN_NONE&nbsp;=&nbsp;0x0u,&nbsp;PIN_OUT_SPEAKER&nbsp;=&nbsp;0x1u,&nbsp;PIN_OUT_HEADSET&nbsp;=&nbsp;0x2u,&nbsp;PIN_OUT_LINEOUT&nbsp;=&nbsp;0x4u,&nbsp;&nbsp;&nbsp;PIN_OUT_HDMI&nbsp;=&nbsp;0x8u,&nbsp;PIN_OUT_USB&nbsp;=&nbsp;0x10u,&nbsp;PIN_OUT_USB_EXT&nbsp;=&nbsp;0x20u,&nbsp;PIN_IN_MIC&nbsp;=&nbsp;0x8000001u,&nbsp;&nbsp;&nbsp;PIN_IN_HS_MIC&nbsp;=&nbsp;0x8000002u,&nbsp;PIN_IN_LINEIN&nbsp;=&nbsp;0x8000004u,&nbsp;PIN_IN_USB_EXT&nbsp;=&nbsp;0x8000008u&nbsp;} | 音频适配器端口的PIN脚&nbsp;[更多...](_audio.md#audioportpin) | 
+| [AudioCategory](_audio.md#audiocategory)&nbsp;{&nbsp;AUDIO_IN_MEDIA&nbsp;=&nbsp;0,&nbsp;AUDIO_IN_COMMUNICATION,&nbsp;AUDIO_IN_RINGTONE,&nbsp;AUDIO_IN_CALL&nbsp;} | 音频类型(category)&nbsp;[更多...](_audio.md#audiocategory) | 
+| [AudioFormat](_audio.md#audioformat)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_PCM_8_BIT&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_FORMAT_PCM_16_BIT&nbsp;=&nbsp;0x2u,&nbsp;AUDIO_FORMAT_PCM_24_BIT&nbsp;=&nbsp;0x3u,&nbsp;AUDIO_FORMAT_PCM_32_BIT&nbsp;=&nbsp;0x4u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_AAC_MAIN&nbsp;=&nbsp;0x1000001u,&nbsp;AUDIO_FORMAT_AAC_LC&nbsp;=&nbsp;0x1000002u,&nbsp;AUDIO_FORMAT_AAC_LD&nbsp;=&nbsp;0x1000003u,&nbsp;AUDIO_FORMAT_AAC_ELD&nbsp;=&nbsp;0x1000004u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_AAC_HE_V1&nbsp;=&nbsp;0x1000005u,&nbsp;AUDIO_FORMAT_AAC_HE_V2&nbsp;=&nbsp;0x1000006u,&nbsp;AUDIO_FORMAT_G711A&nbsp;=&nbsp;0x2000001u,&nbsp;AUDIO_FORMAT_G711U&nbsp;=&nbsp;0x2000002u,&nbsp;&nbsp;&nbsp;AUDIO_FORMAT_G726&nbsp;=&nbsp;0x2000003u&nbsp;} | 音频格式&nbsp;[更多...](_audio.md#audioformat) | 
+| [AudioChannelMask](_audio.md#audiochannelmask)&nbsp;{&nbsp;AUDIO_CHANNEL_FRONT_LEFT&nbsp;=&nbsp;0x1,&nbsp;AUDIO_CHANNEL_FRONT_RIGHT&nbsp;=&nbsp;0x2,&nbsp;AUDIO_CHANNEL_MONO&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_CHANNEL_STEREO&nbsp;=&nbsp;0x3u&nbsp;} | 音频通道掩码(mask)&nbsp;[更多...](_audio.md#audiochannelmask) | 
+| [AudioSampleRatesMask](_audio.md#audiosampleratesmask)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_8000&nbsp;=&nbsp;0x1u,&nbsp;AUDIO_SAMPLE_RATE_MASK_12000&nbsp;=&nbsp;0x2u,&nbsp;AUDIO_SAMPLE_RATE_MASK_11025&nbsp;=&nbsp;0x4u,&nbsp;AUDIO_SAMPLE_RATE_MASK_16000&nbsp;=&nbsp;0x8u,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_22050&nbsp;=&nbsp;0x10u,&nbsp;AUDIO_SAMPLE_RATE_MASK_24000&nbsp;=&nbsp;0x20u,&nbsp;AUDIO_SAMPLE_RATE_MASK_32000&nbsp;=&nbsp;0x40u,&nbsp;AUDIO_SAMPLE_RATE_MASK_44100&nbsp;=&nbsp;0x80u,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_RATE_MASK_48000&nbsp;=&nbsp;0x100u,&nbsp;AUDIO_SAMPLE_RATE_MASK_64000&nbsp;=&nbsp;0x200u,&nbsp;AUDIO_SAMPLE_RATE_MASK_96000&nbsp;=&nbsp;0x400u,&nbsp;AUDIO_SAMPLE_RATE_MASK_INVALID&nbsp;=&nbsp;0xFFFFFFFFu&nbsp;} | 音频采样频率MASK&nbsp;[更多...](_audio.md#audiosampleratesmask) | 
+| [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)&nbsp;{&nbsp;PORT_PASSTHROUGH_LPCM&nbsp;=&nbsp;0x1,&nbsp;PORT_PASSTHROUGH_RAW&nbsp;=&nbsp;0x2,&nbsp;PORT_PASSTHROUGH_HBR2LBR&nbsp;=&nbsp;0x4,&nbsp;PORT_PASSTHROUGH_AUTO&nbsp;=&nbsp;0x8&nbsp;} | 音频端口的数据透传模式&nbsp;[更多...](_audio.md#audioportpassthroughmode) | 
+| [AudioSampleFormat](_audio.md#audiosampleformat)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S8,&nbsp;AUDIO_SAMPLE_FORMAT_S8P,&nbsp;AUDIO_SAMPLE_FORMAT_U8,&nbsp;AUDIO_SAMPLE_FORMAT_U8P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S16,&nbsp;AUDIO_SAMPLE_FORMAT_S16P,&nbsp;AUDIO_SAMPLE_FORMAT_U16,&nbsp;AUDIO_SAMPLE_FORMAT_U16P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S24,&nbsp;AUDIO_SAMPLE_FORMAT_S24P,&nbsp;AUDIO_SAMPLE_FORMAT_U24,&nbsp;AUDIO_SAMPLE_FORMAT_U24P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S32,&nbsp;AUDIO_SAMPLE_FORMAT_S32P,&nbsp;AUDIO_SAMPLE_FORMAT_U32,&nbsp;AUDIO_SAMPLE_FORMAT_U32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S64,&nbsp;AUDIO_SAMPLE_FORMAT_S64P,&nbsp;AUDIO_SAMPLE_FORMAT_U64,&nbsp;AUDIO_SAMPLE_FORMAT_U64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_F32,&nbsp;AUDIO_SAMPLE_FORMAT_F32P,&nbsp;AUDIO_SAMPLE_FORMAT_F64,&nbsp;AUDIO_SAMPLE_FORMAT_F64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_U8,&nbsp;AUDIO_SAMPLE_FMT_S16,&nbsp;AUDIO_SAMPLE_FMT_S32,&nbsp;AUDIO_SAMPLE_FMT_FLOAT,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_DOUBLE,&nbsp;AUDIO_SAMPLE_FMT_U8P,&nbsp;AUDIO_SAMPLE_FMT_S16P,&nbsp;AUDIO_SAMPLE_FMT_S32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_FLOATP,&nbsp;AUDIO_SAMPLE_FMT_DOUBLEP,&nbsp;AUDIO_SAMPLE_FMT_INVALID&nbsp;} | 原始音频样本格式&nbsp;[更多...](_audio.md#audiosampleformat) | 
+| [AudioChannelMode](_audio.md#audiochannelmode)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_CHANNEL_NORMAL&nbsp;=&nbsp;0,&nbsp;AUDIO_CHANNEL_BOTH_LEFT,&nbsp;AUDIO_CHANNEL_BOTH_RIGHT,&nbsp;AUDIO_CHANNEL_EXCHANGE,&nbsp;&nbsp;&nbsp;AUDIO_CHANNEL_MIX,&nbsp;AUDIO_CHANNEL_LEFT_MUTE,&nbsp;AUDIO_CHANNEL_RIGHT_MUTE,&nbsp;AUDIO_CHANNEL_BOTH_MUTE&nbsp;} | 音频播放的通道模式&nbsp;[更多...](_audio.md#audiochannelmode) | 
+| [AudioDrainNotifyType](_audio.md#audiodrainnotifytype)&nbsp;{&nbsp;AUDIO_DRAIN_NORMAL_MODE,&nbsp;AUDIO_DRAIN_EARLY_MODE&nbsp;} | DrainBuffer函数结束类型&nbsp;[更多...](_audio.md#audiodrainnotifytype) | 
+| [AudioCallbackType](_audio.md#audiocallbacktype)&nbsp;{&nbsp;&nbsp;&nbsp;AUDIO_NONBLOCK_WRITE_COMPELETED,&nbsp;AUDIO_DRAIN_COMPELETED,&nbsp;AUDIO_FLUSH_COMPLETED,&nbsp;AUDIO_RENDER_FULL,&nbsp;&nbsp;&nbsp;AUDIO_ERROR_OCCUR&nbsp;} | 回调函数通知事件类型&nbsp;[更多...](_audio.md#audiocallbacktype) | 
+| [AudioPortRole](_audio.md#audioportrole)&nbsp;{&nbsp;AUDIO_PORT_UNASSIGNED_ROLE&nbsp;=&nbsp;0,&nbsp;AUDIO_PORT_SOURCE_ROLE&nbsp;=&nbsp;1,&nbsp;AUDIO_PORT_SINK_ROLE&nbsp;=&nbsp;2&nbsp;} | 音频端口角色&nbsp;[更多...](_audio.md#audioportrole) | 
+| [AudioPortType](_audio.md#audioporttype)&nbsp;{&nbsp;AUDIO_PORT_UNASSIGNED_TYPE&nbsp;=&nbsp;0,&nbsp;AUDIO_PORT_DEVICE_TYPE&nbsp;=&nbsp;1,&nbsp;AUDIO_PORT_MIX_TYPE&nbsp;=&nbsp;2,&nbsp;AUDIO_PORT_SESSION_TYPE&nbsp;=&nbsp;3&nbsp;} | 音频端口类型.&nbsp;[更多...](_audio.md#audioporttype) | 
+| [AudioSessionType](_audio.md#audiosessiontype)&nbsp;{&nbsp;AUDIO_OUTPUT_STAGE_SESSION&nbsp;=&nbsp;0,&nbsp;AUDIO_OUTPUT_MIX_SESSION,&nbsp;AUDIO_ALLOCATE_SESSION,&nbsp;AUDIO_INVALID_SESSION&nbsp;} | 端口会话类型&nbsp;[更多...](_audio.md#audiosessiontype) | 
+
+
+## **详细描述**
+
+Audio模块接口定义中使用的自定义数据类型
+
+Audio模块接口定义中使用的自定义数据类型,包括音频端口、适配器描述符、设备描述符、场景描述符、采样属性、时间戳等。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/audio__volume_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__volume_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..743fa7b97a30dd5cf2fa49bc650e50de06928579
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/audio__volume_8h.md
@@ -0,0 +1,31 @@
+# audio_volume.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [AudioVolume](_audio_volume.md) | AudioVolume音频音量接口&nbsp;[更多...](_audio_volume.md) | 
+
+
+## **详细描述**
+
+Audio音量的接口定义文件。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/battery.md b/zh-cn/device-dev/reference/hdi-apis/battery.md
new file mode 100644
index 0000000000000000000000000000000000000000..1a16568662ace94731352b6bf85f4da96607314b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/battery.md
@@ -0,0 +1,118 @@
+# Battery
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [IBatteryCallback.idl](_i_battery_callback_8idl.md) | 电池信息的回调。 | 
+| [IBatteryInterface.idl](_i_battery_interface_8idl.md) | 获取、订阅电池信息的接口。 | 
+| [Types.idl](_types_8idl.md) | 电池信息相关数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IBatteryCallback](interface_i_battery_callback.md) | 电池信息的回调。&nbsp;[更多...](interface_i_battery_callback.md) | 
+| [IBatteryInterface](interface_i_battery_interface.md) | 获取、订阅电池信息的接口。&nbsp;[更多...](interface_i_battery_interface.md) | 
+| [BatteryInfo](_battery_info.md) | 电池相关信息。&nbsp;[更多...](_battery_info.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [BatteryHealthState](#batteryhealthstate)&nbsp;{&nbsp;&nbsp;&nbsp;BATTERY_HEALTH_UNKNOWN&nbsp;=&nbsp;0,&nbsp;BATTERY_HEALTH_GOOD,&nbsp;BATTERY_HEALTH_OVERHEAT,&nbsp;BATTERY_HEALTH_OVERVOLTAGE,&nbsp;&nbsp;&nbsp;BATTERY_HEALTH_COLD,&nbsp;BATTERY_HEALTH_DEAD,&nbsp;BATTERY_HEALTH_RESERVED&nbsp;} | 电池的健康状态。&nbsp;[更多...](#batteryhealthstate) | 
+| [BatteryChargeState](#batterychargestate)&nbsp;{&nbsp;&nbsp;&nbsp;CHARGE_STATE_NONE&nbsp;=&nbsp;0,&nbsp;CHARGE_STATE_ENABLE,&nbsp;CHARGE_STATE_DISABLE,&nbsp;CHARGE_STATE_FULL,&nbsp;&nbsp;&nbsp;CHARGE_STATE_RESERVED&nbsp;} | 电池的充电状态。&nbsp;[更多...](#batterychargestate) | 
+| [BatteryPluggedType](#batterypluggedtype)&nbsp;{&nbsp;&nbsp;&nbsp;PLUGGED_TYPE_NONE&nbsp;=&nbsp;0,&nbsp;PLUGGED_TYPE_AC,&nbsp;PLUGGED_TYPE_USB,&nbsp;PLUGGED_TYPE_WIRELESS,&nbsp;&nbsp;&nbsp;PLUGGED_TYPE_BUTT&nbsp;} | 电池的充电设备类型。&nbsp;[更多...](#batterypluggedtype) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | 
+
+
+## **详细描述**
+
+提供获取、订阅电池信息的接口。
+
+电池模块为电池服务提供的获取、订阅电池信息的接口。 服务获取此模块的对象或代理后,可以调用相关的接口获取电池信息、订阅电池信息的变化。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
+
+
+## **枚举类型说明**
+
+
+### BatteryChargeState
+
+  
+```
+enum BatteryChargeState
+```
+
+**描述:**
+
+电池的充电状态。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CHARGE_STATE_NONE | 表示电池充电状态未知。 | 
+| CHARGE_STATE_ENABLE | 表示电池充电状态为使能状态。 | 
+| CHARGE_STATE_DISABLE | 表示电池充电状态为停止状态。 | 
+| CHARGE_STATE_FULL | 表示电池充电状态为已充满状态。 | 
+| CHARGE_STATE_RESERVED | 预留。 | 
+
+
+### BatteryHealthState
+
+  
+```
+enum BatteryHealthState
+```
+
+**描述:**
+
+电池的健康状态。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| BATTERY_HEALTH_UNKNOWN | 表示电池健康状态未知。 | 
+| BATTERY_HEALTH_GOOD | 表示电池健康状态为正常。 | 
+| BATTERY_HEALTH_OVERHEAT | 表示电池健康状态为过热。 | 
+| BATTERY_HEALTH_OVERVOLTAGE | 表示电池健康状态为过压。 | 
+| BATTERY_HEALTH_COLD | 表示电池健康状态为低温。 | 
+| BATTERY_HEALTH_DEAD | 表示电池健康状态为耗尽。 | 
+| BATTERY_HEALTH_RESERVED | 预留。 | 
+
+
+### BatteryPluggedType
+
+  
+```
+enum BatteryPluggedType
+```
+
+**描述:**
+
+电池的充电设备类型。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| PLUGGED_TYPE_NONE | 表示连接充电器类型未知。 | 
+| PLUGGED_TYPE_AC | 表示连接的充电器类型为交流充电器。 | 
+| PLUGGED_TYPE_USB | 表示连接的充电器类型为USB充电器。 | 
+| PLUGGED_TYPE_WIRELESS | 表示连接的充电器类型为无线充电器。 | 
+| PLUGGED_TYPE_BUTT | 预留。 | 
diff --git a/zh-cn/device-dev/reference/hdi-apis/codec__callback__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__callback__if_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..901abda364d0489a74a9b6c5808360a2886eb36b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/codec__callback__if_8h.md
@@ -0,0 +1,41 @@
+# codec_callback_if.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [CodecCallbackType](_codec_callback_type.md) | Codec回调接口定义。&nbsp;[更多...](_codec_callback_type.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [CodecCallbackTypeGet](_codec.md#codeccallbacktypeget)&nbsp;(struct&nbsp;HdfRemoteService&nbsp;\*remote) | 实例化CodecCallbackType对象。&nbsp;[更多...](_codec.md#codeccallbacktypeget) | 
+| [CodecCallbackTypeRelease](_codec.md#codeccallbacktyperelease)&nbsp;(struct&nbsp;[CodecCallbackType](_codec_callback_type.md)&nbsp;\*instance) | 释放CodecCallbackType对象。&nbsp;[更多...](_codec.md#codeccallbacktyperelease) | 
+
+
+## **详细描述**
+
+主要包括回调函数接口定义。
+
+Codec模块事件上报、上报输入buffer和输出buffer处理完毕等接口定义。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..7f573637c2dbff1f5945f81c5dc0bb57550d2999
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md
@@ -0,0 +1,46 @@
+# codec_common_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [Alignment](_alignment.md) | 对齐结构定义,包含宽高的对齐值&nbsp;[更多...](_alignment.md) | 
+| [Rect](_rect.md) | 矩形的定义&nbsp;[更多...](_rect.md) | 
+| [RangeValue](_range_value.md) | 取值范围的定义&nbsp;[更多...](_range_value.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [CodecType](_codec.md#codectype)&nbsp;{&nbsp;VIDEO_DECODER,&nbsp;VIDEO_ENCODER,&nbsp;AUDIO_DECODER,&nbsp;AUDIO_ENCODER,&nbsp;&nbsp;&nbsp;INVALID_TYPE&nbsp;} | 枚举编解码的类型&nbsp;[更多...](_codec.md#codectype) | 
+| [Profile](_codec.md#profile)&nbsp;{&nbsp;INVALID_PROFILE&nbsp;=&nbsp;0,&nbsp;AAC_LC_PROFILE&nbsp;=&nbsp;0x1000,&nbsp;AAC_MAIN_PROFILE,&nbsp;AAC_HE_V1_PROFILE,&nbsp;&nbsp;&nbsp;AAC_HE_V2_PROFILE,&nbsp;AAC_LD_PROFILE,&nbsp;AAC_ELD_PROFILE,&nbsp;AVC_BASELINE_PROFILE&nbsp;=&nbsp;0x2000,&nbsp;&nbsp;&nbsp;AVC_MAIN_PROFILE,&nbsp;AVC_HIGH_PROFILE,&nbsp;HEVC_MAIN_PROFILE&nbsp;=&nbsp;0x3000,&nbsp;HEVC_MAIN_10_PROFILE&nbsp;} | 枚举Codec规格&nbsp;[更多...](_codec.md#profile) | 
+| [AudioSampleRate](_codec.md#audiosamplerate)&nbsp;{&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_8000&nbsp;=&nbsp;8000,&nbsp;AUD_SAMPLE_RATE_12000&nbsp;=&nbsp;12000,&nbsp;AUD_SAMPLE_RATE_11025&nbsp;=&nbsp;11025,&nbsp;AUD_SAMPLE_RATE_16000&nbsp;=&nbsp;16000,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_22050&nbsp;=&nbsp;22050,&nbsp;AUD_SAMPLE_RATE_24000&nbsp;=&nbsp;24000,&nbsp;AUD_SAMPLE_RATE_32000&nbsp;=&nbsp;32000,&nbsp;AUD_SAMPLE_RATE_44100&nbsp;=&nbsp;44100,&nbsp;&nbsp;&nbsp;AUD_SAMPLE_RATE_48000&nbsp;=&nbsp;48000,&nbsp;AUD_SAMPLE_RATE_64000&nbsp;=&nbsp;64000,&nbsp;AUD_SAMPLE_RATE_96000&nbsp;=&nbsp;96000,&nbsp;AUD_SAMPLE_RATE_INVALID&nbsp;} | 枚举音频采样率&nbsp;[更多...](_codec.md#audiosamplerate) | 
+| [CodecCapsMask](_codec.md#codeccapsmask)&nbsp;{&nbsp;CODEC_CAP_ADAPTIVE_PLAYBACK&nbsp;=&nbsp;0x1,&nbsp;CODEC_CAP_SECURE_PLAYBACK&nbsp;=&nbsp;0x2,&nbsp;CODEC_CAP_TUNNEL_PLAYBACK&nbsp;=&nbsp;0x4,&nbsp;CODEC_CAP_MULTI_PLANE&nbsp;=&nbsp;0x10000&nbsp;} | 枚举播放能力&nbsp;[更多...](_codec.md#codeccapsmask) | 
+| [CodecProcessMode](_codec.md#codecprocessmode)&nbsp;{&nbsp;&nbsp;&nbsp;PROCESS_BLOCKING_INPUT_BUFFER&nbsp;=&nbsp;0X1,&nbsp;PROCESS_BLOCKING_OUTPUT_BUFFER&nbsp;=&nbsp;0X2,&nbsp;PROCESS_BLOCKING_CONTROL_FLOW&nbsp;=&nbsp;0X4,&nbsp;PROCESS_NONBLOCKING_INPUT_BUFFER&nbsp;=&nbsp;0X100,&nbsp;&nbsp;&nbsp;PROCESS_NONBLOCKING_OUTPUT_BUFFER&nbsp;=&nbsp;0X200,&nbsp;PROCESS_NONBLOCKING_CONTROL_FLOW&nbsp;=&nbsp;0X400&nbsp;} | 枚举编解码处理模式&nbsp;[更多...](_codec.md#codecprocessmode) | 
+
+
+## **详细描述**
+
+Codec模块接口定义中使用的自定义数据类型。
+
+Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/codec__component__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__if_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..4e4587ac518b6a11993f76ff6f599d9d05f76bd8
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/codec__component__if_8h.md
@@ -0,0 +1,41 @@
+# codec_component_if.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [CodecComponentType](_codec_component_type.md) | Codec组件接口定义。&nbsp;[更多...](_codec_component_type.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [CodecComponentTypeGet](_codec.md#codeccomponenttypeget)&nbsp;(struct&nbsp;HdfRemoteService&nbsp;\*remote) | 实例化CodecComponentType对象。&nbsp;[更多...](_codec.md#codeccomponenttypeget) | 
+| [CodecComponentTypeRelease](_codec.md#codeccomponenttyperelease)&nbsp;(struct&nbsp;[CodecComponentType](_codec_component_type.md)&nbsp;\*instance) | 释放CodecComponentType对象。&nbsp;[更多...](_codec.md#codeccomponenttyperelease) | 
+
+
+## **详细描述**
+
+主要包括Codec组件接口定义。
+
+Codec模块提供了获取组件信息、给组件发送命令、组件参数设置、buffer轮转和控制等接口定义。创建组件后,可使用下列接口进行编解码处理。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/codec__component__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__manager_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..77ea946aef35c4d7d6254e37baee11b398c7b68f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/codec__component__manager_8h.md
@@ -0,0 +1,41 @@
+# codec_component_manager.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [CodecComponentManager](_codec_component_manager.md) | Codec组件管理类接口定义。&nbsp;[更多...](_codec_component_manager.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GetCodecComponentManager](_codec.md#getcodeccomponentmanager)&nbsp;(void) | 实例化CodecComponentManager对象。&nbsp;[更多...](_codec.md#getcodeccomponentmanager) | 
+| [CodecComponentManagerRelease](_codec.md#codeccomponentmanagerrelease)&nbsp;(void) | 释放CodecComponentManager对象。&nbsp;[更多...](_codec.md#codeccomponentmanagerrelease) | 
+
+
+## **详细描述**
+
+主要包括Codec组件管理类接口。
+
+Codec模块获取组件编解码能力集、创建组件和销毁组件等接口定义。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..c83e715ec17f67d91ff5dd89e44ffa81c5dbe3a7
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md
@@ -0,0 +1,68 @@
+# codec_component_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [VideoPortCap](_video_port_cap.md) | 定义视频编解码能力&nbsp;[更多...](_video_port_cap.md) | 
+| [AudioPortCap](_audio_port_cap.md) | 定义音频编解码能力&nbsp;[更多...](_audio_port_cap.md) | 
+| [PortCap](union_port_cap.md) | 定义音视频编解码能力&nbsp;[更多...](union_port_cap.md) | 
+| [CodecCompCapability](_codec_comp_capability.md) | 定义Codec编解码能力&nbsp;[更多...](_codec_comp_capability.md) | 
+| [OmxCodecBuffer](_omx_codec_buffer.md) | Codec&nbsp;buffer信息的定义&nbsp;[更多...](_omx_codec_buffer.md) | 
+| [CompVerInfo](_comp_ver_info.md) | 定义组件版本信息&nbsp;[更多...](_comp_ver_info.md) | 
+| [EventInfo](_event_info.md) | 定义事件上报信息&nbsp;[更多...](_event_info.md) | 
+| [SupportBufferType](_support_buffer_type.md) | SupportBuffer类型定义.&nbsp;[更多...](_support_buffer_type.md) | 
+| [UseBufferType](_use_buffer_type.md) | UseBuffer类型定义&nbsp;[更多...](_use_buffer_type.md) | 
+| [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) | BufferHandleUsage类型定义&nbsp;[更多...](_get_buffer_handle_usage_params.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| [SAMPLE_FMT_NUM](_codec.md#ga9bda75c363e9bcff915cdd521dd7ba84)&nbsp;&nbsp;&nbsp;32 | 采样格式最大值 | 
+| [UUID_LENGTH](_codec.md#ga9226162b034cc837cd977f0fcf611c2c)&nbsp;&nbsp;&nbsp;128 | 定义UUID长度 | 
+| [PIX_FORMAT_NUM](_codec.md#gadb8c6478388b68c09835ebe093a8920a)&nbsp;&nbsp;&nbsp;16 | 支持的像素格式数组大小 | 
+| [SAMPLE_FORMAT_NUM](_codec.md#gaf958b9cc535f6260e2e8b7ce42c89946)&nbsp;&nbsp;&nbsp;12 | 支持的音频采样格式数组大小 | 
+| [SAMPLE_RATE_NUM](_codec.md#ga0d905eaa05b4b6fcec76924eb795d7fe)&nbsp;&nbsp;&nbsp;16 | 支持的音频采样率数组大小 | 
+| [CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)&nbsp;&nbsp;&nbsp;16 | 支持的音频通道数组大小 | 
+| [NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)&nbsp;&nbsp;&nbsp;32 | 组件名称大小 | 
+| [PROFILE_NUM](_codec.md#gaab6353cb3662bdc672ae8ab90df529ce)&nbsp;&nbsp;&nbsp;256 | 支持的profile数组大小 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [AvCodecRole](_codec.md#avcodecrole)&nbsp;{&nbsp;MEDIA_ROLETYPE_IMAGE_JPEG&nbsp;=&nbsp;0,&nbsp;MEDIA_ROLETYPE_VIDEO_AVC,&nbsp;MEDIA_ROLETYPE_VIDEO_HEVC,&nbsp;MEDIA_ROLETYPE_AUDIO_FIRST&nbsp;=&nbsp;0x10000,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_AAC&nbsp;=&nbsp;0x10000,&nbsp;MEDIA_ROLETYPE_AUDIO_G711A,&nbsp;MEDIA_ROLETYPE_AUDIO_G711U,&nbsp;MEDIA_ROLETYPE_AUDIO_G726,&nbsp;&nbsp;&nbsp;MEDIA_ROLETYPE_AUDIO_PCM,&nbsp;MEDIA_ROLETYPE_AUDIO_MP3,&nbsp;MEDIA_ROLETYPE_INVALID&nbsp;} | 枚举音视频编解码组件类型&nbsp;[更多...](_codec.md#avcodecrole) | 
+| [AudioSampleFormat](_codec.md#audiosampleformat)&nbsp;{&nbsp;AUDIO_SAMPLE_FORMAT_S8,&nbsp;AUDIO_SAMPLE_FORMAT_S8P,&nbsp;AUDIO_SAMPLE_FORMAT_U8,&nbsp;AUDIO_SAMPLE_FORMAT_U8P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S16,&nbsp;AUDIO_SAMPLE_FORMAT_S16P,&nbsp;AUDIO_SAMPLE_FORMAT_U16,&nbsp;AUDIO_SAMPLE_FORMAT_U16P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S24,&nbsp;AUDIO_SAMPLE_FORMAT_S24P,&nbsp;AUDIO_SAMPLE_FORMAT_U24,&nbsp;AUDIO_SAMPLE_FORMAT_U24P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S32,&nbsp;AUDIO_SAMPLE_FORMAT_S32P,&nbsp;AUDIO_SAMPLE_FORMAT_U32,&nbsp;AUDIO_SAMPLE_FORMAT_U32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_S64,&nbsp;AUDIO_SAMPLE_FORMAT_S64P,&nbsp;AUDIO_SAMPLE_FORMAT_U64,&nbsp;AUDIO_SAMPLE_FORMAT_U64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FORMAT_F32,&nbsp;AUDIO_SAMPLE_FORMAT_F32P,&nbsp;AUDIO_SAMPLE_FORMAT_F64,&nbsp;AUDIO_SAMPLE_FORMAT_F64P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_U8,&nbsp;AUDIO_SAMPLE_FMT_S16,&nbsp;AUDIO_SAMPLE_FMT_S32,&nbsp;AUDIO_SAMPLE_FMT_FLOAT,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_DOUBLE,&nbsp;AUDIO_SAMPLE_FMT_U8P,&nbsp;AUDIO_SAMPLE_FMT_S16P,&nbsp;AUDIO_SAMPLE_FMT_S32P,&nbsp;&nbsp;&nbsp;AUDIO_SAMPLE_FMT_FLOATP,&nbsp;AUDIO_SAMPLE_FMT_DOUBLEP,&nbsp;AUDIO_SAMPLE_FMT_INVALID&nbsp;} | 枚举音频采样格式&nbsp;[更多...](_codec.md#audiosampleformat) | 
+| [CodecBufferType](_codec.md#codecbuffertype)&nbsp;{&nbsp;CODEC_BUFFER_TYPE_INVALID&nbsp;=&nbsp;0,&nbsp;CODEC_BUFFER_TYPE_VIRTUAL_ADDR&nbsp;=&nbsp;0x1,&nbsp;CODEC_BUFFER_TYPE_AVSHARE_MEM_FD&nbsp;=&nbsp;0x2,&nbsp;CODEC_BUFFER_TYPE_HANDLE&nbsp;=&nbsp;0x4,&nbsp;&nbsp;&nbsp;CODEC_BUFFER_TYPE_DYNAMIC_HANDLE&nbsp;=&nbsp;0x8&nbsp;} | 定义buffer类型&nbsp;[更多...](_codec.md#codecbuffertype) | 
+| [ShareMemTypes](_codec.md#sharememtypes)&nbsp;{&nbsp;READ_WRITE_TYPE&nbsp;=&nbsp;0x1,&nbsp;READ_ONLY_TYPE&nbsp;=&nbsp;0x2&nbsp;} | 枚举共享内存类型&nbsp;[更多...](_codec.md#sharememtypes) | 
+| [OmxIndexCodecExType](_codec.md#omxindexcodecextype)&nbsp;{&nbsp;OMX_IndexExtBufferTypeStartUnused&nbsp;=&nbsp;OMX_IndexKhronosExtensions&nbsp;+&nbsp;0x00a00000,&nbsp;OMX_IndexParamSupportBufferType,&nbsp;OMX_IndexParamUseBufferType,&nbsp;OMX_IndexParamGetBufferHandleUsage&nbsp;} | 枚举Codec扩展index&nbsp;[更多...](_codec.md#omxindexcodecextype) | 
+| [OmxVideoExType](_codec.md#omxvideoextype)&nbsp;{&nbsp;OMX_VIDEO_CodingHEVC&nbsp;=&nbsp;11&nbsp;} | 枚举Codec扩展编码类型&nbsp;[更多...](_codec.md#omxvideoextype) | 
+
+
+## **详细描述**
+
+Codec模块接口定义中使用的自定义数据类型。
+
+Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__device_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__device_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..7d8bb2f45071341bc1b4ab3536019f659b723353
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/display__device_8h.md
@@ -0,0 +1,48 @@
+# display_device.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [DeviceFuncs](_device_funcs.md) | 显示设备控制接口结构体,定义显示设备控制接口函数指针。&nbsp;[更多...](_device_funcs.md) | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([HotPlugCallback](_display.md#hotplugcallback))&nbsp;(uint32_t&nbsp;devId,&nbsp;bool&nbsp;connected,&nbsp;void&nbsp;\*data) | 热插拔事件回调。[更多...](_display.md#hotplugcallback) | 
+| ([VBlankCallback](_display.md#vblankcallback))&nbsp;(unsigned&nbsp;int&nbsp;sequence,&nbsp;uint64_t&nbsp;ns,&nbsp;void&nbsp;\*data) | VBlank&nbsp;事件回调。&nbsp;[更多...](_display.md#vblankcallback) | 
+| ([RefreshCallback](_display.md#refreshcallback))&nbsp;(uint32_t&nbsp;devId,&nbsp;void&nbsp;\*data) | 刷新请求回调。[更多...](_display.md#refreshcallback) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [DeviceInitialize](_display.md#deviceinitialize)&nbsp;([DeviceFuncs](_device_funcs.md)&nbsp;\*\*funcs) | 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。&nbsp;[更多...](_display.md#deviceinitialize) | 
+| [DeviceUninitialize](_display.md#deviceuninitialize)&nbsp;([DeviceFuncs](_device_funcs.md)&nbsp;\*funcs) | 取消显示设备控制接口的初始化,释放控制接口使用到的资源。&nbsp;[更多...](_display.md#deviceuninitialize) | 
+
+
+## **详细描述**
+
+显示设备控制接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__gfx_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__gfx_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..10cc061b8db3075f786370c338472ba45f72102c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/display__gfx_8h.md
@@ -0,0 +1,39 @@
+# display_gfx.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [GfxFuncs](_gfx_funcs.md) | 显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。&nbsp;[更多...](_gfx_funcs.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GfxInitialize](_display.md#gfxinitialize)&nbsp;([GfxFuncs](_gfx_funcs.md)&nbsp;\*\*funcs) | 获取硬件加速相关的操作接口指针。&nbsp;[更多...](_display.md#gfxinitialize) | 
+| [GfxUninitialize](_display.md#gfxuninitialize)&nbsp;([GfxFuncs](_gfx_funcs.md)&nbsp;\*funcs) | 释放硬件加速相关的操作接口指针。&nbsp;[更多...](_display.md#gfxuninitialize) | 
+
+
+## **详细描述**
+
+显示硬件加速驱动接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__gralloc_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__gralloc_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..e75c7d78987dd301d0011d5afe4990a67e05db5d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/display__gralloc_8h.md
@@ -0,0 +1,39 @@
+# display_gralloc.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [GrallocFuncs](_gralloc_funcs.md) | 显示内存驱动接口结构体,定义显示内存驱动接口函数指针。&nbsp;[更多...](_gralloc_funcs.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GrallocInitialize](_display.md#grallocinitialize)&nbsp;([GrallocFuncs](_gralloc_funcs.md)&nbsp;\*\*funcs) | 初始化内存模块,并获取内存提供的操作接口。&nbsp;[更多...](_display.md#grallocinitialize) | 
+| [GrallocUninitialize](_display.md#grallocuninitialize)&nbsp;([GrallocFuncs](_gralloc_funcs.md)&nbsp;\*funcs) | 取消初始化内存模块,并释放内存操作接口指针。&nbsp;[更多...](_display.md#grallocuninitialize) | 
+
+
+## **详细描述**
+
+显示内存驱动接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__layer_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__layer_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..6075edc6e52f07cd9762c2b0211ed9730a9df171
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/display__layer_8h.md
@@ -0,0 +1,39 @@
+# display_layer.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [LayerFuncs](_layer_funcs.md) | 显示图层驱动接口结构体,定义显示图层驱动接口函数指针。&nbsp;[更多...](_layer_funcs.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [LayerInitialize](_display.md#layerinitialize)&nbsp;([LayerFuncs](_layer_funcs.md)&nbsp;\*\*funcs) | 实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。&nbsp;[更多...](_display.md#layerinitialize) | 
+| [LayerUninitialize](_display.md#layeruninitialize)&nbsp;([LayerFuncs](_layer_funcs.md)&nbsp;\*funcs) | 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。&nbsp;[更多...](_display.md#layeruninitialize) | 
+
+
+## **详细描述**
+
+显示图层驱动接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..1687cb06bfd133ae699fd88ab0a802476a71781e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/display__type_8h.md
@@ -0,0 +1,82 @@
+# display_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Display](_display.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [DisplayInfo](_display_info.md) | 定义显示信息结构体&nbsp;[更多...](_display_info.md) | 
+| [LayerInfo](_layer_info.md) | 定义图层信息结构体&nbsp;[更多...](_layer_info.md) | 
+| [LayerAlpha](_layer_alpha.md) | 定义图层Alpha信息的结构体&nbsp;[更多...](_layer_alpha.md) | 
+| [BufferData](_buffer_data.md) | 定义一层的缓冲区数据,包括虚拟和物理内存地址。&nbsp;[更多...](_buffer_data.md) | 
+| [LayerBuffer](_layer_buffer.md) | 图层Buffer,用于存放图层数据。&nbsp;[更多...](_layer_buffer.md) | 
+| [IRect](_i_rect.md) | 定义矩形信息&nbsp;[更多...](_i_rect.md) | 
+| [ISurface](_i_surface.md) | 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。&nbsp;[更多...](_i_surface.md) | 
+| [ILine](_i_line.md) | 线条描述结构体定义,用于硬件加速绘制直线。&nbsp;[更多...](_i_line.md) | 
+| [ICircle](_i_circle.md) | 圆形描述结构体定义,用于硬件加速绘制圆形。&nbsp;[更多...](_i_circle.md) | 
+| [Rectangle](_rectangle.md) | 矩形描述结构体定义,用于硬件加速绘制矩形,&nbsp;[更多...](_rectangle.md) | 
+| [GfxOpt](_gfx_opt.md) | 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。&nbsp;[更多...](_gfx_opt.md) | 
+| [PropertyObject](_property_object.md) | 定义包含名称、属性ID和值的属性对象。&nbsp;[更多...](_property_object.md) | 
+| [DisplayCapability](_display_capability.md) | 定义输出性能。&nbsp;[更多...](_display_capability.md) | 
+| [DisplayModeInfo](_display_mode_info.md) | 定义输出模式信息。&nbsp;[更多...](_display_mode_info.md) | 
+| [AllocInfo](_alloc_info.md) | 定义关于要分配的内存的信息。&nbsp;[更多...](_alloc_info.md) | 
+| [HDRCapability](_h_d_r_capability.md) | HDR属性结构体定义&nbsp;[更多...](_h_d_r_capability.md) | 
+| [HDRMetaData](_h_d_r_meta_data.md) | HDR元数据结构体定义&nbsp;[更多...](_h_d_r_meta_data.md) | 
+| [VerifyAllocInfo](_verify_alloc_info.md) | 用于验证内存分配信息的结构体定义&nbsp;[更多...](_verify_alloc_info.md) | 
+| [PresentTimestamp](_present_timestamp.md) | 上屏时间戳结构体定义&nbsp;[更多...](_present_timestamp.md) | 
+| [__attribute__](____attribute____.md) | 扩展数据句柄结构体定义&nbsp;[更多...](____attribute____.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| **PROPERTY_NAME_LEN**&nbsp;&nbsp;&nbsp;50 | 属性名称长度 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [DispErrCode](_display.md#disperrcode)&nbsp;{&nbsp;DISPLAY_SUCCESS&nbsp;=&nbsp;0,&nbsp;DISPLAY_FAILURE&nbsp;=&nbsp;-1,&nbsp;DISPLAY_FD_ERR&nbsp;=&nbsp;-2,&nbsp;DISPLAY_PARAM_ERR&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;DISPLAY_NULL_PTR&nbsp;=&nbsp;-4,&nbsp;DISPLAY_NOT_SUPPORT&nbsp;=&nbsp;-5,&nbsp;DISPLAY_NOMEM&nbsp;=&nbsp;-6,&nbsp;DISPLAY_SYS_BUSY&nbsp;=&nbsp;-7,&nbsp;&nbsp;&nbsp;DISPLAY_NOT_PERM&nbsp;=&nbsp;-8&nbsp;} | 返回值类型定义。&nbsp;[更多...](_display.md#disperrcode) | 
+| [LayerType](_display.md#layertype)&nbsp;{&nbsp;LAYER_TYPE_GRAPHIC,&nbsp;LAYER_TYPE_OVERLAY,&nbsp;LAYER_TYPE_SDIEBAND,&nbsp;LAYER_TYPE_CURSOR,&nbsp;&nbsp;&nbsp;LAYER_TYPE_BUTT&nbsp;} |  图层类型定义。&nbsp;[更多...](_display.md#layertype) | 
+| {&nbsp;HBM_USE_CPU_READ&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;0),&nbsp;HBM_USE_CPU_WRITE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;1),&nbsp;HBM_USE_MEM_MMZ&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;2),&nbsp;HBM_USE_MEM_DMA&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;3),&nbsp;&nbsp;&nbsp;HBM_USE_MEM_SHARE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;4),&nbsp;HBM_USE_MEM_MMZ_CACHE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;5),&nbsp;HBM_USE_MEM_FB&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;6),&nbsp;HBM_USE_ASSIGN_SIZE&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;7)&nbsp;} |缓冲区定义。[更多...](_display.md#anonymous-enum) | 
+| [PixelFormat](_display.md#pixelformat)&nbsp;{&nbsp;PIXEL_FMT_CLUT8&nbsp;=&nbsp;0,&nbsp;PIXEL_FMT_CLUT1,&nbsp;PIXEL_FMT_CLUT4,&nbsp;PIXEL_FMT_RGB_565,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBA_5658,&nbsp;PIXEL_FMT_RGBX_4444,&nbsp;PIXEL_FMT_RGBA_4444,&nbsp;PIXEL_FMT_RGB_444,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBX_5551,&nbsp;PIXEL_FMT_RGBA_5551,&nbsp;PIXEL_FMT_RGB_555,&nbsp;PIXEL_FMT_RGBX_8888,&nbsp;&nbsp;&nbsp;PIXEL_FMT_RGBA_8888,&nbsp;PIXEL_FMT_RGB_888,&nbsp;PIXEL_FMT_BGR_565,&nbsp;PIXEL_FMT_BGRX_4444,&nbsp;&nbsp;&nbsp;PIXEL_FMT_BGRA_4444,&nbsp;PIXEL_FMT_BGRX_5551,&nbsp;PIXEL_FMT_BGRA_5551,&nbsp;PIXEL_FMT_BGRX_8888,&nbsp;&nbsp;&nbsp;PIXEL_FMT_BGRA_8888,&nbsp;PIXEL_FMT_YUV_422_I,&nbsp;PIXEL_FMT_YCBCR_422_SP,&nbsp;PIXEL_FMT_YCRCB_422_SP,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YCBCR_420_SP,&nbsp;PIXEL_FMT_YCRCB_420_SP,&nbsp;PIXEL_FMT_YCBCR_422_P,&nbsp;PIXEL_FMT_YCRCB_422_P,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YCBCR_420_P,&nbsp;PIXEL_FMT_YCRCB_420_P,&nbsp;PIXEL_FMT_YUYV_422_PKG,&nbsp;PIXEL_FMT_UYVY_422_PKG,&nbsp;&nbsp;&nbsp;PIXEL_FMT_YVYU_422_PKG,&nbsp;PIXEL_FMT_VYUY_422_PKG,&nbsp;PIXEL_FMT_VENDER_MASK&nbsp;=&nbsp;0X7FFF0000,&nbsp;PIXEL_FMT_BUTT&nbsp;=&nbsp;0X7FFFFFFF&nbsp;} | 像素格式类型定义。&nbsp;[更多...](_display.md#pixelformat) | 
+| [TransformType](_display.md#transformtype)&nbsp;{&nbsp;ROTATE_NONE&nbsp;=&nbsp;0,&nbsp;ROTATE_90,&nbsp;ROTATE_180,&nbsp;ROTATE_270,&nbsp;&nbsp;&nbsp;ROTATE_BUTT&nbsp;} | 图层变换类型定义。&nbsp;[更多...](_display.md#transformtype) | 
+| [BlendType](_display.md#blendtype)&nbsp;{&nbsp;BLEND_NONE&nbsp;=&nbsp;0,&nbsp;BLEND_CLEAR,&nbsp;BLEND_SRC,&nbsp;BLEND_SRCOVER,&nbsp;&nbsp;&nbsp;BLEND_DSTOVER,&nbsp;BLEND_SRCIN,&nbsp;BLEND_DSTIN,&nbsp;BLEND_SRCOUT,&nbsp;&nbsp;&nbsp;BLEND_DSTOUT,&nbsp;BLEND_SRCATOP,&nbsp;BLEND_DSTATOP,&nbsp;BLEND_ADD,&nbsp;&nbsp;&nbsp;BLEND_XOR,&nbsp;BLEND_DST,&nbsp;BLEND_AKS,&nbsp;BLEND_AKD,&nbsp;&nbsp;&nbsp;BLEND_BUTT&nbsp;} | 显示内存类型定义。&nbsp;[更多...](_display.md#blendtype) | 
+| [RopType](_display.md#roptype)&nbsp;{&nbsp;ROP_BLACK&nbsp;=&nbsp;0,&nbsp;ROP_NOTMERGEPEN,&nbsp;ROP_MASKNOTPEN,&nbsp;ROP_NOTCOPYPEN,&nbsp;&nbsp;&nbsp;ROP_MASKPENNOT,&nbsp;ROP_NOT,&nbsp;ROP_XORPEN,&nbsp;ROP_NOTMASKPEN,&nbsp;&nbsp;&nbsp;ROP_MASKPEN,&nbsp;ROP_NOTXORPEN,&nbsp;ROP_NOP,&nbsp;ROP_MERGENOTPEN,&nbsp;&nbsp;&nbsp;ROP_COPYPE,&nbsp;ROP_MERGEPENNOT,&nbsp;ROP_MERGEPEN,&nbsp;ROP_WHITE,&nbsp;&nbsp;&nbsp;ROP_BUTT&nbsp;} |硬件加速支持的ROP操作类型。&nbsp;[更多...](_display.md#roptype) | 
+| [ColorKey](_display.md#colorkey)&nbsp;{&nbsp;CKEY_NONE&nbsp;=&nbsp;0,&nbsp;CKEY_SRC,&nbsp;CKEY_DST,&nbsp;CKEY_BUTT&nbsp;} | Color&nbsp;key操作类型定义,即硬件加速支持的Color&nbsp;key操作类型。&nbsp;[更多...](_display.md#colorkey) | 
+| [MirrorType](_display.md#mirrortype)&nbsp;{&nbsp;MIRROR_NONE&nbsp;=&nbsp;0,&nbsp;MIRROR_LR,&nbsp;MIRROR_TB,&nbsp;MIRROR_BUTT&nbsp;} | 硬件加速支持的镜像操作类型定义&nbsp;[更多...](_display.md#mirrortype) | 
+| [Connection](_display.md#connection)&nbsp;{&nbsp;CON_INVALID&nbsp;=&nbsp;0,&nbsp;CONNECTED,&nbsp;DISCONNECTED&nbsp;} | 热插拔连接类型定义&nbsp;[更多...](_display.md#connection) | 
+| [InterfaceType](_display.md#interfacetype)&nbsp;{&nbsp;DISP_INTF_HDMI&nbsp;=&nbsp;0,&nbsp;DISP_INTF_LCD,&nbsp;DISP_INTF_BT1120,&nbsp;DISP_INTF_BT656,&nbsp;&nbsp;&nbsp;DISP_INTF_YPBPR,&nbsp;DISP_INTF_RGB,&nbsp;DISP_INTF_CVBS,&nbsp;DISP_INTF_SVIDEO,&nbsp;&nbsp;&nbsp;DISP_INTF_VGA,&nbsp;DISP_INTF_MIPI,&nbsp;DISP_INTF_PANEL,&nbsp;DISP_INTF_BUTT&nbsp;} | 枚举接口类型。&nbsp;[更多...](_display.md#interfacetype) | 
+| [DispPowerStatus](_display.md#disppowerstatus)&nbsp;{&nbsp;POWER_STATUS_ON,&nbsp;POWER_STATUS_STANDBY,&nbsp;POWER_STATUS_SUSPEND,&nbsp;POWER_STATUS_OFF,&nbsp;&nbsp;&nbsp;POWER_STATUS_BUTT&nbsp;} | 枚举显示状态&nbsp;[更多...](_display.md#disppowerstatus) | 
+| [CompositionType](_display.md#compositiontype)&nbsp;{&nbsp;COMPOSITION_CLIENT,&nbsp;COMPOSITION_DEVICE,&nbsp;COMPOSITION_CURSOR,&nbsp;COMPOSITION_VIDEO,&nbsp;&nbsp;&nbsp;COMPOSITION_DEVICE_CLEAR,&nbsp;COMPOSITION_CLIENT_CLEAR,&nbsp;COMPOSITION_TUNNEL,&nbsp;COMPOSITION_BUTT&nbsp;} | 枚举特殊层的组合类型。&nbsp;[更多...](_display.md#compositiontype) | 
+| [ColorGamut](_display.md#colorgamut)&nbsp;{&nbsp;COLOR_GAMUT_INVALID&nbsp;=&nbsp;-1,&nbsp;COLOR_GAMUT_NATIVE&nbsp;=&nbsp;0,&nbsp;COLOR_GAMUT_SATNDARD_BT601&nbsp;=&nbsp;1,&nbsp;COLOR_GAMUT_STANDARD_BT709&nbsp;=&nbsp;2,&nbsp;&nbsp;&nbsp;COLOR_GAMUT_DCI_P3&nbsp;=&nbsp;3,&nbsp;COLOR_GAMUT_SRGB&nbsp;=&nbsp;4,&nbsp;COLOR_GAMUT_ADOBE_RGB&nbsp;=&nbsp;5,&nbsp;COLOR_GAMUT_DISPLAY_P3&nbsp;=&nbsp;6,&nbsp;&nbsp;&nbsp;COLOR_GAMUT_BT2020&nbsp;=&nbsp;7,&nbsp;COLOR_GAMUT_BT2100_PQ&nbsp;=&nbsp;8,&nbsp;COLOR_GAMUT_BT2100_HLG&nbsp;=&nbsp;9,&nbsp;COLOR_GAMUT_DISPLAY_BT2020&nbsp;=&nbsp;10&nbsp;} | 色域类型枚举值&nbsp;[更多...](_display.md#colorgamut) | 
+| [GamutMap](_display.md#gamutmap)&nbsp;{&nbsp;GAMUT_MAP_CONSTANT&nbsp;=&nbsp;0,&nbsp;GAMUT_MAP_EXPANSION&nbsp;=&nbsp;1,&nbsp;GAMUT_MAP_HDR_CONSTANT&nbsp;=&nbsp;2,&nbsp;GAMUT_MAP_HDR_EXPANSION&nbsp;=&nbsp;3&nbsp;} | 枚举色域的映射类型&nbsp;[更多...](_display.md#gamutmap) | 
+| [ColorDataSpace](_display.md#colordataspace)&nbsp;{&nbsp;&nbsp;&nbsp;COLOR_DATA_SPACE_UNKNOWN&nbsp;=&nbsp;0,&nbsp;GAMUT_BT601&nbsp;=&nbsp;0x00000001,&nbsp;GAMUT_BT709&nbsp;=&nbsp;0x00000002,&nbsp;GAMUT_DCI_P3&nbsp;=&nbsp;0x00000003,&nbsp;&nbsp;&nbsp;GAMUT_SRGB&nbsp;=&nbsp;0x00000004,&nbsp;GAMUT_ADOBE_RGB&nbsp;=&nbsp;0x00000005,&nbsp;GAMUT_DISPLAY_P3&nbsp;=&nbsp;0x00000006,&nbsp;GAMUT_BT2020&nbsp;=&nbsp;0x00000007,&nbsp;&nbsp;&nbsp;GAMUT_BT2100_PQ&nbsp;=&nbsp;0x00000008,&nbsp;GAMUT_BT2100_HLG&nbsp;=&nbsp;0x00000009,&nbsp;GAMUT_DISPLAY_BT2020&nbsp;=&nbsp;0x0000000a,&nbsp;TRANSFORM_FUNC_UNSPECIFIED&nbsp;=&nbsp;0x00000100,&nbsp;&nbsp;&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;=&nbsp;0x00000200,&nbsp;TRANSFORM_FUNC_SRGB&nbsp;=&nbsp;0x00000300,&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;=&nbsp;0x00000400,&nbsp;TRANSFORM_FUNC_GM2_2&nbsp;=&nbsp;0x00000500,&nbsp;&nbsp;&nbsp;TRANSFORM_FUNC_GM2_6&nbsp;=&nbsp;0x00000600,&nbsp;TRANSFORM_FUNC_GM2_8&nbsp;=&nbsp;0x00000700,&nbsp;TRANSFORM_FUNC_ST2084&nbsp;=&nbsp;0x00000800,&nbsp;TRANSFORM_FUNC_HLG&nbsp;=&nbsp;0x00000900,&nbsp;&nbsp;&nbsp;PRECISION_UNSPECIFIED&nbsp;=&nbsp;0x00010000,&nbsp;PRECISION_FULL&nbsp;=&nbsp;0x00020000,&nbsp;PRESION_LIMITED&nbsp;=&nbsp;0x00030000,&nbsp;PRESION_EXTENDED&nbsp;=&nbsp;0x00040000,&nbsp;&nbsp;&nbsp;BT601_SMPTE170M_FULL&nbsp;=&nbsp;GAMUT_BT601&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT601_SMPTE170M_LIMITED&nbsp;=&nbsp;GAMUT_BT601&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRESION_LIMITED,&nbsp;BT709_LINEAR_FULL&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT709_LINEAR_EXTENDED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRESION_EXTENDED,&nbsp;&nbsp;&nbsp;BT709_SRGB_FULL&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT709_SRGB_EXTENDED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRESION_EXTENDED,&nbsp;BT709_SMPTE170M_LIMITED&nbsp;=&nbsp;GAMUT_BT709&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRESION_LIMITED,&nbsp;DCI_P3_LINEAR_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;DCI_P3_GAMMA26_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_GM2_6&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;DISPLAY_P3_LINEAR_FULL&nbsp;=&nbsp;GAMUT_DISPLAY_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;DCI_P3_SRGB_FULL&nbsp;=&nbsp;GAMUT_DCI_P3&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;ADOBE_RGB_GAMMA22_FULL&nbsp;=&nbsp;GAMUT_ADOBE_RGB&nbsp;\|&nbsp;TRANSFORM_FUNC_GM2_2&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;BT2020_LINEAR_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_LINEAR&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_SRGB_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_SRGB&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_SMPTE170M_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_SMPTE_170M&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_ST2084_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_ST2084&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;&nbsp;&nbsp;BT2020_HLG_FULL&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_HLG&nbsp;\|&nbsp;PRECISION_FULL,&nbsp;BT2020_ST2084_LIMITED&nbsp;=&nbsp;GAMUT_BT2020&nbsp;\|&nbsp;TRANSFORM_FUNC_ST2084&nbsp;\|&nbsp;PRESION_LIMITED&nbsp;} | 枚举颜色空间的类型&nbsp;[更多...](_display.md#colordataspace) | 
+| [HDRFormat](_display.md#hdrformat)&nbsp;{&nbsp;NOT_SUPPORT_HDR&nbsp;=&nbsp;0,&nbsp;DOLBY_VISION&nbsp;=&nbsp;1,&nbsp;HDR10&nbsp;=&nbsp;2,&nbsp;HLG&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;HDR10_PLUS&nbsp;=&nbsp;4,&nbsp;HDR_VIVID&nbsp;=&nbsp;5&nbsp;} | 枚举HDR格式&nbsp;[更多...](_display.md#hdrformat) | 
+| [HDRMetadataKey](_display.md#hdrmetadatakey)&nbsp;{&nbsp;MATAKEY_RED_PRIMARY_X&nbsp;=&nbsp;0,&nbsp;MATAKEY_RED_PRIMARY_Y&nbsp;=&nbsp;1,&nbsp;MATAKEY_GREEN_PRIMARY_X&nbsp;=&nbsp;2,&nbsp;MATAKEY_GREEN_PRIMARY_Y&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;MATAKEY_BLUE_PRIMARY_X&nbsp;=&nbsp;4,&nbsp;MATAKEY_BLUE_PRIMARY_Y&nbsp;=&nbsp;5,&nbsp;MATAKEY_WHITE_PRIMARY_X&nbsp;=&nbsp;6,&nbsp;MATAKEY_WHITE_PRIMARY_Y&nbsp;=&nbsp;7,&nbsp;&nbsp;&nbsp;MATAKEY_MAX_LUMINANCE&nbsp;=&nbsp;8,&nbsp;MATAKEY_MIN_LUMINANCE&nbsp;=&nbsp;9,&nbsp;MATAKEY_MAX_CONTENT_LIGHT_LEVEL&nbsp;=&nbsp;10,&nbsp;MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL&nbsp;=&nbsp;11,&nbsp;&nbsp;&nbsp;MATAKEY_HDR10_PLUS&nbsp;=&nbsp;12,&nbsp;MATAKEY_HDR_VIVID&nbsp;=&nbsp;13&nbsp;} | 枚举HDR元数据关键字&nbsp;[更多...](_display.md#hdrmetadatakey) | 
+| [PresentTimestampType](_display.md#presenttimestamptype)&nbsp;{&nbsp;HARDWARE_DISPLAY_PTS_UNSUPPORTED&nbsp;=&nbsp;0,&nbsp;HARDWARE_DISPLAY_PTS_DELAY&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;0,&nbsp;HARDWARE_DISPLAY_PTS_TIMESTAMP&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;1&nbsp;} | 上屏时间戳类型枚举值&nbsp;[更多...](_display.md#presenttimestamptype) | 
+
+
+## **详细描述**
+
+显示类型定义,定义显示驱动接口所使用的数据类型。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+2.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_8idl.md b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..746f21f26106445e5134a3ac3b3878cc4d96098a
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_8idl.md
@@ -0,0 +1,34 @@
+# IExecutor.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。&nbsp;[更多...](interface_i_executor.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径。 | 
+
+
+## **详细描述**
+
+定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..ae11adf2057ae5a01e3d4c363b60754ac0754783
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md
@@ -0,0 +1,34 @@
+# IExecutorCallback.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。&nbsp;[更多...](interface_i_executor_callback.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义异步API接口回调,用于返回异步接口的请求处理结果和信息。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/files.md b/zh-cn/device-dev/reference/hdi-apis/files.md
new file mode 100644
index 0000000000000000000000000000000000000000..e44e53e4664fd78e95581381f05b11fed399faac
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/files.md
@@ -0,0 +1,131 @@
+# 头文件
+
+
+
+- **[audio_adapter.h](audio__adapter_8h.md)**
+
+- **[audio_attribute.h](audio__attribute_8h.md)**
+
+- **[audio_capture.h](audio__capture_8h.md)**
+
+- **[audio_control.h](audio__control_8h.md)**
+
+- **[audio_manager.h](audio__manager_8h.md)**
+
+- **[audio_render.h](audio__render_8h.md)**
+
+- **[audio_scene.h](audio__scene_8h.md)**
+
+- **[audio_types.h](audio__types_8h.md)**
+
+- **[audio_volume.h](audio__volume_8h.md)**
+
+- **[codec_callback_if.h](codec__callback__if_8h.md)**
+
+- **[codec_common_type.h](codec__common__type_8h.md)**
+
+- **[codec_component_if.h](codec__component__if_8h.md)**
+
+- **[codec_component_manager.h](codec__component__manager_8h.md)**
+
+- **[codec_component_type.h](codec__component__type_8h.md)**
+
+- **[display_device.h](display__device_8h.md)**
+
+- **[display_gfx.h](display__gfx_8h.md)**
+
+- **[display_gralloc.h](display__gralloc_8h.md)**
+
+- **[display_layer.h](display__layer_8h.md)**
+
+- **[display_type.h](display__type_8h.md)**
+
+- **[icamera_device_callback.h](icamera__device__callback_8h.md)**
+
+- **[icamera_device.h](icamera__device_8h.md)**
+
+- **[icamera_host_callback.h](icamera__host__callback_8h.md)**
+
+- **[icamera_host.h](icamera__host_8h.md)**
+
+- **[input_controller.h](input__controller_8h.md)**
+
+- **[input_manager.h](input__manager_8h.md)**
+
+- **[input_reporter.h](input__reporter_8h.md)**
+
+- **[input_type.h](input__type_8h.md)**
+
+- **[ioffline_stream_operator.h](ioffline__stream__operator_8h.md)**
+
+- **[istream_operator_callback.h](istream__operator__callback_8h.md)**
+
+- **[istream_operator.h](istream__operator_8h.md)**
+
+- **[light_if.h](light__if_8h.md)**
+
+- **[light_type.h](light_8typeh.md)**
+
+- **[sensor_if.h](sensor__if_8h.md)**
+
+- **[sensor_type.h](sensor__type_8h.md)**
+
+- **[types.h](types_8h.md)**
+
+- **[usb_info.h](usb__info_8h.md)**
+
+- **[usbd_client.h](usbd__client_8h.md)**
+
+- **[usbd_subscriber.h](usbd__subscriber_8h.md)**
+
+- **[usbd_type.h](usbd__type_8h.md)**
+
+- **[vibrator_if.h](vibrator__if_8h.md)**
+
+- **[vibrator_type.h](vibrator__type_8h.md)**
+
+- **[wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md)**
+
+- **[wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md)**
+
+- **[wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md)**
+
+- **[wifi_hal.h](wifi__hal_8h.md)**
+
+- **[IExecutor.idl](face__auth_2_i_executor_8idl.md)**
+
+- **[IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md)**
+
+- **[FaceAuthTypes.idl](_face_auth_types_8idl.md)**
+
+- **[PinAuthTypes.idl](_pin_auth_types_8idl.md)**
+
+- **[IBatteryCallback.idl](_i_battery_callback_8idl.md)**
+
+- **[IBatteryInterface.idl](_i_battery_interface_8idl.md)**
+
+- **[IExecutor.idl](pin__auth_2_i_executor_8idl.md)**
+
+- **[IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md)**
+
+- **[IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md)**
+
+- **[IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md)**
+
+- **[IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md)**
+
+- **[IPowerInterface.idl](_i_power_interface_8idl.md)**
+
+- **[IThermalInterface.idl](_i_thermal_interface_8idl.md)**
+
+- **[IThermalCallback.idl](_i_thermal_callback_8idl.md)**
+
+- **[IUserAuthInterface.idl](_i_user_auth_interface_8idl.md)**
+
+- **[PowerTypes.idl](_power_types_8idl.md)**
+
+- **[ThermalTypes.idl](_thermal_types_8idl.md)**
+
+- **[Types.idl](_types_8idl.md)**
+
+- **[UserAuthTypes.idl](_user_auth_types_8idl.md)**
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/icamera__device_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__device_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..91b9f1c93460824bf925388ebdfba6f93a5d0c2e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/icamera__device_8h.md
@@ -0,0 +1,31 @@
+# icamera_device.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) | Camera设备操作。 | 
+
+
+## **详细描述**
+
+Camera设备操作接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/icamera__device__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__device__callback_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..d70ccf005f7eae0f6882672fd0761781959b8276
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/icamera__device__callback_8h.md
@@ -0,0 +1,31 @@
+# icamera_device_callback.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) | Camera设备操作回调。 | 
+
+
+## **详细描述**
+
+Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/icamera__host_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__host_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..e7991b95aeef1a42960f000d2132442d4542f37c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/icamera__host_8h.md
@@ -0,0 +1,31 @@
+# icamera_host.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) | Camera服务的管理类。 | 
+
+
+## **详细描述**
+
+Camera服务的管理类,对上层提供HDI接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/icamera__host__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__host__callback_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..f63aab515a0770f65885e0107c20df7e016c9149
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/icamera__host__callback_8h.md
@@ -0,0 +1,31 @@
+# icamera_host_callback.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) | Camera服务的管理回调。 | 
+
+
+## **详细描述**
+
+ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/index.md b/zh-cn/device-dev/reference/hdi-apis/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..27d1c39014f7b380f9ba3477290d03c5f0af9f05
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/index.md
@@ -0,0 +1,35 @@
+# NativeAPI参考
+
+
+
+- **[Audio](_audio.md)**
+
+- **[Battery](battery.md)**
+
+- **[Camera](_camera.md)**
+
+- **[Codec](_codec.md)**
+
+- **[Display](_display.md)**
+
+- **[HdfFaceAuth](_hdf_face_auth.md)**
+
+- **[Input](_input.md)**
+
+- **[Light](_light.md)**
+
+- **[HdfPinAuth](_hdf_pin_auth.md)**
+
+- **[Power](power.md)**
+
+- **[Sensor](_sensor.md)**
+
+- **[Thermal](thermal.md)**
+
+- **[USB](_u_s_b.md)**
+
+- **[HdfUserAuth](_hdf_user_auth.md)**
+
+- **[Vibrator](_vibrator.md)**
+
+- **[WLAN](_w_l_a_n.md)**
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/input__controller_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__controller_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..f89f9a17d20e7b32832471a655cb880bdab0abbd
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/input__controller_8h.md
@@ -0,0 +1,31 @@
+# input_controller.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [InputController](_input_controller.md) | 提供Input设备业务控制相关的接口。&nbsp;[更多...](_input_controller.md) | 
+
+
+## **详细描述**
+
+描述Input设备业务控制相关的接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/input__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__manager_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..245d9225041d3f59c2e7e344294361e0a36e066b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/input__manager_8h.md
@@ -0,0 +1,40 @@
+# input_manager.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [InputManager](_input_manager.md) | 提供Input设备管理相关的接口。&nbsp;[更多...](_input_manager.md) | 
+| [IInputInterface](_i_input_interface.md) | 定义用于提供输入设备驱动能力的接口。[更多...](_i_input_interface.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [GetInputInterface](_input.md#getinputinterface)&nbsp;([IInputInterface](_i_input_interface.md)&nbsp;\*\*interface) | Input服务通过调用此接口获取操作Input设备的所有接口。&nbsp;[更多...](_input.md#getinputinterface) | 
+| [ReleaseInputInterface](_input.md#releaseinputinterface)&nbsp;([IInputInterface](_i_input_interface.md)&nbsp;\*\*inputInterface) | Input服务通过调用此接口释放操作Input设备的所有接口。&nbsp;[更多...](_input.md#releaseinputinterface) | 
+
+
+## **详细描述**
+
+描述Input设备管理相关的接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/input__reporter_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__reporter_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..f537d55f387293772c63fc1446483d6629dc4166
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/input__reporter_8h.md
@@ -0,0 +1,31 @@
+# input_reporter.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [InputReporter](_input_reporter.md) | 提供Input设备数据上报相关的接口。&nbsp;[更多...](_input_reporter.md) | 
+
+
+## **详细描述**
+
+描述Input设备数据上报相关的接口声明。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..73d10e58c09a8c28292362c505269a7ec79f1371
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md
@@ -0,0 +1,68 @@
+# input_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Input](_input.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [InputEventPackage](_event_package.md) | Input事件数据包结构。&nbsp;[更多...](_event_package.md) | 
+| [InputHotPlugEvent](_input_hotplug_event.md) | 热插拔事件数据包结构。&nbsp;[更多...](_input_hotplug_event.md) | 
+| [InputDevDesc](_input_dev_desc.md) | Input设备描述信息。&nbsp;[更多...](_input_dev_desc.md) | 
+| [InputEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。&nbsp;[更多...](_input_report_event_cb.md) | 
+| [InputHostCb](_input_host_cb.md) | 此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。&nbsp;[更多...](_input_host_cb.md) | 
+| [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,存储支持事件的位图。&nbsp;[更多...](_input_dev_ability.md) | 
+| [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信息。&nbsp;[更多...](_input_dimension_info.md) | 
+| [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。&nbsp;[更多...](_input_dev_identify.md) | 
+| [InputDevAttr](_input_dev_attr.md) | Input设备属性。&nbsp;[更多...](_input_dev_attr.md) | 
+| [InputDeviceInfo](_device_info.md) | Input设备基础设备信息。&nbsp;[更多...](_device_info.md) | 
+| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构。&nbsp;[更多...](_input_extra_cmd.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| **MAX_INPUT_DEV_NUM**&nbsp;&nbsp;&nbsp;32 | Input设备最大数量。 | 
+| **DEV_NAME_LEN**&nbsp;&nbsp;&nbsp;64 | Input设备名称长度。 | 
+| **CHIP_INFO_LEN**&nbsp;&nbsp;&nbsp;10 | 芯片信息长度。 | 
+| **CHIP_NAME_LEN**&nbsp;&nbsp;&nbsp;10 | 芯片名称长度。 | 
+| **VENDOR_NAME_LEN**&nbsp;&nbsp;&nbsp;10 | 厂商名称长度。 | 
+| **SELF_TEST_RESULT_LEN**&nbsp;&nbsp;&nbsp;20 | 自测结果长度。 | 
+| **DEV_MANAGER_SERVICE_NAME**&nbsp;&nbsp;&nbsp;"hdf_input_host" | Input设备节点服务名称。 | 
+| **DIV_ROUND_UP(nr, d)**&nbsp;&nbsp;(((nr) + (d) - 1) / (d)) | 向上取整计算公式。|
+| **BYTE_HAS_BITS**&nbsp;&nbsp;8 | 一个字节所包含的比特数。 |
+| **BITS_TO_UINT64(count)**&nbsp;&nbsp;DIV_ROUND_UP(count, BYTE_HAS_BITS * sizeof(uint64_t)) | 比特与64位无符号整数的转换公式。 |
+| **HDF_FF_CNT**&nbsp;&nbsp;(0x7f + 1) | Input设备发送力反馈命令的数量最大值。|
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [RetStatus](_input.md#retstatus)&nbsp;{&nbsp;INPUT_SUCCESS&nbsp;=&nbsp;0,&nbsp;INPUT_FAILURE&nbsp;=&nbsp;-1,&nbsp;INPUT_INVALID_PARAM&nbsp;=&nbsp;-2,&nbsp;INPUT_NOMEM&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;INPUT_NULL_PTR&nbsp;=&nbsp;-4,&nbsp;INPUT_TIMEOUT&nbsp;=&nbsp;-5,&nbsp;INPUT_UNSUPPORTED&nbsp;=&nbsp;-6&nbsp;} | 定义返回值类型。&nbsp;[更多...](_input.md#retstatus) | 
+| [InputDevType](_input.md#inputdevtype)&nbsp;{&nbsp;INDEV_TYPE_TOUCH,&nbsp;INDEV_TYPE_KEY,&nbsp;INDEV_TYPE_KEYBOARD,&nbsp;INDEV_TYPE_MOUSE,&nbsp;&nbsp;&nbsp;INDEV_TYPE_BUTTON,&nbsp;INDEV_TYPE_CROWN,&nbsp;INDEV_TYPE_ENCODER,&nbsp;INDEV_TYPE_UNKNOWN&nbsp;} | 定义Input设备类型。&nbsp;[更多...](_input.md#inputdevtype) | 
+| [PowerStatus](_input.md#powerstatus)&nbsp;{&nbsp;INPUT_RESUME,&nbsp;INPUT_SUSPEND,&nbsp;INPUT_LOW_POWER,&nbsp;INPUT_POWER_STATUS_UNKNOWN&nbsp;} | 定义电源状态。&nbsp;[更多...](_input.md#powerstatus) | 
+| [CapacitanceTest](_input.md#capacitancetest)&nbsp;{&nbsp;BASE_TEST,&nbsp;FULL_TEST,&nbsp;MMI_TEST,&nbsp;RUNNING_TEST,&nbsp;&nbsp;&nbsp;TEST_TYPE_UNKNOWN&nbsp;} | 定义容值测试类型。&nbsp;[更多...](_input.md#capacitancetest) | 
+
+
+## **详细描述**
+
+Input设备相关的类型定义,定义了Input设备驱动接口所使用的结构体及枚举类型。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..cafdf21cd8e3a4d1eccbe3d8fa82ddb1256470a1
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_callback.md
@@ -0,0 +1,56 @@
+# IBatteryCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [Update](#update)&nbsp;([in]&nbsp;struct&nbsp;[BatteryInfo](_battery_info.md)&nbsp;event) | 电池信息的回调方法。&nbsp;[更多...](#update) | 
+
+
+## **详细描述**
+
+电池信息的回调。
+
+服务创建此回调对象后,可以调用IBatteryInterface的接口注册回调,从而订阅电池信息的变化。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### Update()
+
+  
+```
+IBatteryCallback::Update ([in] struct BatteryInfo event)
+```
+
+**描述:**
+
+电池信息的回调方法。
+
+当电池信息发生变化时,将通过此方法的参数返回给服务。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 电池信息,如电量,电压,健康状态等。 | 
+
+**参见:**
+
+[BatteryInfo](_battery_info.md)
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..d82964f347df262b4764b633f78815fb8257cf52
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_interface.md
@@ -0,0 +1,409 @@
+# IBatteryInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Battery](battery.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [Register](#register)&nbsp;([in]&nbsp;[IBatteryCallback](interface_i_battery_callback.md)&nbsp;event) | 注册电池信息的回调。&nbsp;[更多...](#register) | 
+| [UnRegister](#unregister)&nbsp;() | 取消注册电池信息的回调。&nbsp;[更多...](#unregister) | 
+| [ChangePath](#changepath)&nbsp;([in]&nbsp;String&nbsp;path) | 设置电池信息节点的路径。&nbsp;[更多...](#changepath) | 
+| [GetCapacity](#getcapacity)&nbsp;([out]&nbsp;int&nbsp;capacity) | 获取电池的电量百分比。&nbsp;[更多...](#getcapacity) | 
+| [GetVoltage](#getvoltage)&nbsp;([out]&nbsp;int&nbsp;voltage) | 获取电池的电压,单位微伏。&nbsp;[更多...](#getvoltage) | 
+| [GetTemperature](#gettemperature)&nbsp;([out]&nbsp;int&nbsp;temperature) | 获取电池的充电温度,单位0.1摄氏度。&nbsp;[更多...](#gettemperature) | 
+| [GetHealthState](#gethealthstate)&nbsp;([out]&nbsp;enum&nbsp;[BatteryHealthState](battery.md#batteryhealthstate)&nbsp;healthState) | 获取电池的健康状态。&nbsp;[更多...](#gethealthstate) | 
+| [GetPluggedType](#getpluggedtype)&nbsp;([out]&nbsp;enum&nbsp;[BatteryPluggedType](battery.md#batterypluggedtype)&nbsp;pluggedType) | 获取充电设备类型。&nbsp;[更多...](#getpluggedtype) | 
+| [GetChargeState](#getchargestate)&nbsp;([out]&nbsp;enum&nbsp;[BatteryChargeState](battery.md#batterychargestate)&nbsp;chargeState) | 获取充电状态。&nbsp;[更多...](#getchargestate) | 
+| [GetPresent](#getpresent)&nbsp;([out]&nbsp;boolean&nbsp;present) | 获取是否支持电池或者电池是否在位。&nbsp;[更多...](#getpresent) | 
+| [GetTechnology](#gettechnology)&nbsp;([out]&nbsp;String&nbsp;technology) | 获取电池的技术型号。&nbsp;[更多...](#gettechnology) | 
+| [GetTotalEnergy](#gettotalenergy)&nbsp;([out]&nbsp;int&nbsp;totalEnergy) | 获取电池的总容量。&nbsp;[更多...](#gettotalenergy) | 
+| [GetCurrentAverage](#getcurrentaverage)&nbsp;([out]&nbsp;int&nbsp;curAverage) | 获取电池的平均电流。&nbsp;[更多...](#getcurrentaverage) | 
+| [GetCurrentNow](#getcurrentnow)&nbsp;([out]&nbsp;int&nbsp;curNow) | 获取电池的电流。&nbsp;[更多...](#getcurrentnow) | 
+| [GetRemainEnergy](#getremainenergy)&nbsp;([out]&nbsp;int&nbsp;remainEnergy) | 获取电池的剩余容量。&nbsp;[更多...](#getremainenergy) | 
+| [GetBatteryInfo](#getbatteryinfo)&nbsp;([out]&nbsp;struct&nbsp;[BatteryInfo](_battery_info.md)&nbsp;info) | 获取电池的全部信息。&nbsp;[更多...](#getbatteryinfo) | 
+
+
+## **详细描述**
+
+获取、订阅电池信息的接口。
+
+服务获取此对象后,可以调用相关的接口获取、订阅电池信息。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### ChangePath()
+
+  
+```
+IBatteryInterface::ChangePath ([in] String path)
+```
+
+**描述:**
+
+设置电池信息节点的路径。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| path | 输入参数,电池信息节点的路径。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示路径设置成功。
+
+
+### GetBatteryInfo()
+
+  
+```
+IBatteryInterface::GetBatteryInfo ([out] struct BatteryInfo info)
+```
+
+**描述:**
+
+获取电池的全部信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| info | 输出参数,电池的全部信息。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+**参见:**
+
+[BatteryInfo](_battery_info.md)
+
+
+### GetCapacity()
+
+  
+```
+IBatteryInterface::GetCapacity ([out] int capacity)
+```
+
+**描述:**
+
+获取电池的电量百分比。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| capacity | 输出参数,表示电量的百分比值。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetChargeState()
+
+  
+```
+IBatteryInterface::GetChargeState ([out] enum BatteryChargeState chargeState)
+```
+
+**描述:**
+
+获取充电状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| chargeState | 输出参数,表示充电状态。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+**参见:**
+
+[BatteryChargeState](battery.md#batterychargestate)
+
+
+### GetCurrentAverage()
+
+  
+```
+IBatteryInterface::GetCurrentAverage ([out] int curAverage)
+```
+
+**描述:**
+
+获取电池的平均电流。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| totalEnergy | 输出参数,表示电池的平均电流,单位毫安。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetCurrentNow()
+
+  
+```
+IBatteryInterface::GetCurrentNow ([out] int curNow)
+```
+
+**描述:**
+
+获取电池的电流。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| curNow | 输出参数,表示电池的实时电流,单位毫安。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetHealthState()
+
+  
+```
+IBatteryInterface::GetHealthState ([out] enum BatteryHealthState healthState)
+```
+
+**描述:**
+
+获取电池的健康状态。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| healthState | 输出参数,表示电池健康状态。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+**参见:**
+
+[BatteryHealthState](battery.md#batteryhealthstate)
+
+
+### GetPluggedType()
+
+  
+```
+IBatteryInterface::GetPluggedType ([out] enum BatteryPluggedType pluggedType)
+```
+
+**描述:**
+
+获取充电设备类型。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| pluggedType | 输出参数,表示充电设备类型。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+**参见:**
+
+[BatteryPluggedType](battery.md#batterypluggedtype)
+
+
+### GetPresent()
+
+  
+```
+IBatteryInterface::GetPresent ([out] boolean present)
+```
+
+**描述:**
+
+获取是否支持电池或者电池是否在位。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| present | 输出参数,表示是否支持电池或者电池是否在位。true表示支持或在位,false表示不支持或不在位。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetRemainEnergy()
+
+  
+```
+IBatteryInterface::GetRemainEnergy ([out] int remainEnergy)
+```
+
+**描述:**
+
+获取电池的剩余容量。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| remainEnergy | 输出参数,表示电池的剩余容量,单位毫安时。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetTechnology()
+
+  
+```
+IBatteryInterface::GetTechnology ([out] String technology)
+```
+
+**描述:**
+
+获取电池的技术型号。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| technology | 输出参数,当前电池技术型号。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetTemperature()
+
+  
+```
+IBatteryInterface::GetTemperature ([out] int temperature)
+```
+
+**描述:**
+
+获取电池的充电温度,单位0.1摄氏度。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| temperature | 输出参数,表示电池温度。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetTotalEnergy()
+
+  
+```
+IBatteryInterface::GetTotalEnergy ([out] int totalEnergy)
+```
+
+**描述:**
+
+获取电池的总容量。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| totalEnergy | 输出参数,表示电池的总容量,单位毫安时。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### GetVoltage()
+
+  
+```
+IBatteryInterface::GetVoltage ([out] int voltage)
+```
+
+**描述:**
+
+获取电池的电压,单位微伏。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| voltage | 输出参数,表示电池的电压。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+
+### Register()
+
+  
+```
+IBatteryInterface::Register ([in] IBatteryCallback event)
+```
+
+**描述:**
+
+注册电池信息的回调。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 输入参数,服务注册的回调。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示注册成功。
+
+
+### UnRegister()
+
+  
+```
+IBatteryInterface::UnRegister ()
+```
+
+**描述:**
+
+取消注册电池信息的回调。
+
+**返回:**
+
+HDF_SUCCESS 表示取消注册成功。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor.md
new file mode 100644
index 0000000000000000000000000000000000000000..32a215289c1ff2bba8aaf381d61f8a6fa930a816
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor.md
@@ -0,0 +1,296 @@
+# IExecutor
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [GetExecutorInfo](#getexecutorinfo)&nbsp;([out]&nbsp;struct&nbsp;[ExecutorInfo](_executor_info.md)&nbsp;executorInfo) | 获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。&nbsp;[更多...](#getexecutorinfo) | 
+| [GetTemplateInfo](#gettemplateinfo)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;templateId,&nbsp;[out]&nbsp;struct&nbsp;[TemplateInfo](_template_info.md)&nbsp;templateInfo) | 获取凭据模版信息。&nbsp;[更多...](#gettemplateinfo) | 
+| [OnRegisterFinish](#onregisterfinish-12)&nbsp;([in]&nbsp;unsigned&nbsp;long[]&nbsp;templateIdList,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;frameworkPublicKey,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo) | 完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。&nbsp;[更多...](#onregisterfinish-12) | 
+| [Enroll](#enroll)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_i_executor_callback.md)&nbsp;callbackObj) | 注册人脸特征模版。&nbsp;[更多...](#enroll) | 
+| [Authenticate](#authenticate)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;long[]&nbsp;templateIdList,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_i_executor_callback.md)&nbsp;callbackObj) | 人脸认证。&nbsp;[更多...](#authenticate) | 
+| [Identify](#identify)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_i_executor_callback.md)&nbsp;callbackObj) | 人脸识别。&nbsp;[更多...](#identify) | 
+| [Delete](#delete)&nbsp;([in]&nbsp;unsigned&nbsp;long[]&nbsp;templateIdList) | 删除人脸特征模版。&nbsp;[更多...](#delete) | 
+| [Cancel](#cancel)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId) | 取消操作请求。&nbsp;[更多...](#cancel) | 
+| [SendCommand](#sendcommand)&nbsp;([in]&nbsp;int&nbsp;commandId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_i_executor_callback.md)&nbsp;callbackObj) | 发送人脸认证功能相关操作命令。&nbsp;[更多...](#sendcommand) | 
+
+
+## **详细描述**
+
+定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### Authenticate()
+
+  
+```
+IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+人脸认证。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| templateIdList | 指定要认证的模版ID列表。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Cancel()
+
+  
+```
+IExecutor::Cancel ([in] unsigned long scheduleId)
+```
+
+**描述:**
+
+取消操作请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Delete()
+
+  
+```
+IExecutor::Delete ([in] unsigned long[] templateIdList)
+```
+
+**描述:**
+
+删除人脸特征模版。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateIdList | 指定要删除的模版ID列表。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Enroll()
+
+  
+```
+IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+注册人脸特征模版。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetExecutorInfo()
+
+  
+```
+IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo)
+```
+
+**描述:**
+
+获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| executorInfo | 执行器信息[ExecutorInfo](_executor_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetTemplateInfo()
+
+  
+```
+IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo )
+```
+
+**描述:**
+
+获取凭据模版信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateId | 凭据模版ID。 | 
+| templateInfo | 凭据模版信息[TemplateInfo](_template_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Identify()
+
+  
+```
+IExecutor::Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+人脸识别。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnRegisterFinish() [1/2]
+
+  
+```
+IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo )
+```
+
+**描述:**
+
+完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateIdList | 用户认证框架内由该执行器注册的人脸特征模版ID列表。 | 
+| frameworkPublicKey | 用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnSetData()
+
+  
+```
+IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data )
+```
+
+**描述:**
+
+设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| authSubType | 口令子类型,如六位数字PIN码等。 | 
+| data | 口令数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### SendCommand()
+
+  
+```
+IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+发送人脸认证功能相关操作命令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| commandId | 操作命令ID[CommandId](_hdf_pin_auth.md#commandid)。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_executor_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..70e9ae565dca1ee9fa562596c0966b6a48f31508
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor_callback.md
@@ -0,0 +1,85 @@
+# IExecutorCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OnResult](#onresult)&nbsp;([in]&nbsp;int&nbsp;result,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo) | 定义操作结果回调函数。&nbsp;[更多...](#onresult) | 
+| [OnAcquireInfo](#onacquireinfo)&nbsp;([in]&nbsp;int&nbsp;acquire,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo) | 定义操作过程信息反馈回调函数。&nbsp;[更多...](#onacquireinfo) | 
+
+
+## **详细描述**
+
+定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### OnAcquireInfo()
+
+  
+```
+IExecutorCallback::OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo )
+```
+
+**描述:**
+
+定义操作过程信息反馈回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| acquire | 提示信息编码[FaceTipsCode](_hdf_face_auth.md#facetipscode)。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnResult()
+
+  
+```
+IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo )
+```
+
+**描述:**
+
+定义操作请求处理结果回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| result | 操作请求处理结果。 | 
+| extraInfo | 其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_face_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_face_auth_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..32041928f7fe5e3bbd82e4861cb8d86733d4bc7d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_face_auth_interface.md
@@ -0,0 +1,58 @@
+# IFaceAuthInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfFaceAuth](_hdf_face_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [GetExecutorList](#getexecutorlist)&nbsp;([out]&nbsp;[IExecutor](interface_i_executor.md)[]&nbsp;executorList) | 获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。&nbsp;[更多...](#getexecutorlist) | 
+
+
+## **详细描述**
+
+定义获取人脸认证驱动的执行器列表接口。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### GetExecutorList()
+
+  
+```
+IFaceAuthInterface::GetExecutorList ([out] IExecutor[] executorList)
+```
+
+**描述:**
+
+获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| executorList | 执行器对象列表[IExecutor](interface_i_executor.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..c6d110537f39b948361d104ee1ab4978f141eca3
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md
@@ -0,0 +1,58 @@
+# IPinAuthInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [GetExecutorList](#getexecutorlist)&nbsp;([out]&nbsp;[IExecutor](interface_pin_i_executor.md)[]&nbsp;executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。&nbsp;[更多...](#getexecutorlist) | 
+
+
+## **详细描述**
+
+定义获取口令认证驱动的执行器列表接口。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### GetExecutorList()
+
+  
+```
+IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList)
+```
+
+**描述:**
+
+获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| executorList | 执行器对象列表[IExecutor](interface_pin_i_executor.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_power_hdi_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_hdi_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..993bd9ed6101f16f848009998b1088adb9a1f655
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_hdi_callback.md
@@ -0,0 +1,61 @@
+# IPowerHdiCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Power](power.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OnSuspend](#onsuspend)&nbsp;() | 休眠状态的回调方法。&nbsp;[更多...](#onsuspend) | 
+| [OnWakeup](#onwakeup)&nbsp;() | 唤醒状态的回调方法。&nbsp;[更多...](#onwakeup) | 
+
+
+## **详细描述**
+
+休眠/唤醒状态的回调。
+
+服务创建此回调对象后,可以调用IPowerInterface的接口注册回调,从而订阅休眠/唤醒状态的变化。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### OnSuspend()
+
+  
+```
+IPowerHdiCallback::OnSuspend ()
+```
+
+**描述:**
+
+休眠状态的回调方法。
+
+当设备进入休眠状态时,将通过此方法通知给服务。
+
+
+### OnWakeup()
+
+  
+```
+IPowerHdiCallback::OnWakeup ()
+```
+
+**描述:**
+
+唤醒状态的回调方法。
+
+当设备进入唤醒状态时,将通过此方法通知给服务。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_power_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..73d549879069aba5d3d0b90d89cc12631fda7d41
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_interface.md
@@ -0,0 +1,178 @@
+# IPowerInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Power](power.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [RegisterCallback](#registercallback)&nbsp;([in]&nbsp;[IPowerHdiCallback](interface_i_power_hdi_callback.md)&nbsp;ipowerHdiCallback) | 注册休眠/唤醒状态的回调。&nbsp;[更多...](#registercallback) | 
+| [StartSuspend](#startsuspend)&nbsp;() | 执行设备休眠操作。&nbsp;[更多...](#startsuspend) | 
+| [StopSuspend](#stopsuspend)&nbsp;() | 执行设备唤醒操作。&nbsp;[更多...](#stopsuspend) | 
+| [ForceSuspend](#forcesuspend)&nbsp;() | 执行设备强制休眠操作。&nbsp;[更多...](#forcesuspend) | 
+| [SuspendBlock](#suspendblock)&nbsp;([in]&nbsp;String&nbsp;name) | 打开运行锁,阻止休眠。&nbsp;[更多...](#suspendblock) | 
+| [SuspendUnblock](#suspendunblock)&nbsp;([in]&nbsp;String&nbsp;name) | 关闭运行锁,取消阻止休眠。&nbsp;[更多...](#suspendunblock) | 
+| [PowerDump](#powerdump)&nbsp;([out]&nbsp;String&nbsp;info) | 获取电源的Dump信息。&nbsp;[更多...](#powerdump) | 
+
+
+## **详细描述**
+
+休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。
+
+服务获取此对象后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### ForceSuspend()
+
+  
+```
+IPowerInterface::ForceSuspend ()
+```
+
+**描述:**
+
+执行设备强制休眠操作。
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
+
+
+### PowerDump()
+
+  
+```
+IPowerInterface::PowerDump ([out] String info)
+```
+
+**描述:**
+
+获取电源的Dump信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| info | 输出参数,电源的Dump信息。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
+
+
+### RegisterCallback()
+
+  
+```
+IPowerInterface::RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback)
+```
+
+**描述:**
+
+注册休眠/唤醒状态的回调。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| ipowerHdiCallback | 输入参数,服务注册的回调。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示注册成功。
+
+**参见:**
+
+[IPowerHdiCallback](interface_i_power_hdi_callback.md)
+
+
+### StartSuspend()
+
+  
+```
+IPowerInterface::StartSuspend ()
+```
+
+**描述:**
+
+执行设备休眠操作。
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
+
+
+### StopSuspend()
+
+  
+```
+IPowerInterface::StopSuspend ()
+```
+
+**描述:**
+
+执行设备唤醒操作。
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
+
+
+### SuspendBlock()
+
+  
+```
+IPowerInterface::SuspendBlock ([in] String name)
+```
+
+**描述:**
+
+打开运行锁,阻止休眠。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| name | 输入参数,运行锁的名称。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
+
+
+### SuspendUnblock()
+
+  
+```
+IPowerInterface::SuspendUnblock ([in] String name)
+```
+
+**描述:**
+
+关闭运行锁,取消阻止休眠。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| name | 输入参数,运行锁的名称。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示操作成功。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..b713dbcc70868b061dd239f2b0527d8c3e1652e6
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_callback.md
@@ -0,0 +1,56 @@
+# IThermalCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OnThermalDataEvent](#onthermaldataevent)&nbsp;([in]&nbsp;struct&nbsp;[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)&nbsp;event) | 设备发热状态变化的回调方法。&nbsp;[更多...](#onthermaldataevent) | 
+
+
+## **详细描述**
+
+订阅设备发热状态的回调。
+
+服务创建此回调对象后,可以调用IThermalInterface的接口注册回调,从而订阅设备发热状态的变化。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### OnThermalDataEvent()
+
+  
+```
+IThermalCallback::OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event)
+```
+
+**描述:**
+
+设备发热状态变化的回调方法。
+
+当设备发热状态发生变化时,将通过此方法的参数返回给服务。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 输入参数,设备发热信息,包括器件类型、器件温度。 | 
+
+**参见:**
+
+[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..cffe822befa71b155d2095b34d79894ae12bbb08
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_interface.md
@@ -0,0 +1,171 @@
+# IThermalInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[Thermal](thermal.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [SetCpuFreq](#setcpufreq)&nbsp;([in]&nbsp;int&nbsp;freq) | 设置CPU频率。&nbsp;[更多...](#setcpufreq) | 
+| [SetGpuFreq](#setgpufreq)&nbsp;([in]&nbsp;int&nbsp;freq) | 设置GPU频率。&nbsp;[更多...](#setgpufreq) | 
+| [SetBatteryCurrent](#setbatterycurrent)&nbsp;([in]&nbsp;int&nbsp;current) | 设置充电电流。&nbsp;[更多...](#setbatterycurrent) | 
+| [GetThermalZoneInfo](#getthermalzoneinfo)&nbsp;([out]&nbsp;struct&nbsp;[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)&nbsp;event) | 获取设备发热的信息。&nbsp;[更多...](#getthermalzoneinfo) | 
+| [Register](#register)&nbsp;([in]&nbsp;[IThermalCallback](interface_i_thermal_callback.md)&nbsp;callbackObj) | 注册设备发热状态的回调。&nbsp;[更多...](#register) | 
+| [Unregister](#unregister)&nbsp;() | 取消注册设备发热状态的回调。&nbsp;[更多...](#unregister) | 
+
+
+## **详细描述**
+
+设备温度管理、控制及订阅接口。
+
+服务获取此对象后,可以调用相关的接口管理、控制和订阅设备温度。
+
+**Since:**
+
+3.1
+
+
+## **成员函数说明**
+
+
+### GetThermalZoneInfo()
+
+  
+```
+IThermalInterface::GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event)
+```
+
+**描述:**
+
+获取设备发热的信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| event | 输出参数,设备发热信息,包括器件类型、器件温度。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示获取成功。
+
+**参见:**
+
+[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)
+
+
+### Register()
+
+  
+```
+IThermalInterface::Register ([in] IThermalCallback callbackObj)
+```
+
+**描述:**
+
+注册设备发热状态的回调。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| callbackObj | 输入参数,服务注册的回调。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示注册成功。
+
+**参见:**
+
+[IThermalCallback](interface_i_thermal_callback.md)
+
+
+### SetBatteryCurrent()
+
+  
+```
+IThermalInterface::SetBatteryCurrent ([in] int current)
+```
+
+**描述:**
+
+设置充电电流。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| current | 输入参数,充电电流,单位毫安。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置成功
+
+
+### SetCpuFreq()
+
+  
+```
+IThermalInterface::SetCpuFreq ([in] int freq)
+```
+
+**描述:**
+
+设置CPU频率。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| freq | 输入参数,设置CPU频率的值。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置成功。
+
+
+### SetGpuFreq()
+
+  
+```
+IThermalInterface::SetGpuFreq ([in] int freq)
+```
+
+**描述:**
+
+设置GPU频率。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| freq | 输入参数,设置GPU频率的值。 | 
+
+**返回:**
+
+HDF_SUCCESS 表示设置成功。
+
+
+### Unregister()
+
+  
+```
+IThermalInterface::Unregister ()
+```
+
+**描述:**
+
+取消注册设备发热状态的回调。
+
+**返回:**
+
+HDF_SUCCESS 表示取消注册成功。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md
new file mode 100644
index 0000000000000000000000000000000000000000..9471fe3dcd50cd9a9eb64b937221e654fb0d024a
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md
@@ -0,0 +1,587 @@
+# IUserAuthInterface
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfUserAuth](_hdf_user_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [Init](#init)&nbsp;() | 初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。&nbsp;[更多...](#init) | 
+| [AddExecutor](#addexecutor)&nbsp;([in]&nbsp;struct&nbsp;[ExecutorRegisterInfo](_executor_register_info.md)&nbsp;info,&nbsp;[out]&nbsp;unsigned&nbsp;long&nbsp;index,&nbsp;[out]&nbsp;unsigned&nbsp;char[]&nbsp;publicKey,&nbsp;[out]&nbsp;unsigned&nbsp;long[]&nbsp;templateIds) | 添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。&nbsp;[更多...](#addexecutor) | 
+| [DeleteExecutor](#deleteexecutor)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;index) | 删除执行器,用于清理失效的执行器信息。&nbsp;[更多...](#deleteexecutor) | 
+| [OpenSession](#opensession)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[out]&nbsp;unsigned&nbsp;char[]&nbsp;challenge) | 开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。&nbsp;[更多...](#opensession) | 
+| [CloseSession](#closesession)&nbsp;([in]&nbsp;int&nbsp;userId) | 关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。&nbsp;[更多...](#closesession) | 
+| [BeginEnrollment](#beginenrollment)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;authToken,&nbsp;[in]&nbsp;struct&nbsp;[EnrollParam](_enroll_param.md)&nbsp;param,&nbsp;[out]&nbsp;struct&nbsp;[ScheduleInfo](_schedule_info.md)&nbsp;info) | 开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。&nbsp;[更多...](#beginenrollment) | 
+| [UpdateEnrollmentResult](#updateenrollmentresult)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;scheduleResult,&nbsp;[out]&nbsp;unsigned&nbsp;long&nbsp;credentialId,&nbsp;[out]&nbsp;struct&nbsp;[CredentialInfo](_credential_info.md)&nbsp;oldInfo) | 更新用户凭据注册结果,完成凭据注册。&nbsp;[更多...](#updateenrollmentresult) | 
+| [CancelEnrollment](#cancelenrollment)&nbsp;([in]&nbsp;int&nbsp;userId) | 取消注册请求。&nbsp;[更多...](#cancelenrollment) | 
+| [DeleteCredential](#deletecredential)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;unsigned&nbsp;long&nbsp;credentialId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;authToken,&nbsp;[out]&nbsp;struct&nbsp;[CredentialInfo](_credential_info.md)&nbsp;info) | 删除用户凭据信息。&nbsp;[更多...](#deletecredential) | 
+| [GetCredential](#getcredential)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;enum&nbsp;[AuthType](_hdf_face_auth.md#authtype)&nbsp;authType,&nbsp;[out]&nbsp;struct&nbsp;[CredentialInfo](_credential_info.md)[]&nbsp;infos) | 查询用户凭据信息。&nbsp;[更多...](#getcredential) | 
+| [GetUserInfo](#getuserinfo)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[out]&nbsp;unsigned&nbsp;long&nbsp;secureUid,&nbsp;[out]&nbsp;enum&nbsp;PinSubType&nbsp;pinSubType,&nbsp;[out]&nbsp;struct&nbsp;[EnrolledInfo](_enrolled_info.md)[]&nbsp;infos) | 查询用户认证相关信息。&nbsp;[更多...](#getuserinfo) | 
+| [DeleteUser](#deleteuser)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;authToken,&nbsp;[out]&nbsp;struct&nbsp;[CredentialInfo](_credential_info.md)[]&nbsp;deletedInfos) | 删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。&nbsp;[更多...](#deleteuser) | 
+| [EnforceDeleteUser](#enforcedeleteuser)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[out]&nbsp;struct&nbsp;[CredentialInfo](_credential_info.md)[]&nbsp;deletedInfos) | 强制删除用户,该请求由系统内管理用户的模块触发。&nbsp;[更多...](#enforcedeleteuser) | 
+| [BeginAuthentication](#beginauthentication)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId,&nbsp;[in]&nbsp;struct&nbsp;[AuthSolution](_auth_solution.md)&nbsp;param,&nbsp;[out]&nbsp;struct&nbsp;[ScheduleInfo](_schedule_info.md)[]&nbsp;scheduleInfos) | 开始认证用户,并生成认证方案。&nbsp;[更多...](#beginauthentication) | 
+| [UpdateAuthenticationResult](#updateauthenticationresult)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;scheduleResult,&nbsp;[out]&nbsp;struct&nbsp;[AuthResultInfo](_auth_result_info.md)&nbsp;info) | 更新认证结果,评估认证方案的认证结果。&nbsp;[更多...](#updateauthenticationresult) | 
+| [CancelAuthentication](#cancelauthentication)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId) | 取消用户认证请求。&nbsp;[更多...](#cancelauthentication) | 
+| [BeginIdentification](#beginidentification)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId,&nbsp;[in]&nbsp;enum&nbsp;[AuthType](_hdf_face_auth.md#authtype)&nbsp;authType,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;challenge,&nbsp;[in]&nbsp;unsigned&nbsp;int&nbsp;executorSensorHint,&nbsp;[out]&nbsp;struct&nbsp;[ScheduleInfo](_schedule_info.md)&nbsp;scheduleInfo) | 开始用户身份识别,并生成识别方案。&nbsp;[更多...](#beginidentification) | 
+| [UpdateIdentificationResult](#updateidentificationresult)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;scheduleResult,&nbsp;[out]&nbsp;struct&nbsp;[IdentifyResultInfo](_identify_result_info.md)&nbsp;info) | 更新用户身份识别结果,生成身份识别方案的结果。&nbsp;[更多...](#updateidentificationresult) | 
+| [CancelIdentification](#cancelidentification)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;contextId) | 取消用户身份识别请求。&nbsp;[更多...](#cancelidentification) | 
+| [GetAuthTrustLevel](#getauthtrustlevel)&nbsp;([in]&nbsp;GetUserInfoint&nbsp;userId,&nbsp;[in]&nbsp;enum&nbsp;[AuthType](_hdf_face_auth.md#authtype)&nbsp;authType,&nbsp;[out]&nbsp;unsigned&nbsp;int&nbsp;authTrustLevel) | 获取当前认证类型的认证结果可信等级。&nbsp;[更多...](#getauthtrustlevel) | 
+| [GetValidSolution](#getvalidsolution)&nbsp;([in]&nbsp;int&nbsp;userId,&nbsp;[in]&nbsp;enum&nbsp;[AuthType](_hdf_face_auth.md#authtype)[]&nbsp;authTypes,&nbsp;[in]&nbsp;unsigned&nbsp;int&nbsp;authTrustLevel,&nbsp;[out]&nbsp;enum&nbsp;[AuthType](_hdf_face_auth.md#authtype)[]&nbsp;validTypes) | 获取指定认证结果可信等级下有效的认证方式。&nbsp;[更多...](#getvalidsolution) | 
+
+
+## **详细描述**
+
+声明用户认证驱动的API接口。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### AddExecutor()
+
+  
+```
+IUserAuthInterface::AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds )
+```
+
+**描述:**
+
+添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| info | 执行器注册信息[ExecutorRegisterInfo](_executor_register_info.md)。 | 
+| index | 用户认证框架的执行器索引。 | 
+| publicKey | 用户认证框架公钥。 | 
+| templateIds | 该执行器已注册的模版ID列表。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### BeginAuthentication()
+
+  
+```
+IUserAuthInterface::BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos )
+```
+
+**描述:**
+
+开始认证用户,并生成认证方案。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+| param | 认证方案[AuthSolution](_auth_solution.md)。 | 
+| scheduleInfos | 调度信息[ScheduleInfo](_schedule_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### BeginEnrollment()
+
+  
+```
+IUserAuthInterface::BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info )
+```
+
+**描述:**
+
+开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| authToken | 用户口令认证令牌。 | 
+| param | 注册凭据参数[EnrollParam](_enroll_param.md)。 | 
+| info | 调度信息[ScheduleInfo](_schedule_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### BeginIdentification()
+
+  
+```
+IUserAuthInterface::BeginIdentification([in] unsigned long contextId, [in] enum AuthType authType, [in] unsigned char[] challenge, [in] unsigned int executorSensorHint, [out] struct ScheduleInfo scheduleInfo)
+```
+
+**描述:**
+
+开始用户身份识别,并生成识别方案。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+| authType | 用户身份识别类型[AuthType](_hdf_user_auth.md#authtype)。 | 
+| challenge | 随机挑战值,用于生成用户身份识别令牌,防止重放。 | 
+| executorSensorHint | 执行器传感器提示,用于找到对应认证方式的传感器。 | 
+| scheduleInfo | 调度信息[ScheduleInfo](_schedule_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### CancelAuthentication()
+
+  
+```
+IUserAuthInterface::CancelAuthentication ([in] unsigned long contextId)
+```
+
+**描述:**
+
+取消用户认证请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### CancelEnrollment()
+
+  
+```
+IUserAuthInterface::CancelEnrollment ([in] int userId)
+```
+
+**描述:**
+
+取消注册请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### CancelIdentification()
+
+  
+```
+IUserAuthInterface::CancelIdentification ([in] unsigned long contextId)
+```
+
+**描述:**
+
+取消用户身份识别请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### CloseSession()
+
+  
+```
+IUserAuthInterface::CloseSession ([in] int userId)
+```
+
+**描述:**
+
+关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### DeleteCredential()
+
+  
+```
+IUserAuthInterface::DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info )
+```
+
+**描述:**
+
+删除用户凭据信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| credentialId | 凭据ID。 | 
+| authToken | 用户口令认证令牌。 | 
+| info | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### DeleteExecutor()
+
+  
+```
+IUserAuthInterface::DeleteExecutor ([in] unsigned long index)
+```
+
+**描述:**
+
+删除执行器,用于清理失效的执行器信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| index | 用户认证框架的执行器索引。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### DeleteUser()
+
+  
+```
+IUserAuthInterface::DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos )
+```
+
+**描述:**
+
+删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| authToken | 用户口令认证令牌。 | 
+| deletedInfos | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### EnforceDeleteUser()
+
+  
+```
+IUserAuthInterface::EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos )
+```
+
+**描述:**
+
+强制删除用户,该请求由系统内管理用户的模块触发。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| deletedInfos | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetAuthTrustLevel()
+
+  
+```
+IUserAuthInterface::GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel )
+```
+
+**描述:**
+
+获取当前认证类型的认证结果可信等级。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| authType | 认证类型[AuthType](_hdf_user_auth.md#authtype)。 | 
+| authTrustLevel | 认证结果可信等级。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetCredential()
+
+  
+```
+IUserAuthInterface::GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos )
+```
+
+**描述:**
+
+查询用户凭据信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| authType | 凭据类型[AuthType](_hdf_user_auth.md#authtype)。 | 
+| infos | 凭据信息[CredentialInfo](_credential_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetUserInfo()
+
+  
+```
+IUserAuthInterface::GetUserInfo([in] int userId, [out] unsigned long secureUid, [out] enum PinSubType pinSubType, [out] struct EnrolledInfo[] infos)
+```
+
+**描述:**
+
+查询用户认证相关信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| secureUid | 安全用户ID。 | 
+| pinSubType | 口令认证子类型,请参考[PinSubType](_hdf_user_auth.md#pinsubtype)。 | 
+| infos | 注册信息[EnrolledInfo](_enrolled_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetValidSolution()
+
+  
+```
+IUserAuthInterface::GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes )
+```
+
+**描述:**
+
+获取指定认证结果可信等级下有效的认证方式。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| authTypes | 用于筛选的认证方式列表[AuthType](_hdf_user_auth.md#authtype)。 | 
+| authTrustLevel | 认证结果可信等级。 | 
+| validTypes | 有效的认证方式列表[AuthType](_hdf_user_auth.md#authtype)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Init()
+
+  
+```
+IUserAuthInterface::Init ()
+```
+
+**描述:**
+
+初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OpenSession()
+
+  
+```
+IUserAuthInterface::OpenSession ([in] int userId, [out] unsigned char[] challenge )
+```
+
+**描述:**
+
+开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| challenge | 随机挑战值,用于生成用户身份认证令牌。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### UpdateAuthenticationResult()
+
+  
+```
+IUserAuthInterface::UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info )
+```
+
+**描述:**
+
+更新认证结果,评估认证方案的认证结果。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+| scheduleResult | 执行器签发的认证结果。 | 
+| info | 认证结果信息[AuthResultInfo](_auth_result_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### UpdateEnrollmentResult()
+
+  
+```
+IUserAuthInterface::UpdateEnrollmentResult([in] int userId, [in] unsigned char[] scheduleResult, [out] struct EnrollResultInfo info)
+```
+
+**描述:**
+
+更新用户凭据注册结果,完成凭据注册。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| userId | 用户ID。 | 
+| scheduleResult | 执行器签发的注册结果。 | 
+| oldInfo | 录入结果信息[EnrollResultInfo](_enroll_resultinfo.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### UpdateIdentificationResult()
+
+  
+```
+IUserAuthInterface::UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info )
+```
+
+**描述:**
+
+更新用户身份识别结果,生成身份识别方案的结果。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| contextId | 上下文索引。 | 
+| scheduleResult | 执行器签发的用户身份识别结果。 | 
+| info | 用户身份识别结果[IdentifyResultInfo](_identify_result_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md
new file mode 100644
index 0000000000000000000000000000000000000000..f2ec31e36bd23413a8d772d66f0b89eb8cb6f72b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md
@@ -0,0 +1,270 @@
+# IExecutor
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [GetTemplateInfo](interface_i_executor.md#gettemplateinfo)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;templateId,&nbsp;[out]&nbsp;struct&nbsp;[TemplateInfo](_template_info.md)&nbsp;templateInfo) | 获取凭据模版信息。&nbsp;[更多...](interface_i_executor.md#gettemplateinfo) | 
+| [Cancel](interface_i_executor.md#cancel)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId) | 取消操作请求。&nbsp;[更多...](interface_i_executor.md#cancel) | 
+| [GetExecutorInfo](#getexecutorinfo)&nbsp;([out]&nbsp;struct&nbsp;[ExecutorInfo](_executor_info.md)&nbsp;executorInfo) | 获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。&nbsp;[更多...](#getexecutorinfo) | 
+| [OnRegisterFinish](#onregisterfinish)&nbsp;([in]&nbsp;unsigned&nbsp;long[]&nbsp;templateIdList,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;frameworkPublicKey,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo) | 完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。&nbsp;[更多...](#onregisterfinish) | 
+| [OnSetData](interface_i_executor.md#onsetdata)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;long&nbsp;authSubType,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;data) | 设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。&nbsp;[更多...](interface_i_executor.md#onsetdata) | 
+| [Enroll](#enroll)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_pin_i_executor_callback.md)&nbsp;callbackObj) | 注册口令。&nbsp;[更多...](#enroll) | 
+| [Authenticate](#authenticate)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;long&nbsp;templateId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_pin_i_executor_callback.md)&nbsp;callbackObj) | 认证口令。&nbsp;[ERROR:Invalid&nbsp;link:zh-cn_topic_0000001304382272.xml#xref15713627408,link:zh-cn_topic_0000001304382272.xml](zh-cn_topic_0000001304382272.xml) | 
+| [Delete](#delete)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;templateId) | 删除口令。&nbsp;[更多...](#delete) | 
+| [SendCommand](#sendcommand)&nbsp;([in]&nbsp;int&nbsp;commandId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo,&nbsp;[in]&nbsp;[IExecutorCallback](interface_pin_i_executor_callback.md)&nbsp;callbackObj) | 发送口令认证功能相关操作命令。&nbsp;[更多...](#sendcommand) | 
+
+
+## **详细描述**
+
+定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### Authenticate()
+
+  
+```
+IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+认证口令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| templateId | 指定要认证的模版ID。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Cancel()
+
+  
+```
+IExecutor::Cancel ([in] unsigned long scheduleId)
+```
+
+**描述:**
+
+取消操作请求。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Delete()
+
+  
+```
+IExecutor::Delete ([in] unsigned long templateId)
+```
+
+**描述:**
+
+删除口令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateId | 模版ID。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### Enroll()
+
+  
+```
+IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+注册口令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetExecutorInfo()
+
+  
+```
+IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo)
+```
+
+**描述:**
+
+获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| executorInfo | 执行器信息[ExecutorInfo](_executor_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### GetTemplateInfo()
+
+  
+```
+IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo )
+```
+
+**描述:**
+
+获取凭据模版信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateId | 凭据模版ID。 | 
+| templateInfo | 凭据模版信息[TemplateInfo](_template_info.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnRegisterFinish()
+
+  
+```
+IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo )
+```
+
+**描述:**
+
+完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| templateIdList | 用户认证框架内由该执行器注册的口令凭据模版ID列表。 | 
+| frameworkPublicKey | 用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnSetData()
+
+  
+```
+IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data )
+```
+
+**描述:**
+
+设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | 
+| authSubType | 口令子类型,如六位数字PIN码等。 | 
+| data | 口令数据。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### SendCommand()
+
+  
+```
+IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj )
+```
+
+**描述:**
+
+发送口令认证功能相关操作命令。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| commandId | 操作命令ID[CommandId](_hdf_pin_auth.md#commandid)。 | 
+| extraInfo | 其他相关信息,用于支持信息扩展。 | 
+| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor_callback.md
new file mode 100644
index 0000000000000000000000000000000000000000..afa114d1d6713248b831ebbca7933c13e947da39
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor_callback.md
@@ -0,0 +1,85 @@
+# IExecutorCallback
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### Public 成员函数
+
+  | Public&nbsp;成员函数 | 描述 | 
+| -------- | -------- |
+| [OnResult](interface_i_executor_callback.md#onresult)&nbsp;([in]&nbsp;int&nbsp;result,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;extraInfo) | 定义操作结果回调函数。&nbsp;[更多...](interface_i_executor_callback.md#onresult) | 
+| [OnGetData](#ongetdata)&nbsp;([in]&nbsp;unsigned&nbsp;long&nbsp;scheduleId,&nbsp;[in]&nbsp;unsigned&nbsp;char[]&nbsp;salt,&nbsp;[in]&nbsp;unsigned&nbsp;long&nbsp;authSubType) | 定义请求获取口令数据回调函数。&nbsp;[更多...](#ongetdata) | 
+
+
+## **详细描述**
+
+定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
+
+
+## **成员函数说明**
+
+
+### OnGetData()
+
+  
+```
+IExecutorCallback::OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType )
+```
+
+**描述:**
+
+定义请求获取口令数据回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| salt | 盐值,用于对口令明文进行单向处理。 | 
+| authSubType | 口令子类型,如六位数字PIN码等。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
+
+
+### OnResult()
+
+  
+```
+IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo )
+```
+
+**描述:**
+
+定义操作请求处理结果回调函数。
+
+**参数:**
+
+  | 名称 | 描述 | 
+| -------- | -------- |
+| result | 操作请求处理结果。 | 
+| extraInfo | 其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。 | 
+
+**返回:**
+
+0 表示操作成功。
+
+非0 表示操作失败。
diff --git a/zh-cn/device-dev/reference/hdi-apis/ioffline__stream__operator_8h.md b/zh-cn/device-dev/reference/hdi-apis/ioffline__stream__operator_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..0a593960df15b13fa7993604729fe44d422f52a7
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/ioffline__stream__operator_8h.md
@@ -0,0 +1,31 @@
+# ioffline_stream_operator.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) | 离线流的操作类。 | 
+
+
+## **详细描述**
+
+离线流的操作接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/istream__operator_8h.md b/zh-cn/device-dev/reference/hdi-apis/istream__operator_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..a051ce63222611aef21f4be9f21e1c972b6468ba
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/istream__operator_8h.md
@@ -0,0 +1,31 @@
+# istream_operator.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) | 流的操作类。 | 
+
+
+## **详细描述**
+
+流的操作接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/istream__operator__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/istream__operator__callback_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..79f5e3d8b480e208e732160c760498ea84515517
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/istream__operator__callback_8h.md
@@ -0,0 +1,31 @@
+# istream_operator_callback.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) | 流的操作回调类。 | 
+
+
+## **详细描述**
+
+[IStreamOperator](istream__operator_8h.md) 相关的回调,这些回调均由调用者实现。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md b/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md
new file mode 100644
index 0000000000000000000000000000000000000000..55be372ba23701d13dd838bfbc217c0e0e10523b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md
@@ -0,0 +1,33 @@
+# light_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+| 类 | 描述 |
+| -------- | -------- |
+| LightFlashEffect | 定义闪烁参数。&nbsp;[更多...](_light_flash_effect.md) |
+| LightEffect | 定义灯的效果参数。&nbsp;[更多...](_light_effect.md) |
+| LightInfo | 定义灯的基本信息。&nbsp;[更多...](_light_info.md) |
+
+
+## **详细描述**
+
+声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..989dc4180adaaf06f1dd227e2976a82aaf775830
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md
@@ -0,0 +1,40 @@
+# light_if.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Light](_light.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+| 类 | 描述 |
+| -------- | -------- |
+| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。&nbsp;[更多...](_light_interface.md) |
+
+
+### 函数
+
+| 函数 | 描述 |
+| -------- | -------- |
+| [NewLightInterfaceInstance](_light.md#newlightinterfaceinstance)&nbsp;(void) | 创建LightInterface实例。&nbsp;[更多...](_light.md#newlightinterfaceinstance) |
+| [FreeLightInterfaceInstance](_light.md#freelightinterfaceinstance)&nbsp;(void) | 释放LightInterface实例和相关资源。&nbsp;[更多...](_light.md#freelightinterfaceinstance) |
+
+
+## **详细描述**
+
+声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
+
diff --git a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..b642de475903f6710b7d62886606ef708b62023e
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md
@@ -0,0 +1,34 @@
+# IExecutor.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。&nbsp;[更多...](interface_pin_i_executor.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。
+
+**Since:**
+
+3.2
diff --git a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md
new file mode 100644
index 0000000000000000000000000000000000000000..39df7ba9021fa902cc6948b9cb567fe9de3ab613
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md
@@ -0,0 +1,38 @@
+# IExecutorCallback.idl
+
+
+## **概述**
+
+**所属模块:**
+
+[HdfPinAuth](_hdf_pin_auth.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_pin_i_executor.md)。&nbsp;[更多...](interface_pin_i_executor_callback.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | 
+
+
+## **详细描述**
+
+定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_pin_i_executor.md)。
+
+**Since:**
+
+3.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/power.md b/zh-cn/device-dev/reference/hdi-apis/power.md
new file mode 100644
index 0000000000000000000000000000000000000000..2ce105c12d28d9579ab2b3ad6eefbf186588e312
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/power.md
@@ -0,0 +1,112 @@
+# Power
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md) | 休眠/唤醒状态的回调。 | 
+| [IPowerInterface.idl](_i_power_interface_8idl.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 | 
+| [PowerTypes.idl](_power_types_8idl.md) | 电源相关的数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IPowerHdiCallback](interface_i_power_hdi_callback.md) | 休眠/唤醒状态的回调。&nbsp;[更多...](interface_i_power_hdi_callback.md) | 
+| [IPowerInterface](interface_i_power_interface.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。&nbsp;[更多...](interface_i_power_interface.md) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [PowerHdfCmd](#powerhdfcmd)&nbsp;{&nbsp;&nbsp;&nbsp;CMD_REGISTER_CALLBCK&nbsp;=&nbsp;0,&nbsp;CMD_START_SUSPEND,&nbsp;CMD_STOP_SUSPEND,&nbsp;CMD_FORCE_SUSPEND,&nbsp;&nbsp;&nbsp;CMD_SUSPEND_BLOCK,&nbsp;CMD_SUSPEND_UNBLOCK,&nbsp;CMD_DUMP&nbsp;} | 枚举电源命令的参数。&nbsp;[更多...](#powerhdfcmd) | 
+| [PowerHdfCallbackCmd](#powerhdfcallbackcmd)&nbsp;{&nbsp;CMD_ON_SUSPEND&nbsp;=&nbsp;0,&nbsp;CMD_ON_WAKEUP&nbsp;} | 枚举电源状态回调的参数。&nbsp;[更多...](#powerhdfcallbackcmd) | 
+| [PowerHdfState](#powerhdfstate)&nbsp;{&nbsp;AWAKE&nbsp;=&nbsp;0,&nbsp;INACTIVE,&nbsp;SLEEP&nbsp;} | 枚举电源的状态。&nbsp;[更多...](#powerhdfstate) | 
+
+
+### 变量
+
+  | 变量 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.power.v1_0 | 电源管理接口的包路径。 | 
+
+
+## **详细描述**
+
+提供休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。
+
+电源模块为电源服务提供的休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 服务获取此模块的对象或代理后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
+
+
+## **枚举类型说明**
+
+
+### PowerHdfCallbackCmd
+
+  
+```
+enum PowerHdfCallbackCmd
+```
+
+**描述:**
+
+枚举电源状态回调的参数。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CMD_ON_SUSPEND | 休眠回调的命令参数。 | 
+| CMD_ON_WAKEUP | 唤醒回调的命令参数。 | 
+
+
+### PowerHdfCmd
+
+  
+```
+enum PowerHdfCmd
+```
+
+**描述:**
+
+枚举电源命令的参数。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| CMD_REGISTER_CALLBCK | 订阅状态的命令参数 | 
+| CMD_START_SUSPEND | 休眠的命令参数 | 
+| CMD_STOP_SUSPEND | 唤醒的命令参数 | 
+| CMD_FORCE_SUSPEND | 强制休眠的命令参数 | 
+| CMD_SUSPEND_BLOCK | 打开运行锁的命令参数 | 
+| CMD_SUSPEND_UNBLOCK | 关闭运行锁的命令参数 | 
+| CMD_DUMP | Dump的命令参数 | 
+
+
+### PowerHdfState
+
+  
+```
+enum PowerHdfState
+```
+
+**描述:**
+
+枚举电源的状态。
+
+  | 枚举值 | 描述 | 
+| -------- | -------- |
+| AWAKE | 唤醒状态。 | 
+| INACTIVE | 非活动状态。 | 
+| SLEEP | 休眠状态。 | 
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-caution.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-caution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-caution.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-danger.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-danger.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-danger.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-note.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-note.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-note.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-notice.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-notice.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-notice.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-tip.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-tip.gif
new file mode 100644
index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-tip.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-warning.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-warning.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-warning.gif differ
diff --git a/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..886db580b0e774b24cce3e329d712189beaaaa9d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md
@@ -0,0 +1,39 @@
+# sensor_if.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Sensor](_sensor.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+| 类 | 描述 |
+| -------- | -------- |
+| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。&nbsp;[更多...](_sensor_interface.md) |
+
+
+### 函数
+
+| 函数 | 描述 |
+| -------- | -------- |
+| [NewSensorInterfaceInstance](_sensor.md#newsensorinterfaceinstance)&nbsp;(void) | 创建传感器接口实例。&nbsp;[更多...](_sensor.md#newsensorinterfaceinstance) |
+| [FreeSensorInterfaceInstance](_sensor.md#freesensorinterfaceinstance)&nbsp;(void) | 释放传感器接口实例。&nbsp;[更多...](_sensor.md#freesensorinterfaceinstance) |
+
+
+## **详细描述**
+
+Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..35adb8935df3946a74ce804b53a713680154aedc
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md
@@ -0,0 +1,59 @@
+# sensor_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Sensor](_sensor.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。&nbsp;[更多...](_sensor_information.md) | 
+| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。&nbsp;[更多...](_sensor_events.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| [SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)&nbsp;&nbsp;&nbsp;32 | Sensor名称的最大长度 | 
+| [SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)&nbsp;&nbsp;&nbsp;16 | Sensor版本号的最大长度 | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([RecordDataCallback](_sensor.md#recorddatacallback))&nbsp;(const&nbsp;struct&nbsp;[SensorEvents](_sensor_events.md)&nbsp;\*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时,&nbsp;需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。&nbsp;[更多...](_sensor.md#recorddatacallback) | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [SensorStatus](_sensor.md#sensorstatus)&nbsp;{&nbsp;SENSOR_SUCCESS&nbsp;=&nbsp;0,&nbsp;SENSOR_FAILURE&nbsp;=&nbsp;-1,&nbsp;SENSOR_NOT_SUPPORT&nbsp;=&nbsp;-2,&nbsp;SENSOR_INVALID_PARAM&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;SENSOR_INVALID_SERVICE&nbsp;=&nbsp;-4,&nbsp;SENSOR_NULL_PTR&nbsp;=&nbsp;-5&nbsp;} | 定义传感器模块返回值类型。&nbsp;[更多...](_sensor.md#sensorstatus) | 
+| [SensorTypeTag](_sensor.md#sensortypetag)&nbsp;{&nbsp;SENSOR_TYPE_NONE&nbsp;=&nbsp;0,&nbsp;SENSOR_TYPE_ACCELEROMETER&nbsp;=&nbsp;1,&nbsp;SENSOR_TYPE_GYROSCOPE&nbsp;=&nbsp;2,&nbsp;SENSOR_TYPE_PHOTOPLETHYSMOGRAPH&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ELECTROCARDIOGRAPH&nbsp;=&nbsp;4,&nbsp;SENSOR_TYPE_AMBIENT_LIGHT&nbsp;=&nbsp;5,&nbsp;SENSOR_TYPE_MAGNETIC_FIELD&nbsp;=&nbsp;6,&nbsp;SENSOR_TYPE_CAPACITIVE&nbsp;=&nbsp;7,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_BAROMETER&nbsp;=&nbsp;8,&nbsp;SENSOR_TYPE_TEMPERATURE&nbsp;=&nbsp;9,&nbsp;SENSOR_TYPE_HALL&nbsp;=&nbsp;10,&nbsp;SENSOR_TYPE_GESTURE&nbsp;=&nbsp;11,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_PROXIMITY&nbsp;=&nbsp;12,&nbsp;SENSOR_TYPE_HUMIDITY&nbsp;=&nbsp;13,&nbsp;SENSOR_TYPE_MEDICAL_BEGIN&nbsp;=&nbsp;128,&nbsp;SENSOR_TYPE_MEDICAL_END&nbsp;=&nbsp;160,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_PHYSICAL_MAX&nbsp;=&nbsp;255,&nbsp;SENSOR_TYPE_ORIENTATION&nbsp;=&nbsp;256,&nbsp;SENSOR_TYPE_GRAVITY&nbsp;=&nbsp;257,&nbsp;SENSOR_TYPE_LINEAR_ACCELERATION&nbsp;=&nbsp;258,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ROTATION_VECTOR&nbsp;=&nbsp;259,&nbsp;SENSOR_TYPE_AMBIENT_TEMPERATURE&nbsp;=&nbsp;260,&nbsp;SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED&nbsp;=&nbsp;261,&nbsp;SENSOR_TYPE_GAME_ROTATION_VECTOR&nbsp;=&nbsp;262,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_GYROSCOPE_UNCALIBRATED&nbsp;=&nbsp;263,&nbsp;SENSOR_TYPE_SIGNIFICANT_MOTION&nbsp;=&nbsp;264,&nbsp;SENSOR_TYPE_PEDOMETER_DETECTION&nbsp;=&nbsp;265,&nbsp;SENSOR_TYPE_PEDOMETER&nbsp;=&nbsp;266,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR&nbsp;=&nbsp;277,&nbsp;SENSOR_TYPE_HEART_RATE&nbsp;=&nbsp;278,&nbsp;SENSOR_TYPE_DEVICE_ORIENTATION&nbsp;=&nbsp;279,&nbsp;SENSOR_TYPE_WEAR_DETECTION&nbsp;=&nbsp;280,&nbsp;&nbsp;&nbsp;SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED&nbsp;=&nbsp;281,&nbsp;SENSOR_TYPE_MAX&nbsp;} | 定义传感器类型标识。&nbsp;[更多...](_sensor.md#sensortypetag) | 
+| [SensorAccuracyType](_sensor.md#sensoraccuracytype)&nbsp;{&nbsp;SENSOR_NO_ACCURACY&nbsp;=&nbsp;0,&nbsp;SENSOR_LOW_ACCURACY&nbsp;=&nbsp;1,&nbsp;SENSOR_MEDIUM_ACCURACY&nbsp;=&nbsp;2,&nbsp;SENSOR_HIGH_ACCURACY&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_MAX_ACCURACY&nbsp;} | 传感器的精度类型。&nbsp;[更多...](_sensor.md#sensoraccuracytype) | 
+| [SensorRangeType](_sensor.md#sensorrangetype)&nbsp;{&nbsp;SENSOR_RANGE_LEVEL1&nbsp;=&nbsp;0,&nbsp;SENSOR_RANGE_LEVEL2&nbsp;=&nbsp;1,&nbsp;SENSOR_RANGE_LEVEL3&nbsp;=&nbsp;2,&nbsp;SENSOR_RANGE_LEVEL_MAX&nbsp;} | 传感器的量程级别。&nbsp;[更多...](_sensor.md#sensorrangetype) | 
+| [SensorModeType](_sensor.md#sensormodetype)&nbsp;{&nbsp;SENSOR_MODE_DEFAULT&nbsp;=&nbsp;0,&nbsp;SENSOR_MODE_REALTIME&nbsp;=&nbsp;1,&nbsp;SENSOR_MODE_ON_CHANGE&nbsp;=&nbsp;2,&nbsp;SENSOR_MODE_ONE_SHOT&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;SENSOR_MODE_FIFO_MODE&nbsp;=&nbsp;4,&nbsp;SENSOR_MODE_MAX&nbsp;} | 传感器的工作模式。&nbsp;[更多...](_sensor.md#sensormodetype) | 
+| [SensorGroupType](_sensor.md#sensorgrouptype)&nbsp;{&nbsp;TRADITIONAL_SENSOR_TYPE&nbsp;=&nbsp;0,&nbsp;MEDICAL_SENSOR_TYPE&nbsp;=&nbsp;1,&nbsp;SENSOR_GROUP_TYPE_MAX&nbsp;} | 枚举传感器的硬件服务组。&nbsp;[更多...](_sensor.md#sensorgrouptype) | 
+
+
+## **详细描述**
+
+定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/thermal.md b/zh-cn/device-dev/reference/hdi-apis/thermal.md
new file mode 100644
index 0000000000000000000000000000000000000000..d639a37e380cc8615bd0440eee3909523152865b
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/thermal.md
@@ -0,0 +1,45 @@
+# Thermal
+
+
+## **汇总**
+
+
+### 文件
+
+  | 文件 | 描述 | 
+| -------- | -------- |
+| [IThermalCallback.idl](_i_thermal_callback_8idl.md) | 设备发热状态的回调。 | 
+| [IThermalInterface.idl](_i_thermal_interface_8idl.md) | 设备温度管理、控制及订阅接口。 | 
+| [ThermalTypes.idl](_thermal_types_8idl.md) | 设备发热状态相关的数据类型。 | 
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IThermalCallback](interface_i_thermal_callback.md) | 订阅设备发热状态的回调。&nbsp;[更多...](interface_i_thermal_callback.md) | 
+| [IThermalInterface](interface_i_thermal_interface.md) | 设备温度管理、控制及订阅接口。&nbsp;[更多...](interface_i_thermal_interface.md) | 
+| [ThermalZoneInfo](_thermal_zone_info.md) | 设备发热的信息。&nbsp;[更多...](_thermal_zone_info.md) | 
+| [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) | 设备发热的信息列表。&nbsp;[更多...](_hdf_thermal_callback_info.md) | 
+
+
+### 变量
+
+  | 变量&nbsp;名称 | 描述 | 
+| -------- | -------- |
+| package&nbsp;ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | 
+
+
+## **详细描述**
+
+提供设备温度管理、控制及订阅接口。
+
+热模块为热服务提供的设备温度管理、控制及订阅接口。 服务获取此模块的对象或代理后,可以调用相关的接口管理、控制和订阅设备温度。
+
+**Since:**
+
+3.1
+
+**Version:**
+
+1.0
diff --git a/zh-cn/application-dev/reference/native-apis/total.md b/zh-cn/device-dev/reference/hdi-apis/total.md
similarity index 100%
rename from zh-cn/application-dev/reference/native-apis/total.md
rename to zh-cn/device-dev/reference/hdi-apis/total.md
diff --git a/zh-cn/device-dev/reference/hdi-apis/types_8h.md b/zh-cn/device-dev/reference/hdi-apis/types_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..d464901d79c2444c7a1e1910b598dbe89cd1b8a0
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/types_8h.md
@@ -0,0 +1,61 @@
+# types.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Camera](_camera.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) | 流信息,用于创建流时传入相关的配置参数。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_stream_info.md) | 
+| [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | 流的属性。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | 
+| [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) | 捕获请求的相关信息。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_info.md) | 
+| [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | 捕获结束相关信息,用于捕获结束回调&nbsp;**OnCaptureEnded**。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | 
+| [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | 流错误信息,用于回调&nbsp;**OnCaptureError**。&nbsp;[更多...](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| **OHOS::Camera::CameraAbility**&nbsp;=&nbsp;CameraMetadata | Camera设备能力集合。 | 
+| **OHOS::Camera::CameraSetting**&nbsp;=&nbsp;CameraMetadata | Camera设置参数,包括sensor帧率,3A相关参数等。 | 
+| **OHOS::Camera::MetaType**&nbsp;=&nbsp;int32_t | 整型。 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [OHOS::Camera::CamRetCode](_camera.md#camretcode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;&nbsp;&nbsp;OHOS::Camera::NO_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::CAMERA_BUSY&nbsp;=&nbsp;-1,&nbsp;OHOS::Camera::INSUFFICIENT_RESOURCES&nbsp;=&nbsp;-2,&nbsp;OHOS::Camera::INVALID_ARGUMENT&nbsp;=&nbsp;-3,&nbsp;&nbsp;&nbsp;OHOS::Camera::METHOD_NOT_SUPPORTED&nbsp;=&nbsp;-4,&nbsp;OHOS::Camera::CAMERA_CLOSED&nbsp;=&nbsp;-5,&nbsp;OHOS::Camera::DEVICE_ERROR&nbsp;=&nbsp;-6&nbsp;} | HDI接口的返回值。&nbsp;[更多...](_camera.md#camretcode) | 
+| [OHOS::Camera::ResultCallbackMode](_camera.md#resultcallbackmode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::PER_FRAME,&nbsp;OHOS::Camera::ON_CHANGED&nbsp;} | metadata的上报模式。&nbsp;[更多...](_camera.md#resultcallbackmode) | 
+| [OHOS::Camera::OperationMode](_camera.md#operationmode)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::NORMAL&nbsp;=&nbsp;0&nbsp;} | 流的使用模式。&nbsp;[更多...](_camera.md#operationmode) | 
+| [OHOS::Camera::StreamIntent](_camera.md#streamintent)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;&nbsp;&nbsp;OHOS::Camera::PREVIEW&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::VIDEO&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::STILL_CAPTURE&nbsp;=&nbsp;2,&nbsp;OHOS::Camera::POST_VIEW&nbsp;=&nbsp;3,&nbsp;&nbsp;&nbsp;OHOS::Camera::ANALYZE&nbsp;=&nbsp;4,&nbsp;OHOS::Camera::CUSTOM&nbsp;=&nbsp;5&nbsp;} | 流的类型。&nbsp;[更多...](_camera.md#streamintent) | 
+| [OHOS::Camera::EncodeType](_camera.md#encodetype)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::ENCODE_TYPE_NULL&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::ENCODE_TYPE_H264&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::ENCODE_TYPE_H265&nbsp;=&nbsp;2,&nbsp;OHOS::Camera::ENCODE_TYPE_JPEG&nbsp;=&nbsp;3&nbsp;} | 流数据的编码类型。&nbsp;[更多...](_camera.md#encodetype) | 
+| [OHOS::Camera::StreamSupportType](_camera.md#streamsupporttype)&nbsp;:&nbsp;int32_t&nbsp;{&nbsp;OHOS::Camera::DYNAMIC_SUPPORTED,&nbsp;OHOS::Camera::RE_CONFIGURED_REQUIRED,&nbsp;OHOS::Camera::NOT_SUPPORTED&nbsp;} | 动态配置流的切换方式,使用场景参考&nbsp;[IsStreamsSupported](_camera.md#isstreamssupported)&nbsp;。&nbsp;[更多...](_camera.md#streamsupporttype) | 
+| [OHOS::Camera::CameraStatus](_camera.md#camerastatus)&nbsp;{&nbsp;OHOS::Camera::UN_AVAILABLE&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::AVAILABLE&nbsp;=&nbsp;1&nbsp;} | Camera设备状态。&nbsp;[更多...](_camera.md#camerastatus) | 
+| [OHOS::Camera::FlashlightStatus](_camera.md#flashlightstatus)&nbsp;:&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::FLASHLIGHT_OFF&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::FLASHLIGHT_ON&nbsp;=&nbsp;1,&nbsp;OHOS::Camera::FLASHLIGHT_UNAVAILABLE&nbsp;=&nbsp;2&nbsp;} | 闪光灯状态。&nbsp;[更多...](_camera.md#flashlightstatus) | 
+| [OHOS::Camera::CameraEvent](_camera.md#cameraevent):&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::CAMERA_EVENT_DEVICE_ADD&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::CAMERA_EVENT_DEVICE_RMV&nbsp;=&nbsp;1&nbsp;} | Camera事件。&nbsp;[更多...](_camera.md#cameraevent) | 
+| [OHOS::Camera::ErrorType](_camera.md#errortype)&nbsp;:&nbsp;uint32_t&nbsp;{&nbsp;OHOS::Camera::FATAL_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::REQUEST_TIMEOUT&nbsp;=&nbsp;1&nbsp;} | 设备错误类型,用于设备错误回调&nbsp;**OnError**。&nbsp;[更多...](_camera.md#errortype) | 
+| [OHOS::Camera::StreamError](_camera.md#streamerror)&nbsp;{&nbsp;OHOS::Camera::UNKNOWN_ERROR&nbsp;=&nbsp;0,&nbsp;OHOS::Camera::BUFFER_LOST&nbsp;=&nbsp;1&nbsp;} | 流错误类型,用于流错误类型&nbsp;**CaptureErrorInfo**。&nbsp;[更多...](_camera.md#streamerror) | 
+
+
+## **详细描述**
+
+Camera模块HDI接口使用的数据类型。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md b/zh-cn/device-dev/reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md
new file mode 100644
index 0000000000000000000000000000000000000000..8de76492ce9026d0aea6c5a71bd5ca2ad479d361
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md
@@ -0,0 +1,24 @@
+# AudioSceneDescriptor::SceneDesc
+
+
+## **概述**
+
+**所属模块:**
+
+[Audio](_audio.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [id](_audio.md#id) | 音频场景的ID。 | 
+| [desc](_audio.md#desc-35) | 以字符串命名的音频场景。 | 
+
+
+## **详细描述**
+
+音频场景描述。
diff --git a/zh-cn/device-dev/reference/hdi-apis/union_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/union_port_cap.md
new file mode 100644
index 0000000000000000000000000000000000000000..3e1b3f060202249675ae58d842207e63f25152dd
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/union_port_cap.md
@@ -0,0 +1,51 @@
+# PortCap
+
+
+## **概述**
+
+**所属模块:**
+
+[Codec](_codec.md)
+
+
+## **汇总**
+
+
+### Public 属性
+
+  | Public&nbsp;属性 | 描述 | 
+| -------- | -------- |
+| [video](#video) | 视频编解码能力 | 
+| [audio](#audio) | 音频编解码能力 | 
+
+
+## **详细描述**
+
+定义音视频编解码能力。
+
+
+## **类成员变量说明**
+
+
+### audio
+
+  
+```
+AudioPortCap PortCap::audio
+```
+
+**描述:**
+
+音频编解码能力
+
+
+### video
+
+  
+```
+VideoPortCap PortCap::video
+```
+
+**描述:**
+
+视频编解码能力
diff --git a/zh-cn/device-dev/reference/hdi-apis/usb__info_8h.md b/zh-cn/device-dev/reference/hdi-apis/usb__info_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d075be4d50a0065bee81aa13f8f93b56c68876c
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/usb__info_8h.md
@@ -0,0 +1,32 @@
+# usb_info.h
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | 
+| [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | USB设备信息类。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | 
+
+
+## **详细描述**
+
+USB驱动订阅模块使用的数据类型。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/usbd__client_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__client_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..e8ca6691a0b58d02be9447301431287af1273c80
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/usbd__client_8h.md
@@ -0,0 +1,31 @@
+# usbd_client.h
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | USB驱动类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | 
+
+
+## **详细描述**
+
+声明标准USB驱动接口函数。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/usbd__subscriber_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__subscriber_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..5bddc2d6b20509f2b5d0cfd6b7be46ee5503f7b7
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/usbd__subscriber_8h.md
@@ -0,0 +1,31 @@
+# usbd_subscriber.h
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | USB订阅类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | 
+
+
+## **详细描述**
+
+USB驱动订阅模块。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..a8a3c6bdb08dc9fa640877e6569b59c5af4b287f
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md
@@ -0,0 +1,67 @@
+# usbd_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[USB](_u_s_b.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | USB设备。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | 
+| [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 管道信息。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 
+| [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | USB控制传输。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | 
+| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。&nbsp;[更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| [USB_MAX_INTERFACES](_u_s_b.md#usbmaxinterfaces)&nbsp;&nbsp;&nbsp;32 | USB设备最大接口数量。 | 
+
+### 静态常量
+
+  | 静态常量 | 描述 | 
+| -------- | -------- |
+| [USB_ENDPOINT_DIR_MASK](_u_s_b.md#usb\_endpoint\_dir\_mask)&nbsp;&nbsp;&nbsp;0x80 | 从地址中提取USB Endpoint方向的位掩码。 | 
+| [USB_ENDPOINT_DIR_IN](_u_s_b.md#usb\_endpoint\_dir\_in)&nbsp;&nbsp;&nbsp;0x80 | USB Endpoint从设备到主机的数据方向。 | 
+| [USB_ENDPOINT_DIR_OUT](_u_s_b.md#usb\_endpoint\_dir\_out)&nbsp;&nbsp;&nbsp;0 | USB Endpoint从主机到设备的数据方向。 | 
+
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([UsbdRequestCallback](_u_s_b.md#usbdrequestcallback))&nbsp;(uint8_t&nbsp;\*requestArg) | 请求回调函数。 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [UsbdBulkCbCmd](_u_s_b.md#usbdbulkcbcmd)&nbsp;{&nbsp;CMD_USBD_BULK_CALLBACK_READ,&nbsp;CMD_USBD_BULK_CALLBACK_WRITE&nbsp;} | 批量回调命令字。&nbsp;[更多...](_u_s_b.md#usbdbulkcbcmd) | 
+| [UsbdDeviceAction](_u_s_b.md#usbddeviceaction)&nbsp;{&nbsp;ACT_DEVUP&nbsp;=&nbsp;0,&nbsp;ACT_DEVDOWN,&nbsp;ACT_UPDEVICE,&nbsp;ACT_DOWNDEVICE&nbsp;} | 主机端和设备端插拔事件。&nbsp;[更多...](_u_s_b.md#usbddeviceaction) | 
+
+
+## **详细描述**
+
+USB驱动模块接口定义中使用的自定义数据类型。
+
+USB驱动模块接口定义中使用的自定义数据类型, 包括分发的命令字、数据方向等。
+
+**Since:**
+
+3.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/vibrator__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/vibrator__if_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..29b0c3a7c21a41ed4c0ae62ab3d56da43c59c3ea
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/vibrator__if_8h.md
@@ -0,0 +1,39 @@
+# vibrator_if.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Vibrator](_vibrator.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [VibratorInterface](_vibrator_interface.md) | 提供Vibrator设备基本控制操作接口。 | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [NewVibratorInterfaceInstance](_vibrator.md#newvibratorinterfaceinstance)&nbsp;(void) | 创建一个VibratorInterface实例。&nbsp;[更多...](_vibrator.md#newvibratorinterfaceinstance) | 
+| [FreeVibratorInterfaceInstance](_vibrator.md#freevibratorinterfaceinstance)&nbsp;(void) | 释放VibratorInterface实例以及相关资源。&nbsp;[更多...](_vibrator.md#freevibratorinterfaceinstance) | 
+
+
+## **详细描述**
+
+定义马达数据结构,包括马达模式和效果振动。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..1abb949a8c7e380abacb367d82feffd85471982d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md
@@ -0,0 +1,33 @@
+# vibrator_type.h
+
+
+## **概述**
+
+**所属模块:**
+
+[Vibrator](_vibrator.md)
+
+
+## **汇总**
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [VibratorMode](_vibrator.md#vibratormode)&nbsp;{&nbsp;VIBRATOR_MODE_ONCE&nbsp;=&nbsp;0,&nbsp;VIBRATOR_MODE_PRESET&nbsp;=&nbsp;1,&nbsp;VIBRATOR_MODE_BUTT&nbsp;} | 枚举马达振动模式。&nbsp;[更多...](_vibrator.md#vibratormode) | 
+| [VibratorStatus](_vibrator.md#vibratorstatus)&nbsp;{&nbsp;VIBRATOR_SUCCESS&nbsp;=&nbsp;0,&nbsp;VIBRATOR_NOT_PERIOD&nbsp;=&nbsp;-1,&nbsp;&nbsp;VIBRATOR_NOT_INTENSITY&nbsp;&nbsp;=&nbsp;-2,&nbsp;&nbsp;VIBRATOR_NOT_FREQUENCY=&nbsp;-3} | 枚举马达振动模式。[更多...](_vibrator.md#vibratorstatus) | 
+| [VibratorInfo](_vibrator.md#vibratorinfo)&nbsp;{&nbsp;isSupportIntensity,&nbsp;isSupportFrequency,&nbsp;intensityMaxValue,&nbsp;intensityMinValue,&nbsp;frequencyMaxValue,&nbsp;frequencyMinValue} | 定义马达参数。[更多...](_vibrator.md#vibratorinfo) | 
+
+
+## **详细描述**
+
+定义马达数据结构,包括马达模式和效果振动。
+
+**Since:**
+
+2.2
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/wifi__hal_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..ce0a6c3e0386722de46f68519df51ef20ba04ce5
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/wifi__hal_8h.md
@@ -0,0 +1,46 @@
+# wifi_hal.h
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IWiFi](_i_wi_fi.md) | HAL对WLAN服务提供的基本能力。&nbsp;[更多...](_i_wi_fi.md) | 
+
+
+### 类型定义
+
+  | 类型定义 | 描述 | 
+| -------- | -------- |
+| ([CallbackFunc](_w_l_a_n.md#callbackfunc))&nbsp;(uint32_t&nbsp;event,&nbsp;void&nbsp;\*data,&nbsp;const&nbsp;char&nbsp;\*ifName) | 定义IWiFi回调函数的原型,监听异步事件。&nbsp;[更多...](_w_l_a_n.md#callbackfunc) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [WifiConstruct](_w_l_a_n.md#wificonstruct)&nbsp;(struct&nbsp;[IWiFi](_i_wi_fi.md)&nbsp;\*\*wifiInstance) | 创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。&nbsp;[更多...](_w_l_a_n.md#wificonstruct) | 
+| [WifiDestruct](_w_l_a_n.md#wifidestruct)&nbsp;(struct&nbsp;[IWiFi](_i_wi_fi.md)&nbsp;\*\*wifiInstance) | 销毁IWiFi结构体并释放相关资源。&nbsp;[更多...](_w_l_a_n.md#wifidestruct) | 
+
+
+## **详细描述**
+
+提供给WLAN服务的WLAN基本能力接口。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/wifi__hal__ap__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__ap__feature_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..5070b56b1ba8a62600a9a0486c7125d2ed457e9d
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__ap__feature_8h.md
@@ -0,0 +1,39 @@
+# wifi_hal_ap_feature.h
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [StaInfo](_sta_info.md) | 描述与AP连接的STA的基本信息&nbsp;[更多...](_sta_info.md) | 
+| [IWiFiAp](_i_wi_fi_ap.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。&nbsp;[更多...](_i_wi_fi_ap.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [InitApFeature](_w_l_a_n.md#initapfeature)&nbsp;(struct&nbsp;[IWiFiAp](_i_wi_fi_ap.md)&nbsp;\*\*fe) | 初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](_w_l_a_n.md#featuretype)时调用。&nbsp;[更多...](_w_l_a_n.md#initapfeature) | 
+
+
+## **详细描述**
+
+提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__base__feature_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..2507aeda6f531039f93e9db3bcb511b06f6622f3
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__base__feature_8h.md
@@ -0,0 +1,54 @@
+# wifi_hal_base_feature.h
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IWiFiBaseFeature](_i_wi_fi_base_feature.md) | WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。&nbsp;[更多...](_i_wi_fi_base_feature.md) | 
+
+
+### 宏定义
+
+  | 宏定义 | 描述 | 
+| -------- | -------- |
+| [IFNAME_MAX_LEN](_w_l_a_n.md#ga63637ece87095ff8d153f650434ecf97)&nbsp;&nbsp;&nbsp;16 | 网卡名称最大长度。 | 
+| [WIFI_MAC_ADDR_LENGTH](_w_l_a_n.md#ga27ea7645cf89c113dae48346e19a676f)&nbsp;&nbsp;&nbsp;6 | WLAN的MAC地址长度。 | 
+| [ERR_UNAUTH_ACCESS](_w_l_a_n.md#gadfe9ac5a374d348cd8f77a84cd5ab94e)&nbsp;&nbsp;&nbsp;(-6) | 定义访问失败错误码。 | 
+
+
+### 枚举
+
+  | 枚举 | 描述 | 
+| -------- | -------- |
+| [FeatureType](_w_l_a_n.md#featuretype)&nbsp;{&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_UNSPECIFIED,&nbsp;PROTOCOL_80211_IFTYPE_ADHOC,&nbsp;PROTOCOL_80211_IFTYPE_STATION,&nbsp;PROTOCOL_80211_IFTYPE_AP,&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_AP_VLAN,&nbsp;PROTOCOL_80211_IFTYPE_WDS,&nbsp;PROTOCOL_80211_IFTYPE_MONITOR,&nbsp;PROTOCOL_80211_IFTYPE_MESH_POINT,&nbsp;&nbsp;&nbsp;PROTOCOL_80211_IFTYPE_P2P_CLIENT,&nbsp;PROTOCOL_80211_IFTYPE_P2P_GO,&nbsp;PROTOCOL_80211_IFTYPE_P2P_DEVICE,&nbsp;PROTOCOL_80211_IFTYPE_NUM&nbsp;} | 枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#featuretype)。&nbsp;[更多...](_w_l_a_n.md#featuretype) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [InitBaseFeature](_w_l_a_n.md#initbasefeature)&nbsp;(struct&nbsp;[IWiFiBaseFeature](_i_wi_fi_base_feature.md)&nbsp;\*\*fe) | WLAN服务创建任何类型的特性{\@Link&nbsp;FeatureType}时,都需要调用此函数。&nbsp;[更多...](_w_l_a_n.md#initbasefeature) | 
+
+
+## **详细描述**
+
+提供WLAN基本特性能力。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/reference/hdi-apis/wifi__hal__sta__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__sta__feature_8h.md
new file mode 100644
index 0000000000000000000000000000000000000000..66cf5f1a520a17a27b8806a589916e124d362d23
--- /dev/null
+++ b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__sta__feature_8h.md
@@ -0,0 +1,38 @@
+# wifi_hal_sta_feature.h
+
+
+## **概述**
+
+**所属模块:**
+
+[WLAN](_w_l_a_n.md)
+
+
+## **汇总**
+
+
+### ç±»
+
+  | 类 | 描述 | 
+| -------- | -------- |
+| [IWiFiSta](_i_wi_fi_sta.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。&nbsp;[更多...](_i_wi_fi_sta.md) | 
+
+
+### 函数
+
+  | 函数 | 描述 | 
+| -------- | -------- |
+| [InitStaFeature](_w_l_a_n.md#initstafeature)&nbsp;(struct&nbsp;[IWiFiSta](_i_wi_fi_sta.md)&nbsp;\*\*fe) | 初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](_w_l_a_n.md#featuretype)时调用。&nbsp;[更多...](_w_l_a_n.md#initstafeature) | 
+
+
+## **详细描述**
+
+提供WLAN的STA特性能力。
+
+**Since:**
+
+1.0
+
+**Version:**
+
+1.0
diff --git a/zh-cn/device-dev/subsystems/Readme-CN.md b/zh-cn/device-dev/subsystems/Readme-CN.md
index 5d1288e335f52ae4c05825376e4d2931fa6657f5..d93db2c101cf19d4e158414e257abb588ee14953 100755
--- a/zh-cn/device-dev/subsystems/Readme-CN.md
+++ b/zh-cn/device-dev/subsystems/Readme-CN.md
@@ -74,10 +74,15 @@
     - [设备安全等级管理开发指导](subsys-security-devicesecuritylevel.md)
 - 启动恢复
     - [启动恢复子系统概述](subsys-boot-overview.md)
-    - [init启动引导组件](subsys-boot-init.md)
+    - init启动引导组件
+      - [引导启动配置文件](subsys-boot-init-cfg.md)
+      - [jobs管理](subsys-boot-init-jobs.md)
+      - [服务管理](subsys-boot-init-service.md)
+      - [系统参数](subsys-boot-init-sysparam.md)
+      - [沙盒管理](subsys-boot-init-sandbox.md)
+      - [插件](subsys-boot-init-plugin.md)
     - [appspawn应用孵化组件](subsys-boot-appspawn.md)
     - [bootstrap服务启动组件](subsys-boot-bootstrap.md)
-    - [syspara系统属性组件](subsys-boot-syspara.md)
     - [常见问题](subsys-boot-faqs.md)
     - [参考](subsys-boot-ref.md)
 - [测试用例开发指导](subsys-testguide-test.md)
diff --git a/zh-cn/device-dev/subsystems/figures/Hiview_module_data_interaction.png b/zh-cn/device-dev/subsystems/figures/Hiview_module_data_interaction.png
index 87f67eef3f467d7ac59f2a877ae0e3ac8bb84c07..ea50df9c793f5192c17e9598970273659ecd4870 100644
Binary files a/zh-cn/device-dev/subsystems/figures/Hiview_module_data_interaction.png and b/zh-cn/device-dev/subsystems/figures/Hiview_module_data_interaction.png differ
diff --git a/zh-cn/device-dev/subsystems/subsys-aiframework-demo-sdk.md b/zh-cn/device-dev/subsystems/subsys-aiframework-demo-sdk.md
index 1f80a4874cc967d60a9a6a933c7579873952be0a..87ce0460bb5d2966f2ab221ceb19a0801d0c54d0 100644
--- a/zh-cn/device-dev/subsystems/subsys-aiframework-demo-sdk.md
+++ b/zh-cn/device-dev/subsystems/subsys-aiframework-demo-sdk.md
@@ -9,21 +9,21 @@
        KWSSdk();
        virtual ~KWSSdk();
    
-       // 定义创建唤醒词检测工具包的方法。
+       // 定义创建唤醒词检测工具包的方法
        int32_t Create();
    
-       // 定义同步执行唤醒词检测任务的方法。
+       // 定义同步执行唤醒词检测任务的方法
        int32_t SyncExecute(const Array<int16_t> &audioInput);
    
        // 定义设置唤醒词检测回调器的方法。
        int32_t SetCallback(const std::shared_ptr<KWSCallback> &callback);
    
-       // 定义销毁唤醒词工具包的方法,释放与插件的会话信息。
+       // 定义销毁唤醒词工具包的方法,释放与插件的会话信息
        int32_t Destroy();
    };
    ```
 
-2. 在//foundation/ai/engine/services/client/algorithm_sdk目录中增加SDK中API接口的具体实现,调用client端提供的接口,实现算法插件能力的使用。如下代码片段即为唤醒词识别的API接口中create方法的具体实现示例,更多详细代码可参考://foundation/ai/engine/services/client/algorithm_sdk/asr/keyword_spotting。
+2. 在//foundation/ai/engine/services/client/algorithm_sdk目录中增加SDK中API接口的具体实现,调用client端提供的接口,实现算法插件能力的使用。如下代码片段即为唤醒词识别的API接口中create方法的具体实现示例,更多详细代码请参考://foundation/ai/engine/services/client/algorithm_sdk/asr/keyword_spotting。
      
    ```
    int32_t KWSSdk::KWSSdkImpl::Create()
@@ -36,7 +36,7 @@
            HILOGE("[KWSSdkImpl]Fail to init sdk components");
            return KWS_RETCODE_FAILURE;
        }
-       // 调用client端提供的接口AieClientInit,实现初始化引擎服务,激活跨进程调用
+       // 调用client端提供的AieClientInit接口,实现初始化引擎服务,激活跨进程调用
        int32_t retCode = AieClientInit(configInfo_, clientInfo_, algorithmInfo_, nullptr);
        if (retCode != RETCODE_SUCCESS) {
            HILOGE("[KWSSdkImpl]AieClientInit failed. Error code[%d]", retCode);
@@ -54,7 +54,7 @@
            .data = nullptr,
            .length = 0,
        };
-       // 调用client端提供的接口AieClientPrepare,实现加载算法插件
+       // 调用client端提供的AieClientPrepare接口,实现加载算法插件
        retCode = AieClientPrepare(clientInfo_, algorithmInfo_, inputInfo, outputInfo, nullptr);
        if (retCode != RETCODE_SUCCESS) {
            HILOGE("[KWSSdkImpl]AieclientPrepare failed. Error code[%d]", retCode);
@@ -74,7 +74,8 @@
    }
    ```
 
-   上述代码为API接口的具体实现,从上述示例的代码中,SDK中create接口的具体实现即为上述示例代码中create方法,该方法调用了AI引擎框架client端开放接口AieClientInit,AieClientPrepare,从而实现与server端建立连接及加载算法模型的能力。
+   上述代码为API接口的具体实现。在示例代码中,SDK中create接口的具体实现即为上述示例代码中create方法,该方法调用了AI引擎框架client端提供的AieClientInit及AieClientPrepare接口,从而实现与server端建立连接及加载算法模型的能力。
 
-   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
+   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+   > 
    > SDK调用AI引擎client端接口应遵循AieClientInit-&gt;AieClientPrepare-&gt;AieClientSyncProcess/AieClientAsyncProcess-&gt;AieClientRelease-&gt;AieClientDestroy顺序,否则调用接口会返回错误码。
diff --git a/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-plugin.md b/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-plugin.md
index 598a744eb0f8694ad238415e23d324fda3fda055..d082cc359fab9b9cb72cc9f521192c6ad1c71ea0 100644
--- a/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-plugin.md
+++ b/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-plugin.md
@@ -13,12 +13,12 @@ AI引擎框架规定了一套算法插件接入规范,各插件需实现规定
 | -------- | -------- | -------- |
 | const&nbsp;long&nbsp;long&nbsp;GetVersion()&nbsp;const; | **作用**:获取插件版本信息。<br/>**返回值**:版本号(long&nbsp;long) | - | 
 | const&nbsp;char&nbsp;\*GetInferMode()&nbsp;const; | **作用**:获取算法推理类型。<br/>**返回值**:"SYNC"&nbsp;or&nbsp;"ASYNC"; | - | 
-| int&nbsp;SyncProcess(IRequest&nbsp;\*request,<br/>IResponse&nbsp;\*&amp;response); | **作用**:执行插件同步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **request**(NOT&nbsp;NULL):用于向算法插件传递请求内容;引擎服务端与插件的数据通道;<br/>**response**(NOT&nbsp;NULL):作为出参用于接收算法插件发回的同步算法执行结果,引擎服务端与插件的数据通道; | 
-| int&nbsp;AsyncProcess(IRequest&nbsp;\*request,<br/>IPluginAlgorithmCallback&nbsp;\*callback); | **作用**:执行异步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **request**(NOT&nbsp;NULL):用于向算法插件传递请求内容;引擎服务端与插件的数据通道。<br/>**callback**(NOT&nbsp;NULL):算法插件异步执行结果通过此回调返回引擎服务端; | 
-| int&nbsp;Prepare(long&nbsp;long&nbsp;transactionId,<br/>const&nbsp;DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo<br/>&amp;outputInfo); | **作用**:加载算法插件。<br/>**返回值**:0为成功,其他返回值失败。 | **transactionId**(NOT&nbsp;NULL):事务ID,用于标记客户端+会话信息;<br/>**inputInfo**(可为NULL):加载算法插件传入的一些信息;<br/>**outputInfo**(可为NULL):调用加载接口时的出参,返回相关执行结果; | 
-| int&nbsp;Release(bool&nbsp;isFullUnload,&nbsp;long&nbsp;long<br/>transactionId,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo); | **作用**:卸载相关算法插件。<br/>**返回值**:0为成功,其他返回值失败。 | **isFullUnload**(NOT&nbsp;NULL):表示此插件是否只剩一个client调用,否则不能直接卸载插件,需等最后一个client来进行卸载;<br/>**transactionId**(NOT&nbsp;NULL):事务ID,用于标记客户端+会话信息;<br/>**inputInfo**(可为NULL):卸载算法插件传入的一些信息; | 
-| int&nbsp;SetOption(int&nbsp;optionType,&nbsp;const<br/>DataInfo&nbsp;&amp;inputInfo); | **作用**:设置配置项,可将一些算法的拓展信息通过此接口传入插件。<br/>**返回值**:0为成功,其他返回值失败。 | **optionType**&nbsp;(NOT&nbsp;NULL):算法配置项,算法插件可根据需要利用此状态位;<br/>**inputInfo**(可为NULL):插件可根据需要通过此入参设置算法参数信息; | 
-| int&nbsp;GetOption(int&nbsp;optionType,&nbsp;const<br/>DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo<br/>&amp;outputInfo); | **作用**:给定特定的optionType和inputInfo,获取其对应的配置项信息。<br/>**返回值**:0为成功,其他返回值失败。 | **optionType**(NOT&nbsp;NULL):所获取配置项信息的对应算法状态位;<br/>**inputInfo**(可为NULL):所获取配置项信息的对应算法参数信息;<br/>**outputInfo**(可为NULL):所要获取的配置项信息返回结果; | 
+| int&nbsp;SyncProcess(IRequest&nbsp;\*request,<br/>IResponse&nbsp;\*&amp;response); | **作用**:执行插件同步算法。<br/>**返回值**:0为成功,其他返回值为失败。 | **request**(NOT&nbsp;NULL):用于向算法插件传递请求内容;引擎服务端与插件的数据通道。<br/>**response**(NOT&nbsp;NULL):作为出参用于接收算法插件发回的同步算法执行结果,引擎服务端与插件的数据通道。 | 
+| int&nbsp;AsyncProcess(IRequest&nbsp;\*request,<br/>IPluginAlgorithmCallback&nbsp;\*callback); | **作用**:执行异步算法。<br/>**返回值**:0为成功,其他返回值为失败。 | **request**(NOT&nbsp;NULL):用于向算法插件传递请求内容;引擎服务端与插件的数据通道。<br/>**callback**(NOT&nbsp;NULL):算法插件异步执行结果通过此回调返回引擎服务端。 | 
+| int&nbsp;Prepare(long&nbsp;long&nbsp;transactionId,<br/>const&nbsp;DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo<br/>&amp;outputInfo); | **作用**:加载算法插件。<br/>**返回值**:0为成功,其他返回值为失败。 | **transactionId**(NOT&nbsp;NULL):事务ID,用于标记客户端+会话信息。<br/>**inputInfo**(可为NULL):加载算法插件传入的一些信息。<br/>**outputInfo**(可为NULL):调用加载接口时的出参,返回相关执行结果。 | 
+| int&nbsp;Release(bool&nbsp;isFullUnload,&nbsp;long&nbsp;long<br/>transactionId,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo); | **作用**:卸载相关算法插件。<br/>**返回值**:0为成功,其他返回值为失败。 | **isFullUnload**(NOT&nbsp;NULL):表示此插件是否只剩一个client调用,否则不能直接卸载插件,需等最后一个client来进行卸载。<br/>**transactionId**(NOT&nbsp;NULL):事务ID,用于标记客户端+会话信息。<br/>**inputInfo**(可为NULL):卸载算法插件传入的一些信息。 | 
+| int&nbsp;SetOption(int&nbsp;optionType,&nbsp;const<br/>DataInfo&nbsp;&amp;inputInfo); | **作用**:设置配置项,可将一些算法的拓展信息通过此接口传入插件。<br/>**返回值**:0为成功,其他返回值为失败。 | **optionType**&nbsp;(NOT&nbsp;NULL):算法配置项,算法插件可根据需要利用此状态位。<br/>**inputInfo**(可为NULL):插件可根据需要通过此入参设置算法参数信息。 | 
+| int&nbsp;GetOption(int&nbsp;optionType,&nbsp;const<br/>DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo<br/>&amp;outputInfo); | **作用**:给定特定的optionType和inputInfo,获取其对应的配置项信息。<br/>**返回值**:0为成功,其他返回值为失败。 | **optionType**(NOT&nbsp;NULL):所获取配置项信息的对应算法状态位。<br/>**inputInfo**(可为NULL):所获取配置项信息的对应算法参数信息。<br/>**outputInfo**(可为NULL):所要获取的配置项信息返回结果。 | 
 
 
 算法插件类接口:Prepare、SyncProcess、AsyncProcess、Release、SetOption、GetOption分别于客户端接口AieClientPrepare、AieClientSyncProcess、AieClientAsyncProcess、AieClientRelease、AieClientSetOption、AieClientGetOption一一对应;GetInferMode接口用于返回算法执行类型——同步或异步。
@@ -31,10 +31,10 @@ AI引擎框架规定了一套算法插件接入规范,各插件需实现规定
 
 | 接口名 | 接口说明 | 参数要求 | 
 | -------- | -------- | -------- |
-| void&nbsp;OnEvent(PluginEvent&nbsp;event,<br/>IResponse&nbsp;\*response); | 作用:插件通过此回调返回异步算法执行结果。 | **event**:算法执行结果枚举,‘ON_PLUGIN_SUCCEED’或&nbsp;‘ON_PLUGIN_FAIL’(成功或者失败);<br/>**response**:算法执行结果封装; | 
+| void&nbsp;OnEvent(PluginEvent&nbsp;event,<br/>IResponse&nbsp;\*response); | 作用:插件通过此回调返回异步算法执行结果。 | **event**:算法执行结果枚举,‘ON_PLUGIN_SUCCEED’或&nbsp;‘ON_PLUGIN_FAIL’(成功或者失败)。<br/>**response**:算法执行结果封装。 | 
 
 
-Request、Response是ai引擎服务端与算法插件进行通信的对象。Request封装了调用方的请求、输入数据等,而插件主要通过Response将运算之后的结果返回给AI引擎服务端。
+Request、Response是AI引擎服务端与算法插件进行通信的对象。Request封装了调用方的请求、输入数据等,而插件主要通过Response将运算之后的结果返回给AI引擎服务端。
 
 
 Request类的属性如下表所示。
@@ -46,7 +46,7 @@ Request类的属性如下表所示。
 | -------- | -------- | -------- |
 | innerSequenceId_ | 类型:long&nbsp;long<br/>作用:暂未启用。 | 0 | 
 | requestId_ | 类型:int<br/>作用:标识请求序列,用于绑定返回运算结果。 | 0 | 
-| operationId_ | 类型:int<br/>作用:目前暂未启用。 | 0 | 
+| operationId_ | 类型:int<br/>作用:暂未启用。 | 0 | 
 | transactionId_ | 类型:long&nbsp;long<br/>作用:事务ID,唯一标识clientId+sessionId。 | 0 | 
 | algoPluginType_ | 类型:int<br/>作用:引擎框架根据插件加载顺序分配的算法类型的ID。 | 0 | 
 | msg_ | 类型:DataInfo<br/>作用:存放调用算法接口的输入数据。 | .data&nbsp;=&nbsp;nullptr<br/>.length&nbsp;=&nbsp;0 | 
diff --git a/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-sdk.md b/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-sdk.md
index 54b413dd6cc5cffb4ecc358c368f1ef593520851..83150d465bf78878ad6b1cabe6716d2c14c95cd6 100644
--- a/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-sdk.md
+++ b/zh-cn/device-dev/subsystems/subsys-aiframework-devguide-sdk.md
@@ -1,21 +1,21 @@
 # SDK开发过程
 
 
-SDK头文件的功能实现是基于对SDK的调用映射到对客户端的调用。客户端端提供的接口如下表所示。
+SDK头文件的功能实现是基于对SDK的调用映射到对客户端的调用。Client端提供的接口如下表所示。
 
 
   **表1** Client端提供的接口
 
 | 接口名 | 接口说明 | 参数要求 |
 | -------- | -------- | -------- |
-| int&nbsp;**AieClientInit**(const&nbsp;ConfigInfo&nbsp;&amp;configInfo,<br/>&nbsp;ClientInfo&nbsp;&amp;clientInfo,&nbsp;const&nbsp;AlgorithmInfo<br/>&nbsp;&amp;algorithmInfo,&nbsp;IServiceDeadCb&nbsp;\*cb) | **作用**:链接并初始化引擎服务,激活跨进程调用。<br/>**返回值**:0为成功,其他返回值失败。 | **configInfo**(NOT&nbsp;NULL):引擎相关初始化配置数据;<br/>**clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**algorithmInfo**(NOT&nbsp;NULL):调用算法信息;<br/>**cb**(可为NULL):死亡回调&nbsp;对象; |
-| int&nbsp;**AieClientPrepare**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo<br/>,&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const&nbsp;DataInfo<br/>&nbsp;&amp;inputInfo,&nbsp;DataInfo&nbsp;&amp;outputInfo,&nbsp;IClientCb&nbsp;\*cb) | **作用**:加载算法插件。<br/>**返回值**:&nbsp;0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**algorithmInfo**(NOT&nbsp;NULL):调用算法信息;<br/>**inputInfo**(可为NULL):加载算法插件时输入所需信息;<br/>**outputInfo**(可为NULL):加载算法插件之后如需返回信息则通过此出参返回;<br/>**cb**:异步算法通过此回调返回运算结果,因此**异步算法此结构体不能为空**;若为同步算法,传入空值即可; |
-| int&nbsp;**AieClientAsyncProcess**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const&nbsp;DataInfo<br/>&nbsp;&amp;inputInfo) | **作用**:执行异步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**algorithmInfo**(NOT&nbsp;NULL):调用算法信息;<br/>**inputInfo**(可为NULL):算法运算入参; |
-| int&nbsp;**AieClientSyncProcess**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const<br/>&nbsp;DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo&nbsp;&amp;outputInfo) | **作用**:执行同步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**algorithmInfo**(NOT&nbsp;NULL):调用算法信息;<br/>**inputInfo**(可为NULL):算法运算入参;<br/>**outputInfo**(可为NULL):同步算法运算结果出参; |
-| int&nbsp;**AieClientRelease**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const<br/>&nbsp;DataInfo&nbsp;&amp;inputInfo) | **作用**:卸载算法插件。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**algorithmInfo**(NOT&nbsp;NULL):卸载算法插件的相关信息;<br/>**inputInfo**(可为NULL):调用卸载接口时的输入信息; |
-| int&nbsp;**AieClientDestroy**(ClientInfo&nbsp;&amp;clientInfo) | **作用**:断开与服务端的链接,释放相关缓存。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):所要销毁的引擎客户端信息; |
-| int&nbsp;**AieClientSetOption**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;int&nbsp;optionType,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo) | **作用**:设置配置项,可将一些算法的拓展信息通过此接口传入插件。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**optionType**&nbsp;(NOT&nbsp;NULL):算法配置项,算法插件可根据需要利用此状态位;<br/>**inputInfo**(可为NULL):插件可根据需要通过此入参设置算法参数信息; |
-| int&nbsp;**AieClientGetOption**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;int&nbsp;optionType,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo,<br/>&nbsp;DataInfo&nbsp;&amp;outputInfo) | **作用**:给定特定的optionType和inputInfo,获取其对应的配置项信息。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(NOT&nbsp;NULL):引擎客户端信息;<br/>**optionType**(NOT&nbsp;NULL):所获取配置项信息的对应算法状态位;<br/>**inputInfo**(可为NULL):所获取配置项信息的对应算法参数信息;<br/>**outputInfo**(可为NULL):所要获取的配置项信息返回结果; |
+| int&nbsp;**AieClientInit**(const&nbsp;ConfigInfo&nbsp;&amp;configInfo,<br/>&nbsp;ClientInfo&nbsp;&amp;clientInfo,&nbsp;const&nbsp;AlgorithmInfo<br/>&nbsp;&amp;algorithmInfo,&nbsp;IServiceDeadCb&nbsp;\*cb) | **作用**:链接并初始化引擎服务,激活跨进程调用。<br/>**返回值**:0为成功,其他返回值失败。 | **configInfo**(不能为NULL):引擎相关初始化配置数据 <br/>**clientInfo**(不能为NULL):引擎客户端信息 <br/>**algorithmInfo**(不能为NULL):调用算法信息 <br/>**cb**(可为NULL):死亡回调对象  |
+| int&nbsp;**AieClientPrepare**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo<br/>,&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const&nbsp;DataInfo<br/>&nbsp;&amp;inputInfo,&nbsp;DataInfo&nbsp;&amp;outputInfo,&nbsp;IClientCb&nbsp;\*cb) | **作用**:加载算法插件。<br/>**返回值**:&nbsp;0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**algorithmInfo**(不能为NULL):调用算法信息 <br/>**inputInfo**(可为NULL):加载算法插件时输入所需信息 <br/>**outputInfo**(可为NULL):加载算法插件之后如需返回信息则通过此出参返回 <br/>**cb**:异步算法通过此回调返回运算结果,因此**异步算法此结构体不能为空** 若为同步算法,传入空值即可  |
+| int&nbsp;**AieClientAsyncProcess**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const&nbsp;DataInfo<br/>&nbsp;&amp;inputInfo) | **作用**:执行异步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**algorithmInfo**(不能为NULL):调用算法信息 <br/>**inputInfo**(可为NULL):算法运算入参  |
+| int&nbsp;**AieClientSyncProcess**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const<br/>&nbsp;DataInfo&nbsp;&amp;inputInfo,&nbsp;DataInfo&nbsp;&amp;outputInfo) | **作用**:执行同步算法。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**algorithmInfo**(不能为NULL):调用算法信息 <br/>**inputInfo**(可为NULL):算法运算入参 <br/>**outputInfo**(可为NULL):同步算法运算结果出参  |
+| int&nbsp;**AieClientRelease**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;const&nbsp;AlgorithmInfo&nbsp;&amp;algorithmInfo,&nbsp;const<br/>&nbsp;DataInfo&nbsp;&amp;inputInfo) | **作用**:卸载算法插件。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**algorithmInfo**(不能为NULL):卸载算法插件的相关信息 <br/>**inputInfo**(可为NULL):调用卸载接口时的输入信息  |
+| int&nbsp;**AieClientDestroy**(ClientInfo&nbsp;&amp;clientInfo) | **作用**:断开与服务端的链接,释放相关缓存。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):所要销毁的引擎客户端信息  |
+| int&nbsp;**AieClientSetOption**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;int&nbsp;optionType,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo) | **作用**:设置配置项,可将一些算法的拓展信息通过此接口传入插件。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**optionType**&nbsp;(不能为NULL):算法配置项,算法插件可根据需要利用此状态位 <br/>**inputInfo**(可为NULL):插件可根据需要通过此入参设置算法参数信息  |
+| int&nbsp;**AieClientGetOption**(const&nbsp;ClientInfo&nbsp;&amp;clientInfo,<br/>&nbsp;int&nbsp;optionType,&nbsp;const&nbsp;DataInfo&nbsp;&amp;inputInfo,<br/>&nbsp;DataInfo&nbsp;&amp;outputInfo) | **作用**:给定特定的optionType和inputInfo,获取其对应的配置项信息。<br/>**返回值**:0为成功,其他返回值失败。 | **clientInfo**(不能为NULL):引擎客户端信息 <br/>**optionType**(不能为NULL):所获取配置项信息的对应算法状态位 <br/>**inputInfo**(可为NULL):所获取配置项信息的对应算法参数信息 <br/>**outputInfo**(可为NULL):所要获取的配置项信息返回结果  |
 
 
 其中,ConfigInfo,ClientInfo,AlgorithmInfo,DataInfo的数据结构如下表所示。
@@ -25,10 +25,10 @@ SDK头文件的功能实现是基于对SDK的调用映射到对客户端的调
 
 | 结构体名称 | 说明 | 属性 |
 | -------- | -------- | -------- |
-| ConfigInfo | 算法配置项信息。 | **const&nbsp;char&nbsp;\*description**:配置项信息主体; |
-| ClientInfo | 客户端信息。 | **long&nbsp;long&nbsp;clientVersion**:客户端设备版本号(当前还未启用);<br/>**int&nbsp;clientId**:客户端ID;<br/>**int&nbsp;sessionId:**会话ID;<br/>**uid_t&nbsp;serverUid**:server端UID;<br/>**uid_t&nbsp;clientUid:**client端UID;<br/>**int&nbsp;extendLen**:拓展信息(extendMsg)长度;<br/>**unsigned&nbsp;char&nbsp;\*extendMsg**:拓展信息主体; |
-| AlgorithmInfo | 算法信息。 | **long&nbsp;long&nbsp;clientVersion**:客户端设备版本号(当前还未启用);<br/>**bool&nbsp;isAsync**:是否为异步执行;<br/>**int&nbsp;algorithmType:**引擎框架根据插件加载顺序分配的算法类型ID;<br/>**long&nbsp;long&nbsp;algorithmVersion**:算法版本号;<br/>**bool&nbsp;isCloud**:是否上云(当前还未启用);<br/>**int&nbsp;operateId**:执行ID(当前还未启用);<br/>**int&nbsp;requestId**:请求ID,标识每次request,以对应执行结果;<br/>**int&nbsp;extendLen**:拓展信息(extendMsg)长度;<br/>**unsigned&nbsp;char&nbsp;\*extendMsg**:拓展信息主体; |
-| DataInfo | 算法数据入参(inputInfo)、<br/>接口调用结果出参(outputInfo)。 | **unsigned&nbsp;char&nbsp;\*data:**数据主体;<br/>**int&nbsp;length**:数据(data)长度; |
+| ConfigInfo | 算法配置项信息。 | **const&nbsp;char&nbsp;\*description**:配置项信息主体  |
+| ClientInfo | 客户端信息。 | **long&nbsp;long&nbsp;clientVersion**:客户端设备版本号(当前还未启用) <br/>**int&nbsp;clientId**:客户端ID <br/>**int&nbsp;sessionId**:会话ID <br/>**uid_t&nbsp;serverUid**:server端UID <br/>**uid_t&nbsp;clientUid**:client端UID <br/>**int&nbsp;extendLen**:拓展信息(extendMsg)长度 <br/>**unsigned&nbsp;char&nbsp;\*extendMsg**:拓展信息主体  |
+| AlgorithmInfo | 算法信息。 | **long&nbsp;long&nbsp;clientVersion**:客户端设备版本号(当前还未启用) <br/>**bool&nbsp;isAsync**:是否为异步执行 <br/>**int&nbsp;algorithmType**:引擎框架根据插件加载顺序分配的算法类型ID <br/>**long&nbsp;long&nbsp;algorithmVersion**:算法版本号 <br/>**bool&nbsp;isCloud**:是否上云(当前还未启用) <br/>**int&nbsp;operateId**:执行ID(当前还未启用) <br/>**int&nbsp;requestId**:请求ID,标识每次request,以对应执行结果 <br/>**int&nbsp;extendLen**:拓展信息(extendMsg)长度 <br/>**unsigned&nbsp;char&nbsp;\*extendMsg**:拓展信息主体  |
+| DataInfo | 算法数据入参(inputInfo)、<br/>接口调用结果出参(outputInfo)。 | **unsigned&nbsp;char&nbsp;\*data**:数据主体 <br/>**int&nbsp;length**:数据(data)长度  |
 
 
 具体开发过程可参考[唤醒词识别SDK开发示例](../subsystems/subsys-aiframework-demo-sdk.md)。
diff --git a/zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md b/zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md
index 659600d23bd24647f465f3e50c528c3393057e0d..8d0c3224f4dd2758f4b9479f998421414c56602e 100644
--- a/zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md
+++ b/zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md
@@ -17,14 +17,16 @@ AI引擎框架各模块之间的代码依赖关系如下图所示:
 在AI引擎框架的整体规划中,北向SDK属于client端的一部分,插件由server端调用,属于server端的一部分,因此AI引擎框架为接入的插件与北向SDK规划的路径:
 
 - SDK代码路径://foundation/ai/engine/services/client/algorithm_sdk
-  e.g. //foundation/ai/engine/services/client/algorithm_sdk/cv
+  
+  示例1://foundation/ai/engine/services/client/algorithm_sdk/cv
 
-  e.g. //foundation/ai/engine/services/client/algorithm_sdk/nlu
+  示例2://foundation/ai/engine/services/client/algorithm_sdk/nlu
 
 - 插件代码路径://foundation/ai/engine/services/server/plugin
-  e.g. //foundation/ai/engine/services/server/plugin/cv
+  
+  示例1://foundation/ai/engine/services/server/plugin/cv
 
-  e.g. //foundation/ai/engine/services/server/plugin/nlu
+  示例2://foundation/ai/engine/services/server/plugin/nlu
 
 
 ## 规则:插件提供的全部对外接口,统一存放在AI业务子系统interfaces/kits目录
diff --git a/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md b/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md
index a01d244546c32e94498b6b0271dcefb4c4df8801..52e2fe1650974d7011378f267ee15acc3bad192f 100644
--- a/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md
+++ b/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md
@@ -160,6 +160,20 @@ job就是命令集合,jobs管理就是对要执行的一组命令集合进行
                         小型系统和标准系统
                     </td>
                 </tr>
+                <tr height="162" style="height:121.5pt">
+                    <td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
+                        write
+                    </td>
+                    <td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
+                        write filename value<br>如:write /data/testfile 0
+                    </td>
+                    <td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
+                        写文件命令。后面跟两个参数,第一个参数是文件的绝对路径,第二个参数是要写入文件的字符串。
+                    </td>
+                    <td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
+                        标准系统
+                    </td>
+                </tr>
                 <tr height="185" style="height:138.75pt">
                     <td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
                         stop
@@ -300,6 +314,20 @@ job就是命令集合,jobs管理就是对要执行的一组命令集合进行
                         小型系统和标准系统
                     </td>
                 </tr>
+                <tr height="162" style="height:121.5pt">
+                    <td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
+                        syncexec
+                    </td>
+                    <td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
+                        syncexec  可执行文件路径 可执行文件传的参数 <br>如:syncexec /system/bin/udevadm trigger
+                    </td>
+                    <td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
+                        同步执行,syncexec 会调用wait等待子进程结束。参数个数不超过10个。
+                    </td>
+                    <td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
+                        标准系统
+                    </td>
+                </tr>
                 <tr height="231" style="height:173.25pt">
                     <td height="231" class="xl6621952" width="140" style="height:173.25pt;border-top: none;width:105pt">
                         mknode
diff --git a/zh-cn/device-dev/subsystems/subsys-boot-init-service.md b/zh-cn/device-dev/subsystems/subsys-boot-init-service.md
index 29d88d97fe509c7f1676c566032db0f0d1b204ef..36dcceb2d73a601de2bbcc06815e66e5eba44236 100644
--- a/zh-cn/device-dev/subsystems/subsys-boot-init-service.md
+++ b/zh-cn/device-dev/subsystems/subsys-boot-init-service.md
@@ -208,11 +208,11 @@
                         importance
                     </td>
                     <td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
-                        当前服务优先级
+                        标准系统:当前服务优先级<br>小型系统:标记服务重要性
                     </td>
                     <td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
                         标准系统中: 服务优先级取值范围 [-20, 19],超出为无效设置。<br>
-                        小型系统中:0 : 非重要进程;非0 : 重要进程
+                        小型系统中:0 :不重启系统 ;非0 : 重启系统。
                     </td>
                     <td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
                         小型系统和标准系统
diff --git a/zh-cn/device-dev/subsystems/subsys-boot-syspara.md b/zh-cn/device-dev/subsystems/subsys-boot-syspara.md
deleted file mode 100755
index 30c350550f076a4cd01a355ca5847c0a0e431b67..0000000000000000000000000000000000000000
--- a/zh-cn/device-dev/subsystems/subsys-boot-syspara.md
+++ /dev/null
@@ -1,301 +0,0 @@
-# syspara系统属性组件
-
-
-## 系统参数简介
-
-syspara系统为各系统服务提供简单易用的键值对访问接口,使得各个系统服务可以通过各自的系统参数来进行业务功能的配置。系统参数的访问和操作有下图所示几个基本原语:
-
-  **图1** 系统参数操作原语
-
-  ![zh-cn_image_0000001154900834](figures/zh-cn_image_0000001154900834.png)
-
-  **表1** 系统参数操作原语说明
-
-| 功能 | 说明 | 
-| -------- | -------- |
-| get | 获取系统参数的值。 | 
-| set | 设置系统参数的值。 | 
-| wait | 同步等待系统参数的值变更。 | 
-| watch | 异步观察系统参数的值变更。 | 
-
-系统参数名称采用点分格式由多段组成,每一段由字母、数字、下划线组成,总长度不超过96字节。系统参数名称分为两类:
-
-  **表2** 系统参数名称
-
-| 类别 | 名称 | 示例 | 说明 | 
-| -------- | -------- | -------- | -------- |
-| 参数名称 | Parameter&nbsp;Name | const.product.**name** | 完整的系统参数名称,末尾不是"."。 | 
-| 参数目录 | Parameter&nbsp;Directory | const.product**.** | 以"."结尾,标识相同前缀的所有系统参数集合。 | 
-
-系统参数一共分为三大类:
-
-  **表3** 系统参数分类
-
-| 类别 | 前缀 | 说明 | 
-| -------- | -------- | -------- |
-| 常量 | **const.** | 常量参数,一旦赋值后续不会再变更,值最大长度为4096字节(包括结束符)。 | 
-| 可写 | 其它 | 可写参数,重启后丢失,值最大长度96字节(包括结束符)。 | 
-| 可持久化 | **persist.** | 可写并可持久化保存参数,重启后不会丢失,值最大长度96字节(包括结束符)。 | 
-
-每个系统参数名称总体格式如下:[**const**|**persist**].**$sub_system**.**$desc**。
-
-$sub_system为子系统或模块的名称。
-
-$desc为子系统或模块下参数的描述字符,可以为点分格式进行分级描述。
-
-
-## 系统参数定义规则
-
-每个子系统定义各自模块的系统参数,包括系统参数名称、默认值以及系统参数的权限访问信息。
-
-
-### 系统参数值定义文件
-
-系统参数值定义文件后缀名为**".para"**,其格式示例如下:
-
-
-```
-# This is comment
-const.product.name=OHOS-PRODUCT
-const.os.version.api=26
-const.telephony.enable=false|true
-
-const.test.withblank=My Value
-```
-
-注意:系统参数值不支持注释及换行。
-
-
-```
-# 不支持
-const.test.withcomment=MyValue # This should be omitted
-# 不支持
-const.test.multiline="This is a multiline parameter.
-Line2 value.
-Last line."
-```
-
-系统参数必须通过完整的系统参数命令来赋值,赋值方式分为三大类:
-
-  **表4** 系统参数赋值方式
-
-| 类别 | 示例 | 说明 | 
-| -------- | -------- | -------- |
-| 字符串 | const.product.name=OHOS-PRODUCT | 不支持多行字符串,不支持注释。 | 
-| 数字 | const.os.version.api=26 | 数字不需要引号。 | 
-| 布尔 | const.telephony.enable=false | 布尔型的可以为0,1或false,true。 | 
-
-
-### 系统参数DAC访问控制定义文件
-
-当前系统参数的访问权限控制通过自主访问控制(Discretionary Access Control)方式管理,访问权限定义文件后缀名为**".para.dac"**,示例如下:
-
-
-```
-const.product.="root:root:660"
-```
-
-如上所示,可以通过**参数路径**为相同前缀的所有系统参数定义一类访问权限信息;DAC信息通过":"分三段来描述,分别为参数的user,group以及UGO规则信息。
-
-UGO规则信息每一位的定义如下图所示:
-
-  **图2** UGO规则信息
-
-  ![zh-cn_image_0000001155060626](figures/zh-cn_image_0000001155060626.png)
-
-
-### 系统参数定义文件安装方法
-
-.para和.para.dac文件都通过ohos_prebuilt_para模版安装到/etc/param/目录下,GN脚本示例如下:
-
-
-```go
-import("//base/startup/init_lite/services/etc/param/param_fixer.gni")
-
-ohos_prebuilt_para("ohos.para") {
-    source = "//base/startup/init_lite/services/etc/ohos.para"
-    part_name = "init"
-    module_install_dir = "etc/param"
-}
-
-ohos_prebuilt_para("ohos.para.dac") {
-    source = "//base/startup/init_lite/services/etc/ohos.para.dac"
-    part_name = "init"
-    module_install_dir = "etc/param"
-}
-```
-
-ohos_prebuilt_para模版会对para文件进行格式化处理,包括去注释,去空格等操作。该模版还支持通过extra_paras参数扩展编译时参数,示例如下:
-
-```go
-  ohos_prebuilt_para("ohos.para") {
-    source = "//base/startup/init_lite/services/etc/param/ohos.para"
-    part_name = "init"
-    if (target_cpu == "arm64") {
-      extra_paras = [ "const.product.cpu.abilist=arm64-v8a" ]
-    }
-    module_install_dir = "etc/param"
-  }
-```
-
-其中extra_paras值的系统参数值处理方式为:source文件中没有定义该系统参数则添加;source文件中已经定义该参数则覆盖。
-
-### 系统参数值定义文件的加载顺序
-
-系统参数值的加载顺序如下:
-
-  **表5** 系统参数加载顺序
-
-| 类别 | 路径 | 说明 | 
-| -------- | -------- | -------- |
-| 内核参数 | /proc/cmdline | 内核参数中ohospara.xxx=valXXX类型的参数都转换成ohos.boot.xxx=valXXX系统参数。 | 
-| OS固定值 | /system/etc/param/ohos_const/\*.para | OS固定系统参数值参数优先加载。 | 
-| vendor参数值 | /vendor/etc/param/\*.para | 厂商参数值定义文件次优先级加载,可以覆盖system参数值定义。 | 
-| system参数值 | /system/etc/param/\*.para | 最后加载system参数值定义文件,文件中的系统参数值如果已经存在,则忽略掉。 | 
-
-
-## shell命令使用说明
-
-通过shell命令中可直接操作系统参数。系统参数shell命令如下表所示:
-
-
-  **表6** 系统参数shell命令说明
-
-| 功能 | 说明 | 
-| -------- | -------- |
-| param&nbsp;get&nbsp;[**key**] | 获取指定key名称的系统参数值;如果不指定任何name,则返回所有系统参数值。 | 
-| param&nbsp;set&nbsp;**key&nbsp;value** | 设置指定key名称的参数值为value。 | 
-| param&nbsp;wait&nbsp;**keyvalue** | 同步等待指定key名称的系统参数值与value匹配。value可支持模糊匹配,如"\*"表示任何值,"val\*"表示只匹配前三个val字符。 | 
-| param&nbsp;dump | 显示系统参数的统计信息。 | 
-
-
-## syspara系统接口说明
-
-  **表7** 系统属性接口说明
-
-| 接口名 | 描述 | 
-| -------- | -------- |
-| int&nbsp;GetParameter(const&nbsp;char\*&nbsp;key,&nbsp;const&nbsp;char\*&nbsp;def,&nbsp;char\*&nbsp;value,&nbsp;unsigned&nbsp;int&nbsp;len) | 获取系统参数。 | 
-| int&nbsp;SetParameter(const&nbsp;char\*&nbsp;key,&nbsp;const&nbsp;char\*&nbsp;value) | 设置/更新系统参数。 | 
-| const&nbsp;char\*&nbsp;GetDeviceType(void) | 返回当前设备类型。 | 
-| const&nbsp;char\*&nbsp;GetManufacture(void) | 返回当前设备生产厂家信息。 | 
-| const&nbsp;char\*&nbsp;GetBrand(void) | 返回当前设备品牌信息。 | 
-| const&nbsp;char\*&nbsp;GetMarketName(void) | 返回当前设备传播名。 | 
-| const&nbsp;char\*&nbsp;GetProductSeries(void) | 返回当前设备产品系列名。 | 
-| const&nbsp;char\*&nbsp;GetProductModel(void) | 返回当前设备认证型号。 | 
-| const&nbsp;char\*&nbsp;GetSoftwareModel(void) | 返回当前设备内部软件子型号。 | 
-| const&nbsp;char\*&nbsp;GetHardwareModel(void) | 返回当前设备硬件版本号。 | 
-| const&nbsp;char\*&nbsp;GetHardwareProfile(void) | 返回当前设备硬件profile。 | 
-| const&nbsp;char\*&nbsp;GetSerial(void) | 返回当前设备序列号(SN号)。 | 
-| const&nbsp;char\*&nbsp;GetOSFullName(void) | 返回操作系统名。 | 
-| const&nbsp;char\*&nbsp;GetDisplayVersion(void) | 返回当前设备用户可见的软件版本号。 | 
-| const&nbsp;char\*&nbsp;GetBootloaderVersion(void) | 返回当前设备Bootloader版本号。 | 
-| const&nbsp;char\*&nbsp;GetSecurityPatchTag(void) | 返回安全补丁标签。 | 
-| const&nbsp;char\*&nbsp;GetAbiList(void) | 返回当前设备支持的指令集(Abi)列表。 | 
-| int&nbsp;GetSdkApiVersion(void) | 返回与当前系统软件匹配的SDK&nbsp;API&nbsp;版本号。 | 
-| int&nbsp;GetFirstApiVersion(void) | 返回系统软件首版本SDK&nbsp;API&nbsp;版本号。 | 
-| const&nbsp;char\*&nbsp;GetIncrementalVersion(void) | 返回差异版本号。 | 
-| const&nbsp;char\*&nbsp;GetVersionId(void) | 返回版本id。 | 
-| const&nbsp;char\*&nbsp;GetBuildType(void) | 返回构建类型。 | 
-| const&nbsp;char\*&nbsp;GetBuildUser(void) | 返回构建账户用户名。 | 
-| const&nbsp;char\*&nbsp;GetBuildHost(void) | 返回构建主机名。 | 
-| const&nbsp;char\*&nbsp;GetBuildTime(void) | 返回构建时间。 | 
-| const&nbsp;char\*&nbsp;GetBuildRootHash(void) | 返回当前版本hash。 | 
-| const&nbsp;char\*&nbsp;GetOsReleaseType(void) | 返回系统发布类型。 | 
-| int&nbsp;GetDevUdid(char&nbsp;\*udid,&nbsp;int&nbsp;size) | 获取设备udid。 | 
-
-
-## 开发实例
-
-系统属性使用实例
-
-
-```
-// set && get
-char key1[] = "rw.sys.version";
-char value1[] = "10.1.0";
-int ret = SetParameter(key1, value1);
-char valueGet1[128] = {0};
-ret = GetParameter(key1, "version=10.1.0", valueGet1, 128);
-
-// get sysparm
-char* value1 = GetDeviceType();
-printf("Product type =%s\n", value1);
-free(value1);
-char* value2 = GetManufacture();
-printf("Manufacture =%s\n", value2);
-free(value2);
-char* value3 = GetBrand();
-printf("GetBrand =%s\n", value3);
-free(value3);
-char* value4 = GetMarketName();
-printf("MarketName =%s\n", value4);
-free(value4);
-char* value5 = GetProductSeries();
-printf("ProductSeries =%s\n", value5);
-free(value5);
-char* value6 = GetProductModel();
-printf("ProductModel =%s\n", value6);
-free(value6);
-char* value7 = GetSoftwareModel();
-printf("SoftwareModel =%s\n", value7);
-free(value7);
-char* value8 = GetHardwareModel();
-printf("HardwareModel =%s\n", value8);
-free(value8);
-char* value9 = GetHardwareProfile();
-printf("Software profile =%s\n", value9);
-free(value9);
-char* value10 = GetSerial();
-printf("Serial =%s\n", value10);
-free(value10);
-char* value11 = GetOSFullName();
-printf("OS name =%s\n", value11);
-free(value11);
-char* value12 = GetDisplayVersion();
-printf("Display version =%s\n", value12);
-free(value12);
-char* value13 = GetBootloaderVersion();
-printf("bootloader version =%s\n", value13);
-free(value13);
-char* value14 = GetSecurityPatchTag();
-printf("secure patch level =%s\n", value14);
-free(value14);
-char* value15 = GetAbiList();
-printf("abi list =%s\n", value15);
-free(value15);
-int value16 = GetFirstApiVersion();
-printf("first api level =%d\n", value16);
-free(value16);
-char* value17 = GetIncrementalVersion();
-printf("Incremental version = %s\n", value17);
-free(value17);
-char* value18 = GetVersionId();
-printf("formal id =%s\n", value18);
-free(value18);
-char* value19 = GetBuildType();
-printf("build type =%s\n", value19);
-free(value19);
-char* value20 = GetBuildUser();
-printf("build user =%s\n", value20);
-free(value20);
-char* value21 = GetBuildHost();
-printf("Build host = %s\n", value21);
-free(value21);
-char* value22 = GetBuildTime();
-printf("build time =%s\n", value22);
-free(value22);
-char* value23 = GetBuildRootHash();
-printf("build root later..., %s\n", value23);
-free(value23);
-char* value24 = GetOsReleaseType();
-printf("OS release type =%s\n", value24);
-free(value24);
-char* value25 = GetOsReleaseType();
-printf("OS release type =%s\n", value25);
-free(value25);
-char value26[65] = {0};
-GetDevUdid(value26, 65);
-printf("device udid =%s\n", value26);
-free(value26);
-```
diff --git a/zh-cn/device-dev/subsystems/subsys-boot.md b/zh-cn/device-dev/subsystems/subsys-boot.md
index 42e3f43579058f170978a15ed014580baaf11cea..6245a767ce99508205913f455dfe3299cffa4215 100644
--- a/zh-cn/device-dev/subsystems/subsys-boot.md
+++ b/zh-cn/device-dev/subsystems/subsys-boot.md
@@ -5,8 +5,6 @@
 - **[启动恢复子系统概述](subsys-boot-overview.md)**
 - **[init启动引导组件](subsys-boot-init.md)**
 - **[appspawn应用孵化组件](subsys-boot-appspawn.md)**
-- **[appspawn标准系统应用孵化组件](subsys-boot-appspawn-standard.md)**  
 - **[bootstrap服务启动组件](subsys-boot-bootstrap.md)**
-- **[syspara系统属性组件](subsys-boot-syspara.md)**
 - **[常见问题](subsys-boot-faqs.md)**
 - **[参考](subsys-boot-ref.md)**
\ No newline at end of file
diff --git a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md
index 0c18f32304ff90fb79a1a78c7cead94308a77a64..a8cda2618b822f6123d84fe19e687310eb82ef9e 100644
--- a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md
+++ b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md
@@ -629,7 +629,7 @@ optional arguments:
    # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain.
    board_toolchain = "gcc-arm-none-eabi"
    
-   # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc.
+   # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc.
    board_toolchain_path =
        rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin",
                    root_build_dir)
diff --git a/zh-cn/device-dev/subsystems/subsys-build-standard-large.md b/zh-cn/device-dev/subsystems/subsys-build-standard-large.md
index cab31620804e3b52b63744999a79a9a188132661..8c124330ebf6a5b7b201eb810cf6d859ace1b254 100644
--- a/zh-cn/device-dev/subsystems/subsys-build-standard-large.md
+++ b/zh-cn/device-dev/subsystems/subsys-build-standard-large.md
@@ -11,20 +11,24 @@
 ### 基本概念
 
 在了解编译构建子系统的能力前,应了解如下基本概念:
-
 - 平台
+
   开发板和内核的组合,不同平台支持的子系统和部件不同。
 
 - 子系统
+
   OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 &gt; 子系统 &gt; 部件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或部件。子系统是一个逻辑概念,它具体由对应的部件构成。
 
 - 部件
+
   对子系统的进一步拆分,可复用的软件单元,它包含源码、配置文件、资源文件和编译脚本;能独立构建,以二进制方式集成,具备独立验证能力的二进制单元。
 
 - gn
+
   Generate ninja的缩写,用于产生ninja文件。
 
 - ninja
+
   ninja是一个专注于速度的小型构建系统。
 
 ### 运作机制
diff --git a/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md b/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md
index 69b20eac0f29ebf94d3147d192331aa4558a6d6e..18d44eedce007f87bd76e669dd6f88599e92b9ef 100644
--- a/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md
+++ b/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md
@@ -179,6 +179,18 @@
   |  ----  |  ----  |  ----  |
   | RdbStore | int Restore(const std::string backupPath, const std::vector&lt;uint8_t&gt; &newKey) | 恢复数据库文件。<ul><li>backupPath:指定的备份文件名。 </li><li> newKey:数据库的加密密钥。注意:当前只支持非加密数据库的恢复。</li></ul> |
 
+### 事务
+
+  事务(Transaction)是一个对数据库执行工作单元。通过返回值判断事务是否成功,成功时返回0,失败时则返回相应的错误码。
+
+  表16 事务API
+
+  | 类名 | 接口名 | 描述 |
+  |  ----  |  ----  |  ----  |
+  | RdbStore | int BeginTransaction() | 开启一个事务。 |
+  | RdbStore | int Commit() | 保存更改。 |
+  | RdbStore | int RollBack() | 回滚所做的更改。 |
+
 ## 约束与限制
 
 无。
diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
index 8be5fe23e2c375fc01002165aff65ce1530e665e..4c8ed67988e5d30c5adcc5532fef02e2b376c0ea 100644
--- a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
+++ b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
@@ -8,7 +8,7 @@ HiSysEvent打点提供了事件埋点功能,开发者可以通过在关键路
 
 ### 运作机制
 
-在进行HiSysEvent事件埋点之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[《HiSysEvent打点配置指导》](subsys-dfx-hisysevent-logging-config.md)。
+在进行HiSysEvent事件埋点之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md)。
 
 ## 开发指导
 
@@ -18,28 +18,29 @@ HiSysEvent打点提供了事件埋点功能,开发者可以通过在关键路
 
 ### 接口说明
 
-#### c++接口说明
+#### C++接口说明
 
-c++事件埋点开发能力如下:HiSysEvent类,具体的API详见接口文档 。
+C++事件埋点开发能力如下:HiSysEvent类,具体的API详见接口文档 。
 
 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 在OpenHarmony-3.2-Beta3版本中,为避免打点风暴事件引发性能问题,对HiSysEvent打点进行了管控,表1中的HiSysEvent::Write打点API接口被表2中的HiSysEventWrite宏接口取代。HiSysEvent::Write接口已废弃,请使用HiSysEventWrite宏完成HiSysEvent事件打点。
+> 
+> 在OpenHarmony-3.2-Beta3版本中,为避免打点风暴事件引发性能问题,对HiSysEvent打点进行了管控。表1中的HiSysEvent::Write打点API接口被表2中的HiSysEventWrite宏接口取代。HiSysEvent::Write接口已废弃,请使用HiSysEventWrite宏完成HiSysEvent事件打点。
 
-**表1** c++事件埋点API接口功能介绍(已废弃)
+**表1** C++事件埋点API接口功能介绍(已废弃)
 
 | 接口名                                                       | 描述                   |
-| ------------------------------------------------------------ | ---------------------- |
+| ------------------------------------------------------------ | --------------------- |
 | template&lt;typename...&nbsp;Types&gt;&nbsp;<br>static&nbsp;int&nbsp;Write(const&nbsp;std::string&nbsp;&amp;domain,&nbsp;const&nbsp;std::string&nbsp;&amp;eventName,&nbsp;EventType&nbsp;type,&nbsp;Types...&nbsp;keyValues) | 将打点事件数据进行落盘 |
 
-**表2** c++事件埋点API接口功能介绍
+**表2** C++事件埋点API接口功能介绍
 | 接口名                                                       | 描述                   |
-| ------------------------------------------------------------ | ---------------------- |
-| HiSysEventWrite(domain, eventName, type, ...)                | 将打点事件数据进行落盘|
+| ------------------------------------------------------------ | --------------------- |
+| HiSysEventWrite(domain, eventName, type, ...)                | 将打点事件数据进行落盘  |
 
- **表3** c++事件类型API接口介绍
+ **表3** C++事件类型介绍
 
-| 接口名    | 描述         |
-| --------- | ------------ |
+| 事件类型   | 描述        |
+| --------- | ----------- |
 | FAULT     | 故障类型事件 |
 | STATISTIC | 统计类型事件 |
 | SECURITY  | 安全类型事件 |
@@ -52,17 +53,17 @@ kernel事件埋点开发能力如下:
 **表4** kernel事件埋点API接口功能介绍
 
 | 接口名                                                       | 描述                                 |
-| ------------------------------------------------------------ | ------------------------------------ |
-| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | 创建一个事件对象                     |
-| void hisysevent_destroy(struct hiview_hisysevent *event);    | 销毁一个事件对象                     |
-| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | 将整数类型的事件参数添加到事件对象   |
+| ------------------------------------------------------------ | ----------------------------------- |
+| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | 创建一个事件对象     |
+| void hisysevent_destroy(struct hiview_hisysevent *event);    | 销毁一个事件对象                                                      |
+| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | 将整数类型的事件参数添加到事件对象    |
 | int hisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value); | 将字符串类型的事件参数添加到事件对象 |
-| int hisysevent_write(struct hiview_hisysevent *event);       | 将事件对象数据进行落盘               |
+| int hisysevent_write(struct hiview_hisysevent *event);       | 将事件对象数据进行落盘                                                 |
 
-**表5** kernel事件类型API接口介绍
+**表5** kernel事件类型介绍
 
-| 接口名    | 描述         |
-| --------- | ------------ |
+| 事件类型   | 描述        |
+| --------- | ----------- |
 | FAULT     | 故障类型事件 |
 | STATISTIC | 统计类型事件 |
 | SECURITY  | 安全类型事件 |
@@ -70,9 +71,9 @@ kernel事件埋点开发能力如下:
 
 ### 开发步骤
 
-#### c++埋点开发步骤
+#### C++埋点开发步骤
 
-1. 在需要埋点的地方直接调用埋点接口,并传入相应事件参数即可:
+1. 在需要埋点的地方直接调用埋点接口,并传入相应事件参数。
 
    ```c++
    HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo");
@@ -80,13 +81,13 @@ kernel事件埋点开发能力如下:
 
 #### kernel埋点开发步骤
 
-1. 根据事件领域、事件名称、事件类型参数,创建一个基础的事件对象:
+1. 根据事件领域、事件名称、事件类型参数,创建一个基础的事件对象。
 
    ```c
    struct hiview_hisysevent *event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR);
    ```
 
-2. 将自定义的事件参数,传入到事件对象里:
+2. 将自定义的事件参数,传入到事件对象里。
 
    ```c
    // 添加整数类型参数
@@ -96,13 +97,13 @@ kernel事件埋点开发能力如下:
    hisysevent_put_string(event, "MSG", "This is a test message");
    ```
 
-3. 在事件对象构建完成后,将事件进行上报:
+3. 在事件对象构建完成后,将事件进行上报。
 
    ```c
    hisysevent_write(event);
    ```
 
-4. 事件上报完成后,需要手动将对象销毁:
+4. 事件上报完成后,需要手动将对象销毁。
 
    ```c
    hisysevent_destroy(&event);
@@ -110,7 +111,7 @@ kernel事件埋点开发能力如下:
 
 #### 事件领域屏蔽的步骤
 
-1. 在相应的文件中定义名称为“DOMAIN_MASKS”,内容形如“DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n”,共有三种屏蔽场景:
+1. 在相应的文件中定义名称为“DOMAIN_MASKS”,内容形如“DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n”。共有三种屏蔽场景:
 
 - 只屏蔽当前源码文件中的相应事件领域的HiSysEvent打点,在该cpp文件引入hisysevent.h头文件之前定义宏DOMAIN_MASKS即可。
    ```c++
@@ -125,7 +126,7 @@ kernel事件埋点开发能力如下:
    }
    ```
 
-- 全局屏蔽相应事件领域的HiSysEvent打点,则在/build/config/compiler/BUILD.gn中定义宏DIMAIN_MASKS即可。
+- 全局屏蔽相应事件领域的HiSysEvent打点,则在/build/config/compiler/BUILD.gn中定义宏DOMAIN_MASKS即可。
    ```gn
      cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""]
    ```
@@ -140,17 +141,17 @@ kernel事件埋点开发能力如下:
 
 ### 开发实例
 
-#### c++埋点开发实例
+#### C++埋点开发实例
 
 假设业务模块需要在应用启动时进行埋点来记录应用启动事件,且需要记录应用的包名信息,完整使用示例如下所示:
 
-1. 首先,需要在业务模块的在BUILD.gn里增加HiSysEvent部件依赖:
+1. 首先,需要在业务模块的在BUILD.gn里增加HiSysEvent部件依赖。
 
    ```c++
    external_deps = [ "hisysevent_native:libhisysevent" ]
    ```
 
-2. 在业务模块的应用启动函数StartAbility()中,调用埋点接口并传入对应事件参数:
+2. 在业务模块的应用启动函数StartAbility()中,调用埋点接口并传入对应事件参数。
 
    ```c++
    #include "hisysevent.h"
diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hiview.md b/zh-cn/device-dev/subsystems/subsys-dfx-hiview.md
index 30e6f3fe4cb4b4cd079b819b5bb7ab1fc31015ff..8933696696d71441820a35fbc0a11448421763b1 100644
--- a/zh-cn/device-dev/subsystems/subsys-dfx-hiview.md
+++ b/zh-cn/device-dev/subsystems/subsys-dfx-hiview.md
@@ -18,7 +18,7 @@ Hiview是一个跨平台的终端设备维测服务集,由插件管理平台
    - Faultlogger插件负责处理故障相关事件;
    - EventLogger插件负责采集事件相关的日志信息。
 3. 在流水线上完成事件处理后,还会把事件发送到平台订阅事件队列里,然后将事件派发到订阅插件进行处理,其中:
-   - FreezeDetectorPlugin插件负责处理冻屏相关事件;
+   - FreezeDetector插件负责处理冻屏相关事件;
    - HiCollieCollector插件负责卡死相关事件。
 
 ### 基本概念
diff --git a/zh-cn/device-dev/subsystems/subsys-testguide-test.md b/zh-cn/device-dev/subsystems/subsys-testguide-test.md
index 7b10a0a98117ba588f416673e36b0f15f71e5f74..a11367525b5348f0dd1028c56b5c8f8f0f0ef981 100644
--- a/zh-cn/device-dev/subsystems/subsys-testguide-test.md
+++ b/zh-cn/device-dev/subsystems/subsys-testguide-test.md
@@ -758,7 +758,7 @@ subsystem  # 子系统
 
     当选择完产品形态,可参考如下指令执行测试用例。
 	```
-	run -t UT -ts CalculatorSubTest -tc interger_sub_00l
+	run -t UT -ts CalculatorSubTest -tc integer_sub_00l
 	```
 	执行命令参数说明:
 	```
@@ -798,7 +798,7 @@ subsystem  # 子系统
 
     测试框架在执行用例时会根据指令找到所需用例,自动实现用例编译,执行过程,完成自动化测试。
 	```
-	run -t UT -ts CalculatorSubTest -tc interger_sub_00l
+	run -t UT -ts CalculatorSubTest -tc integer_sub_00l
 	```
 	执行命令参数说明:
 	```
diff --git a/zh-cn/device-dev/subsystems/subsys-xts-guide.md b/zh-cn/device-dev/subsystems/subsys-xts-guide.md
index 991972c0d7f3684aea0dbf703cf7129a11434030..36f1f7ab87265f684f24487de5b107332ef05c15 100644
--- a/zh-cn/device-dev/subsystems/subsys-xts-guide.md
+++ b/zh-cn/device-dev/subsystems/subsys-xts-guide.md
@@ -143,18 +143,15 @@ XTS子系统当前包括acts与tools软件包:
    4. 使用宏定义LITE_TEST_CASE写测试用例
 
       包括三个参数:测试套件名称,测试用例名称,用例属性(测试类型、用例粒度、用例级别)。
-
-     
       ```
       LITE_TEST_CASE(IntTestSuite, TestCase001, Function | MediumTest | Level1) 
       {  
         //do something 
          };
       ```
-
    5. 使用宏定义 RUN_TEST_SUITE注册测试套件
 
-     
+   
       ```
       RUN_TEST_SUITE(IntTestSuite);
       ```
@@ -258,16 +255,16 @@ XTS子系统当前包括acts与tools软件包:
       // Test suite cleanup action, which is executed after the last test case
       static void TearDownTestCase(void){
       }
-     // Preset action of the test case
-     virtual void SetUp()
-     {
-     }
-     // Cleanup action of the test case
-     virtual void TearDown()
-     {
+      // Preset action of the test case
+      virtual void SetUp()
+      {
+      }
+      // Cleanup action of the test case
+      virtual void TearDown()
+      {
       }
       };
-     ```
+      ```
 
    3. 使用宏定义HWTEST或HWTEST_F写测试用例
 
@@ -288,8 +285,7 @@ XTS子系统当前包括acts与tools软件包:
    每个测试模块目录下新建BUILD.gn编译文件,用于指定编译后可执行文件的名称、依赖的头文件、依赖的库等;具体写法如下。每个测试模块将独立编译成.bin可执行文件, 该文件可直接push到单板上进行测试。
 
    举例:
-
-     
+    
    ```
    import("//test/xts/tools/lite/build/suite_lite.gni")
    hcpptest_suite("ActsDemoTest") {
diff --git a/zh-cn/device-dev/website.md b/zh-cn/device-dev/website.md
index fbc186aa13d8fba470584e9a178676dcfb780a13..3554669de0f544e90530523f64e038ffcfad7b69 100644
--- a/zh-cn/device-dev/website.md
+++ b/zh-cn/device-dev/website.md
@@ -24,6 +24,7 @@
     - 附录
         - [Hi3861开发板介绍](quick-start/quickstart-ide-lite-introduction-hi3861.md)
         - [Hi3516开发板介绍](quick-start/quickstart-ide-lite-introduction-hi3516.md)
+        - [编译形态整体说明](quick-start/quickstart-build.md)
   - 轻量和小型系统快速入门(安装包方式)
     - [轻量与小型系统入门概述](quick-start/quickstart-lite-overview.md)
     - [搭建轻量与小型系统环境](quick-start/quickstart-lite-env-setup.md)
@@ -52,6 +53,7 @@
             - [Hi3516开发板介绍](quick-start/quickstart-lite-introduction-hi3516.md)
         - [参考信息](quick-start/quickstart-lite-reference.md)
         - [使用HiTool烧录代码](quick-start/quickstart-lite-hitool.md)
+        - [编译形态整体说明](quick-start/quickstart-build.md)
   - 标准系统快速入门(IDE方式,推荐)
     - [标准系统入门概述](quick-start/quickstart-ide-standard-overview.md)
     - 准备标准系统环境
@@ -72,6 +74,7 @@
     - 附录
         - [Hi3516开发板介绍](quick-start/quickstart-ide-standard-board-introduction-hi3516.md)
         - [RK3568开发板介绍](quick-start/quickstart-ide-standard-board-introduction-rk3568.md)
+        - [编译形态整体说明](quick-start/quickstart-build.md)
   - 标准系统快速入门(安装包方式)
     - [标准系统入门概述](quick-start/quickstart-standard-overview.md)
     - [搭建标准系统环境](quick-start/quickstart-standard-env-setup.md)
@@ -94,8 +97,9 @@
         - 开发板介绍
             - [Hi3516开发板介绍](quick-start/quickstart-standard-board-introduction-hi3516.md)
             - [RK3568开发板介绍](quick-start/quickstart-standard-board-introduction-rk3568.md)
-        - [参考信息](quickstart-standard-reference.md)
+        - [参考信息](quick-start/quickstart-standard-reference.md)
         - [使用HiTool烧录代码](quick-start/quickstart-standard-hitool.md)
+        - [编译形态整体说明](quick-start/quickstart-build.md)
  
   - [获取源码](get-code/sourcecode-acquire.md)
 
@@ -151,8 +155,11 @@
   - 轻量系统芯片移植案例
     - [带屏解决方案之恒玄芯片移植案例](porting/porting-bes2600w-on-minisystem-display-demo.md)
     - [Combo解决方案之ASR芯片移植案例](porting/porting-asr582x-combo-demo.md)
+    - [物联网解决方案之芯海cst85芯片移植案例](porting/porting-cst85f01-combo-demo.md)
     - [轻量系统STM32F407芯片移植案例](porting/porting-stm32f407-on-minisystem-eth.md)
-
+    - [Combo解决方案之W800芯片移植案例](porting/porting-w800-combo-demo.md)
+  - 小型系统芯片移植案例
+    - [小型设备STM32MP1芯片移植案例](porting/porting-stm32mp15xx-on-smallsystem.md)
 - 子系统开发
 
   - 内核
@@ -383,6 +390,7 @@
       - [Audio](driver/driver-peripherals-audio-des.md)
       - [Camera](driver/driver-peripherals-camera-des.md)
       - [Face_auth](driver/driver-peripherals-face_auth-des.md)
+      - [Fingerprint_auth](driver/driver-peripherals-fingerprint_auth-des.md)
       - [LCD](driver/driver-peripherals-lcd-des.md)
       - [Light](driver/driver-peripherals-light-des.md)
       - [Pin_auth](driver/driver-peripherals-pinauth-des.md)
@@ -397,6 +405,7 @@
     - [标准系统编译构建指导](subsystems/subsys-build-standard-large.md)
     - [构建系统编码规范和最佳实践指导](subsystems/subsys-build-gn-coding-style-and-best-practice.md)
     - [编译构建Kconfig可视化配置指导](subsystems/subsys-build-gn-kconfig-visual-config-guide.md)
+    - [HAP编译构建指导](subsystems/subsys-build-gn-hap-compilation-guide.md)
   - [分布式远程启动](subsystems/subsys-remote-start.md)
   - 图形图像
     - [图形图像概述](subsystems/subsys-graphics-overview.md)
@@ -467,9 +476,7 @@
     - [启动恢复子系统概述](subsystems/subsys-boot-overview.md)
     - [init启动引导组件](subsystems/subsys-boot-init.md)
     - [appspawn应用孵化组件](subsystems/subsys-boot-appspawn.md)
-    - [appspawn标准系统应用孵化组件](subsystems/subsys-boot-appspawn-standard.md)
     - [bootstrap服务启动组件](subsystems/subsys-boot-bootstrap.md)
-    - [syspara系统属性组件](subsystems/subsys-boot-syspara.md)
     - [常见问题](subsystems/subsys-boot-faqs.md)
     - [参考](subsystems/subsys-boot-ref.md)
   - DFX
@@ -487,6 +494,7 @@
     - [HiDumper开发指导](subsystems/subsys-dfx-hidumper.md)
     - [HiChecker开发指导](subsystems/subsys-dfx-hichecker.md)
     - [Faultlogger开发指导](subsystems/subsys-dfx-faultlogger.md)
+    - [Hiview开发指导](subsystems/subsys-dfx-hiview.md)
 
 - 专题
   - HPM Part
@@ -550,11 +558,237 @@
   - [Codelabs](https://gitee.com/openharmony/codelabs/blob/master/README.md) 
 
 - 参考
-  - [常见问题概述](faqs/faqs-overview.md)
-  - [环境搭建常见问题](faqs/faqs-environment-setup.md)
-  - [编译构建常见问题](faqs/faqs-building.md)
-  - [烧录常见问题](faqs/faqs-burning.md)
-  - [内核常见问题](faqs/faqs-kernel.md)
-  - [移植常见问题](faqs/faqs-porting.md)
-  - [启动恢复常见问题](faqs/faqs-startup.md)
-  - [系统应用常见问题](faqs/faqs-system-applications.md)
\ No newline at end of file
+  - 常见问题
+    - [常见问题概述](faqs/faqs-overview.md)
+    - [环境搭建常见问题](faqs/faqs-environment-setup.md)
+    - [编译构建常见问题](faqs/faqs-building.md)
+    - [烧录常见问题](faqs/faqs-burning.md)
+    - [内核常见问题](faqs/faqs-kernel.md)
+    - [移植常见问题](faqs/faqs-porting.md)
+    - [启动恢复常见问题](faqs/faqs-startup.md)
+    - [系统应用常见问题](faqs/faqs-system-applications.md)
+  
+  - HDI接口参考
+    - 模块
+      - [Audio](reference/hdi-apis/_audio.md)
+      - [Battery](reference/hdi-apis/battery.md)
+      - [Camera](reference/hdi-apis/_camera.md)
+      - [Codec](reference/hdi-apis/_codec.md)
+      - [Display](reference/hdi-apis/_display.md)
+      - [HdfFaceAuth](reference/hdi-apis/_hdf_face_auth.md)
+      - [Input](reference/hdi-apis/_input.md)
+      - [Light](reference/hdi-apis/_light.md)
+      - [HdfPinAuth](reference/hdi-apis/_hdf_pin_auth.md)
+      - [Power](reference/hdi-apis/power.md)
+      - [Sensor](reference/hdi-apis/_sensor.md)
+      - [Thermal](reference/hdi-apis/thermal.md)
+      - [USB](reference/hdi-apis/_u_s_b.md)
+      - [HdfUserAuth](reference/hdi-apis/_hdf_user_auth.md)
+      - [Vibrator](reference/hdi-apis/_vibrator.md)
+      - [WLAN](reference/hdi-apis/_w_l_a_n.md)
+    - 头文件和结构体
+      - 头文件
+        - [audio_adapter.h](reference/hdi-apis/audio__adapter_8h.md)
+        - [audio_attribute.h](reference/hdi-apis/audio__attribute_8h.md)
+        - [audio_capture.h](reference/hdi-apis/audio__capture_8h.md)
+        - [audio_control.h](reference/hdi-apis/audio__control_8h.md)
+        - [audio_manager.h](reference/hdi-apis/audio__manager_8h.md)
+        - [audio_render.h](reference/hdi-apis/audio__render_8h.md)
+        - [audio_scene.h](reference/hdi-apis/audio__scene_8h.md)
+        - [audio_types.h](reference/hdi-apis/audio__types_8h.md)
+        - [audio_volume.h](reference/hdi-apis/audio__volume_8h.md)
+        - [codec_callback_if.h](reference/hdi-apis/codec__callback__if_8h.md)
+        - [codec_common_type.h](reference/hdi-apis/codec__common__type_8h.md)
+        - [codec_component_if.h](reference/hdi-apis/codec__component__if_8h.md)
+        - [codec_component_manager.h](reference/hdi-apis/codec__component__manager_8h.md)
+        - [codec_component_type.h](reference/hdi-apis/codec__component__type_8h.md)
+        - [display_device.h](reference/hdi-apis/display__device_8h.md)
+        - [display_gfx.h](reference/hdi-apis/display__gfx_8h.md)
+        - [display_gralloc.h](reference/hdi-apis/display__gralloc_8h.md)
+        - [display_layer.h](reference/hdi-apis/display__layer_8h.md)
+        - [display_type.h](reference/hdi-apis/display__type_8h.md)
+        - [icamera_device_callback.h](reference/hdi-apis/icamera__device__callback_8h.md)
+        - [icamera_device.h](reference/hdi-apis/icamera__device_8h.md)
+        - [icamera_host_callback.h](reference/hdi-apis/icamera__host__callback_8h.md)
+        - [icamera_host.h](reference/hdi-apis/icamera__host_8h.md)
+        - [input_controller.h](reference/hdi-apis/input__controller_8h.md)
+        - [input_manager.h](reference/hdi-apis/input__manager_8h.md)
+        - [input_reporter.h](reference/hdi-apis/input__reporter_8h.md)
+        - [input_type.h](reference/hdi-apis/input__type_8h.md)
+        - [ioffline_stream_operator.h](reference/hdi-apis/ioffline__stream__operator_8h.md)
+        - [istream_operator_callback.h](reference/hdi-apis/istream__operator__callback_8h.md)
+        - [istream_operator.h](reference/hdi-apis/istream__operator_8h.md)
+        - [light_if.h](reference/hdi-apis/light__if_8h.md)
+        - [light_type.h](reference/hdi-apis/light_8typeh.md)
+        - [sensor_if.h](reference/hdi-apis/sensor__if_8h.md)
+        - [sensor_type.h](reference/hdi-apis/sensor__type_8h.md)
+        - [types.h](reference/hdi-apis/types_8h.md)
+        - [usb_info.h](reference/hdi-apis/usb__info_8h.md)
+        - [usbd_client.h](reference/hdi-apis/usbd__client_8h.md)
+        - [usbd_subscriber.h](reference/hdi-apis/usbd__subscriber_8h.md)
+        - [usbd_type.h](reference/hdi-apis/usbd__type_8h.md)
+        - [vibrator_if.h](reference/hdi-apis/vibrator__if_8h.md)
+        - [vibrator_type.h](reference/hdi-apis/vibrator__type_8h.md)
+        - [wifi_hal_ap_feature.h](reference/hdi-apis/wifi__hal__ap__feature_8h.md)
+        - [wifi_hal_base_feature.h](reference/hdi-apis/wifi__hal__base__feature_8h.md)
+        - [wifi_hal_sta_feature.h](reference/hdi-apis/wifi__hal__sta__feature_8h.md)
+        - [wifi_hal.h](reference/hdi-apis/wifi__hal_8h.md)
+        - [IExecutor.idl](reference/hdi-apis/face__auth_2_i_executor_8idl.md)
+        - [IExecutorCallback.idl](reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md)
+        - [FaceAuthTypes.idl](reference/hdi-apis/_face_auth_types_8idl.md)
+        - [PinAuthTypes.idl](reference/hdi-apis/_pin_auth_types_8idl.md)
+        - [IBatteryCallback.idl](reference/hdi-apis/_i_battery_callback_8idl.md)
+        - [IBatteryInterface.idl](reference/hdi-apis/_i_battery_interface_8idl.md)
+        - [IExecutor.idl](reference/hdi-apis/pin__auth_2_i_executor_8idl.md)
+        - [IExecutorCallback.idl](reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md)
+        - [IFaceAuthInterface.idl](reference/hdi-apis/_i_face_auth_interface_8idl.md)
+        - [IPinAuthInterface.idl](reference/hdi-apis/_i_pin_auth_interface_8idl.md)
+        - [IPowerHdiCallback.idl](reference/hdi-apis/_i_power_hdi_callback_8idl.md)
+        - [IPowerInterface.idl](reference/hdi-apis/_i_power_interface_8idl.md)
+        - [IThermalInterface.idl](reference/hdi-apis/_i_thermal_interface_8idl.md)
+        - [IThermalCallback.idl](reference/hdi-apis/_i_thermal_callback_8idl.md)
+        - [IUserAuthInterface.idl](reference/hdi-apis/_i_user_auth_interface_8idl.md)
+        - [PowerTypes.idl](reference/hdi-apis/_power_types_8idl.md)
+        - [ThermalTypes.idl](reference/hdi-apis/_thermal_types_8idl.md)
+        - [Types.idl](reference/hdi-apis/_types_8idl.md)
+        - [UserAuthTypes.idl](reference/hdi-apis/_user_auth_types_8idl.md)
+      - 结构体
+        - [attribute](reference/hdi-apis/____attribute____.md)
+        - [Alignment](reference/hdi-apis/_alignment.md)
+        - [AllocInfo](reference/hdi-apis/_alloc_info.md)
+        - [AudioAdapter](reference/hdi-apis/_audio_adapter.md)
+        - [AudioAdapterDescriptor](reference/hdi-apis/_audio_adapter_descriptor.md)
+        - [AudioAttribute](reference/hdi-apis/_audio_attribute.md)
+        - [AudioCapture](reference/hdi-apis/_audio_capture.md)
+        - [AudioControl](reference/hdi-apis/_audio_control.md)
+        - [AudioDevExtInfo](reference/hdi-apis/_audio_dev_ext_info.md)
+        - [AudioDeviceDescriptor](reference/hdi-apis/_audio_device_descriptor.md)
+        - [AudioManager](reference/hdi-apis/_audio_manager.md)
+        - [AudioMixExtInfo](reference/hdi-apis/_audio_mix_ext_info.md)
+        - [AudioMmapBufferDescripter](reference/hdi-apis/_audio_mmap_buffer_descripter.md)
+        - [AudioPort](reference/hdi-apis/_audio_port.md)
+        - [AudioPortCap](reference/hdi-apis/_audio_port_cap.md)
+        - [AudioPortCapability](reference/hdi-apis/_audio_port_capability.md)
+        - [AudioRender](reference/hdi-apis/_audio_render.md)
+        - [AudioRoute](reference/hdi-apis/_audio_route.md)
+        - [AudioRouteNode](reference/hdi-apis/_audio_route_node.md)
+        - [AudioSampleAttributes](reference/hdi-apis/_audio_sample_attributes.md)
+        - [AudioScene](reference/hdi-apis/_audio_scene.md)
+        - [AudioSceneDescriptor](reference/hdi-apis/_audio_scene_descriptor.md)
+        - [AudioSceneDescriptor::SceneDesc](reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md)
+        - [AudioSessionExtInfo](reference/hdi-apis/_audio_session_ext_info.md)
+        - [AudioSubPortCapability](reference/hdi-apis/_audio_sub_port_capability.md)
+        - [AudioTimeStamp](reference/hdi-apis/_audio_time_stamp.md)
+        - [AudioVolume](reference/hdi-apis/_audio_volume.md)
+        - [AuthResultInfo](reference/hdi-apis/_auth_result_info.md)
+        - [AuthSolution](reference/hdi-apis/_auth_solution.md)
+        - [BatteryInfo](reference/hdi-apis/_battery_info.md)
+        - [BufferData](reference/hdi-apis/_buffer_data.md)
+        - [CodecCallbackType](reference/hdi-apis/_codec_callback_type.md)
+        - [CodecCompCapability](reference/hdi-apis/_codec_comp_capability.md)
+        - [CodecComponentManager](reference/hdi-apis/_codec_component_manager.md)
+        - [CodecComponentType](reference/hdi-apis/_codec_component_type.md)
+        - [CompVerInfo](reference/hdi-apis/_comp_ver_info.md)
+        - [CredentialInfo](reference/hdi-apis/_credential_info.md)
+        - [DeviceFuncs](reference/hdi-apis/_device_funcs.md)
+        - [DisplayCapability](reference/hdi-apis/_display_capability.md)
+        - [DisplayInfo](reference/hdi-apis/_display_info.md)
+        - [DisplayModeInfo](reference/hdi-apis/_display_mode_info.md)
+        - [EnrolledInfo](reference/hdi-apis/_enrolled_info.md)
+        - [EnrollParam](reference/hdi-apis/_enroll_param.md)
+        - [EnrollResultInfo](reference/hdi-apis/_enroll_resultinfo.md)
+        - [EventInfo](reference/hdi-apis/_event_info.md)
+        - [ExecutorInfo](reference/hdi-apis/_executor_info.md)
+        - [ExecutorInfo](reference/hdi-apis/_user_executor_info.md)
+        - [ExecutorRegisterInfo](reference/hdi-apis/_executor_register_info.md)
+        - [ExecutorSendMsg](reference/hdi-apis/_executor_send_msg.md)
+        - [GetBufferHandleUsageParams](reference/hdi-apis/_get_buffer_handle_usage_params.md)
+        - [GfxFuncs](reference/hdi-apis/_gfx_funcs.md)
+        - [GfxOpt](reference/hdi-apis/_gfx_opt.md)
+        - [GrallocFuncs](reference/hdi-apis/_gralloc_funcs.md)
+        - [HdfThermalCallbackInfo](reference/hdi-apis/_hdf_thermal_callback_info.md)
+        - [HDRCapability](reference/hdi-apis/_h_d_r_capability.md)
+        - [HDRMetaData](reference/hdi-apis/_h_d_r_meta_data.md)
+        - [IBatteryCallback](reference/hdi-apis/interface_i_battery_callback.md)
+        - [IBatteryInterface](reference/hdi-apis/interface_i_battery_interface.md)
+        - [ICircle](reference/hdi-apis/_i_circle.md)
+        - [IdentifyResultInfo](reference/hdi-apis/_identify_result_info.md)
+        - [IExecutor](reference/hdi-apis/interface_i_executor.md)
+        - [IExecutor](reference/hdi-apis/interface_pin_i_executor.md)
+        - [IExecutorCallback](reference/hdi-apis/interface_i_executor_callback.md)
+        - [IExecutorCallback](reference/hdi-apis/interface_pin_i_executor_callback.md)
+        - [IFaceAuthInterface](reference/hdi-apis/interface_i_face_auth_interface.md)
+        - [IInputInterface](reference/hdi-apis/_i_input_interface.md)
+        - [ILine](reference/hdi-apis/_i_line.md)
+        - [InputController](reference/hdi-apis/_input_controller.md)
+        - [InputDevAbility](reference/hdi-apis/_input_dev_ability.md)
+        - [InputDevAttr](reference/hdi-apis/_input_dev_attr.md) 
+        - [InputDevDesc](reference/hdi-apis/_input_dev_desc.md)
+        - [InputDevIdentify](reference/hdi-apis/_input_dev_identify.md)
+        - [InputDeviceInfo](reference/hdi-apis/_device_info.md)
+        - [InputDimensionInfo](reference/hdi-apis/_input_dimension_info.md) 
+        - [InputEventCb](reference/hdi-apis/_input_report_event_cb.md)
+        - [InputEventPackage](reference/hdi-apis/_event_package.md)
+        - [InputExtraCmd](reference/hdi-apis/_input_extra_cmd.md)
+        - [InputHostCb](reference/hdi-apis/_input_host_cb.md)
+        - [InputHotPlugEvent](reference/hdi-apis/_input_hotplug_event.md)
+        - [InputManager](reference/hdi-apis/_input_manager.md)
+        - [InputReporter](reference/hdi-apis/_input_reporter.md)
+        - [IPinAuthInterface](reference/hdi-apis/interface_i_pin_auth_interface.md)
+        - [IPowerHdiCallback](reference/hdi-apis/interface_i_power_hdi_callback.md)
+        - [IPowerInterface](reference/hdi-apis/interface_i_power_interface.md)
+        - [IRect](reference/hdi-apis/_i_rect.md)
+        - [ISurface](reference/hdi-apis/_i_surface.md)
+        - [IThermalCallback](reference/hdi-apis/interface_i_thermal_callback.md)
+        - [IThermalInterface](reference/hdi-apis/interface_i_thermal_interface.md)
+        - [IUserAuthInterface](reference/hdi-apis/interface_i_user_auth_interface.md)
+        - [IWiFi](reference/hdi-apis/_i_wi_fi.md)
+        - [IWiFiAp](reference/hdi-apis/_i_wi_fi_ap.md)
+        - [IWiFiBaseFeature](reference/hdi-apis/_i_wi_fi_base_feature.md)
+        - [IWiFiSta](reference/hdi-apis/_i_wi_fi_sta.md)
+        - [LayerAlpha](reference/hdi-apis/_layer_alpha.md)
+        - [LayerBuffer](reference/hdi-apis/_layer_buffer.md)
+        - [LayerFuncs](reference/hdi-apis/_layer_funcs.md)
+        - [LayerInfo](reference/hdi-apis/_layer_info.md)
+        - [LightEffect](reference/hdi-apis/_light_effect.md)
+        - [LightFlashEffect](reference/hdi-apis/_light_flash_effect.md)
+        - [LightInfo](reference/hdi-apis/_light_info.md)
+        - [LightInterface](reference/hdi-apis/_light_interface.md)
+        - [OHOS::Camera::CaptureEndedInfo](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)
+        - [OHOS::Camera::CaptureErrorInfo](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md)
+        - [OHOS::Camera::CaptureInfo](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md)
+        - [OHOS::Camera::ICameraDevice](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md)
+        - [OHOS::Camera::ICameraDeviceCallback](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)
+        - [OHOS::Camera::ICameraHost](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md)
+        - [OHOS::Camera::ICameraHostCallback](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)
+        - [OHOS::Camera::IOfflineStreamOperator](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)
+        - [OHOS::Camera::IStreamOperator](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)
+        - [OHOS::Camera::IStreamOperatorCallback](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)
+        - [OHOS::Camera::StreamAttribute](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md)
+        - [OHOS::Camera::StreamInfo](reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md)
+        - [OHOS::USB::UsbCtrlTransfer](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)
+        - [OHOS::USB::UsbdClient](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)
+        - [OHOS::USB::UsbDev](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)
+        - [OHOS::USB::USBDeviceInfo](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)
+        - [OHOS::USB::UsbdSubscriber](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)
+        - [OHOS::USB::UsbInfo](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)
+        - [OHOS::USB::UsbPipe](reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)
+        - [OmxCodecBuffer](reference/hdi-apis/_omx_codec_buffer.md)
+        - [PortCap](reference/hdi-apis/union_port_cap.md)
+        - [PresentTimestamp](reference/hdi-apis/_present_timestamp.md)
+        - [PropertyObject](reference/hdi-apis/_property_object.md)
+        - [RangeValue](reference/hdi-apis/_range_value.md)
+        - [Rect](reference/hdi-apis/_rect.md)
+        - [Rectangle](reference/hdi-apis/_rectangle.md)
+        - [ScheduleInfo](reference/hdi-apis/_schedule_info.md)
+        - [SensorEvents](reference/hdi-apis/_sensor_events.md)
+        - [SensorInformation](reference/hdi-apis/_sensor_information.md)
+        - [SensorInterface](reference/hdi-apis/_sensor_interface.md)
+        - [StaInfo](reference/hdi-apis/_sta_info.md)
+        - [SupportBufferType](reference/hdi-apis/_support_buffer_type.md)
+        - [TemplateInfo](reference/hdi-apis/_template_info.md)
+        - [ThermalZoneInfo](reference/hdi-apis/_thermal_zone_info.md)
+        - [UseBufferType](reference/hdi-apis/_use_buffer_type.md)
+        - [VerifyAllocInfo](reference/hdi-apis/_verify_alloc_info.md)
+        - [VibratorInterface](reference/hdi-apis/_vibrator_interface.md)
+        - [VideoPortCap](reference/hdi-apis/_video_port_cap.md)
\ No newline at end of file
diff --git a/zh-cn/glossary.md b/zh-cn/glossary.md
index 6bf069541423e98103d141d6bb7142d54ac565ce..f165d1f467caffacb153d9af265a4a22fa4bfccc 100644
--- a/zh-cn/glossary.md
+++ b/zh-cn/glossary.md
@@ -99,6 +99,6 @@
     两种Ability框架模型结构的其中一种。从API 9开始支持。Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility。
 
 - ### System Type,系统类型
-    - Mini System,轻量系统:面向MCU类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。
+    - MiniSystem,轻量系统:面向MCU(Microcontroller Unit,微控制单元)类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。
     - Small System,小型系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MiB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。
     - Standard System,标准系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MiB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等。
diff --git "a/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md"
index 33e5add0abea9745753ab17403301d41988599b0..2831dfc08802621314c8fa80a2e53bd0f06643b7 100755
--- "a/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md"
+++ "b/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md"
@@ -192,4 +192,4 @@ DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEv
 
 **DeviceProfile子系统**
 
-[device\_profile\_core](https://gitee.com/openharmony/device_profile_core)
\ No newline at end of file
+[device\_info\_manager](https://gitee.com/openharmony/deviceprofile_device_info_manager)
\ No newline at end of file
diff --git a/zh-cn/readme/figures/location_En-1.png b/zh-cn/readme/figures/location_En-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ae4bcd7173f2e95004c96fa13d420c09f017f76
Binary files /dev/null and b/zh-cn/readme/figures/location_En-1.png differ
diff --git a/zh-cn/readme/figures/location_zh-1.png b/zh-cn/readme/figures/location_zh-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..3638a47483ec2e0f0d8443e3ab2410b333886118
Binary files /dev/null and b/zh-cn/readme/figures/location_zh-1.png differ
diff --git "a/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md"
index 58fdeb7e52f8528d7a42e35ab1601a3ea4a0b39d..62c1be27a8e6dda14147674172ed944bdd361cbe 100644
--- "a/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md"
+++ "b/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md"
@@ -15,9 +15,9 @@
 
 当用户处于这些丰富的使用场景中时,系统的位置能力可以提供实时准确的位置数据。对于开发者,设计基于位置体验的服务,也可以使应用的使用体验更贴近每个用户。
 
-当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取
+当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取。
 
-基本概念
+**基本概念**
 
 位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置,并用多种定位技术提供服务,如GNSS定位、基站定位、WLAN/蓝牙定位(基站定位、WLAN/蓝牙定位后续统称“网络定位技术”)。通过这些定位技术,无论用户设备在室内或是户外,都可以准确地确定设备位置。
 
@@ -40,7 +40,7 @@
 
 **图 1** **子系统架构图**<a name="fig4460722185514"></a>  
 
-![](figures/zh-1.png)
+![](figures/location_zh-1.png)
 
 
 ## 目录<a name="section161941989596"></a>
@@ -127,7 +127,7 @@
 
    开发者可以在应用config.json文件中声明所需要的权限,示例代码如下:
 
-     
+   
    ```
    {
        "module": {
@@ -145,10 +145,10 @@
    }
    ```
 
-   配置字段详细说明见。
+   配置字段详细说明见[应用包结构配置文件的说明](../application-dev/quick-start/stage-structure.md)。
 
 2. 导入geolocation模块,所有与基础定位能力相关的功能API,都是通过该模块提供的。
-     
+   
    ```
    import geolocation from '@ohos.geolocation';
    ```
@@ -159,7 +159,7 @@
 
    为了面向开发者提供贴近其使用场景的API使用方式,系统定义了几种常见的位置能力使用场景,并针对使用场景做了适当的优化处理,应用可以直接匹配使用,简化开发复杂度。系统当前支持场景如下表所示。
 
-     
+   
    ```
        export enum LocationRequestScenario {
             UNSET = 0x300,
@@ -171,7 +171,7 @@
         }
    ```
 
-     
+   
      **表2** 定位场景类型说明
    
    | 场景名称 | 常量定义 | 说明 | 
@@ -183,7 +183,7 @@
    | 无功耗场景 | NO_POWER | 无功耗场景,适用于不需要主动启动定位业务。系统在响应其他应用启动定位业务并上报位置结果时,会同时向请求此场景的应用程序上报定位结果,当前的应用程序不产生定位功耗。<br/>此场景默认以最小1秒间隔上报定位结果,并且应用需要申请ohos.permission.LOCATION权限,同时获得用户授权。 | 
 
      以导航场景为例,实例化方式如下:
-     
+   
    ```
    var requestInfo = {'scenario': 0x301, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
@@ -192,7 +192,7 @@
 
    如果定义的现有场景类型不能满足所需的开发场景,系统提供了基本的定位优先级策略类型。
 
-     
+   
    ```
        export enum LocationRequestPriority {
             UNSET = 0x200,
@@ -202,7 +202,7 @@
         }
    ```
 
-     
+   
      **表3** 定位优先级策略类型说明:
    
    | 策略类型 | 常量定义 | 说明 | 
@@ -212,7 +212,7 @@
    | 低功耗定位优先策略 | LOW_POWER | 低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。<br/>应用至少申请ohos.permission.LOCATION权限,同时获得用户授权。 | 
 
      以定位精度优先策略为例,实例化方式如下:
-     
+   
    ```
    var requestInfo = {'priority': 0x201, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
    ```
@@ -227,19 +227,19 @@
    ```
 
 5. 启动定位。
-     
+   
    ```
    geolocation.on('locationChange', requestInfo, locationChange);
    ```
 
 6. (可选)结束定位。
-     
+   
    ```
    geolocation.off('locationChange', locationChange);
    ```
 
      如果应用使用场景不需要实时的设备位置,可以获取系统缓存的最近一次历史定位结果。
-     
+   
    ```
    geolocation.getLastLocation((data) => {
        console.log('getLastLocation: data: ' + JSON.stringify(data));
@@ -256,14 +256,14 @@
 > GeoConvert需要访问后端服务,请确保设备联网,以进行信息获取。
 
 1. 导入geolocation模块,所有与(逆)地理编码转化能力相关的功能API,都是通过该模块提供的。
-     
+   
    ```
    import geolocation from '@ohos.geolocation';
    ```
 
 2. 获取转化结果。
    - 调用getAddressesFromLocation,坐标转化地理位置信息。
-        
+     
       ```
       var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
       geolocation.getAddressesFromLocation(reverseGeocodeRequest, (data) => {
@@ -273,7 +273,7 @@
 
       参考接口API说明,应用可以获得与此坐标匹配的GeoAddress列表,应用可以根据实际使用需求,读取相应的参数数据。
    - 调用getAddressesFromLocationName位置描述转化坐标。
-        
+     
       ```
       var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
       geolocation.getAddressesFromLocationName(geocodeRequest, (data) => {
diff --git "a/zh-cn/readme/\345\206\205\346\240\270\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/\345\206\205\346\240\270\345\255\220\347\263\273\347\273\237.md"
index 53e16d1b619e6bfa1c38136b3a12598a0b6f9501..70122fe375a520f3f7fbceeb41ca91c13323ab9e 100644
--- "a/zh-cn/readme/\345\206\205\346\240\270\345\255\220\347\263\273\347\273\237.md"
+++ "b/zh-cn/readme/\345\206\205\346\240\270\345\255\220\347\263\273\347\273\237.md"
@@ -222,8 +222,6 @@ LiteOS:
 
 [device\_qemu](https://gitee.com/openharmony/device_qemu/blob/master/README_zh.md)
 
-[prebuilts\_lite\_sysroot](https://gitee.com/openharmony/prebuilts_lite_sysroot/blob/master/README_zh.md)
-
 Linux:
 
 [kernel\_linux\_patches](https://gitee.com/openharmony/kernel_linux_patches/blob/master/README_zh.md)
diff --git a/zh-cn/release-notes/OpenHarmony-v3.0.5-LTS.md b/zh-cn/release-notes/OpenHarmony-v3.0.5-LTS.md
index e5455a0cddd1a108ccc2c3c3a1ded6a627242e63..8d577c913225e56646a90f16a8c4d9d12a1a6163 100644
--- a/zh-cn/release-notes/OpenHarmony-v3.0.5-LTS.md
+++ b/zh-cn/release-notes/OpenHarmony-v3.0.5-LTS.md
@@ -5,7 +5,7 @@
 
 此版本为OpenHarmony-3.0-LTS分支上的维护版本,基于OpenHarmony-v3.0.3-LTS版本修复一些缺陷及安全问题,并更新支持以下能力:
 
-**轻量系统能力增强**
+**小型系统能力增强**
 
 DFX提供native崩溃信息采集能力和整机重启故障检测定位能力。基础通信增加STA基础能力。
 
diff --git a/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md b/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md
new file mode 100644
index 0000000000000000000000000000000000000000..18992d1e2478d51993d4cf7f1d2ee9bd90897428
--- /dev/null
+++ b/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md
@@ -0,0 +1,217 @@
+# OpenHarmony 3.2 Beta2
+
+
+## 版本概述
+
+当前版本在OpenHarmony 3.2 Beta1的基础上,更新支持以下能力:
+
+**标准系统基础能力增强**
+
+新增支持窗口多热区分发机制。
+
+支持电源管理重启恢复机制。
+
+多模输入新增支持Input手写笔压感合成、倾角、按键输入。
+
+安全域支持预置应用预授权机制、指纹录入/认证/识别框架。
+
+驱动支持录像模式自拍镜像功能、音频音效控制、红外设备输入、音频USB插拔识别及事件上报。
+
+**标准系统应用程序框架能力增强**
+
+元能力支持卡片提供方添加静态和动态卡片、组件支持本地免安装启动、系统SA启动和访问组件、支持单实例Ability迁移、运行管理支持打开沙箱应用、系统应用ability不在最新任务列表显示。
+
+包管理支持获取当前包的包名和证书指纹信息NDK接口能力、查询指定应用的PackInfo信息、原子化服务老化卸载。
+
+**标准系统应用开发样例**
+
+新增五子棋人机对战、二维码生成和解析、卡片使用、多媒体、短视频、面部识别能力等Demo样例,为开发者提供SDK使用的样例程序,方便开发者快速上手使用OpenHarmony系统基础能力。
+
+
+## 配套关系
+
+  **表1** 版本软件和工具配套关系
+
+| 软件 | 版本 | 备注 |
+| -------- | -------- | -------- |
+| OpenHarmony | 3.2 Beta2 | NA |
+| Public SDK | Ohos_sdk_public 3.2.5.5 (API Version 9 Beta2) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。<br/>通过DevEco Studio默认获取的SDK为Public SDK。 |
+| Full SDK | Ohos_sdk_full 3.2.5.5 (API Version 9 Beta2) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。<br/>使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 |
+| HUAWEI DevEco Studio(可选) | 3.0 Beta4 | OpenHarmony应用开发推荐使用。 |
+| HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 |
+
+
+## 源码获取
+
+
+### 前提条件
+
+1. 注册码云gitee帐号。
+
+2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。
+
+3. 安装[git客户端](https://gitee.com/link?target=https%3A%2F%2Fgit-scm.com%2Fbook%2Fzh%2Fv2%2F%25E8%25B5%25B7%25E6%25AD%25A5-%25E5%25AE%2589%25E8%25A3%2585-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。
+  
+   ```
+   git config --global user.name "yourname"
+   git config --global user.email "your-email-address"
+   git config --global credential.helper store
+   ```
+
+4. 安装码云repo工具,可以执行如下命令。
+  
+   ```
+   curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  #如果没有权限,可下载至其他目录,并将其配置到环境变量中chmod a+x /usr/local/bin/repo
+   pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
+   ```
+
+
+### 通过repo获取
+
+**方式一(推荐)**
+
+通过repo + ssh 下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。
+
+- 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。
+   ```
+   repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Beta2 --no-repo-verify
+   repo sync -c
+   repo forall -c 'git lfs pull'
+   ```
+   
+- 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。
+   ```
+   repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.2-Beta2 --no-repo-verify
+   repo sync -c
+   repo forall -c 'git lfs pull'
+   ```
+
+**方式二**
+
+通过repo + https 下载。
+
+- 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。
+   ```
+   repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-3.2-Beta2 --no-repo-verify
+   repo sync -c
+   repo forall -c 'git lfs pull'
+   ```
+   
+- 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。
+   ```
+   repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v3.2-Beta2 --no-repo-verify
+   repo sync -c
+   repo forall -c 'git lfs pull'
+   ```
+
+### 从镜像站点获取
+
+**表2** 获取源码路径
+
+| 版本源码                                | **版本信息** | **下载站点**                                                 | **SHA256校验码**                                             |
+| --------------------------------------- | ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| 全量代码(标准、轻量和小型系统)        | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/code-v3.2-Beta2.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/code-v3.2-Beta2.tar.gz.sha256) |
+| Hi3861轻量系统解决方案(二进制)        | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_pegasus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/hispark_pegasus.tar.gz.sha256) |
+| Hi3516轻量系统解决方案-LiteOS(二进制) | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus.tar.gz.sha256) |
+| Hi3516轻量系统解决方案-Linux(二进制)  | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus_linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.2-Beta1/hispark_taurus_linux.tar.gz.sha256) |
+| RK3568标准系统解决方案(二进制)        | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/dayu200_standard_arm64.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/dayu200_standard_arm64.tar.gz.sha256) |
+| 标准系统Full SDK包(Mac)               | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-mac-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-mac-full.tar.gz.sha256) |
+| 标准系统Full SDK包(Windows\Linux)     | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-windows_linux-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-windows_linux-full.tar.gz.sha256) |
+| 标准系统Public SDK包(Mac)             | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-mac-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-mac-public.tar.gz.sha256) |
+| 标准系统Public SDK包(Windows\Linux)   | 3.2 Beta2    | [站点](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-windows_linux-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/ohos-sdk-windows_linux-public.tar.gz.sha256) |
+
+
+## 更新说明
+
+本版本在OpenHarmony 3.2 Beta1的基础上有如下变更。
+
+### SDK变更
+从本版本起,SDK会同时提供Public SDK和Full SDK。通过DevEco Studio默认获取的SDK为Public SDK。
+
+已使用较早版本SDK开发的应用如果使用到了系统API,升级本版本后需要[手动替换SDK为Full SDK](../application-dev/quick-start/full-sdk-switch-guide.md)才可以保证应用工程可编译通过。
+
+### 特性变更
+
+  **表3** 版本特性变更表
+
+| 子系统名称 | 标准系统 | 轻量、小型系统 |
+| -------- | -------- | -------- |
+| 元能力 | - 为支持IoT设备无UI应用开发,对graphics和power模块进行解耦。<br/>- 对DFX能力、任务管理能力、应用线程模型管理能力等基础能力进行了增强。<br/>主要涉及如下需求:<br/>I57ZUI 【新增特性】支持IoT设备无UI应用开发-graphics模块解耦<br/>I57ZVC 【新增特性】支持IoT设备无UI应用开发-power模块解耦<br/>I5805B 【增强特性】AMS ANR功能优化<br/>I581M3 【新增特性】应用选择框<br/>I580JM 【新增特性】支持系统应用ability不在最新任务列表显示<br/>I5FHNH 【增强特性】Stage模型Context对象支持向worker传递<br/>I58034 【增强特性】使用libuv统一JS Looper机制<br/>I57ZZH 【新增特性】提供创建不同Hap包上下文能力 | NA |
+| 包管理 | 新增默认应用管理能力,支持众测应用、获取包指纹信息等基础能力。<br/>主要涉及如下需求:<br/>I56WD7 【新增特性】支持查询默认应用<br/>I56WDJ 【新增特性】支持更改默认应用<br/>I56WDR 【新增特性】支持恢复系统默认应用<br/>I56WEK 【新增特性】支持按文件类型设置默认应用<br/>I59ZMR 【新增特性】包管理支持众测应用<br/>I5A7OV 【新增特性】包管理提供NDK接口,获取当前包的包名和证书指纹信息 | NA |
+| 电源子系统 | 新增热管理的资源管控和日志,功耗统计支持更多模块。<br/>主要涉及如下需求:<br/>I5AOM8 【新增特性】增加Action Hub功能<br/>I5DC5E 【增强特性】Camera耗电统计<br/>I5DC7M 【增强特性】Audio耗电统计<br/>I5DC8L 【增强特性】Timer功耗DFX<br/>I5DC9H 【增强特性】分布式任务调度功耗DFX<br/>I5DOP4 【新增特性】热维测DFX<br/>I5DONL 【新增特性】充电资源管控框架<br/>I5DOLA 【新增特性】适配SOC资源管控框架 | NA |
+| 系统服务管理子系统 | - 持续构建分布式基础能力。<br/>- 加固系统服务进程稳定性、安全性,优化进程内存。<br/>主要涉及如下需求:<br/>I5FLTY 【新增特性】组件协同关系管理<br/>I5DP1O 【新增特性】DMS提供系统事件、SA dump、trace打点<br/>I5CEMN 【新增特性】startAbilityForResult支持免安装<br/>I5BAP0 【新增特性】startAbility支持跨设备免安装<br/>I5B2PK 【新增特性】跨端迁移适配分布式对象持久化保存<br/>I59XYB 【新增特性】添加群组校验机制<br/>I592I5 【新增特性】distributedsche进程内存基线<br/>I5E4KV 【新增特性】SAMGR提供系统事件、SA dump、trace打点 | NA |
+| 事件通知子系统 | - 新增支持工具适配多用户。<br/>- 公共事件和通知基础能力增强。<br/>主要涉及如下需求:<br/>I582V2 【新增规格】支持点对点发送事件​<br/>I582XB 【新增规格】工具适配多用户<br/>I582UL 【增强特性】分布式通知同步增强<br/>I582QQ 【新增规格】通知发送支持设置未读角标<br/>I582XB 【新增规格】工具适配多用户<br/>I582SD 【DFX】【增强特性】通知DFX能力增强<br/>I582ST 【新增规格】支持配置通知清理事件<br/>I582TF 【增强特性】通知渠道信息设置和查询增强<br/>I58418 【新增规格】【事件通知子系统】事件通知子系统的SELinux策略配置<br/>I582Y4 【DFX打点】【事件通知子系统】提供系统事件、SA dump、trace打点 | NA |
+| 分布式硬件子系统 | 新增DeviceManager支持同帐号凭据参数请求和导入等特性。<br/>I5IUUS  【DFX打点】【分布式硬件子系统】提供系统事件、SA dump、trace打点<br/>I5IUVN  【新增特性】支持同帐号凭据参数请求和导入 | NA |
+| 用户IAM子系统 | - 持续增强用户认证的基础能力。<br/>- 新增用户IAM框架,支持指纹录入、认证、识别、删除功能。<br/>I5EPCD 支持完成指定用户的指纹录入【框架】<br/>I5EPCM 支持完成指定用户的指纹认证和指纹识别【框架】<br/>I5EPCU 支持完成指定用户的指纹认证删除【框架】 | NA |
+| 编译构建子系统 | - 对python和gn进行版本升级。<br/>- 新增系统组件拆分独立编译。<br/>- 在模块依赖、编译功能开关及ccache方面极致提升编译性能。<br/>主要涉及如下需求:<br/>I5IZC2 【编译构建子系统】支持系统组件与芯片组件独立构建<br/>I5IZD9 【集成优化】模块依赖优化<br/>I5IZI0 【集成优化】提供编译功能选项开关<br/>I5IZH2 【集成优化】ccache优化 | NA |
+| 多模输入子系统 | - 提供通过JS API访问输入设备信息。<br/>- 新增支持手写笔作为输入设备。<br/>- 新增支持按键自动重复的事件上报。<br/>- 新增支持SELinux。<br/>主要涉及如下需求:<br/>I530UN 【新增特性】窗口多热区分发机制<br/>I530UT 【新增特性】JS API Mock<br/>I530VY 【新增特性】支持通过JS API查看手写笔输入设备基础信息<br/>I530W0 【新增特性】支持通过JS API 查看鼠标输入设备扩展信息<br/>I530WA 【新增特性】支持通过JS API查看触摸板输入设备扩展信息<br/>I530WD 【新增特性】支持通过JS API查看触摸屏输入设备扩展信息<br/>I530WH 【新增特性】支持Linux Input手写笔功能按键输入事件接收并分发<br/>I530WI 【新增特性】支持Linux Input手写笔压感合成<br/>I530WJ 【新增特性】支持Linux Input手写笔倾角<br/>I530WK 【新增特性】支持触摸点压力属性<br/>I530WM 【新增特性】支持触摸点触摸区域属性<br/>I530WO 【新增特性】支持触摸点工具区域属性<br/>I530WP 【新增特性】支持触摸点工具类型属性<br/>I530X8 【新增特性】支持通过配置文件配置按键映射规则<br/>I530XH 【新增特性】支持系统按键通过配置文件配置按键映射规则<br/>I530XJ 【新增特性】支持系统按键自动重复<br/>I530XK 【新增特性】支持键盘类型识别<br/>I530XL 【新增特性】支持按键能力识别<br/>I530XM 【新增特性】支持键盘通过配置文件配置按键映射规则<br/>I530XN 【新增特性】支持键盘按键自动重复<br/>I530XT 【新增特性】支持通过C++ API按照相对坐标调整鼠标位置<br/>I530XX 【新增特性】支持触摸点压力属性<br/>I530XZ 【新增特性】支持触摸点触摸区域属性<br/>I530Y1 【新增特性】支持触摸点工具区域属性<br/>I530Y2 【新增特性】支持触摸点工具类型属性<br/>I530Y7 【新增规格】多模输入子系统支持64位<br/>I530YB 【DFX打点】【多模输入子系统】提供系统事件、SA dump、trace打点<br/>I530YF 【新增规格】【多模输入】【input】SELinux策略配置<br/>I5HMBS 【input部件】键鼠自适应布局适配 | NA |
+| 泛Sensor服务子系统 | - 支持更多类型的传感器上报。<br/>- 支持SELinux。<br/>主要涉及如下需求:<br/>I53SFI 【DFX打点】【泛Sensor服务子系统】提供系统事件、SA dump、trace打点<br/>I537CB 【新增规格】泛Sensor能力持续集成-旋转矢量传感器<br/>I537AN 【新增规格】泛Sensor能力持续集成-重力传感器<br/>I5379T 【新增规格】泛Sensor能力持续集成-地磁传感器<br/>I5379C 【新增规格】泛Sensor能力持续集成-方向传感器<br/>I53784 【新增规格】泛Sensor能力持续集成-环境光传感器<br/>I53SFS 【新增规格】【泛Sensor服务】SELinux策略配置 | NA |
+| 分布式数据管理子系统 | data_share支持多种数据类型。<br/>主要涉及如下需求:<br/>I5EHGF 【DataShare】DataShare支持多种数据储存类型 | NA |
+| web子系统 | - 新增支持JS相关交互能力。<br/>- 新增支持网络、键鼠、webstorage、SELinux策略等能力。<br/>主要涉及如下需求:<br/>I5DM1E 【新增规格】web组件的JS窗口管理<br/>I5DNG2 【新增规格】JS侧提供全量hittest接口以及DefaultUserAgent获取<br/>I5EK53 【新增规格】【web子系统】web组件http验证管理<br/>I5EGBB 【新增规格】【web子系统】【web部件】web子系统的SELinux策略配置<br/>I5EBG1 【新增规格】【web子系统】web子系统适配w3c network information api<br/>I5EVEC 【新增规格】【web子系统】web内核对接鼠标、键盘等外设能力<br/>I5FF2L 【新增规格】【web子系统】web组件支持webstorage | NA |
+| 驱动子系统 | - 支持内核态驱动动态加载及DFX能力。<br/>- 提供Codec2.0接口及codec驱动模型。<br/>- Camera、Display、Audio、Sensor、WLAN等模块驱动能力增强。<br/>主要涉及如下需求:<br/>I536FN 【新增特性】【驱动子系统】支持HDI passthrougt模式<br/>I5DJE5 【增强特性】兼容Linux uevent事件上报机制,增强设备即插即用功能<br/>I550OL 【新增特性】提供DFX跟踪定位,获取信息能力<br/>I544XP 【新增特性】支持HDF服务SELinux权限检查 标准系统<br/>I528DG 【新增特性】支持Codec 2.0参考实现,简化适配难度<br/>I50I6S 【新增特性】Audio新增IPC模式与直调模式接口调用统一<br/>I5A6H6 【增强特性】增强显示设备管理,支持多屏显示能力<br/>I5B0C5 【新增特性】Camera支持实现Mate类型的流<br/>I5B0BR 【新增特性】录像模式自拍镜像功能<br/>I5AJW1 【新增特性】支持Linux libALSA音频接口兼容<br/>I56V2N 【新增特性】HDF WLAN DAL HDI功率模式相关接口的定义与开发<br/>I5F411 【增强特性】马达效果能力增强 | NA |
+| USB服务子系统 | - 支持USB服务广播消息。<br/>- 增加SELinux安全策略。<br/>主要涉及如下需求:<br/>I59MYK 【新增特性】USB服务广播消息<br/>I5AR8N 【新增规格】【USB服务子系统】USB服务子系统的SELinux策略配置 | NA |
+| 内核子系统 | - 新增支持内存精细化管控特性。<br/>- 新增支持关联服务adj调整机制。<br/>主要涉及如下需求:<br/>I58LOD 【新增特性】支持关联服务adj调整机制<br/>I54Y5J 【新增特性】支持memtrack内存占用和进程维度adj查询接口特性<br/>I56B3Q 【新增特性】支持OnMemoryLevel特性<br/>I5B694 【新增特性】支持新型内存精细化管控特性<br/>I59O8H 【新增特性】支持purgable memory特性<br/>I5CXOK 【新增特性】支持hyperhold可靠性提升特性 | NA |
+
+
+### 
+
+
+### 芯片及开发板适配
+
+芯片及开发板适配状态请参考[SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard_cn.md)信息。
+
+
+### Samples
+
+  **表4** 新增Samples
+
+| 子系统 | 名称 | 简介 | 开发语言 |
+| -------- | -------- | -------- | -------- |
+| 元能力 | MissionManager | 本示例通过调用系统任务管理的能力,对系统任务执行锁定、解锁、清理、切换到前台等操作。 | eTS |
+| 网络管理 | AirQuality | 空气质量(Air quality)的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。空气污染是一个复杂的现象,在特定时间和地点空气污染物浓度受到许多因素影响。来自固定和流动污染源的人为污染物排放大小是影响空气质量的最主要因素之一,本示例实现了一个简单空气质量应用,使用折行显示能力显示空气质量信息,使用柱形图展示历史记录。 | eTS |
+| ArkUI | TransitionAnimation | 本示例展示了转场动画的使用,包括页面间转场、组件内转场和共享元素转场。 | eTS |
+| 应用程序包管理 | ZipLib | 本示例通过构建解压,压缩文件场景,向用户展示\@ohos.zlib接口。 | eTS |
+| 工程能力 | Npm | 本示例展示了npm引用第三方js类库和本地库,主要展示了mathjs、dayjs和本地库应用。 | eTS |
+| 数据管理 | DistributedMusicPlayer | 本示例使用fileIo获取指定音频文件,并通过AudioPlayer完成了音乐的播放完成了基本的音乐播放、暂停、上一曲、下一曲功能;并使用DeviceManager完成了分布式设备列表的显示和分布式能力完成了音乐播放状态的跨设备迁移。 | eTS |
+| ArkUI | PatternLock | 本示例展示了图案密码锁组件的使用,实现了密码设置、验证和重置功能。 | eTS |
+| 安全 | UserAuth | 本示例展示了用户认证中人脸识别功能。 | eTS |
+| 安全 | Cipher | 本示例展示了加解密算法,包括RSA加密算法与AES加密算法。 | eTS |
+| 图形图像 | Screen | 本示例监听屏幕数量变化,创建、销毁虚拟屏幕模拟屏幕增减,读取屏幕属性并显示。 | eTS |
+| ArkUI | Search | 本示例展示了Search组件的使用,使用Search组件实现一个搜索界面。 | eTS |
+| 设备管理 | USBManager | 本示例展示了USB设备管理的使用,包括USB设备插拔状态监听和USB设备信息显示。 | eTS |
+| 数据管理 | DistributedDataGobang | 五子棋是一款比较流行的棋类游戏,此游戏使用分布式数据管理功能进行开发完成的。 | eTS |
+| 媒体 | Image | 本示例仿照相册应用,读取本地设备中图片,获取图片信息,可对图片进行旋转操作。 | eTS |
+| 安全 | AbilityAccessCtrl | 本示例通过模拟应用申请权限场景,向用户展示@ohos.abilityAccessCtrl接口。 | eTS |
+| 网络管理 | WebSocket | 本示例展示了WebSocket的使用,包括客户端与服务端的连接和断开以及客户端数据的接收和发送。 | eTS |
+| 通信与连接 | Bluetooth | 蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。本示例实现蓝牙设备发现,配对,取消配对功能。 | eTS |
+| 媒体 | GamePuzzle | 拼图Demo是基于Grid组件进行开发,通过image (图片处理)和medialibrary (媒体库管理)接口实现获取图片,以及图片裁剪分割。 | eTS |
+| 网络管理 | UploadDownload | 上传就是将文件从个人终端设备传送至远程服务器,下载是将文件从远程服务器传送至个人终端设备,进而实现文件的存储,该示例使用上传下载的接口实现文件的上传下载。 | eTS |
+| 设备管理 | Location | 本示例使用方向传感器及GPS,实现获取当前位置信息。 | eTS |
+| 电话服务 | Observer | 本示例通过observer接口订阅网络状态、信号状态、通话状态、蜂窝数据、sim状态等事件,并获取状态变化返回的结果。 | eTS |
+| ArkUI | AdaptiveCapabilities | 此Demo展示在eTS中的多设备自适应能力,包括资源限定词、原子布局和响应式布局。 | eTS |
+| ArkUI | JsAdaptiveCapabilities | 此Demo展示在JS中的多设备自适应能力,包括资源限定词、原子布局和响应式布局。 | JS |
+
+请访问[Samples](https://gitee.com/openharmony/app_samples)仓了解更多信息。
+
+
+## 修复缺陷列表
+
+  **表5** 修复缺陷ISSUE列表
+
+| ISSUE单 | 问题描述 |
+| -------- | -------- |
+| [I4Z3G9](https://e.gitee.com/open_harmony/issues/list?issue=I4Z3G9) | 【RK3568】打开沉浸式主窗口和在主窗口上打开辅助窗口出现闪屏 |
+| [I59M4Q](https://gitee.com/openharmony/developtools_hdc/issues/I59M4Q?from=project-issue) | API9 hdc_std连接设备低概率断连 |
+| [I54D32](https://gitee.com/openharmony/multimedia_camera_standard/issues/I54D32) | 【RK3568】【必现】相机连续多次录像出现黑屏 |
+
+
+## 遗留缺陷列表
+
+  **表6** 遗留缺陷列表
+
+| ISSUE | 问题描述 | 影响 | 计划解决日期 |
+| -------- | -------- | -------- | -------- |
+| I5I4GJ | 通过IDE连接rk3568设备概率断连 | DevEco Studio进行应用的运行和调试,通过hdc连接设备概率断连,断连概率1/25,断连后可以重连上,影响可控 | 2022年8月15号 |
+| I5HTGF | 相机拍出来照片跟预览相比顺时针旋转90度 | 影响拍照后的图片的体验效果 | 2022年8月15号 |
+| I5FUNB | linux内核漏洞同步<br/>CVE-2022-1462 | 内核CVE漏洞当前社区无补丁,待内核社区补丁发布后同步到Beta2分支 | 跟随内核社区补丁发布时间 |
+| I5FUO1 | linux内核漏洞同步<br/>CVE-2022-21127 | 内核CVE漏洞当前社区无补丁,待内核社区补丁发布后同步到Beta2分支 | 跟随内核社区补丁发布时间 |
diff --git a/zh-cn/release-notes/Readme.md b/zh-cn/release-notes/Readme.md
index 039f8b8a71379a2d4da00a665f71cc8da7e093fc..7137141a9f54b6d62b3f9ae3afeadf75ad607e10 100644
--- a/zh-cn/release-notes/Readme.md
+++ b/zh-cn/release-notes/Readme.md
@@ -1,5 +1,6 @@
 # OpenHarmony Release Notes
 ## OpenHarmony 3.x Releases
+-   [OpenHarmony v3.2 Beta2 (2022-07-30)](OpenHarmony-v3.2-beta2.md)
 -   [OpenHarmony v3.2 Beta1 (2022-05-31)](OpenHarmony-v3.2-beta1.md)
 -   [OpenHarmony v3.1.1 Release (2022-05-31)](OpenHarmony-v3.1.1-release.md)
 -   [OpenHarmony v3.1 Release (2022-03-30)](OpenHarmony-v3.1-release.md)
diff --git a/zh-cn/release-notes/api-change/template/changelog-x-x.md b/zh-cn/release-notes/api-change/template/changelog-x-x.md
index abf59c77cba59f171efbb6121e24f238516ad50e..b20dbfc1fc13ba0dc94a8044119ac0ae2473cfb7 100644
--- a/zh-cn/release-notes/api-change/template/changelog-x-x.md
+++ b/zh-cn/release-notes/api-change/template/changelog-x-x.md
@@ -1,14 +1,17 @@
-# ChangeLog
-## xxx子系统(该段落为示例,请不要修改或删除)
-已经release的版本发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。
-### cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字)
-每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加)。
+# xxx子系统ChangeLog
+
+相比最近一个发布版本(包括不限于LTS、Release、Beta、monthly版本)发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。
+
+## cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字)
+
+每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加,起始为1)。
 以功能维度对变更点进行概括描述。例如:xxx功能的xxx、xxx等发生了xxx变化,开发者需要根据以下说明对应用进行适配。
 如果有此变更有对应的需求或设计文档,可以在描述中附上对应的设计文档编号。
 
 **变更影响**
 
-是否影响已release的接口或者接口行为发生变更等;影响的是JS接口、Java接口还是Native接口。
+是否影响已发布的接口或者接口行为发生变更,影响的是JS接口还是Native接口。
+是否影响在此前版本已开发的应用,即应用是否需要进行适配动才可以在新版本SDK环境正常编译通过。
 
 **关键的接口/组件变更**
 
@@ -16,15 +19,13 @@
 
 **适配指导(可选,不涉及则可以删除)**
 
-(前面空一行)提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。例:
+提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。
+例:
 在xxx文件中将xxx参数修改为xxx。
+
 ```
 sample code
 ```
-### cl.subsystemname.x xxx功能变更
-每个功能变更点在自己的子系统章节内新增一个功能变更章节。
 
-## xxx子系统
-每个子系统有且只能有一个子系统章节。
 
 
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-ability.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-ability.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-ability.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-ability.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-arkui.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-arkui.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-arkui.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-arkui.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-battery.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-battery.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-battery.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-battery.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-bundle.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-bundle.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-bundle.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-bundle.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-communicate.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-communicate.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-communicate.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-communicate.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-dfx.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-dfx.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-dfx.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-dfx.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-distributed-data.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-distributed-data.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-distributed-data.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-distributed-data.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-distributedschedule.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-distributedschedule.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-distributedschedule.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-distributedschedule.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-event-and-notification.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-event-and-notification.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-event-and-notification.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-event-and-notification.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-file-management.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-file-management.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-file-management.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-file-management.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-global.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-global.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-global.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-global.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-init.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-init.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-init.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-init.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-misc.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-misc.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-misc.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-misc.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-multi-modal-input.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-multi-modal-input.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-multi-modal-input.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-multi-modal-input.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-multimedia.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-multimedia.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-multimedia.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-multimedia.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-resource-scheduler.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-resource-scheduler.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-resource-scheduler.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-resource-scheduler.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-soft-bus.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-soft-bus.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-soft-bus.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-soft-bus.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-unitest.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-unitest.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-unitest.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-unitest.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-web.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-web.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-web.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-web.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-window.md b/zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-window.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/js-apidiff-window.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/js-apidiff-window.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/native-apidiff-v3.2-beta.md b/zh-cn/release-notes/api-change/v3.2-beta1/native-apidiff-v3.2-beta.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/native-apidiff-v3.2-beta.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/native-apidiff-v3.2-beta.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta/readme.md b/zh-cn/release-notes/api-change/v3.2-beta1/readme.md
similarity index 100%
rename from zh-cn/release-notes/api-change/v3.2-beta/readme.md
rename to zh-cn/release-notes/api-change/v3.2-beta1/readme.md
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-ability.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-ability.md
new file mode 100644
index 0000000000000000000000000000000000000000..39d9581639436f9046aebf5bd18c55cf0d5f3515
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-ability.md
@@ -0,0 +1,77 @@
+# 元能力子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,元能力子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| AbilityContext | AbilityContext | isTerminating(): boolean; | 新增 |
+| AbilityContext | AbilityContext | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;<br>stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>; | 新增 |
+| AbilityContext | AbilityContext | stopServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;<br>stopServiceExtensionAbility(want: Want): Promise\<void>; | 新增 |
+| AbilityContext | AbilityContext | startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;<br>startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>; | 新增 |
+| AbilityContext | AbilityContext | startServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;<br>startServiceExtensionAbility(want: Want): Promise\<void>; | 新增 |
+| abilityDelegator | AbilityDelegator | printSync(msg: string): void; | 新增 |
+| ApplicationContext | ApplicationContext | unregisterEnvironmentCallback(callbackId: number,  callback: AsyncCallback\<void>): void;<br>unregisterEnvironmentCallback(callbackId: number): Promise\<void>; | 新增 |
+| ApplicationContext | ApplicationContext | registerEnvironmentCallback(callback: EnvironmentCallback): number; | 新增 |
+| applicationInfo | ApplicationInfo | readonly appProvisionType: string; | 新增 |
+| applicationInfo | ApplicationInfo | readonly appDistributionType: string; | 新增 |
+| applicationInfo | ApplicationInfo | readonly descriptionResource: Resource; | 新增 |
+| applicationInfo | ApplicationInfo | readonly labelResource: Resource; | 新增 |
+| applicationInfo | ApplicationInfo | readonly iconResource: Resource; | 新增 |
+| applicationInfo | ApplicationInfo | readonly fingerprint: string; | 新增 |
+| context | Context | createModuleContext(moduleName: string): Context;<br>createModuleContext(bundleName: string, moduleName: string): Context; | 新增 |
+| ErrorObserver | ErrorObserver | onUnhandledException(errMsg: string): void; | 新增 |
+| ExtensionContext | ExtensionContext | extensionAbilityInfo: ExtensionAbilityInfo; | 新增 |
+| FormExtensionContext | FormExtensionContext | startAbility(want: Want, callback: AsyncCallback\<void>): void;<br>startAbility(want: Want): Promise\<void>; | 新增 |
+| MissionCallbacks | MissionCallback | notifyNetDisconnect(deviceId: string, state: number): void; | 新增 |
+| MissionCallbacks | MissionCallback | notifySnapshot(deviceId: string, mission: number): void; | 新增 |
+| MissionCallbacks | MissionCallback | notifyMissionsChanged(deviceId: string): void; | 新增 |
+| MissionDeviceInfo | MissionDeviceInfo | deviceId: string; | 新增 |
+| MissionParameter | MissionParameter | tag: number; | 新增 |
+| MissionParameter | MissionParameter | fixConflict: boolean; | 新增 |
+| MissionParameter | MissionParameter | deviceId: string; | 新增 |
+| ohos.ability.wantConstant | Action | ACTION_MARKER_DOWNLOAD = "ohos.want.action.marketDownload" | 新增 |
+| ohos.abilityAccessCtrl | AtManager | verifyAccessTokenSync(tokenID: number, permissionName: string): GrantStatus; | 新增 |
+| ohos.application.Ability | CalleeCallBack | (indata: rpc.MessageParcel): rpc.Sequenceable; | 新增 |
+| ohos.application.appManager | appManager | getProcessRunningInformation(): Promise\<Array\<ProcessRunningInformation>>;<br>getProcessRunningInformation(callback: AsyncCallback\<Array\<ProcessRunningInformation>>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | denormalizeUri?(uri: string, callback: AsyncCallback\<string>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | normalizeUri?(uri: string, callback: AsyncCallback\<string>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | batchInsert?(uri: string, valueBuckets: Array\<ValuesBucket>, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | getType?(uri: string, callback: AsyncCallback\<string>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | "query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array\<string>, callback: AsyncCallback\<Object>): void;" | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | "update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback\<number>): void;" | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | openFile?(uri: string, mode: string, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback\<Array\<string>>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | onCreate?(want: Want, callback: AsyncCallback\<void>): void; | 新增 |
+| ohos.application.DataShareExtensionAbility | DataShareExtensionAbility | context?: ExtensionContext; | 新增 |
+| ohos.application.EnvironmentCallback | EnvironmentCallback | onConfigurationUpdated(config: Configuration): void; | 新增 |
+| ohos.application.errorManager | errorManager | unregisterErrorObserver(observerId: number,  callback: AsyncCallback\<void>): void;<br>unregisterErrorObserver(observerId: number): Promise\<void>; | 新增 |
+| ohos.application.errorManager | errorManager | registerErrorObserver(observer: ErrorObserver): number; | 新增 |
+| ohos.application.formInfo | FormInfoFilter | moduleName?: string; | 新增 |
+| ohos.application.formProvider | formProvider | isRequestPublishFormSupported(callback: AsyncCallback\<boolean>): void;<br>isRequestPublishFormSupported(): Promise\<boolean>; | 新增 |
+| ohos.application.formProvider | formProvider | requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<string>): void;<br>requestPublishForm(want: Want, callback: AsyncCallback\<string>): void;<br>requestPublishForm(want: Want, formBindingData?: formBindingData.FormBindingData): Promise\<string>; | 新增 |
+| ohos.application.formProvider | formProvider | getFormsInfo(filter: formInfo.FormInfoFilter, callback: AsyncCallback\<Array\<formInfo.FormInfo>>): void;<br>getFormsInfo(callback: AsyncCallback\<Array\<formInfo.FormInfo>>): void;<br>getFormsInfo(filter?: formInfo.FormInfoFilter): Promise\<Array\<formInfo.FormInfo>>; | 新增 |
+| ohos.application.missionManager | missionManager | getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\<MissionSnapshot>): void;<br>getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\<MissionSnapshot>; | 新增 |
+| ohos.application.Want | Want | moduleName?: string; | 新增 |
+| ohos.distributedMissionManager | distributedMissionManager | unRegisterMissionListener(parameter: MissionDeviceInfo, callback:AsyncCallback\<void>): void;<br>unRegisterMissionListener(parameter: MissionDeviceInfo): Promise\<void>; | 新增 |
+| ohos.distributedMissionManager | distributedMissionManager | registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, callback: AsyncCallback\<void>): void;<br>registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise\<void>; | 新增 |
+| ohos.distributedMissionManager | distributedMissionManager | stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback\<void>): void;<br>stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise\<void>; | 新增 |
+| ohos.distributedMissionManager | distributedMissionManager | startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback\<void>): void;<br>startSyncRemoteMissions(parameter: MissionParameter): Promise\<void>; | 新增 |
+| ProcessRunningInformation | ProcessRunningInformation | bundleNames: Array\<string>; | 新增 |
+| ProcessRunningInformation | ProcessRunningInformation | processName: string; | 新增 |
+| ProcessRunningInformation | ProcessRunningInformation | uid: number; | 新增 |
+| ProcessRunningInformation | ProcessRunningInformation | pid: number; | 新增 |
+| ServiceExtensionContext | ServiceExtensionContext | stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;<br>stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>; | 新增 |
+| ServiceExtensionContext | ServiceExtensionContext | stopServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;<br>stopServiceExtensionAbility(want: Want): Promise\<void>; | 新增 |
+| ServiceExtensionContext | ServiceExtensionContext | startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void;<br>startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\<void>; | 新增 |
+| ServiceExtensionContext | ServiceExtensionContext | startServiceExtensionAbility(want: Want, callback: AsyncCallback\<void>): void;<br>startServiceExtensionAbility(want: Want): Promise\<void>; | 新增 |
+| ohos.application.Ability | CaleeCallBack | (indata: rpc.MessageParcel): rpc.Sequenceable; | 删除 |
+| ohos.application.uriPermissionManager | uriPermissionManager | verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number, callback: AsyncCallback\<number>): void;<br>verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number): Promise\<number>; | 删除 |
+| FormExtensionContext | FormExtensionContext | updateForm(formId: string, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<void>): void;<br>updateForm(formId: string, formBindingData: formBindingData.FormBindingData): Promise\<void>; | 删除 |
+| ServiceExtensionContext | ServiceExtensionContext | extensionAbilityInfo: ExtensionAbilityInfo; | 删除 |
+| ohos.application.appManager | appManager | getProcessRunningInfos(): Promise\<Array\<ProcessRunningInfo>>;<br>getProcessRunningInfos(callback: AsyncCallback\<Array\<ProcessRunningInfo>>): void; | 废弃 |
+| ohos.application.Ability | Ability | old : onNewWant(want: Want): void;<br>new : onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void; | 变更 |
+| ohos.application.Ability | Callee | old : on(method: string, callback: CaleeCallBack): void;<br>new : on(method: string, callback: CalleeCallBack): void; | 变更 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-accessibility.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-accessibility.md
new file mode 100644
index 0000000000000000000000000000000000000000..cbe82cc82a409a0d0f5bb5015bd3a169c1b9eeb7
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-accessibility.md
@@ -0,0 +1,36 @@
+# 无障碍子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,无障碍子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| AccessibilityExtensionContext | Rect | height: number; | 新增 |
+| AccessibilityExtensionContext | Rect | width: number; | 新增 |
+| AccessibilityExtensionContext | Rect | top: number; | 新增 |
+| AccessibilityExtensionContext | Rect | left: number; | 新增 |
+| AccessibilityExtensionContext | AccessibilityElement | findElement(type: 'content', condition: string): Promise\<Array\<AccessibilityElement>>;<br>findElement(type: 'content', condition: string, callback: AsyncCallback\<Array\<AccessibilityElement>>): void<br>findElement(type: 'focusType', condition: FocusType): Promise\<AccessibilityElement>;<br>findElement(type: 'focusType', condition: FocusType, callback: AsyncCallback\<AccessibilityElement>): void<br>findElement(type: 'focusDirection', condition: FocusDirection): Promise\<AccessibilityElement>;<br>findElement(type: 'focusDirection', condition: FocusDirection, callback: AsyncCallback\<AccessibilityElement>): void | 新增 |
+| AccessibilityExtensionContext | AccessibilityElement | performAction(actionName: string, parameters?: object): Promise\<boolean>;<br>performAction(actionName: string, callback: AsyncCallback\<boolean>): void;<br>performAction(actionName: string, parameters: object, callback: AsyncCallback\<boolean>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityElement | actionNames(): Promise\<Array\<string>>;<br>actionNames(callback: AsyncCallback\<Array\<string>>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityElement | "attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T): Promise\<ElementAttributeValues[T]>;<br>attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T, callback: AsyncCallback\<ElementAttributeValues[T]>): void;" | 新增 |
+| AccessibilityExtensionContext | AccessibilityElement | attributeNames\<T extends keyof ElementAttributeValues>(): Promise\<Array\<T>>;<br>attributeNames\<T extends keyof ElementAttributeValues>(callback: AsyncCallback\<Array\<T>>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | gestureInject(gesturePath: GesturePath, listener: Callback\<boolean>): Promise\<boolean>;<br>gestureInject(gesturePath: GesturePath, listener: Callback\<boolean>, callback: AsyncCallback\<boolean>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | getWindows(displayId?: number): Promise\<Array\<AccessibilityElement>>;<br>getWindows(callback: AsyncCallback\<Array\<AccessibilityElement>>): void;<br>getWindows(displayId: number, callback: AsyncCallback\<Array\<AccessibilityElement>>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | getWindowRootElement(windowId?: number): Promise\<AccessibilityElement>;<br>getWindowRootElement(callback: AsyncCallback\<AccessibilityElement>): void;<br>getWindowRootElement(windowId: number, callback: AsyncCallback\<AccessibilityElement>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | getFocusElement(isAccessibilityFocus?: boolean): Promise\<AccessibilityElement>;<br>getFocusElement(callback: AsyncCallback\<AccessibilityElement>): void;<br>getFocusElement(isAccessibilityFocus: boolean, callback: AsyncCallback\<AccessibilityElement>): void; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | setTargetBundleName(targetNames: Array\<string>): Promise\<boolean>;<br>setTargetBundleName(targetNames: Array\<string>, callback: AsyncCallback\<boolean>): boolean; | 新增 |
+| AccessibilityExtensionContext | AccessibilityExtensionContext | setEventTypeFilter(type: Array\<accessibility.EventType>): Promise\<boolean>;<br>setEventTypeFilter(type: Array\<accessibility.EventType>, callback: AsyncCallback\<boolean>): boolean; | 新增 |
+| ohos.accessibility | AccessibilityAbilityInfo | readonly targetBundleNames: Array\<string>; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | GesturePoint | positionY: number; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | GesturePoint | positionX: number; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | GesturePath | durationTime: number; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | GesturePath | points: Array\<GesturePoint>; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityEvent | timeStamp?: number; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityEvent | target?: AccessibilityElement; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityEvent | eventType: accessibility.EventType \| accessibility.WindowUpdateType \| TouchGuideType \| GestureType \| PageUpdateType; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityExtensionAbility | onKeyEvent(keyEvent: inputEventClient.KeyEvent): boolean; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityExtensionAbility | onAccessibilityEvent(event: AccessibilityEvent): void; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityExtensionAbility | onDisconnect(): void; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityExtensionAbility | onConnect(): void; | 新增 |
+| ohos.application.AccessibilityExtensionAbility | AccessibilityExtensionAbility | context: AccessibilityExtensionContext; | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-account.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-account.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0c7ba70f97182ec10875cd4b41f6fd029cdc9fb
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-account.md
@@ -0,0 +1,40 @@
+# 帐号子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,帐号子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.account.appAccount | Authenticator | getRemoteObject(): rpc.RemoteObject; | 新增 |
+| ohos.account.appAccount | Authenticator | isAccountRemovable(name: string, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | Authenticator | checkAccountLabels(name: string, labels: Array\<string>, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | Authenticator | setProperties(options: SetPropertiesOptions, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | Authenticator | verifyCredential(name: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | AuthenticatorCallback | onRequestContinued?: () => void; | 新增 |
+| ohos.account.appAccount | Constants | KEY_BOOLEAN_RESULT = "booleanResult" | 新增 |
+| ohos.account.appAccount | Constants | KEY_REQUIRED_LABELS = "requiredLabels" | 新增 |
+| ohos.account.appAccount | SetPropertiesOptions | parameters?: {[key: string]: Object} | 新增 |
+| ohos.account.appAccount | SetPropertiesOptions | properties?: {[key: string]: Object}, | 新增 |
+| ohos.account.appAccount | VerifyCredentialOptions | parameters?: {[key:string]: Object} | 新增 |
+| ohos.account.appAccount | VerifyCredentialOptions | credential?: string, | 新增 |
+| ohos.account.appAccount | VerifyCredentialOptions | credentialType?: string, | 新增 |
+| ohos.account.appAccount | SelectAccountsOptions | requiredLabels?: Array\<string> | 新增 |
+| ohos.account.appAccount | SelectAccountsOptions | allowedOwners?: Array\<string>, | 新增 |
+| ohos.account.appAccount | SelectAccountsOptions | allowedAccounts?: Array\<AppAccountInfo>, | 新增 |
+| ohos.account.appAccount | OAuthTokenInfo | account?: AppAccountInfo; | 新增 |
+| ohos.account.appAccount | AppAccountManager | setAuthenticatorProperties(owner: string, callback: AuthenticatorCallback): void;<br>setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | AppAccountManager | verifyCredential(name: string, owner: string, callback: AuthenticatorCallback): void;<br>verifyCredential(name: string, owner: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void; | 新增 |
+| ohos.account.appAccount | AppAccountManager | selectAccountsByOptions(options: SelectAccountsOptions, callback: AsyncCallback\<Array\<AppAccountInfo>>);<br>selectAccountsByOptions(options: SelectAccountsOptions): Promise\<Array\<AppAccountInfo>>; | 新增 |
+| ohos.account.appAccount | AppAccountManager | deleteAccountCredential(name: string, credentialType: string, callback: AsyncCallback\<void>): void;<br>deleteAccountCredential(name: string, credentialType: string): Promise\<void>; | 新增 |
+| ohos.account.appAccount | AppAccountManager | checkAccountLabels(name: string, owner: string, labels: Array\<string>, callback: AsyncCallback\<boolean>): void;<br>checkAccountLabels(name: string, owner: string, labels: Array\<string>): Promise\<boolean>; | 新增 |
+| ohos.account.appAccount | AppAccountManager | checkAppAccess(name: string, bundleName: string, callback: AsyncCallback\<boolean>): void;<br>checkAppAccess(name: string, bundleName: string): Promise\<boolean>; | 新增 |
+| ohos.account.osAccount | ConstraintSourceTypeInfo | type: ConstraintSourceType; | 新增 |
+| ohos.account.osAccount | ConstraintSourceTypeInfo | localId: number; | 新增 |
+| ohos.account.osAccount | ConstraintSourceType | CONSTRAINT_TYPE_PROFILE_OWNER = 3 | 新增 |
+| ohos.account.osAccount | ConstraintSourceType | CONSTRAINT_TYPE_DEVICE_OWNER = 2 | 新增 |
+| ohos.account.osAccount | ConstraintSourceType | CONSTRAINT_TYPE_BASE = 1 | 新增 |
+| ohos.account.osAccount | ConstraintSourceType | CONSTRAINT_NOT_EXIST = 0 | 新增 |
+| ohos.account.osAccount | AccountManager | queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback\<Array\<ConstraintSourceTypeInfo>>): void;<br>queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise\<Array\<ConstraintSourceTypeInfo>>; | 新增 |
+| ohos.account.osAccount | AccountManager | isMainOsAccount(callback: AsyncCallback\<boolean>): void;<br>isMainOsAccount(): Promise\<boolean>; | 新增 |
+| ohos.account.osAccount | AccountManager | getBundleIdFromUid(uid: number, callback: AsyncCallback\<number>): void;<br>getBundleIdFromUid(uid: number): Promise\<number>; | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-arkui.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-arkui.md
new file mode 100644
index 0000000000000000000000000000000000000000..c345fa6b61211f81e5ec12c490709a42cee4caa9
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-arkui.md
@@ -0,0 +1,200 @@
+# ArkUI子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,ArkUI子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ArkUI | AbilityComponentInterface | (want: Want): AbilityComponentAttribute; | 新增 |
+| ArkUI | AbilityComponentAttribute | onConnect(callback: () => void): AbilityComponentAttribute; | 新增 |
+| ArkUI | AbilityComponentAttribute | onDisconnect(callback: () => void): AbilityComponentAttribute; | 新增 |
+| ArkUI | HttpAuthHandler | isHttpAuthInfoSaved(): boolean; | 新增 |
+| ArkUI | HttpAuthHandler | cancel(): void; | 新增 |
+| ArkUI | HttpAuthHandler | confirm(userName: string, password: string): boolean; | 新增 |
+| ArkUI | HttpAuthHandler | constructor(); | 新增 |
+| ArkUI | HitTestValue | getExtra(): string; | 新增 |
+| ArkUI | HitTestValue | getType(): HitTestType; | 新增 |
+| ArkUI | HitTestValue | constructor(); | 新增 |
+| ArkUI | JsResult | handlePromptConfirm(result: string): void; | 新增 |
+| ArkUI | Resource | readonly moduleName: string; | 新增 |
+| ArkUI | Resource | readonly bundleName: string; | 新增 |
+| ArkUI | TextInputAttribute | textAlign(value: TextAlign): TextInputAttribute; | 新增 |
+| ArkUI | TextInputAttribute | showPasswordIcon(value: boolean): TextInputAttribute; | 新增 |
+| ArkUI | TextInputAttribute | copyOption(value: boolean \| CopyOption): TextInputAttribute; | 新增 |
+| ArkUI | InputType | PhoneNumber | 新增 |
+| ArkUI | TextAreaAttribute | copyOption(value: boolean \| CopyOption): TextAreaAttribute; | 新增 |
+| ArkUI | TextAttribute | copyOption(value: boolean \| CopyOption): TextAttribute; | 新增 |
+| ArkUI | SearchAttribute | textAlign(value: TextAlign): SearchAttribute; | 新增 |
+| ArkUI | SearchAttribute | copyOption(value: boolean \| CopyOption): SearchAttribute; | 新增 |
+| ArkUI | ScrollAttribute | onScrollBegin(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number }): ScrollAttribute; | 新增 |
+| ArkUI | Scroller | scrollBy(dx: Length, dy: Length); | 新增 |
+| ArkUI | RemoteWindowInterface | (target: WindowAnimationTarget): RemoteWindowAttribute; | 新增 |
+| ArkUI | WindowAnimationTarget | readonly windowBounds: RRect; | 新增 |
+| ArkUI | WindowAnimationTarget | readonly abilityName: string; | 新增 |
+| ArkUI | WindowAnimationTarget | readonly bundleName: string; | 新增 |
+| ArkUI | RRect | radius: number; | 新增 |
+| ArkUI | RRect | height: number; | 新增 |
+| ArkUI | RRect | width: number; | 新增 |
+| ArkUI | RRect | top: number; | 新增 |
+| ArkUI | RRect | left: number; | 新增 |
+| ArkUI | RelativeContainerInterface | (): RelativeContainerAttribute; | 新增 |
+| ArkUI | PluginComponentAttribute | onError(callback: (info: { errcode: number; msg: string }) => void): PluginComponentAttribute; | 新增 |
+| ArkUI | PluginComponentAttribute | onComplete(callback: () => void): PluginComponentAttribute; | 新增 |
+| ArkUI | PluginComponentInterface | (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; | 新增 |
+| ArkUI | PluginComponentTemplate | ability: string; | 新增 |
+| ArkUI | PluginComponentTemplate | source: string; | 新增 |
+| ArkUI | PatternLockAttribute | autoReset(value: boolean): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | onPatternComplete(callback: (input: Array\<number>) => void): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | pathStrokeWidth(value: number \| string): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | pathColor(value: ResourceColor): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | activeColor(value: ResourceColor): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | selectedColor(value: ResourceColor): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | regularColor(value: ResourceColor): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | backgroundColor(value: ResourceColor): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | circleRadius(value: Length): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockAttribute | sideLength(value: Length): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockInterface | (controller?: PatternLockController): PatternLockAttribute; | 新增 |
+| ArkUI | PatternLockController | reset(); | 新增 |
+| ArkUI | PatternLockController | constructor(); | 新增 |
+| ArkUI | ListAttribute | onScrollBegin(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number }): ListAttribute; | 新增 |
+| ArkUI | ListAttribute | alignListItem(value: ListItemAlign): ListAttribute; | 新增 |
+| ArkUI | ListAttribute | lanes(value: number \| LengthConstrain): ListAttribute; | 新增 |
+| ArkUI | ListItemAlign | End | 新增 |
+| ArkUI | ListItemAlign | Center | 新增 |
+| ArkUI | ListItemAlign | Start | 新增 |
+| ArkUI | ImageFrameInfo | duration?: number; | 新增 |
+| ArkUI | ImageFrameInfo | left?: number \| string; | 新增 |
+| ArkUI | ImageFrameInfo | top?: number \| string; | 新增 |
+| ArkUI | ImageFrameInfo | height?: number \| string; | 新增 |
+| ArkUI | ImageFrameInfo | width?: number \| string; | 新增 |
+| ArkUI | ImageFrameInfo | src: string \| Resource; | 新增 |
+| ArkUI | GridRowAttribute | onBreakpointChange(callback: (breakpoints: string) => void): GridRowAttribute; | 新增 |
+| ArkUI | GridRowInterface | (optiion?: GridRowOptions): GridRowAttribute; | 新增 |
+| ArkUI | GridRowOptions | direction?: GridRowDirection; | 新增 |
+| ArkUI | GridRowOptions | breakpoints?: BreakPoints; | 新增 |
+| ArkUI | GridRowOptions | columns?: number \| GridRowColumnOption; | 新增 |
+| ArkUI | GridRowOptions | gutter?: Length \| GetterOption; | 新增 |
+| ArkUI | BreakPoints | reference?: BreakpointsReference, | 新增 |
+| ArkUI | BreakPoints | value?: Array\<string>, | 新增 |
+| ArkUI | GridRowDirection | RowReverse | 新增 |
+| ArkUI | GridRowDirection | Row | 新增 |
+| ArkUI | BreakpointsReference | ComponentSize | 新增 |
+| ArkUI | BreakpointsReference | WindowSize | 新增 |
+| ArkUI | GetterOption | y?: Length \| GridRowSizeOption | 新增 |
+| ArkUI | GetterOption | x?: Length \| GridRowSizeOption, | 新增 |
+| ArkUI | GridRowColumnOption | xxl?: number, | 新增 |
+| ArkUI | GridRowColumnOption | xl?: number, | 新增 |
+| ArkUI | GridRowColumnOption | lg?: number, | 新增 |
+| ArkUI | GridRowColumnOption | md?: number, | 新增 |
+| ArkUI | GridRowColumnOption | sm?: number, | 新增 |
+| ArkUI | GridRowColumnOption | xs?: number, | 新增 |
+| ArkUI | GridRowSizeOption | xxl?: Length, | 新增 |
+| ArkUI | GridRowSizeOption | xl?: Length, | 新增 |
+| ArkUI | GridRowSizeOption | lg?: Length, | 新增 |
+| ArkUI | GridRowSizeOption | md?: Length, | 新增 |
+| ArkUI | GridRowSizeOption | sm?: Length, | 新增 |
+| ArkUI | GridRowSizeOption | xs?: Length, | 新增 |
+| ArkUI | GridColAttribute | order(value: number \| GridColColumnOption): GridRowAttribute; | 新增 |
+| ArkUI | GridColAttribute | offset(value: number \| GridColColumnOption): GridRowAttribute; | 新增 |
+| ArkUI | GridColAttribute | span(value: number \| GridColColumnOption): GridRowAttribute; | 新增 |
+| ArkUI | GridColInterface | (optiion?: GridColOptions): GridColAttribute; | 新增 |
+| ArkUI | GridColOptions | order?: number \| GridColColumnOption; | 新增 |
+| ArkUI | GridColOptions | offset?: number \| GridColColumnOption; | 新增 |
+| ArkUI | GridColOptions | span?: number \| GridColColumnOption; | 新增 |
+| ArkUI | GridColColumnOption | xxl?: number, | 新增 |
+| ArkUI | GridColColumnOption | xl?: number, | 新增 |
+| ArkUI | GridColColumnOption | lg?: number, | 新增 |
+| ArkUI | GridColColumnOption | md?: number, | 新增 |
+| ArkUI | GridColColumnOption | sm?: number, | 新增 |
+| ArkUI | GridColColumnOption | xs?: number, | 新增 |
+| ArkUI | CopyOption | CrossDevice = 2 | 新增 |
+| ArkUI | CopyOption | LocalDevice = 1 | 新增 |
+| ArkUI | CopyOption | InApp = 0 | 新增 |
+| ArkUI | Placement | RightBottom | 新增 |
+| ArkUI | Placement | RightTop | 新增 |
+| ArkUI | Placement | LeftBottom | 新增 |
+| ArkUI | Placement | LeftTop | 新增 |
+| ArkUI | CommonMethod | onVisibleAreaChange(ratios: Array\<number>, event: (isVisible: boolean, currentRatio: number) => void): T; | 新增 |
+| ArkUI | CommonMethod | alignRules(value: AlignRuleOption): T; | 新增 |
+| ArkUI | CommonMethod | tabIndex(index: number): T; | 新增 |
+| ArkUI | CommonMethod | borderImage(value: BorderImageOption): T; | 新增 |
+| ArkUI | CommonMethod | backgroundBlurStyle(value: BlurStyle): T; | 新增 |
+| ArkUI | BorderImageOption | fill?: boolean | 新增 |
+| ArkUI | BorderImageOption | outset?: Length \| EdgeWidths, | 新增 |
+| ArkUI | BorderImageOption | width?: Length \| EdgeWidths, | 新增 |
+| ArkUI | BorderImageOption | source?: string \| Resource \| linearGradient, | 新增 |
+| ArkUI | BorderImageOption | repeat?: RepeatMode, | 新增 |
+| ArkUI | BorderImageOption | slice?: Length \| EdgeWidths, | 新增 |
+| ArkUI | BlurStyle | Thick | 新增 |
+| ArkUI | BlurStyle | Regular | 新增 |
+| ArkUI | BlurStyle | Thin | 新增 |
+| ArkUI | RepeatMode | Space | 新增 |
+| ArkUI | RepeatMode | Round | 新增 |
+| ArkUI | RepeatMode | Stretch | 新增 |
+| ArkUI | RepeatMode | Repeat | 新增 |
+| ArkUI | AlignRuleOption | center?: { anchor: string, align: VerticalAlign }; | 新增 |
+| ArkUI | AlignRuleOption | bottom?: { anchor: string, align: VerticalAlign }; | 新增 |
+| ArkUI | AlignRuleOption | top?: { anchor: string, align: VerticalAlign }; | 新增 |
+| ArkUI | AlignRuleOption | middle?: { anchor: string, align: HorizontalAlign }; | 新增 |
+| ArkUI | AlignRuleOption | right?: { anchor: string, align: HorizontalAlign }; | 新增 |
+| ArkUI | AlignRuleOption | left?: { anchor: string, align: HorizontalAlign }; | 新增 |
+| ArkUI | ICurve | interpolate(fraction : number) : number; | 新增 |
+| elementName | ElementName | moduleName?: string; | 新增 |
+| global |  |  function sendMouseEvent(event: MouseEvent): boolean; | 新增 |
+| global |  |  function sendKeyEvent(event: KeyEvent): boolean; | 新增 |
+| global |  |  function sendTouchEvent(event: TouchObject): boolean; | 新增 |
+| global |  |  function sendEventByKey(id: string, action: number, params: string): boolean; | 新增 |
+| global |  |  function getInspectorTree(): string; | 新增 |
+| global |  |  function getInspectorByKey(id: string): string; | 新增 |
+| ohos.curves | curves | function springCurve(velocity: number, mass: number, stiffness: number, damping: number): ICurve; | 新增 |
+| ohos.curves | curves | function cubicBezierCurve(x1: number, y1: number, x2: number, y2: number): ICurve; | 新增 |
+| ohos.curves | curves | function stepsCurve(count: number, end: boolean): ICurve; | 新增 |
+| ohos.curves | curves | function initCurve(curve?: Curve): ICurve; | 新增 |
+| ohos.curves | ICurve | interpolate(fraction : number) : number; | 新增 |
+| ohos.router | RouterMode | Single | 新增 |
+| ohos.router | RouterMode | Standard | 新增 |
+| ohos.uiAppearance | uiAppearance | function getDarkMode(): DarkMode; | 新增 |
+| ohos.uiAppearance | uiAppearance | function setDarkMode(mode: DarkMode, callback: AsyncCallback\<void>): void;<br>function setDarkMode(mode: DarkMode): Promise\<void>; | 新增 |
+| ohos.uiAppearance | DarkMode | ALWAYS_LIGHT = 1 | 新增 |
+| ohos.uiAppearance | DarkMode | ALWAYS_DARK = 0 | 新增 |
+| viewmodel | CanvasRenderingContext2D | getPixelMap(sx: number, sy: number, sw: number, sh: number): PixelMap | 新增 |
+| viewmodel | OffscreenCanvasRenderingContext2D | getPixelMap(sx: number, sy: number, sw: number, sh: number): PixelMap | 新增 |
+| ohos.curves | curves | function spring(velocity: number, mass: number, stiffness: number, damping: number): string; | 废弃 |
+| ohos.curves | curves | function cubicBezier(x1: number, y1: number, x2: number, y2: number): string; | 废弃 |
+| ohos.curves | curves | function steps(count: number, end: boolean): string; | 废弃 |
+| ohos.curves | curves | function init(curve?: Curve): string; | 废弃 |
+| system.router | Router | static disableAlertBeforeBackPage(options?: DisableAlertBeforeBackPageOptions): void; | 废弃 |
+| system.router | Router | static enableAlertBeforeBackPage(options: EnableAlertBeforeBackPageOptions): void; | 废弃 |
+| system.router | Router | static getState(): RouterState; | 废弃 |
+| system.router | Router | static getLength(): string; | 废弃 |
+| system.router | Router | static clear(): void; | 废弃 |
+| system.router | Router | static getParams(): ParamsInterface; | 废弃 |
+| system.router | Router | static back(options?: BackRouterOptions): void; | 废弃 |
+| system.router | Router | static replace(options: RouterOptions): void; | 废弃 |
+| system.router | Router | static push(options: RouterOptions): void; | 废弃 |
+| system.router | DisableAlertBeforeBackPageOptions | complete?: () => void; | 废弃 |
+| system.router | DisableAlertBeforeBackPageOptions | cancel?: (errMsg: string) => void; | 废弃 |
+| system.router | DisableAlertBeforeBackPageOptions | success?: (errMsg: string) => void; | 废弃 |
+| system.router | EnableAlertBeforeBackPageOptions | complete?: () => void; | 废弃 |
+| system.router | EnableAlertBeforeBackPageOptions | cancel?: (errMsg: string) => void; | 废弃 |
+| system.router | EnableAlertBeforeBackPageOptions | success?: (errMsg: string) => void; | 废弃 |
+| system.router | EnableAlertBeforeBackPageOptions | message: string; | 废弃 |
+| system.router | RouterState | path: string; | 废弃 |
+| system.router | RouterState | name: string; | 废弃 |
+| system.router | RouterState | index: number; | 废弃 |
+| system.router | BackRouterOptions | params?: Object; | 废弃 |
+| system.router | BackRouterOptions | uri?: string; | 废弃 |
+| system.router | RouterOptions | params?: Object; | 废弃 |
+| system.router | RouterOptions | uri: string; | 废弃 |
+| ohos.prompt | ActionMenuOptions |old : title?: string;<br>new : title?: string \| Resource;  | 变更 |
+| ohos.prompt | ShowDialogOptions |old : message?: string;<br>new : message?: string \| Resource;  | 变更 |
+| ohos.prompt | ShowDialogOptions |old : title?: string;<br>new : title?: string \| Resource;  | 变更 |
+| ohos.prompt | Button |old : color: string;<br>new : color: string \| Resource;  | 变更 |
+| ohos.prompt | Button |old : text: string;<br>new : text: string \| Resource;  | 变更 |
+| ohos.prompt | ShowToastOptions |old : message: string;<br>new : message: string \| Resource;  | 变更 |
+| ArkUI | BorderOptions |old : style?: BorderStyle;<br>new : style?: EdgeStyles \| BorderStyle; | 变更 |
+| ArkUI | BorderOptions |old : radius?: Length;<br>new : radius?: BorderRadiuses \| Length;  | 变更 |
+| ArkUI | BorderOptions |old : color?: ResourceColor;<br>new : color?: EdgeColors \| ResourceColor;  | 变更 |
+| ArkUI | BorderOptions |old : width?: Length;<br>new : width?: EdgeWidths \| Length;  | 变更 |
+| ArkUI | AnimateParam |old : curve?: Curve \| string;<br>new : curve?: Curve \| string \| ICurve;  | 变更 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-bundle.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-bundle.md
new file mode 100644
index 0000000000000000000000000000000000000000..faf69f24b1cd1502a8944018f8e082dff009ae7a
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-bundle.md
@@ -0,0 +1,100 @@
+# 包管理子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,包管理子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| abilityInfo | AbilityInfo | readonly minWindowHeight: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly maxWindowHeight: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly minWindowWidth: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly maxWindowWidth: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly minWindowRatio: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly maxWindowRatio: number; | 新增 |
+| abilityInfo | AbilityInfo | readonly supportWindowMode: Array\<bundle.SupportWindowMode>; | 新增 |
+| bundleInstaller | InstallParam | crowdtestDeadline?: number; | 新增 |
+| bundleInstaller | InstallParam | hashParams?: Array\<HashParam>; | 新增 |
+| bundleInstaller | HashParam | hashValue: string; | 新增 |
+| bundleInstaller | HashParam | moduleName: string; | 新增 |
+| dispatchInfo | DispatchInfo | readonly dispatchAPI: string; | 新增 |
+| dispatchInfo | DispatchInfo | readonly verison: string; | 新增 |
+| hapModuleInfo | HapModuleInfo | readonly hashValue: string; | 新增 |
+| ohos.bundle | bundle | getDisposedStatus(bundleName: string, callback: AsyncCallback\<number>): void;<br>getDisposedStatus(bundleName: string): Promise\<number>; | 新增 |
+| ohos.bundle | bundle | setDisposedStatus(bundleName: string, status: number, callback: AsyncCallback\<void>): void;<br>setDisposedStatus(bundleName: string, status: number): Promise\<void>; | 新增 |
+| ohos.bundle | bundle | getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName: string, callback: AsyncCallback\<Array\<string>>): void;<br>getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName?: string): Promise\<Array\<string>>; | 新增 |
+| ohos.bundle | bundle | getProfileByAbility(moduleName: string, abilityName: string, metadataName: string, callback: AsyncCallback\<Array\<string>>): void;<br>getProfileByAbility(moduleName: string, abilityName: string, metadataName?: string): Promise\<Array\<string>>; | 新增 |
+| ohos.bundle | bundle | getDispatcherVersion(callback: AsyncCallback\<DispatchInfo>): void;<br>getDispatcherVersion(): Promise\<DispatchInfo>; | 新增 |
+| ohos.bundle | bundle | getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag, callback: AsyncCallback\<pack.BundlePackInfo>): void;<br>getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag): Promise\<pack.BundlePackInfo>; | 新增 |
+| ohos.bundle | SupportWindowMode | FLOATING = 2 | 新增 |
+| ohos.bundle | SupportWindowMode | SPLIT = 1 | 新增 |
+| ohos.bundle | SupportWindowMode | FULL_SCREEN = 0 | 新增 |
+| ohos.bundle | ExtensionAbilityType | ENTERPRISE_ADMIN = 11 | 新增 |
+| ohos.bundle | DisplayOrientation | LOCKED | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION_PORTRAIT_RESTRICTED | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION_LANDSCAPE_RESTRICTED | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION_RESTRICTED | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION_PORTRAIT | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION_LANDSCAPE | 新增 |
+| ohos.bundle | DisplayOrientation | AUTO_ROTATION | 新增 |
+| ohos.bundle | DisplayOrientation | PORTRAIT_INVERTED | 新增 |
+| ohos.bundle | DisplayOrientation | LANDSCAPE_INVERTED | 新增 |
+| ohos.bundle | BundleFlag | GET_APPLICATION_INFO_WITH_CERTIFICATE_FINGERPRINT = 0x00000400 | 新增 |
+| ohos.bundle | BundleFlag | GET_BUNDLE_WITH_HASH_VALUE = 0x00000030 | 新增 |
+| ohos.bundle.defaultAppManager | defaultAppManager | resetDefaultApplication(type: string, userId?: number) : Promise\<void>;<br>resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<void>) : void;<br>resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void; | 新增 |
+| ohos.bundle.defaultAppManager | defaultAppManager | setDefaultApplication(type: string, elementName: ElementName, userId?: number) : Promise\<void>;<br>setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\<void>) : void;<br>setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\<void>) : void; | 新增 |
+| ohos.bundle.defaultAppManager | defaultAppManager | getDefaultApplication(type: string, userId?: number) : Promise\<BundleInfo>;<br>getDefaultApplication(type: string, userId: number, callback: AsyncCallback\<BundleInfo>) : void;<br>getDefaultApplication(type: string, callback: AsyncCallback\<BundleInfo>) : void; | 新增 |
+| ohos.bundle.defaultAppManager | defaultAppManager | isDefaultApplication(type: string) : Promise\<boolean>;<br>isDefaultApplication(type: string, callback: AsyncCallback\<boolean>) : void; | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | PPT = "PPT" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | EXCEL = "EXCEL" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | WORD = "WORD" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | PDF = "PDF" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | VIDEO = "VIDEO" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | AUDIO = "AUDIO" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | IMAGE = "IMAGE" | 新增 |
+| ohos.bundle.defaultAppManager | ApplicationType | BROWSER = "BROWSER" | 新增 |
+| packInfo | BundlePackFlag | GET_MODULE_SUMMARY = 0x00000004 | 新增 |
+| packInfo | BundlePackFlag | GET_BUNDLE_SUMMARY = 0x00000002 | 新增 |
+| packInfo | BundlePackFlag | GET_PACKAGES = 0x00000001 | 新增 |
+| packInfo | BundlePackFlag | GET_PACK_INFO_ALL = 0x00000000 | 新增 |
+| packInfo | ApiVersion | readonly target: number; | 新增 |
+| packInfo | ApiVersion | readonly compatible: number; | 新增 |
+| packInfo | ApiVersion | readonly releaseType: string; | 新增 |
+| packInfo | Version | readonly code: number; | 新增 |
+| packInfo | Version | readonly name: string; | 新增 |
+| packInfo | Version | readonly minCompatibleVersionCode: number; | 新增 |
+| packInfo | AbilityFormInfo | readonly defaultDimension: number; | 新增 |
+| packInfo | AbilityFormInfo | readonly supportDimensions: Array\<number>; | 新增 |
+| packInfo | AbilityFormInfo | readonly updateDuration: number; | 新增 |
+| packInfo | AbilityFormInfo | readonly scheduledUpdateTime: string; | 新增 |
+| packInfo | AbilityFormInfo | readonly updateEnabled: boolean; | 新增 |
+| packInfo | AbilityFormInfo | readonly type: string; | 新增 |
+| packInfo | AbilityFormInfo | readonly name: string; | 新增 |
+| packInfo | ModuleAbilityInfo | readonly forms: Array\<AbilityFormInfo>; | 新增 |
+| packInfo | ModuleAbilityInfo | readonly visible: boolean; | 新增 |
+| packInfo | ModuleAbilityInfo | readonly label: string; | 新增 |
+| packInfo | ModuleAbilityInfo | readonly name: string; | 新增 |
+| packInfo | ModuleDistroInfo | readonly moduleType: string; | 新增 |
+| packInfo | ModuleDistroInfo | readonly moduleName: string; | 新增 |
+| packInfo | ModuleDistroInfo | readonly installationFree: boolean; | 新增 |
+| packInfo | ModuleDistroInfo | readonly deliveryWithInstall: boolean; | 新增 |
+| packInfo | ModuleDistroInfo | readonly mainAbility: string; | 新增 |
+| packInfo | ModuleConfigInfo | readonly extensionAbilities: Array\<ExtensionAbilities>; | 新增 |
+| packInfo | ModuleConfigInfo | readonly abilities: Array\<ModuleAbilityInfo>; | 新增 |
+| packInfo | ModuleConfigInfo | readonly distro: ModuleDistroInfo; | 新增 |
+| packInfo | ModuleConfigInfo | readonly deviceType: Array\<string>; | 新增 |
+| packInfo | ModuleConfigInfo | readonly apiVersion: ApiVersion; | 新增 |
+| packInfo | ExtensionAbilities | readonly forms: Array\<AbilityFormInfo>; | 新增 |
+| packInfo | ExtensionAbilities | readonly name: string; | 新增 |
+| packInfo | BundleConfigInfo | readonly version: Version; | 新增 |
+| packInfo | BundleConfigInfo | readonly bundleName: string; | 新增 |
+| packInfo | PackageSummary | readonly modules: Array\<ModuleConfigInfo>; | 新增 |
+| packInfo | PackageSummary | readonly app: BundleConfigInfo; | 新增 |
+| packInfo | PackageConfig | readonly deliveryWithInstall: boolean; | 新增 |
+| packInfo | PackageConfig | readonly moduleType: string; | 新增 |
+| packInfo | PackageConfig | readonly name: string; | 新增 |
+| packInfo | PackageConfig | readonly deviceType: Array\<string>; | 新增 |
+| packInfo | BundlePackInfo | readonly summary: PackageSummary; | 新增 |
+| packInfo | BundlePackInfo | readonly packages: Array\<PackageConfig>; | 新增 |
+| shortcutInfo | ShortcutInfo | readonly moduleName?: string; | 新增 |
+| shortcutInfo | ShortcutWant | readonly targetModule: string; | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-communicate.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-communicate.md
new file mode 100644
index 0000000000000000000000000000000000000000..cd21be290412414987d493d2475878ce93f9e311
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-communicate.md
@@ -0,0 +1,158 @@
+# 基础通信子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,基础通信子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| nfctech | NdefFormatableTag | formatReadOnly(message: NdefMessage): Promise\<number>;<br>formatReadOnly(message: NdefMessage, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | NdefFormatableTag | format(message: NdefMessage): Promise\<number>;<br>format(message: NdefMessage, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareUltralightTag | getType(): MifareUltralightType; | 新增 |
+| nfctech | MifareUltralightTag | writeSinglePages(pageIndex: number, data: string): Promise\<number>;<br>writeSinglePages(pageIndex: number, data: string, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareUltralightTag | readMultiplePages(pageIndex: number): Promise\<string>;<br>readMultiplePages(pageIndex: number, callback: AsyncCallback\<string>): void; | 新增 |
+| nfctech | MifareUltralightType | TYPE_ULTRALIGHT_C = 2 | 新增 |
+| nfctech | MifareUltralightType | TYPE_ULTRALIGHT = 1 | 新增 |
+| nfctech | MifareUltralightType | TYPE_UNKOWN = -1 | 新增 |
+| nfctech | MifareClassicTag | getSectorIndex(blockIndex: number): number; | 新增 |
+| nfctech | MifareClassicTag | getBlockIndex(sectorIndex: number): number; | 新增 |
+| nfctech | MifareClassicTag | isEmulatedTag(): boolean; | 新增 |
+| nfctech | MifareClassicTag | getTagSize(): number; | 新增 |
+| nfctech | MifareClassicTag | getType(): MifareClassicType; | 新增 |
+| nfctech | MifareClassicTag | getBlockCountInSector(sectorIndex: number): number; | 新增 |
+| nfctech | MifareClassicTag | getSectorCount(): number; | 新增 |
+| nfctech | MifareClassicTag | restoreFromBlock(blockIndex: number): Promise\<number>;<br>restoreFromBlock(blockIndex: number, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareClassicTag | transferToBlock(blockIndex: number): Promise\<number>;<br>transferToBlock(blockIndex: number, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareClassicTag | decrementBlock(blockIndex: number, value: number): Promise\<number>;<br>decrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareClassicTag | incrementBlock(blockIndex: number, value: number): Promise\<number>;<br>incrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareClassicTag | writeSingleBlock(blockIndex: number, data: string): Promise\<number>;<br>writeSingleBlock(blockIndex: number, data: string, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | MifareClassicTag | readSingleBlock(blockIndex: number): Promise\<string>;<br>readSingleBlock(blockIndex: number, callback: AsyncCallback\<string>): void; | 新增 |
+| nfctech | MifareClassicTag | authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise\<boolean>;<br>authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback: AsyncCallback\<boolean>): void; | 新增 |
+| nfctech | MifareTagSize | MC_SIZE_4K = 4096 | 新增 |
+| nfctech | MifareTagSize | MC_SIZE_2K = 2048 | 新增 |
+| nfctech | MifareTagSize | MC_SIZE_1K = 1024 | 新增 |
+| nfctech | MifareTagSize | MC_SIZE_MINI = 320 | 新增 |
+| nfctech | MifareClassicType | TYPE_PRO = 2 | 新增 |
+| nfctech | MifareClassicType | TYPE_PLUS = 1 | 新增 |
+| nfctech | MifareClassicType | TYPE_CLASSIC = 0 | 新增 |
+| nfctech | MifareClassicType | TYPE_UNKNOWN = -1 | 新增 |
+| nfctech | NdefTag | getNdefTagTypeString(type: NfcForumType): string; | 新增 |
+| nfctech | NdefTag | setReadOnly(): Promise\<number>;<br>setReadOnly(callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | NdefTag | canSetReadOnly(): Promise\<boolean>;<br>canSetReadOnly(callback: AsyncCallback\<boolean>): void; | 新增 |
+| nfctech | NdefTag | writeNdef(msg: NdefMessage): Promise\<number>;<br>writeNdef(msg: NdefMessage, callback: AsyncCallback\<number>): void; | 新增 |
+| nfctech | NdefTag | readNdef(): Promise\<NdefMessage>;<br>readNdef(callback: AsyncCallback\<NdefMessage>): void; | 新增 |
+| nfctech | NdefTag | isNdefWritable(): Promise\<boolean>;<br>isNdefWritable(callback: AsyncCallback\<boolean>): void; | 新增 |
+| nfctech | NdefTag | getNdefMessage(): NdefMessage; | 新增 |
+| nfctech | NdefTag | getNdefTagType(): NfcForumType; | 新增 |
+| nfctech | NdefTag | createNdefMessage(data: string): NdefMessage;<br>createNdefMessage(ndefRecords: NdefRecord[]): NdefMessage; | 新增 |
+| nfctech | NfcForumType | MIFARE_CLASSIC = 101 | 新增 |
+| nfctech | NfcForumType | NFC_FORUM_TYPE_4 = 4 | 新增 |
+| nfctech | NfcForumType | NFC_FORUM_TYPE_3 = 3 | 新增 |
+| nfctech | NfcForumType | NFC_FORUM_TYPE_2 = 2 | 新增 |
+| nfctech | NfcForumType | NFC_FORUM_TYPE_1 = 1 | 新增 |
+| nfctech | NdefMessage | messageToString(ndefMessage: NdefMessage): string; | 新增 |
+| nfctech | NdefMessage | makeExternalRecord(domainName: string, serviceName: string, externalData: string): NdefRecord; | 新增 |
+| nfctech | NdefMessage | makeMimeRecord(mimeType: string, mimeData: string): NdefRecord; | 新增 |
+| nfctech | NdefMessage | makeTextRecord(text: string, locale: string): NdefRecord; | 新增 |
+| nfctech | NdefMessage | makeUriRecord(uri: string): NdefRecord; | 新增 |
+| nfctech | NdefMessage | getNdefRecords(): NdefRecord[]; | 新增 |
+| nfctech | RtdType | RTD_URI: 'U'; | 新增 |
+| nfctech | RtdType | RTD_TEXT: 'T'; | 新增 |
+| nfctech | TnfType | TNF_UNCHANGED = 0x6 | 新增 |
+| nfctech | TnfType | TNF_UNKNOWN = 0x5 | 新增 |
+| nfctech | TnfType | TNF_EXT_APP = 0x4 | 新增 |
+| nfctech | TnfType | TNF_ABSOLUTE_URI = 0x3 | 新增 |
+| nfctech | TnfType | TNF_MEDIA = 0x2 | 新增 |
+| nfctech | TnfType | TNF_WELL_KNOWN = 0x1 | 新增 |
+| nfctech | TnfType | TNF_EMPTY = 0x0 | 新增 |
+| nfctech | NdefRecord | payload: string; | 新增 |
+| nfctech | NdefRecord | id: string; | 新增 |
+| nfctech | NdefRecord | rtdType: string; | 新增 |
+| nfctech | NdefRecord | tnf: number; | 新增 |
+| nfctech | IsoDepTag | isExtendedApduSupported(): Promise\<boolean>;<br>isExtendedApduSupported(callback: AsyncCallback\<boolean>): void; | 新增 |
+| nfctech | IsoDepTag | getHiLayerResponse(): string; | 新增 |
+| nfctech | IsoDepTag | getHistoricalBytes(): string; | 新增 |
+| ohos.bluetooth | ProfileId | PROFILE_PAN_NETWORK = 7 | 新增 |
+| ohos.bluetooth | ScanFilter | manufactureDataMask?: ArrayBuffer; | 新增 |
+| ohos.bluetooth | ScanFilter | manufactureData?: ArrayBuffer; | 新增 |
+| ohos.bluetooth | ScanFilter | manufactureId?: number; | 新增 |
+| ohos.bluetooth | ScanFilter | serviceDataMask?: ArrayBuffer; | 新增 |
+| ohos.bluetooth | ScanFilter | serviceData?: ArrayBuffer; | 新增 |
+| ohos.bluetooth | ScanFilter | serviceSolicitationUuidMask?: string; | 新增 |
+| ohos.bluetooth | ScanFilter | serviceSolicitationUuid?: string; | 新增 |
+| ohos.bluetooth | ScanFilter | serviceUuidMask?: string; | 新增 |
+| ohos.bluetooth | PanProfile | isTetheringOn(): boolean; | 新增 |
+| ohos.bluetooth | PanProfile | setTethering(enable: boolean): void; | 新增 |
+| ohos.bluetooth | PanProfile | off(type: "connectionStateChange", callback?: Callback\<StateChangeParam>): void; | 新增 |
+| ohos.bluetooth | PanProfile | on(type: "connectionStateChange", callback: Callback\<StateChangeParam>): void; | 新增 |
+| ohos.bluetooth | PanProfile | disconnect(device: string): boolean; | 新增 |
+| ohos.bluetooth | bluetooth | getProfileInst(profileId: ProfileId): A2dpSourceProfile \| HandsFreeAudioGatewayProfile \| HidHostProfile \| PanProfile; | 新增 |
+| ohos.nfc.tag | TagInfo | remoteTagService: rpc.RemoteObject; | 新增 |
+| ohos.nfc.tag | TagInfo | tagRfDiscId: number; | 新增 |
+| ohos.nfc.tag | TagInfo | extrasData: PacMap[]; | 新增 |
+| ohos.nfc.tag | TagInfo | technology: number[]; | 新增 |
+| ohos.nfc.tag | TagInfo | uid: string; | 新增 |
+| ohos.nfc.tag | tag | getNdefFormatableTag(tagInfo: TagInfo): NdefFormatableTag | 新增 |
+| ohos.nfc.tag | tag | getMifareUltralightTag(tagInfo: TagInfo): MifareUltralightTag | 新增 |
+| ohos.nfc.tag | tag | getMifareClassicTag(tagInfo: TagInfo): MifareClassicTag | 新增 |
+| ohos.nfc.tag | tag | getNdefTag(tagInfo: TagInfo): NdefTag | 新增 |
+| ohos.nfc.tag | tag | getIsoDepTag(tagInfo: TagInfo): IsoDepTag | 新增 |
+| ohos.nfc.tag | tag | const NDEF_FORMATABLE = 10; | 新增 |
+| ohos.wifi | WifiLinkedInfo | macType: number; | 新增 |
+| ohos.wifi | WifiSecurityType | WIFI_SEC_TYPE_WAPI_PSK = 9 | 新增 |
+| ohos.wifi | WifiSecurityType | WIFI_SEC_TYPE_WAPI_CERT = 8 | 新增 |
+| ohos.wifi | WifiSecurityType | WIFI_SEC_TYPE_OWE = 7 | 新增 |
+| ohos.wifi | WifiSecurityType | WIFI_SEC_TYPE_EAP_SUITE_B = 6 | 新增 |
+| ohos.wifi | WifiSecurityType | WIFI_SEC_TYPE_EAP = 5 | 新增 |
+| ohos.wifi | WifiScanInfo | infoElems: Array\<WifiInfoElem>; | 新增 |
+| ohos.wifi | WifiScanInfo | centerFrequency1: number; | 新增 |
+| ohos.wifi | WifiScanInfo | centerFrequency0: number; | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_INVALID | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_80MHZ_PLUS = 4 | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_160MHZ = 3 | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_80MHZ = 2 | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_40MHZ = 1 | 新增 |
+| ohos.wifi | WifiChannelWidth | WIDTH_20MHZ = 0 | 新增 |
+| ohos.wifi | WifiInfoElem | content: Uint8Array; | 新增 |
+| ohos.wifi | WifiInfoElem | eid: number; | 新增 |
+| ohos.wifi | WifiDeviceConfig | eapConfig: WifiEapConfig; | 新增 |
+| ohos.wifi | WifiEapConfig | eapSubId: number; | 新增 |
+| ohos.wifi | WifiEapConfig | plmn: string; | 新增 |
+| ohos.wifi | WifiEapConfig | realm: string; | 新增 |
+| ohos.wifi | WifiEapConfig | domainSuffixMatch: string; | 新增 |
+| ohos.wifi | WifiEapConfig | altSubjectMatch: string; | 新增 |
+| ohos.wifi | WifiEapConfig | clientCertAliases: string; | 新增 |
+| ohos.wifi | WifiEapConfig | caPath: string; | 新增 |
+| ohos.wifi | WifiEapConfig | caCertAliases: string; | 新增 |
+| ohos.wifi | WifiEapConfig | password: string; | 新增 |
+| ohos.wifi | WifiEapConfig | anonymousIdentity: string; | 新增 |
+| ohos.wifi | WifiEapConfig | identity: string; | 新增 |
+| ohos.wifi | WifiEapConfig | phase2Method: Phase2Method; | 新增 |
+| ohos.wifi | WifiEapConfig | eapMethod: EapMethod; | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_AKA_PRIME | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_AKA | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_SIM | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_GTC | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_MSCHAPV2 | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_MSCHAP | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_PAP | 新增 |
+| ohos.wifi | Phase2Method | PHASE2_NONE | 新增 |
+| ohos.wifi | EapMethod | EAP_UNAUTH_TLS | 新增 |
+| ohos.wifi | EapMethod | EAP_AKA_PRIME | 新增 |
+| ohos.wifi | EapMethod | EAP_AKA | 新增 |
+| ohos.wifi | EapMethod | EAP_SIM | 新增 |
+| ohos.wifi | EapMethod | EAP_PWD | 新增 |
+| ohos.wifi | EapMethod | EAP_TTLS | 新增 |
+| ohos.wifi | EapMethod | EAP_TLS | 新增 |
+| ohos.wifi | EapMethod | EAP_PEAP | 新增 |
+| ohos.wifi | EapMethod | EAP_NONE | 新增 |
+| ohos.wifi | wifi | getP2pGroups(): Promise\<Array\<WifiP2pGroupInfo>>;<br>getP2pGroups(callback: AsyncCallback\<Array\<WifiP2pGroupInfo>>): void; | 新增 |
+| ohos.wifi | wifi | getP2pLocalDevice(): Promise\<WifiP2pDevice>;<br>getP2pLocalDevice(callback: AsyncCallback\<WifiP2pDevice>): void; | 新增 |
+| ohos.wifi | wifi | connectToCandidateConfig(networkId: number): void; | 新增 |
+| ohos.wifi | wifi | getCandidateConfigs(): Array\<WifiDeviceConfig>; | 新增 |
+| ohos.wifi | wifi | removeCandidateConfig(networkId: number): Promise\<void>;<br>removeCandidateConfig(networkId: number, callback: AsyncCallback\<void>): void; | 新增 |
+| ohos.wifi | wifi | addCandidateConfig(config: WifiDeviceConfig): Promise\<number>;<br>addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.wifi | wifi | getScanInfosSync(): Array\<WifiScanInfo>; | 新增 |
+| ohos.bluetooth | A2dpSourceProfile | getPlayingState(device: string): PlayingState; | 废弃 |
+| ohos.nfc.tag | TagInfo | supportedProfiles: number[]; | 废弃 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-complier-and-runtime.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-complier-and-runtime.md
new file mode 100644
index 0000000000000000000000000000000000000000..26156bf385cd5536cb9be029d7cc33708903970a
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-complier-and-runtime.md
@@ -0,0 +1,9 @@
+# 公共基础库子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,公共基础库子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.util | util | promisify(original: (err: Object, value: Object) => void): Function; | 新增 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-dfx.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-dfx.md
new file mode 100644
index 0000000000000000000000000000000000000000..0bf067aeb367bae5d77c05e9750a5e57a7237a72
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-dfx.md
@@ -0,0 +1,37 @@
+# DFX子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,DFX子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.hiSysEvent | hiSysEvent | query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): number; | 新增 |
+| ohos.hiSysEvent | hiSysEvent | removeWatcher(wathcer: Watcher): number; | 新增 |
+| ohos.hiSysEvent | hiSysEvent | addWatcher(watcher: Watcher): number; | 新增 |
+| ohos.hiSysEvent | Querier | onComplete: (reason: number, total: number) => void; | 新增 |
+| ohos.hiSysEvent | Querier | onQuery: (infos: SysEventInfo[], seqs: number[]) => void; | 新增 |
+| ohos.hiSysEvent | QueryRule | names: string[]; | 新增 |
+| ohos.hiSysEvent | QueryRule | domain: string; | 新增 |
+| ohos.hiSysEvent | QueryArg | maxEvents: number; | 新增 |
+| ohos.hiSysEvent | QueryArg | endTime: number; | 新增 |
+| ohos.hiSysEvent | QueryArg | beginTime: number; | 新增 |
+| ohos.hiSysEvent | Watcher | onServiceDied: () => void; | 新增 |
+| ohos.hiSysEvent | Watcher | onEvent: (info: SysEventInfo) => void; | 新增 |
+| ohos.hiSysEvent | Watcher | rules: WatchRule[]; | 新增 |
+| ohos.hiSysEvent | WatchRule | ruleType: RuleType; | 新增 |
+| ohos.hiSysEvent | WatchRule | tag: string; | 新增 |
+| ohos.hiSysEvent | WatchRule | name: string; | 新增 |
+| ohos.hiSysEvent | WatchRule | domain: string; | 新增 |
+| ohos.hiSysEvent | RuleType | REGULAR = 3 | 新增 |
+| ohos.hiSysEvent | RuleType | PREFIX = 2 | 新增 |
+| ohos.hiSysEvent | RuleType | WHOLE_WORD = 1 | 新增 |
+| ohos.hiSysEvent | hiSysEvent | write(info: SysEventInfo): Promise\<void>;<br>write(info: SysEventInfo, callback: AsyncCallback\<void>): void; | 新增 |
+| ohos.hiSysEvent | SysEventInfo | params: object; | 新增 |
+| ohos.hiSysEvent | SysEventInfo | eventType: EventType; | 新增 |
+| ohos.hiSysEvent | SysEventInfo | name: string; | 新增 |
+| ohos.hiSysEvent | SysEventInfo | domain: string; | 新增 |
+| ohos.hiSysEvent | EventType | BEHAVIOR = 4 | 新增 |
+| ohos.hiSysEvent | EventType | SECURITY = 3 | 新增 |
+| ohos.hiSysEvent | EventType | STATISTIC = 2 | 新增 |
+| ohos.hiSysEvent | EventType | FAULT = 1 | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-distributed-data.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-distributed-data.md
new file mode 100644
index 0000000000000000000000000000000000000000..344e734bf53cb75dd71c978d32b7a9aa2937dbec
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-distributed-data.md
@@ -0,0 +1,91 @@
+# 分布式数据管理子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,分布式数据管理子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.data.dataShare | DataShareHelper | notifyChange(uri: string, callback: AsyncCallback\<void>): void;<br>notifyChange(uri: string): Promise\<void>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | denormalizeUri(uri: string, callback: AsyncCallback\<string>): void;<br>denormalizeUri(uri: string): Promise\<string>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | normalizeUri(uri: string, callback: AsyncCallback\<string>): void;<br>normalizeUri(uri: string): Promise\<string>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | getFileTypes(uri: string,  mimeTypeFilter:string, callback: AsyncCallback\<Array\<string>>): void;<br>getFileTypes(uri: string,  mimeTypeFilter: string): Promise\<Array\<string>>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | getType(uri: string, callback: AsyncCallback\<string>): void;<br>getType(uri: string): Promise\<string>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | batchInsert(uri: string, values: Array\<ValuesBucket>, callback: AsyncCallback\<number>): void;<br>batchInsert(uri: string, values: Array\<ValuesBucket>): Promise\<number>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback\<number>): void;<br>update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket): Promise\<number>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array\<string>, callback: AsyncCallback\<DataShareResultSet>): void;<br>query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array\<string>): Promise\<DataShareResultSet>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback\<number>): void;<br>delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promise\<number>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | insert(uri: string, value: ValuesBucket, callback: AsyncCallback\<number>): void;<br>insert(uri: string, value: ValuesBucket): Promise\<number>; | 新增 |
+| ohos.data.dataShare | DataShareHelper | off(type: 'dataChange', uri: string, callback?: AsyncCallback\<void>): void; | 新增 |
+| ohos.data.dataShare | DataShareHelper | on(type: 'dataChange', uri: string, callback: AsyncCallback\<void>): void; | 新增 |
+| ohos.data.dataShare | DataShareHelper | openFile(uri: string, mode: string, callback: AsyncCallback\<number>): void;<br>openFile(uri: string, mode: string): Promise\<number>; | 新增 |
+| ohos.data.dataShare | dataShare | function createDataShareHelper(context: Context, uri: string, callback: AsyncCallback\<DataShareHelper>): void;<br>function createDataShareHelper(context: Context, uri: string): Promise\<DataShareHelper>; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | inKeys(keys: Array\<string>): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | prefixKey(prefix: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | notIn(field: string, value: Array\<ValueType>): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | in(field: string, value: Array\<ValueType>): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | indexedBy(field: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | groupBy(fields: Array\<string>): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | limit(total: number, offset: number): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | distinct(): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | orderByDesc(field: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | orderByAsc(field: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | lessThan(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | greaterThan(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | between(field: string, low: ValueType, high: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | glob(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | unlike(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | like(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | isNotNull(field: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | isNull(field: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | endsWith(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | beginsWith(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | contains(field: string, value: string): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | and(): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | or(): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | endWrap(): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | beginWrap(): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | notEqualTo(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.dataSharePredicates | DataSharePredicates | equalTo(field: string, value: ValueType): DataSharePredicates; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getDataType(columnIndex: number): DataType; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getColumnName(columnIndex: number): string; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getColumnIndex(columnName: string): number; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | close(): void; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getDouble(columnIndex: number): number; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getLong(columnIndex: number): number; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getString(columnIndex: number): string; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | getBlob(columnIndex: number): Uint8Array; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goToRow(position: number): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goTo(offset: number): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goToPreviousRow(): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goToNextRow(): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goToLastRow(): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | goToFirstRow(): boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | isClosed: boolean; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | rowCount: number; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | columnCount: number; | 新增 |
+| ohos.data.DataShareResultSet | DataShareResultSet | columnNames: Array\<string>; | 新增 |
+| ohos.data.DataShareResultSet | DataType | TYPE_BLOB = 4 | 新增 |
+| ohos.data.DataShareResultSet | DataType | TYPE_STRING = 3 | 新增 |
+| ohos.data.DataShareResultSet | DataType | TYPE_DOUBLE = 2 | 新增 |
+| ohos.data.DataShareResultSet | DataType | TYPE_LONG = 1 | 新增 |
+| ohos.data.DataShareResultSet | DataType | TYPE_NULL = 0 | 新增 |
+| ohos.data.distributedData | DeviceKVStore | off(event:'dataChange', listener?: Callback\<ChangeNotification>): void; | 新增 |
+| ohos.data.distributedData | DeviceKVStore | on(event: 'dataChange', type: SubscribeType, listener: Callback\<ChangeNotification>): void; | 新增 |
+| ohos.data.distributedData | SingleKVStore | off(event:'dataChange', listener?: Callback\<ChangeNotification>): void; | 新增 |
+| ohos.data.distributedData | SingleKVStore | on(event: 'dataChange', type: SubscribeType, listener: Callback\<ChangeNotification>): void; | 新增 |
+| ohos.data.distributedData | KVStore | off(event: 'syncComplete', syncCallback?: Callback\<Array\<[string, number]>>): void; | 新增 |
+| ohos.data.distributedData | KVManagerConfig | context: Context; | 新增 |
+| ohos.data.distributedDataObject | DistributedObject | revokeSave(callback: AsyncCallback\<RevokeSaveSuccessResponse>): void;<br>revokeSave(): Promise\<RevokeSaveSuccessResponse>; | 新增 |
+| ohos.data.distributedDataObject | DistributedObject | save(deviceId: string, callback: AsyncCallback\<SaveSuccessResponse>): void;<br>save(deviceId: string): Promise\<SaveSuccessResponse>; | 新增 |
+| ohos.data.distributedDataObject | RevokeSaveSuccessResponse | sessionId: string; | 新增 |
+| ohos.data.distributedDataObject | SaveSuccessResponse | deviceId: string; | 新增 |
+| ohos.data.distributedDataObject | SaveSuccessResponse | version: number; | 新增 |
+| ohos.data.distributedDataObject | SaveSuccessResponse | sessionId: string; | 新增 |
+| ohos.data.rdb | RdbStore | restore(srcName:string, callback: AsyncCallback\<void>):void;<br>restore(srcName:string): Promise\<void>; | 新增 |
+| ohos.data.rdb | RdbStore | backup(destName:string, callback: AsyncCallback\<void>):void;<br>backup(destName:string): Promise\<void>; | 新增 |
+
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-event-and-notification.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-event-and-notification.md
new file mode 100644
index 0000000000000000000000000000000000000000..9b21c15e940377202de677db0defde261568d24a
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-event-and-notification.md
@@ -0,0 +1,15 @@
+# 事件通知子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,事件通知子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| notificationRequest | NotificationRequest | badgeNumber?: number; | 新增 |
+| notificationRequest | NotificationRequest | removalWantAgent?: WantAgent; | 新增 |
+| ohos.commonEvent | Support | COMMON_EVENT_SPN_INFO_CHANGED = "usual.event.SPN_INFO_CHANGED" | 新增 |
+| ohos.commonEvent | Support | COMMON_EVENT_SLOT_CHANGE = "usual.event.SLOT_CHANGE" | 新增 |
+| ohos.notification | notification | getSyncNotificationEnabledForUninstallApp(userId: number, callback: AsyncCallback\<boolean>): void;<br>getSyncNotificationEnabledForUninstallApp(userId: number): Promise\<boolean>; | 新增 |
+| ohos.notification | notification | setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean, callback: AsyncCallback\<void>): void;<br>setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean): Promise\<void>; | 新增 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-file-management.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-file-management.md
new file mode 100644
index 0000000000000000000000000000000000000000..05aff45189bae78ea6a4377f7a2a32a1283df3b5
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-file-management.md
@@ -0,0 +1,14 @@
+# 文件管理子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,文件管理子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.volumeManager | Volume | diskId: string; | 新增 |
+| ohos.volumeManager | volumeManager | partition(volId: string, fstype: string, callback: AsyncCallback\<void>): void;<br>partition(volId: string, fstype: string): Promise\<void>; | 变更 |
+| ohos.volumeManager | volumeManager | format(volId: string, callback: AsyncCallback\<void>): void;<br>format(volId: string): Promise\<void>; | 变更 |
+| ohos.volumeManager | volumeManager | old :<br>getVolumeById(id: string, callback: AsyncCallback\<Volume>): void;<br>getVolumeById(id: string): Promise\<Volume>;<br>new :<br>getVolumeById(volumeId: string, callback: AsyncCallback\<Volume>): void;<br>getVolumeById(volumeId: string): Promise\<Volume> | 变更 |
+| ohos.volumeManager | volumeManager | old :<br>format(volId: string, callback: AsyncCallback\<void>): void;<br>format(volId: string): Promise\<void>;<br>new :<br>format(volumeId: string, fsType: string, callback: AsyncCallback\<void>): void;<br>format(volumeId: string, fsType: string): Promise\<void>; | 变更 |
+| ohos.volumeManager | volumeManager | old :<br>partition(volId: string, fstype: string, callback: AsyncCallback\<void>): void;<br>partition(volId: string, fstype: string): Promise\<void>;<br>new :<br>partition(diskId: string, type: number, callback: AsyncCallback\<void>): void;<br>partition(diskId: string, type: number): Promise\<void>; | 变更 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-geolocation.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-geolocation.md
new file mode 100644
index 0000000000000000000000000000000000000000..cc1e7691c26454ea153114f8ee2938eb8bac878c
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-geolocation.md
@@ -0,0 +1,32 @@
+# 位置服务子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,位置服务子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.geolocation | CountryCodeType | COUNTRY_CODE_FROM_NETWORK | 新增 |
+| ohos.geolocation | CountryCodeType | COUNTRY_CODE_FROM_LOCATION | 新增 |
+| ohos.geolocation | CountryCodeType | COUNTRY_CODE_FROM_SIM | 新增 |
+| ohos.geolocation | CountryCodeType | COUNTRY_CODE_FROM_LOCALE = 1 | 新增 |
+| ohos.geolocation | CountryCode | type: CountryCodeType; | 新增 |
+| ohos.geolocation | CountryCode | country: string; | 新增 |
+| ohos.geolocation | GeoLocationErrorCode | QUERY_COUNTRY_CODE_ERROR | 新增 |
+| ohos.geolocation | GeoLocationErrorCode | NOT_SUPPORTED = 100 | 新增 |
+| ohos.geolocation | Location | isFromMock: Boolean; | 新增 |
+| ohos.geolocation | GeoAddress | isFromMock: Boolean; | 新增 |
+| ohos.geolocation | LocationMockConfig | locations: Array\<Location>; | 新增 |
+| ohos.geolocation | LocationMockConfig | timeInterval: number; | 新增 |
+| ohos.geolocation | ReverseGeocodingMockInfo | geoAddress: GeoAddress; | 新增 |
+| ohos.geolocation | ReverseGeocodingMockInfo | location: ReverseGeoCodeRequest; | 新增 |
+| ohos.geolocation | geolocation | setReverseGeocodingMockInfo(mockInfos: Array\<ReverseGeocodingMockInfo>, callback: AsyncCallback\<void>) : void;<br>setReverseGeocodingMockInfo(mockInfos: Array\<ReverseGeocodingMockInfo>) : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | disableReverseGeocodingMock(callback: AsyncCallback\<void>) : void;<br>disableReverseGeocodingMock() : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | enableReverseGeocodingMock(callback: AsyncCallback\<void>) : void;<br>enableReverseGeocodingMock() : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | setMockedLocations(config: LocationMockConfig, callback: AsyncCallback\<void>) : void;<br>setMockedLocations(config: LocationMockConfig) : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | disableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback\<void>) : void;<br>disableLocationMock(scenario?: LocationRequestScenario) : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | enableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback\<void>) : void;<br>enableLocationMock(scenario?: LocationRequestScenario) : Promise\<void>; | 新增 |
+| ohos.geolocation | geolocation | getCountryCode(callback: AsyncCallback\<CountryCode>) : void;<br>getCountryCode() : Promise\<CountryCode>; | 新增 |
+| ohos.geolocation | geolocation | off(type: 'countryCodeChange', callback?: Callback\<CountryCode>) : void; | 新增 |
+| ohos.geolocation | geolocation | on(type: 'countryCodeChange', callback: Callback\<CountryCode>) : void; | 新增 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-global.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-global.md
new file mode 100644
index 0000000000000000000000000000000000000000..dad55539edc028b5f849bbdab285cf52d8fc0686
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-global.md
@@ -0,0 +1,33 @@
+# 全球化子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,全球化子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.EnterpriseAdminExtensionAbility | EnterpriseAdminExtensionAbility | onAdminDisabled(): void; | 新增 |
+| ohos.EnterpriseAdminExtensionAbility | EnterpriseAdminExtensionAbility | onAdminEnabled(): void; | 新增 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | isAdminEnabled(admin: Want, callback: AsyncCallback\<boolean>): void;<br>isAdminEnabled(admin: Want, userId: number, callback: AsyncCallback\<boolean>): void;<br>isAdminEnabled(admin: Want, userId?: number): Promise\<boolean>; | 新增 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | disableSuperAdmin(bundleName: String, callback: AsyncCallback\<boolean>): void;<br>disableSuperAdmin(bundleName: String): Promise\<boolean>; | 新增 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | disableAdmin(admin: Want, callback: AsyncCallback\<boolean>): void;<br>disableAdmin(admin: Want, userId: number, callback: AsyncCallback\<boolean>): void;<br>disableAdmin(admin: Want, userId?: number): Promise\<boolean>; | 新增 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callback: AsyncCallback\<boolean>): void;<br>enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId: number, callback: AsyncCallback\<boolean>): void;<br>enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId?: number): Promise\<boolean>; | 新增 |
+| ohos.i18n | i18n | getUsingLocalDigit(): boolean; | 新增 |
+| ohos.i18n | i18n | setUsingLocalDigit(flag: boolean): boolean; | 新增 |
+| ohos.i18n | Transliterator | transform(text: string): string; | 新增 |
+| ohos.i18n | Transliterator | static getInstance(id: string): Transliterator; | 新增 |
+| ohos.i18n | Transliterator | static getAvailableIDs(): string[]; | 新增 |
+| ohos.i18n | TimeZone | static getTimezoneFromCity(cityID: string): TimeZone; | 新增 |
+| ohos.i18n | TimeZone | static getCityDisplayName(cityID: string, locale: string): string; | 新增 |
+| ohos.i18n | TimeZone | static getAvailableZoneCityIDs(): Array\<string>; | 新增 |
+| ohos.i18n | TimeZone | static getAvailableIDs(): Array\<string>; | 新增 |
+| ohos.i18n | PhoneNumberFormat | getLocationName(number: string, locale: string): string; | 新增 |
+| ohos.i18n | Util | getDateOrder(locale: string): string; | 新增 |
+| resource | Resource | id: number; | 新增 |
+| resource | Resource | moduleName: string; | 新增 |
+| resource | Resource | bundleName: string; | 新增 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | isAdminAppActive(admin: Want, callback: AsyncCallback\<boolean>): void;<br>isAdminAppActive(admin: Want): Promise\<boolean>; | 删除 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | deactivateSuperAdmin(bundleName: String, callback: AsyncCallback\<boolean>): void;<br>deactivateSuperAdmin(bundleName: String): Promise\<boolean>; | 删除 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | deactivateAdmin(admin: Want, callback: AsyncCallback\<boolean>): void;<br>deactivateAdmin(admin: Want): Promise\<boolean>; | 删除 |
+| ohos.enterpriseDeviceManager | enterpriseDeviceManager | activateAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callback: AsyncCallback\<boolean>): void;<br>activateAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType): Promise\<boolean>; | 删除 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-graphic.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-graphic.md
new file mode 100644
index 0000000000000000000000000000000000000000..81fcd04c71a421ebbdcade6726423171d034ea39
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-graphic.md
@@ -0,0 +1,20 @@
+# 图形图像子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,图形图像子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.effectKit | effectKit | createColorPicker(source: image.PixelMap): Promise\<ColorPicker>;<br>function createColorPicker(source: image.PixelMap, callback: AsyncCallback\<ColorPicker>): void; | 新增 |
+| ohos.effectKit | effectKit | createEffect(source: image.PixelMap): Filter; | 新增 |
+| ohos.effectKit | Color | alpha: number; | 新增 |
+| ohos.effectKit | Color | blue: number; | 新增 |
+| ohos.effectKit | Color | green: number; | 新增 |
+| ohos.effectKit | Color | red: number; | 新增 |
+| ohos.effectKit | ColorPicker | getMainColorSync(): Color; | 新增 |
+| ohos.effectKit | ColorPicker | getMainColor(): Promise\<Color>; | 新增 |
+| ohos.effectKit | Filter | getPixelMap(): image.PixelMap; | 新增 |
+| ohos.effectKit | Filter | grayscale(): Filter; | 新增 |
+| ohos.effectKit | Filter | brightness(bright:number): Filter; | 新增 |
+| ohos.effectKit | Filter | blur(radius:number): Filter; | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-misc.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-misc.md
new file mode 100644
index 0000000000000000000000000000000000000000..3864cc5a9292d4f8013397a50344a721b8f8f3ed
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-misc.md
@@ -0,0 +1,10 @@
+# 杂散软件服务子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,杂散软件服务子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 方法/事件名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.inputmethod | inputMethod | switchInputMethod(target: InputMethodProperty, callback: AsyncCallback\<boolean>): void;<br>switchInputMethod(target: InputMethodProperty): Promise\<boolean>; | 新增 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multi-modal-input.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multi-modal-input.md
new file mode 100644
index 0000000000000000000000000000000000000000..52418335985f71ab825b3e0c475d9ee028e418cf
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multi-modal-input.md
@@ -0,0 +1,10 @@
+# 多模输入子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,多模输入子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.multimodalInput.inputMonitor | inputMonitor | off(type:"mouse", receiver?:Callback\<MouseEvent>):void; | 新增 |
+| ohos.multimodalInput.inputMonitor | inputMonitor | on(type:"mouse", receiver:Callback\<MouseEvent>):void; | 新增 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multimedia.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multimedia.md
new file mode 100644
index 0000000000000000000000000000000000000000..829b4213767d943c2c53f038753a9a97accd0226
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-multimedia.md
@@ -0,0 +1,67 @@
+# 媒体子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,媒体子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.multimedia.audio | AudioRenderer | setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void;<br>setInterruptMode(mode: InterruptMode): Promise\<void>; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly channelMasks: Array\<number>; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly channelCounts: Array\<number>; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly sampleRates: Array\<number>; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly address: string; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly name: string; | 新增 |
+| ohos.multimedia.audio | AudioDeviceDescriptor | readonly id: number; | 新增 |
+| ohos.multimedia.audio | AudioCapturerChangeInfo | readonly deviceDescriptors: AudioDeviceDescriptors; | 新增 |
+| ohos.multimedia.audio | AudioCapturerChangeInfo | readonly capturerState: AudioState; | 新增 |
+| ohos.multimedia.audio | AudioCapturerChangeInfo | readonly capturerInfo: AudioCapturerInfo; | 新增 |
+| ohos.multimedia.audio | AudioCapturerChangeInfo | readonly clientUid: number; | 新增 |
+| ohos.multimedia.audio | AudioCapturerChangeInfo | readonly streamId: number; | 新增 |
+| ohos.multimedia.audio | AudioRendererChangeInfo | readonly deviceDescriptors: AudioDeviceDescriptors; | 新增 |
+| ohos.multimedia.audio | AudioRendererChangeInfo | readonly rendererState: AudioState; | 新增 |
+| ohos.multimedia.audio | AudioRendererChangeInfo | readonly rendererInfo: AudioRendererInfo; | 新增 |
+| ohos.multimedia.audio | AudioRendererChangeInfo | readonly clientUid: number; | 新增 |
+| ohos.multimedia.audio | AudioRendererChangeInfo | readonly streamId: number; | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | off(type: "audioCapturerChange"); | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | on(type: "audioCapturerChange", callback: Callback\<AudioCapturerChangeInfoArray>): void; | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | off(type: "audioRendererChange"); | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | on(type: "audioRendererChange", callback: Callback\<AudioRendererChangeInfoArray>): void; | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | getCurrentAudioCapturerInfoArray(callback: AsyncCallback\<AudioCapturerChangeInfoArray>): void;<br>getCurrentAudioCapturerInfoArray(): Promise\<AudioCapturerChangeInfoArray>; | 新增 |
+| ohos.multimedia.audio | AudioStreamManager | getCurrentAudioRendererInfoArray(callback: AsyncCallback\<AudioRendererChangeInfoArray>): void;<br>getCurrentAudioRendererInfoArray(): Promise\<AudioRendererChangeInfoArray>; | 新增 |
+| ohos.multimedia.audio | AudioManager | getStreamManager(callback: AsyncCallback\<AudioStreamManager>): void;<br>getStreamManager(): Promise\<AudioStreamManager>; | 新增 |
+| ohos.multimedia.audio | AudioManager | off(type: 'independentInterrupt', callback?: Callback\<InterruptEvent>): void; | 新增 |
+| ohos.multimedia.audio | AudioManager | on(type: 'independentInterrupt', callback: Callback\<InterruptEvent>): void; | 新增 |
+| ohos.multimedia.audio | AudioManager | abandonIndependentInterrupt(focusType: FocusType, callback: AsyncCallback\<boolean>): void;<br>abandonIndependentInterrupt(focusType: FocusType): Promise\<boolean>; | 新增 |
+| ohos.multimedia.audio | AudioManager | requestIndependentInterrupt(focusType: FocusType, callback: AsyncCallback\<boolean>): void;<br>requestIndependentInterrupt(focusType: FocusType): Promise\<boolean>; | 新增 |
+| ohos.multimedia.audio | InterruptMode | INDEPENDENT_MODE = 1 | 新增 |
+| ohos.multimedia.audio | InterruptMode | SHARE_MODE = 0 | 新增 |
+| ohos.multimedia.audio | FocusType | FOCUS_TYPE_RECORDING = 0 | 新增 |
+| ohos.multimedia.audio | AudioSampleFormat | SAMPLE_FORMAT_F32LE = 4 | 新增 |
+| ohos.multimedia.audio | AudioVolumeType | ALL = 100 | 新增 |
+| ohos.multimedia.image | PixelMap | crop(region: Region, callback: AsyncCallback\<void>): void;<br>crop(region: Region): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | flip(horizontal: boolean, vertical: boolean, callback: AsyncCallback\<void>): void;<br>flip(horizontal: boolean, vertical: boolean): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | rotate(angle: number, callback: AsyncCallback\<void>): void;<br>rotate(angle: number): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | translate(x: number, y: number, callback: AsyncCallback\<void>): void;<br>translate(x: number, y: number): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | scale(x: number, y: number, callback: AsyncCallback\<void>): void;<br>scale(x: number, y: number): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | createAlphaPixelmap(): Promise\<PixelMap>;<br>createAlphaPixelmap(callback: AsyncCallback\<PixelMap>): void; | 新增 |
+| ohos.multimedia.image | PixelMap | opacity(rate: number, callback: AsyncCallback\<void>): void;<br>opacity(rate: number): Promise\<void>; | 新增 |
+| ohos.multimedia.image | PixelMap | getDensity():number; | 新增 |
+| ohos.multimedia.image | SourceOptions | sourceSize?: Size; | 新增 |
+| ohos.multimedia.image | SourceOptions | sourcePixelFormat?: PixelMapFormat; | 新增 |
+| ohos.multimedia.image | SourceOptions | sourceDensity: number; | 新增 |
+| ohos.multimedia.media | VideoScaleType | VIDEO_SCALE_TYPE_FIT_CROP | 新增 |
+| ohos.multimedia.media | VideoScaleType | VIDEO_SCALE_TYPE_FIT = 0 | 新增 |
+| ohos.multimedia.media | VideoPlayer | on(type: 'availableBitratesCollected', callback: (bitrates: Array\<number>) => void): void | 新增 |
+| ohos.multimedia.media | VideoPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void; | 新增 |
+| ohos.multimedia.media | VideoPlayer | selectBitrate(bitrate: number): Promise\<number>;<br>selectBitrate(bitrate: number, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.multimedia.media | VideoPlayer | videoScaleType ?: VideoScaleType; | 新增 |
+| ohos.multimedia.media | VideoPlayer | audioInterruptMode ?: audio.InterruptMode; | 新增 |
+| ohos.multimedia.media | VideoPlayer | fdSrc: AVFileDescriptor; | 新增 |
+| ohos.multimedia.media | AudioPlayer | on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void; | 新增 |
+| ohos.multimedia.media | AudioPlayer | audioInterruptMode ?: audio.InterruptMode; | 新增 |
+| ohos.multimedia.media | AudioPlayer | fdSrc: AVFileDescriptor; | 新增 |
+| ohos.multimedia.media | AVFileDescriptor | length?: number | 新增 |
+| ohos.multimedia.media | AVFileDescriptor | offset?: number | 新增 |
+| ohos.multimedia.media | AVFileDescriptor | fd: number | 新增 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-resource-scheduler.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-resource-scheduler.md
new file mode 100644
index 0000000000000000000000000000000000000000..2d84ced6d3519b3d71c7c9d13dd7e554cdab1a37
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-resource-scheduler.md
@@ -0,0 +1,29 @@
+# 资源调度子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,资源调度子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.bundleState | bundleState | queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback\<Array\<BundleActiveEventState>>): void;<br>queryAppNotificationNumber(begin: number, end: number): Promise\<Array\<BundleActiveEventState>>; | 新增 |
+| ohos.bundleState | bundleState | queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback\<Array\<BundleActiveEventState>>): void;<br>queryBundleActiveEventStates(begin: number, end: number): Promise\<Array\<BundleActiveEventState>>; | 新增 |
+| ohos.bundleState | bundleState | unRegisterGroupCallBack(callback: AsyncCallback\<void>): void;<br>unRegisterGroupCallBack(): Promise\<void>; | 新增 |
+| ohos.bundleState | bundleState | registerGroupCallBack(callback: Callback\<BundleActiveGroupCallbackInfo>, callback: AsyncCallback\<void>): void;<br>registerGroupCallBack(callback: Callback\<BundleActiveGroupCallbackInfo>): Promise\<void>; | 新增 |
+| ohos.bundleState | bundleState | setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback\<void>): void;<br>setBundleGroup(bundleName: string, newGroup: GroupType): Promise\<void>; | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_NEVER = 60 | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_LIMIT = 50 | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_RARE = 40 | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_FIXED = 30 | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_DAILY = 20 | 新增 |
+| ohos.bundleState | GroupType | ACTIVE_GROUP_ALIVE = 10 | 新增 |
+| ohos.bundleState | BundleActiveGroupCallbackInfo | bundleName: string; | 新增 |
+| ohos.bundleState | BundleActiveGroupCallbackInfo | changeReason: number; | 新增 |
+| ohos.bundleState | BundleActiveGroupCallbackInfo | userId: number; | 新增 |
+| ohos.bundleState | BundleActiveGroupCallbackInfo | appUsageNewGroup: number; | 新增 |
+| ohos.bundleState | BundleActiveGroupCallbackInfo | appUsageOldGroup: number; | 新增 |
+| ohos.bundleState | BundleActiveEventState | count: number; | 新增 |
+| ohos.bundleState | BundleActiveEventState | eventId: number; | 新增 |
+| ohos.bundleState | BundleActiveEventState | name: string; | 新增 |
+
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-security.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-security.md
new file mode 100644
index 0000000000000000000000000000000000000000..082f64e179f9d95cb947d418670c846ce029a245
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-security.md
@@ -0,0 +1,55 @@
+# 安全子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,安全子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.privacyManager | UsedRecordDetail | accessDuration: number; | 新增 |
+| ohos.privacyManager | UsedRecordDetail | timestamp: number; | 新增 |
+| ohos.privacyManager | UsedRecordDetail | status: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | rejectRecords: Array\<UsedRecordDetail>; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | accessRecords: Array\<UsedRecordDetail>; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | lastAccessDuration: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | lastRejectTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | lastAccessTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | rejectCount: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | accessCount: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRecord | permissionName: string; | 新增 |
+| ohos.privacyManager | BundleUsedRecord | permissionRecords: Array\<PermissionUsedRecord>; | 新增 |
+| ohos.privacyManager | BundleUsedRecord | bundleName: string; | 新增 |
+| ohos.privacyManager | BundleUsedRecord | deviceId: string; | 新增 |
+| ohos.privacyManager | BundleUsedRecord | isRemote: boolean; | 新增 |
+| ohos.privacyManager | BundleUsedRecord | tokenId: number; | 新增 |
+| ohos.privacyManager | PermissionUsedResponse | bundleRecords: Array\<BundleUsedRecord>; | 新增 |
+| ohos.privacyManager | PermissionUsedResponse | endTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedResponse | beginTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | flag: PermissionUsageFlag; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | endTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | beginTime: number; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | permissionNames: Array\<string>; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | bundleName: string; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | deviceId: string; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | isRemote: boolean; | 新增 |
+| ohos.privacyManager | PermissionUsedRequest | tokenId: number; | 新增 |
+| ohos.privacyManager | PermissionUsageFlag | FLAG_PERMISSION_USAGE_DETAIL = 1 | 新增 |
+| ohos.privacyManager | PermissionUsageFlag | FLAG_PERMISSION_USAGE_SUMMARY = 0 | 新增 |
+| ohos.privacyManager | privacyManager | getPermissionUsedRecords(request: PermissionUsedRequest): Promise\<PermissionUsedResponse>;<br>getPermissionUsedRecords(request: PermissionUsedRequest, callback: AsyncCallback\<PermissionUsedResponse>): void; | 新增 |
+| ohos.privacyManager | privacyManager | addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise\<number>;<br>addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback\<number>): void; | 新增 |
+| ohos.security.huks | HuksTag | HUKS_TAG_UNWRAP_ALGORITHM_SUITE = HuksTagType.HUKS_TAG_TYPE_UINT \| 26 | 新增 |
+| ohos.security.huks | HuksTag | HUKS_TAG_IMPORT_KEY_TYPE = HuksTagType.HUKS_TAG_TYPE_UINT \| 25 | 新增 |
+| ohos.security.huks | HuksImportKeyType | HUKS_KEY_TYPE_KEY_PAIR = 2 | 新增 |
+| ohos.security.huks | HuksImportKeyType | HUKS_KEY_TYPE_PRIVATE_KEY = 1 | 新增 |
+| ohos.security.huks | HuksImportKeyType | HUKS_KEY_TYPE_PUBLIC_KEY = 0 | 新增 |
+| ohos.security.huks | HuksUnwrapSuite | HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2 | 新增 |
+| ohos.security.huks | HuksUnwrapSuite | HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1 | 新增 |
+| ohos.security.huks | HuksKeyAlg | HUKS_ALG_SM4 = 152 | 新增 |
+| ohos.security.huks | HuksKeyAlg | HUKS_ALG_SM3 = 151 | 新增 |
+| ohos.security.huks | HuksKeyAlg | HUKS_ALG_SM2 = 150 | 新增 |
+| ohos.security.huks | HuksKeySize | HUKS_SM4_KEY_SIZE_128 = 128 | 新增 |
+| ohos.security.huks | HuksKeySize | HUKS_SM2_KEY_SIZE_256 = 256 | 新增 |
+| ohos.security.huks | HuksKeyDigest | HUKS_DIGEST_SM3 = 2 | 新增 |
+| ohos.security.huks | HuksErrorCode | HUKS_ERROR_INVALID_USAGE_OF_KEY = -127 | 新增 |
+| ohos.security.huks | HuksErrorCode | HUKS_ERROR_INVALID_WRAPPED_FORMAT = -126 | 新增 |
+| ohos.security.huks | huks | importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void;<br>importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOptions) : Promise\<HuksResult>; | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-sensor.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-sensor.md
new file mode 100644
index 0000000000000000000000000000000000000000..e2a16af8a470e34b6e1dafe7dd332391576cb4b8
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-sensor.md
@@ -0,0 +1,22 @@
+# 泛Sensor子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,泛Sensor子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.sensor | SensorType | SENSOR_TYPE_ID_HEART_BEAT_RATE = 278 | 新增 |
+| ohos.sensor | SensorType | SENSOR_TYPE_ID_LINEAR_ACCELEROMETER = 258 | 新增 |
+| ohos.sensor | sensor | getSensorLists(callback: AsyncCallback\<Array\<Sensor>>): void;<br>getSensorLists(): Promise\<Array\<Sensor>>; | 新增 |
+| ohos.sensor | sensor | getSingleSensor(type: SensorType, callback: AsyncCallback\<Sensor>): void;<br>getSingleSensor(type: SensorType): Promise\<Sensor>; | 新增 |
+| ohos.sensor | Sensor | power:number; | 新增 |
+| ohos.sensor | Sensor | precision:number; | 新增 |
+| ohos.sensor | Sensor | maxRange:number; | 新增 |
+| ohos.sensor | Sensor | sensorTypeId:number; | 新增 |
+| ohos.sensor | Sensor | hardwareVersion:string; | 新增 |
+| ohos.sensor | Sensor | firmwareVersion:string; | 新增 |
+| ohos.sensor | Sensor | venderName:string; | 新增 |
+| ohos.sensor | Sensor | sensorName:string; | 新增 |
+| ohos.sensor | SensorType | SENSOR_TYPE_ID_HEART_RATE = 278 | 废弃 |
+| ohos.sensor | SensorType | SENSOR_TYPE_ID_LINEAR_ACCELERATION = 258 | 废弃 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-soft-bus.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-soft-bus.md
new file mode 100644
index 0000000000000000000000000000000000000000..17e2996e6520b16c00f435a5a55437d158e1de5d
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-soft-bus.md
@@ -0,0 +1,11 @@
+# 分布式软总线子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,分布式软总线子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.rpc | RemoteProxy | sendRequestAsync(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise\<SendRequestResult>; | 新增 |
+| ohos.rpc | RemoteObject | sendRequestAsync(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise\<SendRequestResult>; | 新增 |
+| ohos.rpc | IRemoteObject | sendRequestAsync(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise\<SendRequestResult>; | 新增 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-unitest.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-unitest.md
new file mode 100644
index 0000000000000000000000000000000000000000..90cffeb3f8b1d07f4a7bbcdbe2da72c31e5eb4b6
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-unitest.md
@@ -0,0 +1,50 @@
+# 测试框架子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,测试框架子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.uitest | UiWindow | close():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | resume():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | minimize():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | maximize():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | split():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | resize(wide: number, height: number, direction: ResizeDirection):Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | moveTo(x: number, y: number):Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | focus():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | isActived():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | isFocused():Promise\<bool>; | 新增 |
+| ohos.uitest | UiWindow | getWindowMode():Promise\<WindowMode>; | 新增 |
+| ohos.uitest | UiWindow | getTitle():Promise\<string>; | 新增 |
+| ohos.uitest | UiWindow | getBounds():Promise\<Rect>; | 新增 |
+| ohos.uitest | UiWindow | getBundleName():Promise\<string>; | 新增 |
+| ohos.uitest | UiDriver | triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\<void>; | 新增 |
+| ohos.uitest | UiDriver | findWindow(filter:WindowFilter):Promise\<UiWindow>; | 新增 |
+| ohos.uitest | UiComponent | pinchIn(scale: number): Promise\<void>; | 新增 |
+| ohos.uitest | UiComponent | pinchOut(scale: number): Promise\<void>; | 新增 |
+| ohos.uitest | UiComponent | getBoundsCenter(): Promise\<Point>; | 新增 |
+| ohos.uitest | WindowFilter | readonly  actived?: bool; | 新增 |
+| ohos.uitest | WindowFilter | readonly  focused?: bool; | 新增 |
+| ohos.uitest | WindowFilter | readonly  title?: string; | 新增 |
+| ohos.uitest | WindowFilter | readonly  bundleName?: string; | 新增 |
+| ohos.uitest | Point | readonly  Y: number; | 新增 |
+| ohos.uitest | Point | readonly  X: number; | 新增 |
+| ohos.uitest | WindowMode | FLOATING | 新增 |
+| ohos.uitest | WindowMode | SECONDARY | 新增 |
+| ohos.uitest | WindowMode | PRIMARY | 新增 |
+| ohos.uitest | WindowMode | FULLSCREEN | 新增 |
+| ohos.uitest | ResizeDirection | RIGHT_DOWN | 新增 |
+| ohos.uitest | ResizeDirection | RIGHT_UP | 新增 |
+| ohos.uitest | ResizeDirection | LEFT_DOWN | 新增 |
+| ohos.uitest | ResizeDirection | LEFT_UP | 新增 |
+| ohos.uitest | ResizeDirection | DOWN | 新增 |
+| ohos.uitest | ResizeDirection | UP | 新增 |
+| ohos.uitest | ResizeDirection | RIGHT | 新增 |
+| ohos.uitest | ResizeDirection | LEFT | 新增 |
+| ohos.uitest | UiDriver | swipe(startx:number,starty:number,endx:number,endy:number):Promise\<void>; | 废弃 |
+| ohos.uitest | UiDriver |old : drag(startx: number, starty: number, endx: number, endy: number): Promise\<void>;<br>new :  drag(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void>;| 变更 |
+| ohos.uitest | UiComponent |old : scrollToBottom(): Promise\<void>;<br>new : scrollToTop(speed?: number): Promise\<void>;| 变更 |
+| ohos.uitest | UiComponent |old : scrollToTop(): Promise\<void>;<br>new : scrollToTop(speed?: number): Promise\<void>; | 变更 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-update.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-update.md
new file mode 100644
index 0000000000000000000000000000000000000000..7cbb4007169b963dfefc277b5d8a386b1ba54529
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-update.md
@@ -0,0 +1,183 @@
+# 升级服务子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,升级服务子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.update | EventId | EVENT_UPGRADE_FAIL | 新增 |
+| ohos.update | EventId | EVENT_UPGRADE_SUCCESS | 新增 |
+| ohos.update | EventId | EVENT_APPLY_START | 新增 |
+| ohos.update | EventId | EVENT_APPLY_WAIT | 新增 |
+| ohos.update | EventId | EVENT_UPGRADE_UPDATE | 新增 |
+| ohos.update | EventId | EVENT_UPGRADE_START | 新增 |
+| ohos.update | EventId | EVENT_UPGRADE_WAIT | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_FAIL | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_SUCCESS | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_RESUME | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_PAUSE | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_UPDATE | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_START | 新增 |
+| ohos.update | EventId | EVENT_DOWNLOAD_WAIT | 新增 |
+| ohos.update | EventId | EVENT_TASK_CANCEL | 新增 |
+| ohos.update | EventId | EVENT_TASK_RECEIVE | 新增 |
+| ohos.update | EventId | EVENT_TASK_BASE = EventClassify.TASK | 新增 |
+| ohos.update | EventClassify | TASK = 0x01000000 | 新增 |
+| ohos.update | UpgradeStatus | UPGRADE_FAIL = 51 | 新增 |
+| ohos.update | UpgradeStatus | UPGRADE_SUCCESS = 50 | 新增 |
+| ohos.update | UpgradeStatus | APPLYING = 41 | 新增 |
+| ohos.update | UpgradeStatus | WAITING_APPLY = 40 | 新增 |
+| ohos.update | UpgradeStatus | UPDATING = 31 | 新增 |
+| ohos.update | UpgradeStatus | WAITING_INSTALL = 30 | 新增 |
+| ohos.update | UpgradeStatus | DOWNLOAD_FAIL = 23 | 新增 |
+| ohos.update | UpgradeStatus | DOWNLOAD_PAUSED = 22 | 新增 |
+| ohos.update | UpgradeStatus | DOWNLOADING = 21 | 新增 |
+| ohos.update | UpgradeStatus | WAITING_DOWNLOAD = 20 | 新增 |
+| ohos.update | Order | APPLY = 4 | 新增 |
+| ohos.update | Order | INSTALL = 2 | 新增 |
+| ohos.update | Order | DOWNLOAD = 1 | 新增 |
+| ohos.update | NetType | NOT_METERED_WIFI = 4 | 新增 |
+| ohos.update | NetType | METERED_WIFI = 2 | 新增 |
+| ohos.update | NetType | CELLULAR = 1 | 新增 |
+| ohos.update | DescriptionType | URI = 1 | 新增 |
+| ohos.update | DescriptionType | CONTENT = 0 | 新增 |
+| ohos.update | EffectiveMode | LIVE_AND_COLD = 3 | 新增 |
+| ohos.update | EffectiveMode | LIVE = 2 | 新增 |
+| ohos.update | EffectiveMode | COLD = 1 | 新增 |
+| ohos.update | UpgradeAction | RECOVERY = "recovery" | 新增 |
+| ohos.update | UpgradeAction | UPGRADE = "upgrade" | 新增 |
+| ohos.update | ComponentType | OTA = 1 | 新增 |
+| ohos.update | BusinessSubType | PARAM = 2 | 新增 |
+| ohos.update | BusinessSubType | FIRMWARE = 1 | 新增 |
+| ohos.update | BusinessVendor | PUBLIC = "public" | 新增 |
+| ohos.update | UpgradeTaskCallback | (eventInfo: EventInfo): void; | 新增 |
+| ohos.update | UpgradeFile | filePath: string; | 新增 |
+| ohos.update | UpgradeFile | fileType: ComponentType; | 新增 |
+| ohos.update | EventClassifyInfo | extraInfo: string; | 新增 |
+| ohos.update | EventClassifyInfo | eventClassify: EventClassify; | 新增 |
+| ohos.update | ErrorMessage | errorMessage: string; | 新增 |
+| ohos.update | ErrorMessage | errorCode: number; | 新增 |
+| ohos.update | TaskBody | versionComponents: Array\<VersionComponent>; | 新增 |
+| ohos.update | TaskBody | errorMessages: Array\<ErrorMessage>; | 新增 |
+| ohos.update | TaskBody | installMode: number; | 新增 |
+| ohos.update | TaskBody | progress: number; | 新增 |
+| ohos.update | TaskBody | subStatus: number; | 新增 |
+| ohos.update | TaskBody | status: UpgradeStatus; | 新增 |
+| ohos.update | TaskBody | versionDigestInfo: VersionDigestInfo; | 新增 |
+| ohos.update | EventInfo | taskBody: TaskBody; | 新增 |
+| ohos.update | EventInfo | eventId: EventId; | 新增 |
+| ohos.update | TaskInfo | taskBody: TaskBody; | 新增 |
+| ohos.update | TaskInfo | existTask: boolean; | 新增 |
+| ohos.update | UpgradePeriod | end: number; | 新增 |
+| ohos.update | UpgradePeriod | start: number; | 新增 |
+| ohos.update | UpgradePolicy | autoUpgradePeriods: Array\<UpgradePeriod>; | 新增 |
+| ohos.update | UpgradePolicy | autoUpgradeStrategy: boolean; | 新增 |
+| ohos.update | UpgradePolicy | downloadStrategy: boolean; | 新增 |
+| ohos.update | ClearOptions | status: UpgradeStatus; | 新增 |
+| ohos.update | UpgradeOptions | order: Order; | 新增 |
+| ohos.update | PauseDownloadOptions | isAllowAutoResume: boolean; | 新增 |
+| ohos.update | ResumeDownloadOptions | allowNetwork: NetType; | 新增 |
+| ohos.update | DownloadOptions | order: Order; | 新增 |
+| ohos.update | DownloadOptions | allowNetwork: NetType; | 新增 |
+| ohos.update | CurrentVersionInfo | versionComponents: Array\<VersionComponent>; | 新增 |
+| ohos.update | CurrentVersionInfo | deviceName: string; | 新增 |
+| ohos.update | CurrentVersionInfo | osVersion: string; | 新增 |
+| ohos.update | DescriptionInfo | descriptionType: DescriptionType; | 新增 |
+| ohos.update | VersionComponent | descriptionInfo: DescriptionInfo; | 新增 |
+| ohos.update | VersionComponent | effectiveMode: EffectiveMode; | 新增 |
+| ohos.update | VersionComponent | size: number; | 新增 |
+| ohos.update | VersionComponent | innerVersion: string; | 新增 |
+| ohos.update | VersionComponent | displayVersion: string; | 新增 |
+| ohos.update | VersionComponent | upgradeAction: UpgradeAction; | 新增 |
+| ohos.update | VersionComponent | componentType: ComponentType; | 新增 |
+| ohos.update | VersionDigestInfo | versionDigest: string; | 新增 |
+| ohos.update | NewVersionInfo | versionComponents: Array\<VersionComponent>; | 新增 |
+| ohos.update | NewVersionInfo | versionDigestInfo: VersionDigestInfo; | 新增 |
+| ohos.update | CheckResult | newVersionInfo: NewVersionInfo; | 新增 |
+| ohos.update | CheckResult | isExistNewVersion: boolean; | 新增 |
+| ohos.update | BusinessType | subType: BusinessSubType; | 新增 |
+| ohos.update | BusinessType | vendor: BusinessVendor; | 新增 |
+| ohos.update | UpgradeInfo | businessType: BusinessType; | 新增 |
+| ohos.update | UpgradeInfo | upgradeApp: string; | 新增 |
+| ohos.update | LocalUpdater | off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void; | 新增 |
+| ohos.update | LocalUpdater | on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void; | 新增 |
+| ohos.update | LocalUpdater | applyNewVersion(upgradeFiles: Array\<UpgradeFile>, callback: AsyncCallback\<void>): void;<br>applyNewVersion(upgradeFiles: Array\<UpgradeFile>): Promise\<void>; | 新增 |
+| ohos.update | LocalUpdater | verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\<number>): void;<br>verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\<number>; | 新增 |
+| ohos.update | Restorer | factoryReset(callback: AsyncCallback\<void>): void;<br>factoryReset(): Promise\<void>; | 新增 |
+| ohos.update | Updater | off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void; | 新增 |
+| ohos.update | Updater | on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void; | 新增 |
+| ohos.update | Updater | terminateUpgrade(callback: AsyncCallback\<void>): void;<br>terminateUpgrade(): Promise\<void>; | 新增 |
+| ohos.update | Updater | setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\<number>): void;<br>setUpgradePolicy(policy: UpgradePolicy): Promise\<number>; | 新增 |
+| ohos.update | Updater | getUpgradePolicy(callback: AsyncCallback\<UpgradePolicy>): void;<br>getUpgradePolicy(): Promise\<UpgradePolicy>; | 新增 |
+| ohos.update | Updater | clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, callback: AsyncCallback\<void>): void;<br>clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Promise\<void>; | 新增 |
+| ohos.update | Updater | pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions, callback: AsyncCallback\<void>): void;<br>pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions): Promise\<void>; | 新增 |
+| ohos.update | Updater | resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions, callback: AsyncCallback\<void>): void;<br>resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions): Promise\<void>; | 新增 |
+| ohos.update | Updater | getTaskInfo(callback: AsyncCallback\<TaskInfo>): void;<br>getTaskInfo(): Promise\<TaskInfo>; | 新增 |
+| ohos.update | Updater | getCurrentVersionInfo(callback: AsyncCallback\<CurrentVersionInfo>): void;<br>getCurrentVersionInfo(): Promise\<CurrentVersionInfo>; | 新增 |
+| ohos.update | update | getLocalUpdater(): LocalUpdater; | 新增 |
+| ohos.update | update | getRestorer(): Restorer; | 新增 |
+| ohos.update | update | getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater; | 新增 |
+| ohos.update | update | getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater; | 删除 |
+| ohos.update | update | getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater; | 删除 |
+| ohos.update | update | getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater; | 删除 |
+| ohos.update | Updater | cancel(): void; | 删除 |
+| ohos.update | Updater | verifyUpdatePackage(upgradeFile: string, certsFile: string): void; | 删除 |
+| ohos.update | Updater | rebootAndCleanUserData(callback: AsyncCallback\<number>): void;<br>rebootAndCleanUserData(): Promise\<number>; | 删除 |
+| ohos.update | Updater | rebootAndCleanCache(callback: AsyncCallback\<number>): void;<br>rebootAndCleanCache(): Promise\<number>; | 删除 |
+| ohos.update | Updater | applyNewVersion(callback: AsyncCallback\<number>): void;<br>applyNewVersion(): Promise\<number>; | 删除 |
+| ohos.update | Updater | setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback\<number>): void;<br>setUpdatePolicy(policy: UpdatePolicy): Promise\<number>; | 删除 |
+| ohos.update | Updater | getUpdatePolicy(callback: AsyncCallback\<UpdatePolicy>): void;<br>getUpdatePolicy(): Promise\<UpdatePolicy>; | 删除 |
+| ohos.update | UpdateProgressCallback | (progress: Progress): void; | 删除 |
+| ohos.update | UpdatePolicy | autoUpgradeInterval: Array\<number>; | 删除 |
+| ohos.update | UpdatePolicy | installMode: INSTALL_MODE; | 删除 |
+| ohos.update | UpdatePolicy | autoDownload: boolean; | 删除 |
+| ohos.update | InstallMode | INSTALL_MODE_AUTO | 删除 |
+| ohos.update | InstallMode | INSTALL_MODE_NIGHT | 删除 |
+| ohos.update | InstallMode | INSTALL_MODE_NORMAL | 删除 |
+| ohos.update | Progress | endReason: string; | 删除 |
+| ohos.update | Progress | status: UpdateState; | 删除 |
+| ohos.update | Progress | percent: number; | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_UPDATE_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_UPDATE_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_UPDATE_ON = 90 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_INSTALL_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_INSTALL_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_INSTALL_ON = 80 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_PACKAGE_TRANS_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_PACKAGE_TRANS_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_PACKAGE_TRANS_ON = 70 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_VERIFY_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_VERIFY_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_VERIFY_ON = 30 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_DOWNLOAD_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_DOWNLOAD_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_DOWNLOAD_CANCEL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_DOWNLOAD_PAUSE | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_DOWNLOAD_ON = 20 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_CHECK_VERSION_SUCCESS | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_CHECK_VERSION_FAIL | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_CHECK_VERSION_ON = 10 | 删除 |
+| ohos.update | UpdateState | UPDATE_STATE_INIT = 0 | 删除 |
+| ohos.update | NewVersionInfo | descriptionInfo: Array\<DescriptionInfo>; | 删除 |
+| ohos.update | NewVersionInfo | checkResults: Array\<CheckResult>; | 删除 |
+| ohos.update | NewVersionInfo | errMsg: string; | 删除 |
+| ohos.update | NewVersionInfo | status: NewVersionStatus; | 删除 |
+| ohos.update | NewVersionStatus | VERSION_STATUS_BUSY = 2 | 删除 |
+| ohos.update | NewVersionStatus | VERSION_STATUS_NONE = 1 | 删除 |
+| ohos.update | NewVersionStatus | VERSION_STATUS_NEW = 0 | 删除 |
+| ohos.update | NewVersionStatus | VERSION_STATUS_ERR = -1 | 删除 |
+| ohos.update | DescriptionInfo | descriptionId: string; | 删除 |
+| ohos.update | CheckResult | descriptionId: string; | 删除 |
+| ohos.update | CheckResult | packageType: PackageTypes; | 删除 |
+| ohos.update | CheckResult | verifyInfo: string; | 删除 |
+| ohos.update | CheckResult | size: number; | 删除 |
+| ohos.update | CheckResult | versionCode: string; | 删除 |
+| ohos.update | CheckResult | versionName: number; | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_PATCH = 7 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_VERSION = 6 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_COTA = 5 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_PRELOAD = 4 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_CUST = 3 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_BASE = 2 | 删除 |
+| ohos.update | PackageTypes | PACKAGE_TYPE_NORMAL = 1 | 删除 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-usb.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-usb.md
new file mode 100644
index 0000000000000000000000000000000000000000..eb54f06a9f1ef0c0d20fb15d5b6c3627c8eb87c9
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-usb.md
@@ -0,0 +1,42 @@
+# USB服务子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,USB服务子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.usb | FunctionType | NCM = 256 | 新增 |
+| ohos.usb | FunctionType | AUDIO_SOURCE = 128 | 新增 |
+| ohos.usb | FunctionType | MIDI = 64 | 新增 |
+| ohos.usb | FunctionType | RNDIS = 32 | 新增 |
+| ohos.usb | FunctionType | PTP = 16 | 新增 |
+| ohos.usb | FunctionType | MTP = 8 | 新增 |
+| ohos.usb | FunctionType | HDC = 4 | 新增 |
+| ohos.usb | FunctionType | ECM = 2 | 新增 |
+| ohos.usb | FunctionType | ACM = 1 | 新增 |
+| ohos.usb | FunctionType | NONE = 0 | 新增 |
+| ohos.usb | USBPort | status: USBPortStatus; | 新增 |
+| ohos.usb | USBPort | supportedModes: PortModeType; | 新增 |
+| ohos.usb | USBPort | id: number; | 新增 |
+| ohos.usb | USBPortStatus | currentDataRole: number; | 新增 |
+| ohos.usb | USBPortStatus | currentPowerRole: number; | 新增 |
+| ohos.usb | USBPortStatus | currentMode: number; | 新增 |
+| ohos.usb | PortModeType | NUM_MODES = 4 | 新增 |
+| ohos.usb | PortModeType | DRP = 3 | 新增 |
+| ohos.usb | PortModeType | DFP = 2 | 新增 |
+| ohos.usb | PortModeType | UFP = 1 | 新增 |
+| ohos.usb | PortModeType | NONE = 0 | 新增 |
+| ohos.usb | DataRoleType | DEVICE = 2 | 新增 |
+| ohos.usb | DataRoleType | HOST = 1 | 新增 |
+| ohos.usb | DataRoleType | NONE = 0 | 新增 |
+| ohos.usb | PowerRoleType | SINK = 2 | 新增 |
+| ohos.usb | PowerRoleType | SOURCE = 1 | 新增 |
+| ohos.usb | PowerRoleType | NONE = 0 | 新增 |
+| ohos.usb | usb | setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<boolean>; | 新增 |
+| ohos.usb | usb | getSupportedModes(portId: number): PortModeType; | 新增 |
+| ohos.usb | usb | getPorts(): Array\<USBPort>; | 新增 |
+| ohos.usb | usb | getCurrentFunctions(): FunctionType; | 新增 |
+| ohos.usb | usb | setCurrentFunctions(funcs: FunctionType): Promise\<boolean>; | 新增 |
+| ohos.usb | usb | usbFunctionsToString(funcs: FunctionType): string; | 新增 |
+| ohos.usb | usb | usbFunctionsFromString(funcs: string): number; | 新增 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-user-authentication.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-user-authentication.md
new file mode 100644
index 0000000000000000000000000000000000000000..76447fdcdbe79b1ff287d94cbb3727758dd3f197
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-user-authentication.md
@@ -0,0 +1,12 @@
+# 用户身份认证子系统JS API变更
+
+OpenHarmony 3.2 Release版本相较于OpenHarmony 3.2 Beta1版本,用户身份认证子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.userIAM.faceAuth | ResultCode | FAIL = 1 | 新增 |
+| ohos.userIAM.faceAuth | ResultCode | SUCCESS = 0 | 新增 |
+| ohos.userIAM.faceAuth | FaceAuthManager | setSurfaceId(surfaceId: string): ResultCode; | 新增 |
+| ohos.userIAM.faceAuth | FaceAuthManager | constructor(); | 新增 |
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-web.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-web.md
new file mode 100644
index 0000000000000000000000000000000000000000..7f9cc35433534d1607e28312b4a0973c9968a7d0
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-web.md
@@ -0,0 +1,40 @@
+# Web子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,Web子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 函数 | 变更类型 |
+|---|---|---|---|
+| ohos.web | WebDataBase | static saveHttpAuthCredentials(host: string, realm: string, username: string, password: string): void; | 新增 |
+| ohos.web | WebDataBase | static getHttpAuthCredentials(host: string, realm: string): Array\<string>; | 新增 |
+| ohos.web | WebDataBase | static deleteHttpAuthCredentials(): void; | 新增 |
+| ohos.web | WebDataBase | static existHttpAuthCredentials(): boolean; | 新增 |
+| ohos.web | WebStorage | static getOriginUsage(origin : string) : Promise\<number> ;<br>static getOriginUsage(origin : string, callback : AsyncCallback\<number>) : void; | 新增 |
+| ohos.web | WebStorage | static getOriginQuota(origin : string) : Promise\<number>;<br>static getOriginQuota(origin : string, callback : AsyncCallback\<number>) : void; | 新增 |
+| ohos.web | WebStorage | static getOrigins() : Promise\<Array\<WebStorageOrigin>>;<br>static getOrigins(callback: AsyncCallback\<Array\<WebStorageOrigin>>) : void; | 新增 |
+| ohos.web | WebStorage | static deleteOrigin(origin : string): void; | 新增 |
+| ohos.web | WebStorage | static deleteAllData() : void; | 新增 |
+| ohos.web | WebStorageOrigin | quota: number; | 新增 |
+| ohos.web | WebStorageOrigin | usage: number; | 新增 |
+| ohos.web | WebStorageOrigin | origin: string; | 新增 |
+| Web | WebAttribute | onInterceptRequest(callback: (event?: { request: WebResourceRequest}) => WebResourceResponse): WebAttribute; | 新增 |
+| Web | WebAttribute | onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, realm: string }) => boolean): WebAttribute; | 新增 |
+| Web | WebAttribute | onScaleChange(callback: (event: {oldScale: number, newScale: number}) => void): WebAttribute; | 新增 |
+| Web | WebAttribute | onResourceLoad(callback: (event: {url: string}) => void): WebAttribute; | 新增 |
+| Web | WebAttribute | onPrompt(callback: (event?: {url: string, message: string, value: string, result: JsResult }) => boolean): WebAttribute; | 新增 |
+| Web | WebAttribute | initialScale(percent: number): WebAttribute; | 新增 |
+| Web | WebController | backOrForward(step: number): void; | 新增 |
+| Web | WebController | getPageHeight(): number; | 新增 |
+| Web | WebController | getTitle(): string; | 新增 |
+| Web | WebController | getDefaultUserAgent(): string; | 新增 |
+| Web | WebController | getWebId(): number; | 新增 |
+| Web | WebController | getHitTestValue(): HitTestValue; | 新增 |
+| Web | WebController | zoomOut(): boolean; | 新增 |
+| Web | WebController | zoomIn(): boolean; | 新增 |
+| Web | WebResourceResponse | setResponseCode(code: number); | 新增 |
+| Web | WebResourceResponse | setResponseHeader(header: Array\<Header>); | 新增 |
+| Web | WebResourceResponse | setReasonMessage(reason: string); | 新增 |
+| Web | WebResourceResponse | setResponseMimeType(mimeType: string); | 新增 |
+| Web | WebResourceResponse | setResponseEncoding(encoding: string); | 新增 |
+| Web | WebResourceResponse | setResponseData(data: string); | 新增 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-window.md b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-window.md
new file mode 100644
index 0000000000000000000000000000000000000000..763b558ce1fb0e0f97bcfedb8d35ef5d4d0b1513
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/js-apidiff-window.md
@@ -0,0 +1,77 @@
+# 窗口管理子系统JS API变更
+
+OpenHarmony 3.2 Beta2版本相较于OpenHarmony 3.2 Beta1版本,窗口管理子系统的API变更如下:
+
+## 接口变更
+
+| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
+|---|---|---|---|
+| ohos.animation.windowAnimationManager | WindowAnimationController | onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationController | onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationFinishedCallback | onAnimationFinish(): void; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationTarget | readonly windowBounds: RRect; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationTarget | readonly abilityName: string; | 新增 |
+| ohos.animation.windowAnimationManager | WindowAnimationTarget | readonly bundleName: string; | 新增 |
+| ohos.animation.windowAnimationManager | RRect | radius: number; | 新增 |
+| ohos.animation.windowAnimationManager | RRect | height: number; | 新增 |
+| ohos.animation.windowAnimationManager | RRect | width: number; | 新增 |
+| ohos.animation.windowAnimationManager | RRect | top: number; | 新增 |
+| ohos.animation.windowAnimationManager | RRect | left: number; | 新增 |
+| ohos.animation.windowAnimationManager | windowAnimationManager | setController(controller: WindowAnimationController): void; | 新增 |
+| ohos.display | display | getDefaultDisplaySync(): Display; | 新增 |
+| ohos.screen | Screen | setDensityDpi(densityDpi: number, callback: AsyncCallback\<void>): void;<br>setDensityDpi(densityDpi: number): Promise\<void>; | 新增 |
+| ohos.screen | VirtualScreenOption | surfaceId: string | 新增 |
+| ohos.screen | VirtualScreenOption | density: number | 新增 |
+| ohos.screen | VirtualScreenOption | height: number | 新增 |
+| ohos.screen | VirtualScreenOption | width: number | 新增 |
+| ohos.screen | VirtualScreenOption | name: string | 新增 |
+| ohos.screen | screen | setScreenRotationLocked(isLocked:boolean, callback: AsyncCallback\<void>): void;<br>setScreenRotationLocked(isLocked:boolean): Promise\<void>; | 新增 |
+| ohos.screen | screen | isScreenRotationLocked(callback: AsyncCallback\<boolean>): void;<br>isScreenRotationLocked(): Promise\<boolean>; | 新增 |
+| ohos.screen | screen | setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallback\<void>): void;<br>setVirtualScreenSurface(screenId:number, surfaceId: string): Promise\<void>; | 新增 |
+| ohos.screen | screen | destroyVirtualScreen(screenId:number, callback: AsyncCallback\<void>): void;<br>destroyVirtualScreen(screenId:number): Promise\<void>; | 新增 |
+| ohos.screen | screen | createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback\<Screen>): void;<br>createVirtualScreen(options:VirtualScreenOption): Promise\<Screen>; | 新增 |
+| ohos.window | WindowStage | setShowOnLockScreen(showOnLockScreen: boolean): void; | 新增 |
+| ohos.window | WindowStage | disableWindowDecor(): void; | 新增 |
+| ohos.window | Window | setForbidSplitMove(isForbidSplitMove: boolean, callback: AsyncCallback\<void>): void;<br>setForbidSplitMove(isForbidSplitMove: boolean): Promise\<void>; | 新增 |
+| ohos.window | Window | off(type: 'touchOutside', callback?: Callback\<void>): void; | 新增 |
+| ohos.window | Window | on(type: 'touchOutside', callback: Callback\<void>): void; | 新增 |
+| ohos.window | Window | off(type: 'avoidAreaChange', callback?: Callback\<{ type: AvoidAreaType, area: AvoidArea }>): void; | 新增 |
+| ohos.window | Window | on(type: 'avoidAreaChange', callback: Callback\<{ type: AvoidAreaType, area: AvoidArea }>): void; | 新增 |
+| ohos.window | Window | setPreferredOrientation(orientation: Orientation): Promise\<void>;<br>setPreferredOrientation(orientation: Orientation, callback: AsyncCallback\<void>): void; | 新增 |
+| ohos.window | Orientation | LOCKED = 11 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION_LANDSCAPE_RESTRICTED = 10 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION_PORTRAIT_RESTRICTED = 9 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION_RESTRICTED = 8 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION_LANDSCAPE = 7 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION_PORTRAIT = 6 | 新增 |
+| ohos.window | Orientation | AUTO_ROTATION = 5 | 新增 |
+| ohos.window | Orientation | LANDSCAPE_INVERTED = 4 | 新增 |
+| ohos.window | Orientation | PORTRAIT_INVERTED = 3 | 新增 |
+| ohos.window | Orientation | LANDSCAPE = 2 | 新增 |
+| ohos.window | Orientation | PORTRAIT = 1 | 新增 |
+| ohos.window | Orientation | UNSPECIFIED = 0 | 新增 |
+| ohos.window | AvoidArea | visible: boolean; | 新增 |
+| ohos.window | AvoidAreaType | TYPE_KEYBOARD | 新增 |
+| ohos.window | AvoidAreaType | TYPE_SYSTEM_GESTURE | 新增 |
+| ohos.window | WindowType | TYPE_POINTER | 新增 |
+| ohos.window | WindowType | TYPE_VOICE_INTERACTION | 新增 |
+| ohos.window | WindowType | TYPE_LAUNCHER_DOCK | 新增 |
+| ohos.window | WindowType | TYPE_LAUNCHER_RECENT | 新增 |
+| ohos.window | WindowType | TYPE_DESKTOP | 新增 |
+| ohos.window | WindowType | TYPE_WALLPAPER | 新增 |
+| ohos.window | WindowType | TYPE_FLOAT | 新增 |
+| ohos.window | WindowType | TYPE_NAVIGATION_BAR | 新增 |
+| ohos.window | WindowType | TYPE_VOLUME_OVERLAY | 新增 |
+| ohos.window | WindowType | TYPE_KEYGUARD | 新增 |
+| ohos.window | WindowType | TYPE_PANEL | 新增 |
+| ohos.window | WindowType | TYPE_STATUS_BAR | 新增 |
+| ohos.window | WindowType | TYPE_INPUT_METHOD | 新增 |
+| ohos.window | Window | dump(params: Array\<string>): Array\<string>; | 删除 |
+| ohos.window | Window | off(type: 'systemAvoidAreaChange', callback?: Callback\<AvoidArea>): void; | 废弃 |
+| ohos.window | Window | on(type: 'systemAvoidAreaChange', callback: Callback\<AvoidArea>): void; | 废弃 |
+
diff --git a/zh-cn/release-notes/api-change/v3.2-beta2/native-apidiff-v3.2-beta2.md b/zh-cn/release-notes/api-change/v3.2-beta2/native-apidiff-v3.2-beta2.md
new file mode 100644
index 0000000000000000000000000000000000000000..b8e6c8a45ece7f1c7b9ea6d3c58297678af3a17d
--- /dev/null
+++ b/zh-cn/release-notes/api-change/v3.2-beta2/native-apidiff-v3.2-beta2.md
@@ -0,0 +1,13 @@
+# Native API 差异报告
+
+OpenHarmony 3.2 Beta2相较于OpenHarmony 3.2 Beta1版本的API变更如下:
+
+## 标准系统接口变更
+
+| 模块名称 | 接口名称                                                     | 变更类型 | 变更说明                                        |
+| -------- | ------------------------------------------------------------ | -------- | ----------------------------------------------- |
+| 包管理-BundleFramework | OH_NativeBundle_ApplicationInfo OH_NativeBundle_GetCurrentApplicationInfo() | 新增     | 获取当前应用的包名和指纹信息 |
+| 图形-NativeWindow | int32_t OH_NativeWindow_NativeWindowSetScalingMode(OHNativeWindow *window, uint32_t sequence, OHScalingMode scalingMode) | 新增 | 新增通过NativeWindow设置缩放模式的接口 |
+| 图形-NativeWindow | int32_t OH_NativeWindow_NativeWindowSetMetaData(OHNativeWindow *window, uint32_t sequence, int32_t size, const OHHDRMetaData *metaData) | 新增 | 新增通过NativeWindow设置HDR元数据的接口 |
+| 图形-NativeWindow | int32_t OH_NativeWindow_NativeWindowSetMetaDataSet(OHNativeWindow *window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t *metaData) | 新增 | 新增通过NativeWindow设置HDR元数据集的接口 |
+| 图形-NativeWindow | int32_t OH_NativeWindow_NativeWindowSetTunnelHandle(OHNativeWindow *window, const OHExtDataHandle *handle) | 新增 | 新增通过NativeWindow设置tunnelhandle的接口 |
\ No newline at end of file
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/application-sandbox-adaptation-guide.md b/zh-cn/release-notes/changelog/v3.2-beta2/application-sandbox-adaptation-guide.md
new file mode 100644
index 0000000000000000000000000000000000000000..7e7f81e258da29f05da52b4d9f61f855ad40269b
--- /dev/null
+++ b/zh-cn/release-notes/changelog/v3.2-beta2/application-sandbox-adaptation-guide.md
@@ -0,0 +1,112 @@
+# OpenHarmony启用应用沙箱机制-适配指导
+
+## 验证流程
+
+![](figures/verification-process.png)
+
+1. 取发布版本自验证功能,如果功能正常,则适配流程结束。
+2. 取版本验证发现自身应用功能异常,则进行问题定位,通过分析代码识别到问题点,通过[适配流程](#适配流程)中的方法来进行文件访问模型的适配。
+3. 适配完毕之后,重新验证功能,功能正常则适配流程结束。功能依旧存在问题则重新回到第二步继续定位,直到问题解决为止。
+
+## 适配流程
+
+![](figures/adaptation-process.png)
+
+1. 定位出app异常的问题点之后,识别该问题是否是app源代码访问路径出错导致的,是否是访问有效文件可以通过下一章节的[沙箱文件访问规格清单](#沙箱文件访问规格清单)自查。
+2. 如果是app源码访问无效路径,则可以通过调整访问路径的策略,将原来访问/data目录从绝对路径访问方式调整为使用context接口进行访问,具体请见context接口使用说明:
+   https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/context-userguide.md
+   https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
+   https://gitee.com/OpenHarmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md
+3. 如果是app调用三方模块,异常调用栈出现在三方模块中,而app源码没有使用绝对路径去访问文件,则适配过程如下:
+   - 通知三方模块,让其访问文件路径通过context接口进行访问而非使用绝对路径的方式。
+   - 如果三方模块是个公共模块,除了给appspawn孵化的进程使用之外还给native进程使用,则可以将三方模块抽象成一个服务,应用通过ipc的方式去访问服务。
+
+## 沙箱文件访问规格清单
+
+**应用根目录访问路径清单**
+
+| 路径名                | 备注                                       |
+| --------------------- | ------------------------------------------ |
+| bin                   | 存放着各种二进制文件                       |
+| config                | 配置目录                                   |
+| data                  | 应用数据目录                               |
+| dev                   | 设备节点                                   |
+| etc                   | /system/etc的软连接                        |
+| init                  | /system/bin/init的软连接                   |
+| lib                   | /system/lib的软连接                        |
+| mnt                   | 挂载目录                                   |
+| proc                  | proc文件系统目录                           |
+| sys                   | sys文件系统目录                            |
+| sys_prod              | 此目录不同设备上存在差异,部分设备无此目录 |
+| system/app            | 系统目录资源                               |
+| system/fonts          | 系统文字资源                               |
+| system/lib            | 系统库                                     |
+| system/data           | 系统目录资源                               |
+| system/usr            | 系统目录资源                               |
+| system/profile        | 系统目录资源                               |
+| system/bin            | 系统程序                                   |
+| system/etc            | 系统配置                                   |
+| vendor/lib/chipsetsdk | 芯片组件目录,目前仅挂载chipsetsdk         |
+
+**应用数据目录访问路径清单**
+
+| 路径名                             | 备注                                                         |
+| ---------------------------------- | ------------------------------------------------------------ |
+| /data                              | 应用数据目录                                                 |
+| /data/storage                      | 应用数据                                                     |
+| /data/bundles                      | 所有应用安装目录,仅应用apl权限为BASIC及以上权限的应用可访问 |
+| /data/storage/el1                  | 应用el1加密级别数据目录                                      |
+| /data/storage/el2                  | 应用el2加密级别数据目录                                      |
+| /data/storage/el1/base             | 应用el1加密级别数据目录                                      |
+| /data/storage/el1/bundles          | 应用el1加密级别应用安装包目录                                |
+| /data/storage/el1/database         | 应用el1加密级别数据库存储目录                                |
+| /data/storage/el2/base             | 应用el2加密级别数据目录                                      |
+| /data/storage/el2/database         | 应用el2加密级别数据库存储目录                                |
+| /data/storage/el2/auth_groups      | 应用el2加密级别无账号分布式数据融合目录                      |
+| /data/storage/el2/distributedfiles | 应用el2加密级别有账号分布式数据融合目录                      |
+
+启用应用沙箱之后,应用命名空间内无法再访问物理路径下数据目录的访问方式,而是只能通过context接口来访问应用的数据目录,具体访问应用数据目录的方式可以通过context接口进行访问,参考[适配流程](#适配流程)中的context接口访问链接了解更多细节。
+应用的物理数据目录跟沙箱数据目录存储的是同一份应用的数据,通过bind mount技术进行关联,改动任意一处会影响另一处的数据。应用在命名空间下访问数据,只能通过沙箱路径来访问,下面列出应用的数据目录在物理路径跟沙箱路径下的对应关系。
+
+**应用的数据目录在物理路径跟沙箱路径下的对应关系**
+
+| 物理路径                                                     | 沙箱路径                           | 备注                                    |
+| ------------------------------------------------------------ | ---------------------------------- | --------------------------------------- |
+| /data/app/el1/bundle/public/\<PackageName>\                  | /data/storage/el1/bundle           | 应用安装包目录                          |
+| /data/app/el1/\<USERID\>/base/\<PACKAGENAME\>                | /data/storage/el1/base             | 应用el1级别加密数据目录                 |
+| /data/app/el2/\<USERID\>/base/\<PACKAGENAME\>                | /data/storage/el2/base             | 应用el2级别加密数据目录                 |
+| /data/app/el1/\<USERID\>/database/\<PACKAGENAME\>            | /data/storage/el1/database         | 应用el1级别加密数据库目录               |
+| /data/app/el2/\<USERID\>/database/\<PACKAGENAME\>            | /data/storage/el2/database         | 应用el2级别加密数据库目录               |
+| /mnt/hmdfs/\<USERID\>/account/merge_view/data/\<PACKAGENAME\> | /data/storage/el2/distributedfiles | 应用el2加密级别有账号分布式数据融合目录 |
+| /mnt/hmdfs/\<USERID\>/non_account/merge_view/data/           | /data/storage/el2/auth_groups      | 应用el2加密级别无账号分布式数据融合目录 |
+| /mnt/hmdfs/                                                  | /mnt/hmdfs/                        | 分布式文件系统目录                      |
+
+> **说明:**<br>\<USERID\>代表当前的用户ID
+> \<PACKAGENAME\>代表当前的应用包名
+
+更多物理路径沙箱路径的对应关系,请访问:
+https://gitee.com/OpenHarmony/startup_appspawn/blob/master/appdata-sandbox64.json
+
+## 案例:Contacts.hap拨号场景无法触发音频问题
+
+联系人应用沙箱整改前访问资源文件的方式如下,可以看到访问的路径是绝对路径硬编码,为/data/app/el1此类目录,而此类目录在应用沙箱中是访问受限的,所以会造成访问异常。
+
+![](figures/example1.png)
+
+此代码的核心是想通过fileIO接口open固定路径得到fdNumber,使用fdNumber去做接下来的文件访问。FileIO是通过路径得到fdNumber的,而现在路径访问已经被限制了,因此考虑用其他的接口去获取fdNumber即可,
+查阅OpenHarmony相关开发手册得知,使用resourceManager可以获取fdNumber。
+更改后的代码如下:
+
+![](figures/example2.png)
+
+## 规避方案
+
+如果发现应用异常且定位没有结论,可以使用关闭进程沙箱的方式来规避问题,规避方式如下:
+
+1. 打开OpenHarmony startup_appspawn仓的源码,找到应用沙箱配置文件,根据自己编译类型修改对应的配置代码文件。
+   32位修改:https://gitee.com/OpenHarmony/startup_appspawn/blob/master/appdata-sandbox.json
+   64位修改:https://gitee.com/OpenHarmony/startup_appspawn/blob/master/appdata-sandbox.json
+
+2. 在json中文件找到camera的配置,在下方参照camera的配置新建一条自身应用的配置,将包名改为自身应用报名,其他项保持跟camera一致即可,OFF字段代表关闭进程沙箱。
+
+   ![](figures/example3.png)
\ No newline at end of file
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/changelog-v3.2-beta2.md b/zh-cn/release-notes/changelog/v3.2-beta2/changelog-v3.2-beta2.md
new file mode 100644
index 0000000000000000000000000000000000000000..97cc21a129800e7f6018318d098ceeb4657e37d2
--- /dev/null
+++ b/zh-cn/release-notes/changelog/v3.2-beta2/changelog-v3.2-beta2.md
@@ -0,0 +1,58 @@
+# 3.2 beta2相对3.2 beta1变更详细说明
+
+## 启用应用沙箱机制
+
+基于namespace机制强化OpenHarmony应用数据安全,建立应用沙盒机制,增加目录可见性数据访问防线,减少了应用数据和用户隐私信息泄露,建立了更加严格安全的应用沙盒隔离能力。
+同时也解决了目录混乱、文件访问方式多途径造成的文件管理的垃圾文件、文件混乱等体验问题和并发稳定性问题。
+
+**变更影响**
+
+OpenHarmony启用应用沙箱机制后,所有被appspawn进程孵化的应用访问资源会受到应用沙箱的限制。
+如果应用没有适配应用沙箱的文件访问模型,则会导致应用功能异常。
+应用对于/data目录下文件的访问,需要将所有硬编码路径访问的方式调整为使用context接口访问,具体请见[适配流程](application-sandbox-adaptation-guide.md#适配流程)。
+
+**关键的接口/组件变更**
+
+OpenHarmony应用沙箱组件
+
+**适配指导**
+
+请参考[适配指导](application-sandbox-adaptation-guide.md)。
+
+## 增加对于自定义组件Struct的编译校验
+
+**变更1**:自定义组件Struct的生命周期函数(比如aboutToAppear)不能使用private修饰。
+
+**变更影响**
+
+旧版本只有编辑器做了校验,新版本编译也加了校验报错。
+
+**关键的接口/组件变更**
+
+æ— 
+
+**适配指导**
+
+当出现以下情况时,将private修饰去掉,即可通过编译。
+
+![](figures/compile-change1-1.png)
+
+![](figures/compile-change1-2.png)
+
+**变更2:**自定义组件Struct的成员属性不能和内置属性方法名重名。
+
+**变更影响**
+
+与内置属性方法名重名的Struct的成员属性无法通过校验。
+
+**关键的接口/组件变更**
+
+æ— 
+
+**适配指导**
+
+当出现以下情况时,修改属性名,使其与内置属性方法名不重名。
+
+![](figures/compile-change2-1.png)
+
+![](figures/compile-change2-2.png)
\ No newline at end of file
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/adaptation-process.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/adaptation-process.png
new file mode 100644
index 0000000000000000000000000000000000000000..05b1892b5508c56ca029e930a6f0c1360f6a7967
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/adaptation-process.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-1.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..01e3e90dd66f2aad624a5fbbf88600833442a3fc
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-1.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-2.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..3607345cc1b59633f8dc0c35ae99393525c15496
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change1-2.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-1.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..22c62fb46ef2311b6ff4f040baf72938317b1ef2
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-1.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-2.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ef778e4d6b361f43b5e7d8493236bda03cd9b24
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/compile-change2-2.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/example1.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example1.png
new file mode 100644
index 0000000000000000000000000000000000000000..db7b455ef72cac51d6bea1be36283c1c1c269ec0
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example1.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/example2.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example2.png
new file mode 100644
index 0000000000000000000000000000000000000000..9bb60d4b1e05dcb152e15553611db0c1da4d2b33
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example2.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/example3.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example3.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9923c8a00716601316b4129b143a3fad854beb7
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/example3.png differ
diff --git a/zh-cn/release-notes/changelog/v3.2-beta2/figures/verification-process.png b/zh-cn/release-notes/changelog/v3.2-beta2/figures/verification-process.png
new file mode 100644
index 0000000000000000000000000000000000000000..97bb2b82243470253462271e1c7164d77d64b4dc
Binary files /dev/null and b/zh-cn/release-notes/changelog/v3.2-beta2/figures/verification-process.png differ
diff --git a/zh-cn/third-party-components/npm-third-party-guide.md b/zh-cn/third-party-components/npm-third-party-guide.md
index e9231f9f6d748935f668594cc5fde1e22c12a9a6..60222a480c852f19216688d99dda1dd9822005cc 100644
--- a/zh-cn/third-party-components/npm-third-party-guide.md
+++ b/zh-cn/third-party-components/npm-third-party-guide.md
@@ -1,11 +1,11 @@
-# OpenHarmony JS/TS三方组件使用指导
-## OpenHarmony JS/TS三方组件介绍
+# OpenHarmony JS和TS三方组件使用指导
+## OpenHarmony JS和TS三方组件介绍
 
-OpenHarmony JS/TS三方组件是以OpenHarmony npm包的形式,在传统的npm三方组件的基础上,定义了OpenHarmony npm共享包特定的工程结构和配置文件,支持OpenHarmony页面组件相关API、资源的调用。通过OpenHarmony npm包,可以实现多个模块或者多个工程共享OpenHarmony页面、资源等相关代码。前往[npm官方文档](https://docs.npmjs.com/about-npm),可以了解和掌握npm的基础功能和机制。
+OpenHarmony JS和TS三方组件是以OpenHarmony npm包的形式,在传统的npm三方组件的基础上,定义了OpenHarmony npm共享包特定的工程结构和配置文件,支持OpenHarmony页面组件相关API、资源的调用。通过OpenHarmony npm包,可以实现多个模块或者多个工程共享OpenHarmony页面、资源等相关代码。前往[npm官方文档](https://docs.npmjs.com/about-npm),可以了解和掌握npm的基础功能和机制。
 
 
 
-## 查找OpenHarmony JS/TS三方组件
+## 查找OpenHarmony JS和TS三方组件
 
 1. 关注Gitee官网OpenHarmony-TPC[三方组件资源汇总](https://gitee.com/openharmony-tpc/tpc_resource)项目,根据目录索引即可找到对应分类下的具体组件。
 
@@ -16,9 +16,9 @@ OpenHarmony JS/TS三方组件是以OpenHarmony npm包的形式,在传统的npm
 
 
 
-## 安装并使用OpenHarmony JS/TS语言的三方组件
+## 安装并使用OpenHarmony JS和TS语言的三方组件
 
-在应用开发的过程中,JS/TS语言的三方组件,通常以源码或OpenHarmony npm包的方式被引入使用。按照以下步骤即可将OpenHarmony npm包引入应用并使用,源码的具体引入及使用请参考各三方组件README.md指导介绍。
+在应用开发的过程中,JS和TS语言的三方组件,通常以源码或OpenHarmony npm包的方式被引入使用。按照以下步骤即可将OpenHarmony npm包引入应用并使用,源码的具体引入及使用请参考各三方组件README.md指导介绍。
 
 1. 配置OpenHarmony npm环境,详情请参考安装教程 [如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md)。
 
diff --git a/zh-cn/third-party-components/third-party-components-introduction.md b/zh-cn/third-party-components/third-party-components-introduction.md
index 17e06934e35a1e17ac5931b1ea6e057a2fbc7ec9..31f1ab1bfd795ff7b8154455a16d59ca234cd494 100644
--- a/zh-cn/third-party-components/third-party-components-introduction.md
+++ b/zh-cn/third-party-components/third-party-components-introduction.md
@@ -1,6 +1,6 @@
 # OpenHarmony三方组件
 
-OpenHarmony三方组件,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony系统或应用。根据其开发语言分为了2种,一种是使用JavaScript或TypeScript语言的三方组件,通常以源码或OpenHarmony npm包的方式引入,在应用开发中使用。另一种是C/C++语言的三方组件,通常以源码或OpenHarmony hpm包的方式引入,在应用开发中以NAPI的方式使用,或直接编译在OpenHarmony操作系统镜像中。
+OpenHarmony三方组件,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony系统或应用。根据其开发语言分为了2种,一种是使用JavaScript和TypeScript语言的三方组件,通常以源码或OpenHarmony npm包的方式引入,在应用开发中使用。另一种是C和C++语言的三方组件,通常以源码或OpenHarmony hpm包的方式引入,在应用开发中以NAPI的方式使用,或直接编译在OpenHarmony操作系统镜像中。
 
 
 
diff --git a/zh-cn/website.md b/zh-cn/website.md
index 71f9807caf9ec13c4e8d4fad036702839b24633f..1edc4cf36f5c38ac154fac3af0336e2c89ab9a03 100644
--- a/zh-cn/website.md
+++ b/zh-cn/website.md
@@ -5,6 +5,7 @@
 - 版本说明
   - OpenHarmony 3.x Releases
 
+    -   [OpenHarmony v3.2 Beta2 (2022-07-30)](release-notes/OpenHarmony-v3.2-beta2.md)
     -   [OpenHarmony v3.2 Beta1 (2022-05-31)](release-notes/OpenHarmony-v3.2-beta1.md)
     -   [OpenHarmony v3.1.1 Release (2022-05-31)](release-notes/OpenHarmony-v3.1.1-release.md)
     -   [OpenHarmony v3.1 Release (2022-03-30)](release-notes/OpenHarmony-v3.1-release.md)    
@@ -13,43 +14,75 @@
     -   [OpenHarmony v3.0.2 LTS (2022-03-18)](release-notes/OpenHarmony-v3.0.2-LTS.md)
     -   [OpenHarmony v3.0.1 LTS (2022-01-12)](release-notes/OpenHarmony-v3.0.1-LTS.md)
     -   [OpenHarmony v3.0 LTS (2021-09-30)](release-notes/OpenHarmony-v3.0-LTS.md)
-    
+
   - OpenHarmony 2.x Releases
-    
+
     -   [OpenHarmony v2.2 beta2 (2021-08-04)](release-notes/OpenHarmony-v2.2-beta2.md)
     -   [OpenHarmony 2.0 Canary (2021-06-01)](release-notes/OpenHarmony-2-0-Canary.md)
-    
+
   - OpenHarmony 1.x Releases 
-    
+
     -   [OpenHarmony v1.1.4 LTS (2022-02-11)](release-notes/OpenHarmony-v1-1-4-LTS.md)
     -   [OpenHarmony v1.1.3 LTS (2021-09-30)](release-notes/OpenHarmony-v1-1-3-LTS.md)
     -   [OpenHarmony v1.1.2 LTS (2021-08-04)](release-notes/OpenHarmony-v1.1.2-LTS.md)
     -   [OpenHarmony 1.1.1 LTS (2021-06-22)](release-notes/OpenHarmony-1-1-1-LTS.md)
     -   [OpenHarmony 1.1.0 LTS (2021-04-01)](release-notes/OpenHarmony-1-1-0-LTS.md)
     -   [OpenHarmony 1.0 (2020-09-10)](release-notes/OpenHarmony-1-0.md)
+    
   - API差异报告
+    
+    - OpenHamrony 3.2 Beta2
+      - JS API差异报告
+        - [元能力](release-notes/api-change/v3.2-beta2/js-apidiff-ability.md)
+        - [无障碍](release-notes/api-change/v3.2-beta2/js-apidiff-accessibility.md)
+        - [帐号](release-notes/api-change/v3.2-beta2/js-apidiff-account.md)
+        - [ArkUI](release-notes/api-change/v3.2-beta2/js-apidiff-arkui.md)
+        - [包管理](release-notes/api-change/v3.2-beta2/js-apidiff-bundle.md)
+        - [基础通信](release-notes/api-change/v3.2-beta2/js-apidiff-communicate.md)
+        - [公共基础库](release-notes/api-change/v3.2-beta2/js-apidiff-complier-and-runtime.md)
+        - [DFX](release-notes/api-change/v3.2-beta2/js-apidiff-dfx.md)
+        - [分布式数据管理](release-notes/api-change/v3.2-beta2/js-apidiff-distributed-data.md)
+        - [事件通知](release-notes/api-change/v3.2-beta2/js-apidiff-event-and-notification.md)
+        - [文件管理](release-notes/api-change/v3.2-beta2/js-apidiff-file-management.md)
+        - [位置服务](release-notes/api-change/v3.2-beta2/js-apidiff-geolocation.md)
+        - [全球化](release-notes/api-change/v3.2-beta2/js-apidiff-global.md)
+        - [图形图像](release-notes/api-change/v3.2-beta2/js-apidiff-graphic.md)
+        - [Misc](release-notes/api-change/v3.2-beta2/js-apidiff-misc.md)
+        - [多模输入](release-notes/api-change/v3.2-beta2/js-apidiff-multi-modal-input.md)
+        - [多媒体](release-notes/api-change/v3.2-beta2/js-apidiff-multimedia.md)
+        - [资源调度](release-notes/api-change/v3.2-beta2/js-apidiff-resource-scheduler.md)
+        - [安全](release-notes/api-change/v3.2-beta2/js-apidiff-security.md)
+        - [æ³›Sensor](release-notes/api-change/v3.2-beta2/js-apidiff-sensor.md)
+        - [分布式软总线](release-notes/api-change/v3.2-beta2/js-apidiff-soft-bus.md)
+        - [测试框架](release-notes/api-change/v3.2-beta2/js-apidiff-unitest.md)
+        - [升级服务](release-notes/api-change/v3.2-beta2/js-apidiff-update.md)
+        - [USB服务](release-notes/api-change/v3.2-beta2/js-apidiff-usb.md)
+        - [用户身份认证](release-notes/api-change/v3.2-beta2/js-apidiff-user-authentication.md)
+        - [Web](release-notes/api-change/v3.2-beta2/js-apidiff-web.md)
+        - [窗口管理](release-notes/api-change/v3.2-beta2/js-apidiff-window.md)
+    
     - OpenHarmony 3.2 Beta1
       - JS API差异报告
-        - [元能力](release-notes/api-change/v3.2-beta/js-apidiff-ability.md)
-        - [ArkUI](release-notes/api-change/v3.2-beta/js-apidiff-arkui.md)
-        - [电源](release-notes/api-change/v3.2-beta/js-apidiff-battery.md)
-        - [包管理](release-notes/api-change/v3.2-beta/js-apidiff-bundle.md)
-        - [基础通信](release-notes/api-change/v3.2-beta/js-apidiff-communicate.md)
-        - [DFX](release-notes/api-change/v3.2-beta/js-apidiff-dfx.md)
-        - [分布式数据管理](release-notes/api-change/v3.2-beta/js-apidiff-distributed-data.md)
-        - [事件通知](release-notes/api-change/v3.2-beta/js-apidiff-event-and-notification.md)
-        - [文件管理](release-notes/api-change/v3.2-beta/js-apidiff-file-management.md)
-        - [全球化](release-notes/api-change/v3.2-beta/js-apidiff-global.md)
-        - [启动恢复](release-notes/api-change/v3.2-beta/js-apidiff-init.md)
-        - [Misc](release-notes/api-change/v3.2-beta/js-apidiff-misc.md)
-        - [多模输入](release-notes/api-change/v3.2-beta/js-apidiff-multi-modal-input.md)
-        - [多媒体](release-notes/api-change/v3.2-beta/js-apidiff-multimedia.md)
-        - [资源调度](release-notes/api-change/v3.2-beta/js-apidiff-resource-scheduler.md)
-        - [分布式软总线](release-notes/api-change/v3.2-beta/js-apidiff-soft-bus.md)
-        - [测试框架](release-notes/api-change/v3.2-beta/js-apidiff-unitest.md)
-        - [Web](release-notes/api-change/v3.2-beta/js-apidiff-web.md)
-        - [窗口管理](release-notes/api-change/v3.2-beta/js-apidiff-window.md)
-      - [Native API差异报告](release-notes/api-change/v3.2-beta/native-apidiff-v3.2-beta.md)
+        - [元能力](release-notes/api-change/v3.2-beta1/js-apidiff-ability.md)
+        - [ArkUI](release-notes/api-change/v3.2-beta1/js-apidiff-arkui.md)
+        - [电源](release-notes/api-change/v3.2-beta1/js-apidiff-battery.md)
+        - [包管理](release-notes/api-change/v3.2-beta1/js-apidiff-bundle.md)
+        - [基础通信](release-notes/api-change/v3.2-beta1/js-apidiff-communicate.md)
+        - [DFX](release-notes/api-change/v3.2-beta1/js-apidiff-dfx.md)
+        - [分布式数据管理](release-notes/api-change/v3.2-beta1/js-apidiff-distributed-data.md)
+        - [事件通知](release-notes/api-change/v3.2-beta1/js-apidiff-event-and-notification.md)
+        - [文件管理](release-notes/api-change/v3.2-beta1/js-apidiff-file-management.md)
+        - [全球化](release-notes/api-change/v3.2-beta1/js-apidiff-global.md)
+        - [启动恢复](release-notes/api-change/v3.2-beta1/js-apidiff-init.md)
+        - [Misc](release-notes/api-change/v3.2-beta1/js-apidiff-misc.md)
+        - [多模输入](release-notes/api-change/v3.2-beta1/js-apidiff-multi-modal-input.md)
+        - [多媒体](release-notes/api-change/v3.2-beta1/js-apidiff-multimedia.md)
+        - [资源调度](release-notes/api-change/v3.2-beta1/js-apidiff-resource-scheduler.md)
+        - [分布式软总线](release-notes/api-change/v3.2-beta1/js-apidiff-soft-bus.md)
+        - [测试框架](release-notes/api-change/v3.2-beta1/js-apidiff-unitest.md)
+        - [Web](release-notes/api-change/v3.2-beta1/js-apidiff-web.md)
+        - [窗口管理](release-notes/api-change/v3.2-beta1/js-apidiff-window.md)
+      - [Native API差异报告](release-notes/api-change/v3.2-beta1/native-apidiff-v3.2-beta.md)
     - OpenHarmony 3.1 Release
       - JS API差异报告(API Version 8)
         - [元能力](release-notes/api-change/v3.1-Release/js-apidiff-ability.md)
@@ -60,7 +93,7 @@
         - [包管理](release-notes/api-change/v3.1-Release/js-apidiff-bundle.md)
         - [基础通信](release-notes/api-change/v3.1-Release/js-apidiff-communicate.md)
         - [语言编译器运行时](release-notes/api-change/v3.1-Release/js-apidiff-compiler-and-runtime.md)
-        - [DFX](release-notes/api-change/v3.1-Release/js-apidiff-dfx.md)
+      - [DFX](release-notes/api-change/v3.1-Release/js-apidiff-dfx.md)
         - [分布式数据管理](release-notes/api-change/v3.1-Release/js-apidiff-distributed-data.md)
         - [分布式硬件](release-notes/api-change/v3.1-Release/js-apidiff-distributed-hardware.md)
         - [事件通知](release-notes/api-change/v3.1-Release/js-apidiff-event-and-notification.md)
@@ -92,7 +125,14 @@
         - [资源调度](release-notes/api-change/v3.1-Release/js-apidiff-resource-scheduler_api-9-canary.md)
         - [窗口管理](release-notes/api-change/v3.1-Release/js-apidiff-window_api-9-canary.md)
       - [Native API差异报告](release-notes/api-change/v3.1-Release/native-apidiff-v3.1-release.md)
-  
+  - 变更说明
+    - OpenHamrony 3.2 Beta2
+      - [3.2 beta2相对3.2 beta1变更详细说明](release-notes\changelog\v3.2-beta2\changelog-v3.2-beta2.md)
+      - [OpenHarmony启用应用沙箱机制-适配指导](release-notes\changelog\v3.2-beta2\application-sandbox-adaptation-guide.md)  
+- OpenHarmony三方组件
+  - [OpenHarmony三方组件简介](third-party-components/third-party-components-introduction.md)  
+  - [OpenHarmony JS/TS三方组件使用指导](third-party-components/npm-third-party-guide.md)
+
 - 贡献
   - [参与贡献](contribute/参与贡献.md)
   - [行为准则](contribute/行为准则.md)